本文整理汇总了C++中webcore::Page::mainFrame方法的典型用法代码示例。如果您正苦于以下问题:C++ Page::mainFrame方法的具体用法?C++ Page::mainFrame怎么用?C++ Page::mainFrame使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类webcore::Page
的用法示例。
在下文中一共展示了Page::mainFrame方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: getWebVisiblePluginInfo
void WebPluginInfoProvider::getWebVisiblePluginInfo(WebCore::Page& page, Vector<WebCore::PluginInfo>& plugins)
{
ASSERT_ARG(plugins, plugins.isEmpty());
getPluginInfo(page, plugins);
#if PLATFORM(MAC)
if (auto* document = page.mainFrame().document()) {
if (auto* securityOrigin = document->securityOrigin()) {
if (securityOrigin->isLocal())
return;
}
}
for (int32_t i = plugins.size() - 1; i >= 0; --i) {
auto& info = plugins.at(i);
// Allow built-in plugins. Also tentatively allow plugins that the client might later selectively permit.
if (info.isApplicationPlugin || info.clientLoadPolicy == WebCore::PluginLoadClientPolicyAsk)
continue;
if (info.clientLoadPolicy == WebCore::PluginLoadClientPolicyBlock)
plugins.remove(i);
}
#endif
}
示例2: WKAccessibilityRootObject
void* WKAccessibilityRootObject(WKBundlePageRef pageRef)
{
#if HAVE(ACCESSIBILITY)
if (!pageRef)
return 0;
WebCore::Page* page = toImpl(pageRef)->corePage();
if (!page)
return 0;
WebCore::Frame& core = page->mainFrame();
if (!core.document())
return 0;
WebCore::AXObjectCache::enableAccessibility();
WebCore::AccessibilityObject* root = core.document()->axObjectCache()->rootObject();
if (!root)
return 0;
return root->wrapper();
#else
UNUSED_PARAM(pageRef);
return 0;
#endif
}
示例3: invalidateView
static void invalidateView(Evas_Object* webView)
{
Evas_Coord width, height;
Evas_Object* mainFrame = ewk_view_frame_main_get(webView);
if (mainFrame && ewk_frame_contents_size_get(mainFrame, &width, &height)) {
WebCore::Page* page = EWKPrivate::corePage(webView);
if (page)
page->mainFrame()->view()->invalidateRect(WebCore::IntRect(0, 0, width, height));
}
}
示例4: setOverflowControlsHostLayer
// Modifies the top of the graphics layer tree to add layers needed to support
// the inner/outer viewport fixed-position model for pinch zoom. When finished,
// the tree will look like this (with * denoting added layers):
//
// *innerViewportContainerLayer (fixed pos container)
// +- *pageScaleLayer
// | +- *innerViewportScrollLayer
// | +-- overflowControlsHostLayer (root layer)
// | +-- rootTransformLayer (optional)
// | +-- outerViewportContainerLayer (fixed pos container) [frame container layer in RenderLayerCompositor]
// | | +-- outerViewportScrollLayer [frame scroll layer in RenderLayerCompositor]
// | | +-- content layers ...
// | +-- horizontal ScrollbarLayer (non-overlay)
// | +-- verticalScrollbarLayer (non-overlay)
// | +-- scroll corner (non-overlay)
// +- *horizontalScrollbarLayer (overlay)
// +- *verticalScrollbarLayer (overlay)
//
void PinchViewports::setOverflowControlsHostLayer(GraphicsLayer* layer)
{
if (layer) {
ASSERT(!m_innerViewportScrollLayer->children().size());
m_innerViewportScrollLayer->addChild(layer);
} else {
m_innerViewportScrollLayer->removeAllChildren();
return;
}
WebCore::Page* page = m_owner->page();
if (!page)
return;
// We only need to disable the existing (outer viewport) scrollbars
// if the existing ones are already overlay.
// FIXME: If we knew in advance before the overflowControlsHostLayer goes
// away, we would re-enable the drawing of these scrollbars.
if (GraphicsLayer* scrollbar = m_owner->compositor()->layerForHorizontalScrollbar())
scrollbar->setDrawsContent(!page->mainFrame()->view()->hasOverlayScrollbars());
if (GraphicsLayer* scrollbar = m_owner->compositor()->layerForVerticalScrollbar())
scrollbar->setDrawsContent(!page->mainFrame()->view()->hasOverlayScrollbars());
}
示例5: getPluginInfo
void WebPluginInfoProvider::getPluginInfo(WebCore::Page& page, Vector<WebCore::PluginInfo>& plugins)
{
#if ENABLE(NETSCAPE_PLUGIN_API)
populatePluginCache(page);
if (page.mainFrame().loader().subframeLoader().allowPlugins()) {
plugins = m_cachedPlugins;
return;
}
plugins = m_cachedApplicationPlugins;
#else
UNUSED_PARAM(page);
UNUSED_PARAM(plugins);
#endif // ENABLE(NETSCAPE_PLUGIN_API)
}
示例6: dumpConfigurationForViewport
void DumpRenderTreeSupportEfl::dumpConfigurationForViewport(Evas_Object* ewkView, int deviceDPI, const WebCore::IntSize& deviceSize, const WebCore::IntSize& availableSize)
{
WebCore::Page* page = EWKPrivate::corePage(ewkView);
if (!page)
return;
WebCore::ViewportArguments arguments = page->mainFrame()->document()->viewportArguments();
WebCore::ViewportAttributes attributes = computeViewportAttributes(arguments,
/* default layout width for non-mobile pages */ 980,
deviceSize.width(), deviceSize.height(),
deviceDPI,
availableSize);
restrictMinimumScaleFactorToViewportSize(attributes, availableSize);
restrictScaleFactorToInitialScaleIfNotUserScalable(attributes);
fprintf(stdout, "viewport size %dx%d scale %f with limits [%f, %f] and userScalable %f\n", attributes.layoutSize.width(), attributes.layoutSize.height(), attributes.initialScale, attributes.minimumScale, attributes.maximumScale, attributes.userScalable);
}
示例7: populatePluginCache
void WebPluginInfoProvider::populatePluginCache(const WebCore::Page& page)
{
if (!m_pluginCacheIsPopulated) {
HangDetectionDisabler hangDetectionDisabler;
if (!WebProcess::singleton().parentProcessConnection()->sendSync(Messages::WebProcessProxy::GetPlugins(m_shouldRefreshPlugins), Messages::WebProcessProxy::GetPlugins::Reply(m_cachedPlugins, m_cachedApplicationPlugins), 0))
return;
m_shouldRefreshPlugins = false;
m_pluginCacheIsPopulated = true;
}
#if PLATFORM(MAC)
String pageHost = page.mainFrame().loader().documentLoader()->responseURL().host();
for (auto& info : m_cachedPlugins) {
if (auto clientPolicy = pluginLoadClientPolicyForHost(pageHost, info))
info.clientLoadPolicy = *clientPolicy;
}
#else
UNUSED_PARAM(page);
#endif // not PLATFORM(MAC)
}