Title: [185657] trunk/Source/WebKit
Revision
185657
Author
[email protected]
Date
2015-06-17 10:15:01 -0700 (Wed, 17 Jun 2015)

Log Message

Unreviewed, rolling out r185636.
https://bugs.webkit.org/show_bug.cgi?id=146068

Caused many crashes on Windows (Requested by ap on #webkit).

Reverted changeset:

"[Win] Implement WebViewGroup to support
WebView::addxxxToGroup()."
https://bugs.webkit.org/show_bug.cgi?id=145908
http://trac.webkit.org/changeset/185636

Modified Paths

Added Paths

Removed Paths

  • trunk/Source/WebKit/WebCoreSupport/

Diff

Modified: trunk/Source/WebKit/ChangeLog (185656 => 185657)


--- trunk/Source/WebKit/ChangeLog	2015-06-17 17:07:06 UTC (rev 185656)
+++ trunk/Source/WebKit/ChangeLog	2015-06-17 17:15:01 UTC (rev 185657)
@@ -1,3 +1,17 @@
+2015-06-17  Commit Queue  <[email protected]>
+
+        Unreviewed, rolling out r185636.
+        https://bugs.webkit.org/show_bug.cgi?id=146068
+
+        Caused many crashes on Windows (Requested by ap on #webkit).
+
+        Reverted changeset:
+
+        "[Win] Implement WebViewGroup to support
+        WebView::addxxxToGroup()."
+        https://bugs.webkit.org/show_bug.cgi?id=145908
+        http://trac.webkit.org/changeset/185636
+
 2015-06-16  Hyungwook Lee  <[email protected]>
 
         [Win] Implement WebViewGroup to support WebView::addxxxToGroup().

Modified: trunk/Source/WebKit/WebKit.vcxproj/WebKit/WebKit.vcxproj (185656 => 185657)


--- trunk/Source/WebKit/WebKit.vcxproj/WebKit/WebKit.vcxproj	2015-06-17 17:07:06 UTC (rev 185656)
+++ trunk/Source/WebKit/WebKit.vcxproj/WebKit/WebKit.vcxproj	2015-06-17 17:15:01 UTC (rev 185657)
@@ -297,7 +297,6 @@
     <ClCompile Include="..\..\Storage\WebDatabaseProvider.cpp" />
     <ClCompile Include="..\..\Storage\WebStorageNamespaceProvider.cpp" />
     <ClCompile Include="..\..\cf\WebCoreSupport\WebInspectorClientCF.cpp" />
-    <ClCompile Include="..\..\WebCoreSupport\WebViewGroup.cpp" />
     <ClCompile Include="..\..\win\Plugins\npapi.cpp" />
     <ClCompile Include="..\..\win\Plugins\PluginDatabase.cpp" />
     <ClCompile Include="..\..\win\Plugins\PluginDebug.cpp" />
@@ -451,7 +450,6 @@
     <ClInclude Include="..\..\Storage\StorageTrackerClient.h" />
     <ClInclude Include="..\..\Storage\WebDatabaseProvider.h" />
     <ClInclude Include="..\..\Storage\WebStorageNamespaceProvider.h" />
-    <ClInclude Include="..\..\WebCoreSupport\WebViewGroup.h" />
     <ClInclude Include="..\..\win\Plugins\PluginDatabase.h" />
     <ClInclude Include="..\..\win\Plugins\PluginDebug.h" />
     <ClInclude Include="..\..\win\Plugins\PluginPackage.h" />

Modified: trunk/Source/WebKit/WebKit.vcxproj/WebKit/WebKit.vcxproj.filters (185656 => 185657)


--- trunk/Source/WebKit/WebKit.vcxproj/WebKit/WebKit.vcxproj.filters	2015-06-17 17:07:06 UTC (rev 185656)
+++ trunk/Source/WebKit/WebKit.vcxproj/WebKit/WebKit.vcxproj.filters	2015-06-17 17:15:01 UTC (rev 185657)
@@ -333,9 +333,6 @@
     <ClCompile Include="..\..\win\WebKitMessageLoop.cpp">
       <Filter>Sources</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\WebCoreSupport\WebViewGroup.cpp">
-      <Filter>Sources</Filter>
-    </ClCompile>
   </ItemGroup>
   <ItemGroup>
     <ClInclude Include="..\..\win\WebCoreSupport\EmbeddedWidget.h">
@@ -657,9 +654,6 @@
     <ClInclude Include="..\..\win\WebKitMessageLoop.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\WebCoreSupport\WebViewGroup.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
   </ItemGroup>
   <ItemGroup>
     <None Include="WebKitPostBuild.cmd" />
@@ -752,4 +746,4 @@
       <Filter>Sources\Plugins</Filter>
     </MASM>
   </ItemGroup>
-</Project>
\ No newline at end of file
+</Project>

Modified: trunk/Source/WebKit/WebKit.vcxproj/WebKit/WebKitCommon.props (185656 => 185657)


--- trunk/Source/WebKit/WebKit.vcxproj/WebKit/WebKitCommon.props	2015-06-17 17:07:06 UTC (rev 185656)
+++ trunk/Source/WebKit/WebKit.vcxproj/WebKit/WebKitCommon.props	2015-06-17 17:15:01 UTC (rev 185657)
@@ -5,7 +5,7 @@
   </PropertyGroup>
   <ItemDefinitionGroup>
     <ClCompile>
-      <AdditionalIncludeDirectories>$(ProjectDir);$(ProjectDir)\..\..\win;$(ProjectDir)\..\..\win\Plugins;$(ProjectDir)\..\..\win\WebCoreSupport;$(ProjectDir)\..\..\Storage;$(ProjectDir)\..\..\WebCoreSupport;$(ConfigurationBuildDir)\include\WebKit;$(ConfigurationBuildDir)\Include;$(ConfigurationBuildDir)\Include\private;$(ConfigurationBuildDir)\Include\WebCore;$(ConfigurationBuildDir)\Include\WebCore\ForwardingHeaders;$(ConfigurationBuildDir)\Include\_javascript_Core;$(ConfigurationBuildDir)\Include\private\_javascript_Core;$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\WebKit\DerivedSources;$(WebKit_Libraries)\Include;$(WebKit_Libraries)\Include\private;$(WebKit_Libraries)\Include\WebCore;$(WebKit_Libraries)\Include\WebCore\ForwardingHeaders;$(WebKit_Libraries)\include\sqlite;$(WebKit_Libraries)\Include\_javascript_Core;$(WebKit_Libraries)\Include\private\_javascript_Core;$(IntDir)include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>$(ProjectDir);$(ProjectDir)\..\..\win;$(ProjectDir)\..\..\win\Plugins;$(ProjectDir)\..\..\win\WebCoreSupport;$(ProjectDir)\..\..\Storage;$(ConfigurationBuildDir)\include\WebKit;$(ConfigurationBuildDir)\Include;$(ConfigurationBuildDir)\Include\private;$(ConfigurationBuildDir)\Include\WebCore;$(ConfigurationBuildDir)\Include\WebCore\ForwardingHeaders;$(ConfigurationBuildDir)\Include\_javascript_Core;$(ConfigurationBuildDir)\Include\private\_javascript_Core;$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\WebKit\DerivedSources;$(WebKit_Libraries)\Include;$(WebKit_Libraries)\Include\private;$(WebKit_Libraries)\Include\WebCore;$(WebKit_Libraries)\Include\WebCore\ForwardingHeaders;$(WebKit_Libraries)\include\sqlite;$(WebKit_Libraries)\Include\_javascript_Core;$(WebKit_Libraries)\Include\private\_javascript_Core;$(IntDir)include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>WEBKIT_EXPORTS;FRAMEWORK_NAME=WebKit;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <PrecompiledHeader>Use</PrecompiledHeader>
       <PrecompiledHeaderFile>WebKitPrefix.h</PrecompiledHeaderFile>
@@ -17,4 +17,4 @@
       <DelayLoadDLLs>usp10.dll;comctl32.dll;version.dll;iphlpapi.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
     </Link>
   </ItemDefinitionGroup>
-</Project>
\ No newline at end of file
+</Project>

Modified: trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj (185656 => 185657)


--- trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj	2015-06-17 17:07:06 UTC (rev 185656)
+++ trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj	2015-06-17 17:15:01 UTC (rev 185657)
@@ -19,8 +19,6 @@
 		0AB752380FA2E4DB00D7CBB1 /* WebNetscapeContainerCheckContextInfo.mm in Sources */ = {isa = PBXBuildFile; fileRef = 0AB752360FA2E4DB00D7CBB1 /* WebNetscapeContainerCheckContextInfo.mm */; };
 		0AEBFF630F9FA8BE000D486B /* WebNetscapeContainerCheckPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 0AEBFF610F9FA8BE000D486B /* WebNetscapeContainerCheckPrivate.h */; settings = {ATTRIBUTES = (Private, ); }; };
 		0AEBFF640F9FA8BE000D486B /* WebNetscapeContainerCheckPrivate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 0AEBFF620F9FA8BE000D486B /* WebNetscapeContainerCheckPrivate.mm */; };
-		1430C12C1B2C5DF700DEA01D /* WebViewGroup.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1430C12A1B2C5DF700DEA01D /* WebViewGroup.cpp */; };
-		1430C12D1B2C5DF700DEA01D /* WebViewGroup.h in Headers */ = {isa = PBXBuildFile; fileRef = 1430C12B1B2C5DF700DEA01D /* WebViewGroup.h */; };
 		14D8252F0AF955090004F057 /* WebChromeClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 14D8252D0AF955090004F057 /* WebChromeClient.h */; };
 		14D825300AF955090004F057 /* WebChromeClient.mm in Sources */ = {isa = PBXBuildFile; fileRef = 14D8252E0AF955090004F057 /* WebChromeClient.mm */; };
 		1A2DBE9F0F251E3A0036F8A6 /* ProxyInstance.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A2DBE9D0F251E3A0036F8A6 /* ProxyInstance.h */; };
@@ -78,6 +76,8 @@
 		1AAF5D0F0EDDE7A7008D883D /* WebKitPluginAgent.defs in Sources */ = {isa = PBXBuildFile; fileRef = 1AAF588A0EDCCEA3008D883D /* WebKitPluginAgent.defs */; };
 		1AAF5FBF0EDE3A92008D883D /* WebHostedNetscapePluginView.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AAF5FBD0EDE3A92008D883D /* WebHostedNetscapePluginView.h */; };
 		1AAF5FC00EDE3A92008D883D /* WebHostedNetscapePluginView.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1AAF5FBE0EDE3A92008D883D /* WebHostedNetscapePluginView.mm */; };
+		1AB1DAC118BC0232004B6A9F /* WebViewGroup.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1AB1DABF18BC0232004B6A9F /* WebViewGroup.mm */; };
+		1AB1DAC218BC0232004B6A9F /* WebViewGroup.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AB1DAC018BC0232004B6A9F /* WebViewGroup.h */; };
 		1AC7176E1A26568A002E3115 /* WebVisitedLinkStore.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1AC7176C1A26568A002E3115 /* WebVisitedLinkStore.mm */; };
 		1AC7176F1A26568A002E3115 /* WebVisitedLinkStore.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AC7176D1A26568A002E3115 /* WebVisitedLinkStore.h */; };
 		1AEA66D40DC6B1FF003D12BF /* WebNetscapePluginEventHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AEA66D20DC6B1FF003D12BF /* WebNetscapePluginEventHandler.h */; };
@@ -475,8 +475,6 @@
 		0AB752360FA2E4DB00D7CBB1 /* WebNetscapeContainerCheckContextInfo.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebNetscapeContainerCheckContextInfo.mm; sourceTree = "<group>"; };
 		0AEBFF610F9FA8BE000D486B /* WebNetscapeContainerCheckPrivate.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 4; path = WebNetscapeContainerCheckPrivate.h; sourceTree = "<group>"; };
 		0AEBFF620F9FA8BE000D486B /* WebNetscapeContainerCheckPrivate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebNetscapeContainerCheckPrivate.mm; sourceTree = "<group>"; };
-		1430C12A1B2C5DF700DEA01D /* WebViewGroup.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.objcpp; fileEncoding = 4; name = WebViewGroup.cpp; path = WebCoreSupport/WebViewGroup.cpp; sourceTree = SOURCE_ROOT; };
-		1430C12B1B2C5DF700DEA01D /* WebViewGroup.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WebViewGroup.h; path = WebCoreSupport/WebViewGroup.h; sourceTree = SOURCE_ROOT; };
 		14D8252D0AF955090004F057 /* WebChromeClient.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = WebChromeClient.h; sourceTree = "<group>"; };
 		14D8252E0AF955090004F057 /* WebChromeClient.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebChromeClient.mm; sourceTree = "<group>"; };
 		1A2DBE9D0F251E3A0036F8A6 /* ProxyInstance.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ProxyInstance.h; sourceTree = "<group>"; };
@@ -531,6 +529,8 @@
 		1AAF5D080EDDE71D008D883D /* WebKitPluginHostTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebKitPluginHostTypes.h; sourceTree = "<group>"; };
 		1AAF5FBD0EDE3A92008D883D /* WebHostedNetscapePluginView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebHostedNetscapePluginView.h; sourceTree = "<group>"; };
 		1AAF5FBE0EDE3A92008D883D /* WebHostedNetscapePluginView.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebHostedNetscapePluginView.mm; sourceTree = "<group>"; };
+		1AB1DABF18BC0232004B6A9F /* WebViewGroup.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebViewGroup.mm; sourceTree = "<group>"; };
+		1AB1DAC018BC0232004B6A9F /* WebViewGroup.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebViewGroup.h; sourceTree = "<group>"; };
 		1AC7176C1A26568A002E3115 /* WebVisitedLinkStore.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebVisitedLinkStore.mm; sourceTree = "<group>"; };
 		1AC7176D1A26568A002E3115 /* WebVisitedLinkStore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebVisitedLinkStore.h; sourceTree = "<group>"; };
 		1AEA66D20DC6B1FF003D12BF /* WebNetscapePluginEventHandler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebNetscapePluginEventHandler.h; sourceTree = "<group>"; };
@@ -1607,8 +1607,8 @@
 				2DD632C119E5D1F0002E9C7B /* WebSelectionServiceController.mm */,
 				93EB178E09F88D510091F8FF /* WebSystemInterface.h */,
 				93EB178C09F88D460091F8FF /* WebSystemInterface.mm */,
-				1430C12A1B2C5DF700DEA01D /* WebViewGroup.cpp */,
-				1430C12B1B2C5DF700DEA01D /* WebViewGroup.h */,
+				1AB1DAC018BC0232004B6A9F /* WebViewGroup.h */,
+				1AB1DABF18BC0232004B6A9F /* WebViewGroup.mm */,
 				1AC7176D1A26568A002E3115 /* WebVisitedLinkStore.h */,
 				1AC7176C1A26568A002E3115 /* WebVisitedLinkStore.mm */,
 			);
@@ -1746,6 +1746,7 @@
 				939810490824BF01008DF038 /* WebClipView.h in Headers */,
 				065AD5A30B0C32C7005A2B1D /* WebContextMenuClient.h in Headers */,
 				939810160824BF01008DF038 /* WebCoreStatistics.h in Headers */,
+				1AB1DAC218BC0232004B6A9F /* WebViewGroup.h in Headers */,
 				93E2A1A4123B0B3C009FE12A /* WebDashboardRegion.h in Headers */,
 				511F3FD70CECC88F00852565 /* WebDatabaseManagerClient.h in Headers */,
 				51AEDEF10CECF45700854328 /* WebDatabaseManagerInternal.h in Headers */,
@@ -1814,7 +1815,6 @@
 				939810140824BF01008DF038 /* WebHistoryPrivate.h in Headers */,
 				1AAF5FBF0EDE3A92008D883D /* WebHostedNetscapePluginView.h in Headers */,
 				939810550824BF01008DF038 /* WebHTMLRepresentation.h in Headers */,
-				1430C12D1B2C5DF700DEA01D /* WebViewGroup.h in Headers */,
 				939810560824BF01008DF038 /* WebHTMLRepresentationPrivate.h in Headers */,
 				939810570824BF01008DF038 /* WebHTMLView.h in Headers */,
 				1A6B313D1A51F3A900422975 /* StorageTrackerClient.h in Headers */,
@@ -2334,9 +2334,9 @@
 				1A6B31351A51F3A900422975 /* StorageNamespaceImpl.cpp in Sources */,
 				F834AAD80E64B1C700E2737C /* WebTextIterator.mm in Sources */,
 				A10C1D1D18202F9C0036883A /* WebDefaultResourceLoadDelegate.m in Sources */,
-				1430C12C1B2C5DF700DEA01D /* WebViewGroup.cpp in Sources */,
 				939810BE0824BF01008DF038 /* WebURLsWithTitles.m in Sources */,
 				C0C5B3EF1177A4A0002B0AEF /* WebUserContentURLPattern.mm in Sources */,
+				1AB1DAC118BC0232004B6A9F /* WebViewGroup.mm in Sources */,
 				939811070824BF01008DF038 /* WebView.mm in Sources */,
 				1A6B313B1A51F3A900422975 /* StorageTracker.cpp in Sources */,
 				BC2E464E0FD8A96800A9D9DE /* WebViewData.mm in Sources */,

Modified: trunk/Source/WebKit/mac/ChangeLog (185656 => 185657)


--- trunk/Source/WebKit/mac/ChangeLog	2015-06-17 17:07:06 UTC (rev 185656)
+++ trunk/Source/WebKit/mac/ChangeLog	2015-06-17 17:15:01 UTC (rev 185657)
@@ -1,3 +1,17 @@
+2015-06-17  Commit Queue  <[email protected]>
+
+        Unreviewed, rolling out r185636.
+        https://bugs.webkit.org/show_bug.cgi?id=146068
+
+        Caused many crashes on Windows (Requested by ap on #webkit).
+
+        Reverted changeset:
+
+        "[Win] Implement WebViewGroup to support
+        WebView::addxxxToGroup()."
+        https://bugs.webkit.org/show_bug.cgi?id=145908
+        http://trac.webkit.org/changeset/185636
+
 2015-06-16  Hyungwook Lee  <[email protected]>
 
         [Win] Implement WebViewGroup to support WebView::addxxxToGroup().

Copied: trunk/Source/WebKit/mac/WebCoreSupport/WebViewGroup.h (from rev 185656, trunk/Source/WebKit/WebCoreSupport/WebViewGroup.h) (0 => 185657)


--- trunk/Source/WebKit/mac/WebCoreSupport/WebViewGroup.h	                        (rev 0)
+++ trunk/Source/WebKit/mac/WebCoreSupport/WebViewGroup.h	2015-06-17 17:15:01 UTC (rev 185657)
@@ -0,0 +1,64 @@
+/*
+ * Copyright (C) 2014 Apple 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 <wtf/HashSet.h>
+#include <wtf/RefCounted.h>
+#include <wtf/text/WTFString.h>
+
+namespace WebCore {
+class StorageNamespaceProvider;
+class UserContentController;
+}
+
+class WebVisitedLinkStore;
+
+@class WebView;
+
+class WebViewGroup : public RefCounted<WebViewGroup> {
+public:
+    static RefPtr<WebViewGroup> getOrCreate(const String& name, const String& localStorageDatabasePath);
+    ~WebViewGroup();
+
+    static WebViewGroup* get(const String& name);
+
+    void addWebView(WebView *);
+    void removeWebView(WebView *);
+
+    WebCore::StorageNamespaceProvider& storageNamespaceProvider();
+    WebCore::UserContentController& userContentController() { return m_userContentController.get(); }
+    WebVisitedLinkStore& visitedLinkStore() { return m_visitedLinkStore.get(); }
+
+private:
+    WebViewGroup(const String& name, const String& localStorageDatabasePath);
+
+    String m_name;
+    HashSet<WebView *> m_webViews;
+
+    String m_localStorageDatabasePath;
+    RefPtr<WebCore::StorageNamespaceProvider> m_storageNamespaceProvider;
+
+    Ref<WebCore::UserContentController> m_userContentController;
+    Ref<WebVisitedLinkStore> m_visitedLinkStore;
+};

Copied: trunk/Source/WebKit/mac/WebCoreSupport/WebViewGroup.mm (from rev 185656, trunk/Source/WebKit/WebCoreSupport/WebViewGroup.cpp) (0 => 185657)


--- trunk/Source/WebKit/mac/WebCoreSupport/WebViewGroup.mm	                        (rev 0)
+++ trunk/Source/WebKit/mac/WebCoreSupport/WebViewGroup.mm	2015-06-17 17:15:01 UTC (rev 185657)
@@ -0,0 +1,100 @@
+/*
+ * Copyright (C) 2014 Apple 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.
+ */
+
+#import "WebViewGroup.h"
+
+#import "WebStorageNamespaceProvider.h"
+#import "WebView.h"
+#import "WebVisitedLinkStore.h"
+#import <WebCore/UserContentController.h>
+#import <wtf/NeverDestroyed.h>
+#import <wtf/text/StringHash.h>
+
+using namespace WebCore;
+
+// Any named groups will live for the lifetime of the process, thanks to the reference held by the RefPtr.
+static HashMap<String, RefPtr<WebViewGroup>>& webViewGroups()
+{
+    static NeverDestroyed<HashMap<String, RefPtr<WebViewGroup>>> webViewGroups;
+
+    return webViewGroups;
+}
+
+RefPtr<WebViewGroup> WebViewGroup::getOrCreate(const String& name, const String& localStorageDatabasePath)
+{
+    if (name.isEmpty())
+        return adoptRef(new WebViewGroup(String(), localStorageDatabasePath));
+
+    auto& webViewGroup = webViewGroups().add(name, nullptr).iterator->value;
+    if (!webViewGroup)
+        webViewGroup = adoptRef(new WebViewGroup(name, localStorageDatabasePath));
+    else if (!webViewGroup->m_storageNamespaceProvider && webViewGroup->m_localStorageDatabasePath.isEmpty() && !localStorageDatabasePath.isEmpty())
+        webViewGroup->m_localStorageDatabasePath = localStorageDatabasePath;
+
+    return webViewGroup;
+}
+
+WebViewGroup* WebViewGroup::get(const String& name)
+{
+    ASSERT(!name.isEmpty());
+
+    return webViewGroups().get(name);
+}
+
+WebViewGroup::WebViewGroup(const String& name, const String& localStorageDatabasePath)
+    : m_name(name)
+    , m_localStorageDatabasePath(localStorageDatabasePath)
+    , m_userContentController(UserContentController::create())
+    , m_visitedLinkStore(WebVisitedLinkStore::create())
+{
+}
+
+WebViewGroup::~WebViewGroup()
+{
+    ASSERT(m_name.isEmpty());
+    ASSERT(m_webViews.isEmpty());
+}
+
+void WebViewGroup::addWebView(WebView *webView)
+{
+    ASSERT(!m_webViews.contains(webView));
+
+    m_webViews.add(webView);
+}
+
+void WebViewGroup::removeWebView(WebView *webView)
+{
+    ASSERT(m_webViews.contains(webView));
+
+    m_webViews.remove(webView);
+}
+
+StorageNamespaceProvider& WebViewGroup::storageNamespaceProvider()
+{
+    if (!m_storageNamespaceProvider)
+        m_storageNamespaceProvider = WebStorageNamespaceProvider::create(m_localStorageDatabasePath);
+
+    return *m_storageNamespaceProvider;
+}

Modified: trunk/Source/WebKit/win/ChangeLog (185656 => 185657)


--- trunk/Source/WebKit/win/ChangeLog	2015-06-17 17:07:06 UTC (rev 185656)
+++ trunk/Source/WebKit/win/ChangeLog	2015-06-17 17:15:01 UTC (rev 185657)
@@ -1,3 +1,17 @@
+2015-06-17  Commit Queue  <[email protected]>
+
+        Unreviewed, rolling out r185636.
+        https://bugs.webkit.org/show_bug.cgi?id=146068
+
+        Caused many crashes on Windows (Requested by ap on #webkit).
+
+        Reverted changeset:
+
+        "[Win] Implement WebViewGroup to support
+        WebView::addxxxToGroup()."
+        https://bugs.webkit.org/show_bug.cgi?id=145908
+        http://trac.webkit.org/changeset/185636
+
 2015-06-16  Hyungwook Lee  <[email protected]>
 
         [Win] Implement WebViewGroup to support WebView::addxxxToGroup().

Modified: trunk/Source/WebKit/win/WebCoreSupport/WebVisitedLinkStore.cpp (185656 => 185657)


--- trunk/Source/WebKit/win/WebCoreSupport/WebVisitedLinkStore.cpp	2015-06-17 17:07:06 UTC (rev 185656)
+++ trunk/Source/WebKit/win/WebCoreSupport/WebVisitedLinkStore.cpp	2015-06-17 17:15:01 UTC (rev 185657)
@@ -34,27 +34,20 @@
 
 static bool s_shouldTrackVisitedLinks;
 
-static HashSet<WebVisitedLinkStore*>& visitedLinkStores()
+WebVisitedLinkStore& WebVisitedLinkStore::singleton()
 {
-    static NeverDestroyed<HashSet<WebVisitedLinkStore*>> visitedLinkStores;
-
-    return visitedLinkStores;
+    static WebVisitedLinkStore& visitedLinkStore = *adoptRef(new WebVisitedLinkStore).leakRef();
+    
+    return visitedLinkStore;
 }
 
-Ref<WebVisitedLinkStore> WebVisitedLinkStore::create()
-{
-    return adoptRef(*new WebVisitedLinkStore);
-}
-
 WebVisitedLinkStore::WebVisitedLinkStore()
     : m_visitedLinksPopulated(false)
 {
-    visitedLinkStores().add(this);
 }
 
 WebVisitedLinkStore::~WebVisitedLinkStore()
 {
-    visitedLinkStores().remove(this);
 }
 
 void WebVisitedLinkStore::setShouldTrackVisitedLinks(bool shouldTrackVisitedLinks)
@@ -69,8 +62,7 @@
 
 void WebVisitedLinkStore::removeAllVisitedLinks()
 {
-    for (auto& visitedLinkStore : visitedLinkStores())
-        visitedLinkStore->removeVisitedLinkHashes();
+    WebVisitedLinkStore::singleton().removeVisitedLinkHashes();
     PageCache::singleton().markPagesForVisitedLinkStyleRecalc();
 }
 

Modified: trunk/Source/WebKit/win/WebCoreSupport/WebVisitedLinkStore.h (185656 => 185657)


--- trunk/Source/WebKit/win/WebCoreSupport/WebVisitedLinkStore.h	2015-06-17 17:07:06 UTC (rev 185656)
+++ trunk/Source/WebKit/win/WebCoreSupport/WebVisitedLinkStore.h	2015-06-17 17:15:01 UTC (rev 185657)
@@ -32,7 +32,8 @@
 
 class WebVisitedLinkStore final : public WebCore::VisitedLinkStore {
 public:
-    static Ref<WebVisitedLinkStore> create();
+    static WebVisitedLinkStore& singleton();
+    WebVisitedLinkStore();
     virtual ~WebVisitedLinkStore();
 
     static void setShouldTrackVisitedLinks(bool);
@@ -41,8 +42,6 @@
     void addVisitedLink(const String& urlString);
 
 private:
-    WebVisitedLinkStore();
-
     virtual bool isLinkVisited(WebCore::Page&, WebCore::LinkHash, const WebCore::URL& baseURL, const AtomicString& attributeURL) override;
     virtual void addVisitedLink(WebCore::Page&, WebCore::LinkHash) override;
 

Modified: trunk/Source/WebKit/win/WebView.cpp (185656 => 185657)


--- trunk/Source/WebKit/win/WebView.cpp	2015-06-17 17:07:06 UTC (rev 185656)
+++ trunk/Source/WebKit/win/WebView.cpp	2015-06-17 17:15:01 UTC (rev 185657)
@@ -69,7 +69,6 @@
 #include "WebPreferences.h"
 #include "WebScriptWorld.h"
 #include "WebStorageNamespaceProvider.h"
-#include "WebViewGroup.h"
 #include "WebVisitedLinkStore.h"
 #include "resource.h"
 #include <_javascript_Core/APICast.h>
@@ -153,7 +152,6 @@
 #include <WebCore/SecurityPolicy.h>
 #include <WebCore/Settings.h>
 #include <WebCore/SystemInfo.h>
-#include <WebCore/UserContentController.h>
 #include <WebCore/WindowMessageBroadcaster.h>
 #include <WebCore/WindowsTouch.h>
 #include <bindings/ScriptValue.h>
@@ -459,8 +457,6 @@
     ASSERT(!m_layerTreeHost);
 #endif
 
-    m_webViewGroup->removeWebView(this);
-
     WebViewCount--;
     gClassCount--;
     gClassNameCount().remove("WebView");
@@ -2822,9 +2818,6 @@
 
     m_inspectorClient = new WebInspectorClient(this);
 
-    m_webViewGroup = WebViewGroup::getOrCreate(groupName, localStorageDatabasePath(m_preferences.get()));
-    m_webViewGroup->addWebView(this);
-
     PageConfiguration configuration;
     configuration.chromeClient = new WebChromeClient(this);
     configuration.contextMenuClient = new WebContextMenuClient(this);
@@ -2833,10 +2826,9 @@
     configuration.inspectorClient = m_inspectorClient;
     configuration.loaderClientForMainFrame = new WebFrameLoaderClient;
     configuration.databaseProvider = &WebDatabaseProvider::singleton();
-    configuration.storageNamespaceProvider = &m_webViewGroup->storageNamespaceProvider();
+    configuration.storageNamespaceProvider = WebStorageNamespaceProvider::create(localStorageDatabasePath(m_preferences.get()));
     configuration.progressTrackerClient = static_cast<WebFrameLoaderClient*>(configuration.loaderClientForMainFrame);
-    configuration.userContentController = &m_webViewGroup->userContentController();
-    configuration.visitedLinkStore = &m_webViewGroup->visitedLinkStore();
+    configuration.visitedLinkStore = &WebVisitedLinkStore::singleton();
 
     m_page = new Page(configuration);
     provideGeolocationTo(m_page, new WebGeolocationClient(this));
@@ -3703,17 +3695,8 @@
 HRESULT STDMETHODCALLTYPE WebView::setGroupName( 
         /* [in] */ BSTR groupName)
 {
-    if (m_webViewGroup)
-        m_webViewGroup->removeWebView(this);
-
-    m_webViewGroup = WebViewGroup::getOrCreate(groupName, localStorageDatabasePath(m_preferences.get()));
-    m_webViewGroup->addWebView(this);
-
     if (!m_page)
         return S_OK;
-
-    m_page->setUserContentController(&m_webViewGroup->userContentController());
-    m_page->setVisitedLinkStore(m_webViewGroup->visitedLinkStore());
     m_page->setGroupName(toString(groupName));
     return S_OK;
 }
@@ -6520,7 +6503,7 @@
 
 HRESULT WebView::addVisitedLinks(BSTR* visitedURLs, unsigned visitedURLCount)
 {
-    auto& visitedLinkStore = m_webViewGroup->visitedLinkStore();
+    auto& visitedLinkStore = WebVisitedLinkStore::singleton();
     PageGroup& group = core(this)->group();
     
     for (unsigned i = 0; i < visitedURLCount; ++i) {

Modified: trunk/Source/WebKit/win/WebView.h (185656 => 185657)


--- trunk/Source/WebKit/win/WebView.h	2015-06-17 17:07:06 UTC (rev 185656)
+++ trunk/Source/WebKit/win/WebView.h	2015-06-17 17:15:01 UTC (rev 185657)
@@ -70,7 +70,6 @@
 #if USE(TEXTURE_MAPPER_GL)
 class AcceleratedCompositingContext;
 #endif
-class WebViewGroup;
 
 WebView* kit(WebCore::Page*);
 WebCore::Page* core(IWebView*);
@@ -1160,8 +1159,6 @@
     std::unique_ptr<WebCore::FullScreenController> m_fullscreenController;
     WebCore::IntPoint m_scrollPosition;
 #endif
-
-    RefPtr<WebViewGroup> m_webViewGroup;
 };
 
 #endif
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to