[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc
aa at chromium.org
aa at chromium.org
Wed Dec 22 11:09:02 UTC 2010
The following commit has been merged in the debian/experimental branch:
commit 968aabd44a636a490d93cf590e77de56fbdd462c
Author: aa at chromium.org <aa at chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Tue Jul 13 20:31:33 2010 +0000
2010-07-13 Aaron Boodman <aa at chromium.org>
Reviewed by Timothy Hatcher.
Don't reset per-document user style caches when user styles are updated in
Chromium.
https://bugs.webkit.org/show_bug.cgi?id=42003
* page/PageGroup.cpp:
(WebCore::PageGroup::addUserStyleSheetToWorld):
(WebCore::PageGroup::removeUserStyleSheetFromWorld):
(WebCore::PageGroup::removeUserStyleSheetsFromWorld):
(WebCore::PageGroup::removeAllUserContent):
(WebCore::PageGroup::resetUserStyleCacheInAllFrames):
* page/PageGroup.h:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@63243 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index df02571..ea6dcb8 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,20 @@
+2010-07-13 Aaron Boodman <aa at chromium.org>
+
+ Reviewed by Timothy Hatcher.
+
+ Don't reset per-document user style caches when user styles are updated in
+ Chromium.
+
+ https://bugs.webkit.org/show_bug.cgi?id=42003
+
+ * page/PageGroup.cpp:
+ (WebCore::PageGroup::addUserStyleSheetToWorld):
+ (WebCore::PageGroup::removeUserStyleSheetFromWorld):
+ (WebCore::PageGroup::removeUserStyleSheetsFromWorld):
+ (WebCore::PageGroup::removeAllUserContent):
+ (WebCore::PageGroup::resetUserStyleCacheInAllFrames):
+ * page/PageGroup.h:
+
2010-07-13 Eric Carlson <eric.carlson at apple.com>
Reviewed by Dan Bernstein.
diff --git a/WebCore/page/PageGroup.cpp b/WebCore/page/PageGroup.cpp
index b45b9ea..e0502c5 100644
--- a/WebCore/page/PageGroup.cpp
+++ b/WebCore/page/PageGroup.cpp
@@ -242,12 +242,7 @@ void PageGroup::addUserStyleSheetToWorld(DOMWrapperWorld* world, const String& s
styleSheetsInWorld = new UserStyleSheetVector;
styleSheetsInWorld->append(userStyleSheet.release());
- // Clear our cached sheets and have them just reparse.
- HashSet<Page*>::const_iterator end = m_pages.end();
- for (HashSet<Page*>::const_iterator it = m_pages.begin(); it != end; ++it) {
- for (Frame* frame = (*it)->mainFrame(); frame; frame = frame->tree()->traverseNext())
- frame->document()->clearPageGroupUserSheets();
- }
+ resetUserStyleCacheInAllFrames();
}
void PageGroup::removeUserScriptFromWorld(DOMWrapperWorld* world, const KURL& url)
@@ -301,13 +296,8 @@ void PageGroup::removeUserStyleSheetFromWorld(DOMWrapperWorld* world, const KURL
delete it->second;
m_userStyleSheets->remove(it);
}
-
- // Clear our cached sheets and have them just reparse.
- HashSet<Page*>::const_iterator end = m_pages.end();
- for (HashSet<Page*>::const_iterator it = m_pages.begin(); it != end; ++it) {
- for (Frame* frame = (*it)->mainFrame(); frame; frame = frame->tree()->traverseNext())
- frame->document()->clearPageGroupUserSheets();
- }
+
+ resetUserStyleCacheInAllFrames();
}
void PageGroup::removeUserScriptsFromWorld(DOMWrapperWorld* world)
@@ -339,12 +329,7 @@ void PageGroup::removeUserStyleSheetsFromWorld(DOMWrapperWorld* world)
delete it->second;
m_userStyleSheets->remove(it);
- // Clear our cached sheets and have them just reparse.
- HashSet<Page*>::const_iterator end = m_pages.end();
- for (HashSet<Page*>::const_iterator it = m_pages.begin(); it != end; ++it) {
- for (Frame* frame = (*it)->mainFrame(); frame; frame = frame->tree()->traverseNext())
- frame->document()->clearPageGroupUserSheets();
- }
+ resetUserStyleCacheInAllFrames();
}
void PageGroup::removeAllUserContent()
@@ -353,12 +338,24 @@ void PageGroup::removeAllUserContent()
deleteAllValues(*m_userScripts);
m_userScripts.clear();
}
-
-
+
if (m_userStyleSheets) {
deleteAllValues(*m_userStyleSheets);
m_userStyleSheets.clear();
+ resetUserStyleCacheInAllFrames();
}
}
+void PageGroup::resetUserStyleCacheInAllFrames()
+{
+#if !PLATFORM(CHROMIUM)
+ // Clear our cached sheets and have them just reparse.
+ HashSet<Page*>::const_iterator end = m_pages.end();
+ for (HashSet<Page*>::const_iterator it = m_pages.begin(); it != end; ++it) {
+ for (Frame* frame = (*it)->mainFrame(); frame; frame = frame->tree()->traverseNext())
+ frame->document()->clearPageGroupUserSheets();
+ }
+#endif
+}
+
} // namespace WebCore
diff --git a/WebCore/page/PageGroup.h b/WebCore/page/PageGroup.h
index 545df78..77aa281 100644
--- a/WebCore/page/PageGroup.h
+++ b/WebCore/page/PageGroup.h
@@ -94,7 +94,8 @@ namespace WebCore {
private:
void addVisitedLink(LinkHash stringHash);
-
+ void resetUserStyleCacheInAllFrames();
+
String m_name;
HashSet<Page*> m_pages;
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list