[webkit-changes] [WebKit/WebKit] 442841: Update Web Extension tabs API based on feedback.
Timothy Hatcher
noreply at github.com
Thu Jul 25 09:58:00 PDT 2024
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 442841bf92b4e7def4d5edbf6006afe26c5dd9ff
https://github.com/WebKit/WebKit/commit/442841bf92b4e7def4d5edbf6006afe26c5dd9ff
Author: Timothy Hatcher <timothy at apple.com>
Date: 2024-07-25 (Thu, 25 Jul 2024)
Changed paths:
M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionCommand.h
M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionContext.mm
M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionTab.h
M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionWindow.h
M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPITabsCocoa.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
M Tools/TestWebKitAPI/cocoa/WebExtensionUtilities.h
M Tools/TestWebKitAPI/cocoa/WebExtensionUtilities.mm
Log Message:
-----------
Update Web Extension tabs API based on feedback.
https://webkit.org/b/277019
rdar://problem/132419218
Reviewed by Brian Weinstein.
Revise several `_WKWebExtensionTab` protocol methods to have a single setter instead of two.
This simplifies the client’s code and reduces the likelihood of forgetting to implement both
true and false states for features like pin, mute, reader mode, and select.
To ensure future-proofing, I changed the `captureVisibleWebpage` method to `takeSnapshot` and
pass along the `WKSnapshotConfiguration`. This allows Web Extensions to have different options
in the future without requiring additional changes.
Additionally, I reduced the reload methods to one with a parameter for fromOrigin, and I
removed the “detect” keyword from `detectWebpageLocale`.
Finally, `_WKWebExtensionTabChangedPropertiesAll` has been removed since it is not future proof
and dangerous if more properties are added later.
* Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionContext.mm:
(toImpl):
* Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionTab.h:
* Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionWindow.h:
* Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPITabsCocoa.mm:
(WebKit::WebExtensionContext::tabsReload):
* Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionTabCocoa.mm:
(WebKit::WebExtensionTab::WebExtensionTab):
(WebKit::WebExtensionTab::parameters const):
(WebKit::WebExtensionTab::changedParameters const):
(WebKit::WebExtensionTab::title const):
(WebKit::WebExtensionTab::setPinned):
(WebKit::WebExtensionTab::setReaderModeShowing):
(WebKit::WebExtensionTab::isReaderModeShowing const):
(WebKit::WebExtensionTab::setMuted):
(WebKit::WebExtensionTab::detectWebpageLocale):
(WebKit::WebExtensionTab::captureVisibleWebpage):
(WebKit::WebExtensionTab::reload):
(WebKit::WebExtensionTab::setSelected):
(WebKit::WebExtensionTab::pin): Deleted.
(WebKit::WebExtensionTab::unpin): Deleted.
(WebKit::WebExtensionTab::toggleReaderMode): Deleted.
(WebKit::WebExtensionTab::isShowingReaderMode const): Deleted.
(WebKit::WebExtensionTab::mute): Deleted.
(WebKit::WebExtensionTab::unmute): Deleted.
(WebKit::WebExtensionTab::reloadFromOrigin): Deleted.
(WebKit::WebExtensionTab::select): Deleted.
(WebKit::WebExtensionTab::deselect): Deleted.
* Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionWindowCocoa.mm:
(WebKit::WebExtensionWindow::WebExtensionWindow):
* Source/WebKit/UIProcess/Extensions/WebExtensionContext.h:
* Source/WebKit/UIProcess/Extensions/WebExtensionTab.h:
(WebKit::WebExtensionTab::pin):
(WebKit::WebExtensionTab::unpin):
(WebKit::WebExtensionTab::toggleReaderMode):
(WebKit::WebExtensionTab::mute):
(WebKit::WebExtensionTab::unmute):
(WebKit::WebExtensionTab::select):
(WebKit::WebExtensionTab::deselect):
* Source/WebKit/UIProcess/Extensions/WebExtensionWindow.h:
* Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPITabs.mm:
(TestWebKitAPI::TEST(WKWebExtensionAPITabs, ToggleReaderMode)):
(TestWebKitAPI::TEST(WKWebExtensionAPITabs, DetectLanguage)):
(TestWebKitAPI::TEST(WKWebExtensionAPITabs, Reload)):
* Tools/TestWebKitAPI/cocoa/WebExtensionUtilities.h:
* Tools/TestWebKitAPI/cocoa/WebExtensionUtilities.mm:
(-[TestWebExtensionTab isReaderModeShowingForWebExtensionContext:]):
(-[TestWebExtensionTab setReaderModeShowing:forWebExtensionContext:completionHandler:]):
(-[TestWebExtensionTab webpageLocaleForWebExtensionContext:completionHandler:]):
(-[TestWebExtensionTab reloadForWebExtensionContext:fromOrigin:completionHandler:]):
(-[TestWebExtensionTab setPinned:forWebExtensionContext:completionHandler:]):
(-[TestWebExtensionTab setMuted:forWebExtensionContext:completionHandler:]):
(-[TestWebExtensionTab setSelected:forWebExtensionContext:completionHandler:]):
(-[TestWebExtensionTab isShowingReaderModeForWebExtensionContext:]): Deleted.
(-[TestWebExtensionTab toggleReaderModeForWebExtensionContext:completionHandler:]): Deleted.
(-[TestWebExtensionTab detectWebpageLocaleForWebExtensionContext:completionHandler:]): Deleted.
(-[TestWebExtensionTab reloadForWebExtensionContext:completionHandler:]): Deleted.
(-[TestWebExtensionTab reloadFromOriginForWebExtensionContext:completionHandler:]): Deleted.
(-[TestWebExtensionTab pinForWebExtensionContext:completionHandler:]): Deleted.
(-[TestWebExtensionTab unpinForWebExtensionContext:completionHandler:]): Deleted.
(-[TestWebExtensionTab muteForWebExtensionContext:completionHandler:]): Deleted.
(-[TestWebExtensionTab unmuteForWebExtensionContext:completionHandler:]): Deleted.
(-[TestWebExtensionTab selectForWebExtensionContext:completionHandler:]): Deleted.
(-[TestWebExtensionTab deselectForWebExtensionContext:completionHandler:]): Deleted.
Canonical link: https://commits.webkit.org/281355@main
To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications
More information about the webkit-changes
mailing list