_WKUserContentWorld should be a wrapper around WKContentWorld
authorachristensen@apple.com <achristensen@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 27 Feb 2020 04:35:24 +0000 (04:35 +0000)
committerachristensen@apple.com <achristensen@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 27 Feb 2020 04:35:24 +0000 (04:35 +0000)
https://bugs.webkit.org/show_bug.cgi?id=208274

Reviewed by Brady Eidson.

Source/WebKit:

Various SPIs were getting confused between the two.
Updated API tests which expected pointer equality, which is no longer true or important.

* Shared/API/APIObject.h:
* Shared/Cocoa/APIObject.mm:
(API::Object::newObject):
* Sources.txt:
* UIProcess/API/APIContentWorld.cpp:
(API::ContentWorld::ContentWorld):
(API::ContentWorldBase::ContentWorldBase): Deleted.
* UIProcess/API/APIContentWorld.h:
(API::ContentWorldBase::identifier const): Deleted.
(API::ContentWorldBase::name const): Deleted.
(API::ContentWorldBase::worldData const): Deleted.
(API::ContentWorldBase::ContentWorldBase): Deleted.
* UIProcess/API/APIUserContentWorld.cpp: Removed.
* UIProcess/API/APIUserContentWorld.h: Removed.
* UIProcess/API/APIUserScript.cpp:
(API::UserScript::UserScript):
* UIProcess/API/APIUserScript.h:
* UIProcess/API/APIUserStyleSheet.cpp:
(API::UserStyleSheet::UserStyleSheet):
* UIProcess/API/APIUserStyleSheet.h:
* UIProcess/API/C/WKPageGroup.cpp:
(WKPageGroupAddUserStyleSheet):
(WKPageGroupAddUserScript):
* UIProcess/API/C/WKUserScriptRef.cpp:
(WKUserScriptCreateWithSource):
* UIProcess/API/Cocoa/WKContentWorld.mm:
(-[WKContentWorld _userContentWorld]):
* UIProcess/API/Cocoa/WKUserContentController.mm:
(-[WKUserContentController addScriptMessageHandler:name:]):
(-[WKUserContentController removeScriptMessageHandlerForName:]):
(-[WKUserContentController _removeAllUserScriptsAssociatedWithUserContentWorld:]):
(-[WKUserContentController _removeAllUserStyleSheetsAssociatedWithUserContentWorld:]):
(-[WKUserContentController _addScriptMessageHandler:name:userContentWorld:]):
(-[WKUserContentController _removeScriptMessageHandlerForName:userContentWorld:]):
(-[WKUserContentController _removeAllScriptMessageHandlersAssociatedWithUserContentWorld:]):
* UIProcess/API/Cocoa/WKUserScript.mm:
(-[WKUserScript initWithSource:injectionTime:forMainFrameOnly:]):
(-[WKUserScript _initWithSource:injectionTime:forMainFrameOnly:legacyWhitelist:legacyBlacklist:userContentWorld:]):
(-[WKUserScript _initWithSource:injectionTime:forMainFrameOnly:legacyWhitelist:legacyBlacklist:associatedURL:userContentWorld:]):
(-[WKUserScript _userContentWorld]):
* UIProcess/API/Cocoa/_WKUserContentWorld.mm:
(-[_WKUserContentWorld _initWithName:]):
(-[_WKUserContentWorld _init]):
(-[_WKUserContentWorld _initWithContentWorld:]):
(+[_WKUserContentWorld worldWithName:]):
(+[_WKUserContentWorld normalWorld]):
(-[_WKUserContentWorld name]):
(-[_WKUserContentWorld _apiObject]):
(-[_WKUserContentWorld dealloc]): Deleted.
* UIProcess/API/Cocoa/_WKUserContentWorldInternal.h:
* UIProcess/API/Cocoa/_WKUserStyleSheet.mm:
(-[_WKUserStyleSheet initWithSource:forMainFrameOnly:]):
(-[_WKUserStyleSheet initWithSource:forMainFrameOnly:legacyWhitelist:legacyBlacklist:userContentWorld:]):
(-[_WKUserStyleSheet initWithSource:forMainFrameOnly:legacyWhitelist:legacyBlacklist:baseURL:userContentWorld:]):
* UIProcess/UserContent/WebScriptMessageHandler.cpp:
(WebKit::WebScriptMessageHandler::create):
(WebKit::WebScriptMessageHandler::WebScriptMessageHandler):
* UIProcess/UserContent/WebScriptMessageHandler.h:
(WebKit::WebScriptMessageHandler::world):
* UIProcess/UserContent/WebUserContentControllerProxy.cpp:
(WebKit::WebUserContentControllerProxy::addProcess):
(WebKit::WebUserContentControllerProxy::addContentWorldUse):
(WebKit::WebUserContentControllerProxy::shouldSendRemoveContentWorldsMessage):
(WebKit::WebUserContentControllerProxy::removeContentWorldUses):
(WebKit::WebUserContentControllerProxy::addUserScript):
(WebKit::WebUserContentControllerProxy::removeUserScript):
(WebKit::WebUserContentControllerProxy::removeAllUserScripts):
(WebKit::WebUserContentControllerProxy::addUserStyleSheet):
(WebKit::WebUserContentControllerProxy::removeUserStyleSheet):
(WebKit::WebUserContentControllerProxy::removeAllUserStyleSheets):
(WebKit::WebUserContentControllerProxy::addUserScriptMessageHandler):
(WebKit::WebUserContentControllerProxy::removeUserMessageHandlerForName):
(WebKit::WebUserContentControllerProxy::removeAllUserMessageHandlers):
(WebKit::WebUserContentControllerProxy::addUserContentWorldUse): Deleted.
(WebKit::WebUserContentControllerProxy::shouldSendRemoveUserContentWorldsMessage): Deleted.
(WebKit::WebUserContentControllerProxy::removeUserContentWorldUses): Deleted.
* UIProcess/UserContent/WebUserContentControllerProxy.h:
* WebKit.xcodeproj/project.pbxproj:
* WebProcess/UserContent/WebUserContentController.cpp:
(WebKit::WebUserContentController::addContentWorld):
(WebKit::WebUserContentController::addContentWorlds):
(WebKit::WebUserContentController::removeContentWorlds):
(WebKit::WebUserContentController::addUserScripts):
(WebKit::WebUserContentController::removeUserScript):
(WebKit::WebUserContentController::removeAllUserScripts):
(WebKit::WebUserContentController::addUserStyleSheets):
(WebKit::WebUserContentController::removeUserStyleSheet):
(WebKit::WebUserContentController::removeAllUserStyleSheets):
(WebKit::WebUserContentController::addUserScriptMessageHandlers):
(WebKit::WebUserContentController::removeUserScriptMessageHandler):
(WebKit::WebUserContentController::removeAllUserScriptMessageHandlers):
(WebKit::WebUserContentController::addUserContentWorld): Deleted.
(WebKit::WebUserContentController::addUserContentWorlds): Deleted.
(WebKit::WebUserContentController::removeUserContentWorlds): Deleted.
* WebProcess/UserContent/WebUserContentController.h:
* WebProcess/UserContent/WebUserContentController.messages.in:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::m_processDisplayName):
(WebKit::WebPage::runJavaScriptInMainFrameScriptWorld):

Tools:

* TestWebKitAPI/Tests/WebKitCocoa/UserContentWorld.mm:
(TEST):
* TestWebKitAPI/Tests/WebKitCocoa/WKWebViewEvaluateJavaScript.mm:
(TEST):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@257552 268f45cc-cd09-0410-ab3c-d52691b4dbfc

37 files changed:
Source/WebKit/ChangeLog
Source/WebKit/Shared/API/APIObject.h
Source/WebKit/Shared/Cocoa/APIObject.mm
Source/WebKit/Sources.txt
Source/WebKit/UIProcess/API/APIContentWorld.cpp
Source/WebKit/UIProcess/API/APIContentWorld.h
Source/WebKit/UIProcess/API/APIUserContentWorld.cpp [deleted file]
Source/WebKit/UIProcess/API/APIUserContentWorld.h [deleted file]
Source/WebKit/UIProcess/API/APIUserScript.cpp
Source/WebKit/UIProcess/API/APIUserScript.h
Source/WebKit/UIProcess/API/APIUserStyleSheet.cpp
Source/WebKit/UIProcess/API/APIUserStyleSheet.h
Source/WebKit/UIProcess/API/C/WKPageGroup.cpp
Source/WebKit/UIProcess/API/C/WKUserScriptRef.cpp
Source/WebKit/UIProcess/API/Cocoa/WKContentWorld.mm
Source/WebKit/UIProcess/API/Cocoa/WKUserContentController.mm
Source/WebKit/UIProcess/API/Cocoa/WKUserScript.mm
Source/WebKit/UIProcess/API/Cocoa/WKUserScriptPrivate.h
Source/WebKit/UIProcess/API/Cocoa/_WKUserContentWorld.mm
Source/WebKit/UIProcess/API/Cocoa/_WKUserContentWorldInternal.h
Source/WebKit/UIProcess/API/Cocoa/_WKUserStyleSheet.mm
Source/WebKit/UIProcess/API/glib/WebKitUserContent.cpp
Source/WebKit/UIProcess/API/glib/WebKitUserContentManager.cpp
Source/WebKit/UIProcess/API/glib/WebKitUserContentPrivate.h
Source/WebKit/UIProcess/API/gtk/WebKitRemoteInspectorProtocolHandler.cpp
Source/WebKit/UIProcess/Inspector/socket/RemoteInspectorProtocolHandler.cpp
Source/WebKit/UIProcess/UserContent/WebScriptMessageHandler.cpp
Source/WebKit/UIProcess/UserContent/WebScriptMessageHandler.h
Source/WebKit/UIProcess/UserContent/WebUserContentControllerProxy.cpp
Source/WebKit/UIProcess/UserContent/WebUserContentControllerProxy.h
Source/WebKit/WebKit.xcodeproj/project.pbxproj
Source/WebKit/WebProcess/UserContent/WebUserContentController.cpp
Source/WebKit/WebProcess/UserContent/WebUserContentController.h
Source/WebKit/WebProcess/UserContent/WebUserContentController.messages.in
Source/WebKit/WebProcess/WebPage/WebPage.cpp
Tools/ChangeLog
Tools/TestWebKitAPI/Tests/WebKitCocoa/UserContentWorld.mm

index 2a58e98..6a5cca6 100644 (file)
@@ -1,3 +1,113 @@
+2020-02-26  Alex Christensen  <achristensen@webkit.org>
+
+        _WKUserContentWorld should be a wrapper around WKContentWorld
+        https://bugs.webkit.org/show_bug.cgi?id=208274
+
+        Reviewed by Brady Eidson.
+
+        Various SPIs were getting confused between the two.
+        Updated API tests which expected pointer equality, which is no longer true or important.
+
+        * Shared/API/APIObject.h:
+        * Shared/Cocoa/APIObject.mm:
+        (API::Object::newObject):
+        * Sources.txt:
+        * UIProcess/API/APIContentWorld.cpp:
+        (API::ContentWorld::ContentWorld):
+        (API::ContentWorldBase::ContentWorldBase): Deleted.
+        * UIProcess/API/APIContentWorld.h:
+        (API::ContentWorldBase::identifier const): Deleted.
+        (API::ContentWorldBase::name const): Deleted.
+        (API::ContentWorldBase::worldData const): Deleted.
+        (API::ContentWorldBase::ContentWorldBase): Deleted.
+        * UIProcess/API/APIUserContentWorld.cpp: Removed.
+        * UIProcess/API/APIUserContentWorld.h: Removed.
+        * UIProcess/API/APIUserScript.cpp:
+        (API::UserScript::UserScript):
+        * UIProcess/API/APIUserScript.h:
+        * UIProcess/API/APIUserStyleSheet.cpp:
+        (API::UserStyleSheet::UserStyleSheet):
+        * UIProcess/API/APIUserStyleSheet.h:
+        * UIProcess/API/C/WKPageGroup.cpp:
+        (WKPageGroupAddUserStyleSheet):
+        (WKPageGroupAddUserScript):
+        * UIProcess/API/C/WKUserScriptRef.cpp:
+        (WKUserScriptCreateWithSource):
+        * UIProcess/API/Cocoa/WKContentWorld.mm:
+        (-[WKContentWorld _userContentWorld]):
+        * UIProcess/API/Cocoa/WKUserContentController.mm:
+        (-[WKUserContentController addScriptMessageHandler:name:]):
+        (-[WKUserContentController removeScriptMessageHandlerForName:]):
+        (-[WKUserContentController _removeAllUserScriptsAssociatedWithUserContentWorld:]):
+        (-[WKUserContentController _removeAllUserStyleSheetsAssociatedWithUserContentWorld:]):
+        (-[WKUserContentController _addScriptMessageHandler:name:userContentWorld:]):
+        (-[WKUserContentController _removeScriptMessageHandlerForName:userContentWorld:]):
+        (-[WKUserContentController _removeAllScriptMessageHandlersAssociatedWithUserContentWorld:]):
+        * UIProcess/API/Cocoa/WKUserScript.mm:
+        (-[WKUserScript initWithSource:injectionTime:forMainFrameOnly:]):
+        (-[WKUserScript _initWithSource:injectionTime:forMainFrameOnly:legacyWhitelist:legacyBlacklist:userContentWorld:]):
+        (-[WKUserScript _initWithSource:injectionTime:forMainFrameOnly:legacyWhitelist:legacyBlacklist:associatedURL:userContentWorld:]):
+        (-[WKUserScript _userContentWorld]):
+        * UIProcess/API/Cocoa/_WKUserContentWorld.mm:
+        (-[_WKUserContentWorld _initWithName:]):
+        (-[_WKUserContentWorld _init]):
+        (-[_WKUserContentWorld _initWithContentWorld:]):
+        (+[_WKUserContentWorld worldWithName:]):
+        (+[_WKUserContentWorld normalWorld]):
+        (-[_WKUserContentWorld name]):
+        (-[_WKUserContentWorld _apiObject]):
+        (-[_WKUserContentWorld dealloc]): Deleted.
+        * UIProcess/API/Cocoa/_WKUserContentWorldInternal.h:
+        * UIProcess/API/Cocoa/_WKUserStyleSheet.mm:
+        (-[_WKUserStyleSheet initWithSource:forMainFrameOnly:]):
+        (-[_WKUserStyleSheet initWithSource:forMainFrameOnly:legacyWhitelist:legacyBlacklist:userContentWorld:]):
+        (-[_WKUserStyleSheet initWithSource:forMainFrameOnly:legacyWhitelist:legacyBlacklist:baseURL:userContentWorld:]):
+        * UIProcess/UserContent/WebScriptMessageHandler.cpp:
+        (WebKit::WebScriptMessageHandler::create):
+        (WebKit::WebScriptMessageHandler::WebScriptMessageHandler):
+        * UIProcess/UserContent/WebScriptMessageHandler.h:
+        (WebKit::WebScriptMessageHandler::world):
+        * UIProcess/UserContent/WebUserContentControllerProxy.cpp:
+        (WebKit::WebUserContentControllerProxy::addProcess):
+        (WebKit::WebUserContentControllerProxy::addContentWorldUse):
+        (WebKit::WebUserContentControllerProxy::shouldSendRemoveContentWorldsMessage):
+        (WebKit::WebUserContentControllerProxy::removeContentWorldUses):
+        (WebKit::WebUserContentControllerProxy::addUserScript):
+        (WebKit::WebUserContentControllerProxy::removeUserScript):
+        (WebKit::WebUserContentControllerProxy::removeAllUserScripts):
+        (WebKit::WebUserContentControllerProxy::addUserStyleSheet):
+        (WebKit::WebUserContentControllerProxy::removeUserStyleSheet):
+        (WebKit::WebUserContentControllerProxy::removeAllUserStyleSheets):
+        (WebKit::WebUserContentControllerProxy::addUserScriptMessageHandler):
+        (WebKit::WebUserContentControllerProxy::removeUserMessageHandlerForName):
+        (WebKit::WebUserContentControllerProxy::removeAllUserMessageHandlers):
+        (WebKit::WebUserContentControllerProxy::addUserContentWorldUse): Deleted.
+        (WebKit::WebUserContentControllerProxy::shouldSendRemoveUserContentWorldsMessage): Deleted.
+        (WebKit::WebUserContentControllerProxy::removeUserContentWorldUses): Deleted.
+        * UIProcess/UserContent/WebUserContentControllerProxy.h:
+        * WebKit.xcodeproj/project.pbxproj:
+        * WebProcess/UserContent/WebUserContentController.cpp:
+        (WebKit::WebUserContentController::addContentWorld):
+        (WebKit::WebUserContentController::addContentWorlds):
+        (WebKit::WebUserContentController::removeContentWorlds):
+        (WebKit::WebUserContentController::addUserScripts):
+        (WebKit::WebUserContentController::removeUserScript):
+        (WebKit::WebUserContentController::removeAllUserScripts):
+        (WebKit::WebUserContentController::addUserStyleSheets):
+        (WebKit::WebUserContentController::removeUserStyleSheet):
+        (WebKit::WebUserContentController::removeAllUserStyleSheets):
+        (WebKit::WebUserContentController::addUserScriptMessageHandlers):
+        (WebKit::WebUserContentController::removeUserScriptMessageHandler):
+        (WebKit::WebUserContentController::removeAllUserScriptMessageHandlers):
+        (WebKit::WebUserContentController::addUserContentWorld): Deleted.
+        (WebKit::WebUserContentController::addUserContentWorlds): Deleted.
+        (WebKit::WebUserContentController::removeUserContentWorlds): Deleted.
+        * WebProcess/UserContent/WebUserContentController.h:
+        * WebProcess/UserContent/WebUserContentController.messages.in:
+        * WebProcess/WebPage/WebPage.cpp:
+        (WebKit::m_processDisplayName):
+        (WebKit::WebPage::runJavaScriptInMainFrameScriptWorld):
+
 2020-02-26  Ryosuke Niwa  <rniwa@webkit.org>
 
         Create AudioDestination in the GPU process
index 9056ac8..27b7e3a 100644 (file)
@@ -165,7 +165,6 @@ public:
         TextChecker,
         URLSchemeTask,
         UserContentController,
-        UserContentWorld,
         UserInitiatedAction,
         UserMediaPermissionCheck,
         UserMediaPermissionRequest,
index 53212fc..b05f7cb 100644 (file)
@@ -351,12 +351,6 @@ void* Object::newObject(size_t size, Type type)
         wrapper = [WKContentWorld alloc];
         break;
 
-    case Type::UserContentWorld:
-        ALLOW_DEPRECATED_DECLARATIONS_BEGIN
-        wrapper = [_WKUserContentWorld alloc];
-        ALLOW_DEPRECATED_DECLARATIONS_END
-        break;
-
     case Type::UserInitiatedAction:
         wrapper = [_WKUserInitiatedAction alloc];
         break;
index 03643e4..dccf4fa 100644 (file)
@@ -338,7 +338,6 @@ UIProcess/API/APIProcessPoolConfiguration.cpp
 UIProcess/API/APIOpenPanelParameters.cpp
 UIProcess/API/APISessionState.cpp
 UIProcess/API/APIURLSchemeTask.cpp
-UIProcess/API/APIUserContentWorld.cpp
 UIProcess/API/APIUserScript.cpp
 UIProcess/API/APIUserStyleSheet.cpp
 UIProcess/API/APIWebAuthenticationAssertionResponse.cpp
index 8f5fe56..3e49514 100644 (file)
 #include "config.h"
 #include "APIContentWorld.h"
 
-#include "APIUserContentWorld.h"
 #include "ContentWorldShared.h"
 #include <wtf/HashMap.h>
 #include <wtf/text/StringHash.h>
 
 namespace API {
 
-ContentWorldBase::ContentWorldBase(const WTF::String& name)
+ContentWorld::ContentWorld(const WTF::String& name)
     : m_name(name)
 {
     static std::once_flag once;
@@ -76,21 +75,6 @@ ContentWorld& ContentWorld::defaultClientWorld()
     return *world.get();
 }
 
-ContentWorld::ContentWorld(const WTF::String& name)
-    : ContentWorldBase(name)
-{
-}
-
-ContentWorld::ContentWorld(WebKit::ContentWorldIdentifier identifier)
-    : ContentWorldBase(identifier)
-{
-}
-
-ContentWorld::ContentWorld(const UserContentWorld& userContentWorld)
-    : ContentWorldBase(userContentWorld.identifier(), userContentWorld.name())
-{
-}
-
 ContentWorld::~ContentWorld()
 {
     if (name().isNull())
index 81052d4..4111e64 100644 (file)
 
 namespace API {
 
-class UserContentWorld;
-
-class ContentWorldBase {
-public:
-    virtual ~ContentWorldBase() = default;
-
-    WebKit::ContentWorldIdentifier identifier() const { return m_identifier; }
-    const WTF::String& name() const { return m_name; }
-    std::pair<WebKit::ContentWorldIdentifier, WTF::String> worldData() const { return { m_identifier, m_name }; }
-
-    virtual void ref() const = 0;
-    virtual void deref() const = 0;
-
-protected:
-    ContentWorldBase(const WTF::String& name);
-    ContentWorldBase(WebKit::ContentWorldIdentifier identifier)
-        : m_identifier(identifier) { }
-    ContentWorldBase(WebKit::ContentWorldIdentifier identifier, const WTF::String& name)
-        : m_identifier(identifier)
-        , m_name(name) { }
-private:
-    WebKit::ContentWorldIdentifier m_identifier;
-    WTF::String m_name;
-};
-
-class ContentWorld final : public API::ObjectImpl<API::Object::Type::ContentWorld>, public ContentWorldBase {
+class ContentWorld final : public API::ObjectImpl<API::Object::Type::ContentWorld> {
 public:
     static Ref<ContentWorld> sharedWorldWithName(const WTF::String&);
     static ContentWorld& pageContentWorld();
@@ -64,13 +39,17 @@ public:
 
     virtual ~ContentWorld();
 
-    void ref() const final { ObjectImpl::ref(); }
-    void deref() const final { ObjectImpl::deref(); }
+    WebKit::ContentWorldIdentifier identifier() const { return m_identifier; }
+    const WTF::String& name() const { return m_name; }
+    std::pair<WebKit::ContentWorldIdentifier, WTF::String> worldData() const { return { m_identifier, m_name }; }
 
 private:
     explicit ContentWorld(const WTF::String&);
-    explicit ContentWorld(WebKit::ContentWorldIdentifier);
-    explicit ContentWorld(const UserContentWorld&);
+    explicit ContentWorld(WebKit::ContentWorldIdentifier identifier)
+        : m_identifier(identifier) { }
+
+    WebKit::ContentWorldIdentifier m_identifier;
+    WTF::String m_name;
 };
 
 } // namespace API
diff --git a/Source/WebKit/UIProcess/API/APIUserContentWorld.cpp b/Source/WebKit/UIProcess/API/APIUserContentWorld.cpp
deleted file mode 100644 (file)
index 56ed6c2..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Copyright (C) 2016 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "APIUserContentWorld.h"
-
-#include "ContentWorldShared.h"
-
-namespace API {
-
-Ref<UserContentWorld> UserContentWorld::worldWithName(const WTF::String& name)
-{
-    return adoptRef(*new UserContentWorld(name));
-}
-
-Ref<UserContentWorld> UserContentWorld::fromContentWorld(const ContentWorld& contentWorld)
-{
-    return adoptRef(*new UserContentWorld(contentWorld));
-}
-
-UserContentWorld& UserContentWorld::normalWorld()
-{
-    static UserContentWorld* world = new UserContentWorld(ForNormalWorldOnly::NormalWorld);
-    return *world;
-}
-
-UserContentWorld::UserContentWorld(const WTF::String& name)
-    : ContentWorldBase(name)
-{
-}
-
-UserContentWorld::UserContentWorld(ForNormalWorldOnly)
-    : ContentWorldBase(WebKit::pageContentWorldIdentifier())
-{
-}
-
-UserContentWorld::UserContentWorld(const ContentWorld& contentWorld)
-    : ContentWorldBase(contentWorld.identifier(), contentWorld.name())
-{
-}
-
-UserContentWorld::~UserContentWorld()
-{
-}
-
-} // namespace API
diff --git a/Source/WebKit/UIProcess/API/APIUserContentWorld.h b/Source/WebKit/UIProcess/API/APIUserContentWorld.h
deleted file mode 100644 (file)
index 58630fe..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright (C) 2016 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#pragma once
-
-#include "APIContentWorld.h"
-#include <wtf/text/WTFString.h>
-
-namespace API {
-
-class UserContentWorld final : public API::ObjectImpl<API::Object::Type::UserContentWorld>, public ContentWorldBase {
-public:
-    static Ref<UserContentWorld> worldWithName(const WTF::String&);
-    static UserContentWorld& normalWorld();
-    static Ref<UserContentWorld> fromContentWorld(const ContentWorld&);
-
-    virtual ~UserContentWorld();
-
-    void ref() const final { ObjectImpl::ref(); }
-    void deref() const final { ObjectImpl::deref(); }
-
-private:
-    explicit UserContentWorld(const WTF::String&);
-    explicit UserContentWorld(const ContentWorld&);
-
-    enum class ForNormalWorldOnly { NormalWorld };
-    explicit UserContentWorld(ForNormalWorldOnly);
-
-};
-
-} // namespace API
index e7cec44..fd73f6f 100644 (file)
@@ -36,11 +36,10 @@ WTF::URL UserScript::generateUniqueURL()
     return { { }, makeString("user-script:", ++identifier) };
 }
 
-UserScript::UserScript(WebCore::UserScript userScript, API::UserContentWorld& world)
+UserScript::UserScript(WebCore::UserScript userScript, API::ContentWorld& world)
     : m_userScript(userScript)
     , m_world(world)
 {
 }
 
-
 } // namespace API
index 0333282..40b4443 100644 (file)
@@ -25,8 +25,8 @@
 
 #pragma once
 
+#include "APIContentWorld.h"
 #include "APIObject.h"
-#include "APIUserContentWorld.h"
 #include <WebCore/UserScript.h>
 #include <wtf/Identified.h>
 
@@ -36,21 +36,21 @@ class UserScript final : public ObjectImpl<Object::Type::UserScript>, public Ide
 public:
     static WTF::URL generateUniqueURL();
 
-    static Ref<UserScript> create(WebCore::UserScript userScript, API::UserContentWorld& world)
+    static Ref<UserScript> create(WebCore::UserScript userScript, API::ContentWorld& world)
     {
         return adoptRef(*new UserScript(WTFMove(userScript), world));
     }
 
-    UserScript(WebCore::UserScript, API::UserContentWorld&);
+    UserScript(WebCore::UserScript, API::ContentWorld&);
 
     const WebCore::UserScript& userScript() const { return m_userScript; }
     
-    UserContentWorld& userContentWorld() { return m_world; }
-    const UserContentWorld& userContentWorld() const { return m_world; }
+    ContentWorld& contentWorld() { return m_world; }
+    const ContentWorld& contentWorld() const { return m_world; }
     
 private:
     WebCore::UserScript m_userScript;
-    Ref<UserContentWorld> m_world;
+    Ref<ContentWorld> m_world;
 };
 
 } // namespace API
index fd69b83..03691f2 100644 (file)
@@ -36,7 +36,7 @@ WTF::URL UserStyleSheet::generateUniqueURL()
     return { { }, makeString("user-style-sheet:", ++identifier) };
 }
 
-UserStyleSheet::UserStyleSheet(WebCore::UserStyleSheet userStyleSheet, API::UserContentWorld& world)
+UserStyleSheet::UserStyleSheet(WebCore::UserStyleSheet userStyleSheet, API::ContentWorld& world)
     : m_userStyleSheet(userStyleSheet)
     , m_world(world)
 {
index 75bb95a..a2e5f0a 100644 (file)
@@ -25,8 +25,8 @@
 
 #pragma once
 
+#include "APIContentWorld.h"
 #include "APIObject.h"
-#include "APIUserContentWorld.h"
 #include <WebCore/UserStyleSheet.h>
 #include <wtf/Identified.h>
 
@@ -36,21 +36,21 @@ class UserStyleSheet final : public ObjectImpl<Object::Type::UserStyleSheet>, pu
 public:
     static WTF::URL generateUniqueURL();
 
-    static Ref<UserStyleSheet> create(WebCore::UserStyleSheet userStyleSheet, API::UserContentWorld& world)
+    static Ref<UserStyleSheet> create(WebCore::UserStyleSheet userStyleSheet, API::ContentWorld& world)
     {
         return adoptRef(*new UserStyleSheet(WTFMove(userStyleSheet), world));
     }
 
-    UserStyleSheet(WebCore::UserStyleSheet, API::UserContentWorld&);
+    UserStyleSheet(WebCore::UserStyleSheet, API::ContentWorld&);
 
     const WebCore::UserStyleSheet& userStyleSheet() const { return m_userStyleSheet; }
 
-    UserContentWorld& userContentWorld() { return m_world; }
-    const UserContentWorld& userContentWorld() const { return m_world; }
+    ContentWorld& contentWorld() { return m_world; }
+    const ContentWorld& contentWorld() const { return m_world; }
 
 private:
     WebCore::UserStyleSheet m_userStyleSheet;
-    Ref<UserContentWorld> m_world;
+    Ref<ContentWorld> m_world;
 };
 
 } // namespace API
index 0377410..050eb37 100644 (file)
@@ -28,7 +28,7 @@
 
 #include "APIArray.h"
 #include "APIContentRuleList.h"
-#include "APIUserContentWorld.h"
+#include "APIContentWorld.h"
 #include "APIUserScript.h"
 #include "APIUserStyleSheet.h"
 #include "InjectUserScriptImmediately.h"
@@ -77,7 +77,7 @@ void WKPageGroupAddUserStyleSheet(WKPageGroupRef pageGroupRef, WKStringRef sourc
     auto whitelist = toImpl(whitelistedURLPatterns);
     auto blacklist = toImpl(blacklistedURLPatterns);
 
-    Ref<API::UserStyleSheet> userStyleSheet = API::UserStyleSheet::create(WebCore::UserStyleSheet { source, (baseURLString.isEmpty() ? WTF::blankURL() :  URL(URL(), baseURLString)), whitelist ? whitelist->toStringVector() : Vector<String>(), blacklist ? blacklist->toStringVector() : Vector<String>(), toUserContentInjectedFrames(injectedFrames), WebCore::UserStyleUserLevel }, API::UserContentWorld::normalWorld());
+    Ref<API::UserStyleSheet> userStyleSheet = API::UserStyleSheet::create(WebCore::UserStyleSheet { source, (baseURLString.isEmpty() ? WTF::blankURL() :  URL(URL(), baseURLString)), whitelist ? whitelist->toStringVector() : Vector<String>(), blacklist ? blacklist->toStringVector() : Vector<String>(), toUserContentInjectedFrames(injectedFrames), WebCore::UserStyleUserLevel }, API::ContentWorld::pageContentWorld());
 
     toImpl(pageGroupRef)->userContentController().addUserStyleSheet(userStyleSheet.get());
 }
@@ -99,7 +99,7 @@ void WKPageGroupAddUserScript(WKPageGroupRef pageGroupRef, WKStringRef sourceRef
     auto blacklist = toImpl(blacklistedURLPatterns);
     
     auto url = baseURLString.isEmpty() ? WTF::blankURL() :  URL(URL(), baseURLString);
-    Ref<API::UserScript> userScript = API::UserScript::create(WebCore::UserScript { WTFMove(source), WTFMove(url), whitelist ? whitelist->toStringVector() : Vector<String>(), blacklist ? blacklist->toStringVector() : Vector<String>(), toUserScriptInjectionTime(injectionTime), toUserContentInjectedFrames(injectedFrames) }, API::UserContentWorld::normalWorld());
+    Ref<API::UserScript> userScript = API::UserScript::create(WebCore::UserScript { WTFMove(source), WTFMove(url), whitelist ? whitelist->toStringVector() : Vector<String>(), blacklist ? blacklist->toStringVector() : Vector<String>(), toUserScriptInjectionTime(injectionTime), toUserContentInjectedFrames(injectedFrames) }, API::ContentWorld::pageContentWorld());
     toImpl(pageGroupRef)->userContentController().addUserScript(userScript.get(), InjectUserScriptImmediately::No);
 }
 
index 17e7629..3a38a5b 100644 (file)
@@ -38,7 +38,7 @@ WKTypeID WKUserScriptGetTypeID()
 
 WKUserScriptRef WKUserScriptCreateWithSource(WKStringRef sourceRef, _WKUserScriptInjectionTime injectionTime, bool forMainFrameOnly)
 {
-    return toAPI(&API::UserScript::create(WebCore::UserScript { toWTFString(sourceRef), API::UserScript::generateUniqueURL(), { }, { }, toUserScriptInjectionTime(injectionTime), forMainFrameOnly ? WebCore::InjectInTopFrameOnly : WebCore::InjectInAllFrames }, API::UserContentWorld::normalWorld()).leakRef());
+    return toAPI(&API::UserScript::create(WebCore::UserScript { toWTFString(sourceRef), API::UserScript::generateUniqueURL(), { }, { }, toUserScriptInjectionTime(injectionTime), forMainFrameOnly ? WebCore::InjectInTopFrameOnly : WebCore::InjectInAllFrames }, API::ContentWorld::pageContentWorld()).leakRef());
 }
 
 WKStringRef WKUserScriptCopySource(WKUserScriptRef userScriptRef)
index b20f9a2..3816a1e 100644 (file)
@@ -74,7 +74,7 @@
 ALLOW_DEPRECATED_DECLARATIONS_BEGIN
 - (_WKUserContentWorld *)_userContentWorld
 {
-    return [[wrapper(API::UserContentWorld::fromContentWorld(*_contentWorld)) retain] autorelease];
+    return [[[_WKUserContentWorld alloc] _initWithContentWorld:self] autorelease];
 }
 ALLOW_DEPRECATED_DECLARATIONS_END
 
index 86d9ff9..6827c91 100644 (file)
 #import "config.h"
 #import "WKUserContentControllerInternal.h"
 
+#import "APIContentWorld.h"
 #import "APISerializedScriptValue.h"
-#import "APIUserContentWorld.h"
 #import "InjectUserScriptImmediately.h"
 #import "WKContentRuleListInternal.h"
+#import "WKContentWorldInternal.h"
 #import "WKFrameInfoInternal.h"
 #import "WKNSArray.h"
 #import "WKScriptMessageHandler.h"
@@ -146,14 +147,14 @@ private:
 
 - (void)addScriptMessageHandler:(id <WKScriptMessageHandler>)scriptMessageHandler name:(NSString *)name
 {
-    auto handler = WebKit::WebScriptMessageHandler::create(makeUnique<ScriptMessageHandlerDelegate>(self, scriptMessageHandler, name), name, API::UserContentWorld::normalWorld());
+    auto handler = WebKit::WebScriptMessageHandler::create(makeUnique<ScriptMessageHandlerDelegate>(self, scriptMessageHandler, name), name, API::ContentWorld::pageContentWorld());
     if (!_userContentControllerProxy->addUserScriptMessageHandler(handler.get()))
         [NSException raise:NSInvalidArgumentException format:@"Attempt to add script message handler with name '%@' when one already exists.", name];
 }
 
 - (void)removeScriptMessageHandlerForName:(NSString *)name
 {
-    _userContentControllerProxy->removeUserMessageHandlerForName(name, API::UserContentWorld::normalWorld());
+    _userContentControllerProxy->removeUserMessageHandlerForName(name, API::ContentWorld::pageContentWorld());
 }
 
 #pragma mark WKObject protocol implementation
@@ -175,7 +176,7 @@ private:
 ALLOW_DEPRECATED_DECLARATIONS_BEGIN
 - (void)_removeAllUserScriptsAssociatedWithUserContentWorld:(_WKUserContentWorld *)userContentWorld
 {
-    _userContentControllerProxy->removeAllUserScripts(*userContentWorld->_userContentWorld);
+    _userContentControllerProxy->removeAllUserScripts(*userContentWorld->_contentWorld->_contentWorld);
 }
 ALLOW_DEPRECATED_DECLARATIONS_END
 
@@ -228,24 +229,24 @@ ALLOW_DEPRECATED_DECLARATIONS_END
 ALLOW_DEPRECATED_DECLARATIONS_BEGIN
 - (void)_removeAllUserStyleSheetsAssociatedWithUserContentWorld:(_WKUserContentWorld *)userContentWorld
 {
-    _userContentControllerProxy->removeAllUserStyleSheets(*userContentWorld->_userContentWorld);
+    _userContentControllerProxy->removeAllUserStyleSheets(*userContentWorld->_contentWorld->_contentWorld);
 }
 
 - (void)_addScriptMessageHandler:(id <WKScriptMessageHandler>)scriptMessageHandler name:(NSString *)name userContentWorld:(_WKUserContentWorld *)userContentWorld
 {
-    auto handler = WebKit::WebScriptMessageHandler::create(makeUnique<ScriptMessageHandlerDelegate>(self, scriptMessageHandler, name), name, *userContentWorld->_userContentWorld);
+    auto handler = WebKit::WebScriptMessageHandler::create(makeUnique<ScriptMessageHandlerDelegate>(self, scriptMessageHandler, name), name, *userContentWorld->_contentWorld->_contentWorld);
     if (!_userContentControllerProxy->addUserScriptMessageHandler(handler.get()))
         [NSException raise:NSInvalidArgumentException format:@"Attempt to add script message handler with name '%@' when one already exists.", name];
 }
 
 - (void)_removeScriptMessageHandlerForName:(NSString *)name userContentWorld:(_WKUserContentWorld *)userContentWorld
 {
-    _userContentControllerProxy->removeUserMessageHandlerForName(name, *userContentWorld->_userContentWorld);
+    _userContentControllerProxy->removeUserMessageHandlerForName(name, *userContentWorld->_contentWorld->_contentWorld);
 }
 
 - (void)_removeAllScriptMessageHandlersAssociatedWithUserContentWorld:(_WKUserContentWorld *)userContentWorld
 {
-    _userContentControllerProxy->removeAllUserMessageHandlers(*userContentWorld->_userContentWorld);
+    _userContentControllerProxy->removeAllUserMessageHandlers(*userContentWorld->_contentWorld->_contentWorld);
 }
 ALLOW_DEPRECATED_DECLARATIONS_END
 
index df93198..f579bb1 100644 (file)
@@ -35,7 +35,7 @@
     if (!(self = [super init]))
         return nil;
 
-    API::Object::constructInWrapper<API::UserScript>(self, WebCore::UserScript { WTF::String(source), API::UserScript::generateUniqueURL(), { }, { }, API::toWebCoreUserScriptInjectionTime(injectionTime), forMainFrameOnly ? WebCore::InjectInTopFrameOnly : WebCore::InjectInAllFrames }, API::UserContentWorld::normalWorld());
+    API::Object::constructInWrapper<API::UserScript>(self, WebCore::UserScript { WTF::String(source), API::UserScript::generateUniqueURL(), { }, { }, API::toWebCoreUserScriptInjectionTime(injectionTime), forMainFrameOnly ? WebCore::InjectInTopFrameOnly : WebCore::InjectInAllFrames }, API::ContentWorld::pageContentWorld());
 
     return self;
 }
@@ -84,7 +84,7 @@ ALLOW_DEPRECATED_DECLARATIONS_BEGIN
     if (!(self = [super init]))
         return nil;
 
-    API::Object::constructInWrapper<API::UserScript>(self, WebCore::UserScript { WTF::String(source), API::UserScript::generateUniqueURL(), API::toStringVector(legacyWhitelist), API::toStringVector(legacyBlacklist), API::toWebCoreUserScriptInjectionTime(injectionTime), forMainFrameOnly ? WebCore::InjectInTopFrameOnly : WebCore::InjectInAllFrames }, *userContentWorld->_userContentWorld);
+    API::Object::constructInWrapper<API::UserScript>(self, WebCore::UserScript { WTF::String(source), API::UserScript::generateUniqueURL(), API::toStringVector(legacyWhitelist), API::toStringVector(legacyBlacklist), API::toWebCoreUserScriptInjectionTime(injectionTime), forMainFrameOnly ? WebCore::InjectInTopFrameOnly : WebCore::InjectInAllFrames }, *userContentWorld->_contentWorld->_contentWorld);
 
     return self;
 }
@@ -94,15 +94,40 @@ ALLOW_DEPRECATED_DECLARATIONS_BEGIN
     if (!(self = [super init]))
         return nil;
 
-    API::Object::constructInWrapper<API::UserScript>(self, WebCore::UserScript { WTF::String(source), URL(associatedURL), API::toStringVector(legacyWhitelist), API::toStringVector(legacyBlacklist), API::toWebCoreUserScriptInjectionTime(injectionTime), forMainFrameOnly ? WebCore::InjectInTopFrameOnly : WebCore::InjectInAllFrames }, *userContentWorld->_userContentWorld);
+    API::Object::constructInWrapper<API::UserScript>(self, WebCore::UserScript { WTF::String(source), URL(associatedURL), API::toStringVector(legacyWhitelist), API::toStringVector(legacyBlacklist), API::toWebCoreUserScriptInjectionTime(injectionTime), forMainFrameOnly ? WebCore::InjectInTopFrameOnly : WebCore::InjectInAllFrames }, *userContentWorld->_contentWorld->_contentWorld);
 
     return self;
 }
 
 - (_WKUserContentWorld *)_userContentWorld
 {
-    return wrapper(_userScript->userContentWorld());
+    return [[[_WKUserContentWorld alloc] _initWithContentWorld:wrapper(_userScript->contentWorld())] autorelease];
 }
 ALLOW_DEPRECATED_DECLARATIONS_END
 
+- (instancetype)_initWithSource:(NSString *)source injectionTime:(WKUserScriptInjectionTime)injectionTime forMainFrameOnly:(BOOL)forMainFrameOnly legacyWhitelist:(NSArray *)legacyWhitelist legacyBlacklist:(NSArray *)legacyBlacklist contentWorld:(WKContentWorld *)contentWorld
+{
+    if (!(self = [super init]))
+        return nil;
+
+    API::Object::constructInWrapper<API::UserScript>(self, WebCore::UserScript { WTF::String(source), API::UserScript::generateUniqueURL(), API::toStringVector(legacyWhitelist), API::toStringVector(legacyBlacklist), API::toWebCoreUserScriptInjectionTime(injectionTime), forMainFrameOnly ? WebCore::InjectInTopFrameOnly : WebCore::InjectInAllFrames }, *contentWorld->_contentWorld);
+
+    return self;
+}
+
+- (instancetype)_initWithSource:(NSString *)source injectionTime:(WKUserScriptInjectionTime)injectionTime forMainFrameOnly:(BOOL)forMainFrameOnly legacyWhitelist:(NSArray *)legacyWhitelist legacyBlacklist:(NSArray *)legacyBlacklist associatedURL:(NSURL *)associatedURL contentWorld:(WKContentWorld *)contentWorld
+{
+    if (!(self = [super init]))
+        return nil;
+
+    API::Object::constructInWrapper<API::UserScript>(self, WebCore::UserScript { WTF::String(source), URL(associatedURL), API::toStringVector(legacyWhitelist), API::toStringVector(legacyBlacklist), API::toWebCoreUserScriptInjectionTime(injectionTime), forMainFrameOnly ? WebCore::InjectInTopFrameOnly : WebCore::InjectInAllFrames }, *contentWorld->_contentWorld);
+
+    return self;
+}
+
+- (WKContentWorld *)_contentWorld
+{
+    return wrapper(_userScript->contentWorld());
+}
+
 @end
index bc50868..c74dd70 100644 (file)
@@ -27,6 +27,7 @@
 
 NS_ASSUME_NONNULL_BEGIN
 
+@class WKContentWorld;
 @class _WKUserContentWorld;
 
 @interface WKUserScript (WKPrivate)
@@ -34,7 +35,11 @@ NS_ASSUME_NONNULL_BEGIN
 - (instancetype)_initWithSource:(NSString *)source injectionTime:(WKUserScriptInjectionTime)injectionTime forMainFrameOnly:(BOOL)forMainFrameOnly legacyWhitelist:(NSArray<NSString *> *)legacyWhitelist legacyBlacklist:(NSArray<NSString *> *)legacyBlacklist userContentWorld:(_WKUserContentWorld *)userContentWorld WK_API_AVAILABLE(macos(10.12), ios(10.0));
 - (instancetype)_initWithSource:(NSString *)source injectionTime:(WKUserScriptInjectionTime)injectionTime forMainFrameOnly:(BOOL)forMainFrameOnly legacyWhitelist:(NSArray<NSString *> *)legacyWhitelist legacyBlacklist:(NSArray<NSString *> *)legacyBlacklist associatedURL:(NSURL *)associatedURL userContentWorld:(_WKUserContentWorld *)userContentWorld WK_API_AVAILABLE(macos(10.12), ios(10.0));
 
+- (instancetype)_initWithSource:(NSString *)source injectionTime:(WKUserScriptInjectionTime)injectionTime forMainFrameOnly:(BOOL)forMainFrameOnly legacyWhitelist:(NSArray<NSString *> *)legacyWhitelist legacyBlacklist:(NSArray<NSString *> *)legacyBlacklist contentWorld:(WKContentWorld *)contentWorld WK_API_AVAILABLE(macos(WK_MAC_TBA), ios(WK_IOS_TBA));
+- (instancetype)_initWithSource:(NSString *)source injectionTime:(WKUserScriptInjectionTime)injectionTime forMainFrameOnly:(BOOL)forMainFrameOnly legacyWhitelist:(NSArray<NSString *> *)legacyWhitelist legacyBlacklist:(NSArray<NSString *> *)legacyBlacklist associatedURL:(NSURL *)associatedURL contentWorld:(WKContentWorld *)contentWorld WK_API_AVAILABLE(macos(WK_MAC_TBA), ios(WK_IOS_TBA));
+
 @property (nonatomic, readonly) _WKUserContentWorld *_userContentWorld WK_API_AVAILABLE(macos(10.12), ios(10.0));
+@property (nonatomic, readonly) WKContentWorld *_contentWorld WK_API_AVAILABLE(macos(WK_MAC_TBA), ios(WK_IOS_TBA));
 
 @end
 
index e50d90e..df158f0 100644 (file)
 #import "config.h"
 #import "_WKUserContentWorldInternal.h"
 
+#import "WKContentWorldInternal.h"
+
 ALLOW_DEPRECATED_IMPLEMENTATIONS_BEGIN
 @implementation _WKUserContentWorld
 
-+ (_WKUserContentWorld *)worldWithName:(NSString *)name
+- (instancetype)_initWithName:(NSString *)name
 {
-    return wrapper(API::UserContentWorld::worldWithName(name));
+    if (!(self = [super init]))
+        return nil;
+
+    _contentWorld = [WKContentWorld worldWithName:name];
+    return self;
 }
 
-+ (_WKUserContentWorld *)normalWorld
+- (instancetype)_init
 {
-    return wrapper(API::UserContentWorld::normalWorld());
+    if (!(self = [super init]))
+        return nil;
+
+    _contentWorld = [WKContentWorld pageWorld];
+    return self;
 }
 
-- (void)dealloc
+- (instancetype)_initWithContentWorld:(WKContentWorld *)world
 {
-    _userContentWorld->~UserContentWorld();
+    if (!(self = [super init]))
+        return nil;
 
-    [super dealloc];
+    _contentWorld = world;
+    return self;
+}
+
++ (_WKUserContentWorld *)worldWithName:(NSString *)name
+{
+    return [[[_WKUserContentWorld alloc] _initWithName:name] autorelease];
+}
+
++ (_WKUserContentWorld *)normalWorld
+{
+    return [[[_WKUserContentWorld alloc] _init] autorelease];
 }
 
 - (NSString *)name
 {
-    if (_userContentWorld.get() == &API::UserContentWorld::normalWorld())
-        return nil;
-    return _userContentWorld->name();
+    return [_contentWorld name];
 }
 
 #pragma mark WKObject protocol implementation
 
 - (API::Object&)_apiObject
 {
-    return *_userContentWorld;
+    return [_contentWorld _apiObject];
 }
 
 @end
index 0613447..7591bec 100644 (file)
 
 #import "_WKUserContentWorld.h"
 
-#import "APIUserContentWorld.h"
-#import "WKObject.h"
-#import <wtf/Vector.h>
-#import <wtf/text/WTFString.h>
-
-namespace WebKit {
-
-template<> struct WrapperTraits<API::UserContentWorld> {
-    ALLOW_DEPRECATED_DECLARATIONS_BEGIN
-    using WrapperClass = _WKUserContentWorld;
-    ALLOW_DEPRECATED_DECLARATIONS_END
-};
-
-}
+@class WKContentWorld;
 
 namespace API {
 
@@ -62,6 +49,7 @@ inline Vector<WTF::String> toStringVector(NSArray *input)
 
 @interface _WKUserContentWorld () <WKObject> {
 @package
-    API::ObjectStorage<API::UserContentWorld> _userContentWorld;
+    RetainPtr<WKContentWorld> _contentWorld;
 }
+- (instancetype)_initWithContentWorld:(WKContentWorld *)world;
 @end
index a7617e6..4ec9f8c 100644 (file)
@@ -42,7 +42,7 @@
     // FIXME: In the API test, we can use generateUniqueURL below before the API::Object constructor has done this... where should this really be?
     WebKit::InitializeWebKit2();
 
-    API::Object::constructInWrapper<API::UserStyleSheet>(self, WebCore::UserStyleSheet { WTF::String(source), API::UserStyleSheet::generateUniqueURL(), { }, { }, forMainFrameOnly ? WebCore::InjectInTopFrameOnly : WebCore::InjectInAllFrames, WebCore::UserStyleUserLevel }, API::UserContentWorld::normalWorld());
+    API::Object::constructInWrapper<API::UserStyleSheet>(self, WebCore::UserStyleSheet { WTF::String(source), API::UserStyleSheet::generateUniqueURL(), { }, { }, forMainFrameOnly ? WebCore::InjectInTopFrameOnly : WebCore::InjectInAllFrames, WebCore::UserStyleUserLevel }, API::ContentWorld::pageContentWorld());
 
     return self;
 }
@@ -56,7 +56,7 @@ ALLOW_DEPRECATED_DECLARATIONS_BEGIN
     // FIXME: In the API test, we can use generateUniqueURL below before the API::Object constructor has done this... where should this really be?
     WebKit::InitializeWebKit2();
 
-    API::Object::constructInWrapper<API::UserStyleSheet>(self, WebCore::UserStyleSheet { WTF::String(source), API::UserStyleSheet::generateUniqueURL(), API::toStringVector(legacyWhitelist), API::toStringVector(legacyBlacklist), forMainFrameOnly ? WebCore::InjectInTopFrameOnly : WebCore::InjectInAllFrames, WebCore::UserStyleUserLevel }, *userContentWorld->_userContentWorld);
+    API::Object::constructInWrapper<API::UserStyleSheet>(self, WebCore::UserStyleSheet { WTF::String(source), API::UserStyleSheet::generateUniqueURL(), API::toStringVector(legacyWhitelist), API::toStringVector(legacyBlacklist), forMainFrameOnly ? WebCore::InjectInTopFrameOnly : WebCore::InjectInAllFrames, WebCore::UserStyleUserLevel }, *userContentWorld->_contentWorld->_contentWorld);
 
     return self;
 }
@@ -69,7 +69,7 @@ ALLOW_DEPRECATED_DECLARATIONS_BEGIN
     // FIXME: In the API test, we can use generateUniqueURL below before the API::Object constructor has done this... where should this really be?
     WebKit::InitializeWebKit2();
 
-    API::Object::constructInWrapper<API::UserStyleSheet>(self, WebCore::UserStyleSheet { WTF::String(source), {  URL(), WTF::String([baseURL _web_originalDataAsWTFString]) }, API::toStringVector(legacyWhitelist), API::toStringVector(legacyBlacklist), forMainFrameOnly ? WebCore::InjectInTopFrameOnly : WebCore::InjectInAllFrames, WebCore::UserStyleUserLevel }, *userContentWorld->_userContentWorld);
+    API::Object::constructInWrapper<API::UserStyleSheet>(self, WebCore::UserStyleSheet { WTF::String(source), {  URL(), WTF::String([baseURL _web_originalDataAsWTFString]) }, API::toStringVector(legacyWhitelist), API::toStringVector(legacyBlacklist), forMainFrameOnly ? WebCore::InjectInTopFrameOnly : WebCore::InjectInAllFrames, WebCore::UserStyleUserLevel }, *userContentWorld->_contentWorld->_contentWorld);
 
     return self;
 }
index 80ef542..8589361 100644 (file)
@@ -38,10 +38,12 @@ using namespace WebCore;
  */
 
 
-API::UserContentWorld& webkitUserContentWorld(const char* worldName)
+API::ContentWorld& webkitContentWorld(const char* worldName)
 {
-    static NeverDestroyed<HashMap<CString, RefPtr<API::UserContentWorld>>> map;
-    return *map.get().ensure(worldName, [worldName = String::fromUTF8(worldName)] { return API::UserContentWorld::worldWithName(worldName); }).iterator->value;
+    static NeverDestroyed<HashMap<CString, RefPtr<API::ContentWorld>>> map;
+    return *map.get().ensure(worldName, [worldName = String::fromUTF8(worldName)] {
+        return API::ContentWorld::sharedWorldWithName(worldName);
+    }).iterator->value;
 }
 
 static inline UserContentInjectedFrames toUserContentInjectedFrames(WebKitUserContentInjectedFrames injectedFrames)
@@ -95,7 +97,7 @@ static inline Vector<String> toStringVector(const char* const* strv)
 }
 
 struct _WebKitUserStyleSheet {
-    _WebKitUserStyleSheet(const gchar* source, WebKitUserContentInjectedFrames injectedFrames, WebKitUserStyleLevel level, const char* const* whitelist, const char* const* blacklist, API::UserContentWorld& world)
+    _WebKitUserStyleSheet(const gchar* source, WebKitUserContentInjectedFrames injectedFrames, WebKitUserStyleLevel level, const char* const* whitelist, const char* const* blacklist, API::ContentWorld& world)
         : userStyleSheet(adoptRef(new API::UserStyleSheet(UserStyleSheet {
             String::fromUTF8(source), URL { },
             toStringVector(whitelist), toStringVector(blacklist),
@@ -171,7 +173,7 @@ WebKitUserStyleSheet* webkit_user_style_sheet_new(const gchar* source, WebKitUse
 {
     g_return_val_if_fail(source, nullptr);
     WebKitUserStyleSheet* userStyleSheet = static_cast<WebKitUserStyleSheet*>(fastMalloc(sizeof(WebKitUserStyleSheet)));
-    new (userStyleSheet) WebKitUserStyleSheet(source, injectedFrames, level, whitelist, blacklist, API::UserContentWorld::normalWorld());
+    new (userStyleSheet) WebKitUserStyleSheet(source, injectedFrames, level, whitelist, blacklist, API::ContentWorld::pageContentWorld());
     return userStyleSheet;
 }
 
@@ -197,7 +199,7 @@ WebKitUserStyleSheet* webkit_user_style_sheet_new_for_world(const gchar* source,
     g_return_val_if_fail(worldName, nullptr);
 
     WebKitUserStyleSheet* userStyleSheet = static_cast<WebKitUserStyleSheet*>(fastMalloc(sizeof(WebKitUserStyleSheet)));
-    new (userStyleSheet) WebKitUserStyleSheet(source, injectedFrames, level, whitelist, blacklist, webkitUserContentWorld(worldName));
+    new (userStyleSheet) WebKitUserStyleSheet(source, injectedFrames, level, whitelist, blacklist, webkitContentWorld(worldName));
     return userStyleSheet;
 }
 
@@ -207,7 +209,7 @@ API::UserStyleSheet& webkitUserStyleSheetGetUserStyleSheet(WebKitUserStyleSheet*
 }
 
 struct _WebKitUserScript {
-    _WebKitUserScript(const gchar* source, WebKitUserContentInjectedFrames injectedFrames, WebKitUserScriptInjectionTime injectionTime, const gchar* const* whitelist, const gchar* const* blacklist, API::UserContentWorld& world)
+    _WebKitUserScript(const gchar* source, WebKitUserContentInjectedFrames injectedFrames, WebKitUserScriptInjectionTime injectionTime, const gchar* const* whitelist, const gchar* const* blacklist, API::ContentWorld& world)
         : userScript(adoptRef(new API::UserScript(UserScript {
             String::fromUTF8(source), URL { },
             toStringVector(whitelist), toStringVector(blacklist),
@@ -283,7 +285,7 @@ WebKitUserScript* webkit_user_script_new(const gchar* source, WebKitUserContentI
 {
     g_return_val_if_fail(source, nullptr);
     WebKitUserScript* userScript = static_cast<WebKitUserScript*>(fastMalloc(sizeof(WebKitUserScript)));
-    new (userScript) WebKitUserScript(source, injectedFrames, injectionTime, whitelist, blacklist, API::UserContentWorld::normalWorld());
+    new (userScript) WebKitUserScript(source, injectedFrames, injectionTime, whitelist, blacklist, API::ContentWorld::pageContentWorld());
     return userScript;
 }
 
@@ -309,7 +311,7 @@ WebKitUserScript* webkit_user_script_new_for_world(const gchar* source, WebKitUs
     g_return_val_if_fail(worldName, nullptr);
 
     WebKitUserScript* userScript = static_cast<WebKitUserScript*>(fastMalloc(sizeof(WebKitUserScript)));
-    new (userScript) WebKitUserScript(source, injectedFrames, injectionTime, whitelist, blacklist, webkitUserContentWorld(worldName));
+    new (userScript) WebKitUserScript(source, injectedFrames, injectionTime, whitelist, blacklist, webkitContentWorld(worldName));
     return userScript;
 }
 
index 994bd2e..7c43230 100644 (file)
@@ -239,7 +239,7 @@ gboolean webkit_user_content_manager_register_script_message_handler(WebKitUserC
     g_return_val_if_fail(name, FALSE);
 
     Ref<WebScriptMessageHandler> handler =
-        WebScriptMessageHandler::create(makeUnique<ScriptMessageClientGtk>(manager, name), String::fromUTF8(name), API::UserContentWorld::normalWorld());
+        WebScriptMessageHandler::create(makeUnique<ScriptMessageClientGtk>(manager, name), String::fromUTF8(name), API::ContentWorld::pageContentWorld());
     return manager->priv->userContentController->addUserScriptMessageHandler(handler.get());
 }
 
@@ -263,7 +263,7 @@ void webkit_user_content_manager_unregister_script_message_handler(WebKitUserCon
 {
     g_return_if_fail(WEBKIT_IS_USER_CONTENT_MANAGER(manager));
     g_return_if_fail(name);
-    manager->priv->userContentController->removeUserMessageHandlerForName(String::fromUTF8(name), API::UserContentWorld::normalWorld());
+    manager->priv->userContentController->removeUserMessageHandlerForName(String::fromUTF8(name), API::ContentWorld::pageContentWorld());
 }
 
 /**
@@ -289,7 +289,7 @@ gboolean webkit_user_content_manager_register_script_message_handler_in_world(We
     g_return_val_if_fail(worldName, FALSE);
 
     Ref<WebScriptMessageHandler> handler =
-        WebScriptMessageHandler::create(makeUnique<ScriptMessageClientGtk>(manager, name), String::fromUTF8(name), webkitUserContentWorld(worldName));
+        WebScriptMessageHandler::create(makeUnique<ScriptMessageClientGtk>(manager, name), String::fromUTF8(name), webkitContentWorld(worldName));
     return manager->priv->userContentController->addUserScriptMessageHandler(handler.get());
 }
 
@@ -316,7 +316,7 @@ void webkit_user_content_manager_unregister_script_message_handler_in_world(WebK
     g_return_if_fail(name);
     g_return_if_fail(worldName);
 
-    manager->priv->userContentController->removeUserMessageHandlerForName(String::fromUTF8(name), webkitUserContentWorld(worldName));
+    manager->priv->userContentController->removeUserMessageHandlerForName(String::fromUTF8(name), webkitContentWorld(worldName));
 }
 
 /**
index ad3495b..1584b80 100644 (file)
@@ -21,7 +21,7 @@
 #define WebKitUserContentPrivate_h
 
 #include "APIContentRuleList.h"
-#include "APIUserContentWorld.h"
+#include "APIContentWorld.h"
 #include "APIUserScript.h"
 #include "APIUserStyleSheet.h"
 #include "WebKitUserContent.h"
@@ -30,7 +30,7 @@
 
 API::UserScript& webkitUserScriptGetUserScript(WebKitUserScript*);
 API::UserStyleSheet& webkitUserStyleSheetGetUserStyleSheet(WebKitUserStyleSheet*);
-API::UserContentWorld& webkitUserContentWorld(const char*);
+API::ContentWorld& webkitContentWorld(const char*);
 API::ContentRuleList& webkitUserContentFilterGetContentRuleList(WebKitUserContentFilter*);
 WebKitUserContentFilter* webkitUserContentFilterCreate(RefPtr<API::ContentRuleList>&&);
 
index 16acbd8..e3f4f85 100644 (file)
@@ -22,7 +22,7 @@
 
 #if ENABLE(REMOTE_INSPECTOR)
 
-#include "APIUserContentWorld.h"
+#include "APIContentWorld.h"
 #include "WebKitError.h"
 #include "WebKitNavigationPolicyDecision.h"
 #include "WebKitUserContentManagerPrivate.h"
@@ -73,7 +73,7 @@ RemoteInspectorProtocolHandler::~RemoteInspectorProtocolHandler()
         g_object_weak_unref(G_OBJECT(webView), reinterpret_cast<GWeakNotify>(webViewDestroyed), this);
 
     for (auto* userContentManager : m_userContentManagers) {
-        webkitUserContentManagerGetUserContentControllerProxy(userContentManager)->removeUserMessageHandlerForName("inspector", API::UserContentWorld::normalWorld());
+        webkitUserContentManagerGetUserContentControllerProxy(userContentManager)->removeUserMessageHandlerForName("inspector", API::ContentWorld::pageContentWorld());
         g_object_weak_unref(G_OBJECT(userContentManager), reinterpret_cast<GWeakNotify>(userContentManagerDestroyed), this);
     }
 }
@@ -106,7 +106,7 @@ void RemoteInspectorProtocolHandler::handleRequest(WebKitURISchemeRequest* reque
     auto* userContentManager = webkit_web_view_get_user_content_manager(webView);
     auto userContentManagerResult = m_userContentManagers.add(userContentManager);
     if (userContentManagerResult.isNewEntry) {
-        auto handler = WebScriptMessageHandler::create(makeUnique<ScriptMessageClient>(*this), "inspector", API::UserContentWorld::normalWorld());
+        auto handler = WebScriptMessageHandler::create(makeUnique<ScriptMessageClient>(*this), "inspector", API::ContentWorld::pageContentWorld());
         webkitUserContentManagerGetUserContentControllerProxy(userContentManager)->addUserScriptMessageHandler(handler.get());
         g_object_weak_ref(G_OBJECT(userContentManager), reinterpret_cast<GWeakNotify>(userContentManagerDestroyed), this);
     }
index 7bc455d..c951a50 100644 (file)
@@ -28,9 +28,9 @@
 
 #if ENABLE(REMOTE_INSPECTOR)
 
+#include "APIContentWorld.h"
 #include "APILoaderClient.h"
 #include "APINavigation.h"
-#include "APIUserContentWorld.h"
 #include "WebPageGroup.h"
 #include "WebPageProxy.h"
 #include "WebScriptMessageHandler.h"
@@ -157,7 +157,7 @@ void RemoteInspectorProtocolHandler::platformStartTask(WebPageProxy& pageProxy,
     m_inspectorClient = makeUnique<RemoteInspectorClient>(requestURL, *this);
 
     // Setup target postMessage listener
-    auto handler = WebScriptMessageHandler::create(makeUnique<ScriptMessageClient>(*this), "inspector", API::UserContentWorld::normalWorld());
+    auto handler = WebScriptMessageHandler::create(makeUnique<ScriptMessageClient>(*this), "inspector", API::ContentWorld::pageContentWorld());
     pageProxy.pageGroup().userContentController().addUserScriptMessageHandler(handler.get());
 
     // Setup loader client to get notified of page load
index 0515b0b..3d006dd 100644 (file)
 #include "config.h"
 #include "WebScriptMessageHandler.h"
 
-#include "APIUserContentWorld.h"
+#include "APIContentWorld.h"
 
 namespace WebKit {
 
-Ref<WebScriptMessageHandler> WebScriptMessageHandler::create(std::unique_ptr<Client> client, const String& name, API::UserContentWorld& world)
+Ref<WebScriptMessageHandler> WebScriptMessageHandler::create(std::unique_ptr<Client> client, const String& name, API::ContentWorld& world)
 {
     return adoptRef(*new WebScriptMessageHandler(WTFMove(client), name, world));
 }
 
-WebScriptMessageHandler::WebScriptMessageHandler(std::unique_ptr<Client> client, const String& name, API::UserContentWorld& world)
+WebScriptMessageHandler::WebScriptMessageHandler(std::unique_ptr<Client> client, const String& name, API::ContentWorld& world)
     : m_client(WTFMove(client))
     , m_name(name)
     , m_world(world)
index 0cf4acf..afacbb0 100644 (file)
@@ -25,7 +25,7 @@
 
 #pragma once
 
-#include "APIUserContentWorld.h"
+#include "APIContentWorld.h"
 #include "WebUserContentControllerDataTypes.h"
 #include <wtf/Identified.h>
 #include <wtf/Ref.h>
@@ -38,7 +38,7 @@ class SerializedScriptValue;
 }
 
 namespace API {
-class UserContentWorld;
+class ContentWorld;
 }
 
 namespace WebKit {
@@ -55,21 +55,21 @@ public:
         virtual void didPostMessage(WebPageProxy&, FrameInfoData&&, WebCore::SerializedScriptValue&) = 0;
     };
 
-    static Ref<WebScriptMessageHandler> create(std::unique_ptr<Client>, const String& name, API::UserContentWorld&);
+    static Ref<WebScriptMessageHandler> create(std::unique_ptr<Client>, const String& name, API::ContentWorld&);
     virtual ~WebScriptMessageHandler();
 
     String name() const { return m_name; }
 
-    API::ContentWorldBase& world() { return m_world.get(); }
+    API::ContentWorld& world() { return m_world.get(); }
 
     Client& client() const { return *m_client; }
 
 private:
-    WebScriptMessageHandler(std::unique_ptr<Client>, const String&, API::UserContentWorld&);
+    WebScriptMessageHandler(std::unique_ptr<Client>, const String&, API::ContentWorld&);
 
     std::unique_ptr<Client> m_client;
     String m_name;
-    Ref<API::UserContentWorld> m_world;
+    Ref<API::ContentWorld> m_world;
 };
 
 } // namespace API
index 987a986..af143b0 100644 (file)
@@ -28,7 +28,6 @@
 
 #include "APIArray.h"
 #include "APIContentWorld.h"
-#include "APIUserContentWorld.h"
 #include "APIUserScript.h"
 #include "APIUserStyleSheet.h"
 #include "DataReference.h"
@@ -110,11 +109,11 @@ void WebUserContentControllerProxy::addProcess(WebProcessProxy& webProcessProxy,
 
     ASSERT(parameters.userScripts.isEmpty());
     for (auto userScript : m_userScripts->elementsOfType<API::UserScript>())
-        parameters.userScripts.append({ userScript->identifier(), userScript->userContentWorld().identifier(), userScript->userScript() });
+        parameters.userScripts.append({ userScript->identifier(), userScript->contentWorld().identifier(), userScript->userScript() });
 
     ASSERT(parameters.userStyleSheets.isEmpty());
     for (auto userStyleSheet : m_userStyleSheets->elementsOfType<API::UserStyleSheet>())
-        parameters.userStyleSheets.append({ userStyleSheet->identifier(), userStyleSheet->userContentWorld().identifier(), userStyleSheet->userStyleSheet() });
+        parameters.userStyleSheets.append({ userStyleSheet->identifier(), userStyleSheet->contentWorld().identifier(), userStyleSheet->userStyleSheet() });
 
     ASSERT(parameters.messageHandlers.isEmpty());
     for (auto& handler : m_scriptMessageHandlers.values())
@@ -146,21 +145,21 @@ void WebUserContentControllerProxy::removeProcess(WebProcessProxy& webProcessPro
     webProcessProxy.removeMessageReceiver(Messages::WebUserContentControllerProxy::messageReceiverName(), identifier());
 }
 
-void WebUserContentControllerProxy::addUserContentWorldUse(API::ContentWorldBase& world)
+void WebUserContentControllerProxy::addContentWorldUse(API::ContentWorld& world)
 {
-    if (&world == &API::UserContentWorld::normalWorld())
+    if (&world == &API::ContentWorld::pageContentWorld())
         return;
 
     auto addResult = m_contentWorlds.add(&world);
     if (addResult.isNewEntry) {
         for (auto& process : m_processes)
-            process.send(Messages::WebUserContentController::AddUserContentWorlds({ world.worldData() }), identifier());
+            process.send(Messages::WebUserContentController::AddContentWorlds({ world.worldData() }), identifier());
     }
 }
 
-bool WebUserContentControllerProxy::shouldSendRemoveUserContentWorldsMessage(API::UserContentWorld& world, unsigned numberOfUsesToRemove)
+bool WebUserContentControllerProxy::shouldSendRemoveContentWorldsMessage(API::ContentWorld& world, unsigned numberOfUsesToRemove)
 {
-    if (&world == &API::UserContentWorld::normalWorld())
+    if (&world == &API::ContentWorld::pageContentWorld())
         return false;
 
     auto it = m_contentWorlds.find(&world);
@@ -174,31 +173,31 @@ bool WebUserContentControllerProxy::shouldSendRemoveUserContentWorldsMessage(API
     return false;
 }
 
-void WebUserContentControllerProxy::removeUserContentWorldUses(API::UserContentWorld& world, unsigned numberOfUsesToRemove)
+void WebUserContentControllerProxy::removeContentWorldUses(API::ContentWorld& world, unsigned numberOfUsesToRemove)
 {
-    if (shouldSendRemoveUserContentWorldsMessage(world, numberOfUsesToRemove)) {
+    if (shouldSendRemoveContentWorldsMessage(world, numberOfUsesToRemove)) {
         for (auto& process : m_processes)
-            process.send(Messages::WebUserContentController::RemoveUserContentWorlds({ world.identifier() }), identifier());
+            process.send(Messages::WebUserContentController::RemoveContentWorlds({ world.identifier() }), identifier());
     }
 }
 
-void WebUserContentControllerProxy::removeUserContentWorldUses(HashCountedSet<RefPtr<API::UserContentWorld>>& worlds)
+void WebUserContentControllerProxy::removeContentWorldUses(HashCountedSet<RefPtr<API::ContentWorld>>& worlds)
 {
     Vector<ContentWorldIdentifier> worldsToRemove;
     for (auto& worldUsePair : worlds) {
-        if (shouldSendRemoveUserContentWorldsMessage(*worldUsePair.key.get(), worldUsePair.value))
+        if (shouldSendRemoveContentWorldsMessage(*worldUsePair.key.get(), worldUsePair.value))
             worldsToRemove.append(worldUsePair.key->identifier());
     }
 
     for (auto& process : m_processes)
-        process.send(Messages::WebUserContentController::RemoveUserContentWorlds(worldsToRemove), identifier());
+        process.send(Messages::WebUserContentController::RemoveContentWorlds(worldsToRemove), identifier());
 }
 
 void WebUserContentControllerProxy::addUserScript(API::UserScript& userScript, InjectUserScriptImmediately immediately)
 {
-    Ref<API::UserContentWorld> world = userScript.userContentWorld();
+    Ref<API::ContentWorld> world = userScript.contentWorld();
 
-    addUserContentWorldUse(world.get());
+    addContentWorldUse(world.get());
 
     m_userScripts->elements().append(&userScript);
 
@@ -208,33 +207,33 @@ void WebUserContentControllerProxy::addUserScript(API::UserScript& userScript, I
 
 void WebUserContentControllerProxy::removeUserScript(API::UserScript& userScript)
 {
-    Ref<API::UserContentWorld> world = userScript.userContentWorld();
+    Ref<API::ContentWorld> world = userScript.contentWorld();
 
     for (auto& process : m_processes)
         process.send(Messages::WebUserContentController::RemoveUserScript(world->identifier(), userScript.identifier()), identifier());
 
     m_userScripts->elements().removeAll(&userScript);
 
-    removeUserContentWorldUses(world.get(), 1);
+    removeContentWorldUses(world.get(), 1);
 }
 
-void WebUserContentControllerProxy::removeAllUserScripts(API::UserContentWorld& world)
+void WebUserContentControllerProxy::removeAllUserScripts(API::ContentWorld& world)
 {
     for (auto& process : m_processes)
         process.send(Messages::WebUserContentController::RemoveAllUserScripts({ world.identifier() }), identifier());
 
     unsigned userScriptsRemoved = m_userScripts->removeAllOfTypeMatching<API::UserScript>([&](const auto& userScript) {
-        return &userScript->userContentWorld() == &world;
+        return &userScript->contentWorld() == &world;
     });
 
-    removeUserContentWorldUses(world, userScriptsRemoved);
+    removeContentWorldUses(world, userScriptsRemoved);
 }
 
 void WebUserContentControllerProxy::removeAllUserScripts()
 {
-    HashCountedSet<RefPtr<API::UserContentWorld>> worlds;
+    HashCountedSet<RefPtr<API::ContentWorld>> worlds;
     for (auto userScript : m_userScripts->elementsOfType<API::UserScript>())
-        worlds.add(const_cast<API::UserContentWorld*>(&userScript->userContentWorld()));
+        worlds.add(const_cast<API::ContentWorld*>(&userScript->contentWorld()));
 
     Vector<ContentWorldIdentifier> worldIdentifiers;
     worldIdentifiers.reserveInitialCapacity(worlds.size());
@@ -246,14 +245,14 @@ void WebUserContentControllerProxy::removeAllUserScripts()
 
     m_userScripts->elements().clear();
 
-    removeUserContentWorldUses(worlds);
+    removeContentWorldUses(worlds);
 }
 
 void WebUserContentControllerProxy::addUserStyleSheet(API::UserStyleSheet& userStyleSheet)
 {
-    Ref<API::UserContentWorld> world = userStyleSheet.userContentWorld();
+    Ref<API::ContentWorld> world = userStyleSheet.contentWorld();
 
-    addUserContentWorldUse(world.get());
+    addContentWorldUse(world.get());
 
     m_userStyleSheets->elements().append(&userStyleSheet);
 
@@ -263,33 +262,33 @@ void WebUserContentControllerProxy::addUserStyleSheet(API::UserStyleSheet& userS
 
 void WebUserContentControllerProxy::removeUserStyleSheet(API::UserStyleSheet& userStyleSheet)
 {
-    Ref<API::UserContentWorld> world = userStyleSheet.userContentWorld();
+    Ref<API::ContentWorld> world = userStyleSheet.contentWorld();
 
     for (auto& process : m_processes)
         process.send(Messages::WebUserContentController::RemoveUserStyleSheet(world->identifier(), userStyleSheet.identifier()), identifier());
 
     m_userStyleSheets->elements().removeAll(&userStyleSheet);
 
-    removeUserContentWorldUses(world.get(), 1);
+    removeContentWorldUses(world.get(), 1);
 }
 
-void WebUserContentControllerProxy::removeAllUserStyleSheets(API::UserContentWorld& world)
+void WebUserContentControllerProxy::removeAllUserStyleSheets(API::ContentWorld& world)
 {
     for (auto& process : m_processes)
         process.send(Messages::WebUserContentController::RemoveAllUserStyleSheets({ world.identifier() }), identifier());
 
     unsigned userStyleSheetsRemoved = m_userStyleSheets->removeAllOfTypeMatching<API::UserStyleSheet>([&](const auto& userStyleSheet) {
-        return &userStyleSheet->userContentWorld() == &world;
+        return &userStyleSheet->contentWorld() == &world;
     });
 
-    removeUserContentWorldUses(world, userStyleSheetsRemoved);
+    removeContentWorldUses(world, userStyleSheetsRemoved);
 }
 
 void WebUserContentControllerProxy::removeAllUserStyleSheets()
 {
-    HashCountedSet<RefPtr<API::UserContentWorld>> worlds;
+    HashCountedSet<RefPtr<API::ContentWorld>> worlds;
     for (auto userStyleSheet : m_userStyleSheets->elementsOfType<API::UserStyleSheet>())
-        worlds.add(const_cast<API::UserContentWorld*>(&userStyleSheet->userContentWorld()));
+        worlds.add(const_cast<API::ContentWorld*>(&userStyleSheet->contentWorld()));
 
     Vector<ContentWorldIdentifier> worldIdentifiers;
     worldIdentifiers.reserveInitialCapacity(worlds.size());
@@ -301,7 +300,7 @@ void WebUserContentControllerProxy::removeAllUserStyleSheets()
 
     m_userStyleSheets->elements().clear();
 
-    removeUserContentWorldUses(worlds);
+    removeContentWorldUses(worlds);
 }
 
 bool WebUserContentControllerProxy::addUserScriptMessageHandler(WebScriptMessageHandler& handler)
@@ -313,7 +312,7 @@ bool WebUserContentControllerProxy::addUserScriptMessageHandler(WebScriptMessage
             return false;
     }
 
-    addUserContentWorldUse(world);
+    addContentWorldUse(world);
 
     m_scriptMessageHandlers.add(handler.identifier(), &handler);
 
@@ -323,7 +322,7 @@ bool WebUserContentControllerProxy::addUserScriptMessageHandler(WebScriptMessage
     return true;
 }
 
-void WebUserContentControllerProxy::removeUserMessageHandlerForName(const String& name, API::UserContentWorld& world)
+void WebUserContentControllerProxy::removeUserMessageHandlerForName(const String& name, API::ContentWorld& world)
 {
     for (auto it = m_scriptMessageHandlers.begin(), end = m_scriptMessageHandlers.end(); it != end; ++it) {
         if (it->value->name() == name && it->value->world().identifier() == world.identifier()) {
@@ -332,13 +331,13 @@ void WebUserContentControllerProxy::removeUserMessageHandlerForName(const String
 
             m_scriptMessageHandlers.remove(it);
 
-            removeUserContentWorldUses(world, 1);
+            removeContentWorldUses(world, 1);
             return;
         }
     }
 }
 
-void WebUserContentControllerProxy::removeAllUserMessageHandlers(API::UserContentWorld& world)
+void WebUserContentControllerProxy::removeAllUserMessageHandlers(API::ContentWorld& world)
 {
     for (auto& process : m_processes)
         process.send(Messages::WebUserContentController::RemoveAllUserScriptMessageHandlers({ world.identifier() }), identifier());
@@ -352,7 +351,7 @@ void WebUserContentControllerProxy::removeAllUserMessageHandlers(API::UserConten
         return false;
     });
 
-    removeUserContentWorldUses(world, numberRemoved);
+    removeContentWorldUses(world, numberRemoved);
 }
 
 void WebUserContentControllerProxy::didPostMessage(IPC::Connection& connection, WebPageProxyIdentifier pageProxyID, FrameInfoData&& frameInfoData, uint64_t messageHandlerID, const IPC::DataReference& dataReference)
index 4ffd85f..000278d 100644 (file)
@@ -41,8 +41,7 @@
 namespace API {
 class Array;
 class ContentRuleList;
-class ContentWorldBase;
-class UserContentWorld;
+class ContentWorld;
 class UserScript;
 class UserStyleSheet;
 }
@@ -82,21 +81,21 @@ public:
     API::Array& userScripts() { return m_userScripts.get(); }
     void addUserScript(API::UserScript&, InjectUserScriptImmediately);
     void removeUserScript(API::UserScript&);
-    void removeAllUserScripts(API::UserContentWorld&);
+    void removeAllUserScripts(API::ContentWorld&);
     void removeAllUserScripts();
 
     API::Array& userStyleSheets() { return m_userStyleSheets.get(); }
     void addUserStyleSheet(API::UserStyleSheet&);
     void removeUserStyleSheet(API::UserStyleSheet&);
-    void removeAllUserStyleSheets(API::UserContentWorld&);
+    void removeAllUserStyleSheets(API::ContentWorld&);
     void removeAllUserStyleSheets();
 
-    void removeAllUserContent(API::UserContentWorld&);
+    void removeAllUserContent(API::ContentWorld&);
 
     // Returns false if there was a name conflict.
     bool addUserScriptMessageHandler(WebScriptMessageHandler&);
-    void removeUserMessageHandlerForName(const String&, API::UserContentWorld&);
-    void removeAllUserMessageHandlers(API::UserContentWorld&);
+    void removeUserMessageHandlerForName(const String&, API::ContentWorld&);
+    void removeAllUserMessageHandlers(API::ContentWorld&);
 
 #if ENABLE(CONTENT_EXTENSIONS)
     void addNetworkProcess(NetworkProcessProxy&);
@@ -117,17 +116,17 @@ private:
 
     void didPostMessage(IPC::Connection&, WebPageProxyIdentifier, FrameInfoData&&, uint64_t messageHandlerID, const IPC::DataReference&);
 
-    void addUserContentWorldUse(API::ContentWorldBase&);
-    void removeUserContentWorldUses(API::UserContentWorld&, unsigned numberOfUsesToRemove);
-    void removeUserContentWorldUses(HashCountedSet<RefPtr<API::UserContentWorld>>&);
-    bool shouldSendRemoveUserContentWorldsMessage(API::UserContentWorld&, unsigned numberOfUsesToRemove);
+    void addContentWorldUse(API::ContentWorld&);
+    void removeContentWorldUses(API::ContentWorld&, unsigned numberOfUsesToRemove);
+    void removeContentWorldUses(HashCountedSet<RefPtr<API::ContentWorld>>&);
+    bool shouldSendRemoveContentWorldsMessage(API::ContentWorld&, unsigned numberOfUsesToRemove);
 
     UserContentControllerIdentifier m_identifier;
     WeakHashSet<WebProcessProxy> m_processes;
     Ref<API::Array> m_userScripts;
     Ref<API::Array> m_userStyleSheets;
     HashMap<uint64_t, RefPtr<WebScriptMessageHandler>> m_scriptMessageHandlers;
-    HashCountedSet<RefPtr<API::ContentWorldBase>> m_contentWorlds;
+    HashCountedSet<RefPtr<API::ContentWorld>> m_contentWorlds;
 
 #if ENABLE(CONTENT_EXTENSIONS)
     WeakHashSet<NetworkProcessProxy> m_networkProcesses;
index ee8c0cd..e5fa191 100644 (file)
                7C882DF71C7E9965006BF731 /* _WKUserContentWorld.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C882DF31C7E995E006BF731 /* _WKUserContentWorld.h */; settings = {ATTRIBUTES = (Private, ); }; };
                7C882DF91C7E996F006BF731 /* _WKUserContentWorldInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C882DF51C7E995E006BF731 /* _WKUserContentWorldInternal.h */; };
                7C882DFA1C7E9973006BF731 /* WKUserScriptPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C882DF61C7E995E006BF731 /* WKUserScriptPrivate.h */; settings = {ATTRIBUTES = (Private, ); }; };
-               7C882DFD1C7E99A8006BF731 /* APIUserContentWorld.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C882DFC1C7E99A6006BF731 /* APIUserContentWorld.h */; };
                7C89D2941A67122F003A5FDE /* APIUserScript.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C89D2921A67122F003A5FDE /* APIUserScript.h */; };
                7C89D2981A6753B2003A5FDE /* APIPageConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C89D2961A6753B2003A5FDE /* APIPageConfiguration.h */; };
                7C89D29C1A67837B003A5FDE /* WKPageConfigurationRef.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C89D29A1A67837B003A5FDE /* WKPageConfigurationRef.h */; settings = {ATTRIBUTES = (Private, ); }; };
                7C882DF41C7E995E006BF731 /* _WKUserContentWorld.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = _WKUserContentWorld.mm; sourceTree = "<group>"; };
                7C882DF51C7E995E006BF731 /* _WKUserContentWorldInternal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = _WKUserContentWorldInternal.h; sourceTree = "<group>"; };
                7C882DF61C7E995E006BF731 /* WKUserScriptPrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKUserScriptPrivate.h; sourceTree = "<group>"; };
-               7C882DFB1C7E99A6006BF731 /* APIUserContentWorld.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = APIUserContentWorld.cpp; sourceTree = "<group>"; };
-               7C882DFC1C7E99A6006BF731 /* APIUserContentWorld.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APIUserContentWorld.h; sourceTree = "<group>"; };
                7C89D2921A67122F003A5FDE /* APIUserScript.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APIUserScript.h; sourceTree = "<group>"; };
                7C89D2951A6753B2003A5FDE /* APIPageConfiguration.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = APIPageConfiguration.cpp; sourceTree = "<group>"; };
                7C89D2961A6753B2003A5FDE /* APIPageConfiguration.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APIPageConfiguration.h; sourceTree = "<group>"; };
                                1A4D664718A2D91A00D82E21 /* APIUIClient.h */,
                                51D124381E6DFDB9002B2820 /* APIURLSchemeTask.cpp */,
                                51D124391E6DFDB9002B2820 /* APIURLSchemeTask.h */,
-                               7C882DFB1C7E99A6006BF731 /* APIUserContentWorld.cpp */,
-                               7C882DFC1C7E99A6006BF731 /* APIUserContentWorld.h */,
                                7CB365AF1D31DD1E007158CA /* APIUserInitiatedAction.h */,
                                7C89D2A51A6789EA003A5FDE /* APIUserScript.cpp */,
                                7C89D2921A67122F003A5FDE /* APIUserScript.h */,
                                BCE2315D122C30CA00D5C35A /* APIURLRequest.h in Headers */,
                                BC90A1D2122DD55E00CC8C50 /* APIURLResponse.h in Headers */,
                                F6113E25126CE1820057D0A7 /* APIUserContentURLPattern.h in Headers */,
-                               7C882DFD1C7E99A8006BF731 /* APIUserContentWorld.h in Headers */,
                                7CB365B11D31DD1E007158CA /* APIUserInitiatedAction.h in Headers */,
                                7C89D2941A67122F003A5FDE /* APIUserScript.h in Headers */,
                                2D8786241BDB58FF00D02ABB /* APIUserStyleSheet.h in Headers */,
index 9549730..a2d78e6 100644 (file)
@@ -101,7 +101,7 @@ InjectedBundleScriptWorld* WebUserContentController::worldForIdentifier(ContentW
     return iterator == worldMap().end() ? nullptr : iterator->value.first.get();
 }
 
-void WebUserContentController::addUserContentWorld(const std::pair<ContentWorldIdentifier, String>& world)
+void WebUserContentController::addContentWorld(const std::pair<ContentWorldIdentifier, String>& world)
 {
     ASSERT(world.first);
     if (world.first == pageContentWorldIdentifier())
@@ -119,13 +119,13 @@ void WebUserContentController::addUserContentWorld(const std::pair<ContentWorldI
     });
 }
 
-void WebUserContentController::addUserContentWorlds(const Vector<std::pair<ContentWorldIdentifier, String>>& worlds)
+void WebUserContentController::addContentWorlds(const Vector<std::pair<ContentWorldIdentifier, String>>& worlds)
 {
     for (auto& world : worlds)
-        addUserContentWorld(world);
+        addContentWorld(world);
 }
 
-void WebUserContentController::removeUserContentWorlds(const Vector<ContentWorldIdentifier>& worldIdentifiers)
+void WebUserContentController::removeContentWorlds(const Vector<ContentWorldIdentifier>& worldIdentifiers)
 {
     for (auto& worldIdentifier : worldIdentifiers) {
         ASSERT(worldIdentifier);
@@ -133,7 +133,7 @@ void WebUserContentController::removeUserContentWorlds(const Vector<ContentWorld
 
         auto it = worldMap().find(worldIdentifier);
         if (it == worldMap().end()) {
-            WTFLogAlways("Trying to remove a UserContentWorld (id=%" PRIu64 ") that does not exist.", worldIdentifier.toUInt64());
+            WTFLogAlways("Trying to remove a ContentWorld (id=%" PRIu64 ") that does not exist.", worldIdentifier.toUInt64());
             return;
         }
 
@@ -149,7 +149,7 @@ void WebUserContentController::addUserScripts(Vector<WebUserScriptData>&& userSc
     for (const auto& userScriptData : userScripts) {
         auto it = worldMap().find(userScriptData.worldIdentifier);
         if (it == worldMap().end()) {
-            WTFLogAlways("Trying to add a UserScript to a UserContentWorld (id=%" PRIu64 ") that does not exist.", userScriptData.worldIdentifier.toUInt64());
+            WTFLogAlways("Trying to add a UserScript to a ContentWorld (id=%" PRIu64 ") that does not exist.", userScriptData.worldIdentifier.toUInt64());
             continue;
         }
 
@@ -162,7 +162,7 @@ void WebUserContentController::removeUserScript(ContentWorldIdentifier worldIden
 {
     auto it = worldMap().find(worldIdentifier);
     if (it == worldMap().end()) {
-        WTFLogAlways("Trying to remove a UserScript from a UserContentWorld (id=%" PRIu64 ") that does not exist.", worldIdentifier.toUInt64());
+        WTFLogAlways("Trying to remove a UserScript from a ContentWorld (id=%" PRIu64 ") that does not exist.", worldIdentifier.toUInt64());
         return;
     }
 
@@ -174,7 +174,7 @@ void WebUserContentController::removeAllUserScripts(const Vector<ContentWorldIde
     for (auto& worldIdentifier : worldIdentifiers) {
         auto it = worldMap().find(worldIdentifier);
         if (it == worldMap().end()) {
-            WTFLogAlways("Trying to remove all UserScripts from a UserContentWorld (id=%" PRIu64 ") that does not exist.", worldIdentifier.toUInt64());
+            WTFLogAlways("Trying to remove all UserScripts from a ContentWorld (id=%" PRIu64 ") that does not exist.", worldIdentifier.toUInt64());
             return;
         }
 
@@ -187,7 +187,7 @@ void WebUserContentController::addUserStyleSheets(const Vector<WebUserStyleSheet
     for (const auto& userStyleSheetData : userStyleSheets) {
         auto it = worldMap().find(userStyleSheetData.worldIdentifier);
         if (it == worldMap().end()) {
-            WTFLogAlways("Trying to add a UserStyleSheet to a UserContentWorld (id=%" PRIu64 ") that does not exist.", userStyleSheetData.worldIdentifier.toUInt64());
+            WTFLogAlways("Trying to add a UserStyleSheet to a ContentWorld (id=%" PRIu64 ") that does not exist.", userStyleSheetData.worldIdentifier.toUInt64());
             continue;
         }
         
@@ -202,7 +202,7 @@ void WebUserContentController::removeUserStyleSheet(ContentWorldIdentifier world
 {
     auto it = worldMap().find(worldIdentifier);
     if (it == worldMap().end()) {
-        WTFLogAlways("Trying to remove a UserStyleSheet from a UserContentWorld (id=%" PRIu64 ") that does not exist.", worldIdentifier.toUInt64());
+        WTFLogAlways("Trying to remove a UserStyleSheet from a ContentWorld (id=%" PRIu64 ") that does not exist.", worldIdentifier.toUInt64());
         return;
     }
 
@@ -215,7 +215,7 @@ void WebUserContentController::removeAllUserStyleSheets(const Vector<ContentWorl
     for (auto& worldIdentifier : worldIdentifiers) {
         auto it = worldMap().find(worldIdentifier);
         if (it == worldMap().end()) {
-            WTFLogAlways("Trying to remove all UserStyleSheets from a UserContentWorld (id=%" PRIu64 ") that does not exist.", worldIdentifier.toUInt64());
+            WTFLogAlways("Trying to remove all UserStyleSheets from a ContentWorld (id=%" PRIu64 ") that does not exist.", worldIdentifier.toUInt64());
             return;
         }
 
@@ -278,7 +278,7 @@ void WebUserContentController::addUserScriptMessageHandlers(const Vector<WebScri
     for (auto& handler : scriptMessageHandlers) {
         auto it = worldMap().find(handler.worldIdentifier);
         if (it == worldMap().end()) {
-            WTFLogAlways("Trying to add a UserScriptMessageHandler to a UserContentWorld (id=%" PRIu64 ") that does not exist.", handler.worldIdentifier.toUInt64());
+            WTFLogAlways("Trying to add a UserScriptMessageHandler to a ContentWorld (id=%" PRIu64 ") that does not exist.", handler.worldIdentifier.toUInt64());
             continue;
         }
 
@@ -294,7 +294,7 @@ void WebUserContentController::removeUserScriptMessageHandler(ContentWorldIdenti
 #if ENABLE(USER_MESSAGE_HANDLERS)
     auto it = worldMap().find(worldIdentifier);
     if (it == worldMap().end()) {
-        WTFLogAlways("Trying to remove a UserScriptMessageHandler from a UserContentWorld (id=%" PRIu64 ") that does not exist.", worldIdentifier.toUInt64());
+        WTFLogAlways("Trying to remove a UserScriptMessageHandler from a ContentWorld (id=%" PRIu64 ") that does not exist.", worldIdentifier.toUInt64());
         return;
     }
 
@@ -312,7 +312,7 @@ void WebUserContentController::removeAllUserScriptMessageHandlers(const Vector<C
     for (auto& worldIdentifier : worldIdentifiers) {
         auto it = worldMap().find(worldIdentifier);
         if (it == worldMap().end()) {
-            WTFLogAlways("Trying to remove all UserScriptMessageHandler from a UserContentWorld (id=%" PRIu64 ") that does not exist.", worldIdentifier.toUInt64());
+            WTFLogAlways("Trying to remove all UserScriptMessageHandler from a ContentWorld (id=%" PRIu64 ") that does not exist.", worldIdentifier.toUInt64());
             return;
         }
 
index 9588567..23c92d0 100644 (file)
@@ -66,8 +66,8 @@ public:
 
     InjectedBundleScriptWorld* worldForIdentifier(ContentWorldIdentifier);
 
-    void addUserContentWorlds(const Vector<std::pair<ContentWorldIdentifier, String>>&);
-    void addUserContentWorld(const std::pair<ContentWorldIdentifier, String>&);
+    void addContentWorlds(const Vector<std::pair<ContentWorldIdentifier, String>>&);
+    void addContentWorld(const std::pair<ContentWorldIdentifier, String>&);
     void addUserScripts(Vector<WebUserScriptData>&&, InjectUserScriptImmediately);
     void addUserStyleSheets(const Vector<WebUserStyleSheetData>&);
     void addUserScriptMessageHandlers(const Vector<WebScriptMessageHandlerData>&);
@@ -91,7 +91,7 @@ private:
     // IPC::MessageReceiver.
     void didReceiveMessage(IPC::Connection&, IPC::Decoder&) override;
 
-    void removeUserContentWorlds(const Vector<ContentWorldIdentifier>&);
+    void removeContentWorlds(const Vector<ContentWorldIdentifier>&);
 
     void removeUserScript(ContentWorldIdentifier, uint64_t userScriptIdentifier);
     void removeAllUserScripts(const Vector<ContentWorldIdentifier>&);
index 574259a..5adcd08 100644 (file)
@@ -24,8 +24,8 @@
  */
 
 messages -> WebUserContentController {
-    AddUserContentWorlds(Vector<std::pair<WebKit::ContentWorldIdentifier, String>> worlds);
-    RemoveUserContentWorlds(Vector<WebKit::ContentWorldIdentifier> worldIdentifiers);
+    AddContentWorlds(Vector<std::pair<WebKit::ContentWorldIdentifier, String>> worlds);
+    RemoveContentWorlds(Vector<WebKit::ContentWorldIdentifier> worldIdentifiers);
 
     AddUserScripts(Vector<struct WebKit::WebUserScriptData> userScripts, enum:bool WebKit::InjectUserScriptImmediately immediately);
     RemoveUserScript(WebKit::ContentWorldIdentifier worldIdentifier, uint64_t identifier);
index 14e1950..0ab3375 100644 (file)
@@ -709,7 +709,7 @@ WebPage::WebPage(PageIdentifier pageID, WebPageCreationParameters&& parameters)
     for (const auto& iterator : parameters.urlSchemeHandlers)
         registerURLSchemeHandler(iterator.value, iterator.key);
 
-    m_userContentController->addUserContentWorlds(parameters.userContentWorlds);
+    m_userContentController->addContentWorlds(parameters.userContentWorlds);
     m_userContentController->addUserScripts(WTFMove(parameters.userScripts), InjectUserScriptImmediately::No);
     m_userContentController->addUserStyleSheets(parameters.userStyleSheets);
     m_userContentController->addUserScriptMessageHandlers(parameters.messageHandlers);
@@ -3444,7 +3444,7 @@ void WebPage::runJavaScript(WebFrame* frame, RunJavaScriptParameters&& parameter
 
 void WebPage::runJavaScriptInMainFrameScriptWorld(RunJavaScriptParameters&& parameters, const std::pair<ContentWorldIdentifier, String>& worldData, CallbackID callbackID)
 {
-    m_userContentController->addUserContentWorld(worldData);
+    m_userContentController->addContentWorld(worldData);
     runJavaScript(mainWebFrame(), WTFMove(parameters), worldData.first, callbackID);
 }
 
index ff1e886..25f03af 100644 (file)
@@ -1,3 +1,15 @@
+2020-02-26  Alex Christensen  <achristensen@webkit.org>
+
+        _WKUserContentWorld should be a wrapper around WKContentWorld
+        https://bugs.webkit.org/show_bug.cgi?id=208274
+
+        Reviewed by Brady Eidson.
+
+        * TestWebKitAPI/Tests/WebKitCocoa/UserContentWorld.mm:
+        (TEST):
+        * TestWebKitAPI/Tests/WebKitCocoa/WKWebViewEvaluateJavaScript.mm:
+        (TEST):
+
 2020-02-26  Ryan Haddad  <ryanhaddad@apple.com>
 
         Unreviewed, rolling out r257522.
index bffc3f7..6a90c67 100644 (file)
 #import <WebKit/_WKUserStyleSheet.h>
 #import <wtf/RetainPtr.h>
 
-TEST(UserContentWorld, NormalWorld)
+TEST(ContentWorld, NormalWorld)
 {
     RetainPtr<WKUserScript> basicUserScript = adoptNS([[WKUserScript alloc] initWithSource:@"" injectionTime:WKUserScriptInjectionTimeAtDocumentStart forMainFrameOnly:YES]);
-    EXPECT_EQ([basicUserScript _userContentWorld], [_WKUserContentWorld normalWorld]);
+    EXPECT_NE([basicUserScript _userContentWorld], [_WKUserContentWorld normalWorld]);
+    EXPECT_WK_STREQ([basicUserScript _userContentWorld].name, [_WKUserContentWorld normalWorld].name);
     EXPECT_NULL([basicUserScript _userContentWorld].name);
 }
 
-TEST(UserContentWorld, NormalWorldUserScript)
+TEST(ContentWorld, NormalWorldUserScript)
 {
     RetainPtr<WKWebViewConfiguration> configuration = adoptNS([[WKWebViewConfiguration alloc] init]);
 
@@ -76,16 +77,17 @@ TEST(UserContentWorld, NormalWorldUserScript)
     TestWebKitAPI::Util::run(&isDone);
 }
 
-TEST(UserContentWorld, IsolatedWorld)
+TEST(ContentWorld, IsolatedWorld)
 {
     RetainPtr<_WKUserContentWorld> isolatedWorld = [_WKUserContentWorld worldWithName:@"TestWorld"];
     EXPECT_WK_STREQ([isolatedWorld name], @"TestWorld");
 
     RetainPtr<WKUserScript> userScript = adoptNS([[WKUserScript alloc] _initWithSource:@"" injectionTime:WKUserScriptInjectionTimeAtDocumentStart forMainFrameOnly:YES legacyWhitelist:@[] legacyBlacklist:@[] userContentWorld:isolatedWorld.get()]);
-    EXPECT_EQ([userScript _userContentWorld], isolatedWorld.get());
+    EXPECT_NE([userScript _userContentWorld], isolatedWorld.get());
+    EXPECT_WK_STREQ([userScript _userContentWorld].name, [isolatedWorld name]);
 }
 
-TEST(UserContentWorld, IsolatedWorldUserScript)
+TEST(ContentWorld, IsolatedWorldUserScript)
 {
     RetainPtr<WKWebViewConfiguration> configuration = adoptNS([[WKWebViewConfiguration alloc] init]);