本文整理汇总了C++中FrameLoader::policyChecker方法的典型用法代码示例。如果您正苦于以下问题:C++ FrameLoader::policyChecker方法的具体用法?C++ FrameLoader::policyChecker怎么用?C++ FrameLoader::policyChecker使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类FrameLoader
的用法示例。
在下文中一共展示了FrameLoader::policyChecker方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: dataChanged
bool SVGImage::dataChanged(bool allDataReceived)
{
// Don't do anything if is an empty image.
if (!data()->size())
return true;
if (allDataReceived) {
static FrameLoaderClient* dummyFrameLoaderClient = new EmptyFrameLoaderClient;
Page::PageClients pageClients;
m_chromeClient = adoptPtr(new SVGImageChromeClient(this));
pageClients.chromeClient = m_chromeClient.get();
#if ENABLE(CONTEXT_MENUS)
static ContextMenuClient* dummyContextMenuClient = new EmptyContextMenuClient;
pageClients.contextMenuClient = dummyContextMenuClient;
#endif
static EditorClient* dummyEditorClient = new EmptyEditorClient;
pageClients.editorClient = dummyEditorClient;
#if ENABLE(DRAG_SUPPORT)
static DragClient* dummyDragClient = new EmptyDragClient;
pageClients.dragClient = dummyDragClient;
#endif
static InspectorClient* dummyInspectorClient = new EmptyInspectorClient;
pageClients.inspectorClient = dummyInspectorClient;
#if ENABLE(DEVICE_ORIENTATION)
static DeviceMotionClient* dummyDeviceMotionClient = new EmptyDeviceMotionClient;
pageClients.deviceMotionClient = dummyDeviceMotionClient;
static DeviceOrientationClient* dummyDeviceOrientationClient = new EmptyDeviceOrientationClient;
pageClients.deviceOrientationClient = dummyDeviceOrientationClient;
#endif
// FIXME: If this SVG ends up loading itself, we might leak the world.
// The comment said that the Cache code does not know about CachedImages
// holding Frames and won't know to break the cycle. But
m_page.set(new Page(pageClients));
m_page->settings()->setMediaEnabled(false);
m_page->settings()->setJavaScriptEnabled(false);
m_page->settings()->setPluginsEnabled(false);
RefPtr<Frame> frame = Frame::create(m_page.get(), 0, dummyFrameLoaderClient);
frame->setView(FrameView::create(frame.get()));
frame->init();
ResourceRequest fakeRequest(KURL(ParsedURLString, ""));
FrameLoader* loader = frame->loader();
loader->setForcedSandboxFlags(SandboxAll);
loader->load(fakeRequest, false); // Make sure the DocumentLoader is created
loader->policyChecker()->cancelCheck(); // cancel any policy checks
loader->commitProvisionalLoad();
loader->writer()->setMIMEType("image/svg+xml");
loader->writer()->begin(KURL()); // create the empty document
loader->writer()->addData(data()->data(), data()->size());
loader->writer()->end();
frame->view()->setTransparent(true); // SVG Images are transparent.
}
return m_page;
}
示例2: handleIntrinsicEventIfNeeded
void WMLCardElement::handleIntrinsicEventIfNeeded()
{
WMLPageState* pageState = wmlPageStateForDocument(document());
if (!pageState)
return;
Frame* frame = document()->frame();
if (!frame)
return;
FrameLoader* loader = frame->loader();
if (!loader)
return;
// Calculate the entry method of current card
WMLIntrinsicEventType eventType = WMLIntrinsicEventUnknown;
switch (loader->policyChecker()->loadType()) {
case FrameLoadTypeReload:
break;
case FrameLoadTypeBack:
eventType = WMLIntrinsicEventOnEnterBackward;
break;
case FrameLoadTypeBackWMLDeckNotAccessible:
reportWMLError(document(), WMLErrorDeckNotAccessible);
return;
default:
eventType = WMLIntrinsicEventOnEnterForward;
break;
}
// Figure out target event handler
WMLIntrinsicEventHandler* eventHandler = this->eventHandler();
bool hasIntrinsicEvent = false;
if (eventType != WMLIntrinsicEventUnknown) {
if (eventHandler && eventHandler->hasIntrinsicEvent(eventType))
hasIntrinsicEvent = true;
else if (m_template) {
eventHandler = m_template->eventHandler();
if (eventHandler && eventHandler->hasIntrinsicEvent(eventType))
hasIntrinsicEvent = true;
}
}
if (hasIntrinsicEvent)
eventHandler->triggerIntrinsicEvent(eventType);
// Start the timer if it exists in current card
if (m_eventTimer && eventType != WMLIntrinsicEventOnEnterBackward)
m_eventTimer->start();
/*guoxiaolei 20120827 end>*/
for (Node* node = traverseNextNode(); node != 0; node = node->traverseNextNode()) {
if (!node->isElementNode())
continue;
if (node->hasTagName(inputTag))
static_cast<WMLInputElement*>(node)->initialize();
else if (node->hasTagName(selectTag))
static_cast<WMLSelectElement*>(node)->selectInitialOptions();
}
}
示例3: handleIntrinsicEventIfNeeded
void WMLCardElement::handleIntrinsicEventIfNeeded()
{
WMLPageState* pageState = wmlPageStateForDocument(document());
if (!pageState)
return;
Frame* frame = document()->frame();
if (!frame)
return;
FrameLoader* loader = frame->loader();
if (!loader)
return;
// Calculate the entry method of current card
WMLIntrinsicEventType eventType = WMLIntrinsicEventUnknown;
switch (loader->policyChecker()->loadType()) {
case FrameLoadTypeReload:
break;
case FrameLoadTypeBack:
eventType = WMLIntrinsicEventOnEnterBackward;
break;
case FrameLoadTypeBackWMLDeckNotAccessible:
reportWMLError(document(), WMLErrorDeckNotAccessible);
return;
default:
eventType = WMLIntrinsicEventOnEnterForward;
break;
}
// Figure out target event handler
WMLIntrinsicEventHandler* eventHandler = this->eventHandler();
bool hasIntrinsicEvent = false;
if (eventType != WMLIntrinsicEventUnknown) {
if (eventHandler && eventHandler->hasIntrinsicEvent(eventType))
hasIntrinsicEvent = true;
else if (m_template) {
eventHandler = m_template->eventHandler();
if (eventHandler && eventHandler->hasIntrinsicEvent(eventType))
hasIntrinsicEvent = true;
}
}
// SAMSUNG_WML_FIXES+
// http://spe.mobilephone.net/wit/wmlv2/structemp.wml
if (hasIntrinsicEvent) {
RefPtr<NodeList> children = childNodes();
if (children) {
unsigned length = children->length();
for (unsigned i = 0; i < length; ++i) {
Node* child = children->item(i);
if (!child->isElementNode())
continue;
if (child->hasTagName(oneventTag)) {
WMLOnEventElement* onEventElement = static_cast<WMLOnEventElement*>(child);
if (onEventElement->eventType() == eventType && onEventElement->isNoop()) {
hasIntrinsicEvent = false;
break;
}
}
}
}
}
// SAMSUNG_WML_FIXES-
if (hasIntrinsicEvent)
eventHandler->triggerIntrinsicEvent(eventType);
// Start the timer if it exists in current card
if (m_eventTimer)
m_eventTimer->start();
for (Node* node = traverseNextNode(); node != 0; node = node->traverseNextNode()) {
if (!node->isElementNode())
continue;
if (node->hasTagName(inputTag))
static_cast<WMLInputElement*>(node)->initialize();
else if (node->hasTagName(selectTag))
static_cast<WMLSelectElement*>(node)->selectInitialOptions();
}
}