<?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>93174</bug_id>
          
          <creation_ts>2012-08-03 21:04:50 -0700</creation_ts>
          <short_desc>RenderLayerBacking must call GraphicsLayer::setContentsToImage when the image is changed.</short_desc>
          <delta_ts>2012-08-08 03:07:05 -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>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>INVALID</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>
          
          <blocked>90935</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Dongseong Hwang">dongseong.hwang</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>eric</cc>
    
    <cc>noam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>687365</commentid>
    <comment_count>0</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-08-03 21:04:50 -0700</bug_when>
    <thetext>Currently, layout indirectly call RenderLayerBacking::updateGraphicsLayerConfiguration()
and updateGraphicsLayerConfiguration() indirectly call GraphicsLayer::setContentsToImage().
It burdens all accelerated compositing implementations because each implementation
should check if the image is changed.
This patch calls GraphicsLayer::setContentsToImage() when the contents of the
image is actually changed.
Texmap checks the pointer to the image, not nativeImagePtr, so Texmap currently
draws only the first frame of GIF animations. This patch makes Texmap draw GIF
animations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>687366</commentid>
    <comment_count>1</comment_count>
      <attachid>156509</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-08-03 21:07:54 -0700</bug_when>
    <thetext>Created attachment 156509
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>687369</commentid>
    <comment_count>2</comment_count>
      <attachid>156510</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-08-03 21:20:53 -0700</bug_when>
    <thetext>Created attachment 156510
Layout Test : Animated GIF on a compositing layer

I created this test in order to test the animated gif on AC, especially Texmap.
It is easy for human to check animated gif rendering, but it is hard to make a complete layout test. I think there is no functionality to capture the specific frame of gif animations in the webkit test runner.
So, I submit this test not for review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>687384</commentid>
    <comment_count>3</comment_count>
      <attachid>156509</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-08-03 22:35:59 -0700</bug_when>
    <thetext>Comment on attachment 156509
Patch

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

&gt; Source/WebCore/ChangeLog:13
&gt; +        Currently, layout indirectly call RenderLayerBacking::updateGraphicsLayerConfiguration()
&gt; +        and updateGraphicsLayerConfiguration() indirectly call GraphicsLayer::setContentsToImage().
&gt; +        It burdens all accelerated compositing implementations because each implementation
&gt; +        should check if the image is changed.

This comment is confusing. updateGraphicsLayerConfiguration() isn&apos;t the place where animated GIFs get updated on compositing layers; that happens via RenderBoxModelObject::contentChanged() which ends up in RenderLayerBacking::contentChanged().

&gt; Source/WebCore/rendering/RenderLayerBacking.cpp:1089
&gt; +    NativeImagePtr newNativeImagePtr = image-&gt;nativeImageForCurrentFrame();
&gt; +    if (newNativeImagePtr != m_compositedNativeImagePtr) {
&gt; +        m_compositedNativeImagePtr = newNativeImagePtr;
&gt; +
&gt; +        // This is a no-op if the layer doesn&apos;t have an inner layer for the image.
&gt; +        m_graphicsLayer-&gt;setContentsToImage(image);

It seems odd to inspect the NativeImagePtr here, but still send the Image down to GraphicsLayer.

This code also makes the assumption that pointer equality on a NativeImagePtr is a valid way to tell if the image is unchanged. That may not hold for all platforms. I think the platform code should continue to make the decision about whether the image has changed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>687395</commentid>
    <comment_count>4</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-08-03 23:15:26 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; 
&gt; This comment is confusing. updateGraphicsLayerConfiguration() isn&apos;t the place where animated GIFs get updated on compositing layers; that happens via RenderBoxModelObject::contentChanged() which ends up in RenderLayerBacking::contentChanged().

I&apos;m sorry for this confusing. I think it is natural for RenderLayerBacking::contentChanged() to call finally GraphicsLayer::setContentsToImage(), but I don&apos;t understand why updateGraphicsLayerConfiguration() needs to call GraphicsLayer::setContentsToImage().
It seems that layout causes redundant texture uploading because layout calls updateGraphicsLayerConfiguration() and then GraphicsLayer::setContentsToImage().
So, I described updateGraphicsLayerConfiguration() indirectly calls GraphicsLayer::setContentsToImage() in the changelog. I regret I should explain it more.

&gt; 
&gt; It seems odd to inspect the NativeImagePtr here, but still send the Image down to GraphicsLayer.

I think so. I thought I would do that after listening your opinion because it is a big change.

&gt; 
&gt; This code also makes the assumption that pointer equality on a NativeImagePtr is a valid way to tell if the image is unchanged. That may not hold for all platforms. I think the platform code should continue to make the decision about whether the image has changed.

I made the mistake of hasty generalization after surveying GraphicsLayerCA, GraphicsLayerChromium and GraphicsLayerTextureMapper.
I think we should call GraphicsLayer::setContentsToImage() when the image is actually changed, especially RenderLayerBacking::contentChanged() is called.
Is it ok for only RenderLayerBacking::contentChanged() to call updateImageContents()? Or which functions does updateGraphicsLayerConfiguration() need to call : m_graphicsLayer-&gt;setContentsToImage(image), updateDrawsContent() and image-&gt;startAnimation().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>690101</commentid>
    <comment_count>5</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-08-08 03:06:53 -0700</bug_when>
    <thetext>I assumed WebCore could know whether the image has actually been changed.
However, I understand we need a big refactoring so that WebCore notifies the callback when the image has actually been changed.
So, I close this bug. I will file another bug to fix gif animation of Texmap.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>156509</attachid>
            <date>2012-08-03 21:07:54 -0700</date>
            <delta_ts>2012-08-03 22:35:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93174-20120804130721.patch</filename>
            <type>text/plain</type>
            <size>6999</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0NTgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmJmZTJlN2E1NzUxZDY4
NTNkNTczMDQyOGMyZDA2OWE5MzAxN2NhMS4uZmNjMmE3Y2Q0ZWExMTkzMDI2ZTAxYmMwZTA5NzBk
NGQzNGJiMGY0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDEyLTA4LTAzICBIdWFu
ZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgorCisgICAgICAgIFJlbmRlckxh
eWVyQmFja2luZyBtdXN0IGNhbGwgR3JhcGhpY3NMYXllcjo6c2V0Q29udGVudHNUb0ltYWdlIHdo
ZW4gdGhlIGltYWdlIGlzIGNoYW5nZWQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD05MzE3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEludGVybmFsIHJldmlldyBieSBKYWUgSHl1biBQYXJrLgorCisgICAg
ICAgIEN1cnJlbnRseSwgbGF5b3V0IGluZGlyZWN0bHkgY2FsbCBSZW5kZXJMYXllckJhY2tpbmc6
OnVwZGF0ZUdyYXBoaWNzTGF5ZXJDb25maWd1cmF0aW9uKCkKKyAgICAgICAgYW5kIHVwZGF0ZUdy
YXBoaWNzTGF5ZXJDb25maWd1cmF0aW9uKCkgaW5kaXJlY3RseSBjYWxsIEdyYXBoaWNzTGF5ZXI6
OnNldENvbnRlbnRzVG9JbWFnZSgpLgorICAgICAgICBJdCBidXJkZW5zIGFsbCBhY2NlbGVyYXRl
ZCBjb21wb3NpdGluZyBpbXBsZW1lbnRhdGlvbnMgYmVjYXVzZSBlYWNoIGltcGxlbWVudGF0aW9u
CisgICAgICAgIHNob3VsZCBjaGVjayBpZiB0aGUgaW1hZ2UgaXMgY2hhbmdlZC4KKyAgICAgICAg
VGhpcyBwYXRjaCBjYWxscyBHcmFwaGljc0xheWVyOjpzZXRDb250ZW50c1RvSW1hZ2UoKSB3aGVu
IHRoZSBjb250ZW50cyBvZiB0aGUKKyAgICAgICAgaW1hZ2UgaXMgYWN0dWFsbHkgY2hhbmdlZC4K
KyAgICAgICAgVGV4bWFwIGNoZWNrcyB0aGUgcG9pbnRlciB0byB0aGUgaW1hZ2UsIG5vdCBuYXRp
dmVJbWFnZVB0ciwgc28gVGV4bWFwIGN1cnJlbnRseQorICAgICAgICBkcmF3cyBvbmx5IHRoZSBm
aXJzdCBmcmFtZSBvZiBHSUYgYW5pbWF0aW9ucy4gVGhpcyBwYXRjaCBtYWtlcyBUZXhtYXAgZHJh
dyBHSUYKKyAgICAgICAgYW5pbWF0aW9ucy4KKworICAgICAgICBObyBuZXcgdGVzdHMgLSBleGlz
dGluZyBpbWFnZSB0ZXN0cyBjb3ZlciB0aGVzZSBjYXNlcy4KKworICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0xheWVyQ0E6OnNldENvbnRlbnRzVG9JbWFnZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpzZXRDb250ZW50c05lZWRzRGlzcGxh
eSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcjo6c2V0Q29u
dGVudHNUb0ltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhp
Y3NMYXllclRleHR1cmVNYXBwZXIuaDoKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFw
cGVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlSW1hZ2VDb250ZW50cyk6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oOgorICAgICAgICAoUmVuZGVy
TGF5ZXJCYWNraW5nKToKKwogMjAxMi0wOC0wMSAgSHVhbmcgRG9uZ3N1bmcgIDxsdXh0ZWxsYUBj
b21wYW55MTAwLm5ldD4KIAogICAgICAgICBSZW5hbWUgY3JlYXRlRnJhbWVBdEluZGV4IHRvIHJl
cXVlc3RGcmFtZUF0SW5kZXguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcAppbmRleCBlM2E1NjVkMTg2NTQyMTcxZjQw
YTI2MzUyYWFlODA2OThiODA5NGEwLi42Zjk1NzQwNzg4ZmMzZTY3NjNjZjIxZmJiNGY2ZjZkN2Y0
MDAzOTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9H
cmFwaGljc0xheWVyQ0EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKQEAgLTc2NiwxMyArNzY2LDExIEBAIHZvaWQgR3JhcGhp
Y3NMYXllckNBOjpzZXRDb250ZW50c1RvSW1hZ2UoSW1hZ2UqIGltYWdlKQogewogICAgIGlmIChp
bWFnZSkgewogICAgICAgICBDR0ltYWdlUmVmIG5ld0ltYWdlID0gaW1hZ2UtPm5hdGl2ZUltYWdl
Rm9yQ3VycmVudEZyYW1lKCk7Ci0gICAgICAgIGlmICghbmV3SW1hZ2UpCi0gICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIEFTU0VSVChuZXdJbWFnZSk7CiAKICAgICAgICAgLy8gQ2hlY2sgdG8g
c2VlIGlmIHRoZSBpbWFnZSBjaGFuZ2VkOyB3ZSBoYXZlIHRvIGRvIHRoaXMgYmVjYXVzZSB0aGUg
Y2FsbCB0bwogICAgICAgICAvLyBDR0ltYWdlQ3JlYXRlQ29weVdpdGhDb2xvclNwYWNlKCkgYmVs
b3cgY2FuIGNyZWF0ZSBhIG5ldyBpbWFnZSBldmVyeSB0aW1lLgotICAgICAgICBpZiAobV91bmNv
cnJlY3RlZENvbnRlbnRzSW1hZ2UgJiYgbV91bmNvcnJlY3RlZENvbnRlbnRzSW1hZ2UuZ2V0KCkg
PT0gbmV3SW1hZ2UpCi0gICAgICAgICAgICByZXR1cm47CisgICAgICAgIEFTU0VSVCghbV91bmNv
cnJlY3RlZENvbnRlbnRzSW1hZ2UgfHwgbV91bmNvcnJlY3RlZENvbnRlbnRzSW1hZ2UuZ2V0KCkg
IT0gbmV3SW1hZ2UpOwogICAgICAgICAKICAgICAgICAgbV91bmNvcnJlY3RlZENvbnRlbnRzSW1h
Z2UgPSBuZXdJbWFnZTsKICAgICAgICAgbV9wZW5kaW5nQ29udGVudHNJbWFnZSA9IG5ld0ltYWdl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dy
YXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5jcHAKaW5kZXggZjczNWRl
MmIzY2Y4MGYyZTI3NGE1ZThlZjQxYWMwZTZjMjdlNDg0NC4uMTZmOGEzZGNhMTVjMTEyMWNkZjM5
ODAyOGYzN2EwMWFjZmMzOTgxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVN
YXBwZXIuY3BwCkBAIC04NCw4ICs4NCw2IEBAIHZvaWQgR3JhcGhpY3NMYXllclRleHR1cmVNYXBw
ZXI6OnNldE5lZWRzRGlzcGxheSgpCiAqLwogdm9pZCBHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBl
cjo6c2V0Q29udGVudHNOZWVkc0Rpc3BsYXkoKQogewotICAgIGlmIChtX2ltYWdlKQotICAgICAg
ICBzZXRDb250ZW50c1RvSW1hZ2UobV9pbWFnZS5nZXQoKSk7CiAgICAgbm90aWZ5Q2hhbmdlKFRl
eHR1cmVNYXBwZXJMYXllcjo6RGlzcGxheUNoYW5nZSk7CiB9CiAKQEAgLTMyNSwxNCArMzIzLDEw
IEBAIHZvaWQgR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXI6OnNldENvbnRlbnRzUmVjdChjb25z
dCBJbnRSZWN0JiB2YWx1ZSkKICovCiB2b2lkIEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpz
ZXRDb250ZW50c1RvSW1hZ2UoSW1hZ2UqIGltYWdlKQogewotICAgIGlmIChpbWFnZSA9PSBtX2lt
YWdlKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX2ltYWdlID0gaW1hZ2U7Ci0gICAgaWYgKG1f
aW1hZ2UpIHsKLSAgICAgICAgUmVmUHRyPFRleHR1cmVNYXBwZXJUaWxlZEJhY2tpbmdTdG9yZT4g
YmFja2luZ1N0b3JlID0gVGV4dHVyZU1hcHBlclRpbGVkQmFja2luZ1N0b3JlOjpjcmVhdGUoKTsK
LSAgICAgICAgYmFja2luZ1N0b3JlLT5zZXRDb250ZW50c1RvSW1hZ2UoaW1hZ2UpOwotICAgICAg
ICBtX2NvbXBvc2l0ZWRJbWFnZSA9IGJhY2tpbmdTdG9yZTsKKyAgICBpZiAoaW1hZ2UpIHsKKyAg
ICAgICAgaWYgKCFtX2NvbXBvc2l0ZWRJbWFnZSkKKyAgICAgICAgICAgIG1fY29tcG9zaXRlZElt
YWdlID0gVGV4dHVyZU1hcHBlclRpbGVkQmFja2luZ1N0b3JlOjpjcmVhdGUoKTsKKyAgICAgICAg
bV9jb21wb3NpdGVkSW1hZ2UtPnNldENvbnRlbnRzVG9JbWFnZShpbWFnZSk7CiAgICAgfSBlbHNl
CiAgICAgICAgIG1fY29tcG9zaXRlZEltYWdlID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXll
clRleHR1cmVNYXBwZXIuaAppbmRleCBjNGQ0MmYxZmM5MTAyYzU2MDNmNjVmYjUwNDMyMWI5NDgy
NTBkZTc4Li5mYjM3YTI0MDI3MGE5ZGE5MWZmMGQzYTg2OThiOWI1ODNhOTEyMDZlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXll
clRleHR1cmVNYXBwZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuaApAQCAtMTAwLDggKzEwMCw3IEBAIHBy
aXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHdpbGxCZURlc3Ryb3llZCgpOwogCiAgICAgT3duUHRy
PFRleHR1cmVNYXBwZXJMYXllcj4gbV9sYXllcjsKLSAgICBSZWZQdHI8VGV4dHVyZU1hcHBlckJh
Y2tpbmdTdG9yZT4gbV9jb21wb3NpdGVkSW1hZ2U7Ci0gICAgUmVmUHRyPEltYWdlPiBtX2ltYWdl
OworICAgIFJlZlB0cjxUZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmU+IG1fY29tcG9zaXRl
ZEltYWdlOwogICAgIGludCBtX2NoYW5nZU1hc2s7CiAgICAgYm9vbCBtX25lZWRzRGlzcGxheTsK
ICAgICBib29sIG1fZml4ZWRUb1ZpZXdwb3J0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAppbmRleCBlMTEwYTRkNWQ1MGFhOWZhYTAxNjhkYjgy
Yjk0NDhhNTcyMDEyNWE4Li4wYjliMDQ2M2VjMTY4ZTBiNjI4ZmNlZmFiYjk2YzA0MjI3MDk5OWJk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5n
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNw
cApAQCAtMTA4MSwxMCArMTA4MSwxNiBAQCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6dXBkYXRl
SW1hZ2VDb250ZW50cygpCiAgICAgaWYgKCFjYWNoZWRJbWFnZS0+aXNMb2FkZWQoKSkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgLy8gVGhpcyBpcyBhIG5vLW9wIGlmIHRoZSBsYXllciBkb2Vzbid0
IGhhdmUgYW4gaW5uZXIgbGF5ZXIgZm9yIHRoZSBpbWFnZS4KLSAgICBtX2dyYXBoaWNzTGF5ZXIt
PnNldENvbnRlbnRzVG9JbWFnZShpbWFnZSk7CisgICAgTmF0aXZlSW1hZ2VQdHIgbmV3TmF0aXZl
SW1hZ2VQdHIgPSBpbWFnZS0+bmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUoKTsKKyAgICBpZiAo
bmV3TmF0aXZlSW1hZ2VQdHIgIT0gbV9jb21wb3NpdGVkTmF0aXZlSW1hZ2VQdHIpIHsKKyAgICAg
ICAgbV9jb21wb3NpdGVkTmF0aXZlSW1hZ2VQdHIgPSBuZXdOYXRpdmVJbWFnZVB0cjsKKworICAg
ICAgICAvLyBUaGlzIGlzIGEgbm8tb3AgaWYgdGhlIGxheWVyIGRvZXNuJ3QgaGF2ZSBhbiBpbm5l
ciBsYXllciBmb3IgdGhlIGltYWdlLgorICAgICAgICBtX2dyYXBoaWNzTGF5ZXItPnNldENvbnRl
bnRzVG9JbWFnZShpbWFnZSk7CisgICAgfQorCiAgICAgdXBkYXRlRHJhd3NDb250ZW50KCk7Ci0g
ICAgCisKICAgICAvLyBJbWFnZSBhbmltYXRpb24gaXMgImxhenkiLCBpbiB0aGF0IGl0IGF1dG9t
YXRpY2FsbHkgc3RvcHMgdW5sZXNzIHNvbWVvbmUgaXMgZHJhd2luZwogICAgIC8vIHRoZSBpbWFn
ZS4gU28gd2UgaGF2ZSB0byBraWNrIHRoZSBhbmltYXRpb24gZWFjaCB0aW1lOyB0aGlzIGhhcyB0
aGUgZG93bnNpZGUgdGhhdCB0aGUKICAgICAvLyBpbWFnZSB3aWxsIGtlZXAgYW5pbWF0aW5nLCBl
dmVuIGlmIGl0cyBsYXllciBpcyBub3QgdmlzaWJsZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllckJhY2tpbmcuaAppbmRleCAwZjQyZDNmYjkxYjE3OTM1OTc5ZmRiMThk
YmQwNmZjYTY4ZmJjODRjLi4wY2U0N2MyNDAwYTQ3NmZlNmYxY2NjYWY3NDUzMDE2ZWVkYmFjYzc4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5n
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oCkBA
IC0yNDEsNiArMjQxLDggQEAgcHJpdmF0ZToKICAgICBPd25QdHI8R3JhcGhpY3NMYXllcj4gbV9s
YXllckZvclZlcnRpY2FsU2Nyb2xsYmFyOwogICAgIE93blB0cjxHcmFwaGljc0xheWVyPiBtX2xh
eWVyRm9yU2Nyb2xsQ29ybmVyOwogCisgICAgTmF0aXZlSW1hZ2VQdHIgbV9jb21wb3NpdGVkTmF0
aXZlSW1hZ2VQdHI7CisKICAgICBJbnRSZWN0IG1fY29tcG9zaXRlZEJvdW5kczsKIAogICAgIGJv
b2wgbV9hcnRpZmljaWFsbHlJbmZsYXRlZEJvdW5kczsgICAgICAvLyBib3VuZHMgaGFkIHRvIGJl
IG1hZGUgbm9uLXplcm8gdG8gbWFrZSB0cmFuc2Zvcm0tb3JpZ2luIHdvcmsK
</data>
<flag name="review"
          id="166208"
          type_id="1"
          status="-"
          setter="simon.fraser"
    />
    <flag name="commit-queue"
          id="166209"
          type_id="3"
          status="-"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>156510</attachid>
            <date>2012-08-03 21:20:53 -0700</date>
            <delta_ts>2012-08-03 21:20:53 -0700</delta_ts>
            <desc>Layout Test : Animated GIF on a compositing layer</desc>
            <filename>0001-Add-fast-images-animated-gif-on-compositing-layer.ht.patch</filename>
            <type>text/plain</type>
            <size>1014</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">RnJvbSAxMDY2ODQxNGUyNjlkM2RmMmI0MTFjOGM2ZDZlZmM0ZWVlYTVkNDVkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBIdWFuZyBEb25nc3VuZyA8bHV4dGVsbGFAY29tcGFueTEwMC5u
ZXQ+CkRhdGU6IFNhdCwgNCBBdWcgMjAxMiAxMzoxMjo0MiArMDkwMApTdWJqZWN0OiBbUEFUQ0hd
IEFkZCBmYXN0L2ltYWdlcy9hbmltYXRlZC1naWYtb24tY29tcG9zaXRpbmctbGF5ZXIuaHRtbC4K
Ci0tLQogLi4uL2ltYWdlcy9hbmltYXRlZC1naWYtb24tY29tcG9zaXRpbmctbGF5ZXIuaHRtbCAg
fCAgIDEyICsrKysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDEyIGluc2VydGlvbnMoKykKIGNy
ZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9hbmltYXRlZC1naWYtb24t
Y29tcG9zaXRpbmctbGF5ZXIuaHRtbAoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1h
Z2VzL2FuaW1hdGVkLWdpZi1vbi1jb21wb3NpdGluZy1sYXllci5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9pbWFnZXMvYW5pbWF0ZWQtZ2lmLW9uLWNvbXBvc2l0aW5nLWxheWVyLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGUxOTE0YQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2FuaW1hdGVkLWdpZi1vbi1jb21wb3NpdGluZy1sYXll
ci5odG1sCkBAIC0wLDAgKzEsMTIgQEAKKzxodG1sPjxoZWFkPgorPHN0eWxlIHR5cGU9InRleHQv
Y3NzIiBtZWRpYT0ic2NyZWVuIj4KKy5jb21wb3NpdGluZyB7CisgdG9wOiAwcHg7CisgbGVmdDog
MHB4OworIC13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVooMCk7Cit9Cis8L3N0eWxlPgorPC9o
ZWFkPjxib2R5PgorPHA+QW5pbWF0ZWQgR0lGIG9uIGEgY29tcG9zaXRpbmcgbGF5ZXI8L3A+Cis8
aW1nIGNsYXNzPSJjb21wb3NpdGluZyIgc3JjPSJyZXNvdXJjZXMvYW5pbWF0ZWQtZ2lmLXdpdGgt
b2Zmc2V0cy5naWYiIC8+Cis8L2JvZHk+PC9odG1sPgotLSAKMS43LjkuNQoK
</data>

          </attachment>
      

    </bug>

</bugzilla>