Title: [248473] trunk/Source/WebCore
Revision
248473
Author
[email protected]
Date
2019-08-09 13:55:06 -0700 (Fri, 09 Aug 2019)

Log Message

Pass a ScriptExecutionContext as input to register/unregister URLRegistry routines
https://bugs.webkit.org/show_bug.cgi?id=200571

Reviewed by Darin Adler.

Passing a ScriptExecutionContext to register/unregister routines will allow
to have session ID based handling for blobs, in particular to use session partitioned blob registries.
No change of behavior.

* Modules/mediasource/MediaSourceRegistry.cpp:
(WebCore::MediaSourceRegistry::registerURL):
(WebCore::MediaSourceRegistry::unregisterURL):
* Modules/mediasource/MediaSourceRegistry.h:
* fileapi/Blob.cpp:
(WebCore::BlobURLRegistry::registerURL):
(WebCore::BlobURLRegistry::unregisterURL):
* html/DOMURL.cpp:
(WebCore::DOMURL::createPublicURL):
* html/PublicURLManager.cpp:
(WebCore::PublicURLManager::registerURL):
(WebCore::PublicURLManager::revoke):
(WebCore::PublicURLManager::stop):
* html/PublicURLManager.h:
* html/URLRegistry.h:

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (248472 => 248473)


--- trunk/Source/WebCore/ChangeLog	2019-08-09 20:33:36 UTC (rev 248472)
+++ trunk/Source/WebCore/ChangeLog	2019-08-09 20:55:06 UTC (rev 248473)
@@ -1,3 +1,30 @@
+2019-08-09  Youenn Fablet  <[email protected]>
+
+        Pass a ScriptExecutionContext as input to register/unregister URLRegistry routines
+        https://bugs.webkit.org/show_bug.cgi?id=200571
+
+        Reviewed by Darin Adler.
+
+        Passing a ScriptExecutionContext to register/unregister routines will allow
+        to have session ID based handling for blobs, in particular to use session partitioned blob registries.
+        No change of behavior.
+
+        * Modules/mediasource/MediaSourceRegistry.cpp:
+        (WebCore::MediaSourceRegistry::registerURL):
+        (WebCore::MediaSourceRegistry::unregisterURL):
+        * Modules/mediasource/MediaSourceRegistry.h:
+        * fileapi/Blob.cpp:
+        (WebCore::BlobURLRegistry::registerURL):
+        (WebCore::BlobURLRegistry::unregisterURL):
+        * html/DOMURL.cpp:
+        (WebCore::DOMURL::createPublicURL):
+        * html/PublicURLManager.cpp:
+        (WebCore::PublicURLManager::registerURL):
+        (WebCore::PublicURLManager::revoke):
+        (WebCore::PublicURLManager::stop):
+        * html/PublicURLManager.h:
+        * html/URLRegistry.h:
+
 2019-08-09  Alex Christensen  <[email protected]>
 
         Disable CSSOM View Scrolling API for IMDb iOS app

Modified: trunk/Source/WebCore/Modules/mediasource/MediaSourceRegistry.cpp (248472 => 248473)


--- trunk/Source/WebCore/Modules/mediasource/MediaSourceRegistry.cpp	2019-08-09 20:33:36 UTC (rev 248472)
+++ trunk/Source/WebCore/Modules/mediasource/MediaSourceRegistry.cpp	2019-08-09 20:55:06 UTC (rev 248473)
@@ -48,7 +48,7 @@
     return instance;
 }
 
-void MediaSourceRegistry::registerURL(SecurityOrigin*, const URL& url, URLRegistrable& registrable)
+void MediaSourceRegistry::registerURL(ScriptExecutionContext&, const URL& url, URLRegistrable& registrable)
 {
     ASSERT(&registrable.registry() == this);
     ASSERT(isMainThread());
@@ -58,7 +58,7 @@
     m_mediaSources.set(url.string(), &source);
 }
 
-void MediaSourceRegistry::unregisterURL(const URL& url)
+void MediaSourceRegistry::unregisterURL(ScriptExecutionContext&, const URL& url)
 {
     ASSERT(isMainThread());
     if (auto source = m_mediaSources.take(url.string()))

Modified: trunk/Source/WebCore/Modules/mediasource/MediaSourceRegistry.h (248472 => 248473)


--- trunk/Source/WebCore/Modules/mediasource/MediaSourceRegistry.h	2019-08-09 20:33:36 UTC (rev 248472)
+++ trunk/Source/WebCore/Modules/mediasource/MediaSourceRegistry.h	2019-08-09 20:55:06 UTC (rev 248473)
@@ -47,9 +47,9 @@
     static MediaSourceRegistry& registry();
 
     // Registers a blob URL referring to the specified media source.
-    void registerURL(SecurityOrigin*, const URL&, URLRegistrable&) override;
-    void unregisterURL(const URL&) override;
-    URLRegistrable* lookup(const String&) const override;
+    void registerURL(ScriptExecutionContext&, const URL&, URLRegistrable&)final;
+    void unregisterURL(ScriptExecutionContext&, const URL&) final;
+    URLRegistrable* lookup(const String&) const final;
 
 private:
     MediaSourceRegistry();

Modified: trunk/Source/WebCore/fileapi/Blob.cpp (248472 => 248473)


--- trunk/Source/WebCore/fileapi/Blob.cpp	2019-08-09 20:33:36 UTC (rev 248472)
+++ trunk/Source/WebCore/fileapi/Blob.cpp	2019-08-09 20:55:06 UTC (rev 248473)
@@ -48,20 +48,20 @@
 
 class BlobURLRegistry final : public URLRegistry {
 public:
-    void registerURL(SecurityOrigin*, const URL&, URLRegistrable&) override;
-    void unregisterURL(const URL&) override;
+    void registerURL(ScriptExecutionContext&, const URL&, URLRegistrable&) final;
+    void unregisterURL(ScriptExecutionContext&, const URL&) final;
 
     static URLRegistry& registry();
 };
 
 
-void BlobURLRegistry::registerURL(SecurityOrigin* origin, const URL& publicURL, URLRegistrable& blob)
+void BlobURLRegistry::registerURL(ScriptExecutionContext& context, const URL& publicURL, URLRegistrable& blob)
 {
     ASSERT(&blob.registry() == this);
-    ThreadableBlobRegistry::registerBlobURL(origin, publicURL, static_cast<Blob&>(blob).url());
+    ThreadableBlobRegistry::registerBlobURL(context.securityOrigin(), publicURL, static_cast<Blob&>(blob).url());
 }
 
-void BlobURLRegistry::unregisterURL(const URL& url)
+void BlobURLRegistry::unregisterURL(ScriptExecutionContext&, const URL& url)
 {
     ThreadableBlobRegistry::unregisterBlobURL(url);
 }

Modified: trunk/Source/WebCore/html/DOMURL.cpp (248472 => 248473)


--- trunk/Source/WebCore/html/DOMURL.cpp	2019-08-09 20:33:36 UTC (rev 248472)
+++ trunk/Source/WebCore/html/DOMURL.cpp	2019-08-09 20:55:06 UTC (rev 248473)
@@ -103,7 +103,7 @@
     if (publicURL.isEmpty())
         return String();
 
-    scriptExecutionContext.publicURLManager().registerURL(scriptExecutionContext.securityOrigin(), publicURL, registrable);
+    scriptExecutionContext.publicURLManager().registerURL(publicURL, registrable);
 
     return publicURL.string();
 }

Modified: trunk/Source/WebCore/html/PublicURLManager.cpp (248472 => 248473)


--- trunk/Source/WebCore/html/PublicURLManager.cpp	2019-08-09 20:33:36 UTC (rev 248472)
+++ trunk/Source/WebCore/html/PublicURLManager.cpp	2019-08-09 20:55:06 UTC (rev 248473)
@@ -45,13 +45,13 @@
 {
 }
 
-void PublicURLManager::registerURL(SecurityOrigin* origin, const URL& url, URLRegistrable& registrable)
+void PublicURLManager::registerURL(const URL& url, URLRegistrable& registrable)
 {
     if (m_isStopped)
         return;
 
     RegistryURLMap::iterator found = m_registryToURL.add(&registrable.registry(), URLSet()).iterator;
-    found->key->registerURL(origin, url, registrable);
+    found->key->registerURL(*scriptExecutionContext(), url, registrable);
     found->value.add(url.string());
 }
 
@@ -59,7 +59,7 @@
 {
     for (auto& registry : m_registryToURL) {
         if (registry.value.contains(url.string())) {
-            registry.key->unregisterURL(url);
+            registry.key->unregisterURL(*scriptExecutionContext(), url);
             registry.value.remove(url.string());
             break;
         }
@@ -74,7 +74,7 @@
     m_isStopped = true;
     for (auto& registry : m_registryToURL) {
         for (auto& url : registry.value)
-            registry.key->unregisterURL(URL({ }, url));
+            registry.key->unregisterURL(*scriptExecutionContext(), URL({ }, url));
     }
 
     m_registryToURL.clear();

Modified: trunk/Source/WebCore/html/PublicURLManager.h (248472 => 248473)


--- trunk/Source/WebCore/html/PublicURLManager.h	2019-08-09 20:33:36 UTC (rev 248472)
+++ trunk/Source/WebCore/html/PublicURLManager.h	2019-08-09 20:55:06 UTC (rev 248473)
@@ -33,7 +33,6 @@
 
 namespace WebCore {
 
-class ScriptExecutionContext;
 class SecurityOrigin;
 class URLRegistry;
 class URLRegistrable;
@@ -45,7 +44,7 @@
 
     static std::unique_ptr<PublicURLManager> create(ScriptExecutionContext*);
 
-    void registerURL(SecurityOrigin*, const URL&, URLRegistrable&);
+    void registerURL(const URL&, URLRegistrable&);
     void revoke(const URL&);
 
 private:

Modified: trunk/Source/WebCore/html/URLRegistry.h (248472 => 248473)


--- trunk/Source/WebCore/html/URLRegistry.h	2019-08-09 20:33:36 UTC (rev 248472)
+++ trunk/Source/WebCore/html/URLRegistry.h	2019-08-09 20:55:06 UTC (rev 248473)
@@ -34,7 +34,7 @@
 
 namespace WebCore {
 
-class SecurityOrigin;
+class ScriptExecutionContext;
 class URLRegistry;
 
 class URLRegistrable {
@@ -47,8 +47,8 @@
     WTF_MAKE_FAST_ALLOCATED;
 public:
     virtual ~URLRegistry() = default;
-    virtual void registerURL(SecurityOrigin*, const URL&, URLRegistrable&) = 0;
-    virtual void unregisterURL(const URL&) = 0;
+    virtual void registerURL(ScriptExecutionContext&, const URL&, URLRegistrable&) = 0;
+    virtual void unregisterURL(ScriptExecutionContext&, const URL&) = 0;
 
     // This is an optional API
     virtual URLRegistrable* lookup(const String&) const { ASSERT_NOT_REACHED(); return 0; }
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to