本文整理汇总了C++中WebView::settings方法的典型用法代码示例。如果您正苦于以下问题:C++ WebView::settings方法的具体用法?C++ WebView::settings怎么用?C++ WebView::settings使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类WebView
的用法示例。
在下文中一共展示了WebView::settings方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ASSERT
TEST_F(WebPluginContainerTest, ClippedRectsForIframedElement)
{
URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseURL.c_str()), WebString::fromUTF8("plugin_container.html"));
URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseURL.c_str()), WebString::fromUTF8("plugin_containing_page.html"));
TestPluginWebFrameClient pluginWebFrameClient; // Must outlive webViewHelper.
FrameTestHelpers::WebViewHelper webViewHelper;
WebView* webView = webViewHelper.initializeAndLoad(m_baseURL + "plugin_containing_page.html", true, &pluginWebFrameClient);
ASSERT(webView);
webView->settings()->setPluginsEnabled(true);
webView->resize(WebSize(300, 300));
webView->updateAllLifecyclePhases();
runPendingTasks();
WebElement pluginElement = webView->mainFrame()->firstChild()->document().getElementById("translated-plugin");
RefPtrWillBeRawPtr<WebPluginContainerImpl> pluginContainerImpl = toWebPluginContainerImpl(pluginElement.pluginContainer());
ASSERT(pluginContainerImpl.get());
pluginContainerImpl->setFrameRect(IntRect(0, 0, 300, 300));
IntRect windowRect, clipRect, unobscuredRect;
Vector<IntRect> cutOutRects;
calculateGeometry(pluginContainerImpl.get(), windowRect, clipRect, unobscuredRect, cutOutRects);
EXPECT_RECT_EQ(IntRect(10, 210, 300, 300), windowRect);
EXPECT_RECT_EQ(IntRect(0, 0, 240, 90), clipRect);
EXPECT_RECT_EQ(IntRect(0, 0, 240, 160), unobscuredRect);
// Cause the plugin's frame to be detached.
webViewHelper.reset();
}
示例2: registerMockedHttpURLLoad
TEST_F(WebFrameTest, DeviceScaleFactorUsesDefaultWithoutViewportTag)
{
registerMockedHttpURLLoad("no_viewport_tag.html");
int viewportWidth = 640;
int viewportHeight = 480;
FixedLayoutTestWebViewClient client;
client.m_screenInfo.horizontalDPI = 320;
client.m_windowRect = WebRect(0, 0, viewportWidth, viewportHeight);
WebView* webView = static_cast<WebView*>(FrameTestHelpers::createWebViewAndLoad(m_baseURL + "no_viewport_tag.html", true, 0, &client));
webView->settings()->setViewportEnabled(true);
webView->enableFixedLayoutMode(true);
webView->resize(WebSize(viewportWidth, viewportHeight));
webView->layout();
EXPECT_EQ(2, webView->deviceScaleFactor());
// Device scale factor should be a component of page scale factor in fixed-layout, so a scale of 1 becomes 2.
webView->setPageScaleFactorLimits(1, 2);
EXPECT_EQ(2, webView->pageScaleFactor());
// Force the layout to happen before leaving the test.
webView->mainFrame()->contentAsText(1024).utf8();
}
示例3: platformKeyboardEventC
// Verifies |Ctrl-C| and |Ctrl-Insert| keyboard events, results in copying to
// the clipboard.
TEST_F(WebPluginContainerTest, CopyInsertKeyboardEventsTest)
{
URLTestHelpers::registerMockedURLFromBaseURL(
WebString::fromUTF8(m_baseURL.c_str()),
WebString::fromUTF8("plugin_container.html"));
TestPluginWebFrameClient pluginWebFrameClient; // Must outlive webViewHelper.
FrameTestHelpers::WebViewHelper webViewHelper;
WebView* webView = webViewHelper.initializeAndLoad(m_baseURL + "plugin_container.html", true, &pluginWebFrameClient);
ASSERT(webView);
webView->settings()->setPluginsEnabled(true);
webView->resize(WebSize(300, 300));
webView->updateAllLifecyclePhases();
runPendingTasks();
WebElement pluginContainerOneElement = webView->mainFrame()->document().getElementById(WebString::fromUTF8("translated-plugin"));
PlatformEvent::Modifiers modifierKey = static_cast<PlatformEvent::Modifiers>(PlatformEvent::CtrlKey | PlatformEvent::NumLockOn | PlatformEvent::IsLeft);
#if OS(MACOSX)
modifierKey = static_cast<PlatformEvent::Modifiers>(PlatformEvent::MetaKey | PlatformEvent::NumLockOn | PlatformEvent::IsLeft);
#endif
PlatformKeyboardEvent platformKeyboardEventC(PlatformEvent::RawKeyDown, "", "", "67", "", "", 67, 0, false, modifierKey, 0.0);
RefPtrWillBeRawPtr<KeyboardEvent> keyEventC = KeyboardEvent::create(platformKeyboardEventC, 0);
toWebPluginContainerImpl(pluginContainerOneElement.pluginContainer())->handleEvent(keyEventC.get());
EXPECT_EQ(WebString("x"), Platform::current()->clipboard()->readPlainText(WebClipboard::Buffer()));
// Clearing |Clipboard::Buffer()|.
Platform::current()->clipboard()->writePlainText(WebString(""));
EXPECT_EQ(WebString(""), Platform::current()->clipboard()->readPlainText(WebClipboard::Buffer()));
PlatformKeyboardEvent platformKeyboardEventInsert(PlatformEvent::RawKeyDown, "", "", "45", "", "", 45, 0, false, modifierKey, 0.0);
RefPtrWillBeRawPtr<KeyboardEvent> keyEventInsert = KeyboardEvent::create(platformKeyboardEventInsert, 0);
toWebPluginContainerImpl(pluginContainerOneElement.pluginContainer())->handleEvent(keyEventInsert.get());
EXPECT_EQ(WebString("x"), Platform::current()->clipboard()->readPlainText(WebClipboard::Buffer()));
}
示例4: topmostRect
TEST_F(WebPluginContainerTest, TopmostAfterDetachTest)
{
static WebRect topmostRect(10, 10, 40, 40);
// Plugin that checks isRectTopmost in destroy().
class TopmostPlugin : public FakeWebPlugin {
public:
TopmostPlugin(WebFrame* frame, const WebPluginParams& params)
: FakeWebPlugin(frame, params) {}
bool isRectTopmost()
{
return container()->isRectTopmost(topmostRect);
}
void destroy() override
{
// In destroy, isRectTopmost is no longer valid.
EXPECT_FALSE(container()->isRectTopmost(topmostRect));
FakeWebPlugin::destroy();
}
};
class TopmostPluginWebFrameClient : public FrameTestHelpers::TestWebFrameClient {
WebPlugin* createPlugin(WebLocalFrame* frame, const WebPluginParams& params) override
{
return new TopmostPlugin(frame, params);
}
};
URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseURL.c_str()), WebString::fromUTF8("plugin_container.html"));
TopmostPluginWebFrameClient pluginWebFrameClient; // Must outlive webViewHelper.
FrameTestHelpers::WebViewHelper webViewHelper;
WebView* webView = webViewHelper.initializeAndLoad(m_baseURL + "plugin_container.html", true, &pluginWebFrameClient);
ASSERT(webView);
webView->settings()->setPluginsEnabled(true);
webView->resize(WebSize(300, 300));
webView->updateAllLifecyclePhases();
runPendingTasks();
RefPtrWillBeRawPtr<WebPluginContainerImpl> pluginContainerImpl =
toWebPluginContainerImpl(getWebPluginContainer(webView, WebString::fromUTF8("translated-plugin")));
pluginContainerImpl->setFrameRect(IntRect(0, 0, 300, 300));
EXPECT_TRUE(pluginContainerImpl->isRectTopmost(topmostRect));
TopmostPlugin* testPlugin = static_cast<TopmostPlugin*>(pluginContainerImpl->plugin());
EXPECT_TRUE(testPlugin->isRectTopmost());
// Cause the plugin's frame to be detached.
webViewHelper.reset();
EXPECT_FALSE(pluginContainerImpl->isRectTopmost(topmostRect));
}
示例5: registerMockedHttpURLLoad
TEST_F(WebFrameTest, DeviceScaleFactorUsesDefaultWithoutViewportTag)
{
registerMockedHttpURLLoad("no_viewport_tag.html");
int viewportWidth = 640;
int viewportHeight = 480;
FixedLayoutTestWebViewClient client;
client.m_screenInfo.horizontalDPI = 160;
client.m_windowRect = WebRect(0, 0, viewportWidth, viewportHeight);
WebView* webView = static_cast<WebView*>(FrameTestHelpers::createWebViewAndLoad(m_baseURL + "no_viewport_tag.html", true, 0, &client));
webView->resize(WebSize(viewportWidth, viewportHeight));
webView->settings()->setViewportEnabled(true);
webView->settings()->setDefaultDeviceScaleFactor(2);
webView->enableFixedLayoutMode(true);
webView->layout();
EXPECT_EQ(2, webView->deviceScaleFactor());
}
示例6: CustomControl
WebViewRecipe::WebViewRecipe(Container *parent) :
CustomControl(parent)
{
bool connectResult;
Q_UNUSED(connectResult);
// Get the UIConfig object in order to use resolution independent sizes.
UIConfig *ui = this->ui();
// The recipe Container
Container *recipeContainer = new Container();
recipeContainer->setLayout(new DockLayout());
WebView *webView = new WebView();
webView->setUrl(QUrl("https://github.com/blackberry/Cascades-Samples/blob/master/cascadescookbookqml/assets/Slider.qml"));
// We let the scroll view scroll in both x and y and enable zooming,
// max and min content zoom property is set in the WebViews onMinContentScaleChanged
// and onMaxContentScaleChanged signal handlers.
mScrollView = ScrollView::create().scrollMode(ScrollMode::Both).pinchToZoomEnabled(true);
mScrollView->setContent(webView);
// Connect to signals to manage the progress indicator.
connectResult = connect(webView, SIGNAL(loadingChanged(bb::cascades::WebLoadRequest *)), this,
SLOT(onLoadingChanged(bb::cascades::WebLoadRequest *)));
Q_ASSERT(connectResult);
connectResult = connect(webView, SIGNAL(loadProgressChanged(int)), this,
SLOT(onProgressChanged(int)));
Q_ASSERT(connectResult);
connectResult = connect(webView, SIGNAL(navigationRequested(bb::cascades::WebNavigationRequest *)), this,
SLOT(onNavigationRequested(bb::cascades::WebNavigationRequest *)));
Q_ASSERT(connectResult);
// Connect signals to manage the web contents suggested size.
connectResult = connect(webView, SIGNAL(maxContentScaleChanged(float)), this,
SLOT(onMaxContentScaleChanged(float)));
Q_ASSERT(connectResult);
connectResult = connect(webView, SIGNAL(minContentScaleChanged(float)), this,
SLOT(onMinContentScaleChanged(float)));
Q_ASSERT(connectResult);
// Connect signal to handle java script calls to navigator.cascades.postMessage()
connectResult = connect(webView, SIGNAL(messageReceived(const QVariantMap&)), this,
SLOT(onMessageReceived(const QVariantMap&)));
Q_ASSERT(connectResult);
WebSettings *settings = webView->settings();
QVariantMap settingsMap;
settingsMap["width"] = QString("device-width");
settingsMap["initial-scale"] = 1.0;
settings->setViewportArguments(settingsMap);
// A progress indicator that is used to show the loading status
Container *progressContainer = Container::create().bottom(ui->du(2));
progressContainer->setLayout(new DockLayout());
progressContainer->setVerticalAlignment(VerticalAlignment::Bottom);
progressContainer->setHorizontalAlignment(HorizontalAlignment::Center);
mLoadingIndicator = ProgressIndicator::create().opacity(0.0);
progressContainer->add(mLoadingIndicator);
// Add the controls and set the root Container of the Custom Control.
recipeContainer->add(mScrollView);
recipeContainer->add(progressContainer);
setRoot(recipeContainer);
}
示例7: resetWebSettings
void TestShell::resetWebSettings(WebView& webView)
{
// Match the settings used by Mac DumpRenderTree, with the exception of
// fonts.
WebSettings* settings = webView.settings();
#if OS(MAC_OS_X)
WebString serif = WebString::fromUTF8("Times");
settings->setCursiveFontFamily(WebString::fromUTF8("Apple Chancery"));
settings->setFantasyFontFamily(WebString::fromUTF8("Papyrus"));
#else
// NOTE: case matters here, this must be 'times new roman', else
// some layout tests fail.
WebString serif = WebString::fromUTF8("times new roman");
// These two fonts are picked from the intersection of
// Win XP font list and Vista font list :
// http://www.microsoft.com/typography/fonts/winxp.htm
// http://blogs.msdn.com/michkap/archive/2006/04/04/567881.aspx
// Some of them are installed only with CJK and complex script
// support enabled on Windows XP and are out of consideration here.
// (although we enabled both on our buildbots.)
// They (especially Impact for fantasy) are not typical cursive
// and fantasy fonts, but it should not matter for layout tests
// as long as they're available.
settings->setCursiveFontFamily(WebString::fromUTF8("Comic Sans MS"));
settings->setFantasyFontFamily(WebString::fromUTF8("Impact"));
#endif
settings->setSerifFontFamily(serif);
settings->setStandardFontFamily(serif);
settings->setFixedFontFamily(WebString::fromUTF8("Courier"));
settings->setSansSerifFontFamily(WebString::fromUTF8("Helvetica"));
settings->setDefaultTextEncodingName(WebString::fromUTF8("ISO-8859-1"));
settings->setDefaultFontSize(16);
settings->setDefaultFixedFontSize(13);
settings->setMinimumFontSize(1);
settings->setMinimumLogicalFontSize(9);
settings->setJavaScriptCanOpenWindowsAutomatically(true);
settings->setJavaScriptCanAccessClipboard(true);
settings->setDOMPasteAllowed(true);
settings->setDeveloperExtrasEnabled(false);
settings->setNeedsSiteSpecificQuirks(true);
settings->setShrinksStandaloneImagesToFit(false);
settings->setUsesEncodingDetector(false);
settings->setTextAreasAreResizable(false);
settings->setJavaEnabled(false);
settings->setAllowScriptsToCloseWindows(false);
settings->setXSSAuditorEnabled(false);
settings->setDownloadableBinaryFontsEnabled(true);
settings->setLocalStorageEnabled(true);
settings->setOfflineWebApplicationCacheEnabled(true);
settings->setAllowFileAccessFromFileURLs(true);
// LayoutTests were written with Safari Mac in mind which does not allow
// tabbing to links by default.
webView.setTabsToLinks(false);
// Allow those layout tests running as local files, i.e. under
// LayoutTests/http/tests/local, to access http server.
settings->setAllowUniversalAccessFromFileURLs(true);
settings->setJavaScriptEnabled(true);
settings->setPluginsEnabled(true);
settings->setWebSecurityEnabled(true);
settings->setEditableLinkBehaviorNeverLive();
settings->setFontRenderingModeNormal();
settings->setShouldPaintCustomScrollbars(true);
settings->setTextDirectionSubmenuInclusionBehaviorNeverIncluded();
settings->setLoadsImagesAutomatically(true);
settings->setImagesEnabled(true);
#if OS(DARWIN)
settings->setEditingBehavior(WebSettings::EditingBehaviorMac);
#else
settings->setEditingBehavior(WebSettings::EditingBehaviorWin);
#endif
}