diff options
author | Ben Murdoch <benm@google.com> | 2011-06-02 12:07:03 +0100 |
---|---|---|
committer | Ben Murdoch <benm@google.com> | 2011-06-10 10:47:21 +0100 |
commit | 2daae5fd11344eaa88a0d92b0f6d65f8d2255c00 (patch) | |
tree | e4964fbd1cb70599f7718ff03e50ea1dab33890b /Source/WebKit2/UIProcess/WebPageGroup.cpp | |
parent | 87bdf0060a247bfbe668342b87e0874182e0ffa9 (diff) | |
download | external_webkit-2daae5fd11344eaa88a0d92b0f6d65f8d2255c00.zip external_webkit-2daae5fd11344eaa88a0d92b0f6d65f8d2255c00.tar.gz external_webkit-2daae5fd11344eaa88a0d92b0f6d65f8d2255c00.tar.bz2 |
Merge WebKit at r84325: Initial merge by git.
Change-Id: Ic1a909300ecc0a13ddc6b4e784371d2ac6e3d59b
Diffstat (limited to 'Source/WebKit2/UIProcess/WebPageGroup.cpp')
-rw-r--r-- | Source/WebKit2/UIProcess/WebPageGroup.cpp | 40 |
1 files changed, 25 insertions, 15 deletions
diff --git a/Source/WebKit2/UIProcess/WebPageGroup.cpp b/Source/WebKit2/UIProcess/WebPageGroup.cpp index f64dd2c..72588d4 100644 --- a/Source/WebKit2/UIProcess/WebPageGroup.cpp +++ b/Source/WebKit2/UIProcess/WebPageGroup.cpp @@ -47,9 +47,9 @@ static WebPageGroupMap& webPageGroupMap() return map; } -PassRefPtr<WebPageGroup> WebPageGroup::create(const String& identifier, bool visibleToInjectedBundle) +PassRefPtr<WebPageGroup> WebPageGroup::create(const String& identifier, bool visibleToInjectedBundle, bool visibleToHistoryClient) { - RefPtr<WebPageGroup> pageGroup = adoptRef(new WebPageGroup(identifier, visibleToInjectedBundle)); + RefPtr<WebPageGroup> pageGroup = adoptRef(new WebPageGroup(identifier, visibleToInjectedBundle, visibleToHistoryClient)); webPageGroupMap().set(pageGroup->pageGroupID(), pageGroup.get()); @@ -61,25 +61,23 @@ WebPageGroup* WebPageGroup::get(uint64_t pageGroupID) return webPageGroupMap().get(pageGroupID); } -WebPageGroup::WebPageGroup(const String& identifier, bool visibleToInjectedBundle) +WebPageGroup::WebPageGroup(const String& identifier, bool visibleToInjectedBundle, bool visibleToHistoryClient) { m_data.pageGroupID = generatePageGroupID(); - if (!identifier.isNull()) { + if (!identifier.isNull()) m_data.identifer = identifier; - m_preferences = WebPreferences::create(identifier); - } else { + else m_data.identifer = m_data.identifer = makeString("__uniquePageGroupID-", String::number(m_data.pageGroupID)); - m_preferences = WebPreferences::create(); - } - m_preferences->addPageGroup(this); - m_data.visibleToInjectedBundle = visibleToInjectedBundle; + m_data.visibleToInjectedBundle = visibleToInjectedBundle; + m_data.visibleToHistoryClient = visibleToHistoryClient; } WebPageGroup::~WebPageGroup() { - m_preferences->removePageGroup(this); + if (m_preferences) + m_preferences->removePageGroup(this); webPageGroupMap().remove(pageGroupID()); } @@ -98,15 +96,27 @@ void WebPageGroup::setPreferences(WebPreferences* preferences) if (preferences == m_preferences) return; - m_preferences->removePageGroup(this); - m_preferences = preferences; - m_preferences->addPageGroup(this); + if (!m_preferences) { + m_preferences = preferences; + m_preferences->addPageGroup(this); + } else { + m_preferences->removePageGroup(this); + m_preferences = preferences; + m_preferences->addPageGroup(this); - preferencesDidChange(); + preferencesDidChange(); + } } WebPreferences* WebPageGroup::preferences() const { + if (!m_preferences) { + if (!m_data.identifer.isNull()) + m_preferences = WebPreferences::create(m_data.identifer); + else + m_preferences = WebPreferences::create(); + m_preferences->addPageGroup(const_cast<WebPageGroup*>(this)); + } return m_preferences.get(); } |