Diff
Modified: trunk/Source/WebCore/CMakeLists.txt (145465 => 145466)
--- trunk/Source/WebCore/CMakeLists.txt 2013-03-12 02:18:02 UTC (rev 145465)
+++ trunk/Source/WebCore/CMakeLists.txt 2013-03-12 02:24:17 UTC (rev 145466)
@@ -2523,6 +2523,7 @@
workers/DefaultSharedWorkerRepository.cpp
workers/SharedWorker.cpp
workers/SharedWorkerContext.cpp
+ workers/SharedWorkerRepository.cpp
workers/SharedWorkerThread.cpp
workers/Worker.cpp
workers/WorkerContext.cpp
Modified: trunk/Source/WebCore/ChangeLog (145465 => 145466)
--- trunk/Source/WebCore/ChangeLog 2013-03-12 02:18:02 UTC (rev 145465)
+++ trunk/Source/WebCore/ChangeLog 2013-03-12 02:24:17 UTC (rev 145466)
@@ -1,3 +1,37 @@
+2013-03-11 Alexey Proskuryakov <[email protected]>
+
+ Move SharedWorkerRepository functions out of DefaultSharedWorkerRepository
+ https://bugs.webkit.org/show_bug.cgi?id=100418
+
+ Reviewed by Sam Weinig.
+
+ * CMakeLists.txt:
+ * GNUmakefile.list.am:
+ * Target.pri:
+ * WebCore.vcproj/WebCore.vcproj:
+ * WebCore.xcodeproj/project.pbxproj:
+ Added SharedWorkerRepository.cpp.
+
+ * WebCore.gyp/WebCore.gyp:
+ * WebCore.gypi:
+ Chromium uses WebKit/chromium/src/SharedWorkerRepository.cpp instead of
+ WebCore/workers/DefaultSharedWorkerRepository.cpp. Not sure why it's added and
+ then excluded, but did the same with the new SharedWorkerRepository.cpp, which
+ just contains some code moved from that file.
+
+ * workers/DefaultSharedWorkerRepository.cpp:
+ (WebCore::SharedWorkerScriptLoader::load): Removed a PLATFORM(CHROMIUM) clause,
+ chromium doesn't compile this file.
+ (WebCore::DefaultSharedWorkerRepository::connectToWorker): Added a FIXME about
+ seemingly wrong code.
+
+ * workers/SharedWorkerRepository.cpp: Added.
+ (WebCore::SharedWorkerRepository::isAvailable):
+ (WebCore::SharedWorkerRepository::connect):
+ (WebCore::SharedWorkerRepository::documentDetached):
+ (WebCore::SharedWorkerRepository::hasSharedWorkers):
+ Moved from DefaultSharedWorkerRepository.cpp, because this is part of SharedWorkerRepository.
+
2013-03-11 Adam Barth <[email protected]>
Make BackgroundHTMLParser work with doc.writes that enter or leave foreign content
Modified: trunk/Source/WebCore/GNUmakefile.list.am (145465 => 145466)
--- trunk/Source/WebCore/GNUmakefile.list.am 2013-03-12 02:18:02 UTC (rev 145465)
+++ trunk/Source/WebCore/GNUmakefile.list.am 2013-03-12 02:24:17 UTC (rev 145466)
@@ -4720,6 +4720,7 @@
Source/WebCore/workers/SharedWorkerContext.h \
Source/WebCore/workers/SharedWorker.cpp \
Source/WebCore/workers/SharedWorker.h \
+ Source/WebCore/workers/SharedWorkerRepository.cpp \
Source/WebCore/workers/SharedWorkerRepository.h \
Source/WebCore/workers/SharedWorkerStrategy.h \
Source/WebCore/workers/SharedWorkerThread.cpp \
Modified: trunk/Source/WebCore/Target.pri (145465 => 145466)
--- trunk/Source/WebCore/Target.pri 2013-03-12 02:18:02 UTC (rev 145465)
+++ trunk/Source/WebCore/Target.pri 2013-03-12 02:24:17 UTC (rev 145466)
@@ -3267,6 +3267,7 @@
workers/DefaultSharedWorkerRepository.cpp \
workers/SharedWorker.cpp \
workers/SharedWorkerContext.cpp \
+ workers/SharedWorkerRepository.cpp \
workers/SharedWorkerThread.cpp
}
Modified: trunk/Source/WebCore/WebCore.gyp/WebCore.gyp (145465 => 145466)
--- trunk/Source/WebCore/WebCore.gyp/WebCore.gyp 2013-03-12 02:18:02 UTC (rev 145465)
+++ trunk/Source/WebCore/WebCore.gyp/WebCore.gyp 2013-03-12 02:24:17 UTC (rev 145466)
@@ -2131,6 +2131,7 @@
['exclude', 'storage/StorageThread\\.(cpp|h)$'],
['exclude', 'storage/StorageTracker\\.(cpp|h)$'],
['exclude', 'storage/StorageTrackerClient\\.h$'],
+ ['exclude', 'workers/SharedWorkerRepository\\.cpp$'],
['exclude', 'workers/DefaultSharedWorkerRepository\\.(cpp|h)$'],
['include', 'loader/appcache/ApplicationCacheHost\.h$'],
Modified: trunk/Source/WebCore/WebCore.gypi (145465 => 145466)
--- trunk/Source/WebCore/WebCore.gypi 2013-03-12 02:18:02 UTC (rev 145465)
+++ trunk/Source/WebCore/WebCore.gypi 2013-03-12 02:24:17 UTC (rev 145466)
@@ -2741,6 +2741,7 @@
'workers/SharedWorker.h',
'workers/SharedWorkerContext.cpp',
'workers/SharedWorkerContext.h',
+ 'workers/SharedWorkerRepository.cpp',
'workers/SharedWorkerRepository.h',
'workers/SharedWorkerThread.cpp',
'workers/SharedWorkerThread.h',
Modified: trunk/Source/WebCore/WebCore.vcproj/WebCore.vcproj (145465 => 145466)
--- trunk/Source/WebCore/WebCore.vcproj/WebCore.vcproj 2013-03-12 02:18:02 UTC (rev 145465)
+++ trunk/Source/WebCore/WebCore.vcproj/WebCore.vcproj 2013-03-12 02:24:17 UTC (rev 145466)
@@ -56703,6 +56703,10 @@
>
</File>
<File
+ RelativePath="..\workers\SharedWorkerRepository.cpp"
+ >
+ </File>
+ <File
RelativePath="..\workers\SharedWorkerRepository.h"
>
</File>
Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (145465 => 145466)
--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj 2013-03-12 02:18:02 UTC (rev 145465)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj 2013-03-12 02:24:17 UTC (rev 145466)
@@ -6270,6 +6270,7 @@
E1B25107152A0BB00069B779 /* StylePropertyShorthand.h in Headers */ = {isa = PBXBuildFile; fileRef = E1B25105152A0BAF0069B779 /* StylePropertyShorthand.h */; };
E1B4CD2510B322E200BFFD7E /* CredentialStorageMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = E1B4CD2410B322E200BFFD7E /* CredentialStorageMac.mm */; };
E1B7839C163740A70007B692 /* SharedWorkerStrategy.h in Headers */ = {isa = PBXBuildFile; fileRef = E1B7839B163740A70007B692 /* SharedWorkerStrategy.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ E1B784201639CBBE0007B692 /* SharedWorkerRepository.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E1B7841F1639CBBE0007B692 /* SharedWorkerRepository.cpp */; };
E1BE512D0CF6C512002EA959 /* XSLTUnicodeSort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E1BE512B0CF6C512002EA959 /* XSLTUnicodeSort.cpp */; };
E1BE512E0CF6C512002EA959 /* XSLTUnicodeSort.h in Headers */ = {isa = PBXBuildFile; fileRef = E1BE512C0CF6C512002EA959 /* XSLTUnicodeSort.h */; };
E1C2F24A1533A2120083F974 /* SettingsMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = E1C2F2481533A2120083F974 /* SettingsMac.mm */; };
@@ -13981,6 +13982,7 @@
E1B25105152A0BAF0069B779 /* StylePropertyShorthand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StylePropertyShorthand.h; sourceTree = "<group>"; };
E1B4CD2410B322E200BFFD7E /* CredentialStorageMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = CredentialStorageMac.mm; sourceTree = "<group>"; };
E1B7839B163740A70007B692 /* SharedWorkerStrategy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SharedWorkerStrategy.h; path = workers/SharedWorkerStrategy.h; sourceTree = "<group>"; };
+ E1B7841F1639CBBE0007B692 /* SharedWorkerRepository.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SharedWorkerRepository.cpp; path = workers/SharedWorkerRepository.cpp; sourceTree = "<group>"; };
E1BE512B0CF6C512002EA959 /* XSLTUnicodeSort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = XSLTUnicodeSort.cpp; sourceTree = "<group>"; };
E1BE512C0CF6C512002EA959 /* XSLTUnicodeSort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XSLTUnicodeSort.h; sourceTree = "<group>"; };
E1C2F2481533A2120083F974 /* SettingsMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = SettingsMac.mm; sourceTree = "<group>"; };
@@ -15522,6 +15524,7 @@
41D168DF10226E89009BC827 /* SharedWorkerContext.cpp */,
41D168E010226E89009BC827 /* SharedWorkerContext.h */,
41D168E110226E89009BC827 /* SharedWorkerContext.idl */,
+ E1B7841F1639CBBE0007B692 /* SharedWorkerRepository.cpp */,
41D168E210226E89009BC827 /* SharedWorkerRepository.h */,
E1B7839B163740A70007B692 /* SharedWorkerStrategy.h */,
41D168E510226E89009BC827 /* SharedWorkerThread.cpp */,
@@ -29366,6 +29369,7 @@
93309EA2099EB78C0056E581 /* SharedTimerMac.mm in Sources */,
41E1B1D30FF5986900576B3B /* SharedWorker.cpp in Sources */,
41D168E710226E89009BC827 /* SharedWorkerContext.cpp in Sources */,
+ E1B784201639CBBE0007B692 /* SharedWorkerRepository.cpp in Sources */,
41D168ED10226E89009BC827 /* SharedWorkerThread.cpp in Sources */,
B2C3DA640D006CD600EF6F26 /* SimpleFontData.cpp in Sources */,
163E88F7118A39D200ED9231 /* SimpleFontDataCoreText.cpp in Sources */,
Modified: trunk/Source/WebCore/workers/DefaultSharedWorkerRepository.cpp (145465 => 145466)
--- trunk/Source/WebCore/workers/DefaultSharedWorkerRepository.cpp 2013-03-12 02:18:02 UTC (rev 145465)
+++ trunk/Source/WebCore/workers/DefaultSharedWorkerRepository.cpp 2013-03-12 02:24:17 UTC (rev 145466)
@@ -315,7 +315,7 @@
// Mark this object as active for the duration of the load.
m_scriptLoader = WorkerScriptLoader::create();
-#if PLATFORM(CHROMIUM) || PLATFORM(BLACKBERRY)
+#if PLATFORM(BLACKBERRY)
m_scriptLoader->setTargetType(ResourceRequest::TargetIsSharedWorker);
#endif
m_scriptLoader->loadAsynchronously(m_worker->scriptExecutionContext(), url, DenyCrossOriginRequests, this);
@@ -366,27 +366,6 @@
proxy.thread()->runLoop().postTask(SharedWorkerConnectTask::create(port));
}
-bool SharedWorkerRepository::isAvailable()
-{
- // SharedWorkers are enabled on the default WebKit platform.
- return true;
-}
-
-void SharedWorkerRepository::connect(PassRefPtr<SharedWorker> worker, PassOwnPtr<MessagePortChannel> port, const KURL& url, const String& name, ExceptionCode& ec)
-{
- DefaultSharedWorkerRepository::instance().connectToWorker(worker, port, url, name, ec);
-}
-
-void SharedWorkerRepository::documentDetached(Document* document)
-{
- DefaultSharedWorkerRepository::instance().documentDetached(document);
-}
-
-bool SharedWorkerRepository::hasSharedWorkers(Document* document)
-{
- return DefaultSharedWorkerRepository::instance().hasSharedWorkers(document);
-}
-
bool DefaultSharedWorkerRepository::hasSharedWorkers(Document* document)
{
MutexLocker lock(m_lock);
@@ -421,7 +400,10 @@
ASSERT(worker->scriptExecutionContext()->securityOrigin()->canAccess(SecurityOrigin::create(url).get()));
// Fetch a proxy corresponding to this SharedWorker.
RefPtr<SharedWorkerProxy> proxy = getProxy(name, url);
+
+ // FIXME: Why is this done even if we are raising an exception below?
proxy->addToWorkerDocuments(worker->scriptExecutionContext());
+
if (proxy->url() != url) {
// Proxy already existed under alternate URL - return an error.
ec = URL_MISMATCH_ERR;
Added: trunk/Source/WebCore/workers/SharedWorkerRepository.cpp (0 => 145466)
--- trunk/Source/WebCore/workers/SharedWorkerRepository.cpp (rev 0)
+++ trunk/Source/WebCore/workers/SharedWorkerRepository.cpp 2013-03-12 02:24:17 UTC (rev 145466)
@@ -0,0 +1,62 @@
+/*
+ * Copyright (C) 2012 Apple Inc. All rights reserved.
+ * Copyright (C) 2009 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+
+#if ENABLE(SHARED_WORKERS)
+
+#include "SharedWorkerRepository.h"
+
+#include "DefaultSharedWorkerRepository.h"
+#include "MessagePortChannel.h"
+#include "SharedWorker.h"
+
+namespace WebCore {
+
+bool SharedWorkerRepository::isAvailable()
+{
+ // SharedWorkers are enabled on the default WebKit platform.
+ return true;
+}
+
+void SharedWorkerRepository::connect(PassRefPtr<SharedWorker> worker, PassOwnPtr<MessagePortChannel> port, const KURL& url, const String& name, ExceptionCode& ec)
+{
+ DefaultSharedWorkerRepository::instance().connectToWorker(worker, port, url, name, ec);
+}
+
+void SharedWorkerRepository::documentDetached(Document* document)
+{
+ DefaultSharedWorkerRepository::instance().documentDetached(document);
+}
+
+bool SharedWorkerRepository::hasSharedWorkers(Document* document)
+{
+ return DefaultSharedWorkerRepository::instance().hasSharedWorkers(document);
+}
+
+}
+
+#endif