<?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>89546</bug_id>
          
          <creation_ts>2012-06-19 21:30:45 -0700</creation_ts>
          <short_desc>[BlackBerry] Wrong scale after leaving fullscreen &lt;video&gt;</short_desc>
          <delta_ts>2012-06-27 13:48:19 -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 BlackBerry</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="Jacky Jiang">jkjiang</reporter>
          <assigned_to name="Jacky Jiang">jkjiang</assigned_to>
          <cc>manyoso</cc>
    
    <cc>rwlbuis</cc>
    
    <cc>staikos</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>yong.li.webkit</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>653173</commentid>
    <comment_count>0</comment_count>
    <who name="Jacky Jiang">jkjiang</who>
    <bug_when>2012-06-19 21:30:45 -0700</bug_when>
    <thetext>PR 164948.
When leaving fullscreen &lt;video&gt; of a web page, the scale became larger than the scale before entering fullscreen.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>657718</commentid>
    <comment_count>1</comment_count>
      <attachid>149560</attachid>
    <who name="Jacky Jiang">jkjiang</who>
    <bug_when>2012-06-26 10:52:47 -0700</bug_when>
    <thetext>Created attachment 149560
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>657734</commentid>
    <comment_count>2</comment_count>
      <attachid>149560</attachid>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2012-06-26 11:00:19 -0700</bug_when>
    <thetext>Comment on attachment 149560
Patch

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

&gt; Source/WebKit/blackberry/Api/WebPage.cpp:1715
&gt; +    m_transformationMatrix-&gt;setM11(scale);
&gt; +    m_transformationMatrix-&gt;setM22(scale);

I know we assume m11=m12=scale. But m_transformationMatrix.scale(scale) looks better :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>657744</commentid>
    <comment_count>3</comment_count>
      <attachid>149560</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-06-26 11:05:32 -0700</bug_when>
    <thetext>Comment on attachment 149560
Patch

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

Looks fine, will eave it for Antonio though, maybe we have to rename m_xScrollOffsetPriorGoingFullScreen too?

&gt; Source/WebKit/blackberry/Api/WebPage.cpp:375
&gt; +    , m_webPageScalePriorGoingFullScreen(-1.0)

It is actually &quot;prior to&quot;. But nicer here would be m_scaleBeforeFullScreen.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>657746</commentid>
    <comment_count>4</comment_count>
      <attachid>149560</attachid>
    <who name="Jacky Jiang">jkjiang</who>
    <bug_when>2012-06-26 11:07:05 -0700</bug_when>
    <thetext>Comment on attachment 149560
Patch

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

&gt;&gt; Source/WebKit/blackberry/Api/WebPage.cpp:1715
&gt;&gt; +    m_transformationMatrix-&gt;setM22(scale);
&gt; 
&gt; I know we assume m11=m12=scale. But m_transformationMatrix.scale(scale) looks better :)

Well, actually m_transformationMatrix.scale(scale) is relative to the current scale, e.g: the original scale = 1.5, we scale to scale =2, then we got 3. But we need to set the scale to 2 not 3.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>657750</commentid>
    <comment_count>5</comment_count>
      <attachid>149560</attachid>
    <who name="Jacky Jiang">jkjiang</who>
    <bug_when>2012-06-26 11:09:18 -0700</bug_when>
    <thetext>Comment on attachment 149560
Patch

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

&gt;&gt; Source/WebKit/blackberry/Api/WebPage.cpp:375
&gt;&gt; +    , m_webPageScalePriorGoingFullScreen(-1.0)
&gt; 
&gt; It is actually &quot;prior to&quot;. But nicer here would be m_scaleBeforeFullScreen.

What do you think Antonio?  If it is like this, I need to rename your m_xScrollOffsetPriorGoingFullScreen as well.

&gt;&gt;&gt; Source/WebKit/blackberry/Api/WebPage.cpp:1715
&gt;&gt;&gt; +    m_transformationMatrix-&gt;setM22(scale);
&gt;&gt; 
&gt;&gt; Well, actually m_transformationMatrix.scale(scale) is relative to the current scale, e.g: the original scale = 1.5, we scale to scale =2, then we got 3. But we need to set the scale to 2 not 3.
&gt; 
&gt; I know we assume m11=m12=scale. But m_transformationMatrix.scale(scale) looks better :)

So m_transformationMatrix.scale(scale) is wrong, that&apos;s why I need to setM11 and setM22 directly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>657826</commentid>
    <comment_count>6</comment_count>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2012-06-26 12:11:40 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 149560 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=149560&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebKit/blackberry/Api/WebPage.cpp:1715
&gt; &gt;&gt; +    m_transformationMatrix-&gt;setM22(scale);
&gt; &gt; 
&gt; &gt; I know we assume m11=m12=scale. But m_transformationMatrix.scale(scale) looks better :)
&gt; 
&gt; Well, actually m_transformationMatrix.scale(scale) is relative to the current scale, e.g: the original scale = 1.5, we scale to scale =2, then we got 3. But we need to set the scale to 2 not 3.

OK. But what if m_transformationMatrix contains a translate (non-zero e/m13, f/m23)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>657901</commentid>
    <comment_count>7</comment_count>
      <attachid>149560</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-06-26 13:08:17 -0700</bug_when>
    <thetext>Comment on attachment 149560
Patch

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

what if we rotate the device? does it invalidate the previous scale?

&gt; Source/WebKit/blackberry/ChangeLog:7
&gt; +        Patch by Jacky Jiang  &lt;zhajiang@rim.com&gt;

unneeded :)

&gt;&gt;&gt; Source/WebKit/blackberry/Api/WebPage.cpp:375
&gt;&gt;&gt; +    , m_webPageScalePriorGoingFullScreen(-1.0)
&gt;&gt; 
&gt;&gt; It is actually &quot;prior to&quot;. But nicer here would be m_scaleBeforeFullScreen.
&gt; 
&gt; What do you think Antonio?  If it is like this, I need to rename your m_xScrollOffsetPriorGoingFullScreen as well.

Ok

&gt;&gt;&gt;&gt;&gt; Source/WebKit/blackberry/Api/WebPage.cpp:1715
&gt;&gt;&gt;&gt;&gt; +    m_transformationMatrix-&gt;setM22(scale);
&gt;&gt;&gt;&gt; 
&gt;&gt;&gt;&gt; I know we assume m11=m12=scale. But m_transformationMatrix.scale(scale) looks better :)
&gt;&gt;&gt; 
&gt;&gt;&gt; Well, actually m_transformationMatrix.scale(scale) is relative to the current scale, e.g: the original scale = 1.5, we scale to scale =2, then we got 3. But we need to set the scale to 2 not 3.
&gt;&gt; 
&gt;&gt; So m_transformationMatrix.scale(scale) is wrong, that&apos;s why I need to setM11 and setM22 directly.
&gt; 
&gt; OK. But what if m_transformationMatrix contains a translate (non-zero e/m13, f/m23)?

at least add a comment</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>657905</commentid>
    <comment_count>8</comment_count>
      <attachid>149560</attachid>
    <who name="Jacky Jiang">jkjiang</who>
    <bug_when>2012-06-26 13:12:15 -0700</bug_when>
    <thetext>Comment on attachment 149560
Patch

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

&gt;&gt;&gt;&gt;&gt; Source/WebKit/blackberry/Api/WebPage.cpp:1715
&gt;&gt;&gt;&gt;&gt; +    m_transformationMatrix-&gt;setM22(scale);
&gt;&gt;&gt;&gt; 
&gt;&gt;&gt;&gt; OK. But what if m_transformationMatrix contains a translate (non-zero e/m13, f/m23)?
&gt;&gt;&gt; 
&gt;&gt;&gt; So m_transformationMatrix.scale(scale) is wrong, that&apos;s why I need to setM11 and setM22 directly.
&gt;&gt; 
&gt;&gt; Well, actually m_transformationMatrix.scale(scale) is relative to the current scale, e.g: the original scale = 1.5, we scale to scale =2, then we got 3. But we need to set the scale to 2 not 3.
&gt; 
&gt; I know we assume m11=m12=scale. But m_transformationMatrix.scale(scale) looks better :)

As far as I have tested, it only affects the zoom scale a and d which works well. The scroll position might be adjusted in setViewportSize right after leaving fullscreen.  As I can see the web page doesn&apos;t respect the y scroll position after leaving fullscreen is an old issue though, I didn&apos;t introduce new regression so far.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>657907</commentid>
    <comment_count>9</comment_count>
      <attachid>149560</attachid>
    <who name="Jacky Jiang">jkjiang</who>
    <bug_when>2012-06-26 13:15:01 -0700</bug_when>
    <thetext>Comment on attachment 149560
Patch

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

&gt;&gt;&gt;&gt; Source/WebKit/blackberry/Api/WebPage.cpp:375
&gt;&gt;&gt;&gt; +    , m_webPageScalePriorGoingFullScreen(-1.0)
&gt;&gt;&gt; 
&gt;&gt;&gt; Ok
&gt;&gt; 
&gt;&gt; What do you think Antonio?  If it is like this, I need to rename your m_xScrollOffsetPriorGoingFullScreen as well.
&gt; 
&gt; It is actually &quot;prior to&quot;. But nicer here would be m_scaleBeforeFullScreen.

Will update the patch then.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>657939</commentid>
    <comment_count>10</comment_count>
    <who name="Jacky Jiang">jkjiang</who>
    <bug_when>2012-06-26 13:41:57 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 149560 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=149560&amp;action=review
&gt; 
&gt; what if we rotate the device? does it invalidate the previous scale?
&gt; 

Missed this comment...   This scale is restored in exitFullScreenForElement(), setViewportSize still have the chance to clamp it by the minimum and maximum scale. As I can imagine that when we rotate device, we will try to restore this scale first, if this scale is even smaller than the minimum scale of the new rotation,  it will use the minimum scale instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>657964</commentid>
    <comment_count>11</comment_count>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2012-06-26 14:03:01 -0700</bug_when>
    <thetext>(In reply to comment #8)

&gt; As I can see the web page doesn&apos;t respect the y scroll position after leaving fullscreen is an old issue though, I didn&apos;t introduce new regression so far.

It would be nice if you can fix it together ;)

At least, can you add a FIXME there?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>657970</commentid>
    <comment_count>12</comment_count>
    <who name="Jacky Jiang">jkjiang</who>
    <bug_when>2012-06-26 14:07:41 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (In reply to comment #8)
&gt; 
&gt; &gt; As I can see the web page doesn&apos;t respect the y scroll position after leaving fullscreen is an old issue though, I didn&apos;t introduce new regression so far.
&gt; 
&gt; It would be nice if you can fix it together ;)
&gt; 
&gt; At least, can you add a FIXME there?
Is this expected Antonio? As I can see you only added m_xScrollOffsetPriorGoingFullScreen to respected the x position of the ScrollView in your m_xScrollOffsetPriorGoingFullScreen patch. 
If this is not expected, I would like to add a FIXME and get back to this later.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>658021</commentid>
    <comment_count>13</comment_count>
    <who name="Jacky Jiang">jkjiang</who>
    <bug_when>2012-06-26 15:01:54 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (In reply to comment #11)
&gt; &gt; (In reply to comment #8)
&gt; &gt; 
&gt; &gt; &gt; As I can see the web page doesn&apos;t respect the y scroll position after leaving fullscreen is an old issue though, I didn&apos;t introduce new regression so far.
&gt; &gt; 
&gt; &gt; It would be nice if you can fix it together ;)
&gt; &gt; 
&gt; &gt; At least, can you add a FIXME there?
&gt; Is this expected Antonio? As I can see you only added m_xScrollOffsetPriorGoingFullScreen to respected the x position of the ScrollView in your m_xScrollOffsetPriorGoingFullScreen patch. 
&gt; If this is not expected, I would like to add a FIXME and get back to this later.
Just confirmed with Antonio in person that always scroll to the top of the web page after leaving screen is not expected, we may need save y position as well as x position or create a struct to save those need to be restored data in the future. Will do it in a follow up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>658043</commentid>
    <comment_count>14</comment_count>
      <attachid>149617</attachid>
    <who name="Jacky Jiang">jkjiang</who>
    <bug_when>2012-06-26 15:35:13 -0700</bug_when>
    <thetext>Created attachment 149617
Patch

Renamed m_xScrollOffsetPriorGoingFullScreen and m_webPageScalePriorGoingFullScreen, removed author in the changelog, added a FIXME.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>658288</commentid>
    <comment_count>15</comment_count>
      <attachid>149617</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-06-26 20:12:02 -0700</bug_when>
    <thetext>Comment on attachment 149617
Patch

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

&gt; Source/WebKit/blackberry/Api/WebPage.cpp:1715
&gt; +    m_transformationMatrix-&gt;setM11(scale);
&gt; +    m_transformationMatrix-&gt;setM22(scale);

please add a comment about why you do not use TransformationMatrix::scale()

&gt; Source/WebKit/blackberry/Api/WebPage.cpp:6225
&gt; +        m_scaleBeforeFullScreen = currentScale();

I would also add a comment about when the scale changes, and why we cache and restore it.

&gt; Source/WebKit/blackberry/Api/WebPage.cpp:6260
&gt; +        if (m_scaleBeforeFullScreen &gt; 0.0) {

s/0.0/0

&gt; Source/WebKit/blackberry/Api/WebPage_p.h:215
&gt; +    void setCurrentScale(double);

instead of setCurrentScale, maybe we should rename it to something more specific, so others would not try to use it. Also should it be wrapped by #if enabled(video) &amp;&amp; enabled(video_fullscreen_api)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>658597</commentid>
    <comment_count>16</comment_count>
      <attachid>149617</attachid>
    <who name="Jacky Jiang">jkjiang</who>
    <bug_when>2012-06-27 07:38:23 -0700</bug_when>
    <thetext>Comment on attachment 149617
Patch

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

&gt;&gt; Source/WebKit/blackberry/Api/WebPage.cpp:1715
&gt;&gt; +    m_transformationMatrix-&gt;setM22(scale);
&gt; 
&gt; please add a comment about why you do not use TransformationMatrix::scale()

OK. Will do.

&gt;&gt; Source/WebKit/blackberry/Api/WebPage.cpp:6225
&gt;&gt; +        m_scaleBeforeFullScreen = currentScale();
&gt; 
&gt; I would also add a comment about when the scale changes, and why we cache and restore it.

OK.

&gt;&gt; Source/WebKit/blackberry/Api/WebPage.cpp:6260
&gt;&gt; +        if (m_scaleBeforeFullScreen &gt; 0.0) {
&gt; 
&gt; s/0.0/0

OK.

&gt;&gt; Source/WebKit/blackberry/Api/WebPage_p.h:215
&gt;&gt; +    void setCurrentScale(double);
&gt; 
&gt; instead of setCurrentScale, maybe we should rename it to something more specific, so others would not try to use it. Also should it be wrapped by #if enabled(video) &amp;&amp; enabled(video_fullscreen_api)?

I will just get rid of this method and inline this in exitFullScreenForElement if the method might be misused by somebody in the future.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>658670</commentid>
    <comment_count>17</comment_count>
      <attachid>149764</attachid>
    <who name="Jacky Jiang">jkjiang</who>
    <bug_when>2012-06-27 09:40:48 -0700</bug_when>
    <thetext>Created attachment 149764
Patch

Updated the patch based on the comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>658839</commentid>
    <comment_count>18</comment_count>
      <attachid>149764</attachid>
    <who name="Jacky Jiang">jkjiang</who>
    <bug_when>2012-06-27 13:45:02 -0700</bug_when>
    <thetext>Comment on attachment 149764
Patch

Committed manually r121362: http://trac.webkit.org/changeset/121362.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>149560</attachid>
            <date>2012-06-26 10:52:47 -0700</date>
            <delta_ts>2012-06-26 15:35:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-89546-20120626135246.patch</filename>
            <type>text/plain</type>
            <size>4530</size>
            <attacher name="Jacky Jiang">jkjiang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxMjY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwpp
bmRleCA0NDY2NWI3ZDJiMmY2MWIwZTBjNDgwMmU0YTk0YTQxNGVmZTMwMmVlLi4wZWMyM2E4Yzkw
MDlhMzNmM2EwNTg0MGU4NzA0Yjk2YTA5NWU3YmY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAxMi0wNi0yNiAgSmFja3kgSmlhbmcgIDx6aGFqaWFu
Z0ByaW0uY29tPgorCisgICAgICAgIFtCbGFja0JlcnJ5XSBXcm9uZyBzY2FsZSBhZnRlciBsZWF2
aW5nIGZ1bGxzY3JlZW4gPHZpZGVvPgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9ODk1NDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKyAgICAgICAgUGF0Y2ggYnkgSmFja3kgSmlhbmcgIDx6aGFqaWFuZ0ByaW0uY29tPgorCisg
ICAgICAgIFBSOiAxNjQ5NDgKKyAgICAgICAgV2hlbiB3ZSB3ZXJlIGVudGVyaW5nIGZ1bGxzY3Jl
ZW4sIHRoZSBjdXJyZW50IHNjYWxlIEEgd2FzIGNsYW1wZWQgdG8gYQorICAgICAgICBncmVhdGVy
IG1pbmltdW0gc2NhbGUgQiBhcyB3ZSByZWxheW91dGVkIHRoZSBjb250ZW50cyBhZnRlciB0aGUg
Y2hhbmdlCisgICAgICAgIG9mIHRoZSB2aWV3cG9ydCBzaXplLiBXaGVuIGxlYXZpbmcgZnVsbHNj
cmVlbiwgd2Ugc3RpbGwgdXNlZCB0aGF0IHNjYWxlCisgICAgICAgIEIgYXMgdGhlIGN1cnJlbnQg
c2NhbGUgd2hpY2ggd2FzIGluY29ycmVjdC4KKyAgICAgICAgVG8gZml4IHRoaXMsIHdlIGNhbiBz
YXZlIHRoZSBjdXJyZW50IHNjYWxlIHdoZW4gZW50ZXJpbmcgZnVsbHNjcmVlbiBhbmQKKyAgICAg
ICAgcmVzdG9yZSBpdCB3aGVuIGxlYXZpbmcgZnVsbHNjcmVlbi4KKworICAgICAgICAqIEFwaS9X
ZWJQYWdlLmNwcDoKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2ViUGFnZVByaXZhdGU6
OldlYlBhZ2VQcml2YXRlKToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2ViUGFnZVBy
aXZhdGU6OnNldEN1cnJlbnRTY2FsZSk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoQmxh
Y2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlUHJpdmF0ZTo6ZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVu
dCk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2VQcml2YXRlOjpleGl0RnVs
bFNjcmVlbkZvckVsZW1lbnQpOgorICAgICAgICAqIEFwaS9XZWJQYWdlX3AuaDoKKyAgICAgICAg
KFdlYlBhZ2VQcml2YXRlKToKKwogMjAxMi0wNi0yNiAgSm9uYXRoYW4gRG9uZyAgPGpvbmF0aGFu
LmRvbmdAdG9yY2htb2JpbGUuY29tLmNuPgogCiAgICAgICAgIFtCbGFja0JlcnJ5XSBMaW1pdCBz
ZXNzaW9uIHN0b3JhZ2UgcXVvdGEgdG8gNU1CIGJ5IGRlZmF1bHQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNr
YmVycnkvQXBpL1dlYlBhZ2UuY3BwCmluZGV4IGZkYTkyZDZhMDgwYWNmNWUxMDBlMWNkMjNmNjVh
OTA4ZjkzNDIyMDcuLjkyOGE1MjRjZjBiN2Q1YjZjNjJmNGFhYzVlMjE4ZWUwZGZkOWI3NTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcApAQCAtMzcxLDcgKzM3MSw4
IEBAIFdlYlBhZ2VQcml2YXRlOjpXZWJQYWdlUHJpdmF0ZShXZWJQYWdlKiB3ZWJQYWdlLCBXZWJQ
YWdlQ2xpZW50KiBjbGllbnQsIGNvbnN0IEluCiAgICAgLCBtX3RvdWNoRXZlbnRNb2RlUHJpb3JH
b2luZ0Z1bGxTY3JlZW4oUHJvY2Vzc2VkVG91Y2hFdmVudHMpCiAjZW5kaWYKICNlbmRpZgotI2lm
IEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKKyNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpICYmIEVO
QUJMRShWSURFTykKKyAgICAsIG1fd2ViUGFnZVNjYWxlUHJpb3JHb2luZ0Z1bGxTY3JlZW4oLTEu
MCkKICAgICAsIG1feFNjcm9sbE9mZnNldFByaW9yR29pbmdGdWxsU2NyZWVuKC0xKQogI2VuZGlm
CiAgICAgLCBtX2N1cnJlbnRDdXJzb3IoUGxhdGZvcm06OkN1cnNvck5vbmUpCkBAIC0xNzA4LDYg
KzE3MDksMTIgQEAgdm9pZCBXZWJQYWdlUHJpdmF0ZTo6em9vbVRvSW5pdGlhbFNjYWxlT25Mb2Fk
KCkKICAgICB9CiB9CiAKK3ZvaWQgV2ViUGFnZVByaXZhdGU6OnNldEN1cnJlbnRTY2FsZShkb3Vi
bGUgc2NhbGUpCit7CisgICAgbV90cmFuc2Zvcm1hdGlvbk1hdHJpeC0+c2V0TTExKHNjYWxlKTsK
KyAgICBtX3RyYW5zZm9ybWF0aW9uTWF0cml4LT5zZXRNMjIoc2NhbGUpOworfQorCiBkb3VibGUg
V2ViUGFnZVByaXZhdGU6Onpvb21Ub0ZpdFNjYWxlKCkgY29uc3QKIHsKICAgICBpbnQgY29udGVu
dFdpZHRoID0gY29udGVudHNTaXplKCkud2lkdGgoKTsKQEAgLTYyMTAsNiArNjIxNyw4IEBAIHZv
aWQgV2ViUGFnZVByaXZhdGU6OmVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoRWxlbWVudCogZWxl
bWVudCkKICAgICAgICAgbV90b3VjaEV2ZW50TW9kZVByaW9yR29pbmdGdWxsU2NyZWVuID0gbV90
b3VjaEV2ZW50TW9kZTsKICAgICAgICAgZGlkUmVjZWl2ZVRvdWNoRXZlbnRNb2RlKFB1cmVUb3Vj
aEV2ZW50c1dpdGhNb3VzZUNvbnZlcnNpb24pOwogI2VuZGlmCisgICAgICAgIG1fd2ViUGFnZVNj
YWxlUHJpb3JHb2luZ0Z1bGxTY3JlZW4gPSBjdXJyZW50U2NhbGUoKTsKKwogICAgICAgICAvLyBO
byBmdWxsc2NyZWVuIHZpZGVvIHdpZGdldCBoYXMgYmVlbiBtYWRlIGF2YWlsYWJsZSBieSB0aGUg
QnJvd3NlcgogICAgICAgICAvLyBjaHJvbWUsIG9yIHRoaXMgaXMgbm90IGEgdmlkZW8gZWxlbWVu
dC4gVGhlIHdlYmtpdFJlcXVlc3RGdWxsU2NyZWVuCiAgICAgICAgIC8vIEphdmFzY3JpcHQgY2Fs
bCBpcyBvZnRlbiBtYWRlIG9uIGEgZGl2IGVsZW1lbnQuCkBAIC02MjQxLDYgKzYyNTAsMTEgQEAg
dm9pZCBXZWJQYWdlUHJpdmF0ZTo6ZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KEVsZW1lbnQqIGVs
ZW1lbnQpCiAgICAgICAgIGRpZFJlY2VpdmVUb3VjaEV2ZW50TW9kZShtX3RvdWNoRXZlbnRNb2Rl
UHJpb3JHb2luZ0Z1bGxTY3JlZW4pOwogICAgICAgICBtX3RvdWNoRXZlbnRNb2RlUHJpb3JHb2lu
Z0Z1bGxTY3JlZW4gPSBQcm9jZXNzZWRUb3VjaEV2ZW50czsKICNlbmRpZgorICAgICAgICBpZiAo
bV93ZWJQYWdlU2NhbGVQcmlvckdvaW5nRnVsbFNjcmVlbiA+IDAuMCkgeworICAgICAgICAgICAg
c2V0Q3VycmVudFNjYWxlKG1fd2ViUGFnZVNjYWxlUHJpb3JHb2luZ0Z1bGxTY3JlZW4pOworICAg
ICAgICAgICAgbV93ZWJQYWdlU2NhbGVQcmlvckdvaW5nRnVsbFNjcmVlbiA9IC0xLjA7CisgICAg
ICAgIH0KKwogICAgICAgICAvLyBUaGlzIGlzIHdoZXJlIHdlIHdvdWxkIHJlc3RvcmUgdGhlIGJy
b3dzZXIncyBjaHJvbWUKICAgICAgICAgLy8gaWYgaGlkZGVuIGFib3ZlLgogICAgICAgICBjbGll
bnQoKS0+ZnVsbHNjcmVlblN0b3AoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2ti
ZXJyeS9BcGkvV2ViUGFnZV9wLmggYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBh
Z2VfcC5oCmluZGV4IDliMmVlNzAxYTNmY2MyZjFiYmY4YWY0MWEyNDc2MDRkZDlmMDA2YTQuLjc4
OGJlZTQ4ZDUxYzEzYjc5Mzg1MDg2NmRjNjc0NWFhMjIyNWM4OGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZV9wLmgKKysrIGIvU291cmNlL1dlYktpdC9i
bGFja2JlcnJ5L0FwaS9XZWJQYWdlX3AuaApAQCAtMjEyLDYgKzIxMiw3IEBAIHB1YmxpYzoKIAog
ICAgIC8vIFZhcmlvdXMgc2NhbGUgZmFjdG9ycy4KICAgICBkb3VibGUgY3VycmVudFNjYWxlKCkg
Y29uc3QgeyByZXR1cm4gbV90cmFuc2Zvcm1hdGlvbk1hdHJpeC0+bTExKCk7IH0KKyAgICB2b2lk
IHNldEN1cnJlbnRTY2FsZShkb3VibGUpOwogICAgIGRvdWJsZSB6b29tVG9GaXRTY2FsZSgpIGNv
bnN0OwogICAgIGRvdWJsZSBpbml0aWFsU2NhbGUoKSBjb25zdDsKICAgICB2b2lkIHNldEluaXRp
YWxTY2FsZShkb3VibGUgc2NhbGUpIHsgbV9pbml0aWFsU2NhbGUgPSBzY2FsZTsgfQpAQCAtNDk4
LDggKzQ5OSwxMSBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKEVWRU5UX01PREVfTUVUQVRBR1MpCiAg
ICAgV2ViQ29yZTo6VG91Y2hFdmVudE1vZGUgbV90b3VjaEV2ZW50TW9kZVByaW9yR29pbmdGdWxs
U2NyZWVuOwogI2VuZGlmCisjaWYgRU5BQkxFKFZJREVPKQorICAgIGRvdWJsZSBtX3dlYlBhZ2VT
Y2FsZVByaW9yR29pbmdGdWxsU2NyZWVuOwogICAgIGludCBtX3hTY3JvbGxPZmZzZXRQcmlvckdv
aW5nRnVsbFNjcmVlbjsKICNlbmRpZgorI2VuZGlmCiAKICAgICBQbGF0Zm9ybTo6QmxhY2tCZXJy
eUN1cnNvciBtX2N1cnJlbnRDdXJzb3I7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>149617</attachid>
            <date>2012-06-26 15:35:13 -0700</date>
            <delta_ts>2012-06-27 09:40:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-89546-20120626183512.patch</filename>
            <type>text/plain</type>
            <size>5857</size>
            <attacher name="Jacky Jiang">jkjiang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxMjg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwpp
bmRleCAxNjRhNmY4ODcyMzBkMmY1YjQwMzk2Y2IwZTFjOGE5YjNlYmRiNWJkLi4xMWE4YjlhOWFm
MmRlOGNjMzc5YzFmNDMxODhjZjc4ODA4NGIwYTM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAxMi0wNi0yNiAgSmFja3kgSmlhbmcgIDx6aGFqaWFu
Z0ByaW0uY29tPgorCisgICAgICAgIFtCbGFja0JlcnJ5XSBXcm9uZyBzY2FsZSBhZnRlciBsZWF2
aW5nIGZ1bGxzY3JlZW4gPHZpZGVvPgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9ODk1NDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBQUjogMTY0OTQ4CisgICAgICAgIFdoZW4gd2Ugd2VyZSBlbnRlcmluZyBm
dWxsc2NyZWVuLCB0aGUgY3VycmVudCBzY2FsZSBBIHdhcyBjbGFtcGVkIHRvIGEKKyAgICAgICAg
Z3JlYXRlciBtaW5pbXVtIHNjYWxlIEIgYXMgd2UgcmVsYXlvdXRlZCB0aGUgY29udGVudHMgYWZ0
ZXIgdGhlIGNoYW5nZQorICAgICAgICBvZiB0aGUgdmlld3BvcnQgc2l6ZS4gV2hlbiBsZWF2aW5n
IGZ1bGxzY3JlZW4sIHdlIHN0aWxsIHVzZWQgdGhhdCBzY2FsZQorICAgICAgICBCIGFzIHRoZSBj
dXJyZW50IHNjYWxlIHdoaWNoIHdhcyBpbmNvcnJlY3QuCisgICAgICAgIFRvIGZpeCB0aGlzLCB3
ZSBjYW4gc2F2ZSB0aGUgY3VycmVudCBzY2FsZSB3aGVuIGVudGVyaW5nIGZ1bGxzY3JlZW4gYW5k
CisgICAgICAgIHJlc3RvcmUgaXQgd2hlbiBsZWF2aW5nIGZ1bGxzY3JlZW4uCisKKyAgICAgICAg
KiBBcGkvV2ViUGFnZS5jcHA6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2VQ
cml2YXRlOjpXZWJQYWdlUHJpdmF0ZSk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6Oldl
YlBhZ2VQcml2YXRlOjpzZXRDdXJyZW50U2NhbGUpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAg
ICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2ViUGFnZVByaXZhdGU6OmVudGVyRnVsbFNjcmVlbkZv
ckVsZW1lbnQpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlUHJpdmF0ZTo6
ZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KToKKyAgICAgICAgKiBBcGkvV2ViUGFnZV9wLmg6Cisg
ICAgICAgIChXZWJQYWdlUHJpdmF0ZSk6CisKIDIwMTItMDYtMjYgIE1pa2UgRmVudG9uICA8bWlm
ZW50b25AcmltLmNvbT4KIAogICAgICAgICBbQmxhY2tCZXJyeV0gQWRkIFdlYlBhZ2UgaW50ZXJm
YWNlIGZvciBBc3luYyBzcGVsbCBjaGVjay4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxh
Y2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dl
YlBhZ2UuY3BwCmluZGV4IGEzNzgyNmJhZmJkYTc5NDEzMmZmYzE1MDU0MDAzZTgwM2RjMDBkMWIu
LjI5NGRjMjIxMGRkNDZmZDNiM2JkNmUwMTgxNTNmZTM4ZTEzYmI2YjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcApAQCAtMzcxLDggKzM3MSw5IEBAIFdlYlBhZ2VQ
cml2YXRlOjpXZWJQYWdlUHJpdmF0ZShXZWJQYWdlKiB3ZWJQYWdlLCBXZWJQYWdlQ2xpZW50KiBj
bGllbnQsIGNvbnN0IEluCiAgICAgLCBtX3RvdWNoRXZlbnRNb2RlUHJpb3JHb2luZ0Z1bGxTY3Jl
ZW4oUHJvY2Vzc2VkVG91Y2hFdmVudHMpCiAjZW5kaWYKICNlbmRpZgotI2lmIEVOQUJMRShGVUxM
U0NSRUVOX0FQSSkKLSAgICAsIG1feFNjcm9sbE9mZnNldFByaW9yR29pbmdGdWxsU2NyZWVuKC0x
KQorI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkgJiYgRU5BQkxFKFZJREVPKQorICAgICwgbV9z
Y2FsZUJlZm9yZUZ1bGxTY3JlZW4oLTEuMCkKKyAgICAsIG1feFNjcm9sbE9mZnNldEJlZm9yZUZ1
bGxTY3JlZW4oLTEpCiAjZW5kaWYKICAgICAsIG1fY3VycmVudEN1cnNvcihQbGF0Zm9ybTo6Q3Vy
c29yTm9uZSkKICAgICAsIG1fZHVtcFJlbmRlclRyZWUoMCkgLy8gTGF6eSBpbml0aWFsaXphdGlv
bi4KQEAgLTE3MDgsNiArMTcwOSwxMiBAQCB2b2lkIFdlYlBhZ2VQcml2YXRlOjp6b29tVG9Jbml0
aWFsU2NhbGVPbkxvYWQoKQogICAgIH0KIH0KIAordm9pZCBXZWJQYWdlUHJpdmF0ZTo6c2V0Q3Vy
cmVudFNjYWxlKGRvdWJsZSBzY2FsZSkKK3sKKyAgICBtX3RyYW5zZm9ybWF0aW9uTWF0cml4LT5z
ZXRNMTEoc2NhbGUpOworICAgIG1fdHJhbnNmb3JtYXRpb25NYXRyaXgtPnNldE0yMihzY2FsZSk7
Cit9CisKIGRvdWJsZSBXZWJQYWdlUHJpdmF0ZTo6em9vbVRvRml0U2NhbGUoKSBjb25zdAogewog
ICAgIGludCBjb250ZW50V2lkdGggPSBjb250ZW50c1NpemUoKS53aWR0aCgpOwpAQCAtNjIwOCwx
MyArNjIxNSwxNSBAQCB2b2lkIFdlYlBhZ2VQcml2YXRlOjplbnRlckZ1bGxTY3JlZW5Gb3JFbGVt
ZW50KEVsZW1lbnQqIGVsZW1lbnQpCiAgICAgICAgIC8vIHdlIHRlbXBvcmFyaWx5IHNjcm9sbCB0
aGUgV2ViUGFnZSB0byB4OjAgc28gdGhhdCB0aGUgd3JhcHBlciBnZXRzIHByb3Blcmx5CiAgICAg
ICAgIC8vIHBvc2l0aW9uZWQuIFRoZSBvcmlnaW5hbCBzY3JvbGwgcG9zaXRpb24gaXMgcmVzdG9y
ZWQgb25jZSBlbGVtZW50IGxlYXZlcyBmdWxsc2NyZWVuLgogICAgICAgICBXZWJDb3JlOjpJbnRQ
b2ludCBzY3JvbGxQb3NpdGlvbiA9IG1fbWFpbkZyYW1lLT52aWV3KCktPnNjcm9sbFBvc2l0aW9u
KCk7Ci0gICAgICAgIG1feFNjcm9sbE9mZnNldFByaW9yR29pbmdGdWxsU2NyZWVuID0gc2Nyb2xs
UG9zaXRpb24ueCgpOworICAgICAgICBtX3hTY3JvbGxPZmZzZXRCZWZvcmVGdWxsU2NyZWVuID0g
c2Nyb2xsUG9zaXRpb24ueCgpOwogICAgICAgICBtX21haW5GcmFtZS0+dmlldygpLT5zZXRTY3Jv
bGxQb3NpdGlvbihXZWJDb3JlOjpJbnRQb2ludCgwLCBzY3JvbGxQb3NpdGlvbi55KCkpKTsKIAog
I2lmIEVOQUJMRShFVkVOVF9NT0RFX01FVEFUQUdTKQogICAgICAgICBtX3RvdWNoRXZlbnRNb2Rl
UHJpb3JHb2luZ0Z1bGxTY3JlZW4gPSBtX3RvdWNoRXZlbnRNb2RlOwogICAgICAgICBkaWRSZWNl
aXZlVG91Y2hFdmVudE1vZGUoUHVyZVRvdWNoRXZlbnRzV2l0aE1vdXNlQ29udmVyc2lvbik7CiAj
ZW5kaWYKKyAgICAgICAgbV9zY2FsZUJlZm9yZUZ1bGxTY3JlZW4gPSBjdXJyZW50U2NhbGUoKTsK
KwogICAgICAgICAvLyBObyBmdWxsc2NyZWVuIHZpZGVvIHdpZGdldCBoYXMgYmVlbiBtYWRlIGF2
YWlsYWJsZSBieSB0aGUgQnJvd3NlcgogICAgICAgICAvLyBjaHJvbWUsIG9yIHRoaXMgaXMgbm90
IGEgdmlkZW8gZWxlbWVudC4gVGhlIHdlYmtpdFJlcXVlc3RGdWxsU2NyZWVuCiAgICAgICAgIC8v
IEphdmFzY3JpcHQgY2FsbCBpcyBvZnRlbiBtYWRlIG9uIGEgZGl2IGVsZW1lbnQuCkBAIC02MjM2
LDE2ICs2MjQ1LDIzIEBAIHZvaWQgV2ViUGFnZVByaXZhdGU6OmV4aXRGdWxsU2NyZWVuRm9yRWxl
bWVudChFbGVtZW50KiBlbGVtZW50KQogICAgICAgICBleGl0RnVsbHNjcmVlbkZvck5vZGUoZWxl
bWVudCk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgLy8gV2hlbiBsZWF2aW5nIGZ1bGxzY3JlZW4g
bW9kZSwgd2UgbmVlZCB0byByZXN0b3JlIHRoZSAneCcgc2Nyb2xsIHBvc2l0aW9uCi0gICAgICAg
IC8vIHByaW9yIGdvaW5nIGZ1bGwgc2NyZWVuLgorICAgICAgICAvLyBiZWZvcmUgZnVsbHNjcmVl
bi4KKyAgICAgICAgLy8gRklYTUU6IFdlIG1heSBuZWVkIHRvIHJlc3BlY3QgJ3knIHBvc2l0aW9u
IGFzIHdlbGwsIGJlY2F1c2UgdGhlIHdlYiBwYWdlIGFsd2F5cyBzY3JvbGxzIHRvCisgICAgICAg
IC8vIHRoZSB0b3Agd2hlbiBsZWF2aW5nIGZ1bGxzY3JlZW4gbW9kZS4KICAgICAgICAgV2ViQ29y
ZTo6SW50UG9pbnQgc2Nyb2xsUG9zaXRpb24gPSBtX21haW5GcmFtZS0+dmlldygpLT5zY3JvbGxQ
b3NpdGlvbigpOwogICAgICAgICBtX21haW5GcmFtZS0+dmlldygpLT5zZXRTY3JvbGxQb3NpdGlv
bigKLSAgICAgICAgICAgIFdlYkNvcmU6OkludFBvaW50KG1feFNjcm9sbE9mZnNldFByaW9yR29p
bmdGdWxsU2NyZWVuLCBzY3JvbGxQb3NpdGlvbi55KCkpKTsKLSAgICAgICAgbV94U2Nyb2xsT2Zm
c2V0UHJpb3JHb2luZ0Z1bGxTY3JlZW4gPSAtMTsKKyAgICAgICAgICAgIFdlYkNvcmU6OkludFBv
aW50KG1feFNjcm9sbE9mZnNldEJlZm9yZUZ1bGxTY3JlZW4sIHNjcm9sbFBvc2l0aW9uLnkoKSkp
OworICAgICAgICBtX3hTY3JvbGxPZmZzZXRCZWZvcmVGdWxsU2NyZWVuID0gLTE7CiAKICNpZiBF
TkFCTEUoRVZFTlRfTU9ERV9NRVRBVEFHUykKICAgICAgICAgZGlkUmVjZWl2ZVRvdWNoRXZlbnRN
b2RlKG1fdG91Y2hFdmVudE1vZGVQcmlvckdvaW5nRnVsbFNjcmVlbik7CiAgICAgICAgIG1fdG91
Y2hFdmVudE1vZGVQcmlvckdvaW5nRnVsbFNjcmVlbiA9IFByb2Nlc3NlZFRvdWNoRXZlbnRzOwog
I2VuZGlmCisgICAgICAgIGlmIChtX3NjYWxlQmVmb3JlRnVsbFNjcmVlbiA+IDAuMCkgeworICAg
ICAgICAgICAgc2V0Q3VycmVudFNjYWxlKG1fc2NhbGVCZWZvcmVGdWxsU2NyZWVuKTsKKyAgICAg
ICAgICAgIG1fc2NhbGVCZWZvcmVGdWxsU2NyZWVuID0gLTEuMDsKKyAgICAgICAgfQorCiAgICAg
ICAgIC8vIFRoaXMgaXMgd2hlcmUgd2Ugd291bGQgcmVzdG9yZSB0aGUgYnJvd3NlcidzIGNocm9t
ZQogICAgICAgICAvLyBpZiBoaWRkZW4gYWJvdmUuCiAgICAgICAgIGNsaWVudCgpLT5mdWxsc2Ny
ZWVuU3RvcCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQ
YWdlX3AuaCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZV9wLmgKaW5kZXgg
OWIyZWU3MDFhM2ZjYzJmMWJiZjhhZjQxYTI0NzYwNGRkOWYwMDZhNC4uOTdiMTkxNDVjYmFkYTYx
MDk5MmU4NjdhMjRjMzYxNGM0ZjBmYWNlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L0FwaS9XZWJQYWdlX3AuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBp
L1dlYlBhZ2VfcC5oCkBAIC0yMTIsNiArMjEyLDcgQEAgcHVibGljOgogCiAgICAgLy8gVmFyaW91
cyBzY2FsZSBmYWN0b3JzLgogICAgIGRvdWJsZSBjdXJyZW50U2NhbGUoKSBjb25zdCB7IHJldHVy
biBtX3RyYW5zZm9ybWF0aW9uTWF0cml4LT5tMTEoKTsgfQorICAgIHZvaWQgc2V0Q3VycmVudFNj
YWxlKGRvdWJsZSk7CiAgICAgZG91YmxlIHpvb21Ub0ZpdFNjYWxlKCkgY29uc3Q7CiAgICAgZG91
YmxlIGluaXRpYWxTY2FsZSgpIGNvbnN0OwogICAgIHZvaWQgc2V0SW5pdGlhbFNjYWxlKGRvdWJs
ZSBzY2FsZSkgeyBtX2luaXRpYWxTY2FsZSA9IHNjYWxlOyB9CkBAIC00OTgsNyArNDk5LDEwIEBA
IHB1YmxpYzoKICNpZiBFTkFCTEUoRVZFTlRfTU9ERV9NRVRBVEFHUykKICAgICBXZWJDb3JlOjpU
b3VjaEV2ZW50TW9kZSBtX3RvdWNoRXZlbnRNb2RlUHJpb3JHb2luZ0Z1bGxTY3JlZW47CiAjZW5k
aWYKLSAgICBpbnQgbV94U2Nyb2xsT2Zmc2V0UHJpb3JHb2luZ0Z1bGxTY3JlZW47CisjaWYgRU5B
QkxFKFZJREVPKQorICAgIGRvdWJsZSBtX3NjYWxlQmVmb3JlRnVsbFNjcmVlbjsKKyAgICBpbnQg
bV94U2Nyb2xsT2Zmc2V0QmVmb3JlRnVsbFNjcmVlbjsKKyNlbmRpZgogI2VuZGlmCiAKICAgICBQ
bGF0Zm9ybTo6QmxhY2tCZXJyeUN1cnNvciBtX2N1cnJlbnRDdXJzb3I7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>149764</attachid>
            <date>2012-06-27 09:40:48 -0700</date>
            <delta_ts>2012-06-27 13:45:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-89546-20120627124047.patch</filename>
            <type>text/plain</type>
            <size>5808</size>
            <attacher name="Jacky Jiang">jkjiang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxMzQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwpp
bmRleCAxNjRhNmY4ODcyMzBkMmY1YjQwMzk2Y2IwZTFjOGE5YjNlYmRiNWJkLi40ZTU3OTc1NWU4
NzI4NDliNjY0YTc0ZjI5MmUzNWQyNGIzZTg3ZmFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxMi0wNi0yNyAgSmFja3kgSmlhbmcgIDx6aGFqaWFu
Z0ByaW0uY29tPgorCisgICAgICAgIFtCbGFja0JlcnJ5XSBXcm9uZyBzY2FsZSBhZnRlciBsZWF2
aW5nIGZ1bGxzY3JlZW4gPHZpZGVvPgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9ODk1NDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBQUjogMTY0OTQ4CisgICAgICAgIFdoZW4gd2Ugd2VyZSBlbnRlcmluZyBm
dWxsc2NyZWVuLCB0aGUgY3VycmVudCBzY2FsZSBBIHdhcyBjbGFtcGVkIHRvIGEKKyAgICAgICAg
Z3JlYXRlciBtaW5pbXVtIHNjYWxlIEIgYXMgd2UgcmVsYXlvdXRlZCB0aGUgY29udGVudHMgZHVy
aW5nIHRoZSBjaGFuZ2UKKyAgICAgICAgb2YgdGhlIHZpZXdwb3J0IHNpemUuIFdoZW4gbGVhdmlu
ZyBmdWxsc2NyZWVuLCB3ZSBzdGlsbCB1c2VkIHRoYXQgc2NhbGUKKyAgICAgICAgQiBhcyB0aGUg
Y3VycmVudCBzY2FsZSB3aGljaCB3YXMgaW5jb3JyZWN0LgorICAgICAgICBUbyBmaXggdGhpcywg
d2UgY2FuIHNhdmUgdGhlIGN1cnJlbnQgc2NhbGUgd2hlbiBlbnRlcmluZyBmdWxsc2NyZWVuIGFu
ZAorICAgICAgICByZXN0b3JlIGl0IHdoZW4gbGVhdmluZyBmdWxsc2NyZWVuLgorCisgICAgICAg
ICogQXBpL1dlYlBhZ2UuY3BwOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdl
UHJpdmF0ZTo6V2ViUGFnZVByaXZhdGUpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpX
ZWJQYWdlUHJpdmF0ZTo6ZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudCk6CisgICAgICAgIChCbGFj
a0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2VQcml2YXRlOjpleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQp
OgorICAgICAgICAqIEFwaS9XZWJQYWdlX3AuaDoKKyAgICAgICAgKFdlYlBhZ2VQcml2YXRlKToK
KwogMjAxMi0wNi0yNiAgTWlrZSBGZW50b24gIDxtaWZlbnRvbkByaW0uY29tPgogCiAgICAgICAg
IFtCbGFja0JlcnJ5XSBBZGQgV2ViUGFnZSBpbnRlcmZhY2UgZm9yIEFzeW5jIHNwZWxsIGNoZWNr
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcCBi
L1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAKaW5kZXggYTM3ODI2YmFm
YmRhNzk0MTMyZmZjMTUwNTQwMDNlODAzZGMwMGQxYi4uNmU5OTViZDgxYzNkMTFjMzE2YTFmYmNi
YzNhM2IxZDI0NjUwM2Q3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0Fw
aS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2Uu
Y3BwCkBAIC0zNzEsOCArMzcxLDkgQEAgV2ViUGFnZVByaXZhdGU6OldlYlBhZ2VQcml2YXRlKFdl
YlBhZ2UqIHdlYlBhZ2UsIFdlYlBhZ2VDbGllbnQqIGNsaWVudCwgY29uc3QgSW4KICAgICAsIG1f
dG91Y2hFdmVudE1vZGVQcmlvckdvaW5nRnVsbFNjcmVlbihQcm9jZXNzZWRUb3VjaEV2ZW50cykK
ICNlbmRpZgogI2VuZGlmCi0jaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQotICAgICwgbV94U2Ny
b2xsT2Zmc2V0UHJpb3JHb2luZ0Z1bGxTY3JlZW4oLTEpCisjaWYgRU5BQkxFKEZVTExTQ1JFRU5f
QVBJKSAmJiBFTkFCTEUoVklERU8pCisgICAgLCBtX3NjYWxlQmVmb3JlRnVsbFNjcmVlbigtMS4w
KQorICAgICwgbV94U2Nyb2xsT2Zmc2V0QmVmb3JlRnVsbFNjcmVlbigtMSkKICNlbmRpZgogICAg
ICwgbV9jdXJyZW50Q3Vyc29yKFBsYXRmb3JtOjpDdXJzb3JOb25lKQogICAgICwgbV9kdW1wUmVu
ZGVyVHJlZSgwKSAvLyBMYXp5IGluaXRpYWxpemF0aW9uLgpAQCAtNjIwOCwxMyArNjIwOSwxOCBA
QCB2b2lkIFdlYlBhZ2VQcml2YXRlOjplbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KEVsZW1lbnQq
IGVsZW1lbnQpCiAgICAgICAgIC8vIHdlIHRlbXBvcmFyaWx5IHNjcm9sbCB0aGUgV2ViUGFnZSB0
byB4OjAgc28gdGhhdCB0aGUgd3JhcHBlciBnZXRzIHByb3Blcmx5CiAgICAgICAgIC8vIHBvc2l0
aW9uZWQuIFRoZSBvcmlnaW5hbCBzY3JvbGwgcG9zaXRpb24gaXMgcmVzdG9yZWQgb25jZSBlbGVt
ZW50IGxlYXZlcyBmdWxsc2NyZWVuLgogICAgICAgICBXZWJDb3JlOjpJbnRQb2ludCBzY3JvbGxQ
b3NpdGlvbiA9IG1fbWFpbkZyYW1lLT52aWV3KCktPnNjcm9sbFBvc2l0aW9uKCk7Ci0gICAgICAg
IG1feFNjcm9sbE9mZnNldFByaW9yR29pbmdGdWxsU2NyZWVuID0gc2Nyb2xsUG9zaXRpb24ueCgp
OworICAgICAgICBtX3hTY3JvbGxPZmZzZXRCZWZvcmVGdWxsU2NyZWVuID0gc2Nyb2xsUG9zaXRp
b24ueCgpOwogICAgICAgICBtX21haW5GcmFtZS0+dmlldygpLT5zZXRTY3JvbGxQb3NpdGlvbihX
ZWJDb3JlOjpJbnRQb2ludCgwLCBzY3JvbGxQb3NpdGlvbi55KCkpKTsKIAogI2lmIEVOQUJMRShF
VkVOVF9NT0RFX01FVEFUQUdTKQogICAgICAgICBtX3RvdWNoRXZlbnRNb2RlUHJpb3JHb2luZ0Z1
bGxTY3JlZW4gPSBtX3RvdWNoRXZlbnRNb2RlOwogICAgICAgICBkaWRSZWNlaXZlVG91Y2hFdmVu
dE1vZGUoUHVyZVRvdWNoRXZlbnRzV2l0aE1vdXNlQ29udmVyc2lvbik7CiAjZW5kaWYKKyAgICAg
ICAgLy8gVGhlIGN1cnJlbnQgc2NhbGUgY2FuIGJlIGNsYW1wZWQgdG8gYSBncmVhdGVyIG1pbmlt
dW0gc2NhbGUgd2hlbiB3ZSByZWxheW91dCBjb250ZW50cyBkdXJpbmcKKyAgICAgICAgLy8gdGhl
IGNoYW5nZSBvZiB0aGUgdmlld3BvcnQgc2l6ZS4gQ2FjaGUgdGhlIGN1cnJlbnQgc2NhbGUgc28g
dGhhdCB3ZSBjYW4gcmVzdG9yZSBpdCB3aGVuCisgICAgICAgIC8vIGxlYXZpbmcgZnVsbHNjcmVl
bi4gT3RoZXJ3aXNlLCBpdCBpcyBwb3NzaWJsZSB0aGF0IHdlIHdpbGwgdXNlIHRoZSB3cm9uZyBz
Y2FsZS4KKyAgICAgICAgbV9zY2FsZUJlZm9yZUZ1bGxTY3JlZW4gPSBjdXJyZW50U2NhbGUoKTsK
KwogICAgICAgICAvLyBObyBmdWxsc2NyZWVuIHZpZGVvIHdpZGdldCBoYXMgYmVlbiBtYWRlIGF2
YWlsYWJsZSBieSB0aGUgQnJvd3NlcgogICAgICAgICAvLyBjaHJvbWUsIG9yIHRoaXMgaXMgbm90
IGEgdmlkZW8gZWxlbWVudC4gVGhlIHdlYmtpdFJlcXVlc3RGdWxsU2NyZWVuCiAgICAgICAgIC8v
IEphdmFzY3JpcHQgY2FsbCBpcyBvZnRlbiBtYWRlIG9uIGEgZGl2IGVsZW1lbnQuCkBAIC02MjM2
LDE2ICs2MjQyLDI3IEBAIHZvaWQgV2ViUGFnZVByaXZhdGU6OmV4aXRGdWxsU2NyZWVuRm9yRWxl
bWVudChFbGVtZW50KiBlbGVtZW50KQogICAgICAgICBleGl0RnVsbHNjcmVlbkZvck5vZGUoZWxl
bWVudCk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgLy8gV2hlbiBsZWF2aW5nIGZ1bGxzY3JlZW4g
bW9kZSwgd2UgbmVlZCB0byByZXN0b3JlIHRoZSAneCcgc2Nyb2xsIHBvc2l0aW9uCi0gICAgICAg
IC8vIHByaW9yIGdvaW5nIGZ1bGwgc2NyZWVuLgorICAgICAgICAvLyBiZWZvcmUgZnVsbHNjcmVl
bi4KKyAgICAgICAgLy8gRklYTUU6IFdlIG1heSBuZWVkIHRvIHJlc3BlY3QgJ3knIHBvc2l0aW9u
IGFzIHdlbGwsIGJlY2F1c2UgdGhlIHdlYiBwYWdlIGFsd2F5cyBzY3JvbGxzIHRvCisgICAgICAg
IC8vIHRoZSB0b3Agd2hlbiBsZWF2aW5nIGZ1bGxzY3JlZW4gbW9kZS4KICAgICAgICAgV2ViQ29y
ZTo6SW50UG9pbnQgc2Nyb2xsUG9zaXRpb24gPSBtX21haW5GcmFtZS0+dmlldygpLT5zY3JvbGxQ
b3NpdGlvbigpOwogICAgICAgICBtX21haW5GcmFtZS0+dmlldygpLT5zZXRTY3JvbGxQb3NpdGlv
bigKLSAgICAgICAgICAgIFdlYkNvcmU6OkludFBvaW50KG1feFNjcm9sbE9mZnNldFByaW9yR29p
bmdGdWxsU2NyZWVuLCBzY3JvbGxQb3NpdGlvbi55KCkpKTsKLSAgICAgICAgbV94U2Nyb2xsT2Zm
c2V0UHJpb3JHb2luZ0Z1bGxTY3JlZW4gPSAtMTsKKyAgICAgICAgICAgIFdlYkNvcmU6OkludFBv
aW50KG1feFNjcm9sbE9mZnNldEJlZm9yZUZ1bGxTY3JlZW4sIHNjcm9sbFBvc2l0aW9uLnkoKSkp
OworICAgICAgICBtX3hTY3JvbGxPZmZzZXRCZWZvcmVGdWxsU2NyZWVuID0gLTE7CiAKICNpZiBF
TkFCTEUoRVZFTlRfTU9ERV9NRVRBVEFHUykKICAgICAgICAgZGlkUmVjZWl2ZVRvdWNoRXZlbnRN
b2RlKG1fdG91Y2hFdmVudE1vZGVQcmlvckdvaW5nRnVsbFNjcmVlbik7CiAgICAgICAgIG1fdG91
Y2hFdmVudE1vZGVQcmlvckdvaW5nRnVsbFNjcmVlbiA9IFByb2Nlc3NlZFRvdWNoRXZlbnRzOwog
I2VuZGlmCisgICAgICAgIGlmIChtX3NjYWxlQmVmb3JlRnVsbFNjcmVlbiA+IDApIHsKKyAgICAg
ICAgICAgIC8vIFJlc3RvcmUgdGhlIHNjYWxlIHdoZW4gbGVhdmluZyBmdWxsc2NyZWVuLiBXZSBj
YW4ndCB1c2UgVHJhbnNmb3JtYXRpb25NYXRyaXg6OnNjYWxlKGRvdWJsZSkgaGVyZSwgYXMgaXQK
KyAgICAgICAgICAgIC8vIHdpbGwgbXVsdGlwbHkgdGhlIHNjYWxlIHJhdGhlciB0aGFuIHNldCB0
aGUgc2NhbGUuCisgICAgICAgICAgICAvLyBGSVhNRTogV2UgY2FuIHJlZmFjdG9yIHRoaXMgaW50
byBzZXRDdXJyZW50U2NhbGUoZG91YmxlKSBpZiBpdCBpcyB1c2VmdWwgaW4gdGhlIGZ1dHVyZS4K
KyAgICAgICAgICAgIG1fdHJhbnNmb3JtYXRpb25NYXRyaXgtPnNldE0xMShtX3NjYWxlQmVmb3Jl
RnVsbFNjcmVlbik7CisgICAgICAgICAgICBtX3RyYW5zZm9ybWF0aW9uTWF0cml4LT5zZXRNMjIo
bV9zY2FsZUJlZm9yZUZ1bGxTY3JlZW4pOworICAgICAgICAgICAgbV9zY2FsZUJlZm9yZUZ1bGxT
Y3JlZW4gPSAtMS4wOworICAgICAgICB9CisKICAgICAgICAgLy8gVGhpcyBpcyB3aGVyZSB3ZSB3
b3VsZCByZXN0b3JlIHRoZSBicm93c2VyJ3MgY2hyb21lCiAgICAgICAgIC8vIGlmIGhpZGRlbiBh
Ym92ZS4KICAgICAgICAgY2xpZW50KCktPmZ1bGxzY3JlZW5TdG9wKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2VfcC5oIGIvU291cmNlL1dlYktpdC9i
bGFja2JlcnJ5L0FwaS9XZWJQYWdlX3AuaAppbmRleCA5YjJlZTcwMWEzZmNjMmYxYmJmOGFmNDFh
MjQ3NjA0ZGQ5ZjAwNmE0Li5kOGNhNWQ1N2UyZjViOWUzNTE2ZGRmZWUwZmQ3MWM0NTVhYTIyNmE0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2VfcC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZV9wLmgKQEAgLTQ5OCw3ICs0
OTgsMTAgQEAgcHVibGljOgogI2lmIEVOQUJMRShFVkVOVF9NT0RFX01FVEFUQUdTKQogICAgIFdl
YkNvcmU6OlRvdWNoRXZlbnRNb2RlIG1fdG91Y2hFdmVudE1vZGVQcmlvckdvaW5nRnVsbFNjcmVl
bjsKICNlbmRpZgotICAgIGludCBtX3hTY3JvbGxPZmZzZXRQcmlvckdvaW5nRnVsbFNjcmVlbjsK
KyNpZiBFTkFCTEUoVklERU8pCisgICAgZG91YmxlIG1fc2NhbGVCZWZvcmVGdWxsU2NyZWVuOwor
ICAgIGludCBtX3hTY3JvbGxPZmZzZXRCZWZvcmVGdWxsU2NyZWVuOworI2VuZGlmCiAjZW5kaWYK
IAogICAgIFBsYXRmb3JtOjpCbGFja0JlcnJ5Q3Vyc29yIG1fY3VycmVudEN1cnNvcjsK
</data>
<flag name="review"
          id="157864"
          type_id="1"
          status="+"
          setter="tonikitoo"
    />
          </attachment>
      

    </bug>

</bugzilla>