Changeset 258663 in webkit
- Timestamp:
- Mar 18, 2020 1:30:02 PM (4 years ago)
- Location:
- trunk/Source
- Files:
-
- 14 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r258662 r258663 1 2020-03-18 youenn fablet <youenn@apple.com> 2 3 WebPage should own a Ref<WebFrame> 4 https://bugs.webkit.org/show_bug.cgi?id=209235 5 6 Reviewed by Geoffrey Garen. 7 8 * loader/FrameLoaderStateMachine.h: 9 Export committedFirstRealDocumentLoad/ 10 1 11 2020-03-18 Eugene But <eugenebut@chromium.org> 2 12 -
trunk/Source/WebCore/loader/FrameLoaderStateMachine.h
r246767 r258663 52 52 53 53 WEBCORE_EXPORT bool committingFirstRealLoad() const; 54 bool committedFirstRealDocumentLoad() const;54 WEBCORE_EXPORT bool committedFirstRealDocumentLoad() const; 55 55 bool creatingInitialEmptyDocument() const; 56 56 WEBCORE_EXPORT bool isDisplayingInitialEmptyDocument() const; -
trunk/Source/WebKit/ChangeLog
r258659 r258663 1 2020-03-18 youenn fablet <youenn@apple.com> 2 3 WebPage should own a Ref<WebFrame> 4 https://bugs.webkit.org/show_bug.cgi?id=209235 5 6 Reviewed by Geoffrey Garen. 7 8 Update code since m_mainFrame is now a Ref and no longer a RefPtr. 9 10 Update WebPage constructor to set its m_mainFrame very early. 11 We update WebPage::didCompletePageTransition to compute whether this is initialization or not using the frame state machine state 12 instead of m_mainFrame being null. 13 14 * WebProcess/Automation/WebAutomationSessionProxy.cpp: 15 (WebKit::WebAutomationSessionProxy::evaluateJavaScriptFunction): 16 (WebKit::WebAutomationSessionProxy::resolveChildFrameWithOrdinal): 17 (WebKit::WebAutomationSessionProxy::resolveChildFrameWithNodeHandle): 18 (WebKit::WebAutomationSessionProxy::resolveChildFrameWithName): 19 (WebKit::WebAutomationSessionProxy::resolveParentFrame): 20 (WebKit::WebAutomationSessionProxy::focusFrame): 21 (WebKit::WebAutomationSessionProxy::computeElementLayout): 22 (WebKit::WebAutomationSessionProxy::selectOptionElement): 23 (WebKit::WebAutomationSessionProxy::setFilesForInputFileUpload): 24 (WebKit::WebAutomationSessionProxy::takeScreenshot): 25 (WebKit::WebAutomationSessionProxy::snapshotRectForScreenshot): 26 (WebKit::WebAutomationSessionProxy::getCookiesForFrame): 27 (WebKit::WebAutomationSessionProxy::deleteCookie): 28 * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp: 29 (WKBundlePageGetMainFrame): 30 * WebProcess/WebCoreSupport/WebChromeClient.cpp: 31 (WebKit::findLargestFrameInFrameSet): 32 (WebKit::WebChromeClient::closeWindowSoon): 33 * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: 34 (WebKit::WebFrameLoaderClient::dispatchDidReachLayoutMilestone): 35 (WebKit::WebFrameLoaderClient::dispatchDidLayout): 36 (WebKit::WebFrameLoaderClient::restoreViewState): 37 * WebProcess/WebPage/ViewGestureGeometryCollector.cpp: 38 (WebKit::ViewGestureGeometryCollector::collectGeometryForSmartMagnificationGesture): 39 (WebKit::ViewGestureGeometryCollector::collectGeometryForMagnificationGesture): 40 * WebProcess/WebPage/WebBackForwardListProxy.cpp: 41 (WebKit::WebBackForwardListProxy::goToItem): 42 * WebProcess/WebPage/WebPage.cpp: 43 (WebKit::WebPage::WebPage): 44 (WebKit::m_processDisplayName): 45 (WebKit::WebPage::close): 46 (WebKit::WebPage::suspendForProcessSwap): 47 (WebKit::WebPage::loadDataInFrame): 48 (WebKit::WebPage::loadRequest): 49 (WebKit::WebPage::reload): 50 (WebKit::WebPage::didCompletePageTransition): 51 (WebKit::WebPage::runJavaScriptInFrameInScriptWorld): 52 (WebKit::WebPage::setIsSuspended): 53 (WebKit::WebPage::didLoadFromRegistrableDomain): 54 * WebProcess/WebPage/WebPage.h: 55 (WebKit::WebPage::mainWebFrame const): 56 * WebProcess/WebPage/ios/WebPageIOS.mm: 57 (WebKit::WebPage::cancelPotentialTap): 58 * WebProcess/cocoa/WebProcessCocoa.mm: 59 (WebKit::origin): 60 1 61 2020-03-18 Wenson Hsieh <wenson_hsieh@apple.com> 2 62 -
trunk/Source/WebKit/WebProcess/Automation/WebAutomationSessionProxy.cpp
r257667 r258663 317 317 return; 318 318 } 319 WebFrame* frame = optionalFrameID ? WebProcess::singleton().webFrame(*optionalFrameID) :page->mainWebFrame();319 auto* frame = optionalFrameID ? WebProcess::singleton().webFrame(*optionalFrameID) : &page->mainWebFrame(); 320 320 if (!frame) { 321 321 WebProcess::singleton().parentProcessConnection()->send(Messages::WebAutomationSession::DidEvaluateJavaScriptFunction(callbackID, { }, … … 390 390 String frameNotFoundErrorType = Inspector::Protocol::AutomationHelpers::getEnumConstantValue(Inspector::Protocol::Automation::ErrorMessage::FrameNotFound); 391 391 392 WebFrame* frame = frameID ? WebProcess::singleton().webFrame(*frameID) :page->mainWebFrame();392 auto* frame = frameID ? WebProcess::singleton().webFrame(*frameID) : &page->mainWebFrame(); 393 393 if (!frame) { 394 394 completionHandler(frameNotFoundErrorType, WTF::nullopt); … … 428 428 String frameNotFoundErrorType = Inspector::Protocol::AutomationHelpers::getEnumConstantValue(Inspector::Protocol::Automation::ErrorMessage::FrameNotFound); 429 429 430 WebFrame* frame = frameID ? WebProcess::singleton().webFrame(*frameID) :page->mainWebFrame();430 auto* frame = frameID ? WebProcess::singleton().webFrame(*frameID) : &page->mainWebFrame(); 431 431 if (!frame) { 432 432 completionHandler(frameNotFoundErrorType, WTF::nullopt); … … 478 478 String frameNotFoundErrorType = Inspector::Protocol::AutomationHelpers::getEnumConstantValue(Inspector::Protocol::Automation::ErrorMessage::FrameNotFound); 479 479 480 WebFrame* frame = frameID ? WebProcess::singleton().webFrame(*frameID) :page->mainWebFrame();480 auto* frame = frameID ? WebProcess::singleton().webFrame(*frameID) : &page->mainWebFrame(); 481 481 if (!frame) { 482 482 completionHandler(frameNotFoundErrorType, WTF::nullopt); … … 516 516 String frameNotFoundErrorType = Inspector::Protocol::AutomationHelpers::getEnumConstantValue(Inspector::Protocol::Automation::ErrorMessage::FrameNotFound); 517 517 518 WebFrame* frame = frameID ? WebProcess::singleton().webFrame(*frameID) :page->mainWebFrame();518 auto* frame = frameID ? WebProcess::singleton().webFrame(*frameID) : &page->mainWebFrame(); 519 519 if (!frame) { 520 520 completionHandler(frameNotFoundErrorType, WTF::nullopt); … … 537 537 return; 538 538 539 WebFrame* frame = frameID ? WebProcess::singleton().webFrame(*frameID) :page->mainWebFrame();539 auto* frame = frameID ? WebProcess::singleton().webFrame(*frameID) : &page->mainWebFrame(); 540 540 if (!frame) 541 541 return; … … 614 614 } 615 615 616 WebFrame* frame = frameID ? WebProcess::singleton().webFrame(*frameID) :page->mainWebFrame();616 auto* frame = frameID ? WebProcess::singleton().webFrame(*frameID) : &page->mainWebFrame(); 617 617 if (!frame || !frame->coreFrame() || !frame->coreFrame()->view()) { 618 618 String frameNotFoundErrorType = Inspector::Protocol::AutomationHelpers::getEnumConstantValue(Inspector::Protocol::Automation::ErrorMessage::FrameNotFound); … … 728 728 } 729 729 730 WebFrame* frame = frameID ? WebProcess::singleton().webFrame(*frameID) :page->mainWebFrame();730 auto* frame = frameID ? WebProcess::singleton().webFrame(*frameID) : &page->mainWebFrame(); 731 731 if (!frame || !frame->coreFrame() || !frame->coreFrame()->view()) { 732 732 String frameNotFoundErrorType = Inspector::Protocol::AutomationHelpers::getEnumConstantValue(Inspector::Protocol::Automation::ErrorMessage::FrameNotFound); … … 778 778 } 779 779 780 WebFrame* frame = frameID ? WebProcess::singleton().webFrame(*frameID) :page->mainWebFrame();780 auto* frame = frameID ? WebProcess::singleton().webFrame(*frameID) : &page->mainWebFrame(); 781 781 if (!frame || !frame->coreFrame() || !frame->coreFrame()->view()) { 782 782 String frameNotFoundErrorType = Inspector::Protocol::AutomationHelpers::getEnumConstantValue(Inspector::Protocol::Automation::ErrorMessage::FrameNotFound); … … 842 842 WebPage* page = WebProcess::singleton().webPage(pageID); 843 843 ASSERT(page); 844 WebFrame* frame = frameID ? WebProcess::singleton().webFrame(*frameID) :page->mainWebFrame();844 auto* frame = frameID ? WebProcess::singleton().webFrame(*frameID) : &page->mainWebFrame(); 845 845 ASSERT(frame && frame->coreFrame()); 846 846 auto snapshotRect = WebCore::IntRect(frame->coreFrame()->mainFrame().view()->clientToDocumentRect(rect)); … … 866 866 } 867 867 868 WebFrame* frame = frameID ? WebProcess::singleton().webFrame(*frameID) :page->mainWebFrame();868 auto* frame = frameID ? WebProcess::singleton().webFrame(*frameID) : &page->mainWebFrame(); 869 869 if (!frame || !frame->coreFrame()) { 870 870 String frameNotFoundErrorType = Inspector::Protocol::AutomationHelpers::getEnumConstantValue(Inspector::Protocol::Automation::ErrorMessage::FrameNotFound); … … 911 911 } 912 912 913 WebFrame* frame = frameID ? WebProcess::singleton().webFrame(*frameID) :page->mainWebFrame();913 auto* frame = frameID ? WebProcess::singleton().webFrame(*frameID) : &page->mainWebFrame(); 914 914 if (!frame || !frame->coreFrame() || !frame->coreFrame()->document()) { 915 915 String frameNotFoundErrorType = Inspector::Protocol::AutomationHelpers::getEnumConstantValue(Inspector::Protocol::Automation::ErrorMessage::FrameNotFound); … … 936 936 } 937 937 938 WebFrame* frame = frameID ? WebProcess::singleton().webFrame(*frameID) :page->mainWebFrame();938 auto* frame = frameID ? WebProcess::singleton().webFrame(*frameID) : &page->mainWebFrame(); 939 939 if (!frame || !frame->coreFrame() || !frame->coreFrame()->document()) { 940 940 String frameNotFoundErrorType = Inspector::Protocol::AutomationHelpers::getEnumConstantValue(Inspector::Protocol::Automation::ErrorMessage::FrameNotFound); -
trunk/Source/WebKit/WebProcess/InjectedBundle/API/c/WKBundlePage.cpp
r258044 r258663 172 172 WKBundleFrameRef WKBundlePageGetMainFrame(WKBundlePageRef pageRef) 173 173 { 174 return toAPI( WebKit::toImpl(pageRef)->mainWebFrame());174 return toAPI(&WebKit::toImpl(pageRef)->mainWebFrame()); 175 175 } 176 176 -
trunk/Source/WebKit/WebProcess/InjectedBundle/API/glib/WebKitWebPage.cpp
r251181 r258663 840 840 g_return_val_if_fail(WEBKIT_IS_WEB_PAGE(webPage), 0); 841 841 842 return webkitFrameGetOrCreate( webPage->priv->webPage->mainWebFrame());842 return webkitFrameGetOrCreate(&webPage->priv->webPage->mainWebFrame()); 843 843 } 844 844 -
trunk/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp
r258487 r258663 116 116 // Approximate what a user could consider a default target frame for application menu operations. 117 117 118 WebFrame*mainFrame = page.mainWebFrame();119 if (!mainFrame || !mainFrame->isFrameSet())118 auto& mainFrame = page.mainWebFrame(); 119 if (!mainFrame.isFrameSet()) 120 120 return nullptr; 121 121 122 122 WebFrame* largestSoFar = nullptr; 123 123 124 Ref<API::Array> frameChildren = mainFrame ->childFrames();124 Ref<API::Array> frameChildren = mainFrame.childFrames(); 125 125 size_t count = frameChildren->size(); 126 126 for (size_t i = 0; i < count; ++i) { … … 444 444 m_page.corePage()->setGroupName(String()); 445 445 446 if (WebFrame* frame = m_page.mainWebFrame()) { 447 if (Frame* coreFrame = frame->coreFrame()) 448 coreFrame->loader().stopForUserCancel(); 449 } 446 auto& frame = m_page.mainWebFrame(); 447 if (auto* coreFrame = frame.coreFrame()) 448 coreFrame->loader().stopForUserCancel(); 450 449 451 450 m_page.sendClose(); -
trunk/Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp
r258628 r258663 702 702 #if USE(COORDINATED_GRAPHICS) 703 703 // Make sure viewport properties are dispatched on the main frame by the time the first layout happens. 704 ASSERT(!webPage->useFixedLayout() || m_frame.ptr() != m_frame->page()->mainWebFrame() || m_frame->coreFrame()->document()->didDispatchViewportPropertiesChanged());704 ASSERT(!webPage->useFixedLayout() || m_frame.ptr() != &m_frame->page()->mainWebFrame() || m_frame->coreFrame()->document()->didDispatchViewportPropertiesChanged()); 705 705 #endif 706 706 } … … 767 767 // the UIProcess for every call. 768 768 769 if (m_frame.ptr() == m_frame->page()->mainWebFrame()) {769 if (m_frame.ptr() == &m_frame->page()->mainWebFrame()) { 770 770 // FIXME: Remove at the soonest possible time. 771 771 webPage->send(Messages::WebPageProxy::SetRenderTreeSize(webPage->renderTreeSize())); … … 1394 1394 // FIXME: This should not be necessary. WebCore should be correctly invalidating 1395 1395 // the view on restores from the back/forward cache. 1396 if (m_frame->page() && m_frame.ptr() == m_frame->page()->mainWebFrame())1396 if (m_frame->page() && m_frame.ptr() == &m_frame->page()->mainWebFrame()) 1397 1397 m_frame->page()->drawingArea()->setNeedsDisplay(); 1398 1398 #endif -
trunk/Source/WebKit/WebProcess/WebPage/ViewGestureGeometryCollector.cpp
r258525 r258663 84 84 FloatRect visibleContentRect = m_webPage.mainFrameView()->unobscuredContentRectIncludingScrollbars(); 85 85 86 if (m_webPage.mainWebFrame() ->handlesPageScaleGesture())86 if (m_webPage.mainWebFrame().handlesPageScaleGesture()) 87 87 return; 88 88 … … 249 249 { 250 250 FloatRect visibleContentRect = m_webPage.mainFrameView()->unobscuredContentRectIncludingScrollbars(); 251 bool frameHandlesMagnificationGesture = m_webPage.mainWebFrame() ->handlesPageScaleGesture();251 bool frameHandlesMagnificationGesture = m_webPage.mainWebFrame().handlesPageScaleGesture(); 252 252 m_webPage.send(Messages::ViewGestureController::DidCollectGeometryForMagnificationGesture(visibleContentRect, frameHandlesMagnificationGesture)); 253 253 } -
trunk/Source/WebKit/WebProcess/WebPage/WebBackForwardListProxy.cpp
r255135 r258663 112 112 m_page->sendSync(Messages::WebPageProxy::BackForwardGoToItem(item.identifier()), Messages::WebPageProxy::BackForwardGoToItem::Reply(sandboxExtensionHandle, backForwardListCounts)); 113 113 m_cachedBackForwardListCounts = backForwardListCounts; 114 m_page->sandboxExtensionTracker().beginLoad( m_page->mainWebFrame(), WTFMove(sandboxExtensionHandle));114 m_page->sandboxExtensionTracker().beginLoad(&m_page->mainWebFrame(), WTFMove(sandboxExtensionHandle)); 115 115 } 116 116 -
trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp
r258628 r258663 396 396 WebPage::WebPage(PageIdentifier pageID, WebPageCreationParameters&& parameters) 397 397 : m_identifier(pageID) 398 , m_mainFrame(WebFrame::create()) 398 399 , m_viewSize(parameters.viewSize) 399 400 , m_alwaysShowsHorizontalScroller { parameters.alwaysShowsHorizontalScroller } … … 468 469 m_pageGroup = WebProcess::singleton().webPageGroup(parameters.pageGroupData); 469 470 470 auto mainFrame = WebFrame::create();471 472 471 PageConfiguration pageConfiguration( 473 472 WebProcess::singleton().sessionID(), … … 479 478 WebProcess::singleton().cookieJar(), 480 479 makeUniqueRef<WebProgressTrackerClient>(*this), 481 makeUniqueRef<WebFrameLoaderClient>(m ainFrame.copyRef()),480 makeUniqueRef<WebFrameLoaderClient>(m_mainFrame.copyRef()), 482 481 makeUniqueRef<MediaRecorderProvider>() 483 482 ); … … 574 573 m_page->settings().setBackForwardCacheExpirationInterval(Seconds::infinity()); 575 574 576 mainFrame->initWithCoreMainFrame(*this, m_page->mainFrame()); 577 m_mainFrame = WTFMove(mainFrame); 575 m_mainFrame->initWithCoreMainFrame(*this, m_page->mainFrame()); 578 576 579 577 m_drawingArea->updatePreferences(parameters.store); … … 1384 1382 1385 1383 // If there is still no URL, then we never loaded anything in this page, so nothing to report. 1386 if (!mainWebFrame() ->url().isEmpty())1384 if (!mainWebFrame().url().isEmpty()) 1387 1385 reportUsedFeatures(); 1388 1386 … … 1530 1528 // main frame is normally re-used for the navigation. However, in the case of process-swapping, the main frame 1531 1529 // is now hosted in another process and the one in this process is in the cache. 1532 if (m_mainFrame && m_mainFrame->coreFrame())1530 if (m_mainFrame->coreFrame()) 1533 1531 m_mainFrame->coreFrame()->loader().detachFromAllOpenedFrames(); 1534 1532 … … 1547 1545 void WebPage::loadDataInFrame(IPC::DataReference&& data, String&& MIMEType, String&& encodingName, URL&& baseURL, FrameIdentifier frameID) 1548 1546 { 1549 WebFrame* frame = WebProcess::singleton().webFrame(frameID);1547 auto* frame = WebProcess::singleton().webFrame(frameID); 1550 1548 if (!frame) 1551 1549 return; 1552 ASSERT( mainWebFrame() != frame);1550 ASSERT(&mainWebFrame() != frame); 1553 1551 1554 1552 auto sharedBuffer = SharedBuffer::create(reinterpret_cast<const char*>(data.data()), data.size()); … … 1574 1572 m_pendingWebsitePolicies = WTFMove(loadParameters.websitePolicies); 1575 1573 1576 m_sandboxExtensionTracker.beginLoad(m_mainFrame. get(), WTFMove(loadParameters.sandboxExtensionHandle));1574 m_sandboxExtensionTracker.beginLoad(m_mainFrame.ptr(), WTFMove(loadParameters.sandboxExtensionHandle)); 1577 1575 1578 1576 // Let the InjectedBundle know we are about to start the load, passing the user data from the UIProcess … … 1699 1697 m_pendingNavigationID = navigationID; 1700 1698 1701 m_sandboxExtensionTracker.beginReload(m_mainFrame. get(), WTFMove(sandboxExtensionHandle));1699 m_sandboxExtensionTracker.beginReload(m_mainFrame.ptr(), WTFMove(sandboxExtensionHandle)); 1702 1700 corePage()->userInputBridge().reloadFrame(m_mainFrame->coreFrame(), OptionSet<ReloadOption>::fromRaw(reloadOptions)); 1703 1701 … … 3336 3334 unfreezeLayerTree(LayerTreeFreezeReason::PageTransition); 3337 3335 3338 RELEASE_LOG_IF_ALLOWED(Layers, "didCompletePageTransition: Did complete page transition");3339 3340 bool isInitialEmptyDocument = !m_mainFrame; 3341 if ( !isInitialEmptyDocument)3336 auto& stateMachine = m_mainFrame->coreFrame()->loader().stateMachine(); 3337 RELEASE_LOG_IF_ALLOWED(Layers, "didCompletePageTransition: Did complete page transition, loader state is %d", stateMachine.stateForDebugging()); 3338 3339 if (stateMachine.committedFirstRealDocumentLoad()) 3342 3340 unfreezeLayerTree(LayerTreeFreezeReason::ProcessSwap); 3343 3341 } … … 3456 3454 void WebPage::runJavaScriptInFrameInScriptWorld(RunJavaScriptParameters&& parameters, Optional<WebCore::FrameIdentifier> frameID, const std::pair<ContentWorldIdentifier, String>& worldData, CallbackID callbackID) 3457 3455 { 3458 auto* webFrame = frameID ? WebProcess::singleton().webFrame(*frameID) : mainWebFrame();3456 auto* webFrame = frameID ? WebProcess::singleton().webFrame(*frameID) : &mainWebFrame(); 3459 3457 3460 3458 if (auto* newWorld = m_userContentController->addContentWorld(worldData)) { … … 6627 6625 unfreezeLayerTree(LayerTreeFreezeReason::BackgroundApplication); 6628 6626 6629 WebProcess::singleton().sendPrewarmInformation(mainWebFrame() ->url());6627 WebProcess::singleton().sendPrewarmInformation(mainWebFrame().url()); 6630 6628 6631 6629 suspendForProcessSwap(); … … 6700 6698 void WebPage::didLoadFromRegistrableDomain(RegistrableDomain&& targetDomain) 6701 6699 { 6702 if (targetDomain != RegistrableDomain(mainWebFrame() ->url()))6700 if (targetDomain != RegistrableDomain(mainWebFrame().url())) 6703 6701 m_loadedThirdPartyDomains.add(targetDomain); 6704 6702 } -
trunk/Source/WebKit/WebProcess/WebPage/WebPage.h
r258476 r258663 463 463 void replaceStringMatchesFromInjectedBundle(const Vector<uint32_t>& matchIndices, const String& replacementText, bool selectionOnly); 464 464 465 WebFrame * mainWebFrame() const { return m_mainFrame.get(); }465 WebFrame& mainWebFrame() const { return m_mainFrame; } 466 466 467 467 WebCore::Frame* mainFrame() const; // May return nullptr. … … 1710 1710 1711 1711 std::unique_ptr<WebCore::Page> m_page; 1712 Ref Ptr<WebFrame> m_mainFrame;1712 Ref<WebFrame> m_mainFrame; 1713 1713 1714 1714 RefPtr<WebPageGroupProxy> m_pageGroup; -
trunk/Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm
r258525 r258663 339 339 void WebPage::didReceiveMobileDocType(bool isMobileDoctype) 340 340 { 341 resetViewportDefaultConfiguration(m_mainFrame. get(), isMobileDoctype);341 resetViewportDefaultConfiguration(m_mainFrame.ptr(), isMobileDoctype); 342 342 } 343 343 … … 1169 1169 { 1170 1170 ContentChangeObserver::didCancelPotentialTap(m_page->mainFrame()); 1171 cancelPotentialTapInFrame( *m_mainFrame);1171 cancelPotentialTapInFrame(m_mainFrame); 1172 1172 } 1173 1173 -
trunk/Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm
r258495 r258663 586 586 static NSURL *origin(WebPage& page) 587 587 { 588 WebFrame* mainFrame = page.mainWebFrame(); 589 if (!mainFrame) 590 return nil; 591 592 URL mainFrameURL = { URL(), mainFrame->url() }; 588 auto& mainFrame = page.mainWebFrame(); 589 590 URL mainFrameURL = { URL(), mainFrame.url() }; 593 591 Ref<SecurityOrigin> mainFrameOrigin = SecurityOrigin::create(mainFrameURL); 594 592 String mainFrameOriginString;
Note: See TracChangeset
for help on using the changeset viewer.