[webkit-changes] [WebKit/WebKit] 4485c4: Hook up storage for persistent registered content ...

kiaraarose noreply at github.com
Fri Dec 8 13:43:30 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 4485c484a89d836f7ddac832426ddfae1ea14fad
      https://github.com/WebKit/WebKit/commit/4485c484a89d836f7ddac832426ddfae1ea14fad
  Author: Kiara Rose <kiara_rose at apple.com>
  Date:   2023-12-08 (Fri, 08 Dec 2023)

  Changed paths:
    A Source/WebKit/Shared/Extensions/_WKWebExtensionRegisteredScriptsSQLiteStore.h
    A Source/WebKit/Shared/Extensions/_WKWebExtensionRegisteredScriptsSQLiteStore.mm
    M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIScriptingCocoa.mm
    M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm
    M Source/WebKit/UIProcess/Extensions/WebExtensionContext.h
    M Source/WebKit/WebKit.xcodeproj/project.pbxproj
    M Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIScripting.h

  Log Message:
  -----------
  Hook up storage for persistent registered content scripts.
https://bugs.webkit.org/show_bug.cgi?id=265899

Reviewed by Timothy Hatcher.

This is the final work for scripting API. This patch creates a _WKWebExtensionRegisteredScriptsSQLiteStore
which will be used to manage storage for registered scripts. This patch also loads these scripts
from storage when an extension loads.

When an extension updates, we will need to remove these scripts from storage since they shouldn't
persist in this case. This is being tracked in https://bugs.webkit.org/show_bug.cgi?id=249266.

* Source/WebKit/Shared/Extensions/_WKWebExtensionRegisteredScriptsSQLiteStore.h: Added.
* Source/WebKit/Shared/Extensions/_WKWebExtensionRegisteredScriptsSQLiteStore.mm: Added.
(rowFilterStringFromRowKeys):
(-[_WKWebExtensionRegisteredScriptsSQLiteStore initWithUniqueIdentifier:directory:usesInMemoryDatabase:]):
(-[_WKWebExtensionRegisteredScriptsSQLiteStore updateScripts:completionHandler:]):
(-[_WKWebExtensionRegisteredScriptsSQLiteStore deleteScriptsWithIDs:completionHandler:]):
(-[_WKWebExtensionRegisteredScriptsSQLiteStore addScripts:completionHandler:]):
(-[_WKWebExtensionRegisteredScriptsSQLiteStore getScriptsWithCompletionHandler:]):
(-[_WKWebExtensionRegisteredScriptsSQLiteStore _getScriptsWithOutErrorMessage:]):
(-[_WKWebExtensionRegisteredScriptsSQLiteStore _getKeysAndValuesFromRowEnumerator:]):
(-[_WKWebExtensionRegisteredScriptsSQLiteStore _insertScript:inDatabase:errorMessage:]):
(-[_WKWebExtensionRegisteredScriptsSQLiteStore _currentDatabaseSchemaVersion]):
(-[_WKWebExtensionRegisteredScriptsSQLiteStore _databaseURL]):
(-[_WKWebExtensionRegisteredScriptsSQLiteStore _createFreshDatabaseSchema]):
(-[_WKWebExtensionRegisteredScriptsSQLiteStore _resetDatabaseSchema]):
(-[_WKWebExtensionRegisteredScriptsSQLiteStore _isDatabaseEmpty]):
* Source/WebKit/Shared/Extensions/_WKWebExtensionSQLiteStore.mm:
* Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIScriptingCocoa.mm:
(WebKit::WebExtensionContext::scriptingRegisterContentScripts):
(WebKit::WebExtensionContext::scriptingUpdateRegisteredScripts):
(WebKit::WebExtensionContext::scriptingGetRegisteredScripts):
(WebKit::WebExtensionContext::scriptingUnregisterContentScripts):
(WebKit::WebExtensionContext::loadRegisteredContentScripts):
(WebKit::WebExtensionContext::createInjectedContentForScripts):
Renamed from parseRegisteredContentScripts. Parse scripts and create injected content data.
(WebKit::WebExtensionContext::parseRegisteredContentScripts): Deleted.

* Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm:
(WebKit::WebExtensionContext::load):
(WebKit::WebExtensionContext::unload):
(WebKit::WebExtensionContext::invalidateStorage):
Invalidate all references to extension storage.

* Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionControllerConfigurationCocoa.mm:
(WebKit::WebExtensionControllerConfiguration::registeredContentScriptsDirectory):
* Source/WebKit/UIProcess/Extensions/WebExtensionContext.h:
* Source/WebKit/UIProcess/Extensions/WebExtensionControllerConfiguration.h:
* Source/WebKit/WebKit.xcodeproj/project.pbxproj:
* Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIScriptingCocoa.mm:
(WebKit::parseRegisteredContentScripts):
(WebKit::WebExtensionAPIScripting::parseRegisteredContentScripts): Deleted.
* Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIScripting.h:

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




More information about the webkit-changes mailing list