// Called by WebInspectorProxy messages void WebInspectorProxy::createInspectorPage(uint64_t& inspectorPageID, WebPageCreationParameters& inspectorPageParameters) { inspectorPageID = 0; if (!m_page) return; m_isAttached = shouldOpenAttached(); m_attachmentSide = static_cast<AttachmentSide>(inspectorPageGroup()->preferences()->inspectorAttachmentSide()); WebPageProxy* inspectorPage = platformCreateInspectorPage(); ASSERT(inspectorPage); if (!inspectorPage) return; inspectorPageID = inspectorPage->pageID(); inspectorPageParameters = inspectorPage->creationParameters(); WKPagePolicyClientV1 policyClient = { { 1, this }, 0, /* decidePolicyForNavigationAction_deprecatedForUseWithV0 */ 0, /* decidePolicyForNewWindowAction */ 0, /* decidePolicyForResponse_deprecatedForUseWithV0 */ 0, /* unableToImplementPolicy */ decidePolicyForNavigationAction, 0, /* decidePolicyForResponse */ }; WKPageSetPagePolicyClient(toAPI(inspectorPage), &policyClient.base); String url = inspectorPageURL(); url.append("?dockSide="); if (m_isAttached) { switch (m_attachmentSide) { case AttachmentSideBottom: url.append("bottom"); m_page->process().send(Messages::WebInspector::AttachedBottom(), m_page->pageID()); break; case AttachmentSideRight: url.append("right"); m_page->process().send(Messages::WebInspector::AttachedRight(), m_page->pageID()); break; } } else url.append("undocked"); m_page->process().assumeReadAccessToBaseURL(inspectorBaseURL()); inspectorPage->loadRequest(URL(URL(), url)); m_createdInspectorPage = true; }
// Called by WebInspectorProxy messages void WebInspectorProxy::createInspectorPage(uint64_t& inspectorPageID, WebPageCreationParameters& inspectorPageParameters) { inspectorPageID = 0; if (!m_page) return; WebPageProxy* inspectorPage = platformCreateInspectorPage(); ASSERT(inspectorPage); if (!inspectorPage) return; inspectorPageID = inspectorPage->pageID(); inspectorPageParameters = inspectorPage->creationParameters(IntSize(0, 0)); inspectorPage->loadURL(inspectorPageURL()); }
// Called by WebInspectorProxy messages void WebInspectorProxy::createInspectorPage(uint64_t& inspectorPageID, WebPageCreationParameters& inspectorPageParameters) { inspectorPageID = 0; if (!m_page) return; m_isAttached = shouldOpenAttached(); WebPageProxy* inspectorPage = platformCreateInspectorPage(); ASSERT(inspectorPage); if (!inspectorPage) return; inspectorPageID = inspectorPage->pageID(); inspectorPageParameters = inspectorPage->creationParameters(); String url = inspectorPageURL(); if (m_isAttached) url += "?docked=true"; m_page->process()->assumeReadAccessToBaseURL(inspectorBaseURL()); inspectorPage->loadURL(url); }
void WebInspectorProxy::eagerlyCreateInspectorPage() { if (m_inspectorPage) return; m_inspectorPage = platformCreateInspectorPage(); ASSERT(m_inspectorPage); if (!m_inspectorPage) return; pageLevelMap().set(m_inspectorPage, inspectionLevel()); WKPagePolicyClientV1 policyClient = { { 1, this }, nullptr, // decidePolicyForNavigationAction_deprecatedForUseWithV0 nullptr, // decidePolicyForNewWindowAction nullptr, // decidePolicyForResponse_deprecatedForUseWithV0 nullptr, // unableToImplementPolicy decidePolicyForNavigationAction, nullptr, // decidePolicyForResponse }; WKPageLoaderClientV5 loaderClient = { { 5, this }, nullptr, // didStartProvisionalLoadForFrame nullptr, // didReceiveServerRedirectForProvisionalLoadForFrame nullptr, // didFailProvisionalLoadWithErrorForFrame nullptr, // didCommitLoadForFrame nullptr, // didFinishDocumentLoadForFrame nullptr, // didFinishLoadForFrame nullptr, // didFailLoadWithErrorForFrame nullptr, // didSameDocumentNavigationForFrame nullptr, // didReceiveTitleForFrame nullptr, // didFirstLayoutForFrame nullptr, // didFirstVisuallyNonEmptyLayoutForFrame nullptr, // didRemoveFrameFromHierarchy nullptr, // didDisplayInsecureContentForFrame nullptr, // didRunInsecureContentForFrame nullptr, // canAuthenticateAgainstProtectionSpaceInFrame nullptr, // didReceiveAuthenticationChallengeInFrame nullptr, // didStartProgress nullptr, // didChangeProgress nullptr, // didFinishProgress nullptr, // didBecomeUnresponsive nullptr, // didBecomeResponsive processDidCrash, nullptr, // didChangeBackForwardList nullptr, // shouldGoToBackForwardListItem nullptr, // didFailToInitializePlugin_deprecatedForUseWithV0 nullptr, // didDetectXSSForFrame nullptr, // didNewFirstVisuallyNonEmptyLayout_unavailable nullptr, // willGoToBackForwardListItem nullptr, // interactionOccurredWhileProcessUnresponsive nullptr, // pluginDidFail_deprecatedForUseWithV1 nullptr, // didReceiveIntentForFrame_unavailable nullptr, // registerIntentServiceForFrame_unavailable nullptr, // didLayout nullptr, // pluginLoadPolicy_deprecatedForUseWithV2 nullptr, // pluginDidFail nullptr, // pluginLoadPolicy nullptr, // webGLLoadPolicy nullptr, // resolveWebGLLoadPolicy nullptr, // shouldKeepCurrentBackForwardListItemInList }; WKPageContextMenuClientV3 contextMenuClient = { { 3, this }, 0, // getContextMenuFromProposedMenu_deprecatedForUseWithV0 0, // customContextMenuItemSelected 0, // contextMenuDismissed getContextMenuFromProposedMenu, 0, // showContextMenu 0, // hideContextMenu }; WKPageSetPagePolicyClient(toAPI(m_inspectorPage), &policyClient.base); WKPageSetPageLoaderClient(toAPI(m_inspectorPage), &loaderClient.base); WKPageSetPageContextMenuClient(toAPI(m_inspectorPage), &contextMenuClient.base); m_inspectorPage->process().addMessageReceiver(Messages::WebInspectorProxy::messageReceiverName(), m_inspectedPage->pageID(), *this); m_inspectorPage->process().assumeReadAccessToBaseURL(WebInspectorProxy::inspectorBaseURL()); }