[webkit-changes] [WebKit/WebKit] dfe319: Clear activeTab and action tab customization when ...

Timothy Hatcher noreply at github.com
Tue Nov 14 11:57:40 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: dfe319166e75f999730302ef7d9309a21a6ac1cd
      https://github.com/WebKit/WebKit/commit/dfe319166e75f999730302ef7d9309a21a6ac1cd
  Author: Timothy Hatcher <timothy at apple.com>
  Date:   2023-11-14 (Tue, 14 Nov 2023)

  Changed paths:
    M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionActionCocoa.mm
    M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm
    M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionControllerCocoa.mm
    M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionTabCocoa.mm
    M Source/WebKit/UIProcess/Extensions/WebExtensionAction.h
    M Source/WebKit/UIProcess/Extensions/WebExtensionContext.h
    M Source/WebKit/UIProcess/Extensions/WebExtensionController.h
    M Source/WebKit/UIProcess/Extensions/WebExtensionTab.h
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIAction.mm
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPITabs.mm
    M Tools/TestWebKitAPI/cocoa/WebExtensionUtilities.mm

  Log Message:
  -----------
  Clear activeTab and action tab customization when tab navigates.
https://webkit.org/b/263918
rdar://problem/117704349

Reviewed by Brian Weinstein.

Moves the webNavigation load events to WebExtensionContext, since more things will
need to tie into these hooks.

Fixes injected style removal when webPageID is used, so it only removes the styles
when the page they apply to is navigated. Also this was incorrectly behind the
webNavigation permission checks before, when it needs to always happen.

Properly clears the activeTb permission on tab navigation, and fires the onUpdated
events for URL and Title when activeTab comes and goes, as well as any pattern grant.
This matches what Safari currently does when permissions are granted.

Clears the action customizations if the tab navigates. This matches the other browsers
and what Safari currently does.

Fixes the match pattern notifications to use the right constant.

* Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionActionCocoa.mm:
(WebKit::WebExtensionAction::clearCustomizations):
(WebKit::WebExtensionAction::setPopupPath):
(WebKit::WebExtensionAction::setLabel):
(WebKit::WebExtensionAction::setBadgeText):
(WebKit::WebExtensionAction::setEnabled):
* Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm:
(WebKit::WebExtensionContext::postAsyncNotification):
(WebKit::WebExtensionContext::grantPermissionMatchPatterns):
(WebKit::WebExtensionContext::denyPermissionMatchPatterns):
(WebKit::WebExtensionContext::removeGrantedPermissionMatchPatterns):
(WebKit::WebExtensionContext::removeDeniedPermissionMatchPatterns):
(WebKit::WebExtensionContext::permissionState):
(WebKit::WebExtensionContext::setPermissionState):
(WebKit::WebExtensionContext::didChangeTabProperties):
(WebKit::WebExtensionContext::didStartProvisionalLoadForFrame):
(WebKit::WebExtensionContext::didCommitLoadForFrame):
(WebKit::WebExtensionContext::didFinishLoadForFrame):
(WebKit::WebExtensionContext::didFailLoadForFrame):
(WebKit::WebExtensionContext::performAction):
(WebKit::WebExtensionContext::performCommand):
(WebKit::WebExtensionContext::userGesturePerformed):
(WebKit::WebExtensionContext::hasActiveUserGesture const):
(WebKit::WebExtensionContext::clearUserGesture):
(WebKit::WebExtensionContext::loadBackgroundPageListenersFromStorage):
(WebKit::WebExtensionContext::saveBackgroundPageListenersToStorage):
(WebKit::WebExtensionContext::removeInjectedContent):
* Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionControllerCocoa.mm:
(WebKit::WebExtensionController::didStartProvisionalLoadForFrame):
(WebKit::WebExtensionController::didCommitLoadForFrame):
(WebKit::WebExtensionController::didFinishLoadForFrame):
(WebKit::WebExtensionController::didFailLoadForFrame):
* Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionTabCocoa.mm:
(WebKit::WebExtensionTab::changedParameters const):
* Source/WebKit/UIProcess/Extensions/WebExtensionAction.h:
* Source/WebKit/UIProcess/Extensions/WebExtensionContext.h:
(WebKit::WebExtensionContext::didChangeTabProperties):
* Source/WebKit/UIProcess/Extensions/WebExtensionController.h:
* Source/WebKit/UIProcess/Extensions/WebExtensionTab.h:
(WebKit::WebExtensionTab::changedParameters):
(WebKit::WebExtensionTab::hasActiveUserGesture):
(WebKit::WebExtensionTab::setActiveUserGesture):
(WebKit::WebExtensionTab::temporaryPermissionMatchPattern):
(WebKit::WebExtensionTab::setTemporaryPermissionMatchPattern):
(WebKit::WebExtensionTab::changedProperties const):
(WebKit::WebExtensionTab::addChangedProperties):
(WebKit::WebExtensionTab::clearChangedProperties):
* Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIAction.mm:
(TestWebKitAPI::TEST):
* Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPITabs.mm:
(TestWebKitAPI::TEST):
* Tools/TestWebKitAPI/cocoa/WebExtensionUtilities.mm:
(-[TestWebExtensionTab webView:didCommitNavigation:]):

Canonical link: https://commits.webkit.org/270722@main




More information about the webkit-changes mailing list