Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 1e7cb6de6869907b5b840532a65c37783bf9b41e https://github.com/WebKit/WebKit/commit/1e7cb6de6869907b5b840532a65c37783bf9b41e Author: Timothy Hatcher <timo...@apple.com> Date: 2024-02-05 (Mon, 05 Feb 2024)
Changed paths: M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionContext.mm M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionTabCocoa.mm M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionWindowCocoa.mm M Source/WebKit/UIProcess/Extensions/WebExtensionContext.h M Source/WebKit/UIProcess/Extensions/WebExtensionTab.h M Source/WebKit/UIProcess/Extensions/WebExtensionWindow.h M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPITabs.mm Log Message: ----------- Don't fire window or tab events until the browser calls didOpenTab: and didOpenWindow:. https://webkit.org/b/268671 rdar://122143707 Reviewed by Brian Weinstein. Be more protective of when we fire window and tab events, so we never fire events if the window or tab hasn't fired the onCreated event. Also add more smart pointer use, assertions, and error logging to catch misuse. While fixing this, I discovered the WKWebExtensionAPITabs.QueryWithPrivateAccess test was not correct and was missing the tests for the incognito windows. Fixed things up there, and added optional chaining to avoid exceptions when things are incorrectly undefined / null. * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionContext.mm: (toAPI): * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm: (WebKit::WebExtensionContext::postAsyncNotification): (WebKit::WebExtensionContext::removeGrantedPermissionMatchPatterns): (WebKit::WebExtensionContext::getOrCreateWindow const): (WebKit::WebExtensionContext::getWindow const): (WebKit::WebExtensionContext::forgetWindow const): (WebKit::WebExtensionContext::getOrCreateTab const): (WebKit::WebExtensionContext::getTab const): (WebKit::WebExtensionContext::getCurrentTab const): (WebKit::WebExtensionContext::forgetTab const): (WebKit::WebExtensionContext::populateWindowsAndTabs): (WebKit::WebExtensionContext::isValidWindow): (WebKit::WebExtensionContext::isValidTab): (WebKit::WebExtensionContext::openWindows const): (WebKit::WebExtensionContext::openTabs const): (WebKit::WebExtensionContext::frontmostWindow const): (WebKit::WebExtensionContext::didOpenWindow): (WebKit::WebExtensionContext::didCloseWindow): (WebKit::WebExtensionContext::didFocusWindow): (WebKit::WebExtensionContext::didOpenTab): (WebKit::WebExtensionContext::didCloseTab): (WebKit::WebExtensionContext::didActivateTab): (WebKit::WebExtensionContext::didSelectOrDeselectTabs): (WebKit::WebExtensionContext::didMoveTab): (WebKit::WebExtensionContext::didReplaceTab): (WebKit::WebExtensionContext::didChangeTabProperties): (WebKit::WebExtensionContext::resourceLoadDidSendRequest): (WebKit::WebExtensionContext::resourceLoadDidPerformHTTPRedirection): (WebKit::WebExtensionContext::resourceLoadDidReceiveChallenge): (WebKit::WebExtensionContext::resourceLoadDidReceiveResponse): (WebKit::WebExtensionContext::resourceLoadDidCompleteWithError): * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionTabCocoa.mm: (WebKit::WebExtensionTab::parameters const): (WebKit::WebExtensionTab::index const): (WebKit::WebExtensionTab::parentTab const): (WebKit::WebExtensionTab::mainWebView const): (WebKit::WebExtensionTab::webViews const): (WebKit::WebExtensionTab::isOpen const): (WebKit::WebExtensionTab::isActive const): (WebKit::WebExtensionTab::isPrivate const): * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionWindowCocoa.mm: (WebKit::WebExtensionWindow::activeTab const): (WebKit::WebExtensionWindow::isOpen const): * Source/WebKit/UIProcess/Extensions/WebExtensionContext.h: (WebKit::WebExtensionContext::openTabs const): Deleted. * Source/WebKit/UIProcess/Extensions/WebExtensionTab.h: (WebKit::WebExtensionTab::didOpen): (WebKit::WebExtensionTab::didClose): * Source/WebKit/UIProcess/Extensions/WebExtensionWindow.h: (WebKit::WebExtensionWindow::didOpen): (WebKit::WebExtensionWindow::didClose): * Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPITabs.mm: (TestWebKitAPI::TEST): Canonical link: https://commits.webkit.org/274103@main _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes