<?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>40029</bug_id>
          
          <creation_ts>2010-06-01 17:15:36 -0700</creation_ts>
          <short_desc>Widgets get 2 notifications (lost focus/got focus) each time focus switches between 2 nodes</short_desc>
          <delta_ts>2010-08-11 11:06:42 -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>WONTFIX</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Jay Civelli">jcivelli</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
    
    <cc>stuartmorgan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>232998</commentid>
    <comment_count>0</comment_count>
    <who name="Jay Civelli">jcivelli</who>
    <bug_when>2010-06-01 17:15:36 -0700</bug_when>
    <thetext>Each time the focus moves between 2 nodes in the same widget, the widget gets a setFocus(false) and then setFocus(true) calls.
It should not get any notification that the focus changed in that case (note it still gets the focusedNodeChanged notification on the Page Chrome).

Note:
This happens in Document.cpp in Document::setFocusedNode()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>233000</commentid>
    <comment_count>1</comment_count>
      <attachid>57605</attachid>
    <who name="Jay Civelli">jcivelli</who>
    <bug_when>2010-06-01 17:20:09 -0700</bug_when>
    <thetext>Created attachment 57605
First version of the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>233316</commentid>
    <comment_count>2</comment_count>
      <attachid>57665</attachid>
    <who name="Jay Civelli">jcivelli</who>
    <bug_when>2010-06-02 10:25:15 -0700</bug_when>
    <thetext>Created attachment 57665
Remove extra space</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>233321</commentid>
    <comment_count>3</comment_count>
    <who name="Stuart Morgan">stuartmorgan</who>
    <bug_when>2010-06-02 10:37:54 -0700</bug_when>
    <thetext>(drive-by, since I&apos;m not actually a reviewer)

Isn&apos;t this introducing ordering problems? There are a lot of focus-related calls that happen in the main |if (newFocusedNode)| block, which used to happen after the setFocus(false) (which seems logical), but would now happen before it (which doesn&apos;t).

Granted the setFocus(false) call is new, and this may well not break anything that currently exists, but it seems like it could lead to weird and hard-to-find problems later if people do start using it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>233349</commentid>
    <comment_count>4</comment_count>
      <attachid>57670</attachid>
    <who name="Jay Civelli">jcivelli</who>
    <bug_when>2010-06-02 11:18:15 -0700</bug_when>
    <thetext>Created attachment 57670
Addressing Stuart&apos;s comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>233351</commentid>
    <comment_count>5</comment_count>
    <who name="Jay Civelli">jcivelli</who>
    <bug_when>2010-06-02 11:19:30 -0700</bug_when>
    <thetext>@Stuart

Good point.
I tried to address the ordering problem in the new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>233416</commentid>
    <comment_count>6</comment_count>
      <attachid>57670</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-06-02 13:29:45 -0700</bug_when>
    <thetext>Comment on attachment 57670
Addressing Stuart&apos;s comments.

Is this a problem for other WebKit-based browsers?

This bug doesn&apos;t describe when this can happen - I suspect it&apos;s with subframes, but that&apos;s only a guess.

Please add a regression test, or an explanation of why one can&apos;t be added.

r- for lack of regression test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>233419</commentid>
    <comment_count>7</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-06-02 13:32:07 -0700</bug_when>
    <thetext>See also: bug 33512, bug 28913, bug 12262, bug 20387, bug 18759.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>235060</commentid>
    <comment_count>8</comment_count>
    <who name="Jay Civelli">jcivelli</who>
    <bug_when>2010-06-07 16:04:58 -0700</bug_when>
    <thetext>@Alexey
The problem is that the embedder code will get the spurious focus notifications, not the page. For that reason I don&apos;t think I can provide a layout test for this.

I see that in Chromium, the Widget::setFocus() implementation gets called with false and then true every time the focus moves from one node to the next.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>235302</commentid>
    <comment_count>9</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-06-08 10:07:27 -0700</bug_when>
    <thetext>DumpRenderTree can dump many sorts of callbacks already. I suspect that layoutTestController.dumpEditingCallbacks() may do what you need - but if it doesn&apos;t, the way to proceed is to add a new logging delegate implementation.

Does your fix affect any of the bugs I mentioned in comment 7?

You didn&apos;t answer whether this affects other WebKit ports. If this is a Chromium-only problem, it&apos;s of course surprising that you needed to change common code to fix it. Someone will have to explain why that&apos;s necessary. You can just say that you don&apos;t know, and then it will be reviewer&apos;s job, but that will make the patch more difficult to review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236066</commentid>
    <comment_count>10</comment_count>
    <who name="Jay Civelli">jcivelli</who>
    <bug_when>2010-06-09 15:57:11 -0700</bug_when>
    <thetext>I don&apos;t know of a way to surface focus events on the Widget to the  LayoutTestController (since these calls implementation are port specific) . dumpEditingCallbacks does not do it.

Since Widget::setFocus() is implemented by each port (in WebCore/platform), this change does affect all ports.

I tested all the bugs you reported in comment 7, this change does not fix any of them. It just prevents the embedder port from getting extra focus notifications.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>263344</commentid>
    <comment_count>11</comment_count>
    <who name="Jay Civelli">jcivelli</who>
    <bug_when>2010-08-11 11:06:42 -0700</bug_when>
    <thetext>I found a different way to address the issue I was trying to address with this patch, so this is now obsolete.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>57605</attachid>
            <date>2010-06-01 17:20:09 -0700</date>
            <delta_ts>2010-06-02 10:25:15 -0700</delta_ts>
            <desc>First version of the patch</desc>
            <filename>set_focus.patch</filename>
            <type>text/plain</type>
            <size>6010</size>
            <attacher name="Jay Civelli">jcivelli</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViQ29yZS9DaGFuZ2VM
b2cJKHJldmlzaW9uIDYwNTE0KQorKysgV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSwxOCBAQAorMjAxMC0wNi0wMSAgSmF5IENpdmVsbGkgIDxqY2l2ZWxsaUBjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgRG9uJ3Qgbm90aWZ5IFdpZGdldHMgdGhhdCB0aGV5IGxvc3QgYW5kIGdvdCBmb2N1cyB3aGVu
IGZvY3VzCisgICAgICAgIG1vdmVzIGZyb20gb25lIG5vZGUgdG8gYW5vdGhlciBpbiB0aGUgc2Ft
ZSB3aWRnZXQuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTQwMDI5CisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RG9jdW1lbnQ6OnNldEZvY3VzZWROb2RlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1
bS9DaHJvbWl1bUJyaWRnZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1dpZGdldENo
cm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldpZGdldDo6c2V0Rm9jdXMpOgorCiAyMDEw
LTA1LTI0ICBKYW1lcyBIYXdraW5zICA8amhhd2tpbnNAY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IERhcmluIEZpc2hlci4KSW5kZXg6IFdlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQ0KLS0tIFdlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAkocmV2aXNpb24gNjA0
ODApCisrKyBXZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4NDYs
NiArMjg0Niw4IEBAIGJvb2wgRG9jdW1lbnQ6OnNldEZvY3VzZWROb2RlKFBhc3NSZWZQdHIKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgYm9vbCBmb2N1c0NoYW5nZUJsb2NrZWQgPSBmYWxz
ZTsKKyAgICBib29sIG5vdGlmeU9sZFdpZGdldExvc3RGb2N1cyA9IGZhbHNlOworICAgIGJvb2wg
bm90aWZ5TmV3V2lkZ2V0R290Rm9jdXMgPSBmYWxzZTsKICAgICBSZWZQdHI8Tm9kZT4gb2xkRm9j
dXNlZE5vZGUgPSBtX2ZvY3VzZWROb2RlOwogICAgIG1fZm9jdXNlZE5vZGUgPSAwOwogCkBAIC0y
ODg3LDEzICsyODg5LDcgQEAgYm9vbCBEb2N1bWVudDo6c2V0Rm9jdXNlZE5vZGUoUGFzc1JlZlB0
cgogICAgICAgICBpZiAob2xkRm9jdXNlZE5vZGUgPT0gb2xkRm9jdXNlZE5vZGUtPnJvb3RFZGl0
YWJsZUVsZW1lbnQoKSkKICAgICAgICAgICAgIGZyYW1lKCktPmVkaXRvcigpLT5kaWRFbmRFZGl0
aW5nKCk7CiAKLSAgICAgICAgaWYgKHZpZXcoKSkgewotICAgICAgICAgICAgV2lkZ2V0KiBvbGRX
aWRnZXQgPSB3aWRnZXRGb3JOb2RlKG9sZEZvY3VzZWROb2RlLmdldCgpKTsKLSAgICAgICAgICAg
IGlmIChvbGRXaWRnZXQpCi0gICAgICAgICAgICAgICAgb2xkV2lkZ2V0LT5zZXRGb2N1cyhmYWxz
ZSk7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgdmlldygpLT5zZXRGb2N1cyhm
YWxzZSk7Ci0gICAgICAgIH0KKyAgICAgICAgbm90aWZ5T2xkV2lkZ2V0TG9zdEZvY3VzID0gdHJ1
ZTsKICAgICB9CiAKICAgICBpZiAobmV3Rm9jdXNlZE5vZGUpIHsKQEAgLTI5MjYsMTAgKzI5MjIs
MjkgQEAgYm9vbCBEb2N1bWVudDo6c2V0Rm9jdXNlZE5vZGUoUGFzc1JlZlB0cgogICAgICAgICBp
ZiAobV9mb2N1c2VkTm9kZSA9PSBtX2ZvY3VzZWROb2RlLT5yb290RWRpdGFibGVFbGVtZW50KCkp
CiAgICAgICAgICAgICBmcmFtZSgpLT5lZGl0b3IoKS0+ZGlkQmVnaW5FZGl0aW5nKCk7CiAKLSAg
ICAgICAgLy8gZXd3LCBJIHN1Y2suIHNldCB0aGUgcXQgZm9jdXMgY29ycmVjdGx5Ci0gICAgICAg
IC8vICMjIyBmaW5kIGEgYmV0dGVyIHBsYWNlIGluIHRoZSBjb2RlIGZvciB0aGlzCi0gICAgICAg
IGlmICh2aWV3KCkpIHsKLSAgICAgICAgICAgIFdpZGdldCAqZm9jdXNXaWRnZXQgPSB3aWRnZXRG
b3JOb2RlKG1fZm9jdXNlZE5vZGUuZ2V0KCkpOworICAgICAgICBub3RpZnlOZXdXaWRnZXRHb3RG
b2N1cyA9IHRydWU7CisgICAgfQorCisgICAgLy8gTm90aWZ5IHRoZSB3aWRnZXRzIGZvciB0aGUg
bm9kZXMgdGhhdCBsb3N0L2dvdCBmb2N1cy4KKyAgICBpZiAodmlldygpICYmIChub3RpZnlPbGRX
aWRnZXRMb3N0Rm9jdXMgfHwgbm90aWZ5TmV3V2lkZ2V0R290Rm9jdXMpKSB7CisgICAgICAgIFdp
ZGdldCogb2xkV2lkZ2V0ID0gd2lkZ2V0Rm9yTm9kZShvbGRGb2N1c2VkTm9kZS5nZXQoKSk7Cisg
ICAgICAgIGlmICghb2xkV2lkZ2V0KQorICAgICAgICAgICAgb2xkV2lkZ2V0ID0gdmlldygpOwor
ICAgICAgICBXaWRnZXQqIG5ld1dpZGdldCA9IHdpZGdldEZvck5vZGUobV9mb2N1c2VkTm9kZS5n
ZXQoKSk7CisgICAgICAgIGlmICghbmV3V2lkZ2V0KQorICAgICAgICAgICAgbmV3V2lkZ2V0ID0g
dmlldygpOworCisgICAgICAgIC8vIE5vIG5lZWQgdG8gbm90aWZ5IHRoYXQgdGhlIGZvY3VzIHdh
cyBsb3N0L3NldCBpZiB0aGUgbm9kZXMgYmVsb25nIHRvCisgICAgICAgIC8vIHRoZSBzYW1lIHdp
ZGdldC4KKyAgICAgICAgaWYgKG5vdGlmeU9sZFdpZGdldExvc3RGb2N1cyAmJiBub3RpZnlOZXdX
aWRnZXRHb3RGb2N1cyAmJiBvbGRXaWRnZXQgPT0gbmV3V2lkZ2V0KSB7CisgICAgICAgICAgICBu
b3RpZnlPbGRXaWRnZXRMb3N0Rm9jdXMgPSBmYWxzZTsKKyAgICAgICAgICAgIG5vdGlmeU5ld1dp
ZGdldEdvdEZvY3VzID0gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChu
b3RpZnlPbGRXaWRnZXRMb3N0Rm9jdXMpCisgICAgICAgICAgICBvbGRXaWRnZXQtPnNldEZvY3Vz
KGZhbHNlKTsKKyAgICAgICAgaWYgKG5vdGlmeU5ld1dpZGdldEdvdEZvY3VzKSB7CisgICAgICAg
ICAgICBXaWRnZXQqIGZvY3VzV2lkZ2V0ID0gd2lkZ2V0Rm9yTm9kZShtX2ZvY3VzZWROb2RlLmdl
dCgpKTsKICAgICAgICAgICAgIGlmIChmb2N1c1dpZGdldCkgewogICAgICAgICAgICAgICAgIC8v
IE1ha2Ugc3VyZSBhIHdpZGdldCBoYXMgdGhlIHJpZ2h0IHNpemUgYmVmb3JlIGdpdmluZyBpdCBm
b2N1cy4KICAgICAgICAgICAgICAgICAvLyBPdGhlcndpc2UsIHdlIGFyZSB0ZXN0aW5nIGVkZ2Ug
Y2FzZXMgb2YgdGhlIFdpZGdldCBjb2RlLgpAQCAtMjk0Miw3ICsyOTU3LDcgQEAgYm9vbCBEb2N1
bWVudDo6c2V0Rm9jdXNlZE5vZGUoUGFzc1JlZlB0cgogICAgICAgICAgICAgICAgIGZvY3VzV2lk
Z2V0LT5zZXRGb2N1cyh0cnVlKTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICB2
aWV3KCktPnNldEZvY3VzKHRydWUpOwotICAgICAgICB9CisgICAgICAgIH0gICAgICAKICAgICB9
CiAKICNpZiAoKFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oV0lOKSkgJiYgIVBMQVRGT1JNKENI
Uk9NSVVNKSkgfHwgUExBVEZPUk0oR1RLKQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1
bS9DaHJvbWl1bUJyaWRnZS5oDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9jaHJv
bWl1bS9DaHJvbWl1bUJyaWRnZS5oCShyZXZpc2lvbiA2MDQ4MCkKKysrIFdlYkNvcmUvcGxhdGZv
cm0vY2hyb21pdW0vQ2hyb21pdW1CcmlkZ2UuaAkod29ya2luZyBjb3B5KQpAQCAtMjM5LDcgKzIz
OSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICAvLyBXaWRnZXQgLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAg
ICAgICBzdGF0aWMgdm9pZCB3aWRnZXRTZXRDdXJzb3IoV2lkZ2V0KiwgY29uc3QgQ3Vyc29yJik7
Ci0gICAgICAgIHN0YXRpYyB2b2lkIHdpZGdldFNldEZvY3VzKFdpZGdldCopOworICAgICAgICBz
dGF0aWMgdm9pZCB3aWRnZXRTZXRGb2N1cyhXaWRnZXQqLCBib29sIGZvY3VzZWQpOwogICAgIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vY2hyb21p
dW0vV2lkZ2V0Q2hyb21pdW0uY3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9j
aHJvbWl1bS9XaWRnZXRDaHJvbWl1bS5jcHAJKHJldmlzaW9uIDYwNDgwKQorKysgV2ViQ29yZS9w
bGF0Zm9ybS9jaHJvbWl1bS9XaWRnZXRDaHJvbWl1bS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY1
LDggKzY1LDcgQEAgdm9pZCBXaWRnZXQ6OnBhaW50KEdyYXBoaWNzQ29udGV4dCosIGNvbgogCiB2
b2lkIFdpZGdldDo6c2V0Rm9jdXMoYm9vbCBmb2N1c2VkKQogewotICAgIGlmIChmb2N1c2VkKQot
ICAgICAgICBDaHJvbWl1bUJyaWRnZTo6d2lkZ2V0U2V0Rm9jdXModGhpcyk7CisgICAgQ2hyb21p
dW1CcmlkZ2U6OndpZGdldFNldEZvY3VzKHRoaXMsIGZvY3VzZWQpOwogfQogCiB2b2lkIFdpZGdl
dDo6c2V0SXNTZWxlY3RlZChib29sKQpJbmRleDogV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZw0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQ0KLS0tIFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHJldmlzaW9uIDYwNTE0
KQorKysgV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDEyIEBACisyMDEwLTA2LTAxICBKYXkgQ2l2ZWxsaSAgPGpjaXZlbGxpQGNocm9taXVtLm9yZz4K
KworICAgICAgICBEb24ndCBub3RpZnkgV2lkZ2V0cyB0aGF0IHRoZXkgbG9zdCBhbmQgZ290IGZv
Y3VzIHdoZW4gZm9jdXMKKyAgICAgICAgbW92ZXMgZnJvbSBvbmUgbm9kZSB0byBhbm90aGVyIGlu
IHRoZSBzYW1lIHdpZGdldC4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NDAwMjkKKyAgICAgICAgKiBzcmMvQ2hyb21pdW1CcmlkZ2UuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q2hyb21pdW1CcmlkZ2U6OndpZGdldFNldEZvY3VzKToKKwogMjAxMC0w
NS0yNCAgSmFtZXMgSGF3a2lucyAgPGpoYXdraW5zQGNocm9taXVtLm9yZz4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBEYXJpbiBGaXNoZXIuCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9t
aXVtQnJpZGdlLmNwcA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21p
dW1CcmlkZ2UuY3BwCShyZXZpc2lvbiA2MDQ4MCkKKysrIFdlYktpdC9jaHJvbWl1bS9zcmMvQ2hy
b21pdW1CcmlkZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03OTgsMTEgKzc5OCwxNiBAQCB2b2lk
IENocm9taXVtQnJpZGdlOjp3aWRnZXRTZXRDdXJzb3IoV2lkCiAgICAgICAgIGNsaWVudC0+c2V0
Q3Vyc29yKFdlYkN1cnNvckluZm8oY3Vyc29yKSk7CiB9CiAKLXZvaWQgQ2hyb21pdW1CcmlkZ2U6
OndpZGdldFNldEZvY3VzKFdpZGdldCogd2lkZ2V0KQordm9pZCBDaHJvbWl1bUJyaWRnZTo6d2lk
Z2V0U2V0Rm9jdXMoV2lkZ2V0KiB3aWRnZXQsIGJvb2wgZm9jdXNlZCkKIHsKICAgICBDaHJvbWVD
bGllbnRJbXBsKiBjbGllbnQgPSB0b0Nocm9tZUNsaWVudEltcGwod2lkZ2V0KTsKLSAgICBpZiAo
Y2xpZW50KQorICAgIGlmICghY2xpZW50KQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoZm9j
dXNlZCkKICAgICAgICAgY2xpZW50LT5mb2N1cygpOworICAgIGVsc2UKKyAgICAgICAgY2xpZW50
LT51bmZvY3VzKCk7CiB9CiAKIFdvcmtlckNvbnRleHRQcm94eSogV29ya2VyQ29udGV4dFByb3h5
OjpjcmVhdGUoV29ya2VyKiB3b3JrZXIpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>57665</attachid>
            <date>2010-06-02 10:25:15 -0700</date>
            <delta_ts>2010-06-02 13:22:19 -0700</delta_ts>
            <desc>Remove extra space</desc>
            <filename>set_focus.patch</filename>
            <type>text/plain</type>
            <size>5725</size>
            <attacher name="Jay Civelli">jcivelli</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViQ29yZS9DaGFuZ2VM
b2cJKHJldmlzaW9uIDYwNTE0KQorKysgV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSwxOCBAQAorMjAxMC0wNi0wMSAgSmF5IENpdmVsbGkgIDxqY2l2ZWxsaUBjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgRG9uJ3Qgbm90aWZ5IFdpZGdldHMgdGhhdCB0aGV5IGxvc3QgYW5kIGdvdCBmb2N1cyB3aGVu
IGZvY3VzCisgICAgICAgIG1vdmVzIGZyb20gb25lIG5vZGUgdG8gYW5vdGhlciBpbiB0aGUgc2Ft
ZSB3aWRnZXQuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTQwMDI5CisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RG9jdW1lbnQ6OnNldEZvY3VzZWROb2RlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1
bS9DaHJvbWl1bUJyaWRnZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1dpZGdldENo
cm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldpZGdldDo6c2V0Rm9jdXMpOgorCiAyMDEw
LTA1LTI0ICBKYW1lcyBIYXdraW5zICA8amhhd2tpbnNAY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IERhcmluIEZpc2hlci4KSW5kZXg6IFdlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQ0KLS0tIFdlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAkocmV2aXNpb24gNjA0
ODApCisrKyBXZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4NDYs
NiArMjg0Niw4IEBAIGJvb2wgRG9jdW1lbnQ6OnNldEZvY3VzZWROb2RlKFBhc3NSZWZQdHIKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgYm9vbCBmb2N1c0NoYW5nZUJsb2NrZWQgPSBmYWxz
ZTsKKyAgICBib29sIG5vdGlmeU9sZFdpZGdldExvc3RGb2N1cyA9IGZhbHNlOworICAgIGJvb2wg
bm90aWZ5TmV3V2lkZ2V0R290Rm9jdXMgPSBmYWxzZTsKICAgICBSZWZQdHI8Tm9kZT4gb2xkRm9j
dXNlZE5vZGUgPSBtX2ZvY3VzZWROb2RlOwogICAgIG1fZm9jdXNlZE5vZGUgPSAwOwogCkBAIC0y
ODg3LDEzICsyODg5LDcgQEAgYm9vbCBEb2N1bWVudDo6c2V0Rm9jdXNlZE5vZGUoUGFzc1JlZlB0
cgogICAgICAgICBpZiAob2xkRm9jdXNlZE5vZGUgPT0gb2xkRm9jdXNlZE5vZGUtPnJvb3RFZGl0
YWJsZUVsZW1lbnQoKSkKICAgICAgICAgICAgIGZyYW1lKCktPmVkaXRvcigpLT5kaWRFbmRFZGl0
aW5nKCk7CiAKLSAgICAgICAgaWYgKHZpZXcoKSkgewotICAgICAgICAgICAgV2lkZ2V0KiBvbGRX
aWRnZXQgPSB3aWRnZXRGb3JOb2RlKG9sZEZvY3VzZWROb2RlLmdldCgpKTsKLSAgICAgICAgICAg
IGlmIChvbGRXaWRnZXQpCi0gICAgICAgICAgICAgICAgb2xkV2lkZ2V0LT5zZXRGb2N1cyhmYWxz
ZSk7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgdmlldygpLT5zZXRGb2N1cyhm
YWxzZSk7Ci0gICAgICAgIH0KKyAgICAgICAgbm90aWZ5T2xkV2lkZ2V0TG9zdEZvY3VzID0gdHJ1
ZTsKICAgICB9CiAKICAgICBpZiAobmV3Rm9jdXNlZE5vZGUpIHsKQEAgLTI5MjYsMTAgKzI5MjIs
MjkgQEAgYm9vbCBEb2N1bWVudDo6c2V0Rm9jdXNlZE5vZGUoUGFzc1JlZlB0cgogICAgICAgICBp
ZiAobV9mb2N1c2VkTm9kZSA9PSBtX2ZvY3VzZWROb2RlLT5yb290RWRpdGFibGVFbGVtZW50KCkp
CiAgICAgICAgICAgICBmcmFtZSgpLT5lZGl0b3IoKS0+ZGlkQmVnaW5FZGl0aW5nKCk7CiAKLSAg
ICAgICAgLy8gZXd3LCBJIHN1Y2suIHNldCB0aGUgcXQgZm9jdXMgY29ycmVjdGx5Ci0gICAgICAg
IC8vICMjIyBmaW5kIGEgYmV0dGVyIHBsYWNlIGluIHRoZSBjb2RlIGZvciB0aGlzCi0gICAgICAg
IGlmICh2aWV3KCkpIHsKLSAgICAgICAgICAgIFdpZGdldCAqZm9jdXNXaWRnZXQgPSB3aWRnZXRG
b3JOb2RlKG1fZm9jdXNlZE5vZGUuZ2V0KCkpOworICAgICAgICBub3RpZnlOZXdXaWRnZXRHb3RG
b2N1cyA9IHRydWU7CisgICAgfQorCisgICAgLy8gTm90aWZ5IHRoZSB3aWRnZXRzIGZvciB0aGUg
bm9kZXMgdGhhdCBsb3N0L2dvdCBmb2N1cy4KKyAgICBpZiAodmlldygpICYmIChub3RpZnlPbGRX
aWRnZXRMb3N0Rm9jdXMgfHwgbm90aWZ5TmV3V2lkZ2V0R290Rm9jdXMpKSB7CisgICAgICAgIFdp
ZGdldCogb2xkV2lkZ2V0ID0gd2lkZ2V0Rm9yTm9kZShvbGRGb2N1c2VkTm9kZS5nZXQoKSk7Cisg
ICAgICAgIGlmICghb2xkV2lkZ2V0KQorICAgICAgICAgICAgb2xkV2lkZ2V0ID0gdmlldygpOwor
ICAgICAgICBXaWRnZXQqIG5ld1dpZGdldCA9IHdpZGdldEZvck5vZGUobV9mb2N1c2VkTm9kZS5n
ZXQoKSk7CisgICAgICAgIGlmICghbmV3V2lkZ2V0KQorICAgICAgICAgICAgbmV3V2lkZ2V0ID0g
dmlldygpOworCisgICAgICAgIC8vIE5vIG5lZWQgdG8gbm90aWZ5IHRoYXQgdGhlIGZvY3VzIHdh
cyBsb3N0L3NldCBpZiB0aGUgbm9kZXMgYmVsb25nIHRvCisgICAgICAgIC8vIHRoZSBzYW1lIHdp
ZGdldC4KKyAgICAgICAgaWYgKG5vdGlmeU9sZFdpZGdldExvc3RGb2N1cyAmJiBub3RpZnlOZXdX
aWRnZXRHb3RGb2N1cyAmJiBvbGRXaWRnZXQgPT0gbmV3V2lkZ2V0KSB7CisgICAgICAgICAgICBu
b3RpZnlPbGRXaWRnZXRMb3N0Rm9jdXMgPSBmYWxzZTsKKyAgICAgICAgICAgIG5vdGlmeU5ld1dp
ZGdldEdvdEZvY3VzID0gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChu
b3RpZnlPbGRXaWRnZXRMb3N0Rm9jdXMpCisgICAgICAgICAgICBvbGRXaWRnZXQtPnNldEZvY3Vz
KGZhbHNlKTsKKyAgICAgICAgaWYgKG5vdGlmeU5ld1dpZGdldEdvdEZvY3VzKSB7CisgICAgICAg
ICAgICBXaWRnZXQqIGZvY3VzV2lkZ2V0ID0gd2lkZ2V0Rm9yTm9kZShtX2ZvY3VzZWROb2RlLmdl
dCgpKTsKICAgICAgICAgICAgIGlmIChmb2N1c1dpZGdldCkgewogICAgICAgICAgICAgICAgIC8v
IE1ha2Ugc3VyZSBhIHdpZGdldCBoYXMgdGhlIHJpZ2h0IHNpemUgYmVmb3JlIGdpdmluZyBpdCBm
b2N1cy4KICAgICAgICAgICAgICAgICAvLyBPdGhlcndpc2UsIHdlIGFyZSB0ZXN0aW5nIGVkZ2Ug
Y2FzZXMgb2YgdGhlIFdpZGdldCBjb2RlLgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1
bS9DaHJvbWl1bUJyaWRnZS5oDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9jaHJv
bWl1bS9DaHJvbWl1bUJyaWRnZS5oCShyZXZpc2lvbiA2MDQ4MCkKKysrIFdlYkNvcmUvcGxhdGZv
cm0vY2hyb21pdW0vQ2hyb21pdW1CcmlkZ2UuaAkod29ya2luZyBjb3B5KQpAQCAtMjM5LDcgKzIz
OSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICAvLyBXaWRnZXQgLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAg
ICAgICBzdGF0aWMgdm9pZCB3aWRnZXRTZXRDdXJzb3IoV2lkZ2V0KiwgY29uc3QgQ3Vyc29yJik7
Ci0gICAgICAgIHN0YXRpYyB2b2lkIHdpZGdldFNldEZvY3VzKFdpZGdldCopOworICAgICAgICBz
dGF0aWMgdm9pZCB3aWRnZXRTZXRGb2N1cyhXaWRnZXQqLCBib29sIGZvY3VzZWQpOwogICAgIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vY2hyb21p
dW0vV2lkZ2V0Q2hyb21pdW0uY3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9j
aHJvbWl1bS9XaWRnZXRDaHJvbWl1bS5jcHAJKHJldmlzaW9uIDYwNDgwKQorKysgV2ViQ29yZS9w
bGF0Zm9ybS9jaHJvbWl1bS9XaWRnZXRDaHJvbWl1bS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY1
LDggKzY1LDcgQEAgdm9pZCBXaWRnZXQ6OnBhaW50KEdyYXBoaWNzQ29udGV4dCosIGNvbgogCiB2
b2lkIFdpZGdldDo6c2V0Rm9jdXMoYm9vbCBmb2N1c2VkKQogewotICAgIGlmIChmb2N1c2VkKQot
ICAgICAgICBDaHJvbWl1bUJyaWRnZTo6d2lkZ2V0U2V0Rm9jdXModGhpcyk7CisgICAgQ2hyb21p
dW1CcmlkZ2U6OndpZGdldFNldEZvY3VzKHRoaXMsIGZvY3VzZWQpOwogfQogCiB2b2lkIFdpZGdl
dDo6c2V0SXNTZWxlY3RlZChib29sKQpJbmRleDogV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZw0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQ0KLS0tIFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHJldmlzaW9uIDYwNTE0
KQorKysgV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDEyIEBACisyMDEwLTA2LTAxICBKYXkgQ2l2ZWxsaSAgPGpjaXZlbGxpQGNocm9taXVtLm9yZz4K
KworICAgICAgICBEb24ndCBub3RpZnkgV2lkZ2V0cyB0aGF0IHRoZXkgbG9zdCBhbmQgZ290IGZv
Y3VzIHdoZW4gZm9jdXMKKyAgICAgICAgbW92ZXMgZnJvbSBvbmUgbm9kZSB0byBhbm90aGVyIGlu
IHRoZSBzYW1lIHdpZGdldC4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NDAwMjkKKyAgICAgICAgKiBzcmMvQ2hyb21pdW1CcmlkZ2UuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q2hyb21pdW1CcmlkZ2U6OndpZGdldFNldEZvY3VzKToKKwogMjAxMC0w
NS0yNCAgSmFtZXMgSGF3a2lucyAgPGpoYXdraW5zQGNocm9taXVtLm9yZz4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBEYXJpbiBGaXNoZXIuCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9t
aXVtQnJpZGdlLmNwcA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21p
dW1CcmlkZ2UuY3BwCShyZXZpc2lvbiA2MDQ4MCkKKysrIFdlYktpdC9jaHJvbWl1bS9zcmMvQ2hy
b21pdW1CcmlkZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03OTgsMTEgKzc5OCwxNiBAQCB2b2lk
IENocm9taXVtQnJpZGdlOjp3aWRnZXRTZXRDdXJzb3IoV2lkCiAgICAgICAgIGNsaWVudC0+c2V0
Q3Vyc29yKFdlYkN1cnNvckluZm8oY3Vyc29yKSk7CiB9CiAKLXZvaWQgQ2hyb21pdW1CcmlkZ2U6
OndpZGdldFNldEZvY3VzKFdpZGdldCogd2lkZ2V0KQordm9pZCBDaHJvbWl1bUJyaWRnZTo6d2lk
Z2V0U2V0Rm9jdXMoV2lkZ2V0KiB3aWRnZXQsIGJvb2wgZm9jdXNlZCkKIHsKICAgICBDaHJvbWVD
bGllbnRJbXBsKiBjbGllbnQgPSB0b0Nocm9tZUNsaWVudEltcGwod2lkZ2V0KTsKLSAgICBpZiAo
Y2xpZW50KQorICAgIGlmICghY2xpZW50KQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoZm9j
dXNlZCkKICAgICAgICAgY2xpZW50LT5mb2N1cygpOworICAgIGVsc2UKKyAgICAgICAgY2xpZW50
LT51bmZvY3VzKCk7CiB9CiAKIFdvcmtlckNvbnRleHRQcm94eSogV29ya2VyQ29udGV4dFByb3h5
OjpjcmVhdGUoV29ya2VyKiB3b3JrZXIpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>57670</attachid>
            <date>2010-06-02 11:18:15 -0700</date>
            <delta_ts>2010-06-11 15:31:47 -0700</delta_ts>
            <desc>Addressing Stuart&apos;s comments.</desc>
            <filename>set_focus.patch</filename>
            <type>text/plain</type>
            <size>6204</size>
            <attacher name="Jay Civelli">jcivelli</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViQ29yZS9DaGFuZ2VM
b2cJKHJldmlzaW9uIDYwNTE0KQorKysgV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSwxOCBAQAorMjAxMC0wNi0wMSAgSmF5IENpdmVsbGkgIDxqY2l2ZWxsaUBjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgRG9uJ3Qgbm90aWZ5IFdpZGdldHMgdGhhdCB0aGV5IGxvc3QgYW5kIGdvdCBmb2N1cyB3aGVu
IGZvY3VzCisgICAgICAgIG1vdmVzIGZyb20gb25lIG5vZGUgdG8gYW5vdGhlciBpbiB0aGUgc2Ft
ZSB3aWRnZXQuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTQwMDI5CisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RG9jdW1lbnQ6OnNldEZvY3VzZWROb2RlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1
bS9DaHJvbWl1bUJyaWRnZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1dpZGdldENo
cm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldpZGdldDo6c2V0Rm9jdXMpOgorCiAyMDEw
LTA1LTI0ICBKYW1lcyBIYXdraW5zICA8amhhd2tpbnNAY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IERhcmluIEZpc2hlci4KSW5kZXg6IFdlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQ0KLS0tIFdlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAkocmV2aXNpb24gNjA0
ODApCisrKyBXZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4NDks
NiArMjg0OSwxNSBAQCBib29sIERvY3VtZW50OjpzZXRGb2N1c2VkTm9kZShQYXNzUmVmUHRyCiAg
ICAgUmVmUHRyPE5vZGU+IG9sZEZvY3VzZWROb2RlID0gbV9mb2N1c2VkTm9kZTsKICAgICBtX2Zv
Y3VzZWROb2RlID0gMDsKIAorICAgIC8vIEdldCB0aGUgV2lkZ2V0IGFzc29jaWF0ZWQgd2l0aCB0
aGUgb2xkIGFuZCBuZXcgbm9kZSBzbyB0aGV5IGNhbiBiZSBub3RpZmllZAorICAgIC8vIHRoZXkg
bG9zdC9nb3QgZm9jdXMuCisgICAgV2lkZ2V0KiBvbGRXaWRnZXQgPSB3aWRnZXRGb3JOb2RlKG9s
ZEZvY3VzZWROb2RlLmdldCgpKTsKKyAgICBpZiAoIW9sZFdpZGdldCAmJiBvbGRGb2N1c2VkTm9k
ZSkKKyAgICAgICAgb2xkV2lkZ2V0ID0gdmlldygpOworICAgIFdpZGdldCogbmV3V2lkZ2V0ID0g
d2lkZ2V0Rm9yTm9kZShuZXdGb2N1c2VkTm9kZS5nZXQoKSk7CisgICAgaWYgKCFuZXdXaWRnZXQg
JiYgbmV3Rm9jdXNlZE5vZGUpCisgICAgICAgIG5ld1dpZGdldCA9IHZpZXcoKTsKKwogICAgIC8v
IFJlbW92ZSBmb2N1cyBmcm9tIHRoZSBleGlzdGluZyBmb2N1cyBub2RlIChpZiBhbnkpCiAgICAg
aWYgKG9sZEZvY3VzZWROb2RlICYmICFvbGRGb2N1c2VkTm9kZS0+aW5EZXRhY2goKSkgeyAKICAg
ICAgICAgaWYgKG9sZEZvY3VzZWROb2RlLT5hY3RpdmUoKSkKQEAgLTI4ODcsMTMgKzI4OTYsOCBA
QCBib29sIERvY3VtZW50OjpzZXRGb2N1c2VkTm9kZShQYXNzUmVmUHRyCiAgICAgICAgIGlmIChv
bGRGb2N1c2VkTm9kZSA9PSBvbGRGb2N1c2VkTm9kZS0+cm9vdEVkaXRhYmxlRWxlbWVudCgpKQog
ICAgICAgICAgICAgZnJhbWUoKS0+ZWRpdG9yKCktPmRpZEVuZEVkaXRpbmcoKTsKIAotICAgICAg
ICBpZiAodmlldygpKSB7Ci0gICAgICAgICAgICBXaWRnZXQqIG9sZFdpZGdldCA9IHdpZGdldEZv
ck5vZGUob2xkRm9jdXNlZE5vZGUuZ2V0KCkpOwotICAgICAgICAgICAgaWYgKG9sZFdpZGdldCkK
LSAgICAgICAgICAgICAgICBvbGRXaWRnZXQtPnNldEZvY3VzKGZhbHNlKTsKLSAgICAgICAgICAg
IGVsc2UKLSAgICAgICAgICAgICAgICB2aWV3KCktPnNldEZvY3VzKGZhbHNlKTsKLSAgICAgICAg
fQorICAgICAgICBpZiAob2xkV2lkZ2V0ICYmIG9sZFdpZGdldCAhPSBuZXdXaWRnZXQpCisgICAg
ICAgICAgICBvbGRXaWRnZXQtPnNldEZvY3VzKGZhbHNlKTsKICAgICB9CiAKICAgICBpZiAobmV3
Rm9jdXNlZE5vZGUpIHsKQEAgLTI5MjYsMjEgKzI5MzAsMTcgQEAgYm9vbCBEb2N1bWVudDo6c2V0
Rm9jdXNlZE5vZGUoUGFzc1JlZlB0cgogICAgICAgICBpZiAobV9mb2N1c2VkTm9kZSA9PSBtX2Zv
Y3VzZWROb2RlLT5yb290RWRpdGFibGVFbGVtZW50KCkpCiAgICAgICAgICAgICBmcmFtZSgpLT5l
ZGl0b3IoKS0+ZGlkQmVnaW5FZGl0aW5nKCk7CiAKLSAgICAgICAgLy8gZXd3LCBJIHN1Y2suIHNl
dCB0aGUgcXQgZm9jdXMgY29ycmVjdGx5Ci0gICAgICAgIC8vICMjIyBmaW5kIGEgYmV0dGVyIHBs
YWNlIGluIHRoZSBjb2RlIGZvciB0aGlzCi0gICAgICAgIGlmICh2aWV3KCkpIHsKLSAgICAgICAg
ICAgIFdpZGdldCAqZm9jdXNXaWRnZXQgPSB3aWRnZXRGb3JOb2RlKG1fZm9jdXNlZE5vZGUuZ2V0
KCkpOwotICAgICAgICAgICAgaWYgKGZvY3VzV2lkZ2V0KSB7Ci0gICAgICAgICAgICAgICAgLy8g
TWFrZSBzdXJlIGEgd2lkZ2V0IGhhcyB0aGUgcmlnaHQgc2l6ZSBiZWZvcmUgZ2l2aW5nIGl0IGZv
Y3VzLgotICAgICAgICAgICAgICAgIC8vIE90aGVyd2lzZSwgd2UgYXJlIHRlc3RpbmcgZWRnZSBj
YXNlcyBvZiB0aGUgV2lkZ2V0IGNvZGUuCi0gICAgICAgICAgICAgICAgLy8gU3BlY2lmaWNhbGx5
LCBpbiBXZWJDb3JlIHRoaXMgZG9lcyBub3Qgd29yayB3ZWxsIGZvciB0ZXh0IGZpZWxkcy4KLSAg
ICAgICAgICAgICAgICB1cGRhdGVMYXlvdXQoKTsKLSAgICAgICAgICAgICAgICAvLyBSZS1nZXQg
dGhlIHdpZGdldCBpbiBjYXNlIHVwZGF0aW5nIHRoZSBsYXlvdXQgY2hhbmdlZCB0aGluZ3MuCi0g
ICAgICAgICAgICAgICAgZm9jdXNXaWRnZXQgPSB3aWRnZXRGb3JOb2RlKG1fZm9jdXNlZE5vZGUu
Z2V0KCkpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKGZvY3VzV2lkZ2V0KQotICAg
ICAgICAgICAgICAgIGZvY3VzV2lkZ2V0LT5zZXRGb2N1cyh0cnVlKTsKLSAgICAgICAgICAgIGVs
c2UKKyAgICAgICAgaWYgKG5ld1dpZGdldCAmJiBuZXdXaWRnZXQgIT0gb2xkV2lkZ2V0KSB7Cisg
ICAgICAgICAgICAvLyBNYWtlIHN1cmUgYSB3aWRnZXQgaGFzIHRoZSByaWdodCBzaXplIGJlZm9y
ZSBnaXZpbmcgaXQgZm9jdXMuCisgICAgICAgICAgICAvLyBPdGhlcndpc2UsIHdlIGFyZSB0ZXN0
aW5nIGVkZ2UgY2FzZXMgb2YgdGhlIFdpZGdldCBjb2RlLgorICAgICAgICAgICAgLy8gU3BlY2lm
aWNhbGx5LCBpbiBXZWJDb3JlIHRoaXMgZG9lcyBub3Qgd29yayB3ZWxsIGZvciB0ZXh0IGZpZWxk
cy4KKyAgICAgICAgICAgIHVwZGF0ZUxheW91dCgpOworICAgICAgICAgICAgLy8gUmUtZ2V0IHRo
ZSB3aWRnZXQgaW4gY2FzZSB1cGRhdGluZyB0aGUgbGF5b3V0IGNoYW5nZWQgdGhpbmdzLgorICAg
ICAgICAgICAgbmV3V2lkZ2V0ID0gd2lkZ2V0Rm9yTm9kZShtX2ZvY3VzZWROb2RlLmdldCgpKTsK
KworICAgICAgICAgICAgaWYgKG5ld1dpZGdldCkKKyAgICAgICAgICAgICAgICBuZXdXaWRnZXQt
PnNldEZvY3VzKHRydWUpOworICAgICAgICAgICAgZWxzZSBpZiAodmlldygpKQogICAgICAgICAg
ICAgICAgIHZpZXcoKS0+c2V0Rm9jdXModHJ1ZSk7CiAgICAgICAgIH0KICAgICB9CkluZGV4OiBX
ZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0Nocm9taXVtQnJpZGdlLmgNCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0t
LSBXZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0Nocm9taXVtQnJpZGdlLmgJKHJldmlzaW9uIDYw
NDgwKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DaHJvbWl1bUJyaWRnZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yMzksNyArMjM5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAg
ICAgIC8vIFdpZGdldCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgICAgIHN0YXRpYyB2b2lkIHdpZGdldFNldEN1cnNvcihX
aWRnZXQqLCBjb25zdCBDdXJzb3ImKTsKLSAgICAgICAgc3RhdGljIHZvaWQgd2lkZ2V0U2V0Rm9j
dXMoV2lkZ2V0Kik7CisgICAgICAgIHN0YXRpYyB2b2lkIHdpZGdldFNldEZvY3VzKFdpZGdldCos
IGJvb2wgZm9jdXNlZCk7CiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDog
V2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9XaWRnZXRDaHJvbWl1bS5jcHANCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0N
Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1dpZGdldENocm9taXVtLmNwcAkocmV2aXNp
b24gNjA0ODApCisrKyBXZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1dpZGdldENocm9taXVtLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNjUsOCArNjUsNyBAQCB2b2lkIFdpZGdldDo6cGFpbnQoR3Jh
cGhpY3NDb250ZXh0KiwgY29uCiAKIHZvaWQgV2lkZ2V0OjpzZXRGb2N1cyhib29sIGZvY3VzZWQp
CiB7Ci0gICAgaWYgKGZvY3VzZWQpCi0gICAgICAgIENocm9taXVtQnJpZGdlOjp3aWRnZXRTZXRG
b2N1cyh0aGlzKTsKKyAgICBDaHJvbWl1bUJyaWRnZTo6d2lkZ2V0U2V0Rm9jdXModGhpcywgZm9j
dXNlZCk7CiB9CiAKIHZvaWQgV2lkZ2V0OjpzZXRJc1NlbGVjdGVkKGJvb2wpCkluZGV4OiBXZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZwkocmV2aXNpb24gNjA1MTQpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTAtMDYtMDEgIEpheSBDaXZlbGxpICA8
amNpdmVsbGlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIERvbid0IG5vdGlmeSBXaWRnZXRzIHRo
YXQgdGhleSBsb3N0IGFuZCBnb3QgZm9jdXMgd2hlbiBmb2N1cworICAgICAgICBtb3ZlcyBmcm9t
IG9uZSBub2RlIHRvIGFub3RoZXIgaW4gdGhlIHNhbWUgd2lkZ2V0LgorCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDAyOQorICAgICAgICAqIHNyYy9D
aHJvbWl1bUJyaWRnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWl1bUJyaWRnZTo6d2lk
Z2V0U2V0Rm9jdXMpOgorCiAyMDEwLTA1LTI0ICBKYW1lcyBIYXdraW5zICA8amhhd2tpbnNAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEZpc2hlci4KSW5kZXg6IFdl
YktpdC9jaHJvbWl1bS9zcmMvQ2hyb21pdW1CcmlkZ2UuY3BwDQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2Vi
S2l0L2Nocm9taXVtL3NyYy9DaHJvbWl1bUJyaWRnZS5jcHAJKHJldmlzaW9uIDYwNDgwKQorKysg
V2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWl1bUJyaWRnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTc5OCwxMSArNzk4LDE2IEBAIHZvaWQgQ2hyb21pdW1CcmlkZ2U6OndpZGdldFNldEN1cnNvcihX
aWQKICAgICAgICAgY2xpZW50LT5zZXRDdXJzb3IoV2ViQ3Vyc29ySW5mbyhjdXJzb3IpKTsKIH0K
IAotdm9pZCBDaHJvbWl1bUJyaWRnZTo6d2lkZ2V0U2V0Rm9jdXMoV2lkZ2V0KiB3aWRnZXQpCit2
b2lkIENocm9taXVtQnJpZGdlOjp3aWRnZXRTZXRGb2N1cyhXaWRnZXQqIHdpZGdldCwgYm9vbCBm
b2N1c2VkKQogewogICAgIENocm9tZUNsaWVudEltcGwqIGNsaWVudCA9IHRvQ2hyb21lQ2xpZW50
SW1wbCh3aWRnZXQpOwotICAgIGlmIChjbGllbnQpCisgICAgaWYgKCFjbGllbnQpCisgICAgICAg
IHJldHVybjsKKworICAgIGlmIChmb2N1c2VkKQogICAgICAgICBjbGllbnQtPmZvY3VzKCk7Cisg
ICAgZWxzZQorICAgICAgICBjbGllbnQtPnVuZm9jdXMoKTsKIH0KIAogV29ya2VyQ29udGV4dFBy
b3h5KiBXb3JrZXJDb250ZXh0UHJveHk6OmNyZWF0ZShXb3JrZXIqIHdvcmtlcikK
</data>
<flag name="review"
          id="42311"
          type_id="1"
          status="-"
          setter="ap"
    />
          </attachment>
      

    </bug>

</bugzilla>