<?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>92394</bug_id>
          
          <creation_ts>2012-07-26 10:35:37 -0700</creation_ts>
          <short_desc>[Qt] Fix axis locking when panning on N9</short_desc>
          <delta_ts>2012-08-02 09:07:22 -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 Qt</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="Lauro Moura Maranhao Neto">lauro.neto</reporter>
          <assigned_to name="Lauro Moura Maranhao Neto">lauro.neto</assigned_to>
          <cc>abecsi</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>hausmann</cc>
    
    <cc>kenneth</cc>
    
    <cc>menard</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zoltan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>679482</commentid>
    <comment_count>0</comment_count>
    <who name="Lauro Moura Maranhao Neto">lauro.neto</who>
    <bug_when>2012-07-26 10:35:37 -0700</bug_when>
    <thetext>Steps to reproduce:

- Run a rather recent version of Qt5 and WebView (Since June), opening up a page that allows panning in all directions (e.g. a zoomed page).
- Pan it.
- Lift the finger, the screen will update (which currently is slow, taking at least at least a couple of seconds, but it&apos;s another problem).
- While the screen is updating, slowly swipe the finger again to pan, or even just press the screen.
- Almost always the screen will lock. If panning vertically, the screen will lock horizontally.

About locking easily, the problem seems to be that the AxisLocker class uses a QElapsedTimer to check the time between the events. The intense CPU work when updating the screen causes the events to be delivered late, leading to wrong elapsed time values. Often the touch events were received with less than 5 miliseconds between them.

About the wrong axis, on N9 the native X orientation is landscape. So when swiping vertically in portrait mode (default usage), the TouchPoing.screenPos() coordinates changes the x member, not the expected y member.

Cleaning up a working patch to upload.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>679625</commentid>
    <comment_count>1</comment_count>
      <attachid>154714</attachid>
    <who name="Lauro Moura Maranhao Neto">lauro.neto</who>
    <bug_when>2012-07-26 12:00:24 -0700</bug_when>
    <thetext>Created attachment 154714
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>680331</commentid>
    <comment_count>2</comment_count>
      <attachid>154714</attachid>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2012-07-27 02:15:05 -0700</bug_when>
    <thetext>Comment on attachment 154714
Patch

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

Switching to the timestamp to calculate the elapsed time is a good idea.

&gt; Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp:227
&gt; +    if (event-&gt;type() == QEvent::TouchBegin) {
&gt; +        const QTouchEvent::TouchPoint&amp; initialPoint = event-&gt;touchPoints().first();
&gt; +        // Use screenPos as it&apos;ll be used to create synthetic MouseEvents
&gt; +        setReferencePosition(initialPoint.screenPos());
&gt; +        m_initialPosition = initialPoint.pos();
&gt; +        m_time = event-&gt;timestamp();
&gt; +        m_sampleCount = 0;
&gt; +        return;
&gt; +    }
&gt;  
&gt; -    if (m_sampleCount == 1) {
&gt; -        m_initialScreenPosition = touchPoint.screenPos();
&gt; -        m_time.restart();
&gt; +    if (event-&gt;type() == QEvent::TouchEnd) {
&gt; +        reset();
&gt;          return;
&gt;      }

Depending on TouchBegin and TouchEnd for axis locking does not seem right to me since a pan gesture might start with a TouchUpdate which has only one touch point (the previous update had multiple points -&gt; transition from a pinch gesture) and it might end with a TouchUpdate when the event has multiple touch points (transition to a potential pinch gesture).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>680588</commentid>
    <comment_count>3</comment_count>
    <who name="Lauro Moura Maranhao Neto">lauro.neto</who>
    <bug_when>2012-07-27 07:03:40 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 154714 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=154714&amp;action=review
&gt; Depending on TouchBegin and TouchEnd for axis locking does not seem right to me since a pan gesture might start with a TouchUpdate which has only one touch point (the previous update had multiple points -&gt; transition from a pinch gesture) and it might end with a TouchUpdate when the event has multiple touch points (transition to a potential pinch gesture).

Good point. Going to update the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>681191</commentid>
    <comment_count>4</comment_count>
      <attachid>155079</attachid>
    <who name="Lauro Moura Maranhao Neto">lauro.neto</who>
    <bug_when>2012-07-27 15:57:19 -0700</bug_when>
    <thetext>Created attachment 155079
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>681387</commentid>
    <comment_count>5</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-07-28 03:46:00 -0700</bug_when>
    <thetext>Andras what do you think about this? Btw, remember adding punctuation mark to the end of comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>681849</commentid>
    <comment_count>6</comment_count>
      <attachid>155079</attachid>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2012-07-30 04:16:19 -0700</bug_when>
    <thetext>Comment on attachment 155079
Patch

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

The patch looks better now but I still have some concerns. It would also be good to have a manual test for this in ManualTests/qt if possible, which triggers the issues on the N9.

&gt; Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp:219
&gt; +        // Use screenPos as it&apos;ll be used to create synthetic MouseEvents
&gt; +        setReferencePosition(initialPoint.screenPos());

I do not really understand this part. Why do we need the screenPos for the reference position when the pan gesture recognizer uses touchPoint.pos() when calling panGestureRequestUpdate which position is then used for the MouseEvent? The incoming touch position is in viewport coordinates and is the same local position which is then used by the pan gesture recognizer to notify the Flickable. With this change we end up with one component of the position in local coordinates and the other in screen coordinates when locking.
I might miss something but the issue you try to fix here seems rather to be an orientation bug on the N9 where the touch coordinates do not get properly translated to portrait mode in the canvas.

&gt; Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp:-1874
&gt; -    Q_D(QQuickWebView);
&gt; -    d-&gt;axisLocker.setReferencePosition(position);

The intention of setting the reference point when the notification comes from the pan gesture recognizer (after coming back from the web process) was that some events might be handled by the page and in that case the event is ignored by the event handler. So if the reference position is set on the incoming side we might end up with a wrong reference position in cases when that event is ignored but subsequent events get through to the Flickable without triggering a reset of the lock. Though it might not be possible to produce a page that triggers errors related to this behaviour.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>683109</commentid>
    <comment_count>7</comment_count>
      <attachid>155546</attachid>
    <who name="Lauro Moura Maranhao Neto">lauro.neto</who>
    <bug_when>2012-07-31 08:29:24 -0700</bug_when>
    <thetext>Created attachment 155546
Patch

Updated the patch removing the setReferencePosition changes. Now it only uses pos() and the timestamp to calculate the local velocity. Indeed on N9 the screenPos is locked to landscape, with 0,0 being the top right corner in portrait mode. But wouldn&apos;t just using the local position be enough to get the swipe velocity calculation right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>683210</commentid>
    <comment_count>8</comment_count>
      <attachid>155546</attachid>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2012-07-31 09:53:01 -0700</bug_when>
    <thetext>Comment on attachment 155546
Patch

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

It should be OK to use the local position for the velocity calculation.
This looks good to me now.

&gt; Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp:204
&gt; +    const ulong elapsed = event-&gt;timestamp() - m_time;
&gt;  
&gt;      if (!elapsed)
&gt;          return QVector2D(0, 0);

You could add an ASSERT to assure that the calculated elapsed time is positive, but that&apos;s only a nitpick.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>683267</commentid>
    <comment_count>9</comment_count>
    <who name="Lauro Moura Maranhao Neto">lauro.neto</who>
    <bug_when>2012-07-31 11:03:39 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 155546 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=155546&amp;action=review
&gt; &gt; Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp:204
&gt; &gt; +    const ulong elapsed = event-&gt;timestamp() - m_time;
&gt; &gt;  
&gt; &gt;      if (!elapsed)
&gt; &gt;          return QVector2D(0, 0);
&gt; 
&gt; You could add an ASSERT to assure that the calculated elapsed time is positive, but that&apos;s only a nitpick.

Both timestamp() and m_time are ulongs, so it&apos;s pretty safe to just subtract.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>683381</commentid>
    <comment_count>10</comment_count>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2012-07-31 12:27:34 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #8)
&gt; &gt; (From update of attachment 155546 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=155546&amp;action=review
&gt; &gt; &gt; Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp:204
&gt; &gt; &gt; +    const ulong elapsed = event-&gt;timestamp() - m_time;
&gt; &gt; &gt;  
&gt; &gt; &gt;      if (!elapsed)
&gt; &gt; &gt;          return QVector2D(0, 0);
&gt; &gt; 
&gt; &gt; You could add an ASSERT to assure that the calculated elapsed time is positive, but that&apos;s only a nitpick.
&gt; 
&gt; Both timestamp() and m_time are ulongs, so it&apos;s pretty safe to just subtract.
Unsigned indeed, disregard my rubbish. It&apos;s just my paranoia.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>685373</commentid>
    <comment_count>11</comment_count>
      <attachid>155546</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-08-02 07:43:50 -0700</bug_when>
    <thetext>Comment on attachment 155546
Patch

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

&gt; Source/WebKit2/UIProcess/API/qt/qquickwebview_p_p.h:145
&gt; +        ulong m_time;

Shouldn&apos;t the constructor try to initialize this variable to reduce the risk of accessing it uninitialized?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>685398</commentid>
    <comment_count>12</comment_count>
      <attachid>156085</attachid>
    <who name="Lauro Moura Maranhao Neto">lauro.neto</who>
    <bug_when>2012-08-02 08:08:25 -0700</bug_when>
    <thetext>Created attachment 156085
Patch

Updated the patch initializing m_time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>685460</commentid>
    <comment_count>13</comment_count>
      <attachid>156085</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-02 09:07:17 -0700</bug_when>
    <thetext>Comment on attachment 156085
Patch

Clearing flags on attachment: 156085

Committed r124462: &lt;http://trac.webkit.org/changeset/124462&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>685462</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-02 09:07:22 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>154714</attachid>
            <date>2012-07-26 12:00:24 -0700</date>
            <delta_ts>2012-07-27 15:57:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92394-20120726160012.patch</filename>
            <type>text/plain</type>
            <size>5211</size>
            <attacher name="Lauro Moura Maranhao Neto">lauro.neto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzNzQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggODk4ZmFkMzZiMGI3NDUx
YWY0NzVlOGRkNmI4YWEyODk3NzY3ZWNkYi4uZWUwMGEzN2UzMjhiMWQ5NzcwODNhZTRhYWE3YjBh
YWFiMTBiZTA2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEyLTA3LTI2ICBMYXVy
byBOZXRvICA8bGF1cm8ubmV0b0BvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFtRdF0gRml4IGF4
aXMgbG9ja2luZyB3aGVuIHBhbm5pbmcgb24gTjkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTkyMzk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgTWFrZSB0aGUgUVF1aWNrV2ViVmlldyBheGlzIGxvY2tlciBj
YWxjdWxhdGUgdGhlCisgICAgICAgIHRpbWUgYmV0d2VlbiBldmVudHMgdXNpbmcgUUlucHV0RXZl
bnQudGltZXN0YW1wLCB3aGljaAorICAgICAgICBpcyBzZXQgZnJvbSB0aGUgbmF0aXZlIGV2ZW50
IHdoZW4gYXZhaWxhYmxlLgorCisgICAgICAgIEFsc28gdXNlIHRvdWNoUG9pbnQucG9zKCkgaW5z
dGVhZCBvZiBzY3JlZW5Qb3MoKSB0bworICAgICAgICBjb3JyZWN0IHRoZSBheGlzIGRldGVjdGlv
biB3aGVuIHJ1bm5pbmcgb24gTjksIHdoaWNoCisgICAgICAgIGhhcyBhIG5hdGl2ZSBsYW5kc2Nh
cGUgZGlzcGxheSBhbmQgdGhlIGFwcGxpY2F0aW9ucyB1c3VhbGx5CisgICAgICAgIHJ1biBpbiBw
b3J0cmFpdCBtb2RlLiBLZWVwIHRoZSByZWZlcmVuY2UgbG9jayBwb3NpdGlvbiBpbgorICAgICAg
ICBzY3JlZW4gY29vcmRzIGFzIGl0J2xsIGJlIHVzZWQgdG8gY3JlYXRlIG1vdXNlIGV2ZW50cyBs
YXRlci4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHA6Cisg
ICAgICAgIChRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6RmxpY2thYmxlQXhpc0xvY2tlcjo6dG91Y2hW
ZWxvY2l0eSk6CisgICAgICAgIChRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6RmxpY2thYmxlQXhpc0xv
Y2tlcjo6dXBkYXRlKToKKyAgICAgICAgKFFRdWlja1dlYlZpZXdQcml2YXRlOjpGbGlja2FibGVB
eGlzTG9ja2VyOjpyZXNldCk6CisgICAgICAgIChRUXVpY2tXZWJWaWV3Ojp0b3VjaEV2ZW50KToK
KyAgICAgICAgKFFRdWlja1dlYlZpZXc6OmhhbmRsZUZsaWNrYWJsZU1vdXNlUHJlc3MpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wX3AuaDoKKyAgICAgICAgKEZs
aWNrYWJsZUF4aXNMb2NrZXIpOgorCiAyMDEyLTA3LTI2ICBDaHJpc3RvcGhlIER1bWV6ICA8Y2hy
aXN0b3BoZS5kdW1lekBpbnRlbC5jb20+CiAKICAgICAgICAgW0VGTF1bV0syXSBBZGQgZm9ybSBj
bGllbnQgZm9yIEV3a19WaWV3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9x
dC9xcXVpY2t3ZWJ2aWV3LmNwcAppbmRleCBmYTA0NDZmZWM2NGExYjAwNWJkZmQ5Njk0ZmJlMTRi
OWNkY2NiNmQ4Li40NGEwMDcxZDEzYjBmNjdjYTg4OTg4ZmVhZDA5ODgxZWY5NDNhNDY2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHAK
QEAgLTE5Nyw4ICsxOTcsOCBAQCBRVmVjdG9yMkQgUVF1aWNrV2ViVmlld1ByaXZhdGU6OkZsaWNr
YWJsZUF4aXNMb2NrZXI6OnRvdWNoVmVsb2NpdHkoY29uc3QgUVRvdWNoRQogICAgIGlmICh0b3Vj
aFZlbG9jaXR5QXZhaWxhYmxlKQogICAgICAgICByZXR1cm4gdG91Y2hQb2ludC52ZWxvY2l0eSgp
OwogCi0gICAgY29uc3QgUUxpbmVGIG1vdmVtZW50TGluZSh0b3VjaFBvaW50LnNjcmVlblBvcygp
LCBtX2luaXRpYWxTY3JlZW5Qb3NpdGlvbik7Ci0gICAgY29uc3QgcWludDY0IGVsYXBzZWQgPSBt
X3RpbWUuZWxhcHNlZCgpOworICAgIGNvbnN0IFFMaW5lRiBtb3ZlbWVudExpbmUodG91Y2hQb2lu
dC5wb3MoKSwgbV9pbml0aWFsUG9zaXRpb24pOworICAgIGNvbnN0IHVsb25nIGVsYXBzZWQgPSBl
dmVudC0+dGltZXN0YW1wKCkgLSBtX3RpbWU7CiAKICAgICBpZiAoIWVsYXBzZWQpCiAgICAgICAg
IHJldHVybiBRVmVjdG9yMkQoMCwgMCk7CkBAIC0yMTAsMTYgKzIxMCwyNCBAQCBRVmVjdG9yMkQg
UVF1aWNrV2ViVmlld1ByaXZhdGU6OkZsaWNrYWJsZUF4aXNMb2NrZXI6OnRvdWNoVmVsb2NpdHko
Y29uc3QgUVRvdWNoRQogdm9pZCBRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6RmxpY2thYmxlQXhpc0xv
Y2tlcjo6dXBkYXRlKGNvbnN0IFFUb3VjaEV2ZW50KiBldmVudCkKIHsKICAgICBBU1NFUlQoZXZl
bnQtPnRvdWNoUG9pbnRzKCkuc2l6ZSgpID09IDEpOwotICAgIGNvbnN0IFFUb3VjaEV2ZW50OjpU
b3VjaFBvaW50JiB0b3VjaFBvaW50ID0gZXZlbnQtPnRvdWNoUG9pbnRzKCkuZmlyc3QoKTsKIAot
ICAgICsrbV9zYW1wbGVDb3VudDsKKyAgICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBRRXZlbnQ6OlRv
dWNoQmVnaW4pIHsKKyAgICAgICAgY29uc3QgUVRvdWNoRXZlbnQ6OlRvdWNoUG9pbnQmIGluaXRp
YWxQb2ludCA9IGV2ZW50LT50b3VjaFBvaW50cygpLmZpcnN0KCk7CisgICAgICAgIC8vIFVzZSBz
Y3JlZW5Qb3MgYXMgaXQnbGwgYmUgdXNlZCB0byBjcmVhdGUgc3ludGhldGljIE1vdXNlRXZlbnRz
CisgICAgICAgIHNldFJlZmVyZW5jZVBvc2l0aW9uKGluaXRpYWxQb2ludC5zY3JlZW5Qb3MoKSk7
CisgICAgICAgIG1faW5pdGlhbFBvc2l0aW9uID0gaW5pdGlhbFBvaW50LnBvcygpOworICAgICAg
ICBtX3RpbWUgPSBldmVudC0+dGltZXN0YW1wKCk7CisgICAgICAgIG1fc2FtcGxlQ291bnQgPSAw
OworICAgICAgICByZXR1cm47CisgICAgfQogCi0gICAgaWYgKG1fc2FtcGxlQ291bnQgPT0gMSkg
ewotICAgICAgICBtX2luaXRpYWxTY3JlZW5Qb3NpdGlvbiA9IHRvdWNoUG9pbnQuc2NyZWVuUG9z
KCk7Ci0gICAgICAgIG1fdGltZS5yZXN0YXJ0KCk7CisgICAgaWYgKGV2ZW50LT50eXBlKCkgPT0g
UUV2ZW50OjpUb3VjaEVuZCkgeworICAgICAgICByZXNldCgpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQogCisgICAgKyttX3NhbXBsZUNvdW50OworCiAgICAgaWYgKG1fc2FtcGxlQ291bnQgPiBr
QXhpc0xvY2tTYW1wbGVDb3VudAogICAgICAgICAgICAgfHwgbV9hbGxvd2VkRGlyZWN0aW9uID09
IFFRdWlja0ZsaWNrYWJsZTo6SG9yaXpvbnRhbEZsaWNrCiAgICAgICAgICAgICB8fCBtX2FsbG93
ZWREaXJlY3Rpb24gPT0gUVF1aWNrRmxpY2thYmxlOjpWZXJ0aWNhbEZsaWNrKQpAQCAtMjQxLDcg
KzI0OSw2IEBAIHZvaWQgUVF1aWNrV2ViVmlld1ByaXZhdGU6OkZsaWNrYWJsZUF4aXNMb2NrZXI6
OnNldFJlZmVyZW5jZVBvc2l0aW9uKGNvbnN0IFFQb2luCiB2b2lkIFFRdWlja1dlYlZpZXdQcml2
YXRlOjpGbGlja2FibGVBeGlzTG9ja2VyOjpyZXNldCgpCiB7CiAgICAgbV9hbGxvd2VkRGlyZWN0
aW9uID0gUVF1aWNrRmxpY2thYmxlOjpBdXRvRmxpY2tEaXJlY3Rpb247Ci0gICAgbV9zYW1wbGVD
b3VudCA9IDA7CiB9CiAKIFFQb2ludEYgUVF1aWNrV2ViVmlld1ByaXZhdGU6OkZsaWNrYWJsZUF4
aXNMb2NrZXI6OmFkanVzdChjb25zdCBRUG9pbnRGJiBwb3NpdGlvbikKQEAgLTE3NTUsOCArMTc2
Miw2IEBAIHZvaWQgUVF1aWNrV2ViVmlldzo6dG91Y2hFdmVudChRVG91Y2hFdmVudCogZXZlbnQp
CiAKICAgICBpZiAoIWxvY2tpbmdEaXNhYmxlZCkKICAgICAgICAgZC0+YXhpc0xvY2tlci51cGRh
dGUoZXZlbnQpOwotICAgIGVsc2UKLSAgICAgICAgZC0+YXhpc0xvY2tlci5yZXNldCgpOwogCiAg
ICAgZm9yY2VBY3RpdmVGb2N1cygpOwogICAgIGQtPnBhZ2VWaWV3LT5ldmVudEhhbmRsZXIoKS0+
aGFuZGxlVG91Y2hFdmVudChldmVudCk7CkBAIC0xODcwLDggKzE4NzUsNiBAQCB2b2lkIFFRdWlj
a1dlYlZpZXc6OnNldENvbnRlbnRQb3MoY29uc3QgUVBvaW50RiYgcG9zKQogCiB2b2lkIFFRdWlj
a1dlYlZpZXc6OmhhbmRsZUZsaWNrYWJsZU1vdXNlUHJlc3MoY29uc3QgUVBvaW50RiYgcG9zaXRp
b24sIHFpbnQ2NCBldmVudFRpbWVzdGFtcE1pbGxpcykKIHsKLSAgICBRX0QoUVF1aWNrV2ViVmll
dyk7Ci0gICAgZC0+YXhpc0xvY2tlci5zZXRSZWZlcmVuY2VQb3NpdGlvbihwb3NpdGlvbik7CiAg
ICAgUU1vdXNlRXZlbnQgbW91c2VFdmVudChRRXZlbnQ6Ok1vdXNlQnV0dG9uUHJlc3MsIHBvc2l0
aW9uLCBRdDo6TGVmdEJ1dHRvbiwgUXQ6Ok5vQnV0dG9uLCBRdDo6Tm9Nb2RpZmllcik7CiAgICAg
bW91c2VFdmVudC5zZXRUaW1lc3RhbXAoZXZlbnRUaW1lc3RhbXBNaWxsaXMpOwogICAgIFFRdWlj
a0ZsaWNrYWJsZTo6bW91c2VQcmVzc0V2ZW50KCZtb3VzZUV2ZW50KTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wX3AuaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wX3AuaAppbmRleCBmMTAy
ZjYwMzAyNTI0Y2QyZDZmNjdiMmQzNjFjMjU2YzU4YjY2MDc4Li44YjYzOTczMjE5NDU3ZTZjMDRj
YWQ1OTIzZjVmNDg0Y2RjMGUwZTdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcF9wLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3BfcC5oCkBAIC0xNDIsOCArMTQyLDggQEAgcHJvdGVj
dGVkOgogICAgIGNsYXNzIEZsaWNrYWJsZUF4aXNMb2NrZXIgewogICAgICAgICBRUXVpY2tGbGlj
a2FibGU6OkZsaWNrYWJsZURpcmVjdGlvbiBtX2FsbG93ZWREaXJlY3Rpb247CiAKLSAgICAgICAg
UUVsYXBzZWRUaW1lciBtX3RpbWU7Ci0gICAgICAgIFFQb2ludEYgbV9pbml0aWFsU2NyZWVuUG9z
aXRpb247CisgICAgICAgIHVsb25nIG1fdGltZTsKKyAgICAgICAgUVBvaW50RiBtX2luaXRpYWxQ
b3NpdGlvbjsKICAgICAgICAgUVBvaW50RiBtX2xvY2tSZWZlcmVuY2VQb3NpdGlvbjsKICAgICAg
ICAgaW50IG1fc2FtcGxlQ291bnQ7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155079</attachid>
            <date>2012-07-27 15:57:19 -0700</date>
            <delta_ts>2012-07-31 08:29:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92394-20120727195705.patch</filename>
            <type>text/plain</type>
            <size>4247</size>
            <attacher name="Lauro Moura Maranhao Neto">lauro.neto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzOTI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZTI0ZGJhYTRiZDk4NWQw
MjgxMzIyYjg0NmIwMmE3YWNlNTRhNWEwNi4uNjUxN2ZhYzk2NzYzNjAyNDk2Yjk3MTA4YWIxOTNi
NDRiYTUyY2U0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEyLTA3LTI2ICBMYXVy
byBOZXRvICA8bGF1cm8ubmV0b0BvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFtRdF0gRml4IGF4
aXMgbG9ja2luZyB3aGVuIHBhbm5pbmcgb24gTjkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTkyMzk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgTWFrZSB0aGUgUVF1aWNrV2ViVmlldyBheGlzIGxvY2tlciBj
YWxjdWxhdGUgdGhlCisgICAgICAgIHRpbWUgYmV0d2VlbiBldmVudHMgdXNpbmcgUUlucHV0RXZl
bnQudGltZXN0YW1wLCB3aGljaAorICAgICAgICBpcyBzZXQgZnJvbSB0aGUgbmF0aXZlIGV2ZW50
IHdoZW4gYXZhaWxhYmxlLgorCisgICAgICAgIEFsc28gdXNlIHRvdWNoUG9pbnQucG9zKCkgaW5z
dGVhZCBvZiBzY3JlZW5Qb3MoKSB0bworICAgICAgICBjb3JyZWN0IHRoZSBheGlzIGRldGVjdGlv
biB3aGVuIHJ1bm5pbmcgb24gTjksIHdoaWNoCisgICAgICAgIGhhcyBhIG5hdGl2ZSBsYW5kc2Nh
cGUgZGlzcGxheSBhbmQgdGhlIGFwcGxpY2F0aW9ucyB1c3VhbGx5CisgICAgICAgIHJ1biBpbiBw
b3J0cmFpdCBtb2RlLiBLZWVwIHRoZSByZWZlcmVuY2UgbG9jayBwb3NpdGlvbiBpbgorICAgICAg
ICBzY3JlZW4gY29vcmRzIGFzIGl0J2xsIGJlIHVzZWQgdG8gY3JlYXRlIG1vdXNlIGV2ZW50cyBs
YXRlci4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHA6Cisg
ICAgICAgIChRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6RmxpY2thYmxlQXhpc0xvY2tlcjo6dG91Y2hW
ZWxvY2l0eSk6CisgICAgICAgIChRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6RmxpY2thYmxlQXhpc0xv
Y2tlcjo6dXBkYXRlKToKKyAgICAgICAgKFFRdWlja1dlYlZpZXdQcml2YXRlOjpGbGlja2FibGVB
eGlzTG9ja2VyOjpyZXNldCk6CisgICAgICAgIChRUXVpY2tXZWJWaWV3Ojp0b3VjaEV2ZW50KToK
KyAgICAgICAgKFFRdWlja1dlYlZpZXc6OmhhbmRsZUZsaWNrYWJsZU1vdXNlUHJlc3MpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wX3AuaDoKKyAgICAgICAgKEZs
aWNrYWJsZUF4aXNMb2NrZXIpOgorCiAyMDEyLTA3LTI3ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRl
cnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgRG9uJ3QgdXNlIGFuIE5TVXNlckRlZmF1bHQgZm9y
IGRpc2FibGluZyB0aGUgd2ViIHByb2Nlc3Mgc2FuZGJveApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHAKaW5kZXggZmEwNDQ2ZmVjNjRhMWIw
MDViZGZkOTY5NGZiZTE0YjljZGNjYjZkOC4uYjY5ZjNmNDBlYWYyNzZhZWI1YTA5YWNiNjcyMmM1
NzVmYTAwNTE5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9x
cXVpY2t3ZWJ2aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Fx
dWlja3dlYnZpZXcuY3BwCkBAIC0xOTcsOCArMTk3LDggQEAgUVZlY3RvcjJEIFFRdWlja1dlYlZp
ZXdQcml2YXRlOjpGbGlja2FibGVBeGlzTG9ja2VyOjp0b3VjaFZlbG9jaXR5KGNvbnN0IFFUb3Vj
aEUKICAgICBpZiAodG91Y2hWZWxvY2l0eUF2YWlsYWJsZSkKICAgICAgICAgcmV0dXJuIHRvdWNo
UG9pbnQudmVsb2NpdHkoKTsKIAotICAgIGNvbnN0IFFMaW5lRiBtb3ZlbWVudExpbmUodG91Y2hQ
b2ludC5zY3JlZW5Qb3MoKSwgbV9pbml0aWFsU2NyZWVuUG9zaXRpb24pOwotICAgIGNvbnN0IHFp
bnQ2NCBlbGFwc2VkID0gbV90aW1lLmVsYXBzZWQoKTsKKyAgICBjb25zdCBRTGluZUYgbW92ZW1l
bnRMaW5lKHRvdWNoUG9pbnQucG9zKCksIG1faW5pdGlhbFBvc2l0aW9uKTsKKyAgICBjb25zdCB1
bG9uZyBlbGFwc2VkID0gZXZlbnQtPnRpbWVzdGFtcCgpIC0gbV90aW1lOwogCiAgICAgaWYgKCFl
bGFwc2VkKQogICAgICAgICByZXR1cm4gUVZlY3RvcjJEKDAsIDApOwpAQCAtMjEwLDEzICsyMTAs
MTUgQEAgUVZlY3RvcjJEIFFRdWlja1dlYlZpZXdQcml2YXRlOjpGbGlja2FibGVBeGlzTG9ja2Vy
Ojp0b3VjaFZlbG9jaXR5KGNvbnN0IFFUb3VjaEUKIHZvaWQgUVF1aWNrV2ViVmlld1ByaXZhdGU6
OkZsaWNrYWJsZUF4aXNMb2NrZXI6OnVwZGF0ZShjb25zdCBRVG91Y2hFdmVudCogZXZlbnQpCiB7
CiAgICAgQVNTRVJUKGV2ZW50LT50b3VjaFBvaW50cygpLnNpemUoKSA9PSAxKTsKLSAgICBjb25z
dCBRVG91Y2hFdmVudDo6VG91Y2hQb2ludCYgdG91Y2hQb2ludCA9IGV2ZW50LT50b3VjaFBvaW50
cygpLmZpcnN0KCk7CiAKICAgICArK21fc2FtcGxlQ291bnQ7CiAKICAgICBpZiAobV9zYW1wbGVD
b3VudCA9PSAxKSB7Ci0gICAgICAgIG1faW5pdGlhbFNjcmVlblBvc2l0aW9uID0gdG91Y2hQb2lu
dC5zY3JlZW5Qb3MoKTsKLSAgICAgICAgbV90aW1lLnJlc3RhcnQoKTsKKyAgICAgICAgY29uc3Qg
UVRvdWNoRXZlbnQ6OlRvdWNoUG9pbnQmIGluaXRpYWxQb2ludCA9IGV2ZW50LT50b3VjaFBvaW50
cygpLmZpcnN0KCk7CisgICAgICAgIC8vIFVzZSBzY3JlZW5Qb3MgYXMgaXQnbGwgYmUgdXNlZCB0
byBjcmVhdGUgc3ludGhldGljIE1vdXNlRXZlbnRzCisgICAgICAgIHNldFJlZmVyZW5jZVBvc2l0
aW9uKGluaXRpYWxQb2ludC5zY3JlZW5Qb3MoKSk7CisgICAgICAgIG1faW5pdGlhbFBvc2l0aW9u
ID0gaW5pdGlhbFBvaW50LnBvcygpOworICAgICAgICBtX3RpbWUgPSBldmVudC0+dGltZXN0YW1w
KCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTE4NzAsOCArMTg3Miw2IEBAIHZvaWQg
UVF1aWNrV2ViVmlldzo6c2V0Q29udGVudFBvcyhjb25zdCBRUG9pbnRGJiBwb3MpCiAKIHZvaWQg
UVF1aWNrV2ViVmlldzo6aGFuZGxlRmxpY2thYmxlTW91c2VQcmVzcyhjb25zdCBRUG9pbnRGJiBw
b3NpdGlvbiwgcWludDY0IGV2ZW50VGltZXN0YW1wTWlsbGlzKQogewotICAgIFFfRChRUXVpY2tX
ZWJWaWV3KTsKLSAgICBkLT5heGlzTG9ja2VyLnNldFJlZmVyZW5jZVBvc2l0aW9uKHBvc2l0aW9u
KTsKICAgICBRTW91c2VFdmVudCBtb3VzZUV2ZW50KFFFdmVudDo6TW91c2VCdXR0b25QcmVzcywg
cG9zaXRpb24sIFF0OjpMZWZ0QnV0dG9uLCBRdDo6Tm9CdXR0b24sIFF0OjpOb01vZGlmaWVyKTsK
ICAgICBtb3VzZUV2ZW50LnNldFRpbWVzdGFtcChldmVudFRpbWVzdGFtcE1pbGxpcyk7CiAgICAg
UVF1aWNrRmxpY2thYmxlOjptb3VzZVByZXNzRXZlbnQoJm1vdXNlRXZlbnQpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3BfcC5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3BfcC5oCmluZGV4
IGYxMDJmNjAzMDI1MjRjZDJkNmY2N2IyZDM2MWMyNTZjNThiNjYwNzguLjhiNjM5NzMyMTk0NTdl
NmMwNGNhZDU5MjNmNWY0ODRjZGMwZTBlN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wX3AuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcF9wLmgKQEAgLTE0Miw4ICsxNDIsOCBAQCBw
cm90ZWN0ZWQ6CiAgICAgY2xhc3MgRmxpY2thYmxlQXhpc0xvY2tlciB7CiAgICAgICAgIFFRdWlj
a0ZsaWNrYWJsZTo6RmxpY2thYmxlRGlyZWN0aW9uIG1fYWxsb3dlZERpcmVjdGlvbjsKIAotICAg
ICAgICBRRWxhcHNlZFRpbWVyIG1fdGltZTsKLSAgICAgICAgUVBvaW50RiBtX2luaXRpYWxTY3Jl
ZW5Qb3NpdGlvbjsKKyAgICAgICAgdWxvbmcgbV90aW1lOworICAgICAgICBRUG9pbnRGIG1faW5p
dGlhbFBvc2l0aW9uOwogICAgICAgICBRUG9pbnRGIG1fbG9ja1JlZmVyZW5jZVBvc2l0aW9uOwog
ICAgICAgICBpbnQgbV9zYW1wbGVDb3VudDsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155546</attachid>
            <date>2012-07-31 08:29:24 -0700</date>
            <delta_ts>2012-08-02 08:08:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92394-20120731122907.patch</filename>
            <type>text/plain</type>
            <size>3086</size>
            <attacher name="Lauro Moura Maranhao Neto">lauro.neto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0MTk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNmQ3N2RmNzQwODkzNzRm
MWI2YWQ4NWI2YjRmMjYyZGJhYTgwZTI0MS4uYjJmYjgwZmQ4NzM2YzU2ZGU3MTJjOWNiYWI2ZTU5
MGEyYWExOGY5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEyLTA3LTMxICBMYXVy
byBOZXRvICA8bGF1cm8ubmV0b0BvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFtRdF0gRml4IGF4
aXMgbG9ja2luZyB3aGVuIHBhbm5pbmcgb24gTjkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTkyMzk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgTWFrZSB0aGUgUVF1aWNrV2ViVmlldyBheGlzIGxvY2tlciBj
YWxjdWxhdGUgdGhlCisgICAgICAgIHRpbWUgYmV0d2VlbiBldmVudHMgdXNpbmcgUUlucHV0RXZl
bnQudGltZXN0YW1wLCB3aGljaAorICAgICAgICBpcyBzZXQgZnJvbSB0aGUgbmF0aXZlIGV2ZW50
IHdoZW4gYXZhaWxhYmxlLgorCisgICAgICAgIEFsc28gdXNlIHRvdWNoUG9pbnQucG9zKCkgaW5z
dGVhZCBvZiBzY3JlZW5Qb3MoKSB0bworICAgICAgICBjb3JyZWN0IHRoZSBheGlzIGRldGVjdGlv
biB3aGVuIHJ1bm5pbmcgb24gTjksIHdoaWNoCisgICAgICAgIGhhcyBhIG5hdGl2ZSBsYW5kc2Nh
cGUgZGlzcGxheSBhbmQgdGhlIGFwcGxpY2F0aW9ucyB1c3VhbGx5CisgICAgICAgIHJ1biBpbiBw
b3J0cmFpdCBtb2RlLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3
LmNwcDoKKyAgICAgICAgKFFRdWlja1dlYlZpZXdQcml2YXRlOjpGbGlja2FibGVBeGlzTG9ja2Vy
Ojp0b3VjaFZlbG9jaXR5KToKKyAgICAgICAgKFFRdWlja1dlYlZpZXdQcml2YXRlOjpGbGlja2Fi
bGVBeGlzTG9ja2VyOjp1cGRhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXF1aWNr
d2Vidmlld19wX3AuaDoKKyAgICAgICAgKEZsaWNrYWJsZUF4aXNMb2NrZXIpOgorCiAyMDEyLTA3
LTMxICBEYW5pbG8gQ2VzYXIgTGVtZXMgZGUgUGF1bGEgIDxkYW5pbG8uY2VzYXJAY29sbGFib3Jh
LmNvLnVrPgogCiAgICAgICAgIGFkZCBGYXJzdHJlYW0gZmxhZ3MvZGVwcyB0byBXZWJLaXQsIGZv
ciBXZWJSVEMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1
aWNrd2Vidmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dl
YnZpZXcuY3BwCmluZGV4IGJjMDljY2M1ZTFjNzY4YWUyMDQ1ZmE5ZDIxMjJhYzNiMjZlOGNlZjMu
LjFlNjk2MjI5N2JjMzYyZTYxM2ZmMGFlMmUxNTlkZmY0YzRlOTlhYTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcApAQCAtMTk3LDgg
KzE5Nyw4IEBAIFFWZWN0b3IyRCBRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6RmxpY2thYmxlQXhpc0xv
Y2tlcjo6dG91Y2hWZWxvY2l0eShjb25zdCBRVG91Y2hFCiAgICAgaWYgKHRvdWNoVmVsb2NpdHlB
dmFpbGFibGUpCiAgICAgICAgIHJldHVybiB0b3VjaFBvaW50LnZlbG9jaXR5KCk7CiAKLSAgICBj
b25zdCBRTGluZUYgbW92ZW1lbnRMaW5lKHRvdWNoUG9pbnQuc2NyZWVuUG9zKCksIG1faW5pdGlh
bFNjcmVlblBvc2l0aW9uKTsKLSAgICBjb25zdCBxaW50NjQgZWxhcHNlZCA9IG1fdGltZS5lbGFw
c2VkKCk7CisgICAgY29uc3QgUUxpbmVGIG1vdmVtZW50TGluZSh0b3VjaFBvaW50LnBvcygpLCBt
X2luaXRpYWxQb3NpdGlvbik7CisgICAgY29uc3QgdWxvbmcgZWxhcHNlZCA9IGV2ZW50LT50aW1l
c3RhbXAoKSAtIG1fdGltZTsKIAogICAgIGlmICghZWxhcHNlZCkKICAgICAgICAgcmV0dXJuIFFW
ZWN0b3IyRCgwLCAwKTsKQEAgLTIxNSw4ICsyMTUsOCBAQCB2b2lkIFFRdWlja1dlYlZpZXdQcml2
YXRlOjpGbGlja2FibGVBeGlzTG9ja2VyOjp1cGRhdGUoY29uc3QgUVRvdWNoRXZlbnQqIGV2ZW50
KQogICAgICsrbV9zYW1wbGVDb3VudDsKIAogICAgIGlmIChtX3NhbXBsZUNvdW50ID09IDEpIHsK
LSAgICAgICAgbV9pbml0aWFsU2NyZWVuUG9zaXRpb24gPSB0b3VjaFBvaW50LnNjcmVlblBvcygp
OwotICAgICAgICBtX3RpbWUucmVzdGFydCgpOworICAgICAgICBtX2luaXRpYWxQb3NpdGlvbiA9
IHRvdWNoUG9pbnQucG9zKCk7CisgICAgICAgIG1fdGltZSA9IGV2ZW50LT50aW1lc3RhbXAoKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3BfcC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3BfcC5oCmluZGV4IGYxMDJmNjAzMDI1MjRjZDJkNmY2
N2IyZDM2MWMyNTZjNThiNjYwNzguLjhiNjM5NzMyMTk0NTdlNmMwNGNhZDU5MjNmNWY0ODRjZGMw
ZTBlN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNr
d2Vidmlld19wX3AuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlj
a3dlYnZpZXdfcF9wLmgKQEAgLTE0Miw4ICsxNDIsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgY2xhc3Mg
RmxpY2thYmxlQXhpc0xvY2tlciB7CiAgICAgICAgIFFRdWlja0ZsaWNrYWJsZTo6RmxpY2thYmxl
RGlyZWN0aW9uIG1fYWxsb3dlZERpcmVjdGlvbjsKIAotICAgICAgICBRRWxhcHNlZFRpbWVyIG1f
dGltZTsKLSAgICAgICAgUVBvaW50RiBtX2luaXRpYWxTY3JlZW5Qb3NpdGlvbjsKKyAgICAgICAg
dWxvbmcgbV90aW1lOworICAgICAgICBRUG9pbnRGIG1faW5pdGlhbFBvc2l0aW9uOwogICAgICAg
ICBRUG9pbnRGIG1fbG9ja1JlZmVyZW5jZVBvc2l0aW9uOwogICAgICAgICBpbnQgbV9zYW1wbGVD
b3VudDsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>156085</attachid>
            <date>2012-08-02 08:08:25 -0700</date>
            <delta_ts>2012-08-02 09:07:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92394-20120802120807.patch</filename>
            <type>text/plain</type>
            <size>3484</size>
            <attacher name="Lauro Moura Maranhao Neto">lauro.neto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0MjEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggODMzNWFjY2M3MDRmODdk
MDhhNDA4MGVkYTUxMGVhMDMzYzNkNDNjOC4uZTE5MzlkOTdmYjk4YzYzNDI0N2RhMjZjNWZlN2Qw
ZjNkMDRlOTZlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEyLTA3LTMxICBMYXVy
byBOZXRvICA8bGF1cm8ubmV0b0BvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFtRdF0gRml4IGF4
aXMgbG9ja2luZyB3aGVuIHBhbm5pbmcgb24gTjkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTkyMzk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgTWFrZSB0aGUgUVF1aWNrV2ViVmlldyBheGlzIGxvY2tlciBj
YWxjdWxhdGUgdGhlCisgICAgICAgIHRpbWUgYmV0d2VlbiBldmVudHMgdXNpbmcgUUlucHV0RXZl
bnQudGltZXN0YW1wLCB3aGljaAorICAgICAgICBpcyBzZXQgZnJvbSB0aGUgbmF0aXZlIGV2ZW50
IHdoZW4gYXZhaWxhYmxlLgorCisgICAgICAgIEFsc28gdXNlIHRvdWNoUG9pbnQucG9zKCkgaW5z
dGVhZCBvZiBzY3JlZW5Qb3MoKSB0bworICAgICAgICBjb3JyZWN0IHRoZSBheGlzIGRldGVjdGlv
biB3aGVuIHJ1bm5pbmcgb24gTjksIHdoaWNoCisgICAgICAgIGhhcyBhIG5hdGl2ZSBsYW5kc2Nh
cGUgZGlzcGxheSBhbmQgdGhlIGFwcGxpY2F0aW9ucyB1c3VhbGx5CisgICAgICAgIHJ1biBpbiBw
b3J0cmFpdCBtb2RlLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3
LmNwcDoKKyAgICAgICAgKFFRdWlja1dlYlZpZXdQcml2YXRlOjpGbGlja2FibGVBeGlzTG9ja2Vy
OjpGbGlja2FibGVBeGlzTG9ja2VyKToKKyAgICAgICAgKFFRdWlja1dlYlZpZXdQcml2YXRlOjpG
bGlja2FibGVBeGlzTG9ja2VyOjp0b3VjaFZlbG9jaXR5KToKKyAgICAgICAgKFFRdWlja1dlYlZp
ZXdQcml2YXRlOjpGbGlja2FibGVBeGlzTG9ja2VyOjp1cGRhdGUpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wX3AuaDoKKyAgICAgICAgKEZsaWNrYWJsZUF4aXNM
b2NrZXIpOgorCiAyMDEyLTA3LTMxICBBbmRyYXMgQmVjc2kgIDxhbmRyYXMuYmVjc2lAbm9raWEu
Y29tPgogCiAgICAgICAgIFtXSzJdIFZpc2libGUgY29udGVudCByZWN0IHVwZGF0ZSB3aXRoIG51
bGwgdHJhamVjdG9yeSB2ZWN0b3IgZG9lcyBub3QgcmVhY2ggdGhlIGJhY2tpbmcgc3RvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwCmlu
ZGV4IGJjMDljY2M1ZTFjNzY4YWUyMDQ1ZmE5ZDIxMjJhYzNiMjZlOGNlZjMuLmY3ZTEzYTYyMDA4
MDk4YWE3YWRlNWJhMzU0MDVkNWE5YzE1NDIxNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcApAQCAtMTg1LDcgKzE4NSw3IEBAIHN0
YXRpYyBRUXVpY2tXZWJWaWV3UHJpdmF0ZSogY3JlYXRlUHJpdmF0ZU9iamVjdChRUXVpY2tXZWJW
aWV3KiBwdWJsaWNPYmplY3QpCiAKIFFRdWlja1dlYlZpZXdQcml2YXRlOjpGbGlja2FibGVBeGlz
TG9ja2VyOjpGbGlja2FibGVBeGlzTG9ja2VyKCkKICAgICA6IG1fYWxsb3dlZERpcmVjdGlvbihR
UXVpY2tGbGlja2FibGU6OkF1dG9GbGlja0RpcmVjdGlvbikKLSAgICAsIG1fc2FtcGxlQ291bnQo
MCkKKyAgICAsIG1fdGltZSgwKSwgbV9zYW1wbGVDb3VudCgwKQogewogfQogCkBAIC0xOTcsOCAr
MTk3LDggQEAgUVZlY3RvcjJEIFFRdWlja1dlYlZpZXdQcml2YXRlOjpGbGlja2FibGVBeGlzTG9j
a2VyOjp0b3VjaFZlbG9jaXR5KGNvbnN0IFFUb3VjaEUKICAgICBpZiAodG91Y2hWZWxvY2l0eUF2
YWlsYWJsZSkKICAgICAgICAgcmV0dXJuIHRvdWNoUG9pbnQudmVsb2NpdHkoKTsKIAotICAgIGNv
bnN0IFFMaW5lRiBtb3ZlbWVudExpbmUodG91Y2hQb2ludC5zY3JlZW5Qb3MoKSwgbV9pbml0aWFs
U2NyZWVuUG9zaXRpb24pOwotICAgIGNvbnN0IHFpbnQ2NCBlbGFwc2VkID0gbV90aW1lLmVsYXBz
ZWQoKTsKKyAgICBjb25zdCBRTGluZUYgbW92ZW1lbnRMaW5lKHRvdWNoUG9pbnQucG9zKCksIG1f
aW5pdGlhbFBvc2l0aW9uKTsKKyAgICBjb25zdCB1bG9uZyBlbGFwc2VkID0gZXZlbnQtPnRpbWVz
dGFtcCgpIC0gbV90aW1lOwogCiAgICAgaWYgKCFlbGFwc2VkKQogICAgICAgICByZXR1cm4gUVZl
Y3RvcjJEKDAsIDApOwpAQCAtMjE1LDggKzIxNSw4IEBAIHZvaWQgUVF1aWNrV2ViVmlld1ByaXZh
dGU6OkZsaWNrYWJsZUF4aXNMb2NrZXI6OnVwZGF0ZShjb25zdCBRVG91Y2hFdmVudCogZXZlbnQp
CiAgICAgKyttX3NhbXBsZUNvdW50OwogCiAgICAgaWYgKG1fc2FtcGxlQ291bnQgPT0gMSkgewot
ICAgICAgICBtX2luaXRpYWxTY3JlZW5Qb3NpdGlvbiA9IHRvdWNoUG9pbnQuc2NyZWVuUG9zKCk7
Ci0gICAgICAgIG1fdGltZS5yZXN0YXJ0KCk7CisgICAgICAgIG1faW5pdGlhbFBvc2l0aW9uID0g
dG91Y2hQb2ludC5wb3MoKTsKKyAgICAgICAgbV90aW1lID0gZXZlbnQtPnRpbWVzdGFtcCgpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcF9wLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcF9wLmgKaW5kZXggZjEwMmY2MDMwMjUyNGNkMmQ2ZjY3
YjJkMzYxYzI1NmM1OGI2NjA3OC4uOGI2Mzk3MzIxOTQ1N2U2YzA0Y2FkNTkyM2Y1ZjQ4NGNkYzBl
MGU3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3
ZWJ2aWV3X3BfcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNr
d2Vidmlld19wX3AuaApAQCAtMTQyLDggKzE0Miw4IEBAIHByb3RlY3RlZDoKICAgICBjbGFzcyBG
bGlja2FibGVBeGlzTG9ja2VyIHsKICAgICAgICAgUVF1aWNrRmxpY2thYmxlOjpGbGlja2FibGVE
aXJlY3Rpb24gbV9hbGxvd2VkRGlyZWN0aW9uOwogCi0gICAgICAgIFFFbGFwc2VkVGltZXIgbV90
aW1lOwotICAgICAgICBRUG9pbnRGIG1faW5pdGlhbFNjcmVlblBvc2l0aW9uOworICAgICAgICB1
bG9uZyBtX3RpbWU7CisgICAgICAgIFFQb2ludEYgbV9pbml0aWFsUG9zaXRpb247CiAgICAgICAg
IFFQb2ludEYgbV9sb2NrUmVmZXJlbmNlUG9zaXRpb247CiAgICAgICAgIGludCBtX3NhbXBsZUNv
dW50OwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>