<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>44731</bug_id>
          
          <creation_ts>2010-08-26 16:34:55 -0700</creation_ts>
          <short_desc>Extra Events triggered by &lt;input&gt; on focus</short_desc>
          <delta_ts>2010-10-13 13:54:31 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>HasReduction</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Joseph Pecoraro">joepeck</assigned_to>
          <cc>ap</cc>
    
    <cc>eric</cc>
    
    <cc>joepeck</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>270207</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2010-08-26 16:34:55 -0700</bug_when>
    <thetext>Focusing an &lt;input&gt; which focusing something else in its &quot;onfocus&quot; may
trigger a extra, duplicate events.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>270208</commentid>
    <comment_count>1</comment_count>
      <attachid>65645</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2010-08-26 16:35:28 -0700</bug_when>
    <thetext>Created attachment 65645
[REDUCTION] Manual Test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>270209</commentid>
    <comment_count>2</comment_count>
      <attachid>65646</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2010-08-26 16:35:52 -0700</bug_when>
    <thetext>Created attachment 65646
[TEST] Automatic Test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>270242</commentid>
    <comment_count>3</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2010-08-26 17:38:26 -0700</bug_when>
    <thetext>Looks like there might be multiple dispatches stemming from EventHandler::handleMousePressEvent(const PlatformMouseEvent&amp; mouseEvent). A look at the 4 backtraces (all 4 focus events fired) show this function as the root of the two dispatching branches:


Breakpoint 1, WebCore::HTMLInputElement::handleFocusEvent (this=0x112917900) at WebCore/html/HTMLInputElement.cpp:728
728	    InputElement::dispatchFocusEvent(this, this);

  #0 WebCore::HTMLInputElement::handleFocusEvent at WebCore/html/HTMLInputElement.cpp:728
  #1 WebCore::HTMLTextFormControlElement::dispatchFocusEvent at WebCore/html/HTMLFormControlElement.cpp:487
  #2 WebCore::Document::setFocusedNode at WebCore/dom/Document.cpp:3070
  #3 WebCore::FocusController::setFocusedNode at WebCore/page/FocusController.cpp:627
  #4 WebCore::EventHandler::dispatchMouseEvent at WebCore/page/EventHandler.cpp:1890
&gt; #5 WebCore::EventHandler::handleMousePressEvent at WebCore/page/EventHandler.cpp:1305
  #6 WebCore::EventHandler::mouseDown at WebCore/page/mac/EventHandlerMac.mm:494
  #7 -[WebHTMLView at WebKit/mac/WebView/WebHTMLView.mm:3578
  #8  0x00007fff8678434f in -[NSWindow sendEvent:] ()
  #9  0x0000000100041889 in ?? ()
  #10 0x0000000100041815 in ?? ()
  #11 0x00007fff866b9a86 in -[NSApplication sendEvent:] ()
  #12 0x000000010003855a in ?? ()
  #13 0x00007fff866504da in -[NSApplication run] ()
  #14 0x00007fff866491a8 in NSApplicationMain ()
  #15 0x0000000100009804 in ?? ()


Breakpoint 1, WebCore::HTMLInputElement::handleFocusEvent (this=0x112917900) at WebCore/html/HTMLInputElement.cpp:728
728	    InputElement::dispatchFocusEvent(this, this);

  #0 WebCore::HTMLInputElement::handleFocusEvent at WebCore/html/HTMLInputElement.cpp:728
  #1 WebCore::HTMLTextFormControlElement::dispatchFocusEvent at WebCore/html/HTMLFormControlElement.cpp:487
  #2 WebCore::Document::setFocusedNode at WebCore/dom/Document.cpp:3070
  #3 WebCore::FocusController::setFocusedNode at WebCore/page/FocusController.cpp:627
  #4 WebCore::Frame::setFocusedNodeIfNeeded at WebCore/page/Frame.cpp:592
  #5 WebCore::SelectionController::setSelection at WebCore/editing/SelectionController.cpp:156
  #6 WebCore::SelectionController::setSelection at SelectionController.h:68
  #7 WebCore::EventHandler::handleMousePressEventSingleClick at WebCore/page/EventHandler.cpp:403
  #8 WebCore::EventHandler::handleMousePressEvent at WebCore/page/EventHandler.cpp:472
&gt; #9 WebCore::EventHandler::handleMousePressEvent at WebCore/page/EventHandler.cpp:1346
  #10 WebCore::EventHandler::mouseDown at WebCore/page/mac/EventHandlerMac.mm:494
  #11 -[WebHTMLView at WebKit/mac/WebView/WebHTMLView.mm:3578
  #12 0x00007fff8678434f in -[NSWindow sendEvent:] ()
  #13 0x0000000100041889 in ?? ()
  #14 0x0000000100041815 in ?? ()
  #15 0x00007fff866b9a86 in -[NSApplication sendEvent:] ()
  #16 0x000000010003855a in ?? ()
  #17 0x00007fff866504da in -[NSApplication run] ()
  #18 0x00007fff866491a8 in NSApplicationMain ()
  #19 0x0000000100009804 in ?? ()

Where the lines are:

(1) bool swallowEvent = dispatchMouseEvent(eventNames().mousedownEvent, mev.targetNode(), true, m_clickCount, mouseEvent, true);

(2) swallowEvent = handleMousePressEvent(mev);

Note that (2) is called expecting swallowEvent to have been false. Maybe (1) should have returned true? I&apos;ll be investigating.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>270717</commentid>
    <comment_count>4</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2010-08-27 13:50:58 -0700</bug_when>
    <thetext>Duplicate events also happen when tabbing to the input, not just via mousePress. This makes me think there is a more generic problem. It seems to me that if the focus changed during the dispatchEvent, than later on during the setSelection path, the node should not dispatch a focus event. Or maybe it should never at all. I have to learn more about what is going on.


Breakpoint 1, WebCore::HTMLInputElement::handleFocusEvent (this=0x1124321e0) at WebCore/html/HTMLInputElement.cpp:728

  (gdb) bt
  #0 WebCore::HTMLInputElement::handleFocusEvent at WebCore/html/HTMLInputElement.cpp:728
  #1 WebCore::HTMLTextFormControlElement::dispatchFocusEvent at WebCore/html/HTMLFormControlElement.cpp:487
  #2 WebCore::Document::setFocusedNode at WebCore/dom/Document.cpp:3070
  #3 WebCore::FocusController::setFocusedNode at WebCore/page/FocusController.cpp:627
&gt; #4 WebCore::Element::focus at WebCore/dom/Element.cpp:1317
  #5 WebCore::FocusController::advanceFocusInDocumentOrder at WebCore/page/FocusController.cpp:285
  #6 WebCore::FocusController::advanceFocus at WebCore/page/FocusController.cpp:170
  #7 WebCore::EventHandler::defaultTabEventHandler at WebCore/page/EventHandler.cpp:2750
  #8 WebCore::EventHandler::defaultKeyboardEventHandler at WebCore/page/EventHandler.cpp:2388
  #9 WebCore::Node::defaultEventHandler at WebCore/dom/Node.cpp:3018
  #10 WebCore::HTMLFormControlElementWithState::defaultEventHandler at WebCore/html/HTMLFormControlElement.cpp:471
  #11 WebCore::HTMLInputElement::defaultEventHandler at WebCore/html/HTMLInputElement.cpp:2177
  #12 WebCore::Node::dispatchGenericEvent at WebCore/dom/Node.cpp:2747
  #13 WebCore::Node::dispatchEvent at WebCore/dom/Node.cpp:2631
  #14 WebCore::EventTarget::dispatchEvent at WebCore/dom/EventTarget.cpp:278
  #15 WebCore::EventHandler::keyEvent at WebCore/page/EventHandler.cpp:2325
  #16 WebCore::EventHandler::keyEvent at WebCore/page/mac/EventHandlerMac.mm:148
  #17 -[WebHTMLView at WebKit/mac/WebView/WebHTMLView.mm:4097
  #18 0x00007fff8678506f in -[NSWindow sendEvent:] ()

  
Breakpoint 1, WebCore::HTMLInputElement::handleFocusEvent (this=0x1124321e0) at WebCore/html/HTMLInputElement.cpp:728

  (gdb) bt
  #0 WebCore::HTMLInputElement::handleFocusEvent at WebCore/html/HTMLInputElement.cpp:728
  #1 WebCore::HTMLTextFormControlElement::dispatchFocusEvent at WebCore/html/HTMLFormControlElement.cpp:487
  #2 WebCore::Document::setFocusedNode at WebCore/dom/Document.cpp:3070
  #3 WebCore::FocusController::setFocusedNode at WebCore/page/FocusController.cpp:627
  #4 WebCore::Frame::setFocusedNodeIfNeeded at WebCore/page/Frame.cpp:592
  #5 WebCore::SelectionController::setSelection at WebCore/editing/SelectionController.cpp:156
  #6 WebCore::RenderTextControl::setSelectionRange at WebCore/rendering/RenderTextControl.cpp:262
  #7 WebCore::RenderTextControl::select at WebCore/rendering/RenderTextControl.cpp:233
  #8 WebCore::HTMLTextFormControlElement::select at WebCore/html/HTMLFormControlElement.cpp:564
  #9 WebCore::HTMLInputElement::select at HTMLInputElement.h:146
  #10 WebCore::InputElement::updateFocusAppearance at WebCore/dom/InputElement.cpp:95
  #11 WebCore::HTMLInputElement::updateFocusAppearance at WebCore/html/HTMLInputElement.cpp:707
&gt; #12 WebCore::Element::focus at WebCore/dom/Element.cpp:1329
  #13 WebCore::FocusController::advanceFocusInDocumentOrder at WebCore/page/FocusController.cpp:285
  #14 WebCore::FocusController::advanceFocus at WebCore/page/FocusController.cpp:170
  #15 WebCore::EventHandler::defaultTabEventHandler at WebCore/page/EventHandler.cpp:2750
  #16 WebCore::EventHandler::defaultKeyboardEventHandler at WebCore/page/EventHandler.cpp:2388
  #17 WebCore::Node::defaultEventHandler at WebCore/dom/Node.cpp:3018
  #18 WebCore::HTMLFormControlElementWithState::defaultEventHandler at WebCore/html/HTMLFormControlElement.cpp:471
  #19 WebCore::HTMLInputElement::defaultEventHandler at WebCore/html/HTMLInputElement.cpp:2177
  #20 WebCore::Node::dispatchGenericEvent at WebCore/dom/Node.cpp:2747
  #21 WebCore::Node::dispatchEvent at WebCore/dom/Node.cpp:2631
  #22 WebCore::EventTarget::dispatchEvent at WebCore/dom/EventTarget.cpp:278
  #23 WebCore::EventHandler::keyEvent at WebCore/page/EventHandler.cpp:2325
  #24 WebCore::EventHandler::keyEvent at WebCore/page/mac/EventHandlerMac.mm:148
  #25 -[WebHTMLView at WebKit/mac/WebView/WebHTMLView.mm:4097
  #26 0x00007fff8678506f in -[NSWindow sendEvent:] ()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>270754</commentid>
    <comment_count>5</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2010-08-27 14:27:26 -0700</bug_when>
    <thetext>Okay, all calls to FocusController::setFocusedNode(n) and Document::setFocusedNode(n) may return with the focus node not being (n). Document::setFocusedNode returns false in this case. FocusController::setFocusedNode may return true in this case. But both are commonly used without checking their return value, and I think FocusController&apos;s return value is wrong in the above cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>270783</commentid>
    <comment_count>6</comment_count>
      <attachid>65776</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2010-08-27 15:40:59 -0700</bug_when>
    <thetext>Created attachment 65776
[PATCH] Respect setFocusedNode return values

This is not an area I am very familiar with, so I would appreciate a careful review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>270842</commentid>
    <comment_count>7</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2010-08-27 17:24:10 -0700</bug_when>
    <thetext>Committed r66284
	M	WebCore/dom/Element.cpp
	M	WebCore/ChangeLog
	M	WebCore/page/FocusController.cpp
	A	LayoutTests/fast/events/input-tab-focus-no-duplicate-events-expected.txt
	A	LayoutTests/fast/events/input-focus-no-duplicate-events.html
	A	LayoutTests/fast/events/input-tab-focus-no-duplicate-events.html
	A	LayoutTests/fast/events/input-focus-no-duplicate-events-expected.txt
	M	LayoutTests/ChangeLog
r66284 = 53ef8428545a26d93c3cc6bf22e51eed368403a7 (refs/remotes/trunk)
http://trac.webkit.org/changeset/66284

Watching the bots.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>293609</commentid>
    <comment_count>8</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-10-13 12:26:59 -0700</bug_when>
    <thetext>Attachment 65776 was posted by a committer and has review+, assigning to Joseph Pecoraro for commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>293688</commentid>
    <comment_count>9</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2010-10-13 13:53:43 -0700</bug_when>
    <thetext>Whoops, I posted had landed this but forgot to close. Thanks for the reminder.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>293689</commentid>
    <comment_count>10</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2010-10-13 13:54:31 -0700</bug_when>
    <thetext>Me has horrible english...
I landed this in r66284. ;)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65645</attachid>
            <date>2010-08-26 16:35:28 -0700</date>
            <delta_ts>2010-08-26 16:35:28 -0700</delta_ts>
            <desc>[REDUCTION] Manual Test</desc>
            <filename>reduction-simple.html</filename>
            <type>text/plain</type>
            <size>426</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">PHA+Rm9jdXNpbmcgb24gdGhlIGJvdHRvbSBpbnB1dCB0cmlnZ2VycyBtdWx0aXBsZSBmb2N1cyBl
dmVudHMuPC9wPgo8aW5wdXQgdHlwZT0idGV4dCIgaWQ9IngiPjxicj4KPGlucHV0IHR5cGU9InRl
eHQiIGlkPSJ5Ij4KCjxzY3JpcHQ+CnZhciB0b3BJbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCd4Jyk7CnZhciBib3R0b21JbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd5Jyk7
CnZhciBib3R0b21Db3VudGVyID0gMDsKCmJvdHRvbUlucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2Zv
Y3VzJywgZnVuY3Rpb24oKSB7CiAgICArK2JvdHRvbUNvdW50ZXI7CiAgICBhbGVydCgiQm90dG9t
IElucHV0OiBGb2N1cyBFdmVudCAjIiArIGJvdHRvbUNvdW50ZXIpOwogICAgdG9wSW5wdXQuZm9j
dXMoKTsKfSwgZmFsc2UpOwo8L3NjcmlwdD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>65646</attachid>
            <date>2010-08-26 16:35:52 -0700</date>
            <delta_ts>2010-08-26 16:35:52 -0700</delta_ts>
            <desc>[TEST] Automatic Test</desc>
            <filename>layout-test.html</filename>
            <type>text/html</type>
            <size>803</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">PHA+Rm9jdXNpbmcgb24gdGhlIGJvdHRvbSBpbnB1dCB0cmlnZ2VycyB0d28gZm9jdXMgZXZlbnRz
IGZvciBib3RoIGlucHV0cy48L3A+CjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ieCI+PGJyPgo8aW5w
dXQgdHlwZT0idGV4dCIgaWQ9InkiPgo8cHJlIGlkPSJsb2ciPgpFeHBlY3RlZDoKQm90dG9tIElu
cHV0OiBGb2N1cyBFdmVudCAjMQpUb3AgSW5wdXQ6IEZvY3VzIEV2ZW50ICMxCgpBY3R1YWw6Cjwv
cHJlPgoKPHNjcmlwdD4KZnVuY3Rpb24gbG9nKHMpIHsKICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdsb2cnKS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShzKyJcbiIpKTsK
fQoKdmFyIHRvcElucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3gnKTsKdmFyIHRvcENv
dW50ZXIgPSAwOwp2YXIgYm90dG9tSW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgneScp
Owp2YXIgYm90dG9tQ291bnRlciA9IDA7Cgp0b3BJbnB1dC5hZGRFdmVudExpc3RlbmVyKCdmb2N1
cycsIGZ1bmN0aW9uKCkgewogICAgKyt0b3BDb3VudGVyOwogICAgbG9nKCJUb3AgSW5wdXQ6IEZv
Y3VzIEV2ZW50ICMiICsgdG9wQ291bnRlcik7Cn0sIGZhbHNlKTsKCmJvdHRvbUlucHV0LmFkZEV2
ZW50TGlzdGVuZXIoJ2ZvY3VzJywgZnVuY3Rpb24oKSB7CiAgICArK2JvdHRvbUNvdW50ZXI7CiAg
ICBsb2coIkJvdHRvbSBJbnB1dDogRm9jdXMgRXZlbnQgIyIgKyBib3R0b21Db3VudGVyKTsKICAg
IHRvcElucHV0LmZvY3VzKCk7Cn0sIGZhbHNlKTsKCmJvdHRvbUlucHV0LmZvY3VzKCk7Cjwvc2Ny
aXB0Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65776</attachid>
            <date>2010-08-27 15:40:59 -0700</date>
            <delta_ts>2010-08-27 16:09:34 -0700</delta_ts>
            <desc>[PATCH] Respect setFocusedNode return values</desc>
            <filename>duplicate-events.patch</filename>
            <type>text/plain</type>
            <size>6911</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA1MzFiNjhlLi4xZTQ3NjA1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAtMDgt
MjcgIEpvc2VwaCBQZWNvcmFybyAgPGpvZXBlY2tAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFeHRyYSBFdmVudHMgdHJpZ2dlcmVk
IGJ5IDxpbnB1dD4gb24gZm9jdXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTQ0NzMxCisKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9pbnB1dC1mb2N1cy1u
by1kdXBsaWNhdGUtZXZlbnRzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9l
dmVudHMvaW5wdXQtZm9jdXMtbm8tZHVwbGljYXRlLWV2ZW50cy5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2V2ZW50cy9pbnB1dC10YWItZm9jdXMtbm8tZHVwbGljYXRlLWV2ZW50cy1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL2lucHV0LXRhYi1mb2N1cy1u
by1kdXBsaWNhdGUtZXZlbnRzLmh0bWw6IEFkZGVkLgorCiAyMDEwLTA4LTI2ICBEdW1pdHJ1IERh
bmlsaXVjICA8ZHVtaUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgdXBkYXRp
bmcgQ2hyb21pdW0gZXhwZWN0YXRpb25zLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvaW5wdXQtZm9jdXMtbm8tZHVwbGljYXRlLWV2ZW50cy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy9pbnB1dC1mb2N1cy1uby1kdXBsaWNhdGUtZXZlbnRzLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMDEyZjkyCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW5wdXQtZm9jdXMtbm8tZHVw
bGljYXRlLWV2ZW50cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorRm9jdXNpbmcgb24g
dGhlIGJvdHRvbSBpbnB1dCBzaG91bGQgbm90IHRyaWdnZXIgZHVwbGljYXRlIGZvY3VzIGV2ZW50
cyBmb3IgYm90aCBpbnB1dHMuCisKKworCitFeHBlY3RlZDoKK0JvdHRvbSBJbnB1dDogRm9jdXMg
RXZlbnQgIzEKK1RvcCBJbnB1dDogRm9jdXMgRXZlbnQgIzEKKworQWN0dWFsOgorQm90dG9tIElu
cHV0OiBGb2N1cyBFdmVudCAjMQorVG9wIElucHV0OiBGb2N1cyBFdmVudCAjMQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pbnB1dC1mb2N1cy1uby1kdXBsaWNhdGUtZXZl
bnRzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pbnB1dC1mb2N1cy1uby1kdXBsaWNh
dGUtZXZlbnRzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjFjYjZk
OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2lucHV0LWZvY3Vz
LW5vLWR1cGxpY2F0ZS1ldmVudHMuaHRtbApAQCAtMCwwICsxLDM3IEBACis8cD5Gb2N1c2luZyBv
biB0aGUgYm90dG9tIGlucHV0IHNob3VsZCBub3QgdHJpZ2dlciBkdXBsaWNhdGUgZm9jdXMgZXZl
bnRzIGZvciBib3RoIGlucHV0cy48L3A+Cis8aW5wdXQgdHlwZT0idGV4dCIgaWQ9IngiPjxicj4K
KzxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ieSI+Cis8cHJlIGlkPSJsb2ciPgorRXhwZWN0ZWQ6CitC
b3R0b20gSW5wdXQ6IEZvY3VzIEV2ZW50ICMxCitUb3AgSW5wdXQ6IEZvY3VzIEV2ZW50ICMxCisK
K0FjdHVhbDoKKzwvcHJlPgorCis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikKKyAgICB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCitm
dW5jdGlvbiBsb2cocykgeworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsb2cnKS5hcHBl
bmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShzKyJcbiIpKTsKK30KKwordmFyIHRvcElu
cHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3gnKTsKK3ZhciB0b3BDb3VudGVyID0gMDsK
K3ZhciBib3R0b21JbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd5Jyk7Cit2YXIgYm90
dG9tQ291bnRlciA9IDA7CisKK3RvcElucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzJywgZnVu
Y3Rpb24oKSB7CisgICAgKyt0b3BDb3VudGVyOworICAgIGxvZygiVG9wIElucHV0OiBGb2N1cyBF
dmVudCAjIiArIHRvcENvdW50ZXIpOworfSwgZmFsc2UpOworCitib3R0b21JbnB1dC5hZGRFdmVu
dExpc3RlbmVyKCdmb2N1cycsIGZ1bmN0aW9uKCkgeworICAgICsrYm90dG9tQ291bnRlcjsKKyAg
ICBsb2coIkJvdHRvbSBJbnB1dDogRm9jdXMgRXZlbnQgIyIgKyBib3R0b21Db3VudGVyKTsKKyAg
ICB0b3BJbnB1dC5mb2N1cygpOworfSwgZmFsc2UpOworCitib3R0b21JbnB1dC5mb2N1cygpOwor
PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pbnB1dC10YWIt
Zm9jdXMtbm8tZHVwbGljYXRlLWV2ZW50cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy9pbnB1dC10YWItZm9jdXMtbm8tZHVwbGljYXRlLWV2ZW50cy1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWE3M2FlZQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2lucHV0LXRhYi1mb2N1cy1uby1kdXBsaWNh
dGUtZXZlbnRzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACitUYWJiaW5nIGZvY3VzIGlu
dG8gdGhlIGJvdHRvbSBpbnB1dCBzaG91bGQgbm90IHRyaWdnZXIgZHVwbGljYXRlIGZvY3VzIGV2
ZW50cyBmb3IgYm90aCBpbnB1dHMuCisKKworCitFeHBlY3RlZDoKK1RvcCBJbnB1dDogRm9jdXMg
RXZlbnQgIzEKK0JvdHRvbSBJbnB1dDogRm9jdXMgRXZlbnQgIzEKK1RvcCBJbnB1dDogRm9jdXMg
RXZlbnQgIzIKKworQWN0dWFsOgorVG9wIElucHV0OiBGb2N1cyBFdmVudCAjMQorQm90dG9tIElu
cHV0OiBGb2N1cyBFdmVudCAjMQorVG9wIElucHV0OiBGb2N1cyBFdmVudCAjMgorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pbnB1dC10YWItZm9jdXMtbm8tZHVwbGljYXRl
LWV2ZW50cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW5wdXQtdGFiLWZvY3VzLW5v
LWR1cGxpY2F0ZS1ldmVudHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li5kOGNkMmYyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW5w
dXQtdGFiLWZvY3VzLW5vLWR1cGxpY2F0ZS1ldmVudHMuaHRtbApAQCAtMCwwICsxLDQwIEBACis8
cD5UYWJiaW5nIGZvY3VzIGludG8gdGhlIGJvdHRvbSBpbnB1dCBzaG91bGQgbm90IHRyaWdnZXIg
ZHVwbGljYXRlIGZvY3VzIGV2ZW50cyBmb3IgYm90aCBpbnB1dHMuPC9wPgorPGlucHV0IHR5cGU9
InRleHQiIGlkPSJ4Ij48YnI+Cis8aW5wdXQgdHlwZT0idGV4dCIgaWQ9InkiPgorPHByZSBpZD0i
bG9nIj4KK0V4cGVjdGVkOgorVG9wIElucHV0OiBGb2N1cyBFdmVudCAjMQorQm90dG9tIElucHV0
OiBGb2N1cyBFdmVudCAjMQorVG9wIElucHV0OiBGb2N1cyBFdmVudCAjMgorCitBY3R1YWw6Cis8
L3ByZT4KKworPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAg
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworZnVuY3Rpb24gbG9n
KHMpIHsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbG9nJykuYXBwZW5kQ2hpbGQoZG9j
dW1lbnQuY3JlYXRlVGV4dE5vZGUocysiXG4iKSk7Cit9CisKK3ZhciB0b3BJbnB1dCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCd4Jyk7Cit2YXIgdG9wQ291bnRlciA9IDA7Cit2YXIgYm90dG9t
SW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgneScpOwordmFyIGJvdHRvbUNvdW50ZXIg
PSAwOworCit0b3BJbnB1dC5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycsIGZ1bmN0aW9uKCkgewor
ICAgICsrdG9wQ291bnRlcjsKKyAgICBsb2coIlRvcCBJbnB1dDogRm9jdXMgRXZlbnQgIyIgKyB0
b3BDb3VudGVyKTsKK30sIGZhbHNlKTsKKworYm90dG9tSW5wdXQuYWRkRXZlbnRMaXN0ZW5lcign
Zm9jdXMnLCBmdW5jdGlvbigpIHsKKyAgICArK2JvdHRvbUNvdW50ZXI7CisgICAgbG9nKCJCb3R0
b20gSW5wdXQ6IEZvY3VzIEV2ZW50ICMiICsgYm90dG9tQ291bnRlcik7CisgICAgdG9wSW5wdXQu
Zm9jdXMoKTsKK30sIGZhbHNlKTsKKwordG9wSW5wdXQuZm9jdXMoKTsKK2lmICh3aW5kb3cuZXZl
bnRTZW5kZXIpCisgICAgZXZlbnRTZW5kZXIua2V5RG93bignXHQnKTsKKzwvc2NyaXB0PgpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjOWFi
MjM1Li41YjA0YzI1IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3Jl
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEwLTA4LTI3ICBKb3NlcGggUGVjb3Jhcm8g
IDxqb2VwZWNrQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgRXh0cmEgRXZlbnRzIHRyaWdnZXJlZCBieSA8aW5wdXQ+IG9uIGZvY3Vz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NDczMQor
CisgICAgICAgIFRlc3RzOiBmYXN0L2V2ZW50cy9pbnB1dC1mb2N1cy1uby1kdXBsaWNhdGUtZXZl
bnRzLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZXZlbnRzL2lucHV0LXRhYi1mb2N1cy1uby1k
dXBsaWNhdGUtZXZlbnRzLmh0bWwKKworICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmZvY3VzKTogZG8gbm90IGNvbnRpbnVlIGFuZCB1cGRhdGUg
dGhlIGFwcGVhcmFuY2Ugb2YgdGhlIGVsZW1lbnQgaWYgaXQgd2FzIG5vdCBmb2N1c2VkLgorICAg
ICAgICAqIHBhZ2UvRm9jdXNDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvY3Vz
Q29udHJvbGxlcjo6c2V0Rm9jdXNlZE5vZGUpOiByZXNwZWN0IHRoZSByZXR1cm4gdmFsdWUgb2Yg
RG9jdW1lbnQ6OnNldEZvY3VzZWROb2RlLgorCiAyMDEwLTA4LTIzICBNYXJ0aW4gUm9iaW5zb24g
IDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBHdXN0YXZvIE5v
cm9uaGEgU2lsdmEuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1dlYkNv
cmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IDI2YmNhMjMuLmJjZTM4ZDAgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0x
MzEzLDggKzEzMTMsMTEgQEAgdm9pZCBFbGVtZW50Ojpmb2N1cyhib29sIHJlc3RvcmVQcmV2aW91
c1NlbGVjdGlvbikKICAgICBSZWZQdHI8Tm9kZT4gcHJvdGVjdDsKICAgICBpZiAoUGFnZSogcGFn
ZSA9IGRvYy0+cGFnZSgpKSB7CiAgICAgICAgIC8vIEZvY3VzIGFuZCBjaGFuZ2UgZXZlbnQgaGFu
ZGxlcnMgY2FuIGNhdXNlIHVzIHRvIGxvc2Ugb3VyIGxhc3QgcmVmLgorICAgICAgICAvLyBJZiBh
IGZvY3VzIGV2ZW50IGhhbmRsZXIgY2hhbmdlcyB0aGUgZm9jdXMgdG8gYSBkaWZmZXJlbnQgbm9k
ZSBpdAorICAgICAgICAvLyBkb2VzIG5vdCBtYWtlIHNlbnNlIHRvIGNvbnRpbnVlIGFuZCB1cGRh
dGUgYXBwZWFyZW5jZS4KICAgICAgICAgcHJvdGVjdCA9IHRoaXM7Ci0gICAgICAgIHBhZ2UtPmZv
Y3VzQ29udHJvbGxlcigpLT5zZXRGb2N1c2VkTm9kZSh0aGlzLCBkb2MtPmZyYW1lKCkpOworICAg
ICAgICBpZiAoIXBhZ2UtPmZvY3VzQ29udHJvbGxlcigpLT5zZXRGb2N1c2VkTm9kZSh0aGlzLCBk
b2MtPmZyYW1lKCkpKQorICAgICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIC8vIFNldHRp
bmcgdGhlIGZvY3VzZWQgbm9kZSBhYm92ZSBtaWdodCBoYXZlIGludmFsaWRhdGVkIHRoZSBsYXlv
dXQgZHVlIHRvIHNjcmlwdHMuCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9s
bGVyLmNwcCBiL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCmluZGV4IDJjMmM0NDcu
Ljg0OTQyY2UgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCisr
KyBiL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCkBAIC02MjMsOCArNjIzLDExIEBA
IGJvb2wgRm9jdXNDb250cm9sbGVyOjpzZXRGb2N1c2VkTm9kZShOb2RlKiBub2RlLCBQYXNzUmVm
UHRyPEZyYW1lPiBuZXdGb2N1c2VkRnJhCiAKICAgICAvLyBTZXR0aW5nIHRoZSBmb2N1c2VkIG5v
ZGUgY2FuIHJlc3VsdCBpbiBsb3Npbmcgb3VyIGxhc3QgcmVmdCB0byBub2RlIHdoZW4gSlMgZXZl
bnQgaGFuZGxlcnMgZmlyZS4KICAgICBSZWZQdHI8Tm9kZT4gcHJvdGVjdCA9IG5vZGU7Ci0gICAg
aWYgKG5ld0RvY3VtZW50KQotICAgICAgICBuZXdEb2N1bWVudC0+c2V0Rm9jdXNlZE5vZGUobm9k
ZSk7CisgICAgaWYgKG5ld0RvY3VtZW50KSB7CisgICAgICAgIGJvb2wgc3VjY2Vzc2Z1bGx5Rm9j
dXNlZCA9IG5ld0RvY3VtZW50LT5zZXRGb2N1c2VkTm9kZShub2RlKTsKKyAgICAgICAgaWYgKCFz
dWNjZXNzZnVsbHlGb2N1c2VkKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KIAog
ICAgIGlmIChuZXdEb2N1bWVudC0+Zm9jdXNlZE5vZGUoKSA9PSBub2RlKQogICAgICAgICBtX3Bh
Z2UtPmVkaXRvckNsaWVudCgpLT5zZXRJbnB1dE1ldGhvZFN0YXRlKG5vZGUtPnNob3VsZFVzZUlu
cHV0TWV0aG9kKCkpOwo=
</data>
<flag name="review"
          id="54643"
          type_id="1"
          status="+"
          setter="ap"
    />
          </attachment>
      

    </bug>

</bugzilla>