summaryrefslogtreecommitdiffstats
path: root/WebCore/page
diff options
context:
space:
mode:
Diffstat (limited to 'WebCore/page')
-rw-r--r--WebCore/page/PageGroup.cpp15
-rw-r--r--WebCore/page/PageGroup.h6
-rw-r--r--WebCore/page/android/InspectorControllerAndroid.cpp10
3 files changed, 23 insertions, 8 deletions
diff --git a/WebCore/page/PageGroup.cpp b/WebCore/page/PageGroup.cpp
index f0951eb..f098211 100644
--- a/WebCore/page/PageGroup.cpp
+++ b/WebCore/page/PageGroup.cpp
@@ -97,8 +97,8 @@ void PageGroup::closeLocalStorage()
PageGroupMap::iterator end = pageGroups->end();
for (PageGroupMap::iterator it = pageGroups->begin(); it != end; ++it) {
- if (LocalStorage* localStorage = it->second->localStorage())
- localStorage->close();
+ if (it->second->hasLocalStorage())
+ it->second->localStorage()->close();
}
#endif
}
@@ -108,10 +108,6 @@ void PageGroup::addPage(Page* page)
ASSERT(page);
ASSERT(!m_pages.contains(page));
m_pages.add(page);
-#if ENABLE(DOM_STORAGE)
- if (!m_localStorage)
- m_localStorage = LocalStorage::localStorage(page->settings()->localStorageDatabasePath());
-#endif
}
void PageGroup::removePage(Page* page)
@@ -187,6 +183,13 @@ void PageGroup::setShouldTrackVisitedLinks(bool shouldTrack)
#if ENABLE(DOM_STORAGE)
LocalStorage* PageGroup::localStorage()
{
+ if (!m_localStorage) {
+ // Need a page in this page group to query the settings for the local storage database path.
+ Page* page = *m_pages.begin();
+ ASSERT(page);
+ m_localStorage = LocalStorage::localStorage(page->settings()->localStorageDatabasePath());
+ }
+
return m_localStorage.get();
}
#endif
diff --git a/WebCore/page/PageGroup.h b/WebCore/page/PageGroup.h
index 097fb87..d9ffabd 100644
--- a/WebCore/page/PageGroup.h
+++ b/WebCore/page/PageGroup.h
@@ -44,7 +44,7 @@ namespace WebCore {
static PageGroup* pageGroup(const String& groupName);
static void closeLocalStorage();
-
+
const HashSet<Page*>& pages() const { return m_pages; }
void addPage(Page*);
@@ -68,7 +68,9 @@ namespace WebCore {
private:
void addVisitedLink(LinkHash stringHash);
-
+#if ENABLE(DOM_STORAGE)
+ bool hasLocalStorage() { return m_localStorage; }
+#endif
String m_name;
HashSet<Page*> m_pages;
diff --git a/WebCore/page/android/InspectorControllerAndroid.cpp b/WebCore/page/android/InspectorControllerAndroid.cpp
index c480e94..3c9e4b9 100644
--- a/WebCore/page/android/InspectorControllerAndroid.cpp
+++ b/WebCore/page/android/InspectorControllerAndroid.cpp
@@ -61,8 +61,15 @@ namespace WebCore {
struct InspectorResource : public RefCounted<InspectorResource> {
};
+#if ENABLE(DATABASE)
struct InspectorDatabaseResource : public RefCounted<InspectorDatabaseResource> {
};
+#endif
+
+#if ENABLE(DOM_STORAGE)
+struct InspectorDOMStorageResource : public RefCounted<InspectorDatabaseResource> {
+};
+#endif
InspectorController::InspectorController(Page*, InspectorClient* client)
: m_startProfiling(this, 0)
@@ -87,6 +94,9 @@ void InspectorController::addMessageToConsole(MessageSource, MessageLevel, const
#if ENABLE(DATABASE)
void InspectorController::didOpenDatabase(Database*, String const&, String const&, String const&) {}
#endif
+#if ENABLE(DOM_STORAGE)
+ void InspectorController::didUseDOMStorage(StorageArea* storageArea, bool isLocalStorage, Frame* frame) {}
+#endif
bool InspectorController::enabled() const { return false; }
void InspectorController::inspect(Node*) {}
bool InspectorController::windowVisible() { return false; }