<?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>99908</bug_id>
          
          <creation_ts>2012-10-19 23:58:28 -0700</creation_ts>
          <short_desc>[CSS Shaders] Set FilterOperations on GraphicsLayer after the program of CSS Shaders is loaded.</short_desc>
          <delta_ts>2012-10-23 14:48:13 -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>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>
          
          <blocked>74651</blocked>
    
    <blocked>98990</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Dongseong Hwang">dongseong.hwang</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>achicu</cc>
    
    <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>746930</commentid>
    <comment_count>0</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-10-19 23:58:28 -0700</bug_when>
    <thetext>CSS Shaders can not render anything until the program is loaded.
If there is partial loaded shaders program, whole FilterOperations chain can not render anything. It occurs a flash.
So We have to wait until the program is loaded, to prevent a flash as RenderLayerBacking::updateImageContents() waits until an image is fully loaded.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746931</commentid>
    <comment_count>1</comment_count>
      <attachid>169759</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-10-20 00:11:27 -0700</bug_when>
    <thetext>Created attachment 169759
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746976</commentid>
    <comment_count>2</comment_count>
      <attachid>169759</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-10-20 09:12:38 -0700</bug_when>
    <thetext>Comment on attachment 169759
Patch

This seems like a platform specific behavior - when we set the filters on a particular GraphicsLayer (e.g. CoordinatedGraphicsLayer) we can subscribe to the program as a client and reset the filters when the program is loaded.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747033</commentid>
    <comment_count>3</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-10-20 20:05:22 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 169759 [details])
&gt; This seems like a platform specific behavior - when we set the filters on a particular GraphicsLayer (e.g. CoordinatedGraphicsLayer) we can subscribe to the program as a client and reset the filters when the program is loaded.

Thanks for good opinion.

We already subscribe to the program when the program is loaded, because WebCore recalculates the style when the program is loaded.

I think both approaches can be right. Each GraphicsLayer easily resets the filters, but I prefer this patch because of two reasons.
1. Each platform needs to have similar code to handle unloaded programs.
2. As I mentioned in Changelog, RenderLayerBacking::updateImageContents() already waits calling GraphicsLayer::setContentsToImage() until an image is fully loaded. I want RenderLayerBacking to handle CachedProgram similar to CachedImage. I think same policy increases code readability.

I&apos;m looking forward your feedback :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748997</commentid>
    <comment_count>4</comment_count>
      <attachid>169759</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2012-10-23 14:36:47 -0700</bug_when>
    <thetext>Comment on attachment 169759
Patch

I&apos;m not sure this is the right thing to do, but I&apos;ll r+ so that we can live on it for a while. Sometimes I think a flash is better than nothing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>749008</commentid>
    <comment_count>5</comment_count>
      <attachid>169759</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-23 14:45:59 -0700</bug_when>
    <thetext>Comment on attachment 169759
Patch

Clearing flags on attachment: 169759

Committed r132270: &lt;http://trac.webkit.org/changeset/132270&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>749009</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-23 14:46:04 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>749014</commentid>
    <comment_count>7</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-10-23 14:48:13 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 169759 [details])
&gt; I&apos;m not sure this is the right thing to do, but I&apos;ll r+ so that we can live on it for a while. Sometimes I think a flash is better than nothing.

Thank you for your review. I think so, it is not the best way. We will find more proper solution.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169759</attachid>
            <date>2012-10-20 00:11:27 -0700</date>
            <delta_ts>2012-10-23 14:45:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99908-20121020161006.patch</filename>
            <type>text/plain</type>
            <size>2641</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxOTc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTQ1ZGRmZjkzMDQ5NTZk
YWE4ZjM2YjMzZjliYjRhNDRlYWRiZThjMi4uMzkzYTQ2ZGU1OTA5MTQ1ZGZhMTQ1OGY3MTg5Zjgw
M2FiN2JkY2E1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEyLTEwLTE5ICBIdWFu
ZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgorCisgICAgICAgIFtDU1MgU2hh
ZGVyc10gU2V0IEZpbHRlck9wZXJhdGlvbnMgb24gR3JhcGhpY3NMYXllciBhZnRlciB0aGUgcHJv
Z3JhbSBvZiBDU1MgU2hhZGVycyBpcyBsb2FkZWQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD05OTkwOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIENTUyBTaGFkZXJzIGNhbiBub3QgcmVuZGVyIGFueXRoaW5n
IHVudGlsIHRoZSBwcm9ncmFtIGlzIGxvYWRlZC4gSWYgdGhlcmUgaXMKKyAgICAgICAgcGFydGlh
bCBsb2FkZWQgc2hhZGVycyBwcm9ncmFtLCB3aG9sZSBGaWx0ZXJPcGVyYXRpb25zIGNoYWluIGNh
biBub3QgcmVuZGVyCisgICAgICAgIGFueXRoaW5nLiBJdCBvY2N1cnMgYSBmbGFzaC4gU28gV2Ug
aGF2ZSB0byB3YWl0IHVudGlsIHRoZSBwcm9ncmFtIGlzIGxvYWRlZCwgdG8KKyAgICAgICAgcHJl
dmVudCBhIGZsYXNoIGFzIFJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlSW1hZ2VDb250ZW50cygp
IHdhaXRzIHVudGlsIGFuCisgICAgICAgIGltYWdlIGlzIGZ1bGx5IGxvYWRlZC4KKworICAgICAg
ICBObyBuZXcgdGVzdHMsIENTUyBTaGFkZXJzIG9uIEFjY2VsZXJhdGVkIENvbXBvc2l0aW5nIGFy
ZSBub3QgYWN0aXZhdGVkIHlldC4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckJh
Y2tpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVG
aWx0ZXJzKToKKwogMjAxMi0xMC0xOCAgSHVhbmcgRG9uZ3N1bmcgIDxsdXh0ZWxsYUBjb21wYW55
MTAwLm5ldD4KIAogICAgICAgICBbQ1NTIFNoYWRlcnNdIEFkZCBDdXN0b21GaWx0ZXJSZW5kZXJl
ciB0byByZXVzZSB0aGlzIGNsYXNzIGJ5IEFjY2VsZXJhdGVkIENvbXBvc2l0aW5nLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAppbmRleCA4YzE0
N2UxNDE3YmY3MWYxODE2OGEwMmZhZjk0NTNlOTc2OTI0NjFmLi4xODE3Y2ZmYTdjMjhkMTU0ZTlj
ZmM4ODZiYzJlMjJkZmFmOWM1NGNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJCYWNraW5nLmNwcApAQCAtNjAsNiArNjAsOSBAQAogCiAjaWYgRU5BQkxFKENT
U19GSUxURVJTKQogI2luY2x1ZGUgIkZpbHRlckVmZmVjdFJlbmRlcmVyLmgiCisjaWYgRU5BQkxF
KENTU19TSEFERVJTKQorI2luY2x1ZGUgIkN1c3RvbUZpbHRlck9wZXJhdGlvbi5oIgorI2VuZGlm
CiAjZW5kaWYKIAogI2lmIEVOQUJMRShXRUJHTCkgfHwgRU5BQkxFKEFDQ0VMRVJBVEVEXzJEX0NB
TlZBUykKQEAgLTI1NCw2ICsyNTcsMTggQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0
ZVRyYW5zZm9ybShjb25zdCBSZW5kZXJTdHlsZSogc3R5bGUpCiAjaWYgRU5BQkxFKENTU19GSUxU
RVJTKQogdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZUZpbHRlcnMoY29uc3QgUmVuZGVy
U3R5bGUqIHN0eWxlKQogeworI2lmIEVOQUJMRShDU1NfU0hBREVSUykKKyAgICBjb25zdCBGaWx0
ZXJPcGVyYXRpb25zJiBmaWx0ZXJzID0gc3R5bGUtPmZpbHRlcigpOworICAgIGlmIChmaWx0ZXJz
Lmhhc0N1c3RvbUZpbHRlcigpKSB7CisgICAgICAgIGNvbnN0IEN1c3RvbUZpbHRlck9wZXJhdGlv
biogY3VzdG9tT3BlcmF0aW9uOworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGZpbHRl
cnMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgIGN1c3RvbU9wZXJhdGlvbiA9IHN0YXRpY19j
YXN0PGNvbnN0IEN1c3RvbUZpbHRlck9wZXJhdGlvbio+KGZpbHRlcnMuYXQoaSkpOworICAgICAg
ICAgICAgLy8gV2UgaGF2ZSB0byB3YWl0IHVudGlsIHRoZSBwcm9ncmFtIG9mIENTUyBTaGFkZXJz
IGlzIGxvYWRlZCBiZWZvcmUgc2V0dGluZyBpdCBvbiB0aGUgbGF5ZXIuCisgICAgICAgICAgICBp
ZiAoY3VzdG9tT3BlcmF0aW9uLT5nZXRPcGVyYXRpb25UeXBlKCkgPT0gRmlsdGVyT3BlcmF0aW9u
OjpDVVNUT00gJiYgIWN1c3RvbU9wZXJhdGlvbi0+cHJvZ3JhbSgpLT5pc0xvYWRlZCgpKQorICAg
ICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KKyNlbmRpZgogICAgIG1fY2Fu
Q29tcG9zaXRlRmlsdGVycyA9IG1fZ3JhcGhpY3NMYXllci0+c2V0RmlsdGVycyhzdHlsZS0+Zmls
dGVyKCkpOwogfQogI2VuZGlmCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>