Title: [128087] trunk/Source/WebKit/chromium
Revision
128087
Author
pilg...@chromium.org
Date
2012-09-10 12:07:48 -0700 (Mon, 10 Sep 2012)

Log Message

[Chromium] Define new setSharedWorkerRepository function in preparation for removing WebKitPlatformSupport::sharedWorkerRepository()
https://bugs.webkit.org/show_bug.cgi?id=95861

Reviewed by Adam Barth.

Followup patch to Chromium will call this new function, then we can remove all references to the legacy function on WebKitPlatformSupport.

* public/WebSharedWorkerRepository.h:
(WebKit):
* src/SharedWorkerRepository.cpp:
(WebKit):
(WebKit::setSharedWorkerRepository):
(WebKit::sharedWorkerRepository):
(WebCore::SharedWorkerRepository::isAvailable):
(WebCore::SharedWorkerRepository::connect):
(WebCore::SharedWorkerRepository::documentDetached):
(WebCore::SharedWorkerRepository::hasSharedWorkers):

Modified Paths

Diff

Modified: trunk/Source/WebKit/chromium/ChangeLog (128086 => 128087)


--- trunk/Source/WebKit/chromium/ChangeLog	2012-09-10 18:50:54 UTC (rev 128086)
+++ trunk/Source/WebKit/chromium/ChangeLog	2012-09-10 19:07:48 UTC (rev 128087)
@@ -1,3 +1,23 @@
+2012-09-10  Mark Pilgrim  <pilg...@chromium.org>
+
+        [Chromium] Define new setSharedWorkerRepository function in preparation for removing WebKitPlatformSupport::sharedWorkerRepository()
+        https://bugs.webkit.org/show_bug.cgi?id=95861
+
+        Reviewed by Adam Barth.
+
+        Followup patch to Chromium will call this new function, then we can remove all references to the legacy function on WebKitPlatformSupport.
+
+        * public/WebSharedWorkerRepository.h:
+        (WebKit):
+        * src/SharedWorkerRepository.cpp:
+        (WebKit):
+        (WebKit::setSharedWorkerRepository):
+        (WebKit::sharedWorkerRepository):
+        (WebCore::SharedWorkerRepository::isAvailable):
+        (WebCore::SharedWorkerRepository::connect):
+        (WebCore::SharedWorkerRepository::documentDetached):
+        (WebCore::SharedWorkerRepository::hasSharedWorkers):
+
 2012-09-10  Catalin Badea  <ba...@adobe.com>
 
         webkit build for 64-bit Mac chromium

Modified: trunk/Source/WebKit/chromium/public/WebSharedWorkerRepository.h (128086 => 128087)


--- trunk/Source/WebKit/chromium/public/WebSharedWorkerRepository.h	2012-09-10 18:50:54 UTC (rev 128086)
+++ trunk/Source/WebKit/chromium/public/WebSharedWorkerRepository.h	2012-09-10 19:07:48 UTC (rev 128087)
@@ -54,6 +54,9 @@
     virtual bool hasSharedWorkers(DocumentID) = 0;
 };
 
+// Initializes shared worker support.
+WEBKIT_EXPORT void setSharedWorkerRepository(WebSharedWorkerRepository*);
+
 } // namespace WebKit
 
 #endif // WebSharedWorkerRepository_h

Modified: trunk/Source/WebKit/chromium/src/SharedWorkerRepository.cpp (128086 => 128087)


--- trunk/Source/WebKit/chromium/src/SharedWorkerRepository.cpp	2012-09-10 18:50:54 UTC (rev 128086)
+++ trunk/Source/WebKit/chromium/src/SharedWorkerRepository.cpp	2012-09-10 19:07:48 UTC (rev 128087)
@@ -58,6 +58,30 @@
 #include <public/WebString.h>
 #include <public/WebURL.h>
 
+namespace WebKit {
+
+WebSharedWorkerRepository* s_sharedWorkerRepository = 0;
+
+void setSharedWorkerRepository(WebSharedWorkerRepository* repository)
+{
+    s_sharedWorkerRepository = repository;
+}
+
+static WebSharedWorkerRepository* sharedWorkerRepository()
+{
+    WebSharedWorkerRepository* repository;
+
+    repository = s_sharedWorkerRepository;
+    if (!repository) {
+        repository = webKitPlatformSupport()->sharedWorkerRepository();
+        setSharedWorkerRepository(repository);
+    }
+
+    return repository;
+}
+
+}
+
 namespace WebCore {
 
 class Document;
@@ -194,8 +218,9 @@
 
 bool SharedWorkerRepository::isAvailable()
 {
-    // Allow the WebKitPlatformSupport to determine if SharedWorkers are available.
-    return WebKit::webKitPlatformSupport()->sharedWorkerRepository();
+    // Allow the WebKitPlatformSupport to determine if SharedWorkers
+    // are available.
+    return WebKit::sharedWorkerRepository();
 }
 
 static WebSharedWorkerRepository::DocumentID getId(void* document)
@@ -206,9 +231,11 @@
 
 void SharedWorkerRepository::connect(PassRefPtr<SharedWorker> worker, PassOwnPtr<MessagePortChannel> port, const KURL& url, const String& name, ExceptionCode& ec)
 {
+    WebKit::WebSharedWorkerRepository* repository = WebKit::sharedWorkerRepository();
+
     // This should not be callable unless there's a SharedWorkerRepository for
     // this context (since isAvailable() should have returned null).
-    ASSERT(WebKit::webKitPlatformSupport()->sharedWorkerRepository());
+    ASSERT(repository);
 
     // No nested workers (for now) - connect() should only be called from document context.
     ASSERT(worker->scriptExecutionContext()->isDocument());
@@ -223,8 +250,7 @@
         return;
     }
 
-    WebKit::webKitPlatformSupport()->sharedWorkerRepository()->addSharedWorker(
-        webWorker.get(), getId(document));
+    repository->addSharedWorker(webWorker.get(), getId(document));
 
     // The loader object manages its own lifecycle (and the lifecycles of the two worker objects).
     // It will free itself once loading is completed.
@@ -234,10 +260,11 @@
 
 void SharedWorkerRepository::documentDetached(Document* document)
 {
-    WebSharedWorkerRepository* repo = WebKit::webKitPlatformSupport()->sharedWorkerRepository();
-    if (repo)
-        repo->documentDetached(getId(document));
+    WebKit::WebSharedWorkerRepository* repository = WebKit::sharedWorkerRepository();
 
+    if (repository)
+        repository->documentDetached(getId(document));
+
     // Stop the creation of any pending SharedWorkers for this context.
     // FIXME: Need a way to invoke this for WorkerContexts as well when we support for nested workers.
     SharedWorkerScriptLoader::stopAllLoadersForContext(document);
@@ -245,12 +272,11 @@
 
 bool SharedWorkerRepository::hasSharedWorkers(Document* document)
 {
-    WebSharedWorkerRepository* repo = WebKit::webKitPlatformSupport()->sharedWorkerRepository();
-    return repo && repo->hasSharedWorkers(getId(document));
+    WebKit::WebSharedWorkerRepository* repository = WebKit::sharedWorkerRepository();
+
+    return repository && repository->hasSharedWorkers(getId(document));
 }
 
-
-
 } // namespace WebCore
 
 #endif // ENABLE(SHARED_WORKERS)
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to