Skip to content

Commit

Permalink
Add Web Extension interfaces for windows and tabs with stub implement…
Browse files Browse the repository at this point in the history
…ations.

https://webkit.org/b/260664
rdar://problem/114387424

Reviewed by Brian Weinstein.

Implementation to come in future pull requests.

* Source/WebKit/DerivedSources-input.xcfilelist:
* Source/WebKit/DerivedSources-output.xcfilelist:
* Source/WebKit/DerivedSources.make:
* Source/WebKit/UIProcess/Extensions/WebExtensionTab.h:
* Source/WebKit/WebKit.xcodeproj/project.pbxproj:
* Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPINamespaceCocoa.mm:
(WebKit::WebExtensionAPINamespace::alarms):
(WebKit::WebExtensionAPINamespace::extension):
(WebKit::WebExtensionAPINamespace::permissions):
(WebKit::WebExtensionAPINamespace::runtime):
(WebKit::WebExtensionAPINamespace::tabs):
(WebKit::WebExtensionAPINamespace::test):
(WebKit::WebExtensionAPINamespace::windows):
(WebKit::WebExtensionAPINamespace::webNavigation):
* Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPITabsCocoa.mm: Added.
(WebKit::WebExtensionAPITabs::isPropertyAllowed):
(WebKit::WebExtensionAPITabs::createTab):
(WebKit::WebExtensionAPITabs::query):
(WebKit::WebExtensionAPITabs::get):
(WebKit::WebExtensionAPITabs::getCurrent):
(WebKit::WebExtensionAPITabs::getSelected):
(WebKit::WebExtensionAPITabs::duplicate):
(WebKit::WebExtensionAPITabs::update):
(WebKit::WebExtensionAPITabs::remove):
(WebKit::WebExtensionAPITabs::reload):
(WebKit::WebExtensionAPITabs::goBack):
(WebKit::WebExtensionAPITabs::goForward):
(WebKit::WebExtensionAPITabs::getZoom):
(WebKit::WebExtensionAPITabs::setZoom):
(WebKit::WebExtensionAPITabs::detectLanguage):
(WebKit::WebExtensionAPITabs::toggleReaderMode):
(WebKit::WebExtensionAPITabs::onActivated):
(WebKit::WebExtensionAPITabs::onAttached):
(WebKit::WebExtensionAPITabs::onCreated):
(WebKit::WebExtensionAPITabs::onDetached):
(WebKit::WebExtensionAPITabs::onHighlighted):
(WebKit::WebExtensionAPITabs::onMoved):
(WebKit::WebExtensionAPITabs::onRemoved):
(WebKit::WebExtensionAPITabs::onReplaced):
(WebKit::WebExtensionAPITabs::onUpdated):
* Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIWebNavigationEventCocoa.mm:
(WebKit::WebExtensionAPIWebNavigationEvent::invokeListenersWithArgument):
(WebKit::WebExtensionAPIWebNavigationEvent::addListener):
* Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIWindowsCocoa.mm: Added.
(WebKit::WebExtensionAPIWindows::isPropertyAllowed):
(WebKit::WebExtensionAPIWindows::createWindow):
(WebKit::WebExtensionAPIWindows::get):
(WebKit::WebExtensionAPIWindows::getCurrent):
(WebKit::WebExtensionAPIWindows::getLastFocused):
(WebKit::WebExtensionAPIWindows::getAll):
(WebKit::WebExtensionAPIWindows::update):
(WebKit::WebExtensionAPIWindows::remove):
(WebKit::WebExtensionAPIWindows::onCreated):
(WebKit::WebExtensionAPIWindows::onRemoved):
(WebKit::WebExtensionAPIWindows::onFocusChanged):
* Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIWindowsEventCocoa.mm: Added.
(WebKit::WebExtensionAPIWindowsEvent::invokeListenersWithArgument):
(WebKit::WebExtensionAPIWindowsEvent::addListener):
(WebKit::WebExtensionAPIWindowsEvent::removeListener):
(WebKit::WebExtensionAPIWindowsEvent::hasListener):
* Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIEvent.h:
(WebKit::WebExtensionAPIEvent::WebExtensionAPIEvent):
* Source/WebKit/WebProcess/Extensions/API/WebExtensionAPINamespace.h:
* Source/WebKit/WebProcess/Extensions/API/WebExtensionAPITabs.h: Added.
(WebKit::WebExtensionAPITabs::tabIdentifierNone const):
* Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIWebNavigationEvent.h:
(WebKit::WebExtensionAPIWebNavigationEvent::WebExtensionAPIWebNavigationEvent):
* Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIWindows.h: Added.
(WebKit::WebExtensionAPIWindows::windowIdentifierNone const):
(WebKit::WebExtensionAPIWindows::windowIdentifierCurrent const):
* Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIWindowsEvent.h: Added.
(WebKit::WebExtensionAPIWindowsEvent::listeners const):
(WebKit::WebExtensionAPIWindowsEvent::WebExtensionAPIWindowsEvent):
* Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPINamespace.idl:
* Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPITabs.idl: Added.
* Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPIWindows.idl: Added.
* Source/WebKit/WebProcess/Extensions/Interfaces/WebExtensionAPIWindowsEvent.idl: Added.

Canonical link: https://commits.webkit.org/267238@main
  • Loading branch information
xeenon committed Aug 24, 2023
1 parent 727dbe3 commit aebc196
Show file tree
Hide file tree
Showing 20 changed files with 1,029 additions and 15 deletions.
3 changes: 3 additions & 0 deletions Source/WebKit/DerivedSources-input.xcfilelist
Original file line number Diff line number Diff line change
Expand Up @@ -375,9 +375,12 @@ $(PROJECT_DIR)/WebProcess/Extensions/Interfaces/WebExtensionAPIExtension.idl
$(PROJECT_DIR)/WebProcess/Extensions/Interfaces/WebExtensionAPINamespace.idl
$(PROJECT_DIR)/WebProcess/Extensions/Interfaces/WebExtensionAPIPermissions.idl
$(PROJECT_DIR)/WebProcess/Extensions/Interfaces/WebExtensionAPIRuntime.idl
$(PROJECT_DIR)/WebProcess/Extensions/Interfaces/WebExtensionAPITabs.idl
$(PROJECT_DIR)/WebProcess/Extensions/Interfaces/WebExtensionAPITest.idl
$(PROJECT_DIR)/WebProcess/Extensions/Interfaces/WebExtensionAPIWebNavigation.idl
$(PROJECT_DIR)/WebProcess/Extensions/Interfaces/WebExtensionAPIWebNavigationEvent.idl
$(PROJECT_DIR)/WebProcess/Extensions/Interfaces/WebExtensionAPIWindows.idl
$(PROJECT_DIR)/WebProcess/Extensions/Interfaces/WebExtensionAPIWindowsEvent.idl
$(PROJECT_DIR)/WebProcess/Extensions/WebExtensionContextProxy.messages.in
$(PROJECT_DIR)/WebProcess/Extensions/WebExtensionControllerProxy.messages.in
$(PROJECT_DIR)/WebProcess/FullScreen/WebFullScreenManager.messages.in
Expand Down
6 changes: 6 additions & 0 deletions Source/WebKit/DerivedSources-output.xcfilelist
Original file line number Diff line number Diff line change
Expand Up @@ -58,12 +58,18 @@ $(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit/JSWebExtensionAPIPermissions.h
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit/JSWebExtensionAPIPermissions.mm
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit/JSWebExtensionAPIRuntime.h
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit/JSWebExtensionAPIRuntime.mm
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit/JSWebExtensionAPITabs.h
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit/JSWebExtensionAPITabs.mm
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit/JSWebExtensionAPITest.h
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit/JSWebExtensionAPITest.mm
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit/JSWebExtensionAPIWebNavigation.h
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit/JSWebExtensionAPIWebNavigation.mm
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit/JSWebExtensionAPIWebNavigationEvent.h
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit/JSWebExtensionAPIWebNavigationEvent.mm
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit/JSWebExtensionAPIWindows.h
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit/JSWebExtensionAPIWindows.mm
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit/JSWebExtensionAPIWindowsEvent.h
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit/JSWebExtensionAPIWindowsEvent.mm
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit/LegacyCustomProtocolManagerMessageReceiver.cpp
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit/LegacyCustomProtocolManagerMessages.h
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit/LegacyCustomProtocolManagerProxyMessageReceiver.cpp
Expand Down
3 changes: 3 additions & 0 deletions Source/WebKit/DerivedSources.make
Original file line number Diff line number Diff line change
Expand Up @@ -653,9 +653,12 @@ EXTENSION_INTERFACES = \
WebExtensionAPINamespace \
WebExtensionAPIPermissions \
WebExtensionAPIRuntime \
WebExtensionAPITabs \
WebExtensionAPITest \
WebExtensionAPIWebNavigation \
WebExtensionAPIWebNavigationEvent \
WebExtensionAPIWindows \
WebExtensionAPIWindowsEvent \
#

JS%.h JS%.mm : %.idl $(BINDINGS_SCRIPTS) $(IDL_ATTRIBUTES_FILE) $(FEATURE_AND_PLATFORM_DEFINE_DEPENDENCIES)
Expand Down
2 changes: 1 addition & 1 deletion Source/WebKit/UIProcess/Extensions/WebExtensionTab.h
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ class WebExtensionTab : public RefCounted<WebExtensionTab> {
Title = 1 << 7,
URL = 1 << 8,
ZoomFactor = 1 << 9,
All = std::numeric_limits<uint16_t>::max(),
All = Audible | Loading | Muted | Pinned | ReaderMode | Size | Title | URL | ZoomFactor,
};

WebExtensionTabIdentifier identifier() const { return m_identifier; }
Expand Down
54 changes: 54 additions & 0 deletions Source/WebKit/WebKit.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -429,6 +429,18 @@
1C56557F2745C5A1006300AF /* UnifiedSource101.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1C56557C2745C5A0006300AF /* UnifiedSource101.cpp */; };
1C5655802745C5A1006300AF /* UnifiedSource102.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1C56557D2745C5A1006300AF /* UnifiedSource102.cpp */; };
1C5655812745C5A1006300AF /* UnifiedSource103.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1C56557E2745C5A1006300AF /* UnifiedSource103.cpp */; };
1C5ACFA52A96F8C400C041C0 /* JSWebExtensionAPIWindows.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C5ACFA12A96F8C200C041C0 /* JSWebExtensionAPIWindows.h */; };
1C5ACFA62A96F8C400C041C0 /* JSWebExtensionAPIWindows.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1C5ACFA22A96F8C300C041C0 /* JSWebExtensionAPIWindows.mm */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
1C5ACFA72A96F8C400C041C0 /* JSWebExtensionAPIWindowsEvent.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1C5ACFA32A96F8C300C041C0 /* JSWebExtensionAPIWindowsEvent.mm */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
1C5ACFA82A96F8C400C041C0 /* JSWebExtensionAPIWindowsEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C5ACFA42A96F8C300C041C0 /* JSWebExtensionAPIWindowsEvent.h */; };
1C5ACFAB2A96F8D500C041C0 /* JSWebExtensionAPITabs.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1C5ACFA92A96F8D400C041C0 /* JSWebExtensionAPITabs.mm */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
1C5ACFAC2A96F8D500C041C0 /* JSWebExtensionAPITabs.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C5ACFAA2A96F8D500C041C0 /* JSWebExtensionAPITabs.h */; };
1C5ACFAE2A96F9D300C041C0 /* WebExtensionAPITabs.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C5ACFAD2A96F9D300C041C0 /* WebExtensionAPITabs.h */; };
1C5ACFB02A96F9F200C041C0 /* WebExtensionAPIWindows.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C5ACFAF2A96F9F200C041C0 /* WebExtensionAPIWindows.h */; };
1C5ACFB22A96FA0000C041C0 /* WebExtensionAPIWindowsEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C5ACFB12A96FA0000C041C0 /* WebExtensionAPIWindowsEvent.h */; };
1C5ACFB42A96FA1900C041C0 /* WebExtensionAPIWindowsEventCocoa.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1C5ACFB32A96FA1900C041C0 /* WebExtensionAPIWindowsEventCocoa.mm */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
1C5ACFB62A96FA2800C041C0 /* WebExtensionAPITabsCocoa.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1C5ACFB52A96FA2800C041C0 /* WebExtensionAPITabsCocoa.mm */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
1C5ACFB82A96FA3200C041C0 /* WebExtensionAPIWindowsCocoa.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1C5ACFB72A96FA3200C041C0 /* WebExtensionAPIWindowsCocoa.mm */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
1C5DC4522908A9D00061EC62 /* WebExtensionAPINamespaceCocoa.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1C5DC4512908A9D00061EC62 /* WebExtensionAPINamespaceCocoa.mm */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
1C5DC4552908AC900061EC62 /* JSWebExtensionAPINamespace.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1C5DC4542908AC260061EC62 /* JSWebExtensionAPINamespace.mm */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
1C5DC45F2909B05A0061EC62 /* JSWebExtensionWrapperCocoa.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1C5DC45A29099F010061EC62 /* JSWebExtensionWrapperCocoa.mm */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
Expand Down Expand Up @@ -3445,6 +3457,21 @@
1C56557E2745C5A1006300AF /* UnifiedSource103.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = UnifiedSource103.cpp; sourceTree = "<group>"; };
1C5A104E287BB1E90034FDA4 /* OverrideLanguages.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = OverrideLanguages.cpp; sourceTree = "<group>"; };
1C5A104F287BB1E90034FDA4 /* OverrideLanguages.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OverrideLanguages.h; sourceTree = "<group>"; };
1C5ACF9D2A96E15400C041C0 /* WebExtensionAPIWindowsEvent.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = WebExtensionAPIWindowsEvent.idl; sourceTree = "<group>"; };
1C5ACF9E2A96E15400C041C0 /* WebExtensionAPIWindows.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = WebExtensionAPIWindows.idl; sourceTree = "<group>"; };
1C5ACF9F2A96E15E00C041C0 /* WebExtensionAPITabs.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = WebExtensionAPITabs.idl; sourceTree = "<group>"; };
1C5ACFA12A96F8C200C041C0 /* JSWebExtensionAPIWindows.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSWebExtensionAPIWindows.h; sourceTree = "<group>"; };
1C5ACFA22A96F8C300C041C0 /* JSWebExtensionAPIWindows.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = JSWebExtensionAPIWindows.mm; sourceTree = "<group>"; };
1C5ACFA32A96F8C300C041C0 /* JSWebExtensionAPIWindowsEvent.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = JSWebExtensionAPIWindowsEvent.mm; sourceTree = "<group>"; };
1C5ACFA42A96F8C300C041C0 /* JSWebExtensionAPIWindowsEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSWebExtensionAPIWindowsEvent.h; sourceTree = "<group>"; };
1C5ACFA92A96F8D400C041C0 /* JSWebExtensionAPITabs.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = JSWebExtensionAPITabs.mm; sourceTree = "<group>"; };
1C5ACFAA2A96F8D500C041C0 /* JSWebExtensionAPITabs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSWebExtensionAPITabs.h; sourceTree = "<group>"; };
1C5ACFAD2A96F9D300C041C0 /* WebExtensionAPITabs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebExtensionAPITabs.h; sourceTree = "<group>"; };
1C5ACFAF2A96F9F200C041C0 /* WebExtensionAPIWindows.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebExtensionAPIWindows.h; sourceTree = "<group>"; };
1C5ACFB12A96FA0000C041C0 /* WebExtensionAPIWindowsEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebExtensionAPIWindowsEvent.h; sourceTree = "<group>"; };
1C5ACFB32A96FA1900C041C0 /* WebExtensionAPIWindowsEventCocoa.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebExtensionAPIWindowsEventCocoa.mm; sourceTree = "<group>"; };
1C5ACFB52A96FA2800C041C0 /* WebExtensionAPITabsCocoa.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebExtensionAPITabsCocoa.mm; sourceTree = "<group>"; };
1C5ACFB72A96FA3200C041C0 /* WebExtensionAPIWindowsCocoa.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebExtensionAPIWindowsCocoa.mm; sourceTree = "<group>"; };
1C5DC44E29087E7F0061EC62 /* WebExtensionAPIObject.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WebExtensionAPIObject.h; sourceTree = "<group>"; };
1C5DC44F290888140061EC62 /* WebExtensionAPINamespace.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WebExtensionAPINamespace.h; sourceTree = "<group>"; };
1C5DC4512908A9D00061EC62 /* WebExtensionAPINamespaceCocoa.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebExtensionAPINamespaceCocoa.mm; sourceTree = "<group>"; };
Expand Down Expand Up @@ -8511,9 +8538,12 @@
1C5DC44E29087E7F0061EC62 /* WebExtensionAPIObject.h */,
B65DA1D1294BC25300DB503A /* WebExtensionAPIPermissions.h */,
1C5DC469290B239C0061EC62 /* WebExtensionAPIRuntime.h */,
1C5ACFAD2A96F9D300C041C0 /* WebExtensionAPITabs.h */,
1C15497B2926BF6F001B9E5B /* WebExtensionAPITest.h */,
3375A37329429DF50028536D /* WebExtensionAPIWebNavigation.h */,
33F6833D293FFA4B005C63C0 /* WebExtensionAPIWebNavigationEvent.h */,
1C5ACFAF2A96F9F200C041C0 /* WebExtensionAPIWindows.h */,
1C5ACFB12A96FA0000C041C0 /* WebExtensionAPIWindowsEvent.h */,
);
path = API;
sourceTree = "<group>";
Expand All @@ -8527,9 +8557,12 @@
1C5DC4512908A9D00061EC62 /* WebExtensionAPINamespaceCocoa.mm */,
B65DA1D2294BC26300DB503A /* WebExtensionAPIPermissionsCocoa.mm */,
1C5DC464290B23890061EC62 /* WebExtensionAPIRuntimeCocoa.mm */,
1C5ACFB52A96FA2800C041C0 /* WebExtensionAPITabsCocoa.mm */,
1C1549792926BF02001B9E5B /* WebExtensionAPITestCocoa.mm */,
3375A37029429DDA0028536D /* WebExtensionAPIWebNavigationCocoa.mm */,
33F6833F293FFB3F005C63C0 /* WebExtensionAPIWebNavigationEventCocoa.mm */,
1C5ACFB72A96FA3200C041C0 /* WebExtensionAPIWindowsCocoa.mm */,
1C5ACFB32A96FA1900C041C0 /* WebExtensionAPIWindowsEventCocoa.mm */,
);
path = Cocoa;
sourceTree = "<group>";
Expand Down Expand Up @@ -8670,9 +8703,12 @@
1C9DD9A428FA19A30093BDB0 /* WebExtensionAPINamespace.idl */,
B6544F76293560B000034EB0 /* WebExtensionAPIPermissions.idl */,
1C9DD99C28FA19A30093BDB0 /* WebExtensionAPIRuntime.idl */,
1C5ACF9F2A96E15E00C041C0 /* WebExtensionAPITabs.idl */,
1CDA62A02925DA3700D90390 /* WebExtensionAPITest.idl */,
33066F09293A90DC008C5749 /* WebExtensionAPIWebNavigation.idl */,
3302293F2938263E001F00FA /* WebExtensionAPIWebNavigationEvent.idl */,
1C5ACF9E2A96E15400C041C0 /* WebExtensionAPIWindows.idl */,
1C5ACF9D2A96E15400C041C0 /* WebExtensionAPIWindowsEvent.idl */,
);
path = Interfaces;
sourceTree = "<group>";
Expand Down Expand Up @@ -13270,11 +13306,17 @@
B61AFA4729510D0F008220B1 /* JSWebExtensionAPIPermissions.mm */,
1C5DC461290B1C470061EC62 /* JSWebExtensionAPIRuntime.h */,
1C5DC463290B1C470061EC62 /* JSWebExtensionAPIRuntime.mm */,
1C5ACFAA2A96F8D500C041C0 /* JSWebExtensionAPITabs.h */,
1C5ACFA92A96F8D400C041C0 /* JSWebExtensionAPITabs.mm */,
1C15497D2926C05A001B9E5B /* JSWebExtensionAPITest.h */,
1C15497E2926C05A001B9E5B /* JSWebExtensionAPITest.mm */,
3375A3762942A19C0028536D /* JSWebExtensionAPIWebNavigation.mm */,
33F68335293FF6F5005C63C0 /* JSWebExtensionAPIWebNavigationEvent.h */,
33F68336293FF6F5005C63C0 /* JSWebExtensionAPIWebNavigationEvent.mm */,
1C5ACFA12A96F8C200C041C0 /* JSWebExtensionAPIWindows.h */,
1C5ACFA22A96F8C300C041C0 /* JSWebExtensionAPIWindows.mm */,
1C5ACFA42A96F8C300C041C0 /* JSWebExtensionAPIWindowsEvent.h */,
1C5ACFA32A96F8C300C041C0 /* JSWebExtensionAPIWindowsEvent.mm */,
2984F586164BA095004BC0C6 /* LegacyCustomProtocolManagerMessageReceiver.cpp */,
2984F587164BA095004BC0C6 /* LegacyCustomProtocolManagerMessages.h */,
2984F57A164B915F004BC0C6 /* LegacyCustomProtocolManagerProxyMessageReceiver.cpp */,
Expand Down Expand Up @@ -14387,6 +14429,9 @@
7BE37F9327C7CA51007A6CD3 /* IPCStreamTesterIdentifier.h in Headers */,
9B47908F253151CC00EC11AB /* JSIPCBinding.h in Headers */,
B61AFA4829510D0F008220B1 /* JSWebExtensionAPIPermissions.h in Headers */,
1C5ACFAC2A96F8D500C041C0 /* JSWebExtensionAPITabs.h in Headers */,
1C5ACFA52A96F8C400C041C0 /* JSWebExtensionAPIWindows.h in Headers */,
1C5ACFA82A96F8C400C041C0 /* JSWebExtensionAPIWindowsEvent.h in Headers */,
1C5DC46F290B27260061EC62 /* JSWebExtensionWrappable.h in Headers */,
1C5DC46E290B27260061EC62 /* JSWebExtensionWrapper.h in Headers */,
C1663E5B24AEAA2F00C6A3B2 /* LaunchServicesDatabaseXPCConstants.h in Headers */,
Expand Down Expand Up @@ -14850,9 +14895,12 @@
1C5DC46B290B271E0061EC62 /* WebExtensionAPIObject.h in Headers */,
B61AFA392950DFB3008220B1 /* WebExtensionAPIPermissions.h in Headers */,
1C5DC46A290B271A0061EC62 /* WebExtensionAPIRuntime.h in Headers */,
1C5ACFAE2A96F9D300C041C0 /* WebExtensionAPITabs.h in Headers */,
1C15497C2926BF75001B9E5B /* WebExtensionAPITest.h in Headers */,
3375A37529429DF50028536D /* WebExtensionAPIWebNavigation.h in Headers */,
33F6833E293FFA4B005C63C0 /* WebExtensionAPIWebNavigationEvent.h in Headers */,
1C5ACFB02A96F9F200C041C0 /* WebExtensionAPIWindows.h in Headers */,
1C5ACFB22A96FA0000C041C0 /* WebExtensionAPIWindowsEvent.h in Headers */,
1C0234D928A01B1C00AC1E5B /* WebExtensionContextIdentifier.h in Headers */,
1C0234D228A00FF000AC1E5B /* WebExtensionContextMessages.h in Headers */,
1C0234DA28A01B2100AC1E5B /* WebExtensionContextParameters.h in Headers */,
Expand Down Expand Up @@ -17003,9 +17051,12 @@
1C5DC4552908AC900061EC62 /* JSWebExtensionAPINamespace.mm in Sources */,
B61AFA4929510D0F008220B1 /* JSWebExtensionAPIPermissions.mm in Sources */,
1C5DC472290B33A60061EC62 /* JSWebExtensionAPIRuntime.mm in Sources */,
1C5ACFAB2A96F8D500C041C0 /* JSWebExtensionAPITabs.mm in Sources */,
1C15497F2926C073001B9E5B /* JSWebExtensionAPITest.mm in Sources */,
3375A3772942A19D0028536D /* JSWebExtensionAPIWebNavigation.mm in Sources */,
33F68338293FF6F5005C63C0 /* JSWebExtensionAPIWebNavigationEvent.mm in Sources */,
1C5ACFA62A96F8C400C041C0 /* JSWebExtensionAPIWindows.mm in Sources */,
1C5ACFA72A96F8C400C041C0 /* JSWebExtensionAPIWindowsEvent.mm in Sources */,
1C5DC45F2909B05A0061EC62 /* JSWebExtensionWrapperCocoa.mm in Sources */,
C14D37FE24ACE086007FF014 /* LaunchServicesDatabaseManager.mm in Sources */,
C1710CF724AA643200D7C112 /* LaunchServicesDatabaseObserver.mm in Sources */,
Expand Down Expand Up @@ -17327,9 +17378,12 @@
1C5DC4522908A9D00061EC62 /* WebExtensionAPINamespaceCocoa.mm in Sources */,
B65DA1D3294BC26300DB503A /* WebExtensionAPIPermissionsCocoa.mm in Sources */,
1C5DC466290B23890061EC62 /* WebExtensionAPIRuntimeCocoa.mm in Sources */,
1C5ACFB62A96FA2800C041C0 /* WebExtensionAPITabsCocoa.mm in Sources */,
1C15497A2926BF03001B9E5B /* WebExtensionAPITestCocoa.mm in Sources */,
3375A37129429DDA0028536D /* WebExtensionAPIWebNavigationCocoa.mm in Sources */,
33F68340293FFB3F005C63C0 /* WebExtensionAPIWebNavigationEventCocoa.mm in Sources */,
1C5ACFB82A96FA3200C041C0 /* WebExtensionAPIWindowsCocoa.mm in Sources */,
1C5ACFB42A96FA1900C041C0 /* WebExtensionAPIWindowsEventCocoa.mm in Sources */,
1C627478288A1E1D00CED3A2 /* WebExtensionCocoa.mm in Sources */,
1C2B4D3F2A815ACC00C528A1 /* WebExtensionContextAPIAlarmsCocoa.mm in Sources */,
B6544F9F2939457C00034EB0 /* WebExtensionContextAPIEventCocoa.mm in Sources */,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,43 +49,81 @@

WebExtensionAPIAlarms& WebExtensionAPINamespace::alarms()
{
// Documentation: https://developer.mozilla.org/docs/Mozilla/Add-ons/WebExtensions/API/alarms

if (!m_alarms)
m_alarms = WebExtensionAPIAlarms::create(forMainWorld(), runtime(), extensionContext());

return *m_alarms;
}

WebExtensionAPIExtension& WebExtensionAPINamespace::extension()
{
// Documentation: https://developer.mozilla.org/docs/Mozilla/Add-ons/WebExtensions/API/extension

if (!m_extension)
m_extension = WebExtensionAPIExtension::create(forMainWorld(), runtime(), extensionContext());

return *m_extension;
}

WebExtensionAPIPermissions& WebExtensionAPINamespace::permissions()
{
// Documentation: https://developer.mozilla.org/docs/Mozilla/Add-ons/WebExtensions/API/permissions

if (!m_permissions)
m_permissions = WebExtensionAPIPermissions::create(forMainWorld(), runtime(), extensionContext());

return *m_permissions;
}

WebExtensionAPIRuntime& WebExtensionAPINamespace::runtime()
{
// Documentation: https://developer.mozilla.org/docs/Mozilla/Add-ons/WebExtensions/API/runtime

if (!m_runtime)
m_runtime = WebExtensionAPIRuntime::create(forMainWorld(), extensionContext());

return *m_runtime;
}

WebExtensionAPITabs& WebExtensionAPINamespace::tabs()
{
// Documentation: https://developer.mozilla.org/docs/Mozilla/Add-ons/WebExtensions/API/tabs

if (!m_tabs)
m_tabs = WebExtensionAPITabs::create(forMainWorld(), runtime(), extensionContext());

return *m_tabs;
}

WebExtensionAPITest& WebExtensionAPINamespace::test()
{
// Documentation: None (Testing Only)

if (!m_test)
m_test = WebExtensionAPITest::create(forMainWorld(), runtime(), extensionContext());

return *m_test;
}

WebExtensionAPIWindows& WebExtensionAPINamespace::windows()
{
// Documentation: https://developer.mozilla.org/docs/Mozilla/Add-ons/WebExtensions/API/windows

if (!m_windows)
m_windows = WebExtensionAPIWindows::create(forMainWorld(), runtime(), extensionContext());

return *m_windows;
}

WebExtensionAPIWebNavigation& WebExtensionAPINamespace::webNavigation()
{
// Documentation: https://developer.mozilla.org/docs/Mozilla/Add-ons/WebExtensions/API/webNavigation

if (!m_webNavigation)
m_webNavigation = WebExtensionAPIWebNavigation::create(forMainWorld(), runtime(), extensionContext());

return *m_webNavigation;
}

Expand Down
Loading

0 comments on commit aebc196

Please sign in to comment.