[SCM] WebKit Debian packaging branch, webkit-1.1, updated. upstream/1.1.15.1-1414-gc69ee75

ggaren at apple.com ggaren at apple.com
Thu Oct 29 20:33:53 UTC 2009


The following commit has been merged in the webkit-1.1 branch:
commit 9d672ed2f2572ef552eba22c5322b402cfa1adb0
Author: ggaren at apple.com <ggaren at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Thu Sep 24 21:18:26 2009 +0000

    JavaScriptCore: Renamed clear to removeAll, as suggested by Darin Adler.
    
    Patch by Geoffrey Garen <ggaren at apple.com> on 2009-09-24
    Reviewed by Sam Weinig.
    
    * wtf/HashCountedSet.h:
    (WTF::::removeAll):
    
    WebCore: Added back enable/disableSuddenTermination() functionality I accidentally
    removed in my last patch.
    
    Patch by Geoffrey Garen <ggaren at apple.com> on 2009-09-24
    Reviewed by Sam Weinig.
    
    * page/DOMWindow.cpp:
    (WebCore::addUnloadEventListener):
    (WebCore::removeUnloadEventListener):
    (WebCore::removeAllUnloadEventListeners):
    (WebCore::addBeforeUnloadEventListener):
    (WebCore::removeBeforeUnloadEventListener):
    (WebCore::removeAllBeforeUnloadEventListeners):
    (WebCore::DOMWindow::dispatchAllPendingUnloadEvents):
    (WebCore::DOMWindow::~DOMWindow):
    (WebCore::DOMWindow::addEventListener):
    (WebCore::DOMWindow::removeEventListener):
    (WebCore::DOMWindow::removeAllEventListeners):
    
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@48732 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/JavaScriptCore/ChangeLog b/JavaScriptCore/ChangeLog
index 2996694..1a677d5 100644
--- a/JavaScriptCore/ChangeLog
+++ b/JavaScriptCore/ChangeLog
@@ -1,3 +1,12 @@
+2009-09-24  Geoffrey Garen  <ggaren at apple.com>
+
+        Reviewed by Sam Weinig.
+
+        Renamed clear to removeAll, as suggested by Darin Adler.
+
+        * wtf/HashCountedSet.h:
+        (WTF::::removeAll):
+
 2009-09-24  Mark Rowe  <mrowe at apple.com>
 
         Reviewed by Gavin Barraclough.
diff --git a/JavaScriptCore/wtf/HashCountedSet.h b/JavaScriptCore/wtf/HashCountedSet.h
index 5fb6da8..165eb41 100644
--- a/JavaScriptCore/wtf/HashCountedSet.h
+++ b/JavaScriptCore/wtf/HashCountedSet.h
@@ -65,8 +65,8 @@ namespace WTF {
         void remove(iterator);
  
         // removes the value, regardless of its count
-        void clear(iterator);
-        void clear(const ValueType&);
+        void removeAll(iterator);
+        void removeAll(const ValueType&);
 
         // clears the whole set
         void clear();
@@ -171,13 +171,13 @@ namespace WTF {
     }
     
     template<typename Value, typename HashFunctions, typename Traits>
-    inline void HashCountedSet<Value, HashFunctions, Traits>::clear(const ValueType& value)
+    inline void HashCountedSet<Value, HashFunctions, Traits>::removeAll(const ValueType& value)
     {
-        clear(find(value));
+        removeAll(find(value));
     }
     
     template<typename Value, typename HashFunctions, typename Traits>
-    inline void HashCountedSet<Value, HashFunctions, Traits>::clear(iterator it)
+    inline void HashCountedSet<Value, HashFunctions, Traits>::removeAll(iterator it)
     {
         if (it == end())
             return;
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 592c282..e63143c 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,23 @@
+2009-09-24  Geoffrey Garen  <ggaren at apple.com>
+
+        Reviewed by Sam Weinig.
+
+        Added back enable/disableSuddenTermination() functionality I accidentally
+        removed in my last patch.
+
+        * page/DOMWindow.cpp:
+        (WebCore::addUnloadEventListener):
+        (WebCore::removeUnloadEventListener):
+        (WebCore::removeAllUnloadEventListeners):
+        (WebCore::addBeforeUnloadEventListener):
+        (WebCore::removeBeforeUnloadEventListener):
+        (WebCore::removeAllBeforeUnloadEventListeners):
+        (WebCore::DOMWindow::dispatchAllPendingUnloadEvents):
+        (WebCore::DOMWindow::~DOMWindow):
+        (WebCore::DOMWindow::addEventListener):
+        (WebCore::DOMWindow::removeEventListener):
+        (WebCore::DOMWindow::removeAllEventListeners):
+
 2009-09-24  Sam Weinig  <sam at webkit.org>
 
         Reviewed by Steve Falkenburg and Mark Rowe.
diff --git a/WebCore/page/DOMWindow.cpp b/WebCore/page/DOMWindow.cpp
index 809d541..06a37c8 100644
--- a/WebCore/page/DOMWindow.cpp
+++ b/WebCore/page/DOMWindow.cpp
@@ -137,6 +137,54 @@ static DOMWindowSet& windowsWithBeforeUnloadEventListeners()
     return windowsWithBeforeUnloadEventListeners;
 }
 
+static void addUnloadEventListener(DOMWindow* domWindow)
+{
+    DOMWindowSet& set = windowsWithUnloadEventListeners();
+    if (set.isEmpty())
+        disableSuddenTermination();
+    set.add(domWindow);
+}
+
+static void removeUnloadEventListener(DOMWindow* domWindow)
+{
+    DOMWindowSet& set = windowsWithUnloadEventListeners();
+    set.remove(domWindow);
+    if (set.isEmpty())
+        enableSuddenTermination();
+}
+
+static void removeAllUnloadEventListeners(DOMWindow* domWindow)
+{
+    DOMWindowSet& set = windowsWithUnloadEventListeners();
+    set.removeAll(domWindow);
+    if (set.isEmpty())
+        enableSuddenTermination();
+}
+
+static void addBeforeUnloadEventListener(DOMWindow* domWindow)
+{
+    DOMWindowSet& set = windowsWithBeforeUnloadEventListeners();
+    if (set.isEmpty())
+        disableSuddenTermination();
+    set.add(domWindow);
+}
+
+static void removeBeforeUnloadEventListener(DOMWindow* domWindow)
+{
+    DOMWindowSet& set = windowsWithBeforeUnloadEventListeners();
+    set.remove(domWindow);
+    if (set.isEmpty())
+        enableSuddenTermination();
+}
+
+static void removeAllBeforeUnloadEventListeners(DOMWindow* domWindow)
+{
+    DOMWindowSet& set = windowsWithBeforeUnloadEventListeners();
+    set.removeAll(domWindow);
+    if (set.isEmpty())
+        enableSuddenTermination();
+}
+
 static bool allowsBeforeUnloadListeners(DOMWindow* window)
 {
     ASSERT_ARG(window, window);
@@ -193,7 +241,7 @@ unsigned DOMWindow::pendingUnloadEventListeners() const
 
 void DOMWindow::dispatchAllPendingUnloadEvents()
 {
-    DOMWindowSet& set = windowsWithBeforeUnloadEventListeners();
+    DOMWindowSet& set = windowsWithUnloadEventListeners();
     if (set.isEmpty())
         return;
 
@@ -328,8 +376,8 @@ DOMWindow::~DOMWindow()
     if (m_frame)
         m_frame->clearFormerDOMWindow(this);
 
-    windowsWithUnloadEventListeners().clear(this);
-    windowsWithBeforeUnloadEventListeners().clear(this);
+    removeAllUnloadEventListeners(this);
+    removeAllBeforeUnloadEventListeners(this);
 }
 
 ScriptExecutionContext* DOMWindow::scriptExecutionContext() const
@@ -1215,9 +1263,9 @@ bool DOMWindow::addEventListener(const AtomicString& eventType, PassRefPtr<Event
         document->addListenerTypeIfNeeded(eventType);
 
     if (eventType == eventNames().unloadEvent)
-        windowsWithUnloadEventListeners().add(this);
+        addUnloadEventListener(this);
     else if (eventType == eventNames().beforeunloadEvent && allowsBeforeUnloadListeners(this))
-        windowsWithBeforeUnloadEventListeners().add(this);
+        addBeforeUnloadEventListener(this);
 
     return true;
 }
@@ -1228,9 +1276,9 @@ bool DOMWindow::removeEventListener(const AtomicString& eventType, EventListener
         return false;
 
     if (eventType == eventNames().unloadEvent)
-        windowsWithUnloadEventListeners().remove(this);
+        removeUnloadEventListener(this);
     else if (eventType == eventNames().beforeunloadEvent && allowsBeforeUnloadListeners(this))
-        windowsWithBeforeUnloadEventListeners().remove(this);
+        removeBeforeUnloadEventListener(this);
 
     return true;
 }
@@ -1266,8 +1314,8 @@ void DOMWindow::removeAllEventListeners()
 {
     EventTarget::removeAllEventListeners();
 
-    windowsWithUnloadEventListeners().clear(this);
-    windowsWithBeforeUnloadEventListeners().clear(this);
+    removeAllUnloadEventListeners(this);
+    removeAllBeforeUnloadEventListeners(this);
 }
 
 void DOMWindow::captureEvents()

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list