本文整理汇总了C++中WebViewImpl::page方法的典型用法代码示例。如果您正苦于以下问题:C++ WebViewImpl::page方法的具体用法?C++ WebViewImpl::page怎么用?C++ WebViewImpl::page使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类WebViewImpl
的用法示例。
在下文中一共展示了WebViewImpl::page方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: adoptPtrWillBeNoop
// static
PassOwnPtrWillBeRawPtr<WebDevToolsAgentImpl> WebDevToolsAgentImpl::create(WebLocalFrameImpl* frame, WebDevToolsAgentClient* client)
{
WebViewImpl* view = frame->viewImpl();
// TODO(dgozman): sometimes view->mainFrameImpl() does return null, even though |frame| is meant to be main frame.
// See http://crbug.com/526162.
bool isMainFrame = view && !frame->parent();
if (!isMainFrame) {
WebDevToolsAgentImpl* agent = new WebDevToolsAgentImpl(frame, client, nullptr);
if (frame->frameWidget())
agent->layerTreeViewChanged(toWebFrameWidgetImpl(frame->frameWidget())->layerTreeView());
return adoptPtrWillBeNoop(agent);
}
WebDevToolsAgentImpl* agent = new WebDevToolsAgentImpl(frame, client, InspectorOverlay::create(view));
// TODO(dgozman): we should actually pass the view instead of frame, but during
// remote->local transition we cannot access mainFrameImpl() yet, so we have to store the
// frame which will become the main frame later.
agent->registerAgent(InspectorRenderingAgent::create(frame));
agent->registerAgent(InspectorEmulationAgent::create(frame, agent));
// TODO(dgozman): migrate each of the following agents to frame once module is ready.
agent->registerAgent(InspectorDatabaseAgent::create(view->page()));
agent->registerAgent(DeviceOrientationInspectorAgent::create(view->page()));
agent->registerAgent(InspectorAccessibilityAgent::create(view->page()));
agent->registerAgent(InspectorDOMStorageAgent::create(view->page()));
agent->registerAgent(InspectorCacheStorageAgent::create());
agent->layerTreeViewChanged(view->layerTreeView());
return adoptPtrWillBeNoop(agent);
}
示例2: createWindow
Page* ChromeClientImpl::createWindow(
Frame* frame, const FrameLoadRequest& r, const WindowFeatures& features, const NavigationAction& action)
{
if (!m_webView->client())
return 0;
// FrameLoaderClientImpl may have given us a policy to use for the next new
// window navigation. If not, determine the policy using the same logic as
// show().
WebNavigationPolicy policy;
if (m_nextNewWindowNavigationPolicy != WebNavigationPolicyIgnore) {
policy = m_nextNewWindowNavigationPolicy;
m_nextNewWindowNavigationPolicy = WebNavigationPolicyIgnore;
} else
policy = getNavigationPolicy();
WrappedResourceRequest request;
if (!r.resourceRequest().isEmpty())
request.bind(r.resourceRequest());
else if (!action.resourceRequest().isEmpty())
request.bind(action.resourceRequest());
WebViewImpl* newView = static_cast<WebViewImpl*>(
m_webView->client()->createView(WebFrameImpl::fromFrame(frame), request, features, r.frameName(), policy));
if (!newView)
return 0;
return newView->page();
}
示例3:
TEST_F(DocumentLoaderTest, isCommittedButEmpty) {
WebViewImpl* webViewImpl =
m_webViewHelper.initializeAndLoad("about:blank", true);
EXPECT_TRUE(toLocalFrame(webViewImpl->page()->mainFrame())
->loader()
.documentLoader()
->isCommittedButEmpty());
}
示例4: adoptPtrWillBeNoop
// static
PassOwnPtrWillBeRawPtr<WebDevToolsAgentImpl> WebDevToolsAgentImpl::create(WebLocalFrameImpl* frame, WebDevToolsAgentClient* client)
{
WebViewImpl* view = frame->viewImpl();
bool isMainFrame = view && view->mainFrameImpl() == frame;
if (!isMainFrame) {
WebDevToolsAgentImpl* agent = new WebDevToolsAgentImpl(frame, client, frame->inspectorOverlay());
if (frame->frameWidget())
agent->layerTreeViewChanged(frame->frameWidget()->layerTreeView());
return adoptPtrWillBeNoop(agent);
}
WebDevToolsAgentImpl* agent = new WebDevToolsAgentImpl(frame, client, view->inspectorOverlay());
agent->registerAgent(InspectorRenderingAgent::create(view));
agent->registerAgent(InspectorEmulationAgent::create(view));
// TODO(dgozman): migrate each of the following agents to frame once module is ready.
agent->registerAgent(InspectorDatabaseAgent::create(view->page()));
agent->registerAgent(DeviceOrientationInspectorAgent::create(view->page()));
agent->registerAgent(InspectorFileSystemAgent::create(view->page()));
agent->registerAgent(InspectorIndexedDBAgent::create(view->page()));
agent->registerAgent(InspectorAccessibilityAgent::create(view->page()));
agent->registerAgent(InspectorDOMStorageAgent::create(view->page()));
agent->registerAgent(InspectorCacheStorageAgent::create());
agent->layerTreeViewChanged(view->layerTreeView());
return adoptPtrWillBeNoop(agent);
}
示例5: createWindow
Page* ChromeClientImpl::createWindow(LocalFrame* frame, const FrameLoadRequest& r, const WindowFeatures& features,
NavigationPolicy navigationPolicy, ShouldSetOpener shouldSetOpener)
{
if (!m_webView->client())
return nullptr;
WebNavigationPolicy policy = effectiveNavigationPolicy(navigationPolicy, features);
ASSERT(frame->document());
Fullscreen::fullyExitFullscreen(*frame->document());
WebViewImpl* newView = toWebViewImpl(
m_webView->client()->createView(WebLocalFrameImpl::fromFrame(frame), WrappedResourceRequest(r.resourceRequest()), features, r.frameName(), policy, shouldSetOpener == NeverSetOpener));
if (!newView)
return nullptr;
return newView->page();
}
示例6: createWindow
Page* ChromeClientImpl::createWindow(
Frame* frame, const FrameLoadRequest& r, const WindowFeatures& features, const NavigationAction&)
{
if (!m_webView->client())
return 0;
WrappedResourceRequest request;
if (!r.resourceRequest().isEmpty())
request.bind(r.resourceRequest());
WebViewImpl* newView = static_cast<WebViewImpl*>(
m_webView->client()->createView(WebFrameImpl::fromFrame(frame), request, features, r.frameName()));
if (!newView)
return 0;
return newView->page();
}
示例7: createWindow
Page* ChromeClientImpl::createWindow(LocalFrame* frame, const FrameLoadRequest& r, const WindowFeatures& features,
NavigationPolicy navigationPolicy, ShouldSendReferrer shouldSendReferrer)
{
if (!m_webView->client())
return 0;
WebNavigationPolicy policy = static_cast<WebNavigationPolicy>(navigationPolicy);
if (policy == WebNavigationPolicyIgnore)
policy = getNavigationPolicy();
ASSERT(frame->document());
DocumentFullscreen::webkitCancelFullScreen(*frame->document());
WebViewImpl* newView = toWebViewImpl(
m_webView->client()->createView(WebFrameImpl::fromFrame(frame), WrappedResourceRequest(r.resourceRequest()), features, r.frameName(), policy, shouldSendReferrer == NeverSendReferrer));
if (!newView)
return 0;
return newView->page();
}
示例8: createWindow
Page* ChromeClientImpl::createWindow(
Frame* frame, const FrameLoadRequest& r, const WindowFeatures& features)
{
if (!m_webView->client())
return 0;
WebViewImpl* newView = static_cast<WebViewImpl*>(
m_webView->client()->createView(WebFrameImpl::fromFrame(frame), features, r.frameName()));
if (!newView)
return 0;
// The request is empty when we are just being asked to open a blank window.
// This corresponds to window.open(""), for example.
if (!r.resourceRequest().isEmpty()) {
WrappedResourceRequest request(r.resourceRequest());
newView->mainFrame()->loadRequest(request);
}
return newView->page();
}
示例9: createWindow
Page* ChromeClientImpl::createWindow(LocalFrame* frame, const FrameLoadRequest& r, const WindowFeatures& features,
NavigationPolicy navigationPolicy, ShouldSendReferrer shouldSendReferrer)
{
if (!m_webView->client())
return nullptr;
WebNavigationPolicy policy = static_cast<WebNavigationPolicy>(navigationPolicy);
if (policy == WebNavigationPolicyIgnore)
policy = getNavigationPolicy(features);
else if (policy == WebNavigationPolicyNewBackgroundTab && getNavigationPolicy(m_windowFeatures) != WebNavigationPolicyNewBackgroundTab && !UIEventWithKeyState::newTabModifierSetFromIsolatedWorld())
policy = WebNavigationPolicyNewForegroundTab;
ASSERT(frame->document());
Fullscreen::fullyExitFullscreen(*frame->document());
WebViewImpl* newView = toWebViewImpl(
m_webView->client()->createView(WebLocalFrameImpl::fromFrame(frame), WrappedResourceRequest(r.resourceRequest()), features, r.frameName(), policy, shouldSendReferrer == NeverSendReferrer));
if (!newView)
return nullptr;
return newView->page();
}
示例10: doubleTapPoint
TEST_F(WebFrameTest, DivAutoZoomParamsTest)
{
registerMockedHttpURLLoad("get_scale_for_auto_zoom_into_div_test.html");
WebViewImpl* webViewImpl = static_cast<WebViewImpl*>(FrameTestHelpers::createWebViewAndLoad(m_baseURL + "get_scale_for_auto_zoom_into_div_test.html", true));
int pageWidth = 640;
int pageHeight = 480;
int divPosX = 200;
int divPosY = 200;
int divWidth = 200;
int divHeight = 150;
WebRect doubleTapPoint(250, 250, 0, 0);
webViewImpl->resize(WebSize(pageWidth, pageHeight));
float scale;
WebPoint scroll;
// Test for Doubletap scaling
// Tests for zooming in and out without clamping.
// Set device scale and scale limits so we dont get clamped.
webViewImpl->setDeviceScaleFactor(4);
webViewImpl->setPageScaleFactorLimits(0, 4 / webViewImpl->deviceScaleFactor());
// Test zooming into div.
webViewImpl->computeScaleAndScrollForHitRect(doubleTapPoint, WebViewImpl::DoubleTap, scale, scroll);
float scaledDivWidth = divWidth * scale;
float scaledDivHeight = divHeight * scale;
int hScroll = ((divPosX * scale) - ((pageWidth - scaledDivWidth) / 2)) / scale;
int vScroll = ((divPosY * scale) - ((pageHeight - scaledDivHeight) / 2)) / scale;
EXPECT_NEAR(pageWidth / divWidth, scale, 0.1);
EXPECT_EQ(hScroll, scroll.x);
EXPECT_EQ(vScroll, scroll.y);
// Test zoom out to overview scale.
webViewImpl->applyScrollAndScale(WebSize(scroll.x, scroll.y), scale / webViewImpl->pageScaleFactor());
webViewImpl->computeScaleAndScrollForHitRect(doubleTapPoint, WebViewImpl::DoubleTap, scale, scroll);
EXPECT_FLOAT_EQ(1, scale);
EXPECT_EQ(WebPoint(0, 0), scroll);
// Tests for clamped scaling.
// Test clamp to device scale:
webViewImpl->applyScrollAndScale(WebSize(scroll.x, scroll.y), scale / webViewImpl->pageScaleFactor());
webViewImpl->setDeviceScaleFactor(2.5);
webViewImpl->computeScaleAndScrollForHitRect(doubleTapPoint, WebViewImpl::DoubleTap, scale, scroll);
EXPECT_FLOAT_EQ(2.5, scale);
// Test clamp to minimum scale:
webViewImpl->applyScrollAndScale(WebSize(scroll.x, scroll.y), scale / webViewImpl->pageScaleFactor());
webViewImpl->setPageScaleFactorLimits(1.5 / webViewImpl->deviceScaleFactor(), 4 / webViewImpl->deviceScaleFactor());
webViewImpl->computeScaleAndScrollForHitRect(doubleTapPoint, WebViewImpl::DoubleTap, scale, scroll);
EXPECT_FLOAT_EQ(1.5, scale);
EXPECT_EQ(WebPoint(0, 0), scroll);
// Test clamp to maximum scale:
webViewImpl->applyScrollAndScale(WebSize(scroll.x, scroll.y), scale / webViewImpl->pageScaleFactor());
webViewImpl->setDeviceScaleFactor(4);
webViewImpl->setPageScaleFactorLimits(0, 3 / webViewImpl->deviceScaleFactor());
webViewImpl->computeScaleAndScrollForHitRect(doubleTapPoint, WebViewImpl::DoubleTap, scale, scroll);
EXPECT_FLOAT_EQ(3, scale);
// Test for Non-doubletap scaling
webViewImpl->setPageScaleFactor(1, WebPoint(0, 0));
webViewImpl->setDeviceScaleFactor(4);
webViewImpl->setPageScaleFactorLimits(0, 4 / webViewImpl->deviceScaleFactor());
// Test zooming into div.
webViewImpl->computeScaleAndScrollForHitRect(WebRect(250, 250, 10, 10), WebViewImpl::FindInPage, scale, scroll);
EXPECT_NEAR(pageWidth / divWidth, scale, 0.1);
// Drop any pending fake mouse events from zooming before leaving the test.
webViewImpl->page()->mainFrame()->eventHandler()->clear();
}