[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