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(®istrable.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(®istrable.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; }