<?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>64851</bug_id>
          
          <creation_ts>2011-07-20 01:04:47 -0700</creation_ts>
          <short_desc>Optimize AnimationController::updateAnimations</short_desc>
          <delta_ts>2011-07-29 16:32:30 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>All</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="zeng huiqing">huiqing.zeng</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>cmarrin</cc>
    
    <cc>darin</cc>
    
    <cc>dbates</cc>
    
    <cc>dglazkov</cc>
    
    <cc>dino</cc>
    
    <cc>hyatt</cc>
    
    <cc>morrita</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>439674</commentid>
    <comment_count>0</comment_count>
    <who name="zeng huiqing">huiqing.zeng</who>
    <bug_when>2011-07-20 01:04:47 -0700</bug_when>
    <thetext>For loading page w/ transition property(CSS3), FF4 ~5.5X faster than Chromium.

Through analysis, we find that the root cause is that w/ transition, when a dom element is attached, it will call RenderObject::setAnimatableStyle, then AnimationController::updateAnimations, and it will call AnimationController::updateAnimationTimer, which is the hotspot.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>439681</commentid>
    <comment_count>1</comment_count>
      <attachid>101436</attachid>
    <who name="zeng huiqing">huiqing.zeng</who>
    <bug_when>2011-07-20 01:33:30 -0700</bug_when>
    <thetext>Created attachment 101436
Optimize AnimationController::updateAnimations

In my opinion, in fact, we may do not need to call updateAnimationTimer in the process of &quot;Attach&quot; when loading page.

Has submit a patch, the patch is to add flag in function setAnimatableStyle() and updateAnimations() to avoid calling updateAnimationTimer when doing &quot;Attachment&quot;. The patch will reduce page(with transition property) loading time by 70%, improve the performance by 3.3X.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>439692</commentid>
    <comment_count>2</comment_count>
      <attachid>101436</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-20 02:16:06 -0700</bug_when>
    <thetext>Comment on attachment 101436
Optimize AnimationController::updateAnimations

Attachment 101436 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/9192186

New failing tests:
animations/animation-end-event-short-iterations.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>440267</commentid>
    <comment_count>3</comment_count>
      <attachid>101557</attachid>
    <who name="zeng huiqing">huiqing.zeng</who>
    <bug_when>2011-07-20 22:14:35 -0700</bug_when>
    <thetext>Created attachment 101557
newPatch

new patch
now pass the test animations/animation-end-event-short-iterations.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>440422</commentid>
    <comment_count>4</comment_count>
      <attachid>101557</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2011-07-21 08:23:07 -0700</bug_when>
    <thetext>Comment on attachment 101557
newPatch

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

In general I don&apos;t like that this adds the parameter to setAnimatableStyle. Is there way the RenderObject can know if it is attached to the tree so that we don&apos;t have to pass the flag around? From a brief investigation this path is only hit when the RenderObject is not in the render tree (it shouldn&apos;t have a parent) - is this correct?

&gt; Source/WebCore/ChangeLog:3
&gt; +        [Bug 64851][chromium]Optimize AnimationController::updateAnimations

You should give this a better title. There is no need for [Bug 64851] and this isn&apos;t specific to [chromium].

&gt; Source/WebCore/ChangeLog:7
&gt; +

Similarly, you should put a description here of what the problem was and what you fixed.

&gt; Source/WebCore/page/animation/AnimationController.cpp:479
&gt; +PassRefPtr&lt;RenderStyle&gt; AnimationController::updateAnimations(RenderObject* renderer, RenderStyle* newStyle, bool InAttach)

The parameter name is pretty unclear to me. It should describe what it is doing within the function itself, not what the caller is using it for. Does that make sense? I mean that it should be something like timerShouldUpdate because that&apos;s how the updateAnimations function is using it.

Also, a style issue, the parameter name should not start with an uppercase character.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>440434</commentid>
    <comment_count>5</comment_count>
      <attachid>101557</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-07-21 08:41:33 -0700</bug_when>
    <thetext>Comment on attachment 101557
newPatch

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

&gt; Source/WebCore/dom/NodeRenderingContext.cpp:287
&gt; +    newRenderer-&gt;setAnimatableStyle(m_context.releaseStyle(), true); // setAnimatableStyle() can depend on renderer() already being set.

We try to avoid boolean parameters because they are hard to read at the call site, like this. Enums are preferred.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>440760</commentid>
    <comment_count>6</comment_count>
    <who name="zeng huiqing">huiqing.zeng</who>
    <bug_when>2011-07-21 17:52:43 -0700</bug_when>
    <thetext>Many thanks for helping review the patch and the good comments:)

&gt; In general I don&apos;t like that this adds the parameter to setAnimatableStyle. Is there way the RenderObject can know if it is attached to the tree so that we don&apos;t have to pass the flag around? From a brief investigation this path is only hit when the RenderObject is not in the render tree (it shouldn&apos;t have a parent) - is this correct?


Through debugging, I found there exist another two call paths for RenderObject::setAnimatableStyle():
1)
WebKitClientImpl::DoTimeout()-&gt;ThreadTimers::sharedTimerFiredInternal()-&gt;Timer&lt;AnimationControllerPrivate&gt;::fired()-&gt;AnimationControllerPrivate::animationTimerFired()-&gt;AnimationControllerPrivate::updateAnimationTimer()[or AnimationControllerPrivate::fireEventsAndUpdateStyle]-&gt;Document::updateStyleIfNeeded()-&gt;Element::recalcStyle()-&gt;Node::setRenderStyle()-&gt;RenderObject::setAnimatableStyle()

2)
StyleElement::createSheet()-&gt;...-&gt;Document::styleSelectorChanged()-&gt;Element::recalcStyle()-&gt;Node::setRenderStyle()-&gt;RenderObject::setAnimatableStyle()

These two call paths both happen before &quot;Attach&quot;, and I am sorry I am not sure whether can remove updateAnimationTimer() in these two paths when loading page w/ only transition property, so I add parameter to setAnimatableStyle().

And through profiling, we can find that the function AnimationController::updateAnimationTimer() doing in the process of &quot;Attach&quot; will consume a lot of time when loading page w/ transition property, especially when the page has many RenderObjects w/ transition property.

I will update the patch according to your good comments, thank you very much:).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>440834</commentid>
    <comment_count>7</comment_count>
    <who name="zeng huiqing">huiqing.zeng</who>
    <bug_when>2011-07-21 22:06:41 -0700</bug_when>
    <thetext>&gt; These two call paths both happen before &quot;Attach&quot;, and I am sorry I am not sure whether can remove updateAnimationTimer() in these two paths when loading page w/ only transition property, so I add parameter to setAnimatableStyle().

Sorry for the wrong comments, these two call paths both happen after &quot;Attach&quot;, like &apos;:hover&apos; or &apos;:active&apos; will invoke these two call path, so add parameter to setAnimatableStyle() to judge whether or not to invoke updateAnimationTimer().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>440879</commentid>
    <comment_count>8</comment_count>
      <attachid>101705</attachid>
    <who name="zeng huiqing">huiqing.zeng</who>
    <bug_when>2011-07-22 01:27:00 -0700</bug_when>
    <thetext>Created attachment 101705
newPatch

use &apos;renderer-&gt;parent()&apos; in function updateAnimations() to avoid calling updateAnimationTimer in the process of &quot;attached&quot; when loading page with only CSS3 transition property but no animation property.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>440955</commentid>
    <comment_count>9</comment_count>
    <who name="zeng huiqing">huiqing.zeng</who>
    <bug_when>2011-07-22 08:18:02 -0700</bug_when>
    <thetext>Can anyone possibly help review the patch? Thanks very much:)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>441653</commentid>
    <comment_count>10</comment_count>
    <who name="zeng huiqing">huiqing.zeng</who>
    <bug_when>2011-07-25 07:58:08 -0700</bug_when>
    <thetext>For page loading test, find that if load a page w/ CSS3 transition property, especially when page contains many RenderObjects w/ transition property, FF4 performs ~5.5X faster than Chromium&amp;Safari.

Through analysis, find that the root cause is that w/ transition property, when a dom element is attached, it will call RenderObject::setAnimatableStyle, then AnimationController::updateAnimations, and it will call AnimationController::updateAnimationTimer, which is the hotspot.

And, in my opinion, we may do not need to call updateAnimationTimer() in the process of &quot;Attach&quot; when loading page w/ only CSS3 transition property actually.

Had submit a patch,use &apos;renderer-&gt;parent()&apos; in function updateAnimations() to avoid calling updateAnimationTimer() in the process of &quot;attached&quot; when loading page with only CSS3 transition property but no animation property.
The patch will reduce page(with transition property) loading time by 70%, improve the performance by 3.3X.

Could someone possibly help review the patch when have a moment? Thanks very much:)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443851</commentid>
    <comment_count>11</comment_count>
      <attachid>101705</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2011-07-29 01:56:28 -0700</bug_when>
    <thetext>Comment on attachment 101705
newPatch

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

You&apos;ll have to wait until an official reviewer gives the r+. The two most familiar with the animation code are Simon and Chris, who are on vacation until Monday. I will try to find someone sooner.

Otherwise, this looks good. Thanks!

&gt; Source/WebCore/ChangeLog:3
&gt; +        Fix for bug 64851 - No need to call updateAnimationTimer() in the process of &quot;Attach&quot; when loading page with only CSS3 transition property but no animation property.

I think the title here should be &quot;Avoid calling animation timer updates while the page is loading&quot;

&gt; Source/WebCore/ChangeLog:8
&gt; +        No new tests. 

... and then here you should describe the change. For example:

There is no need to update the animation timer for a RenderObject that has not yet been inserted into the render tree, or that doesn&apos;t have animations. Our tests show that this improves page loading by up to 3x on pages with a large number of transitionable objects.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443853</commentid>
    <comment_count>12</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2011-07-29 01:59:33 -0700</bug_when>
    <thetext>Also, no need for &quot;Fix for bug 64851 -&quot; on the first line in the change log.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443866</commentid>
    <comment_count>13</comment_count>
    <who name="zeng huiqing">huiqing.zeng</who>
    <bug_when>2011-07-29 03:21:25 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; Also, no need for &quot;Fix for bug 64851 -&quot; on the first line in the change log.

Dean, many thanks for helping review the patch and the good comments:)
I have submitted a new patch according to your comments:)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443867</commentid>
    <comment_count>14</comment_count>
      <attachid>102341</attachid>
    <who name="zeng huiqing">huiqing.zeng</who>
    <bug_when>2011-07-29 03:23:18 -0700</bug_when>
    <thetext>Created attachment 102341
newPatch

change the style of ChangeLog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443980</commentid>
    <comment_count>15</comment_count>
      <attachid>102341</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-29 10:23:52 -0700</bug_when>
    <thetext>Comment on attachment 102341
newPatch

Clearing flags on attachment: 102341

Committed r91999: &lt;http://trac.webkit.org/changeset/91999&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443981</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-29 10:23:59 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>444170</commentid>
    <comment_count>17</comment_count>
    <who name="zeng huiqing">huiqing.zeng</who>
    <bug_when>2011-07-29 16:32:30 -0700</bug_when>
    <thetext>Thanks very much for the review:)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>101436</attachid>
            <date>2011-07-20 01:33:30 -0700</date>
            <delta_ts>2011-07-20 22:14:35 -0700</delta_ts>
            <desc>Optimize AnimationController::updateAnimations</desc>
            <filename>transitionPatch.txt</filename>
            <type>text/plain</type>
            <size>5213</size>
            <attacher name="zeng huiqing">huiqing.zeng</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZw0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gOTEzNDcpDQorKysgU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpDQpAQCAtMSwzICsxLDIxIEBADQorMjAxMS0wNy0yMCAgWmVu
ZyBIdWlxaW5nICA8aHVpcWluZy56ZW5nQGludGVsLmNvbT4NCisNCisgICAgICAgIFtCdWcgNjQ4
NTFdW2Nocm9taXVtXU9wdGltaXplIEFuaW1hdGlvbkNvbnRyb2xsZXI6OnVwZGF0ZUFuaW1hdGlv
bnMNCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NDg1
MSANCisNCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKw0KKyAgICAgICAg
Tm8gbmV3IHRlc3RzLiANCisNCisgICAgICAgICogZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNw
cDoNCisgICAgICAgIChXZWJDb3JlOjpOb2RlUmVuZGVyZXJGYWN0b3J5OjpjcmVhdGVSZW5kZXJl
ckFuZFN0eWxlKToNCisgICAgICAgICogcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQ29udHJvbGxl
ci5jcHA6DQorICAgICAgICAoV2ViQ29yZTo6QW5pbWF0aW9uQ29udHJvbGxlcjo6dXBkYXRlQW5p
bWF0aW9ucyk6DQorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXIu
aDoNCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHA6DQorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyT2JqZWN0OjpzZXRBbmltYXRhYmxlU3R5bGUpOg0KKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyT2JqZWN0Lmg6DQorDQogMjAxMS0wNy0yMCAgQm9yaXMgU211cyAgPHNtdXNA
Y2hyb21pdW0ub3JnPg0KIA0KICAgICAgICAgQWRkIGEgcmVzb3VyY2VMaW5rIGF1ZGl0IGZvcm1h
dHRlciB0byBtYWtlIGl0IHBvc3NpYmxlIGZvciBkZXZ0b29scw0KSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHANCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBTb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwCShyZXZpc2lvbiA5MTM0MikNCisr
KyBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwCSh3b3JraW5nIGNv
cHkpDQpAQCAtMjg0LDcgKzI4NCw3IEBAIFJlbmRlck9iamVjdCogTm9kZVJlbmRlcmVyRmFjdG9y
eTo6Y3JlYXQNCiAgICAgfQ0KIA0KICAgICBub2RlLT5zZXRSZW5kZXJlcihuZXdSZW5kZXJlcik7
DQotICAgIG5ld1JlbmRlcmVyLT5zZXRBbmltYXRhYmxlU3R5bGUobV9jb250ZXh0LnJlbGVhc2VT
dHlsZSgpKTsgLy8gc2V0QW5pbWF0YWJsZVN0eWxlKCkgY2FuIGRlcGVuZCBvbiByZW5kZXJlcigp
IGFscmVhZHkgYmVpbmcgc2V0Lg0KKyAgICBuZXdSZW5kZXJlci0+c2V0QW5pbWF0YWJsZVN0eWxl
KG1fY29udGV4dC5yZWxlYXNlU3R5bGUoKSwgdHJ1ZSk7IC8vIHNldEFuaW1hdGFibGVTdHlsZSgp
IGNhbiBkZXBlbmQgb24gcmVuZGVyZXIoKSBhbHJlYWR5IGJlaW5nIHNldC4NCiAgICAgcmV0dXJu
IG5ld1JlbmRlcmVyOw0KIH0NCiANCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlv
bi9BbmltYXRpb25Db250cm9sbGVyLmNwcA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiA5MTM0MikN
CisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVyLmNw
cAkod29ya2luZyBjb3B5KQ0KQEAgLTQ3Niw3ICs0NzYsNyBAQCB2b2lkIEFuaW1hdGlvbkNvbnRy
b2xsZXI6OmNhbmNlbEFuaW1hdGlvDQogICAgIH0NCiB9DQogDQotUGFzc1JlZlB0cjxSZW5kZXJT
dHlsZT4gQW5pbWF0aW9uQ29udHJvbGxlcjo6dXBkYXRlQW5pbWF0aW9ucyhSZW5kZXJPYmplY3Qq
IHJlbmRlcmVyLCBSZW5kZXJTdHlsZSogbmV3U3R5bGUpDQorUGFzc1JlZlB0cjxSZW5kZXJTdHls
ZT4gQW5pbWF0aW9uQ29udHJvbGxlcjo6dXBkYXRlQW5pbWF0aW9ucyhSZW5kZXJPYmplY3QqIHJl
bmRlcmVyLCBSZW5kZXJTdHlsZSogbmV3U3R5bGUsIGJvb2wgSW5BdHRhY2gpDQogew0KICAgICAv
LyBEb24ndCBkbyBhbnl0aGluZyBpZiB3ZSdyZSBpbiB0aGUgY2FjaGUNCiAgICAgaWYgKCFyZW5k
ZXJlci0+ZG9jdW1lbnQoKSB8fCByZW5kZXJlci0+ZG9jdW1lbnQoKS0+aW5QYWdlQ2FjaGUoKSkN
CkBAIC01MDAsNyArNTAwLDggQEAgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gQW5pbWF0aW9uQ29u
dHJvbA0KICAgICBSZWZQdHI8Q29tcG9zaXRlQW5pbWF0aW9uPiByZW5kZXJlckFuaW1hdGlvbnMg
PSBtX2RhdGEtPmFjY2Vzc0NvbXBvc2l0ZUFuaW1hdGlvbihyZW5kZXJlcik7DQogICAgIFJlZlB0
cjxSZW5kZXJTdHlsZT4gYmxlbmRlZFN0eWxlID0gcmVuZGVyZXJBbmltYXRpb25zLT5hbmltYXRl
KHJlbmRlcmVyLCBvbGRTdHlsZSwgbmV3U3R5bGUpOw0KIA0KLSAgICBtX2RhdGEtPnVwZGF0ZUFu
aW1hdGlvblRpbWVyKCk7DQorICAgIGlmICghSW5BdHRhY2gpDQorICAgICAgICBtX2RhdGEtPnVw
ZGF0ZUFuaW1hdGlvblRpbWVyKCk7DQogDQogICAgIGlmIChibGVuZGVkU3R5bGUgIT0gbmV3U3R5
bGUpIHsNCiAgICAgICAgIC8vIElmIHRoZSBhbmltYXRpb25zL3RyYW5zaXRpb25zIGNoYW5nZSBv
cGFjaXR5IG9yIHRyYW5zZm9ybSwgd2UgbmVlZCB0byB1cGRhdGUNCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVyLmgNCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0t
LSBTb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVyLmgJKHJl
dmlzaW9uIDkxMzQyKQ0KKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlv
bkNvbnRyb2xsZXIuaAkod29ya2luZyBjb3B5KQ0KQEAgLTUwLDcgKzUwLDcgQEAgcHVibGljOg0K
ICAgICB+QW5pbWF0aW9uQ29udHJvbGxlcigpOw0KIA0KICAgICB2b2lkIGNhbmNlbEFuaW1hdGlv
bnMoUmVuZGVyT2JqZWN0Kik7DQotICAgIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IHVwZGF0ZUFu
aW1hdGlvbnMoUmVuZGVyT2JqZWN0KiwgUmVuZGVyU3R5bGUqIG5ld1N0eWxlKTsNCisgICAgUGFz
c1JlZlB0cjxSZW5kZXJTdHlsZT4gdXBkYXRlQW5pbWF0aW9ucyhSZW5kZXJPYmplY3QqLCBSZW5k
ZXJTdHlsZSogbmV3U3R5bGUsIGJvb2wgSW5BdHRhY2ggPSBmYWxzZSk7DQogICAgIFBhc3NSZWZQ
dHI8UmVuZGVyU3R5bGU+IGdldEFuaW1hdGVkU3R5bGVGb3JSZW5kZXJlcihSZW5kZXJPYmplY3Qq
KTsNCiANCiAgICAgLy8gVGhpcyBpcyBjYWxsZWQgd2hlbiBhbiBhY2NlbGVyYXRlZCBhbmltYXRp
b24gb3IgdHJhbnNpdGlvbiBoYXMgYWN0dWFsbHkgc3RhcnRlZCB0byBhbmltYXRlLg0KSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwDQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQot
LS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAJKHJldmlzaW9uIDkx
MzQyKQ0KKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCSh3b3Jr
aW5nIGNvcHkpDQpAQCAtMTUzOCwxMCArMTUzOCwxMCBAQCB2b2lkIFJlbmRlck9iamVjdDo6aGFu
ZGxlRHluYW1pY0Zsb2F0UG9zDQogICAgIH0NCiB9DQogDQotdm9pZCBSZW5kZXJPYmplY3Q6OnNl
dEFuaW1hdGFibGVTdHlsZShQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBzdHlsZSkNCit2b2lkIFJl
bmRlck9iamVjdDo6c2V0QW5pbWF0YWJsZVN0eWxlKFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IHN0
eWxlLCBib29sIEluQXR0YWNoKQ0KIHsNCiAgICAgaWYgKCFpc1RleHQoKSAmJiBzdHlsZSkNCi0g
ICAgICAgIHNldFN0eWxlKGFuaW1hdGlvbigpLT51cGRhdGVBbmltYXRpb25zKHRoaXMsIHN0eWxl
LmdldCgpKSk7DQorICAgICAgICBzZXRTdHlsZShhbmltYXRpb24oKS0+dXBkYXRlQW5pbWF0aW9u
cyh0aGlzLCBzdHlsZS5nZXQoKSwgSW5BdHRhY2gpKTsNCiAgICAgZWxzZQ0KICAgICAgICAgc2V0
U3R5bGUoc3R5bGUpOw0KIH0NCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
T2JqZWN0LmgNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0NCi0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
T2JqZWN0LmgJKHJldmlzaW9uIDkxMzQyKQ0KKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJPYmplY3QuaAkod29ya2luZyBjb3B5KQ0KQEAgLTU2MSw3ICs1NjEsNyBAQCBwdWJsaWM6
DQogICAgIC8vIENhbGxlZCB0byB1cGRhdGUgYSBzdHlsZSB0aGF0IGlzIGFsbG93ZWQgdG8gdHJp
Z2dlciBhbmltYXRpb25zLg0KICAgICAvLyBGSVhNRTogUmlnaHQgbm93IHRoaXMgd2lsbCB0eXBp
Y2FsbHkgYmUgY2FsbGVkIG9ubHkgd2hlbiB1cGRhdGluZyBoYXBwZW5zIGZyb20gdGhlIERPTSBv
biBleHBsaWNpdCBlbGVtZW50cy4NCiAgICAgLy8gV2UgZG9uJ3QgeWV0IGhhbmRsZSBnZW5lcmF0
ZWQgY29udGVudCBhbmltYXRpb24gc3VjaCBhcyBmaXJzdC1sZXR0ZXIgb3IgYmVmb3JlL2FmdGVy
ICh3ZSdsbCB3b3JyeSBhYm91dCB0aGlzIGxhdGVyKS4NCi0gICAgdm9pZCBzZXRBbmltYXRhYmxl
U3R5bGUoUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4pOw0KKyAgICB2b2lkIHNldEFuaW1hdGFibGVT
dHlsZShQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiwgYm9vbCBJbkF0dGFjaCA9IGZhbHNlKTsNCiAN
CiAgICAgLy8gU2V0IHRoZSBzdHlsZSBvZiB0aGUgb2JqZWN0IGFuZCB1cGRhdGUgdGhlIHN0YXRl
IG9mIHRoZSBvYmplY3QgYWNjb3JkaW5nbHkuDQogICAgIHZpcnR1YWwgdm9pZCBzZXRTdHlsZShQ
YXNzUmVmUHRyPFJlbmRlclN0eWxlPik7DQo=
</data>
<flag name="commit-queue"
          id="96351"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>101557</attachid>
            <date>2011-07-20 22:14:35 -0700</date>
            <delta_ts>2011-07-22 01:27:00 -0700</delta_ts>
            <desc>newPatch</desc>
            <filename>transitionPatch.new.txt</filename>
            <type>text/plain</type>
            <size>5245</size>
            <attacher name="zeng huiqing">huiqing.zeng</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZw0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gOTE0NDMpDQorKysgU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpDQpAQCAtMSwzICsxLDIxIEBADQorMjAxMS0wNy0yMCAgWmVu
ZyBIdWlxaW5nICA8aHVpcWluZy56ZW5nQGludGVsLmNvbT4NCisNCisgICAgICAgIFtCdWcgNjQ4
NTFdW2Nocm9taXVtXU9wdGltaXplIEFuaW1hdGlvbkNvbnRyb2xsZXI6OnVwZGF0ZUFuaW1hdGlv
bnMNCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NDg1
MSANCisNCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKw0KKyAgICAgICAg
Tm8gbmV3IHRlc3RzLiANCisNCisgICAgICAgICogZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNw
cDoNCisgICAgICAgIChXZWJDb3JlOjpOb2RlUmVuZGVyZXJGYWN0b3J5OjpjcmVhdGVSZW5kZXJl
ckFuZFN0eWxlKToNCisgICAgICAgICogcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQ29udHJvbGxl
ci5jcHA6DQorICAgICAgICAoV2ViQ29yZTo6QW5pbWF0aW9uQ29udHJvbGxlcjo6dXBkYXRlQW5p
bWF0aW9ucyk6DQorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXIu
aDoNCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHA6DQorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyT2JqZWN0OjpzZXRBbmltYXRhYmxlU3R5bGUpOg0KKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyT2JqZWN0Lmg6DQorDQogMjAxMS0wNy0yMCAgUnlvc3VrZSBOaXdhICA8cm5p
d2FAd2Via2l0Lm9yZz4NCiANCiAgICAgICAgIENocm9taXVtIGJ1aWxkIGZpeCBhZnRlciByOTE0
NDAuDQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcA0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQ0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5j
cHAJKHJldmlzaW9uIDkxNDQzKQ0KKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5n
Q29udGV4dC5jcHAJKHdvcmtpbmcgY29weSkNCkBAIC0yODQsNyArMjg0LDcgQEAgUmVuZGVyT2Jq
ZWN0KiBOb2RlUmVuZGVyZXJGYWN0b3J5OjpjcmVhdA0KICAgICB9DQogDQogICAgIG5vZGUtPnNl
dFJlbmRlcmVyKG5ld1JlbmRlcmVyKTsNCi0gICAgbmV3UmVuZGVyZXItPnNldEFuaW1hdGFibGVT
dHlsZShtX2NvbnRleHQucmVsZWFzZVN0eWxlKCkpOyAvLyBzZXRBbmltYXRhYmxlU3R5bGUoKSBj
YW4gZGVwZW5kIG9uIHJlbmRlcmVyKCkgYWxyZWFkeSBiZWluZyBzZXQuDQorICAgIG5ld1JlbmRl
cmVyLT5zZXRBbmltYXRhYmxlU3R5bGUobV9jb250ZXh0LnJlbGVhc2VTdHlsZSgpLCB0cnVlKTsg
Ly8gc2V0QW5pbWF0YWJsZVN0eWxlKCkgY2FuIGRlcGVuZCBvbiByZW5kZXJlcigpIGFscmVhZHkg
YmVpbmcgc2V0Lg0KICAgICByZXR1cm4gbmV3UmVuZGVyZXI7DQogfQ0KIA0KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXIuY3BwDQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09DQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQ29udHJvbGxl
ci5jcHAJKHJldmlzaW9uIDkxNDQzKQ0KKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9u
L0FuaW1hdGlvbkNvbnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAtNDc2LDcgKzQ3Niw3
IEBAIHZvaWQgQW5pbWF0aW9uQ29udHJvbGxlcjo6Y2FuY2VsQW5pbWF0aW8NCiAgICAgfQ0KIH0N
CiANCi1QYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBBbmltYXRpb25Db250cm9sbGVyOjp1cGRhdGVB
bmltYXRpb25zKFJlbmRlck9iamVjdCogcmVuZGVyZXIsIFJlbmRlclN0eWxlKiBuZXdTdHlsZSkN
CitQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBBbmltYXRpb25Db250cm9sbGVyOjp1cGRhdGVBbmlt
YXRpb25zKFJlbmRlck9iamVjdCogcmVuZGVyZXIsIFJlbmRlclN0eWxlKiBuZXdTdHlsZSwgYm9v
bCBJbkF0dGFjaCkNCiB7DQogICAgIC8vIERvbid0IGRvIGFueXRoaW5nIGlmIHdlJ3JlIGluIHRo
ZSBjYWNoZQ0KICAgICBpZiAoIXJlbmRlcmVyLT5kb2N1bWVudCgpIHx8IHJlbmRlcmVyLT5kb2N1
bWVudCgpLT5pblBhZ2VDYWNoZSgpKQ0KQEAgLTUwMCw3ICs1MDAsOCBAQCBQYXNzUmVmUHRyPFJl
bmRlclN0eWxlPiBBbmltYXRpb25Db250cm9sDQogICAgIFJlZlB0cjxDb21wb3NpdGVBbmltYXRp
b24+IHJlbmRlcmVyQW5pbWF0aW9ucyA9IG1fZGF0YS0+YWNjZXNzQ29tcG9zaXRlQW5pbWF0aW9u
KHJlbmRlcmVyKTsNCiAgICAgUmVmUHRyPFJlbmRlclN0eWxlPiBibGVuZGVkU3R5bGUgPSByZW5k
ZXJlckFuaW1hdGlvbnMtPmFuaW1hdGUocmVuZGVyZXIsIG9sZFN0eWxlLCBuZXdTdHlsZSk7DQog
DQotICAgIG1fZGF0YS0+dXBkYXRlQW5pbWF0aW9uVGltZXIoKTsNCisgICAgaWYgKCFJbkF0dGFj
aCB8fCBuZXdTdHlsZS0+YW5pbWF0aW9ucygpIHx8IChvbGRTdHlsZSAmJiBvbGRTdHlsZS0+YW5p
bWF0aW9ucygpKSkNCisgICAgICAgIG1fZGF0YS0+dXBkYXRlQW5pbWF0aW9uVGltZXIoKTsNCiAN
CiAgICAgaWYgKGJsZW5kZWRTdHlsZSAhPSBuZXdTdHlsZSkgew0KICAgICAgICAgLy8gSWYgdGhl
IGFuaW1hdGlvbnMvdHJhbnNpdGlvbnMgY2hhbmdlIG9wYWNpdHkgb3IgdHJhbnNmb3JtLCB3ZSBu
ZWVkIHRvIHVwZGF0ZQ0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1h
dGlvbkNvbnRyb2xsZXIuaA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvYW5p
bWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXIuaAkocmV2aXNpb24gOTE0NDMpDQorKysgU291cmNl
L1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQ29udHJvbGxlci5oCSh3b3JraW5nIGNv
cHkpDQpAQCAtNTAsNyArNTAsNyBAQCBwdWJsaWM6DQogICAgIH5BbmltYXRpb25Db250cm9sbGVy
KCk7DQogDQogICAgIHZvaWQgY2FuY2VsQW5pbWF0aW9ucyhSZW5kZXJPYmplY3QqKTsNCi0gICAg
UGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gdXBkYXRlQW5pbWF0aW9ucyhSZW5kZXJPYmplY3QqLCBS
ZW5kZXJTdHlsZSogbmV3U3R5bGUpOw0KKyAgICBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiB1cGRh
dGVBbmltYXRpb25zKFJlbmRlck9iamVjdCosIFJlbmRlclN0eWxlKiBuZXdTdHlsZSwgYm9vbCBJ
bkF0dGFjaCA9IGZhbHNlKTsNCiAgICAgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gZ2V0QW5pbWF0
ZWRTdHlsZUZvclJlbmRlcmVyKFJlbmRlck9iamVjdCopOw0KIA0KICAgICAvLyBUaGlzIGlzIGNh
bGxlZCB3aGVuIGFuIGFjY2VsZXJhdGVkIGFuaW1hdGlvbiBvciB0cmFuc2l0aW9uIGhhcyBhY3R1
YWxseSBzdGFydGVkIHRvIGFuaW1hdGUuDQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlck9iamVjdC5jcHANCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyT2JqZWN0LmNwcAkocmV2aXNpb24gOTE0NDMpDQorKysgU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkNCkBAIC0xNTM4LDEwICsx
NTM4LDEwIEBAIHZvaWQgUmVuZGVyT2JqZWN0OjpoYW5kbGVEeW5hbWljRmxvYXRQb3MNCiAgICAg
fQ0KIH0NCiANCi12b2lkIFJlbmRlck9iamVjdDo6c2V0QW5pbWF0YWJsZVN0eWxlKFBhc3NSZWZQ
dHI8UmVuZGVyU3R5bGU+IHN0eWxlKQ0KK3ZvaWQgUmVuZGVyT2JqZWN0OjpzZXRBbmltYXRhYmxl
U3R5bGUoUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gc3R5bGUsIGJvb2wgSW5BdHRhY2gpDQogew0K
ICAgICBpZiAoIWlzVGV4dCgpICYmIHN0eWxlKQ0KLSAgICAgICAgc2V0U3R5bGUoYW5pbWF0aW9u
KCktPnVwZGF0ZUFuaW1hdGlvbnModGhpcywgc3R5bGUuZ2V0KCkpKTsNCisgICAgICAgIHNldFN0
eWxlKGFuaW1hdGlvbigpLT51cGRhdGVBbmltYXRpb25zKHRoaXMsIHN0eWxlLmdldCgpLCBJbkF0
dGFjaCkpOw0KICAgICBlbHNlDQogICAgICAgICBzZXRTdHlsZShzdHlsZSk7DQogfQ0KSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaA0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0t
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAkocmV2aXNpb24gOTE0NDMp
DQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCSh3b3JraW5nIGNv
cHkpDQpAQCAtNTYxLDcgKzU2MSw3IEBAIHB1YmxpYzoNCiAgICAgLy8gQ2FsbGVkIHRvIHVwZGF0
ZSBhIHN0eWxlIHRoYXQgaXMgYWxsb3dlZCB0byB0cmlnZ2VyIGFuaW1hdGlvbnMuDQogICAgIC8v
IEZJWE1FOiBSaWdodCBub3cgdGhpcyB3aWxsIHR5cGljYWxseSBiZSBjYWxsZWQgb25seSB3aGVu
IHVwZGF0aW5nIGhhcHBlbnMgZnJvbSB0aGUgRE9NIG9uIGV4cGxpY2l0IGVsZW1lbnRzLg0KICAg
ICAvLyBXZSBkb24ndCB5ZXQgaGFuZGxlIGdlbmVyYXRlZCBjb250ZW50IGFuaW1hdGlvbiBzdWNo
IGFzIGZpcnN0LWxldHRlciBvciBiZWZvcmUvYWZ0ZXIgKHdlJ2xsIHdvcnJ5IGFib3V0IHRoaXMg
bGF0ZXIpLg0KLSAgICB2b2lkIHNldEFuaW1hdGFibGVTdHlsZShQYXNzUmVmUHRyPFJlbmRlclN0
eWxlPik7DQorICAgIHZvaWQgc2V0QW5pbWF0YWJsZVN0eWxlKFBhc3NSZWZQdHI8UmVuZGVyU3R5
bGU+LCBib29sIEluQXR0YWNoID0gZmFsc2UpOw0KIA0KICAgICAvLyBTZXQgdGhlIHN0eWxlIG9m
IHRoZSBvYmplY3QgYW5kIHVwZGF0ZSB0aGUgc3RhdGUgb2YgdGhlIG9iamVjdCBhY2NvcmRpbmds
eS4NCiAgICAgdmlydHVhbCB2b2lkIHNldFN0eWxlKFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+KTsN
Cg==
</data>
<flag name="review"
          id="96517"
          type_id="1"
          status="-"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>101705</attachid>
            <date>2011-07-22 01:27:00 -0700</date>
            <delta_ts>2011-07-29 03:23:18 -0700</delta_ts>
            <desc>newPatch</desc>
            <filename>transitionPatch.new.txt</filename>
            <type>text/plain</type>
            <size>1614</size>
            <attacher name="zeng huiqing">huiqing.zeng</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZw0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gOTE1NjApDQorKysgU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpDQpAQCAtMSwzICsxLDE1IEBADQorMjAxMS0wNy0yMiAgWmVu
ZyBIdWlxaW5nICA8aHVpcWluZy56ZW5nQGludGVsLmNvbT4NCisNCisgICAgICAgIEZpeCBmb3Ig
YnVnIDY0ODUxIC0gTm8gbmVlZCB0byBjYWxsIHVwZGF0ZUFuaW1hdGlvblRpbWVyKCkgaW4gdGhl
IHByb2Nlc3Mgb2YgIkF0dGFjaCIgd2hlbiBsb2FkaW5nIHBhZ2Ugd2l0aCBvbmx5IENTUzMgdHJh
bnNpdGlvbiBwcm9wZXJ0eSBidXQgbm8gYW5pbWF0aW9uIHByb3BlcnR5Lg0KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY0ODUxDQorDQorICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4NCisNCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gDQor
DQorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXIuY3BwOg0KKyAg
ICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvbkNvbnRyb2xsZXI6OnVwZGF0ZUFuaW1hdGlvbnMpOg0K
Kw0KIDIwMTEtMDctMjIgIEppYSBQdSAgPGpwdUBhcHBsZS5jb20+DQogDQogICAgICAgICBSZXZp
ZXdlZCBieSBEYXJpbiBBZGxlci4NCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlv
bi9BbmltYXRpb25Db250cm9sbGVyLmNwcA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiA5MTU1OCkN
CisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVyLmNw
cAkod29ya2luZyBjb3B5KQ0KQEAgLTUwMCw3ICs1MDAsOCBAQCBQYXNzUmVmUHRyPFJlbmRlclN0
eWxlPiBBbmltYXRpb25Db250cm9sDQogICAgIFJlZlB0cjxDb21wb3NpdGVBbmltYXRpb24+IHJl
bmRlcmVyQW5pbWF0aW9ucyA9IG1fZGF0YS0+YWNjZXNzQ29tcG9zaXRlQW5pbWF0aW9uKHJlbmRl
cmVyKTsNCiAgICAgUmVmUHRyPFJlbmRlclN0eWxlPiBibGVuZGVkU3R5bGUgPSByZW5kZXJlckFu
aW1hdGlvbnMtPmFuaW1hdGUocmVuZGVyZXIsIG9sZFN0eWxlLCBuZXdTdHlsZSk7DQogDQotICAg
IG1fZGF0YS0+dXBkYXRlQW5pbWF0aW9uVGltZXIoKTsNCisgICAgaWYgKHJlbmRlcmVyLT5wYXJl
bnQoKSB8fCBuZXdTdHlsZS0+YW5pbWF0aW9ucygpIHx8IChvbGRTdHlsZSAmJiBvbGRTdHlsZS0+
YW5pbWF0aW9ucygpKSkNCisgICAgICAgIG1fZGF0YS0+dXBkYXRlQW5pbWF0aW9uVGltZXIoKTsN
CiANCiAgICAgaWYgKGJsZW5kZWRTdHlsZSAhPSBuZXdTdHlsZSkgew0KICAgICAgICAgLy8gSWYg
dGhlIGFuaW1hdGlvbnMvdHJhbnNpdGlvbnMgY2hhbmdlIG9wYWNpdHkgb3IgdHJhbnNmb3JtLCB3
ZSBuZWVkIHRvIHVwZGF0ZQ0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>102341</attachid>
            <date>2011-07-29 03:23:18 -0700</date>
            <delta_ts>2011-07-29 10:23:52 -0700</delta_ts>
            <desc>newPatch</desc>
            <filename>transitionPatch.new.1.txt</filename>
            <type>text/plain</type>
            <size>1831</size>
            <attacher name="zeng huiqing">huiqing.zeng</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZw0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gOTE5ODEpDQorKysgU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpDQpAQCAtMSwzICsxLDE1IEBADQorMjAxMS0wNy0yOSAgWmVu
ZyBIdWlxaW5nICA8aHVpcWluZy56ZW5nQGludGVsLmNvbT4NCisNCisgICAgICAgIEF2b2lkIGNh
bGxpbmcgYW5pbWF0aW9uIHRpbWVyIHVwZGF0ZXMgd2hpbGUgdGhlIHBhZ2UgaXMgbG9hZGluZw0K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY0ODUxDQor
DQorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4NCisNCisgICAgICAgIFRoZXJl
IGlzIG5vIG5lZWQgdG8gdXBkYXRlIHRoZSBhbmltYXRpb24gdGltZXIgZm9yIGEgUmVuZGVyT2Jq
ZWN0IHRoYXQgaGFzIG5vdCB5ZXQgYmVlbiBpbnNlcnRlZCBpbnRvIHRoZSByZW5kZXIgdHJlZSwg
b3IgdGhhdCBkb2Vzbid0IGhhdmUgYW5pbWF0aW9ucy4gT3VyIHRlc3RzIHNob3cgdGhhdCB0aGlz
IGltcHJvdmVzIHBhZ2UgbG9hZGluZyBieSB1cCB0byAzeCBvbiBwYWdlcyB3aXRoIGEgbGFyZ2Ug
bnVtYmVyIG9mIHRyYW5zaXRpb25hYmxlIG9iamVjdHMuDQorDQorICAgICAgICAqIHBhZ2UvYW5p
bWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXIuY3BwOg0KKyAgICAgICAgKFdlYkNvcmU6OkFuaW1h
dGlvbkNvbnRyb2xsZXI6OnVwZGF0ZUFuaW1hdGlvbnMpOg0KKw0KIDIwMTEtMDctMjggIEx1a2Ug
TWFjcGhlcnNvbiAgIDxtYWNwaGVyc29uQGNocm9taXVtLm9yZz4NCiANCiAgICAgICAgIFJlbW92
ZSByZW1haW5pbmcgdXNlcyBvZiBDU1NQcmltaXRpdmVWYWx1ZTo6Y29tcHV0ZUxlbmd0aEludEZv
ckxlbmd0aCgpDQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9u
Q29udHJvbGxlci5jcHANCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1h
dGlvbi9BbmltYXRpb25Db250cm9sbGVyLmNwcAkocmV2aXNpb24gOTE5NzkpDQorKysgU291cmNl
L1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQ29udHJvbGxlci5jcHAJKHdvcmtpbmcg
Y29weSkNCkBAIC01MDAsNyArNTAwLDggQEAgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gQW5pbWF0
aW9uQ29udHJvbA0KICAgICBSZWZQdHI8Q29tcG9zaXRlQW5pbWF0aW9uPiByZW5kZXJlckFuaW1h
dGlvbnMgPSBtX2RhdGEtPmFjY2Vzc0NvbXBvc2l0ZUFuaW1hdGlvbihyZW5kZXJlcik7DQogICAg
IFJlZlB0cjxSZW5kZXJTdHlsZT4gYmxlbmRlZFN0eWxlID0gcmVuZGVyZXJBbmltYXRpb25zLT5h
bmltYXRlKHJlbmRlcmVyLCBvbGRTdHlsZSwgbmV3U3R5bGUpOw0KIA0KLSAgICBtX2RhdGEtPnVw
ZGF0ZUFuaW1hdGlvblRpbWVyKCk7DQorICAgIGlmIChyZW5kZXJlci0+cGFyZW50KCkgfHwgbmV3
U3R5bGUtPmFuaW1hdGlvbnMoKSB8fCAob2xkU3R5bGUgJiYgb2xkU3R5bGUtPmFuaW1hdGlvbnMo
KSkpDQorICAgICAgICBtX2RhdGEtPnVwZGF0ZUFuaW1hdGlvblRpbWVyKCk7DQogDQogICAgIGlm
IChibGVuZGVkU3R5bGUgIT0gbmV3U3R5bGUpIHsNCiAgICAgICAgIC8vIElmIHRoZSBhbmltYXRp
b25zL3RyYW5zaXRpb25zIGNoYW5nZSBvcGFjaXR5IG9yIHRyYW5zZm9ybSwgd2UgbmVlZCB0byB1
cGRhdGUNCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>