[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