<?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>29621</bug_id>
          
          <creation_ts>2009-09-21 16:08:42 -0700</creation_ts>
          <short_desc>Add port-specific control over rendering of media control elements</short_desc>
          <delta_ts>2009-09-22 08:42:38 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>28689</dup_id>
          
          <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>0</everconfirmed>
          <reporter name="Andrew Scherkus">scherkus</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>eric.carlson</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>148885</commentid>
    <comment_count>0</comment_count>
    <who name="Andrew Scherkus">scherkus</who>
    <bug_when>2009-09-21 16:08:42 -0700</bug_when>
    <thetext>Ports should be able to control whether a media control element is rendered or not.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>148889</commentid>
    <comment_count>1</comment_count>
      <attachid>39891</attachid>
    <who name="Andrew Scherkus">scherkus</who>
    <bug_when>2009-09-21 16:13:07 -0700</bug_when>
    <thetext>Created attachment 39891
Draft

This is a draft of deferring the decision on rendering a media control element to the RenderTheme.

This is my first real dive into Element/RenderObject/Style/Theme interaction, so feel free to point out my mistakes :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>148890</commentid>
    <comment_count>2</comment_count>
    <who name="Andrew Scherkus">scherkus</who>
    <bug_when>2009-09-21 16:15:03 -0700</bug_when>
    <thetext>The overall change is:
 1) Media control elements will always create a renderer
 2) RenderTheme decides whether those renderers will be visible based on inspecting the HTMLMediaElement</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>148930</commentid>
    <comment_count>3</comment_count>
    <who name="Andrew Scherkus">scherkus</who>
    <bug_when>2009-09-21 18:38:56 -0700</bug_when>
    <thetext>Forgot I had left my previous bug open.  Closing.

*** This bug has been marked as a duplicate of bug 28689 ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>149058</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2009-09-22 08:39:37 -0700</bug_when>
    <thetext>&gt; +
&gt; +    // Alternatively we could pass in the theme for fine-tuned adjustment.  If
&gt; +    // we keep it as simply setting display to NONE then I might rename this method
&gt; +    // shouldDisplayMediaControlPart instead.
&gt; +    if (!renderer-&gt;theme()-&gt;shouldRenderMediaControlPart(renderer))
&gt; +        style-&gt;setDisplay(NONE);

This shouldn&apos;t be necessary. I think if have both MediaControlElement:: rendererIsNeeded and MediaControlInputElement:: rendererIsNeeded call the theme method it should just work.

&gt;  bool MediaControlMuteButtonElement::rendererIsNeeded(RenderStyle* style)
&gt;  {
&gt; -    return MediaControlInputElement::rendererIsNeeded(style) &amp;&amp; !disabled();
&gt; +    // All subclasses will probably end up NOT implementing this method anymore.
&gt; +    return MediaControlInputElement::rendererIsNeeded(style);

We do want to call the the base class method, an element could not need a renderer for other reasons (eg. CSS).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>149059</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2009-09-22 08:42:38 -0700</bug_when>
    <thetext>oops, wrong bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39891</attachid>
            <date>2009-09-21 16:13:07 -0700</date>
            <delta_ts>2009-09-21 16:13:07 -0700</delta_ts>
            <desc>Draft</desc>
            <filename>should_render.patch</filename>
            <type>text/plain</type>
            <size>5659</size>
            <attacher name="Andrew Scherkus">scherkus</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZWUyNTMwNC4uY2IzY2NmNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAwOS0wOS0yMSAgQW5kcmV3IFNjaGVy
a3VzICA8c2NoZXJrdXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFNhbXBsZSBpbXBsZW1lbnRhdGlvbiBmb3IgcG9ydC1zcGVj
aWZpYyByZW5kZXJpbmcgb2YgbWVkaWEgY29udHJvbHMuCisKKyAgICAgICAgV2lsbCBmaWxsIGlu
IG1vcmUgZGV0YWlscyBhcyBJIHdvcmsgb24gdGhlIHBhdGNoLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjk2MjEKKworICAgICAgICBDb3ZlcmVkIGJ5
IGV4aXN0aW5nIG1lZGlhIGxheW91dCB0ZXN0cy4KKworICAgICAgICAqIHJlbmRlcmluZy9NZWRp
YUNvbnRyb2xFbGVtZW50cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xJbnB1
dEVsZW1lbnQ6OmF0dGFjaCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xNdXRlQnV0
dG9uRWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
clRoZW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpzaG91bGRSZW5kZXJN
ZWRpYUNvbnRyb2xQYXJ0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWUuaDoKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bVNraWEuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVGhlbWVDaHJvbWl1bVNraWE6OnNob3VsZFJlbmRlck1lZGlhQ29udHJv
bFBhcnQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtU2tpYS5oOgor
CiAyMDA5LTA5LTE3ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgQWRlbGUgUGV0ZXJzb24uCmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9N
ZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9NZWRpYUNvbnRyb2xF
bGVtZW50cy5jcHAKaW5kZXggOTY5NzE2Zi4uZjdmZWE2NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9y
ZW5kZXJpbmcvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5n
L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcApAQCAtMzc3LDYgKzM3NywxMiBAQCB2b2lkIE1lZGlh
Q29udHJvbElucHV0RWxlbWVudDo6YXR0YWNoKCkKICAgICAgICAgcmV0dXJuOwogICAgIHJlbmRl
cmVyLT5zZXRTdHlsZShzdHlsZS5nZXQoKSk7CiAgICAgc2V0UmVuZGVyZXIocmVuZGVyZXIpOwor
CisgICAgLy8gQWx0ZXJuYXRpdmVseSB3ZSBjb3VsZCBwYXNzIGluIHRoZSB0aGVtZSBmb3IgZmlu
ZS10dW5lZCBhZGp1c3RtZW50LiAgSWYKKyAgICAvLyB3ZSBrZWVwIGl0IGFzIHNpbXBseSBzZXR0
aW5nIGRpc3BsYXkgdG8gTk9ORSB0aGVuIEkgbWlnaHQgcmVuYW1lIHRoaXMgbWV0aG9kCisgICAg
Ly8gc2hvdWxkRGlzcGxheU1lZGlhQ29udHJvbFBhcnQgaW5zdGVhZC4KKyAgICBpZiAoIXJlbmRl
cmVyLT50aGVtZSgpLT5zaG91bGRSZW5kZXJNZWRpYUNvbnRyb2xQYXJ0KHJlbmRlcmVyKSkKKyAg
ICAgICAgc3R5bGUtPnNldERpc3BsYXkoTk9ORSk7CiAgICAgaWYgKHBhcmVudCgpICYmIHBhcmVu
dCgpLT5yZW5kZXJlcigpKSB7CiAgICAgICAgIC8vIEZpbmQgbmV4dCBzaWJsaW5nIHdpdGggYSBy
ZW5kZXJlciB0byBkZXRlcm1pbmUgd2hlcmUgdG8gaW5zZXJ0LgogICAgICAgICBOb2RlKiBzaWJs
aW5nID0gbmV4dFNpYmxpbmcoKTsKQEAgLTQ1MSw3ICs0NTcsOCBAQCBib29sIE1lZGlhQ29udHJv
bE11dGVCdXR0b25FbGVtZW50OjpkaXNhYmxlZCgpIGNvbnN0CiAKIGJvb2wgTWVkaWFDb250cm9s
TXV0ZUJ1dHRvbkVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoUmVuZGVyU3R5bGUqIHN0eWxlKQog
ewotICAgIHJldHVybiBNZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQo
c3R5bGUpICYmICFkaXNhYmxlZCgpOworICAgIC8vIEFsbCBzdWJjbGFzc2VzIHdpbGwgcHJvYmFi
bHkgZW5kIHVwIE5PVCBpbXBsZW1lbnRpbmcgdGhpcyBtZXRob2QgYW55bW9yZS4KKyAgICByZXR1
cm4gTWVkaWFDb250cm9sSW5wdXRFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKHN0eWxlKTsKIH0K
IAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUu
Y3BwCmluZGV4IDdiNGRmZTMuLjY4MmQ2MGIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lLmNwcAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAK
QEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRl
ICJIVE1MSW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisjaW5jbHVkZSAi
TWVkaWFDb250cm9sRWxlbWVudHMuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUmVu
ZGVyU3R5bGUuaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCkBAIC0zOTYsNiArMzk3LDIwIEBA
IGJvb2wgUmVuZGVyVGhlbWU6OmhpdFRlc3RNZWRpYUNvbnRyb2xQYXJ0KFJlbmRlck9iamVjdCog
bywgY29uc3QgSW50UG9pbnQmIGFic1BvCiAgICAgRmxvYXRQb2ludCBsb2NhbFBvaW50ID0gby0+
YWJzb2x1dGVUb0xvY2FsKGFic1BvaW50LCBmYWxzZSwgdHJ1ZSk7ICAvLyByZXNwZWN0IHRyYW5z
Zm9ybXMKICAgICByZXR1cm4gdG9SZW5kZXJCb3gobyktPmJvcmRlckJveFJlY3QoKS5jb250YWlu
cyhyb3VuZGVkSW50UG9pbnQobG9jYWxQb2ludCkpOwogfQorCitib29sIFJlbmRlclRoZW1lOjpz
aG91bGRSZW5kZXJNZWRpYUNvbnRyb2xQYXJ0KFJlbmRlck9iamVjdCogbykKK3sKKyAgICBIVE1M
TWVkaWFFbGVtZW50KiBtZWRpYUVsZW1lbnQgPSBzdGF0aWNfY2FzdDxNZWRpYUNvbnRyb2xJbnB1
dEVsZW1lbnQqPihvLT5ub2RlKCkpLT5tZWRpYUVsZW1lbnQoKTsKKyAgICBzd2l0Y2ggKG8tPnN0
eWxlKCktPmFwcGVhcmFuY2UoKSkgeworICAgIGNhc2UgTWVkaWFNdXRlQnV0dG9uUGFydDoKKyAg
ICAgICAgcmV0dXJuIG1lZGlhRWxlbWVudC0+aGFzQXVkaW8oKTsKKyAgICAvLyBNb3JlIG1lZGlh
IHBhcnRzIGNhbiBnbyBoZXJlLCBidXQgdGhlbiB3ZSBlbmQgdXAgbW92aW5nIGxvY2FsaXplZCBs
b2dpYworICAgIC8vIGZyb20gdGhlIE1lZGlhQ29udHJvbCBlbGVtZW50cyBpbnRvIGEgYmlnIHN3
aXRjaCBzdGF0ZW1lbnQgaGVyZSwgd2hpY2gKKyAgICAvLyBraW5kIG9mIHN1Y2tzLgorICAgIGRl
ZmF1bHQ6CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KK30KICNlbmRpZgogCiBDb2xvciBS
ZW5kZXJUaGVtZTo6YWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKCkgY29uc3QKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmggYi9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUaGVtZS5oCmluZGV4IGMwMGMyZWIuLjI1ZGMzMGQgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmgKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGhlbWUuaApAQCAtMTcyLDYgKzE3Miw3IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoVklERU8pCiAg
ICAgLy8gTWVkaWEgY29udHJvbHMKICAgICB2aXJ0dWFsIGJvb2wgaGl0VGVzdE1lZGlhQ29udHJv
bFBhcnQoUmVuZGVyT2JqZWN0KiwgY29uc3QgSW50UG9pbnQmIGFic1BvaW50KTsKKyAgICB2aXJ0
dWFsIGJvb2wgc2hvdWxkUmVuZGVyTWVkaWFDb250cm9sUGFydChSZW5kZXJPYmplY3QqKTsKICNl
bmRpZgogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
aGVtZUNocm9taXVtU2tpYS5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9t
aXVtU2tpYS5jcHAKaW5kZXggODJlNjMzYi4uMjNhOWIwYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bVNraWEuY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRoZW1lQ2hyb21pdW1Ta2lhLmNwcApAQCAtODY4LDYgKzg2OCwyMCBAQCBpbnQg
UmVuZGVyVGhlbWVDaHJvbWl1bVNraWE6OmJ1dHRvbkludGVybmFsUGFkZGluZ0JvdHRvbSgpIGNv
bnN0CiAgICAgcmV0dXJuIDE7CiB9CiAKKyNpZiBFTkFCTEUoVklERU8pCitib29sIFJlbmRlclRo
ZW1lQ2hyb21pdW1Ta2lhOjpzaG91bGRSZW5kZXJNZWRpYUNvbnRyb2xQYXJ0KFJlbmRlck9iamVj
dCogbykKK3sKKyAgICBIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsZW1lbnQgPSBzdGF0aWNfY2Fz
dDxNZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQqPihvLT5ub2RlKCkpLT5tZWRpYUVsZW1lbnQoKTsK
KyAgICBzd2l0Y2ggKG8tPnN0eWxlKCktPmFwcGVhcmFuY2UoKSkgeworICAgIGNhc2UgTWVkaWFN
dXRlQnV0dG9uUGFydDoKKyAgICAgICAgLy8gVGhpcyBpcyBhbiBleGFtcGxlIHdoZXJlIHdlIGFs
d2F5cyB3YW50IHRvIHJlbmRlciB0aGUgbXV0ZSBidXR0b24uCisgICAgICAgIHJldHVybiB0cnVl
OworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBSZW5kZXJUaGVtZTo6c2hvdWxkUmVuZGVy
TWVkaWFDb250cm9sUGFydChvKTsKKyAgICB9Cit9CisjZW5kaWYKKwogLy8gc3RhdGljCiB2b2lk
IFJlbmRlclRoZW1lQ2hyb21pdW1Ta2lhOjpzZXREZWZhdWx0Rm9udFNpemUoaW50IGZvbnRTaXpl
KQogewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bVNr
aWEuaCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1Ta2lhLmgKaW5kZXgg
MzdlNjU2Zi4uMmM4OGJhZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhl
bWVDaHJvbWl1bVNraWEuaAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9t
aXVtU2tpYS5oCkBAIC0xMjYsNiArMTI2LDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgdmlydHVhbCBpbnQgYnV0dG9uSW50ZXJuYWxQYWRkaW5nVG9wKCkgY29uc3Q7CiAgICAgICAg
IHZpcnR1YWwgaW50IGJ1dHRvbkludGVybmFsUGFkZGluZ0JvdHRvbSgpIGNvbnN0OwogCisjaWYg
RU5BQkxFKFZJREVPKQorICAgICAgICAvLyBNZWRpYSBjb250cm9scworICAgICAgICB2aXJ0dWFs
IGJvb2wgc2hvdWxkUmVuZGVyTWVkaWFDb250cm9sUGFydChSZW5kZXJPYmplY3QqKTsKKyNlbmRp
ZgorCiAgICAgICAgIC8vIFByb3ZpZGUgYSB3YXkgdG8gcGFzcyB0aGUgZGVmYXVsdCBmb250IHNp
emUgZnJvbSB0aGUgU2V0dGluZ3Mgb2JqZWN0CiAgICAgICAgIC8vIHRvIHRoZSByZW5kZXIgdGhl
bWUuICBGSVhNRTogaHR0cDovL2IvMTEyOTE4NiBBIGNsZWFuZXIgd2F5IHdvdWxkIGJlCiAgICAg
ICAgIC8vIHRvIHJlbW92ZSB0aGUgZGVmYXVsdCBmb250IHNpemUgZnJvbSB0aGlzIG9iamVjdCBh
bmQgaGF2ZSBjYWxsZXJzCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>