Changeset 248473 in webkit


Ignore:
Timestamp:
Aug 9, 2019 1:55:06 PM (5 years ago)
Author:
youenn@apple.com
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:
Location:
trunk/Source/WebCore
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r248471 r248473  
     12019-08-09  Youenn Fablet  <youenn@apple.com>
     2
     3        Pass a ScriptExecutionContext as input to register/unregister URLRegistry routines
     4        https://bugs.webkit.org/show_bug.cgi?id=200571
     5
     6        Reviewed by Darin Adler.
     7
     8        Passing a ScriptExecutionContext to register/unregister routines will allow
     9        to have session ID based handling for blobs, in particular to use session partitioned blob registries.
     10        No change of behavior.
     11
     12        * Modules/mediasource/MediaSourceRegistry.cpp:
     13        (WebCore::MediaSourceRegistry::registerURL):
     14        (WebCore::MediaSourceRegistry::unregisterURL):
     15        * Modules/mediasource/MediaSourceRegistry.h:
     16        * fileapi/Blob.cpp:
     17        (WebCore::BlobURLRegistry::registerURL):
     18        (WebCore::BlobURLRegistry::unregisterURL):
     19        * html/DOMURL.cpp:
     20        (WebCore::DOMURL::createPublicURL):
     21        * html/PublicURLManager.cpp:
     22        (WebCore::PublicURLManager::registerURL):
     23        (WebCore::PublicURLManager::revoke):
     24        (WebCore::PublicURLManager::stop):
     25        * html/PublicURLManager.h:
     26        * html/URLRegistry.h:
     27
    1282019-08-09  Alex Christensen  <achristensen@webkit.org>
    229
  • trunk/Source/WebCore/Modules/mediasource/MediaSourceRegistry.cpp

    r238771 r248473  
    4949}
    5050
    51 void MediaSourceRegistry::registerURL(SecurityOrigin*, const URL& url, URLRegistrable& registrable)
     51void MediaSourceRegistry::registerURL(ScriptExecutionContext&, const URL& url, URLRegistrable& registrable)
    5252{
    5353    ASSERT(&registrable.registry() == this);
     
    5959}
    6060
    61 void MediaSourceRegistry::unregisterURL(const URL& url)
     61void MediaSourceRegistry::unregisterURL(ScriptExecutionContext&, const URL& url)
    6262{
    6363    ASSERT(isMainThread());
  • trunk/Source/WebCore/Modules/mediasource/MediaSourceRegistry.h

    r238771 r248473  
    4848
    4949    // Registers a blob URL referring to the specified media source.
    50     void registerURL(SecurityOrigin*, const URL&, URLRegistrable&) override;
    51     void unregisterURL(const URL&) override;
    52     URLRegistrable* lookup(const String&) const override;
     50    void registerURL(ScriptExecutionContext&, const URL&, URLRegistrable&)final;
     51    void unregisterURL(ScriptExecutionContext&, const URL&) final;
     52    URLRegistrable* lookup(const String&) const final;
    5353
    5454private:
  • trunk/Source/WebCore/fileapi/Blob.cpp

    r243887 r248473  
    4949class BlobURLRegistry final : public URLRegistry {
    5050public:
    51     void registerURL(SecurityOrigin*, const URL&, URLRegistrable&) override;
    52     void unregisterURL(const URL&) override;
     51    void registerURL(ScriptExecutionContext&, const URL&, URLRegistrable&) final;
     52    void unregisterURL(ScriptExecutionContext&, const URL&) final;
    5353
    5454    static URLRegistry& registry();
     
    5656
    5757
    58 void BlobURLRegistry::registerURL(SecurityOrigin* origin, const URL& publicURL, URLRegistrable& blob)
     58void BlobURLRegistry::registerURL(ScriptExecutionContext& context, const URL& publicURL, URLRegistrable& blob)
    5959{
    6060    ASSERT(&blob.registry() == this);
    61     ThreadableBlobRegistry::registerBlobURL(origin, publicURL, static_cast<Blob&>(blob).url());
    62 }
    63 
    64 void BlobURLRegistry::unregisterURL(const URL& url)
     61    ThreadableBlobRegistry::registerBlobURL(context.securityOrigin(), publicURL, static_cast<Blob&>(blob).url());
     62}
     63
     64void BlobURLRegistry::unregisterURL(ScriptExecutionContext&, const URL& url)
    6565{
    6666    ThreadableBlobRegistry::unregisterBlobURL(url);
  • trunk/Source/WebCore/html/DOMURL.cpp

    r238771 r248473  
    104104        return String();
    105105
    106     scriptExecutionContext.publicURLManager().registerURL(scriptExecutionContext.securityOrigin(), publicURL, registrable);
     106    scriptExecutionContext.publicURLManager().registerURL(publicURL, registrable);
    107107
    108108    return publicURL.string();
  • trunk/Source/WebCore/html/PublicURLManager.cpp

    r238771 r248473  
    4646}
    4747
    48 void PublicURLManager::registerURL(SecurityOrigin* origin, const URL& url, URLRegistrable& registrable)
     48void PublicURLManager::registerURL(const URL& url, URLRegistrable& registrable)
    4949{
    5050    if (m_isStopped)
     
    5252
    5353    RegistryURLMap::iterator found = m_registryToURL.add(&registrable.registry(), URLSet()).iterator;
    54     found->key->registerURL(origin, url, registrable);
     54    found->key->registerURL(*scriptExecutionContext(), url, registrable);
    5555    found->value.add(url.string());
    5656}
     
    6060    for (auto& registry : m_registryToURL) {
    6161        if (registry.value.contains(url.string())) {
    62             registry.key->unregisterURL(url);
     62            registry.key->unregisterURL(*scriptExecutionContext(), url);
    6363            registry.value.remove(url.string());
    6464            break;
     
    7575    for (auto& registry : m_registryToURL) {
    7676        for (auto& url : registry.value)
    77             registry.key->unregisterURL(URL({ }, url));
     77            registry.key->unregisterURL(*scriptExecutionContext(), URL({ }, url));
    7878    }
    7979
  • trunk/Source/WebCore/html/PublicURLManager.h

    r238771 r248473  
    3434namespace WebCore {
    3535
    36 class ScriptExecutionContext;
    3736class SecurityOrigin;
    3837class URLRegistry;
     
    4645    static std::unique_ptr<PublicURLManager> create(ScriptExecutionContext*);
    4746
    48     void registerURL(SecurityOrigin*, const URL&, URLRegistrable&);
     47    void registerURL(const URL&, URLRegistrable&);
    4948    void revoke(const URL&);
    5049
  • trunk/Source/WebCore/html/URLRegistry.h

    r238771 r248473  
    3535namespace WebCore {
    3636
    37 class SecurityOrigin;
     37class ScriptExecutionContext;
    3838class URLRegistry;
    3939
     
    4848public:
    4949    virtual ~URLRegistry() = default;
    50     virtual void registerURL(SecurityOrigin*, const URL&, URLRegistrable&) = 0;
    51     virtual void unregisterURL(const URL&) = 0;
     50    virtual void registerURL(ScriptExecutionContext&, const URL&, URLRegistrable&) = 0;
     51    virtual void unregisterURL(ScriptExecutionContext&, const URL&) = 0;
    5252
    5353    // This is an optional API
Note: See TracChangeset for help on using the changeset viewer.