<?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>94349</bug_id>
          
          <creation_ts>2012-08-17 07:57:55 -0700</creation_ts>
          <short_desc>[Chromium] detectContentIntentAround has a misleading name</short_desc>
          <delta_ts>2012-08-20 13:49:12 -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>WebKit Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</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>1</everconfirmed>
          <reporter name="Leandro Graciá Gil">leandrogracia</reporter>
          <assigned_to name="Leandro Graciá Gil">leandrogracia</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>jamesr</cc>
    
    <cc>rniwa</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>698338</commentid>
    <comment_count>0</comment_count>
    <who name="Leandro Graciá Gil">leandrogracia</who>
    <bug_when>2012-08-17 07:57:55 -0700</bug_when>
    <thetext>The current WebViewClient API exposes a method named detectContentIntentAround. However, this is not designed to detect any &quot;content intent&quot;, but to allow the embedder to detect content around a position and fire Android intents if appropriate.

Also, content detection should not be triggered if the touched node listens to events that consume the tap action, like clicks, touch events or mouse events.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>698345</commentid>
    <comment_count>1</comment_count>
      <attachid>159126</attachid>
    <who name="Leandro Graciá Gil">leandrogracia</who>
    <bug_when>2012-08-17 08:14:23 -0700</bug_when>
    <thetext>Created attachment 159126
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>698346</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-17 08:16:07 -0700</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>698419</commentid>
    <comment_count>3</comment_count>
      <attachid>159142</attachid>
    <who name="Leandro Graciá Gil">leandrogracia</who>
    <bug_when>2012-08-17 09:37:42 -0700</bug_when>
    <thetext>Created attachment 159142
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>698465</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-17 10:27:37 -0700</bug_when>
    <thetext>Here&apos;s a related comment I made on Bug 92346:

The issue here is that we&apos;re trying to draw a distinction between the intents from the Android system and Web Intents.  I looked at the documentation for the Intents in Android and learned that the full name was &quot;android.content.intent&quot; hence the name &quot;content intent&quot; as opposed to &quot;web intent&quot;.  If that&apos;s a misnomer, we should fix it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>698468</commentid>
    <comment_count>5</comment_count>
      <attachid>159142</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-17 10:29:17 -0700</bug_when>
    <thetext>Comment on attachment 159142
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=159142&amp;action=review

&gt; Source/WebKit/chromium/public/WebViewClient.h:378
&gt; +    virtual WebContentDetectionResult detectContentAround(const WebHitTestResult&amp;) { return WebContentDetectionResult(); }

Should we rename scheduleContentIntent and cancelScheduledContentIntents as well?  I&apos;m surprised that the name &quot;detectContentAround&quot; doesn&apos;t have the word &quot;intent&quot; in it.  Is this used for anything besides intents?

&gt; Source/WebKit/chromium/src/WebViewImpl.cpp:3879
&gt; +    for (; node &amp;&amp; !node-&gt;hasTagName(HTMLNames::bodyTag); node = node-&gt;parentNode()) {
&gt; +        if (node-&gt;isLink() || (touchType != WebInputEvent::GestureLongPress &amp;&amp; (node-&gt;hasEventListeners(eventNames().clickEvent)
&gt; +            || node-&gt;hasEventListeners(eventNames().touchstartEvent) || node-&gt;hasEventListeners(eventNames().touchendEvent)
&gt; +            || node-&gt;hasEventListeners(eventNames().mousedownEvent) || node-&gt;hasEventListeners(eventNames().mouseupEvent)))) {
&gt; +            return false;
&gt; +        }
&gt; +    }

I didn&apos;t upstreaming this part because it&apos;s not clear to me whether this is the right way to do this.  Can you explain a bit more what you&apos;re trying to accomplish with this code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>698481</commentid>
    <comment_count>6</comment_count>
      <attachid>159142</attachid>
    <who name="Leandro Graciá Gil">leandrogracia</who>
    <bug_when>2012-08-17 10:49:06 -0700</bug_when>
    <thetext>Comment on attachment 159142
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=159142&amp;action=review

&gt;&gt; Source/WebKit/chromium/public/WebViewClient.h:378
&gt;&gt; +    virtual WebContentDetectionResult detectContentAround(const WebHitTestResult&amp;) { return WebContentDetectionResult(); }
&gt; 
&gt; Should we rename scheduleContentIntent and cancelScheduledContentIntents as well?  I&apos;m surprised that the name &quot;detectContentAround&quot; doesn&apos;t have the word &quot;intent&quot; in it.  Is this used for anything besides intents?

scheduleContentIntent and cancelScheduledContentIntents do what they say: they request to generate an Android intent based on the provided URL.

On the other hand, detectContentAround doesn&apos;t detect intents, but might produce their URLs as part of the WebContentDetectionResult object. We might add &quot;intent&quot; to the name if you have a suggestion, but definitely not as what we&apos;re trying to detect.

&gt;&gt; Source/WebKit/chromium/src/WebViewImpl.cpp:3879
&gt;&gt; +    }
&gt; 
&gt; I didn&apos;t upstreaming this part because it&apos;s not clear to me whether this is the right way to do this.  Can you explain a bit more what you&apos;re trying to accomplish with this code.

This is trying to prevent content detection to interfere with any custom behaviour. Since tapping on content might fire an Android intent that can severely disrupt the experience in some sites that expected to handle the tap themselves. For example, if we tap on content that is in a link we want to follow the link, not to fire an intent. The same happens if the content we touch has for example a click listener: we want these cases to work as originally expected. That&apos;s why we explicitly check for these events.

Also you will see a reference to the body tag. This is because our testing has shown that many pages exposing content (including Google&apos;s) have, for whatever reason, a click listener in the body. We never found a case where this listener was related to the content itself in any way that could be disruptive, but still it completely prevented content detection to work in these sites. That&apos;s the reason of that check there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>698670</commentid>
    <comment_count>7</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-17 14:38:47 -0700</bug_when>
    <thetext>I wonder if that&apos;s a consequence of calling this function before processing the event in WebCore.  Instead we might want to call this function in the default event handler, after the page has had a chance to see the event and call prevent default.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>698706</commentid>
    <comment_count>8</comment_count>
    <who name="Leandro Graciá Gil">leandrogracia</who>
    <bug_when>2012-08-17 15:11:27 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; I wonder if that&apos;s a consequence of calling this function before processing the event in WebCore.  Instead we might want to call this function in the default event handler, after the page has had a chance to see the event and call prevent default.

But if we do that then we will have the problem with the &lt;body&gt; click listeners.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>698992</commentid>
    <comment_count>9</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-18 23:30:44 -0700</bug_when>
    <thetext>&gt; But if we do that then we will have the problem with the &lt;body&gt; click listeners.

That depends if they call preventDefault.  Do you have examples of sites that caused problems?  We can check to see if they preventDefault.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>699366</commentid>
    <comment_count>10</comment_count>
    <who name="Leandro Graciá Gil">leandrogracia</who>
    <bug_when>2012-08-20 03:10:17 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; &gt; But if we do that then we will have the problem with the &lt;body&gt; click listeners.
&gt; 
&gt; That depends if they call preventDefault.  Do you have examples of sites that caused problems?  We can check to see if they preventDefault.

Here&apos;s one classical example: http://www.google.com/about/company/facts/locations/
I know testing found more cases and that eventually led to this body listener exception, but I don&apos;t have other urls at hand right now.

However, we should not rely on the page calling preventDefault or any other method at all as what we want is not to disrupt its normal behaviour with the content detection feature.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>699742</commentid>
    <comment_count>11</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-20 11:40:02 -0700</bug_when>
    <thetext>&gt; However, we should not rely on the page calling preventDefault or any other method at all as what we want is not to disrupt its normal behaviour with the content detection feature.

In this case, we would perform this default action if they did *not* call preventDefault.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>699745</commentid>
    <comment_count>12</comment_count>
      <attachid>159142</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-20 11:43:40 -0700</bug_when>
    <thetext>Comment on attachment 159142
Patch

Ok.  What I&apos;d like to do here is to land this patch in two pieces:

1) The renaming, which is uncontroversial.
2) The loop in detectContentOnTouch.

Notice that this logic here is simliar to the logic related to isEventNode in &lt;https://bugs.webkit.org/attachment.cgi?id=158702&amp;action=review&gt;.  It&apos;s likely these two functions should share some of this logic since they&apos;re both trying to figure out if something reacts to touching.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>699786</commentid>
    <comment_count>13</comment_count>
      <attachid>159488</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-20 12:22:41 -0700</bug_when>
    <thetext>Created attachment 159488
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>699827</commentid>
    <comment_count>14</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-20 13:00:31 -0700</bug_when>
    <thetext>I spoke with rniwa and he think that the approach of checking for event listeners is fine.  Would you be willing to post that part of the patch in a separate bug?  We should also try to do that in a way that shares code with the patch in Bug 94182.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>699834</commentid>
    <comment_count>15</comment_count>
    <who name="Leandro Graciá Gil">leandrogracia</who>
    <bug_when>2012-08-20 13:07:16 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; I spoke with rniwa and he think that the approach of checking for event listeners is fine.  Would you be willing to post that part of the patch in a separate bug?  We should also try to do that in a way that shares code with the patch in Bug 94182.

Sure, I&apos;ll do that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>699836</commentid>
    <comment_count>16</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-20 13:10:06 -0700</bug_when>
    <thetext>Many thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>699899</commentid>
    <comment_count>17</comment_count>
      <attachid>159488</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-20 13:49:07 -0700</bug_when>
    <thetext>Comment on attachment 159488
Patch for landing

Clearing flags on attachment: 159488

Committed r126061: &lt;http://trac.webkit.org/changeset/126061&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>699900</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-20 13:49:12 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>159126</attachid>
            <date>2012-08-17 08:14:23 -0700</date>
            <delta_ts>2012-08-17 09:37:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94349-20120817161346.patch</filename>
            <type>text/plain</type>
            <size>5190</size>
            <attacher name="Leandro Graciá Gil">leandrogracia</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1OTAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDc4MWNkMGMxZDAzMGQ2ZWIwM2RhOGQ2ZjExMTg1YWY4MjQxMzZiNDQuLjViOTBkMDBhYWM1ZmIx
MzYyNzg0MmFhYWI3Yjg2YTIyNDVjZTI4ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjUgQEAKKzIwMTItMDgtMTcgIExlYW5kcm8gR3JhY2lhIEdpbCAgPGxlYW5kcm9n
cmFjaWFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtDaHJvbWl1bV0gZGV0ZWN0Q29udGVudElu
dGVudEFyb3VuZCBoYXMgYSBtaXNsZWFkaW5nIG5hbWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk0MzQ5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIGN1cnJlbnQgV2ViVmlld0NsaWVudCBBUEkgZXhw
b3NlcyBhIG1ldGhvZCBuYW1lZCBkZXRlY3RDb250ZW50SW50ZW50QXJvdW5kLgorICAgICAgICBI
b3dldmVyLCB0aGlzIGlzIG5vdCBkZXNpZ25lZCB0byBkZXRlY3QgYW55ICJjb250ZW50IGludGVu
dCIsIGJ1dCB0byBhbGxvdyB0aGUgZW1iZWRkZXIKKyAgICAgICAgdG8gZGV0ZWN0IGNvbnRlbnQg
YXJvdW5kIGEgcG9zaXRpb24gYW5kIGZpcmUgQW5kcm9pZCBpbnRlbnRzIGlmIGFwcHJvcHJpYXRl
LgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWxzbyBkaXNhYmxlcyBjb250ZW50IGRldGVjdGlvbiBp
ZiB0aGUgdG91Y2hlZCBub2RlIGxpc3RlbnMgdG8gZXZlbnRzCisgICAgICAgIHRoYXQgY29uc3Vt
ZSB0aGUgdGFwIGFjdGlvbiBsaWtlIGNsaWNrcywgdG91Y2ggZXZlbnRzIG9yIG1vdXNlIGV2ZW50
cy4KKworICAgICAgICAqIHB1YmxpYy9XZWJWaWV3Q2xpZW50Lmg6CisgICAgICAgIChXZWJWaWV3
Q2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0NsaWVudDo6ZGV0ZWN0Q29udGVudEFy
b3VuZCk6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViVmlld0ltcGw6OmRldGVjdENvbnRlbnRPblRvdWNoKToKKyAgICAgICAgKiBzcmMvV2ViVmll
d0ltcGwuaDoKKyAgICAgICAgKFdlYlZpZXdJbXBsKToKKwogMjAxMi0wOC0xNyAgUGF2ZWwgRmVs
ZG1hbiAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBs
b2FkIHBhbmVscyBjb2RlIG9uIGRlbWFuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViVmlld0NsaWVudC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViVmlld0NsaWVudC5oCmluZGV4IDcyNmNjNjQ4MmZiNjg3YWIwMGJhMGRjNjg2YjA4ZmYy
N2EyMGFhYmMuLjhiNjc1MWZhODViMjRjYTYzN2U5N2I5MDM0Y2MzZGFiYWEyYmU1YjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmgKQEAgLTM3NCw5
ICszNzQsOCBAQCBwdWJsaWM6CiAKICAgICAvLyBSZXRyaWV2ZXMgZGV0ZWN0YWJsZSBjb250ZW50
IChlLmcuLCBlbWFpbCBhZGRyZXNzZXMsIHBob25lIG51bWJlcnMpCiAgICAgLy8gYXJvdW5kIGEg
aGl0IHRlc3QgcmVzdWx0LiBUaGUgZW1iZWRkZXIgc2hvdWxkIHVzZSBwbGF0Zm9ybS1zcGVjaWZp
YwotICAgIC8vIGNvbnRlbnQgZGV0ZWN0b3JzIChlLmcuLCBmcm9tIHRoZSBBbmRyb2lkIGludGVu
dCBzeXN0ZW0pIHRvIGFuYWx5emUgdGhlCi0gICAgLy8gcmVnaW9uIGFyb3VuZCB0aGUgaGl0IHRl
c3QgcmVzdWx0LgotICAgIHZpcnR1YWwgV2ViQ29udGVudERldGVjdGlvblJlc3VsdCBkZXRlY3RD
b250ZW50SW50ZW50QXJvdW5kKGNvbnN0IFdlYkhpdFRlc3RSZXN1bHQmKSB7IHJldHVybiBXZWJD
b250ZW50RGV0ZWN0aW9uUmVzdWx0KCk7IH0KKyAgICAvLyBjb250ZW50IGRldGVjdG9ycyB0byBh
bmFseXplIHRoZSByZWdpb24gYXJvdW5kIHRoZSBoaXQgdGVzdCByZXN1bHQuCisgICAgdmlydHVh
bCBXZWJDb250ZW50RGV0ZWN0aW9uUmVzdWx0IGRldGVjdENvbnRlbnRBcm91bmQoY29uc3QgV2Vi
SGl0VGVzdFJlc3VsdCYpIHsgcmV0dXJuIFdlYkNvbnRlbnREZXRlY3Rpb25SZXN1bHQoKTsgfQog
CiAgICAgLy8gU2NoZWR1bGVzIGEgbmV3IGNvbnRlbnQgaW50ZW50IHdpdGggdGhlIHByb3ZpZGVk
IHVybC4KICAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVDb250ZW50SW50ZW50KGNvbnN0IFdlYlVS
TCYpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0lt
cGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCmluZGV4
IDBiZDNlYTExNmU0YzA1MmRlYWEwNWU2NjMwNzY0ZTMyZjljYTQxNjguLmMxZmM2ZmEyYmY3YzY5
ZWZlOWFmMzViZGQxYzQxNjEzODc5MWQ1ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJWaWV3SW1wbC5jcHAKQEAgLTM4NTUsNyArMzg1NSw3IEBAIHZvaWQgV2ViVmlld0ltcGw6
OnNlbGVjdEF1dG9maWxsU3VnZ2VzdGlvbkF0SW5kZXgodW5zaWduZWQgbGlzdEluZGV4KQogICAg
ICAgICBtX2F1dG9maWxsUG9wdXBDbGllbnQtPnZhbHVlQ2hhbmdlZChsaXN0SW5kZXgpOwogfQog
Ci1ib29sIFdlYlZpZXdJbXBsOjpkZXRlY3RDb250ZW50SW50ZW50T25Ub3VjaChjb25zdCBXZWJQ
b2ludCYgcG9zaXRpb24sIFdlYklucHV0RXZlbnQ6OlR5cGUgdG91Y2hUeXBlKQorYm9vbCBXZWJW
aWV3SW1wbDo6ZGV0ZWN0Q29udGVudE9uVG91Y2goY29uc3QgV2ViUG9pbnQmIHBvc2l0aW9uLCBX
ZWJJbnB1dEV2ZW50OjpUeXBlIHRvdWNoVHlwZSkKIHsKICAgICBBU1NFUlQodG91Y2hUeXBlID09
IFdlYklucHV0RXZlbnQ6Okdlc3R1cmVUYXAgfHwgdG91Y2hUeXBlID09IFdlYklucHV0RXZlbnQ6
Okdlc3R1cmVMb25nUHJlc3MpOwogICAgIEhpdFRlc3RSZXN1bHQgdG91Y2hIaXQgPSBoaXRUZXN0
UmVzdWx0Rm9yV2luZG93UG9zKHBvc2l0aW9uKTsKQEAgLTM4NjcsOSArMzg2NywxNyBAQCBib29s
IFdlYlZpZXdJbXBsOjpkZXRlY3RDb250ZW50SW50ZW50T25Ub3VjaChjb25zdCBXZWJQb2ludCYg
cG9zaXRpb24sIFdlYklucHV0RQogICAgIGlmICghbm9kZSB8fCAhbm9kZS0+aXNUZXh0Tm9kZSgp
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAvLyBGSVhNRTogU2hvdWxkIHdlIG5vdCBk
ZXRlY3QgY29udGVudCBpbnRlbnRzIGluIG5vZGVzIHRoYXQgaGF2ZSBldmVudCBsaXN0ZW5lcnM/
CisgICAgLy8gSWdub3JlIHdoZW4gdGFwcGluZyBvbiBsaW5rcyBvciBub2RlcyBsaXN0ZW5pbmcg
dG8gY2xpY2sgZXZlbnRzLCB1bmxlc3MgdGhlIGNsaWNrIGV2ZW50IGlzIG9uIHRoZQorICAgIC8v
IGJvZHkgZWxlbWVudCwgaW4gd2hpY2ggY2FzZSBpdCdzIHVubGlrZWx5IHRoYXQgdGhlIG9yaWdp
bmFsIG5vZGUgaXRzZWxmIHdhcyBpbnRlbmRlZCB0byBiZSBjbGlja2FibGUuCisgICAgZm9yICg7
IG5vZGUgJiYgIW5vZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjpib2R5VGFnKTsgbm9kZSA9IG5v
ZGUtPnBhcmVudE5vZGUoKSkgeworICAgICAgICBpZiAobm9kZS0+aXNMaW5rKCkgfHwgKHRvdWNo
VHlwZSAhPSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJlTG9uZ1ByZXNzICYmIChub2RlLT5oYXNFdmVu
dExpc3RlbmVycyhldmVudE5hbWVzKCkuY2xpY2tFdmVudCkKKyAgICAgICAgICAgIHx8IG5vZGUt
Pmhhc0V2ZW50TGlzdGVuZXJzKGV2ZW50TmFtZXMoKS50b3VjaHN0YXJ0RXZlbnQpIHx8IG5vZGUt
Pmhhc0V2ZW50TGlzdGVuZXJzKGV2ZW50TmFtZXMoKS50b3VjaGVuZEV2ZW50KQorICAgICAgICAg
ICAgfHwgbm9kZS0+aGFzRXZlbnRMaXN0ZW5lcnMoZXZlbnROYW1lcygpLm1vdXNlZG93bkV2ZW50
KSB8fCBub2RlLT5oYXNFdmVudExpc3RlbmVycyhldmVudE5hbWVzKCkubW91c2V1cEV2ZW50KSkp
KSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CiAKLSAgICBX
ZWJDb250ZW50RGV0ZWN0aW9uUmVzdWx0IGNvbnRlbnQgPSBtX2NsaWVudC0+ZGV0ZWN0Q29udGVu
dEludGVudEFyb3VuZCh0b3VjaEhpdCk7CisgICAgV2ViQ29udGVudERldGVjdGlvblJlc3VsdCBj
b250ZW50ID0gbV9jbGllbnQtPmRldGVjdENvbnRlbnRBcm91bmQodG91Y2hIaXQpOwogICAgIGlm
ICghY29udGVudC5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaCBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKaW5kZXggMzk3ODM2ODBmYTE5ODk4ODZjNDYw
YjEzZDQwZGQxNDA0MWEyYTQyYi4uYzhiZjU4NGVhY2Q5MTdmMjU5MzJmOGE5YWRmZDlhNzNjNGI2
ZDBiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCkBAIC0zOTEs
NyArMzkxLDcgQEAgcHVibGljOgogICAgIHZvaWQgbW91c2VDb250ZXh0TWVudShjb25zdCBXZWJN
b3VzZUV2ZW50Jik7CiAgICAgdm9pZCBtb3VzZURvdWJsZUNsaWNrKGNvbnN0IFdlYk1vdXNlRXZl
bnQmKTsKIAotICAgIGJvb2wgZGV0ZWN0Q29udGVudEludGVudE9uVG91Y2goY29uc3QgV2ViUG9p
bnQmLCBXZWJJbnB1dEV2ZW50OjpUeXBlKTsKKyAgICBib29sIGRldGVjdENvbnRlbnRPblRvdWNo
KGNvbnN0IFdlYlBvaW50JiwgV2ViSW5wdXRFdmVudDo6VHlwZSk7CiAgICAgdm9pZCBzdGFydFBh
Z2VTY2FsZUFuaW1hdGlvbihjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgdGFyZ2V0UG9zaXRpb24s
IGJvb2wgdXNlQW5jaG9yLCBmbG9hdCBuZXdTY2FsZSwgZG91YmxlIGR1cmF0aW9uSW5TZWNvbmRz
KTsKIAogICAgIHZvaWQgbnVtYmVyT2ZXaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKHVuc2lnbmVk
KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>159142</attachid>
            <date>2012-08-17 09:37:42 -0700</date>
            <delta_ts>2012-08-20 12:22:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94349-20120817173705.patch</filename>
            <type>text/plain</type>
            <size>5900</size>
            <attacher name="Leandro Graciá Gil">leandrogracia</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1OTAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDc4MWNkMGMxZDAzMGQ2ZWIwM2RhOGQ2ZjExMTg1YWY4MjQxMzZiNDQuLjViOTBkMDBhYWM1ZmIx
MzYyNzg0MmFhYWI3Yjg2YTIyNDVjZTI4ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjUgQEAKKzIwMTItMDgtMTcgIExlYW5kcm8gR3JhY2lhIEdpbCAgPGxlYW5kcm9n
cmFjaWFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtDaHJvbWl1bV0gZGV0ZWN0Q29udGVudElu
dGVudEFyb3VuZCBoYXMgYSBtaXNsZWFkaW5nIG5hbWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk0MzQ5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIGN1cnJlbnQgV2ViVmlld0NsaWVudCBBUEkgZXhw
b3NlcyBhIG1ldGhvZCBuYW1lZCBkZXRlY3RDb250ZW50SW50ZW50QXJvdW5kLgorICAgICAgICBI
b3dldmVyLCB0aGlzIGlzIG5vdCBkZXNpZ25lZCB0byBkZXRlY3QgYW55ICJjb250ZW50IGludGVu
dCIsIGJ1dCB0byBhbGxvdyB0aGUgZW1iZWRkZXIKKyAgICAgICAgdG8gZGV0ZWN0IGNvbnRlbnQg
YXJvdW5kIGEgcG9zaXRpb24gYW5kIGZpcmUgQW5kcm9pZCBpbnRlbnRzIGlmIGFwcHJvcHJpYXRl
LgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWxzbyBkaXNhYmxlcyBjb250ZW50IGRldGVjdGlvbiBp
ZiB0aGUgdG91Y2hlZCBub2RlIGxpc3RlbnMgdG8gZXZlbnRzCisgICAgICAgIHRoYXQgY29uc3Vt
ZSB0aGUgdGFwIGFjdGlvbiBsaWtlIGNsaWNrcywgdG91Y2ggZXZlbnRzIG9yIG1vdXNlIGV2ZW50
cy4KKworICAgICAgICAqIHB1YmxpYy9XZWJWaWV3Q2xpZW50Lmg6CisgICAgICAgIChXZWJWaWV3
Q2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0NsaWVudDo6ZGV0ZWN0Q29udGVudEFy
b3VuZCk6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViVmlld0ltcGw6OmRldGVjdENvbnRlbnRPblRvdWNoKToKKyAgICAgICAgKiBzcmMvV2ViVmll
d0ltcGwuaDoKKyAgICAgICAgKFdlYlZpZXdJbXBsKToKKwogMjAxMi0wOC0xNyAgUGF2ZWwgRmVs
ZG1hbiAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBs
b2FkIHBhbmVscyBjb2RlIG9uIGRlbWFuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViVmlld0NsaWVudC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViVmlld0NsaWVudC5oCmluZGV4IDcyNmNjNjQ4MmZiNjg3YWIwMGJhMGRjNjg2YjA4ZmYy
N2EyMGFhYmMuLjkwNGQ0YTJkMjE2N2U0NzE2Mjg1OTg2NmE1MjQ4NGY0ZmRiNWVhMWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmgKQEAgLTM3LDcg
KzM3LDYgQEAKICNpbmNsdWRlICJXZWJFZGl0aW5nQWN0aW9uLmgiCiAjaW5jbHVkZSAiV2ViRmls
ZUNob29zZXJDb21wbGV0aW9uLmgiCiAjaW5jbHVkZSAiV2ViRmlsZUNob29zZXJQYXJhbXMuaCIK
LSNpbmNsdWRlICJXZWJIaXRUZXN0UmVzdWx0LmgiCiAjaW5jbHVkZSAiV2ViUGFnZVZpc2liaWxp
dHlTdGF0ZS5oIgogI2luY2x1ZGUgIldlYlBvcHVwVHlwZS5oIgogI2luY2x1ZGUgIldlYlRleHRB
ZmZpbml0eS5oIgpAQCAtNjQsNiArNjMsNyBAQCBjbGFzcyBXZWJGcmFtZTsKIGNsYXNzIFdlYkdl
b2xvY2F0aW9uQ2xpZW50OwogY2xhc3MgV2ViR2VvbG9jYXRpb25TZXJ2aWNlOwogY2xhc3MgV2Vi
SGVscGVyUGx1Z2luOworY2xhc3MgV2ViSGl0VGVzdFJlc3VsdDsKIGNsYXNzIFdlYkljb25Mb2Fk
aW5nQ29tcGxldGlvbjsKIGNsYXNzIFdlYkltYWdlOwogY2xhc3MgV2ViSW5wdXRFbGVtZW50OwpA
QCAtMzc0LDkgKzM3NCw4IEBAIHB1YmxpYzoKIAogICAgIC8vIFJldHJpZXZlcyBkZXRlY3RhYmxl
IGNvbnRlbnQgKGUuZy4sIGVtYWlsIGFkZHJlc3NlcywgcGhvbmUgbnVtYmVycykKICAgICAvLyBh
cm91bmQgYSBoaXQgdGVzdCByZXN1bHQuIFRoZSBlbWJlZGRlciBzaG91bGQgdXNlIHBsYXRmb3Jt
LXNwZWNpZmljCi0gICAgLy8gY29udGVudCBkZXRlY3RvcnMgKGUuZy4sIGZyb20gdGhlIEFuZHJv
aWQgaW50ZW50IHN5c3RlbSkgdG8gYW5hbHl6ZSB0aGUKLSAgICAvLyByZWdpb24gYXJvdW5kIHRo
ZSBoaXQgdGVzdCByZXN1bHQuCi0gICAgdmlydHVhbCBXZWJDb250ZW50RGV0ZWN0aW9uUmVzdWx0
IGRldGVjdENvbnRlbnRJbnRlbnRBcm91bmQoY29uc3QgV2ViSGl0VGVzdFJlc3VsdCYpIHsgcmV0
dXJuIFdlYkNvbnRlbnREZXRlY3Rpb25SZXN1bHQoKTsgfQorICAgIC8vIGNvbnRlbnQgZGV0ZWN0
b3JzIHRvIGFuYWx5emUgdGhlIHJlZ2lvbiBhcm91bmQgdGhlIGhpdCB0ZXN0IHJlc3VsdC4KKyAg
ICB2aXJ0dWFsIFdlYkNvbnRlbnREZXRlY3Rpb25SZXN1bHQgZGV0ZWN0Q29udGVudEFyb3VuZChj
b25zdCBXZWJIaXRUZXN0UmVzdWx0JikgeyByZXR1cm4gV2ViQ29udGVudERldGVjdGlvblJlc3Vs
dCgpOyB9CiAKICAgICAvLyBTY2hlZHVsZXMgYSBuZXcgY29udGVudCBpbnRlbnQgd2l0aCB0aGUg
cHJvdmlkZWQgdXJsLgogICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZUNvbnRlbnRJbnRlbnQoY29u
c3QgV2ViVVJMJikgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJWaWV3SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5j
cHAKaW5kZXggMGJkM2VhMTE2ZTRjMDUyZGVhYTA1ZTY2MzA3NjRlMzJmOWNhNDE2OC4uMGY5NjE0
NTQ4NWZmNzU4MjkwMmY4NDM4ZmFiMTBkOTExYzRjOGFmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcApAQCAtMTI5LDYgKzEyOSw3IEBACiAjaW5jbHVkZSAi
V2ViRGV2VG9vbHNBZ2VudFByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJGcmFtZUltcGwuaCIKICNp
bmNsdWRlICJXZWJIZWxwZXJQbHVnaW5JbXBsLmgiCisjaW5jbHVkZSAiV2ViSGl0VGVzdFJlc3Vs
dC5oIgogI2luY2x1ZGUgIldlYklucHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIldlYklucHV0RXZl
bnQuaCIKICNpbmNsdWRlICJXZWJJbnB1dEV2ZW50Q29udmVyc2lvbi5oIgpAQCAtMzg1NSw3ICsz
ODU2LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6c2VsZWN0QXV0b2ZpbGxTdWdnZXN0aW9uQXRJbmRl
eCh1bnNpZ25lZCBsaXN0SW5kZXgpCiAgICAgICAgIG1fYXV0b2ZpbGxQb3B1cENsaWVudC0+dmFs
dWVDaGFuZ2VkKGxpc3RJbmRleCk7CiB9CiAKLWJvb2wgV2ViVmlld0ltcGw6OmRldGVjdENvbnRl
bnRJbnRlbnRPblRvdWNoKGNvbnN0IFdlYlBvaW50JiBwb3NpdGlvbiwgV2ViSW5wdXRFdmVudDo6
VHlwZSB0b3VjaFR5cGUpCitib29sIFdlYlZpZXdJbXBsOjpkZXRlY3RDb250ZW50T25Ub3VjaChj
b25zdCBXZWJQb2ludCYgcG9zaXRpb24sIFdlYklucHV0RXZlbnQ6OlR5cGUgdG91Y2hUeXBlKQog
ewogICAgIEFTU0VSVCh0b3VjaFR5cGUgPT0gV2ViSW5wdXRFdmVudDo6R2VzdHVyZVRhcCB8fCB0
b3VjaFR5cGUgPT0gV2ViSW5wdXRFdmVudDo6R2VzdHVyZUxvbmdQcmVzcyk7CiAgICAgSGl0VGVz
dFJlc3VsdCB0b3VjaEhpdCA9IGhpdFRlc3RSZXN1bHRGb3JXaW5kb3dQb3MocG9zaXRpb24pOwpA
QCAtMzg2Nyw5ICszODY4LDE3IEBAIGJvb2wgV2ViVmlld0ltcGw6OmRldGVjdENvbnRlbnRJbnRl
bnRPblRvdWNoKGNvbnN0IFdlYlBvaW50JiBwb3NpdGlvbiwgV2ViSW5wdXRFCiAgICAgaWYgKCFu
b2RlIHx8ICFub2RlLT5pc1RleHROb2RlKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAg
IC8vIEZJWE1FOiBTaG91bGQgd2Ugbm90IGRldGVjdCBjb250ZW50IGludGVudHMgaW4gbm9kZXMg
dGhhdCBoYXZlIGV2ZW50IGxpc3RlbmVycz8KKyAgICAvLyBJZ25vcmUgd2hlbiB0YXBwaW5nIG9u
IGxpbmtzIG9yIG5vZGVzIGxpc3RlbmluZyB0byBjbGljayBldmVudHMsIHVubGVzcyB0aGUgY2xp
Y2sgZXZlbnQgaXMgb24gdGhlCisgICAgLy8gYm9keSBlbGVtZW50LCBpbiB3aGljaCBjYXNlIGl0
J3MgdW5saWtlbHkgdGhhdCB0aGUgb3JpZ2luYWwgbm9kZSBpdHNlbGYgd2FzIGludGVuZGVkIHRv
IGJlIGNsaWNrYWJsZS4KKyAgICBmb3IgKDsgbm9kZSAmJiAhbm9kZS0+aGFzVGFnTmFtZShIVE1M
TmFtZXM6OmJvZHlUYWcpOyBub2RlID0gbm9kZS0+cGFyZW50Tm9kZSgpKSB7CisgICAgICAgIGlm
IChub2RlLT5pc0xpbmsoKSB8fCAodG91Y2hUeXBlICE9IFdlYklucHV0RXZlbnQ6Okdlc3R1cmVM
b25nUHJlc3MgJiYgKG5vZGUtPmhhc0V2ZW50TGlzdGVuZXJzKGV2ZW50TmFtZXMoKS5jbGlja0V2
ZW50KQorICAgICAgICAgICAgfHwgbm9kZS0+aGFzRXZlbnRMaXN0ZW5lcnMoZXZlbnROYW1lcygp
LnRvdWNoc3RhcnRFdmVudCkgfHwgbm9kZS0+aGFzRXZlbnRMaXN0ZW5lcnMoZXZlbnROYW1lcygp
LnRvdWNoZW5kRXZlbnQpCisgICAgICAgICAgICB8fCBub2RlLT5oYXNFdmVudExpc3RlbmVycyhl
dmVudE5hbWVzKCkubW91c2Vkb3duRXZlbnQpIHx8IG5vZGUtPmhhc0V2ZW50TGlzdGVuZXJzKGV2
ZW50TmFtZXMoKS5tb3VzZXVwRXZlbnQpKSkpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICAgICAgfQorICAgIH0KIAotICAgIFdlYkNvbnRlbnREZXRlY3Rpb25SZXN1bHQgY29udGVu
dCA9IG1fY2xpZW50LT5kZXRlY3RDb250ZW50SW50ZW50QXJvdW5kKHRvdWNoSGl0KTsKKyAgICBX
ZWJDb250ZW50RGV0ZWN0aW9uUmVzdWx0IGNvbnRlbnQgPSBtX2NsaWVudC0+ZGV0ZWN0Q29udGVu
dEFyb3VuZCh0b3VjaEhpdCk7CiAgICAgaWYgKCFjb250ZW50LmlzVmFsaWQoKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJWaWV3SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaApp
bmRleCAzOTc4MzY4MGZhMTk4OTg4NmM0NjBiMTNkNDBkZDE0MDQxYTJhNDJiLi5jOGJmNTg0ZWFj
ZDkxN2YyNTkzMmY4YTlhZGZkOWE3M2M0YjZkMGJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlZpZXdJbXBsLmgKQEAgLTM5MSw3ICszOTEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBt
b3VzZUNvbnRleHRNZW51KGNvbnN0IFdlYk1vdXNlRXZlbnQmKTsKICAgICB2b2lkIG1vdXNlRG91
YmxlQ2xpY2soY29uc3QgV2ViTW91c2VFdmVudCYpOwogCi0gICAgYm9vbCBkZXRlY3RDb250ZW50
SW50ZW50T25Ub3VjaChjb25zdCBXZWJQb2ludCYsIFdlYklucHV0RXZlbnQ6OlR5cGUpOworICAg
IGJvb2wgZGV0ZWN0Q29udGVudE9uVG91Y2goY29uc3QgV2ViUG9pbnQmLCBXZWJJbnB1dEV2ZW50
OjpUeXBlKTsKICAgICB2b2lkIHN0YXJ0UGFnZVNjYWxlQW5pbWF0aW9uKGNvbnN0IFdlYkNvcmU6
OkludFBvaW50JiB0YXJnZXRQb3NpdGlvbiwgYm9vbCB1c2VBbmNob3IsIGZsb2F0IG5ld1NjYWxl
LCBkb3VibGUgZHVyYXRpb25JblNlY29uZHMpOwogCiAgICAgdm9pZCBudW1iZXJPZldoZWVsRXZl
bnRIYW5kbGVyc0NoYW5nZWQodW5zaWduZWQpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>159488</attachid>
            <date>2012-08-20 12:22:41 -0700</date>
            <delta_ts>2012-08-20 13:49:07 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-94349-20120820122202.patch</filename>
            <type>text/plain</type>
            <size>5112</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI2MDQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDkzYjk0N2I4MWQ1ZTFiNTFjMDFjNDVlYWE2OWFlNTk5MTVjNjgwMzMuLmFhNWQ1Yjc3MGFkYzVk
YTYxNzI2ZTI3ZmI2YmZmNjAxYjkzNTkyNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjUgQEAKKzIwMTItMDgtMjAgIExlYW5kcm8gR3JhY2lhIEdpbCAgPGxlYW5kcm9n
cmFjaWFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtDaHJvbWl1bV0gZGV0ZWN0Q29udGVudElu
dGVudEFyb3VuZCBoYXMgYSBtaXNsZWFkaW5nIG5hbWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk0MzQ5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWRh
bSBCYXJ0aC4KKworICAgICAgICBUaGUgY3VycmVudCBXZWJWaWV3Q2xpZW50IEFQSSBleHBvc2Vz
IGEgbWV0aG9kIG5hbWVkIGRldGVjdENvbnRlbnRJbnRlbnRBcm91bmQuCisgICAgICAgIEhvd2V2
ZXIsIHRoaXMgaXMgbm90IGRlc2lnbmVkIHRvIGRldGVjdCBhbnkgImNvbnRlbnQgaW50ZW50Iiwg
YnV0IHRvIGFsbG93IHRoZSBlbWJlZGRlcgorICAgICAgICB0byBkZXRlY3QgY29udGVudCBhcm91
bmQgYSBwb3NpdGlvbiBhbmQgZmlyZSBBbmRyb2lkIGludGVudHMgaWYgYXBwcm9wcmlhdGUuCisK
KyAgICAgICAgVGhpcyBwYXRjaCBhbHNvIGRpc2FibGVzIGNvbnRlbnQgZGV0ZWN0aW9uIGlmIHRo
ZSB0b3VjaGVkIG5vZGUgbGlzdGVucyB0byBldmVudHMKKyAgICAgICAgdGhhdCBjb25zdW1lIHRo
ZSB0YXAgYWN0aW9uIGxpa2UgY2xpY2tzLCB0b3VjaCBldmVudHMgb3IgbW91c2UgZXZlbnRzLgor
CisgICAgICAgICogcHVibGljL1dlYlZpZXdDbGllbnQuaDoKKyAgICAgICAgKFdlYlZpZXdDbGll
bnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3Q2xpZW50OjpkZXRlY3RDb250ZW50QXJvdW5k
KToKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJW
aWV3SW1wbDo6ZGV0ZWN0Q29udGVudE9uVG91Y2gpOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1w
bC5oOgorICAgICAgICAoV2ViVmlld0ltcGwpOgorCiAyMDEyLTA4LTIwICBJYW4gVm9sbGljayAg
PHZvbGxpY2tAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gQWRkIHRyYWNpbmcg
Zm9yIGFjdGl2ZSBjb21wb3NpdGVkIGFuaW1hdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYlZpZXdDbGllbnQuaAppbmRleCA3MjZjYzY0ODJmYjY4N2FiMDBiYTBkYzY4
NmIwOGZmMjdhMjBhYWJjLi45MDRkNGEyZDIxNjdlNDcxNjI4NTk4NjZhNTI0ODRmNGZkYjVlYTFk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50
LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlld0NsaWVudC5oCkBA
IC0zNyw3ICszNyw2IEBACiAjaW5jbHVkZSAiV2ViRWRpdGluZ0FjdGlvbi5oIgogI2luY2x1ZGUg
IldlYkZpbGVDaG9vc2VyQ29tcGxldGlvbi5oIgogI2luY2x1ZGUgIldlYkZpbGVDaG9vc2VyUGFy
YW1zLmgiCi0jaW5jbHVkZSAiV2ViSGl0VGVzdFJlc3VsdC5oIgogI2luY2x1ZGUgIldlYlBhZ2VW
aXNpYmlsaXR5U3RhdGUuaCIKICNpbmNsdWRlICJXZWJQb3B1cFR5cGUuaCIKICNpbmNsdWRlICJX
ZWJUZXh0QWZmaW5pdHkuaCIKQEAgLTY0LDYgKzYzLDcgQEAgY2xhc3MgV2ViRnJhbWU7CiBjbGFz
cyBXZWJHZW9sb2NhdGlvbkNsaWVudDsKIGNsYXNzIFdlYkdlb2xvY2F0aW9uU2VydmljZTsKIGNs
YXNzIFdlYkhlbHBlclBsdWdpbjsKK2NsYXNzIFdlYkhpdFRlc3RSZXN1bHQ7CiBjbGFzcyBXZWJJ
Y29uTG9hZGluZ0NvbXBsZXRpb247CiBjbGFzcyBXZWJJbWFnZTsKIGNsYXNzIFdlYklucHV0RWxl
bWVudDsKQEAgLTM3NCw5ICszNzQsOCBAQCBwdWJsaWM6CiAKICAgICAvLyBSZXRyaWV2ZXMgZGV0
ZWN0YWJsZSBjb250ZW50IChlLmcuLCBlbWFpbCBhZGRyZXNzZXMsIHBob25lIG51bWJlcnMpCiAg
ICAgLy8gYXJvdW5kIGEgaGl0IHRlc3QgcmVzdWx0LiBUaGUgZW1iZWRkZXIgc2hvdWxkIHVzZSBw
bGF0Zm9ybS1zcGVjaWZpYwotICAgIC8vIGNvbnRlbnQgZGV0ZWN0b3JzIChlLmcuLCBmcm9tIHRo
ZSBBbmRyb2lkIGludGVudCBzeXN0ZW0pIHRvIGFuYWx5emUgdGhlCi0gICAgLy8gcmVnaW9uIGFy
b3VuZCB0aGUgaGl0IHRlc3QgcmVzdWx0LgotICAgIHZpcnR1YWwgV2ViQ29udGVudERldGVjdGlv
blJlc3VsdCBkZXRlY3RDb250ZW50SW50ZW50QXJvdW5kKGNvbnN0IFdlYkhpdFRlc3RSZXN1bHQm
KSB7IHJldHVybiBXZWJDb250ZW50RGV0ZWN0aW9uUmVzdWx0KCk7IH0KKyAgICAvLyBjb250ZW50
IGRldGVjdG9ycyB0byBhbmFseXplIHRoZSByZWdpb24gYXJvdW5kIHRoZSBoaXQgdGVzdCByZXN1
bHQuCisgICAgdmlydHVhbCBXZWJDb250ZW50RGV0ZWN0aW9uUmVzdWx0IGRldGVjdENvbnRlbnRB
cm91bmQoY29uc3QgV2ViSGl0VGVzdFJlc3VsdCYpIHsgcmV0dXJuIFdlYkNvbnRlbnREZXRlY3Rp
b25SZXN1bHQoKTsgfQogCiAgICAgLy8gU2NoZWR1bGVzIGEgbmV3IGNvbnRlbnQgaW50ZW50IHdp
dGggdGhlIHByb3ZpZGVkIHVybC4KICAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVDb250ZW50SW50
ZW50KGNvbnN0IFdlYlVSTCYpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViVmlld0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmll
d0ltcGwuY3BwCmluZGV4IDBiZDNlYTExNmU0YzA1MmRlYWEwNWU2NjMwNzY0ZTMyZjljYTQxNjgu
LmFlYTNmNDQzZWY1OTk4MDU4NmQ3ODM1ODRkOWJmZTkzMDhiY2U5N2IgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKQEAgLTEyOSw2ICsxMjksNyBAQAogI2lu
Y2x1ZGUgIldlYkRldlRvb2xzQWdlbnRQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViRnJhbWVJbXBs
LmgiCiAjaW5jbHVkZSAiV2ViSGVscGVyUGx1Z2luSW1wbC5oIgorI2luY2x1ZGUgIldlYkhpdFRl
c3RSZXN1bHQuaCIKICNpbmNsdWRlICJXZWJJbnB1dEVsZW1lbnQuaCIKICNpbmNsdWRlICJXZWJJ
bnB1dEV2ZW50LmgiCiAjaW5jbHVkZSAiV2ViSW5wdXRFdmVudENvbnZlcnNpb24uaCIKQEAgLTM4
NTUsNyArMzg1Niw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OnNlbGVjdEF1dG9maWxsU3VnZ2VzdGlv
bkF0SW5kZXgodW5zaWduZWQgbGlzdEluZGV4KQogICAgICAgICBtX2F1dG9maWxsUG9wdXBDbGll
bnQtPnZhbHVlQ2hhbmdlZChsaXN0SW5kZXgpOwogfQogCi1ib29sIFdlYlZpZXdJbXBsOjpkZXRl
Y3RDb250ZW50SW50ZW50T25Ub3VjaChjb25zdCBXZWJQb2ludCYgcG9zaXRpb24sIFdlYklucHV0
RXZlbnQ6OlR5cGUgdG91Y2hUeXBlKQorYm9vbCBXZWJWaWV3SW1wbDo6ZGV0ZWN0Q29udGVudE9u
VG91Y2goY29uc3QgV2ViUG9pbnQmIHBvc2l0aW9uLCBXZWJJbnB1dEV2ZW50OjpUeXBlIHRvdWNo
VHlwZSkKIHsKICAgICBBU1NFUlQodG91Y2hUeXBlID09IFdlYklucHV0RXZlbnQ6Okdlc3R1cmVU
YXAgfHwgdG91Y2hUeXBlID09IFdlYklucHV0RXZlbnQ6Okdlc3R1cmVMb25nUHJlc3MpOwogICAg
IEhpdFRlc3RSZXN1bHQgdG91Y2hIaXQgPSBoaXRUZXN0UmVzdWx0Rm9yV2luZG93UG9zKHBvc2l0
aW9uKTsKQEAgLTM4NjksNyArMzg3MCw3IEBAIGJvb2wgV2ViVmlld0ltcGw6OmRldGVjdENvbnRl
bnRJbnRlbnRPblRvdWNoKGNvbnN0IFdlYlBvaW50JiBwb3NpdGlvbiwgV2ViSW5wdXRFCiAKICAg
ICAvLyBGSVhNRTogU2hvdWxkIHdlIG5vdCBkZXRlY3QgY29udGVudCBpbnRlbnRzIGluIG5vZGVz
IHRoYXQgaGF2ZSBldmVudCBsaXN0ZW5lcnM/CiAKLSAgICBXZWJDb250ZW50RGV0ZWN0aW9uUmVz
dWx0IGNvbnRlbnQgPSBtX2NsaWVudC0+ZGV0ZWN0Q29udGVudEludGVudEFyb3VuZCh0b3VjaEhp
dCk7CisgICAgV2ViQ29udGVudERldGVjdGlvblJlc3VsdCBjb250ZW50ID0gbV9jbGllbnQtPmRl
dGVjdENvbnRlbnRBcm91bmQodG91Y2hIaXQpOwogICAgIGlmICghY29udGVudC5pc1ZhbGlkKCkp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViVmlld0ltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZp
ZXdJbXBsLmgKaW5kZXggMzk3ODM2ODBmYTE5ODk4ODZjNDYwYjEzZDQwZGQxNDA0MWEyYTQyYi4u
YzhiZjU4NGVhY2Q5MTdmMjU5MzJmOGE5YWRmZDlhNzNjNGI2ZDBiYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCkBAIC0zOTEsNyArMzkxLDcgQEAgcHVibGljOgog
ICAgIHZvaWQgbW91c2VDb250ZXh0TWVudShjb25zdCBXZWJNb3VzZUV2ZW50Jik7CiAgICAgdm9p
ZCBtb3VzZURvdWJsZUNsaWNrKGNvbnN0IFdlYk1vdXNlRXZlbnQmKTsKIAotICAgIGJvb2wgZGV0
ZWN0Q29udGVudEludGVudE9uVG91Y2goY29uc3QgV2ViUG9pbnQmLCBXZWJJbnB1dEV2ZW50OjpU
eXBlKTsKKyAgICBib29sIGRldGVjdENvbnRlbnRPblRvdWNoKGNvbnN0IFdlYlBvaW50JiwgV2Vi
SW5wdXRFdmVudDo6VHlwZSk7CiAgICAgdm9pZCBzdGFydFBhZ2VTY2FsZUFuaW1hdGlvbihjb25z
dCBXZWJDb3JlOjpJbnRQb2ludCYgdGFyZ2V0UG9zaXRpb24sIGJvb2wgdXNlQW5jaG9yLCBmbG9h
dCBuZXdTY2FsZSwgZG91YmxlIGR1cmF0aW9uSW5TZWNvbmRzKTsKIAogICAgIHZvaWQgbnVtYmVy
T2ZXaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKHVuc2lnbmVkKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>