[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-10851-g50815da

dglazkov at chromium.org dglazkov at chromium.org
Wed Dec 22 17:59:25 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit 99bb62b0b7e017b8fcdaf41abe39a02f42375214
Author: dglazkov at chromium.org <dglazkov at chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Sat Dec 4 00:11:49 2010 +0000

    2010-12-03  Dimitri Glazkov  <dglazkov at chromium.org>
    
            Reviewed by Darin Adler.
    
            REGRESSION(r71934): input event fires twice when editing text inside a text input.
            https://bugs.webkit.org/show_bug.cgi?id=50477
    
            * fast/forms/text-input-event-expected.txt: Added.
            * fast/forms/text-input-event.html: Added.
    2010-12-03  Dimitri Glazkov  <dglazkov at chromium.org>
    
            Reviewed by Darin Adler.
    
            REGRESSION(r71934): input event fires twice when editing text inside a text input.
            https://bugs.webkit.org/show_bug.cgi?id=50477
    
            Now that events escape the shadow DOM boundary, the input event is fired twice
            for each input, once triggered by editing, once triggered by value change.
    
            Test: fast/forms/text-input-event.html
    
            * dom/InputElement.cpp:
            (WebCore::InputElement::setValueFromRenderer): Added a check to ensure editable fields
                don't fire an extra input event.
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@73319 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index 688677c..918c86f 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,13 @@
+2010-12-03  Dimitri Glazkov  <dglazkov at chromium.org>
+
+        Reviewed by Darin Adler.
+
+        REGRESSION(r71934): input event fires twice when editing text inside a text input.
+        https://bugs.webkit.org/show_bug.cgi?id=50477
+
+        * fast/forms/text-input-event-expected.txt: Added.
+        * fast/forms/text-input-event.html: Added.
+
 2010-12-03  Sheriff Bot  <webkit.review.bot at gmail.com>
 
         Unreviewed, rolling out r73302.
diff --git a/LayoutTests/fast/forms/text-input-event-expected.txt b/LayoutTests/fast/forms/text-input-event-expected.txt
new file mode 100644
index 0000000..2bb1299
--- /dev/null
+++ b/LayoutTests/fast/forms/text-input-event-expected.txt
@@ -0,0 +1,2 @@
+
+Input event should fire once per actual input: PASS
diff --git a/LayoutTests/fast/forms/text-input-event.html b/LayoutTests/fast/forms/text-input-event.html
new file mode 100644
index 0000000..ddd3bd7
--- /dev/null
+++ b/LayoutTests/fast/forms/text-input-event.html
@@ -0,0 +1,43 @@
+<html>
+<head>
+<script>
+
+var logDiv;
+
+function log(msg, success)
+{
+    logDiv.appendChild(document.createElement('div')).textContent = msg + ': ' + (success ? 'PASS' : 'FAIL');
+}
+
+function typeInto(element, value)
+{
+    if (!window.eventSender)
+        return;
+
+    element.focus();
+    eventSender.keyDown(value, []);
+}
+
+function runTest()
+{
+    if (window.layoutTestController)
+        layoutTestController.dumpAsText();
+
+    logDiv = document.getElementById('log');
+    var input = document.getElementsByTagName('input')[0];
+    var count = 0;
+    input.addEventListener('input', function()
+    {
+        count++;
+    }, false);
+    typeInto(input, 'x');
+    log('Input event should fire once per actual input', count == 1);
+}
+
+</script>
+</head>
+<body onload="runTest()">
+    <input>
+    <div id="log"></div>
+</body>
+</html>
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 564702f..00923a5 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,19 @@
+2010-12-03  Dimitri Glazkov  <dglazkov at chromium.org>
+
+        Reviewed by Darin Adler.
+
+        REGRESSION(r71934): input event fires twice when editing text inside a text input.
+        https://bugs.webkit.org/show_bug.cgi?id=50477
+
+        Now that events escape the shadow DOM boundary, the input event is fired twice
+        for each input, once triggered by editing, once triggered by value change.
+
+        Test: fast/forms/text-input-event.html
+
+        * dom/InputElement.cpp:
+        (WebCore::InputElement::setValueFromRenderer): Added a check to ensure editable fields
+            don't fire an extra input event.
+
 2010-12-03  Sheriff Bot  <webkit.review.bot at gmail.com>
 
         Unreviewed, rolling out r73302.
diff --git a/WebCore/dom/InputElement.cpp b/WebCore/dom/InputElement.cpp
index 85f37e1..37211d8 100644
--- a/WebCore/dom/InputElement.cpp
+++ b/WebCore/dom/InputElement.cpp
@@ -138,7 +138,9 @@ void InputElement::setValueFromRenderer(InputElementData& data, InputElement* in
 
     element->setFormControlValueMatchesRenderer(true);
 
-    element->dispatchEvent(Event::create(eventNames().inputEvent, true, false));
+    // Input event is fired by the Node::defaultEventHandler for editable controls.
+    if (!inputElement->isTextField())
+        element->dispatchEvent(Event::create(eventNames().inputEvent, true, false));
     notifyFormStateChanged(element);
 }
 

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list