Title: [286499] trunk/Source/WebCore
Revision
286499
Author
cdu...@apple.com
Date
2021-12-03 10:00:42 -0800 (Fri, 03 Dec 2021)

Log Message

Introduce WorkerGlobalScope::type() function
https://bugs.webkit.org/show_bug.cgi?id=233793

Reviewed by Alex Christensen.

Introduce WorkerGlobalScope::type() function to replace isDedicatedWorkerGlobalScope() / isServiceWorkerGlobalScope()
/ isSharedWorkerGlobalScope(). This is extracted from Alex's large patch at Bug 230382.

* workers/shared/SharedWorkerGlobalScope.h:
(isType):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (286498 => 286499)


--- trunk/Source/WebCore/ChangeLog	2021-12-03 17:45:21 UTC (rev 286498)
+++ trunk/Source/WebCore/ChangeLog	2021-12-03 18:00:42 UTC (rev 286499)
@@ -1,3 +1,16 @@
+2021-12-03  Chris Dumez  <cdu...@apple.com>
+
+        Introduce WorkerGlobalScope::type() function
+        https://bugs.webkit.org/show_bug.cgi?id=233793
+
+        Reviewed by Alex Christensen.
+
+        Introduce WorkerGlobalScope::type() function to replace isDedicatedWorkerGlobalScope() / isServiceWorkerGlobalScope()
+        / isSharedWorkerGlobalScope(). This is extracted from Alex's large patch at Bug 230382.
+
+        * workers/shared/SharedWorkerGlobalScope.h:
+        (isType):
+
 2021-12-03  Youenn Fablet  <you...@apple.com>
 
         Improve dictionary-based DOMPromiseDeferred::settle

Modified: trunk/Source/WebCore/workers/DedicatedWorkerGlobalScope.h (286498 => 286499)


--- trunk/Source/WebCore/workers/DedicatedWorkerGlobalScope.h	2021-12-03 17:45:21 UTC (rev 286498)
+++ trunk/Source/WebCore/workers/DedicatedWorkerGlobalScope.h	2021-12-03 18:00:42 UTC (rev 286499)
@@ -87,7 +87,8 @@
 
     DedicatedWorkerGlobalScope(const WorkerParameters&, Ref<SecurityOrigin>&&, DedicatedWorkerThread&, Ref<SecurityOrigin>&& topOrigin, IDBClient::IDBConnectionProxy*, SocketProvider*);
 
-    bool isDedicatedWorkerGlobalScope() const final { return true; }
+    Type type() const final { return Type::DedicatedWorker; }
+
     ExceptionOr<void> importScripts(const Vector<String>& urls) final;
     EventTargetInterface eventTargetInterface() const final;
 
@@ -103,6 +104,6 @@
 } // namespace WebCore
 
 SPECIALIZE_TYPE_TRAITS_BEGIN(WebCore::DedicatedWorkerGlobalScope)
-    static bool isType(const WebCore::ScriptExecutionContext& context) { return is<WebCore::WorkerGlobalScope>(context) && downcast<WebCore::WorkerGlobalScope>(context).isDedicatedWorkerGlobalScope(); }
-    static bool isType(const WebCore::WorkerGlobalScope& context) { return context.isDedicatedWorkerGlobalScope(); }
+    static bool isType(const WebCore::ScriptExecutionContext& context) { return is<WebCore::WorkerGlobalScope>(context) && downcast<WebCore::WorkerGlobalScope>(context).type() == WebCore::WorkerGlobalScope::Type::DedicatedWorker; }
+    static bool isType(const WebCore::WorkerGlobalScope& context) { return context.type() == WebCore::WorkerGlobalScope::Type::DedicatedWorker; }
 SPECIALIZE_TYPE_TRAITS_END()

Modified: trunk/Source/WebCore/workers/WorkerGlobalScope.h (286498 => 286499)


--- trunk/Source/WebCore/workers/WorkerGlobalScope.h	2021-12-03 17:45:21 UTC (rev 286498)
+++ trunk/Source/WebCore/workers/WorkerGlobalScope.h	2021-12-03 18:00:42 UTC (rev 286499)
@@ -76,9 +76,8 @@
 public:
     virtual ~WorkerGlobalScope();
 
-    virtual bool isDedicatedWorkerGlobalScope() const { return false; }
-    virtual bool isSharedWorkerGlobalScope() const { return false; }
-    virtual bool isServiceWorkerGlobalScope() const { return false; }
+    enum class Type : uint8_t { DedicatedWorker, ServiceWorker, SharedWorker };
+    virtual Type type() const = 0;
 
     const URL& url() const final { return m_url; }
     String origin() const;

Modified: trunk/Source/WebCore/workers/service/ServiceWorkerGlobalScope.h (286498 => 286499)


--- trunk/Source/WebCore/workers/service/ServiceWorkerGlobalScope.h	2021-12-03 17:45:21 UTC (rev 286498)
+++ trunk/Source/WebCore/workers/service/ServiceWorkerGlobalScope.h	2021-12-03 18:00:42 UTC (rev 286499)
@@ -50,8 +50,6 @@
 
     ~ServiceWorkerGlobalScope();
 
-    bool isServiceWorkerGlobalScope() const final { return true; }
-
     ServiceWorkerClients& clients() { return m_clients.get(); }
     ServiceWorkerRegistration& registration() { return m_registration.get(); }
     ServiceWorker& serviceWorker() { return m_serviceWorker.get(); }
@@ -84,6 +82,7 @@
     ServiceWorkerGlobalScope(ServiceWorkerContextData&&, ServiceWorkerData&&, const WorkerParameters&, Ref<SecurityOrigin>&&, ServiceWorkerThread&, Ref<SecurityOrigin>&& topOrigin, IDBClient::IDBConnectionProxy*, SocketProvider*);
     void notifyServiceWorkerPageOfCreationIfNecessary();
 
+    Type type() const final { return Type::ServiceWorker; }
     bool hasPendingEvents() const { return !m_extendedEvents.isEmpty(); }
 
     ServiceWorkerContextData m_contextData;
@@ -100,8 +99,8 @@
 } // namespace WebCore
 
 SPECIALIZE_TYPE_TRAITS_BEGIN(WebCore::ServiceWorkerGlobalScope)
-    static bool isType(const WebCore::ScriptExecutionContext& context) { return is<WebCore::WorkerGlobalScope>(context) && downcast<WebCore::WorkerGlobalScope>(context).isServiceWorkerGlobalScope(); }
-    static bool isType(const WebCore::WorkerGlobalScope& context) { return context.isServiceWorkerGlobalScope(); }
+    static bool isType(const WebCore::ScriptExecutionContext& context) { return is<WebCore::WorkerGlobalScope>(context) && downcast<WebCore::WorkerGlobalScope>(context).type() == WebCore::WorkerGlobalScope::Type::ServiceWorker; }
+    static bool isType(const WebCore::WorkerGlobalScope& context) { return context.type() == WebCore::WorkerGlobalScope::Type::ServiceWorker; }
 SPECIALIZE_TYPE_TRAITS_END()
 
 #endif // ENABLE(SERVICE_WORKER)

Modified: trunk/Source/WebCore/workers/shared/SharedWorkerGlobalScope.h (286498 => 286499)


--- trunk/Source/WebCore/workers/shared/SharedWorkerGlobalScope.h	2021-12-03 17:45:21 UTC (rev 286498)
+++ trunk/Source/WebCore/workers/shared/SharedWorkerGlobalScope.h	2021-12-03 18:00:42 UTC (rev 286499)
@@ -32,10 +32,12 @@
 class SharedWorkerGlobalScope final : public WorkerGlobalScope {
     WTF_MAKE_ISO_ALLOCATED(SharedWorkerGlobalScope);
 public:
-    bool isSharedWorkerGlobalScope() const final { return true; }
     const String& name() const;
     void close();
+
 private:
+    Type type() const final { return Type::SharedWorker; }
+
     EventTargetInterface eventTargetInterface() const final;
     FetchOptions::Destination destination() const final;
 };
@@ -43,6 +45,6 @@
 } // namespace WebCore
 
 SPECIALIZE_TYPE_TRAITS_BEGIN(WebCore::SharedWorkerGlobalScope)
-    static bool isType(const WebCore::ScriptExecutionContext& context) { return is<WebCore::WorkerGlobalScope>(context) && downcast<WebCore::WorkerGlobalScope>(context).isSharedWorkerGlobalScope(); }
-    static bool isType(const WebCore::WorkerGlobalScope& context) { return context.isSharedWorkerGlobalScope(); }
+    static bool isType(const WebCore::ScriptExecutionContext& context) { return is<WebCore::WorkerGlobalScope>(context) && downcast<WebCore::WorkerGlobalScope>(context).type() == WebCore::WorkerGlobalScope::Type::SharedWorker; }
+    static bool isType(const WebCore::WorkerGlobalScope& context) { return context.type() == WebCore::WorkerGlobalScope::Type::SharedWorker; }
 SPECIALIZE_TYPE_TRAITS_END()
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to