+2015-01-06 Anders Carlsson <andersca@apple.com>
+
+ Add a WebKit1 database provider
+ https://bugs.webkit.org/show_bug.cgi?id=140126
+
+ Reviewed by Sam Weinig.
+
+ Use a Ref instead of a RefPtr since the database provider can never be null now.
+
+ * Modules/indexeddb/DOMWindowIndexedDatabase.cpp:
+ (WebCore::DOMWindowIndexedDatabase::indexedDB):
+ * page/Page.cpp:
+ (WebCore::Page::Page):
+ * page/Page.h:
+ (WebCore::Page::databaseProvider):
+
2015-01-06 Antti Koivisto <antti@apple.com>
REGRESSION (r177876): 35% regression in Parser/html5-full-render
{
Document* document = m_window->document();
if (!document)
- return 0;
+ return nullptr;
Page* page = document->page();
if (!page)
- return 0;
+ return nullptr;
if (!m_window->isCurrentlyDisplayedInFrame())
- return 0;
+ return nullptr;
- if (!m_idbFactory) {
- if (DatabaseProvider* databaseProvider = page->databaseProvider())
- m_idbFactory = IDBFactory::create(databaseProvider->idbFactoryBackend());
- }
+ if (!m_idbFactory)
+ m_idbFactory = IDBFactory::create(page->databaseProvider().idbFactoryBackend());
return m_idbFactory.get();
}
#endif
, m_lastSpatialNavigationCandidatesCount(0) // NOTE: Only called from Internals for Spatial Navigation testing.
, m_framesHandlingBeforeUnloadEvent(0)
- , m_databaseProvider(WTF::move(pageConfiguration.databaseProvider))
+ , m_databaseProvider(*WTF::move(pageConfiguration.databaseProvider))
, m_storageNamespaceProvider(*WTF::move(pageConfiguration.storageNamespaceProvider))
, m_userContentController(WTF::move(pageConfiguration.userContentController))
, m_visitedLinkStore(*WTF::move(pageConfiguration.visitedLinkStore))
void setLastSpatialNavigationCandidateCount(unsigned count) { m_lastSpatialNavigationCandidatesCount = count; }
unsigned lastSpatialNavigationCandidateCount() const { return m_lastSpatialNavigationCandidatesCount; }
- DatabaseProvider* databaseProvider() { return m_databaseProvider.get(); }
+ DatabaseProvider& databaseProvider() { return m_databaseProvider; }
StorageNamespaceProvider& storageNamespaceProvider() { return m_storageNamespaceProvider.get(); }
void setStorageNamespaceProvider(Ref<StorageNamespaceProvider>&&);
unsigned m_lastSpatialNavigationCandidatesCount;
unsigned m_framesHandlingBeforeUnloadEvent;
- RefPtr<DatabaseProvider> m_databaseProvider;
+ Ref<DatabaseProvider> m_databaseProvider;
Ref<StorageNamespaceProvider> m_storageNamespaceProvider;
RefPtr<UserContentController> m_userContentController;
Ref<VisitedLinkStore> m_visitedLinkStore;
+2015-01-06 Anders Carlsson <andersca@apple.com>
+
+ Add a WebKit1 database provider
+ https://bugs.webkit.org/show_bug.cgi?id=140126
+
+ Reviewed by Sam Weinig.
+
+ Add a stubbed out database provider.
+
+ * Storage/WebDatabaseProvider.cpp: Added.
+ (WebDatabaseProvider::shared):
+ (WebDatabaseProvider::WebDatabaseProvider):
+ (WebDatabaseProvider::~WebDatabaseProvider):
+ (WebDatabaseProvider::createIDBFactoryBackend):
+ * Storage/WebDatabaseProvider.h: Added.
+ * WebKit.vcxproj/WebKit/WebKit.vcxproj:
+ * WebKit.vcxproj/WebKit/WebKit.vcxproj.filters:
+ * WebKit.xcodeproj/project.pbxproj:
+
2015-01-06 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r177963.
--- /dev/null
+/*
+ * Copyright (C) 2015 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 "WebDatabaseProvider.h"
+
+#include <WebCore/IDBFactoryBackendInterface.h>
+#include <wtf/NeverDestroyed.h>
+
+WebDatabaseProvider& WebDatabaseProvider::shared()
+{
+ static WebDatabaseProvider& databaseProvider = adoptRef(*new WebDatabaseProvider).leakRef();
+
+ return databaseProvider;
+}
+
+WebDatabaseProvider::WebDatabaseProvider()
+{
+}
+
+WebDatabaseProvider::~WebDatabaseProvider()
+{
+}
+
+#if ENABLE(INDEXED_DATABASE)
+RefPtr<WebCore::IDBFactoryBackendInterface> WebDatabaseProvider::createIDBFactoryBackend()
+{
+ return nullptr;
+}
+#endif
--- /dev/null
+/*
+ * Copyright (C) 2015 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.
+ */
+
+#ifndef WebDatabaseProvider_h
+#define WebDatabaseProvider_h
+
+#include <WebCore/DatabaseProvider.h>
+#include <wtf/Forward.h>
+
+class WebDatabaseProvider final : public WebCore::DatabaseProvider {
+ friend class NeverDestroyed<WebDatabaseProvider>;
+public:
+ static WebDatabaseProvider& shared();
+ virtual ~WebDatabaseProvider();
+
+private:
+ explicit WebDatabaseProvider();
+
+#if ENABLE(INDEXED_DATABASE)
+ virtual RefPtr<WebCore::IDBFactoryBackendInterface> createIDBFactoryBackend() override;
+#endif
+};
+
+#endif // WebDatabaseProvider_h
<ClCompile Include="..\..\Storage\StorageSyncManager.cpp" />
<ClCompile Include="..\..\Storage\StorageThread.cpp" />
<ClCompile Include="..\..\Storage\StorageTracker.cpp" />
+ <ClCompile Include="..\..\Storage\WebDatabaseProvider.cpp" />
<ClCompile Include="..\..\Storage\WebStorageNamespaceProvider.cpp" />
<ClCompile Include="..\..\cf\WebCoreSupport\WebInspectorClientCF.cpp" />
<ClCompile Include="..\..\win\AccessibleBase.cpp" />
<ClInclude Include="..\..\Storage\StorageThread.h" />
<ClInclude Include="..\..\Storage\StorageTracker.h" />
<ClInclude Include="..\..\Storage\StorageTrackerClient.h" />
+ <ClInclude Include="..\..\Storage\WebDatabaseProvider.h" />
<ClInclude Include="..\..\Storage\WebStorageNamespaceProvider.h" />
<ClInclude Include="..\..\win\AccessibleBase.h" />
<ClInclude Include="..\..\win\AccessibleDocument.h" />
<ClCompile Include="..\..\Storage\StorageTracker.cpp">
<Filter>Sources</Filter>
</ClCompile>
+ <ClCompile Include="..\..\Storage\WebDatabaseProvider.cpp">
+ <Filter>Sources</Filter>
+ </ClCompile>
<ClCompile Include="..\..\Storage\WebStorageNamespaceProvider.cpp">
<Filter>Sources</Filter>
</ClCompile>
<ClInclude Include="..\..\Storage\StorageTrackerClient.h">
<Filter>Sources</Filter>
</ClInclude>
+ <ClInclude Include="..\..\Storage\WebDatabaseProvider.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
<ClInclude Include="..\..\Storage\WebStorageNamespaceProvider.h">
<Filter>Header Files</Filter>
</ClInclude>
1A77B02F0EE7730500C8A1F9 /* WebPluginRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1A77B02D0EE7730500C8A1F9 /* WebPluginRequest.m */; };
1A8DED500EE88B8A00F25022 /* HostedNetscapePluginStream.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A8DED4E0EE88B8A00F25022 /* HostedNetscapePluginStream.h */; };
1A8DED510EE88B8A00F25022 /* HostedNetscapePluginStream.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1A8DED4F0EE88B8A00F25022 /* HostedNetscapePluginStream.mm */; };
+ 1AA83F831A5C4AE400026EC6 /* WebDatabaseProvider.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1AA83F811A5C4AE400026EC6 /* WebDatabaseProvider.cpp */; };
+ 1AA83F841A5C4AE400026EC6 /* WebDatabaseProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AA83F821A5C4AE400026EC6 /* WebDatabaseProvider.h */; };
1AA879B611CBE9BF003C664F /* WebPlatformStrategies.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AA879B411CBE9BF003C664F /* WebPlatformStrategies.h */; };
1AA879B711CBE9BF003C664F /* WebPlatformStrategies.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1AA879B511CBE9BF003C664F /* WebPlatformStrategies.mm */; };
1AAF58940EDCCF15008D883D /* WebKitPluginAgent.defs in Headers */ = {isa = PBXBuildFile; fileRef = 1AAF588A0EDCCEA3008D883D /* WebKitPluginAgent.defs */; settings = {ATTRIBUTES = (Private, ); }; };
1A77B02D0EE7730500C8A1F9 /* WebPluginRequest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WebPluginRequest.m; sourceTree = "<group>"; };
1A8DED4E0EE88B8A00F25022 /* HostedNetscapePluginStream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HostedNetscapePluginStream.h; sourceTree = "<group>"; };
1A8DED4F0EE88B8A00F25022 /* HostedNetscapePluginStream.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = HostedNetscapePluginStream.mm; sourceTree = "<group>"; };
+ 1AA83F811A5C4AE400026EC6 /* WebDatabaseProvider.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = WebDatabaseProvider.cpp; path = ../../Storage/WebDatabaseProvider.cpp; sourceTree = "<group>"; };
+ 1AA83F821A5C4AE400026EC6 /* WebDatabaseProvider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WebDatabaseProvider.h; path = ../../Storage/WebDatabaseProvider.h; sourceTree = "<group>"; };
1AA879B411CBE9BF003C664F /* WebPlatformStrategies.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebPlatformStrategies.h; sourceTree = "<group>"; };
1AA879B511CBE9BF003C664F /* WebPlatformStrategies.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebPlatformStrategies.mm; sourceTree = "<group>"; };
1AAF588A0EDCCEA3008D883D /* WebKitPluginAgent.defs */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.mig; path = WebKitPluginAgent.defs; sourceTree = "<group>"; };
511F3FD40CECC88F00852565 /* WebDatabaseManagerClient.mm */,
51AEDEF00CECF45700854328 /* WebDatabaseManagerInternal.h */,
511F3FD20CECC88F00852565 /* WebDatabaseManagerPrivate.h */,
+ 1AA83F811A5C4AE400026EC6 /* WebDatabaseProvider.cpp */,
+ 1AA83F821A5C4AE400026EC6 /* WebDatabaseProvider.h */,
A5DEFC0D11D5343E00885273 /* WebDatabaseQuotaManager.h */,
A5DEFC0E11D5343E00885273 /* WebDatabaseQuotaManager.mm */,
1A591D431A2E91BB000907C4 /* WebStorageNamespaceProvider.cpp */,
5D7BF8140C2A1D90008CE06D /* WebInspector.h in Headers */,
06693DDC0BFBA85200216072 /* WebInspectorClient.h in Headers */,
B804176F1217A83100466BAE /* WebInspectorFrontend.h in Headers */,
+ 1AA83F841A5C4AE400026EC6 /* WebDatabaseProvider.h in Headers */,
7A8FF0D11075024A00A80A08 /* WebInspectorPrivate.h in Headers */,
939810420824BF01008DF038 /* WebJavaScriptTextInputPanel.h in Headers */,
37D1DCA81065928C0068F7EF /* WebJSPDFDoc.h in Headers */,
65E0F88508500917007E5CB9 /* WebNSURLRequestExtras.m in Sources */,
65E0F9E708500F23007E5CB9 /* WebNSUserDefaultsExtras.mm in Sources */,
939810C90824BF01008DF038 /* WebNSViewExtras.m in Sources */,
+ 1AA83F831A5C4AE400026EC6 /* WebDatabaseProvider.cpp in Sources */,
939810CA0824BF01008DF038 /* WebNSWindowExtras.m in Sources */,
A58A579A143E727000125F50 /* WebOpenPanelResultListener.mm in Sources */,
939810D00824BF01008DF038 /* WebPanelAuthenticationHandler.m in Sources */,
+2015-01-06 Anders Carlsson <andersca@apple.com>
+
+ Add a WebKit1 database provider
+ https://bugs.webkit.org/show_bug.cgi?id=140126
+
+ Reviewed by Sam Weinig.
+
+ Set the database provider.
+
+ * WebView/WebView.mm:
+ (-[WebView _commonInitializationWithFrameName:groupName:]):
+
2015-01-06 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r177963.
#import "WebDOMOperationsPrivate.h"
#import "WebDataSourceInternal.h"
#import "WebDatabaseManagerPrivate.h"
+#import "WebDatabaseProvider.h"
#import "WebDefaultEditingDelegate.h"
#import "WebDefaultPolicyDelegate.h"
#import "WebDefaultUIDelegate.h"
pageConfiguration.alternativeTextClient = new WebAlternativeTextClient(self);
pageConfiguration.loaderClientForMainFrame = new WebFrameLoaderClient;
pageConfiguration.progressTrackerClient = new WebProgressTrackerClient(self);
+ pageConfiguration.databaseProvider = &WebDatabaseProvider::shared();
pageConfiguration.storageNamespaceProvider = &_private->group->storageNamespaceProvider();
pageConfiguration.userContentController = &_private->group->userContentController();
pageConfiguration.visitedLinkStore = &_private->group->visitedLinkStore();
+2015-01-06 Anders Carlsson <andersca@apple.com>
+
+ Add a WebKit1 database provider
+ https://bugs.webkit.org/show_bug.cgi?id=140126
+
+ Reviewed by Sam Weinig.
+
+ Set the database provider.
+
+ * WebView.cpp:
+ (WebView::initWithFrame):
+
2015-01-06 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r177963.
#include "WebContextMenuClient.h"
#include "WebCoreTextRenderer.h"
#include "WebDatabaseManager.h"
+#include "WebDatabaseProvider.h"
#include "WebDocumentLoader.h"
#include "WebDownload.h"
#include "WebDragClient.h"
configuration.inspectorClient = m_inspectorClient;
#endif // ENABLE(INSPECTOR)
configuration.loaderClientForMainFrame = new WebFrameLoaderClient;
+ configuration.databaseProvider = &WebDatabaseProvider::shared();
configuration.storageNamespaceProvider = WebStorageNamespaceProvider::create(localStorageDatabasePath(m_preferences.get()));
configuration.progressTrackerClient = static_cast<WebFrameLoaderClient*>(configuration.loaderClientForMainFrame);
configuration.visitedLinkStore = &WebVisitedLinkStore::shared();