[SCM] WebKit Debian packaging branch, webkit-1.3, updated. upstream/1.3.7-4207-g178b198

yurys at chromium.org yurys at chromium.org
Mon Feb 21 00:30:54 UTC 2011


The following commit has been merged in the webkit-1.3 branch:
commit a1f9ecd3720faafeaa7d41928dfa383d8b88934f
Author: yurys at chromium.org <yurys at chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Tue Feb 1 12:16:33 2011 +0000

    2011-02-01  Yury Semikhatsky  <yurys at chromium.org>
    
            Unreviewed. Rollout r77230 which caused many layout tests
            crashes on Chromium Debug bots.
    
            Async event handlers should not fire within a modal dialog
            https://bugs.webkit.org/show_bug.cgi?id=53202
    
            * dom/Document.cpp:
            (WebCore::Document::Document):
            * dom/EventQueue.cpp:
            (WebCore::EventQueue::EventQueue):
            (WebCore::EventQueue::enqueueEvent):
            (WebCore::EventQueue::pendingEventTimerFired):
            * dom/EventQueue.h:
    2011-02-01  Yury Semikhatsky  <yurys at chromium.org>
    
            Unreviewed. Rollout r77230 which caused many layout tests
            crashes on Chromium Debug bots.
    
            Async event handlers should not fire within a modal dialog
            https://bugs.webkit.org/show_bug.cgi?id=53202
    
            * fast/events/scroll-event-during-modal-dialog-expected.txt: Removed.
            * fast/events/scroll-event-during-modal-dialog.html: Removed.
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@77241 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index 1068d9f..57aae2e 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,14 @@
+2011-02-01  Yury Semikhatsky  <yurys at chromium.org>
+
+        Unreviewed. Rollout r77230 which caused many layout tests
+        crashes on Chromium Debug bots.
+
+        Async event handlers should not fire within a modal dialog
+        https://bugs.webkit.org/show_bug.cgi?id=53202
+
+        * fast/events/scroll-event-during-modal-dialog-expected.txt: Removed.
+        * fast/events/scroll-event-during-modal-dialog.html: Removed.
+
 2011-02-01  Mihai Parparita  <mihaip at chromium.org>
 
         Reviewed by James Robinson.
diff --git a/LayoutTests/fast/events/scroll-event-during-modal-dialog-expected.txt b/LayoutTests/fast/events/scroll-event-during-modal-dialog-expected.txt
deleted file mode 100644
index b5514b8..0000000
--- a/LayoutTests/fast/events/scroll-event-during-modal-dialog-expected.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-Tests that scroll events are not fired while modal dialogs are displayed.
-
-On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
-
-
-Scrolling window
-Showing modal dialog
-Returned from modal dialog
-Scroll handler fired
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/LayoutTests/fast/events/scroll-event-during-modal-dialog.html b/LayoutTests/fast/events/scroll-event-during-modal-dialog.html
deleted file mode 100644
index 346dfb6..0000000
--- a/LayoutTests/fast/events/scroll-event-during-modal-dialog.html
+++ /dev/null
@@ -1,34 +0,0 @@
-<html>
-<link rel="stylesheet" href="../js/resources/js-test-style.css">
-<script src="../js/resources/js-test-pre.js"></script>
-<body style="min-height: 2000px"> 
-<p id="description"></p>
-<div id="console"></div>
-
-<script type="text/javascript">
-description('Tests that scroll events are not fired while modal dialogs are displayed.');
-
-var triggeredCaptureListener = false;
-var triggeredBubbleListener = false;
-
-onscroll = function()
-{
-    debug('Scroll handler fired');
-    finishJSTest();
-}
-
-onload = function()
-{
-    debug('Scrolling window');
-    window.scrollTo(200, 200);
-    debug('Showing modal dialog');
-    showModalDialog('resources/scroll-event-modal-dialog.html');
-    debug('Returned from modal dialog');
-}
-
-var successfullyParsed = true;
-var jsTestIsAsync = true;
-</script>
-<script src="../js/resources/js-test-post.js"></script>
-</body>
-</html>
diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog
index 9896800..26f97f7 100644
--- a/Source/WebCore/ChangeLog
+++ b/Source/WebCore/ChangeLog
@@ -1,3 +1,19 @@
+2011-02-01  Yury Semikhatsky  <yurys at chromium.org>
+
+        Unreviewed. Rollout r77230 which caused many layout tests
+        crashes on Chromium Debug bots.
+
+        Async event handlers should not fire within a modal dialog
+        https://bugs.webkit.org/show_bug.cgi?id=53202
+
+        * dom/Document.cpp:
+        (WebCore::Document::Document):
+        * dom/EventQueue.cpp:
+        (WebCore::EventQueue::EventQueue):
+        (WebCore::EventQueue::enqueueEvent):
+        (WebCore::EventQueue::pendingEventTimerFired):
+        * dom/EventQueue.h:
+
 2011-02-01  Zoltan Herczeg  <zherczeg at webkit.org>
 
         Reviewed by Dirk Schulze.
diff --git a/Source/WebCore/dom/Document.cpp b/Source/WebCore/dom/Document.cpp
index 7f69f51..cb9a2ab 100644
--- a/Source/WebCore/dom/Document.cpp
+++ b/Source/WebCore/dom/Document.cpp
@@ -408,7 +408,7 @@ Document::Document(Frame* frame, const KURL& url, bool isXHTML, bool isHTML, con
     , m_normalWorldWrapperCache(0)
 #endif
     , m_usingGeolocation(false)
-    , m_eventQueue(EventQueue::create(this))
+    , m_eventQueue(adoptPtr(new EventQueue))
 #if ENABLE(WML)
     , m_containsWMLContent(false)
 #endif
diff --git a/Source/WebCore/dom/EventQueue.cpp b/Source/WebCore/dom/EventQueue.cpp
index a3daae6..a43929e 100644
--- a/Source/WebCore/dom/EventQueue.cpp
+++ b/Source/WebCore/dom/EventQueue.cpp
@@ -28,31 +28,14 @@
 #include "EventQueue.h"
 
 #include "DOMWindow.h"
+#include "Document.h"
 #include "Event.h"
 #include "EventNames.h"
-#include "ScriptExecutionContext.h"
-#include "SuspendableTimer.h"
 
 namespace WebCore {
 
-class EventQueueTimer : public SuspendableTimer {
-    WTF_MAKE_NONCOPYABLE(EventQueueTimer);
-public:
-    EventQueueTimer(EventQueue* eventQueue, ScriptExecutionContext* context)
-        : SuspendableTimer(context)
-        , m_eventQueue(eventQueue) { }
-
-private:
-    virtual void fired() { m_eventQueue->pendingEventTimerFired(); }
-    EventQueue* m_eventQueue;    
-};
-
-EventQueue::EventQueue(ScriptExecutionContext* context)
-    : m_pendingEventTimer(adoptPtr(new EventQueueTimer(this, context)))
-{
-}
-
-EventQueue::~EventQueue()
+EventQueue::EventQueue()
+    : m_pendingEventTimer(this, &EventQueue::pendingEventTimerFired)
 {
 }
 
@@ -61,8 +44,8 @@ void EventQueue::enqueueEvent(PassRefPtr<Event> event)
     ASSERT(event->target()->toNode() || event->target()->toDOMWindow());
     m_queuedEvents.append(event);
     
-    if (!m_pendingEventTimer->isActive())
-        m_pendingEventTimer->startOneShot(0);
+    if (!m_pendingEventTimer.isActive())
+        m_pendingEventTimer.startOneShot(0);
 }
 
 void EventQueue::enqueueScrollEvent(PassRefPtr<Node> target, ScrollEventTargetType targetType)
@@ -77,9 +60,9 @@ void EventQueue::enqueueScrollEvent(PassRefPtr<Node> target, ScrollEventTargetTy
     enqueueEvent(scrollEvent.release());
 }
 
-void EventQueue::pendingEventTimerFired()
+void EventQueue::pendingEventTimerFired(Timer<EventQueue>*)
 {
-    ASSERT(!m_pendingEventTimer->isActive());
+    ASSERT(!m_pendingEventTimer.isActive());
 
     Vector<RefPtr<Event> > queuedEvents;
     queuedEvents.swap(m_queuedEvents);
diff --git a/Source/WebCore/dom/EventQueue.h b/Source/WebCore/dom/EventQueue.h
index a589ed8..7f8d5fb 100644
--- a/Source/WebCore/dom/EventQueue.h
+++ b/Source/WebCore/dom/EventQueue.h
@@ -27,51 +27,38 @@
 #ifndef EventQueue_h
 #define EventQueue_h
 
+#include "Timer.h"
 #include <wtf/HashSet.h>
 #include <wtf/Noncopyable.h>
-#include <wtf/OwnPtr.h>
-#include <wtf/PassOwnPtr.h>
 #include <wtf/RefPtr.h>
 #include <wtf/Vector.h>
 
 namespace WebCore {
 
 class Event;
-class EventQueueTimer;
 class Node;
-class ScriptExecutionContext;
 
 class EventQueue {
     WTF_MAKE_NONCOPYABLE(EventQueue);
 
-    
 public:
     enum ScrollEventTargetType {
         ScrollEventDocumentTarget,
         ScrollEventElementTarget
     };
 
-    static PassOwnPtr<EventQueue> create(ScriptExecutionContext* context)
-    {
-        return adoptPtr(new EventQueue(context));
-    }
-
-    ~EventQueue();
+    EventQueue();
 
     void enqueueEvent(PassRefPtr<Event>);
     void enqueueScrollEvent(PassRefPtr<Node>, ScrollEventTargetType);
 
 private:
-    explicit EventQueue(ScriptExecutionContext*);
-
-    void pendingEventTimerFired();
+    void pendingEventTimerFired(Timer<EventQueue>*);
     void dispatchEvent(PassRefPtr<Event>);
 
-    OwnPtr<EventQueueTimer> m_pendingEventTimer;
+    Timer<EventQueue> m_pendingEventTimer;
     Vector<RefPtr<Event> > m_queuedEvents;
     HashSet<Node*> m_nodesWithQueuedScrollEvents;
-    
-    friend class EventQueueTimer;    
 };
 
 }

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list