Changeset 82889 in webkit


Ignore:
Timestamp:
Apr 4, 2011 4:17:49 PM (13 years ago)
Author:
enne@google.com
Message:

2011-04-04 Adrienne Walker <enne@google.com>

Unreviewed, rolling out r82880.
http://trac.webkit.org/changeset/82880
https://bugs.webkit.org/show_bug.cgi?id=50661

Meter elements not rendered in Chromium Linux layout tests.

  • fast/dom/HTMLMeterElement/meter-styles.html:
  • platform/mac/fast/dom/HTMLMeterElement/meter-styles-changing-pseudo-expected.txt:
  • platform/mac/fast/dom/HTMLMeterElement/meter-styles-expected.checksum:
  • platform/mac/fast/dom/HTMLMeterElement/meter-styles-expected.png:
  • platform/mac/fast/dom/HTMLMeterElement/meter-styles-expected.txt:

2011-04-04 Adrienne Walker <enne@google.com>

Unreviewed, rolling out r82880.
http://trac.webkit.org/changeset/82880
https://bugs.webkit.org/show_bug.cgi?id=50661

Meter elements not rendered in Chromium Linux layout tests

  • Android.mk:
  • CMakeLists.txt:
  • GNUmakefile.am:
  • WebCore.gypi:
  • WebCore.pro:
  • WebCore.vcproj/WebCore.vcproj:
  • WebCore.xcodeproj/project.pbxproj:
  • css/CSSMutableStyleDeclaration.cpp:
  • css/CSSMutableStyleDeclaration.h:
  • css/CSSSelector.cpp: (WebCore::CSSSelector::pseudoId): (WebCore::nameToPseudoTypeMap): (WebCore::CSSSelector::extractPseudoType):
  • css/CSSSelector.h:
  • css/html.css: (meter): (meter::-webkit-meter): (meter::-webkit-meter-bar): (meter::-webkit-meter-optimum-value): (meter::-webkit-meter-suboptimal-value): (meter::-webkit-meter-even-less-good-value):
  • html/HTMLMeterElement.cpp: (WebCore::HTMLMeterElement::create): (WebCore::HTMLMeterElement::parseMappedAttribute): (WebCore::HTMLMeterElement::attach):
  • html/HTMLMeterElement.h:
  • html/shadow/MeterShadowElement.cpp: Removed.
  • html/shadow/MeterShadowElement.h: Removed.
  • rendering/RenderMeter.cpp: (WebCore::RenderMeter::RenderMeter): (WebCore::RenderMeter::~RenderMeter): (WebCore::RenderMeter::createPart): (WebCore::RenderMeter::updateFromElement): (WebCore::RenderMeter::layoutParts): (WebCore::RenderMeter::styleDidChange): (WebCore::RenderMeter::shouldHaveParts): (WebCore::RenderMeter::valueRatio): (WebCore::RenderMeter::barPartRect): (WebCore::RenderMeter::valuePartRect): (WebCore::RenderMeter::valuePseudoId): (WebCore::RenderMeter::barPseudoId): (WebCore::RenderMeter::detachShadows): (WebCore::RenderMeter::updateShadows):
  • rendering/RenderMeter.h: (WebCore::RenderMeter::renderName): (WebCore::RenderMeter::isMeter): (WebCore::RenderMeter::shadowAttached):
Location:
trunk
Files:
2 deleted
23 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r82887 r82889  
     12011-04-04  Adrienne Walker  <enne@google.com>
     2
     3        Unreviewed, rolling out r82880.
     4        http://trac.webkit.org/changeset/82880
     5        https://bugs.webkit.org/show_bug.cgi?id=50661
     6
     7        Meter elements not rendered in Chromium Linux layout tests.
     8
     9        * fast/dom/HTMLMeterElement/meter-styles.html:
     10        * platform/mac/fast/dom/HTMLMeterElement/meter-styles-changing-pseudo-expected.txt:
     11        * platform/mac/fast/dom/HTMLMeterElement/meter-styles-expected.checksum:
     12        * platform/mac/fast/dom/HTMLMeterElement/meter-styles-expected.png:
     13        * platform/mac/fast/dom/HTMLMeterElement/meter-styles-expected.txt:
     14
    1152011-04-04  Dirk Pranke  <dpranke@chromium.org>
    216
  • trunk/LayoutTests/fast/dom/HTMLMeterElement/meter-styles.html

    r82880 r82889  
    1313  meter.barstyled::-webkit-meter-bar { background: gray; border-style: solid; border-width: 2px; border-color: #222; }
    1414  meter.valstyled::-webkit-meter-optimum-value { background: green; border-style: solid; border-width: 2px; border-color: #7c7; }
    15   meter#bar-paddings { -webkit-appearance: none; }
    16   meter#bar-paddings::-webkit-meter-bar { padding: 5px; }
    1715</style>
    1816</head>
     
    5856  </ul>
    5957  </div>
    60   <h2>Providing bar paddings</h2>
    61   <div style="background-color: #eee">
    62     <meter id="bar-paddings" min="0" max="100" low="30" high="60" optimum="50" value="50" ></meter> has "padding" on the bar.
    63   </ul>
    64   </div>
    6558</body>
    6659</html>
  • trunk/LayoutTests/platform/mac/fast/dom/HTMLMeterElement/meter-styles-changing-pseudo-expected.txt

    r82880 r82889  
    1313        RenderMeter {METER} at (0,0) size 80x16
    1414          RenderBlock {DIV} at (0,0) size 80x16 [bgcolor=#808080]
    15             RenderBlock {DIV} at (0,0) size 72x16 [bgcolor=#008000]
     15          RenderBlock {DIV} at (0,0) size 72x16 [bgcolor=#008000]
    1616        RenderText {#text} at (0,0) size 0x0
  • trunk/LayoutTests/platform/mac/fast/dom/HTMLMeterElement/meter-styles-expected.checksum

    r82880 r82889  
    1 f284e9ed2b55b4536bd76d97dcd4188b
     168de127fae2b71bbf82c2d53c2787cc1
  • trunk/LayoutTests/platform/mac/fast/dom/HTMLMeterElement/meter-styles-expected.txt

    r82880 r82889  
    1111          RenderMeter {METER} at (0,1) size 80x16
    1212            RenderBlock {DIV} at (0,0) size 80x16
    13               RenderBlock {DIV} at (0,0) size 20x16
     13            RenderBlock {DIV} at (0,0) size 20x16
    1414          RenderText {#text} at (80,0) size 4x18
    1515            text run at (80,0) width 4: " "
    1616          RenderMeter {METER} at (84,1) size 80x16
    1717            RenderBlock {DIV} at (0,0) size 80x16
    18               RenderBlock {DIV} at (0,0) size 36x16
     18            RenderBlock {DIV} at (0,0) size 36x16
    1919          RenderText {#text} at (164,0) size 4x18
    2020            text run at (164,0) width 4: " "
    2121          RenderMeter {METER} at (168,1) size 80x16
    2222            RenderBlock {DIV} at (0,0) size 80x16
    23               RenderBlock {DIV} at (0,0) size 60x16
     23            RenderBlock {DIV} at (0,0) size 60x16
    2424        RenderListItem {LI} at (43,21) size 732x41
    2525          RenderMeter {METER} at (0,0) size 30x40
     
    3333        RenderText {#text} at (0,0) size 150x18
    3434          text run at (0,0) width 150: "Providing meter styles"
    35       RenderBlock {DIV} at (0,107) size 784x74 [bgcolor=#EEEEEE]
    36         RenderBlock {UL} at (3,0) size 778x74
    37           RenderListItem {LI} at (43,0) size 732x18
    38             RenderMeter {METER} at (0,1) size 150x16 [bgcolor=#AAAACC] [border: (10px solid #222244) (50px solid #222244) (5px solid #222244) (100px solid #222244)]
    39               RenderBlock {DIV} at (100,10) size 0x1
    40                 RenderBlock {DIV} at (0,0) size 0x1
    41             RenderText {#text} at (150,0) size 70x18
    42               text run at (150,0) width 70: " has border"
    43           RenderListItem {LI} at (43,21) size 732x18
    44             RenderMeter {METER} at (0,1) size 150x16 [bgcolor=#AAAACC]
    45               RenderBlock {DIV} at (100,10) size 0x1
    46                 RenderBlock {DIV} at (0,0) size 0x1
    47             RenderText {#text} at (150,0) size 80x18
    48               text run at (150,0) width 80: " has padding"
    49           RenderListItem {LI} at (43,42) size 732x32
     35      RenderBlock {DIV} at (0,107) size 784x102 [bgcolor=#EEEEEE]
     36        RenderBlock {UL} at (3,0) size 778x102
     37          RenderListItem {LI} at (43,0) size 732x32
     38            RenderMeter {METER} at (0,0) size 230x31 [bgcolor=#AAAACC] [border: (10px solid #222244) (50px solid #222244) (5px solid #222244) (100px solid #222244)]
     39              RenderBlock {DIV} at (100,10) size 80x16
     40              RenderBlock {DIV} at (100,10) size 64x16
     41            RenderText {#text} at (230,14) size 70x18
     42              text run at (230,14) width 70: " has border"
     43          RenderListItem {LI} at (43,35) size 732x32
     44            RenderMeter {METER} at (0,0) size 230x31 [bgcolor=#AAAACC]
     45              RenderBlock {DIV} at (100,10) size 80x16
     46              RenderBlock {DIV} at (100,10) size 64x16
     47            RenderText {#text} at (230,14) size 80x18
     48              text run at (230,14) width 80: " has padding"
     49          RenderListItem {LI} at (43,70) size 732x32
    5050            RenderMeter {METER} at (100,10) size 80x16 [bgcolor=#AAAACC]
    5151              RenderBlock {DIV} at (0,0) size 80x16
    52                 RenderBlock {DIV} at (0,0) size 64x16
     52              RenderBlock {DIV} at (0,0) size 64x16
    5353            RenderText {#text} at (230,14) size 73x18
    5454              text run at (230,14) width 73: " has margin"
    55       RenderBlock {H2} at (3,184) size 778x18
     55      RenderBlock {H2} at (3,212) size 778x18
    5656        RenderText {#text} at (0,0) size 224x18
    5757          text run at (0,0) width 224: "Providing bar and/or value styles"
    58       RenderBlock {DIV} at (0,205) size 784x165 [bgcolor=#EEEEEE]
     58      RenderBlock {DIV} at (0,233) size 784x165 [bgcolor=#EEEEEE]
    5959        RenderBlock {UL} at (3,0) size 778x81
    6060          RenderBlock (anonymous) at (40,0) size 738x18
     
    8080            RenderMeter {METER} at (0,1) size 80x16
    8181              RenderBlock {DIV} at (0,0) size 80x16
    82                 RenderBlock {DIV} at (0,0) size 64x16 [bgcolor=#008000] [border: (2px solid #77CC77)]
     82              RenderBlock {DIV} at (0,0) size 64x16 [bgcolor=#008000] [border: (2px solid #77CC77)]
    8383            RenderText {#text} at (80,0) size 270x18
    8484              text run at (80,0) width 270: " has bar style, should have solid value part."
     
    8686            RenderMeter {METER} at (0,1) size 80x16
    8787              RenderBlock {DIV} at (0,0) size 80x16 [bgcolor=#808080] [border: (2px solid #222222)]
    88                 RenderBlock {DIV} at (2,2) size 60x12
     88              RenderBlock {DIV} at (0,0) size 64x16
    8989            RenderText {#text} at (80,0) size 255x18
    9090              text run at (80,0) width 255: " has value style, should be solid bar part."
     
    9292            RenderMeter {METER} at (0,1) size 80x16
    9393              RenderBlock {DIV} at (0,0) size 80x16 [bgcolor=#808080] [border: (2px solid #222222)]
    94                 RenderBlock {DIV} at (2,2) size 60x12 [bgcolor=#008000] [border: (2px solid #77CC77)]
     94              RenderBlock {DIV} at (0,0) size 64x16 [bgcolor=#008000] [border: (2px solid #77CC77)]
    9595            RenderText {#text} at (80,0) size 235x18
    9696              text run at (80,0) width 235: " should have solid bar and value part."
    97       RenderBlock {H2} at (3,373) size 778x18
     97      RenderBlock {H2} at (3,401) size 778x18
    9898        RenderText {#text} at (0,0) size 156x18
    9999          text run at (0,0) width 156: "Providing appearances"
    100       RenderBlock {DIV} at (0,394) size 784x39 [bgcolor=#EEEEEE]
     100      RenderBlock {DIV} at (0,422) size 784x39 [bgcolor=#EEEEEE]
    101101        RenderBlock {UL} at (3,0) size 778x39
    102102          RenderListItem {LI} at (43,0) size 732x18
    103103            RenderMeter {METER} at (0,1) size 80x16
    104104              RenderBlock {DIV} at (0,0) size 80x16
    105                 RenderBlock {DIV} at (0,0) size 64x16
     105              RenderBlock {DIV} at (0,0) size 64x16
    106106            RenderText {#text} at (80,0) size 375x18
    107107              text run at (80,0) width 375: " has \"none\" appearance, should be styled with default style."
     
    110110            RenderText {#text} at (80,0) size 276x18
    111111              text run at (80,0) width 276: " has \"meter\" appearance, should be themed."
    112       RenderBlock {H2} at (3,436) size 778x18
    113         RenderText {#text} at (0,0) size 161x18
    114           text run at (0,0) width 161: "Providing bar paddings"
    115       RenderBlock {DIV} at (0,457) size 784x18 [bgcolor=#EEEEEE]
    116         RenderMeter {METER} at (0,1) size 80x16
    117           RenderBlock {DIV} at (0,0) size 80x16
    118             RenderBlock {DIV} at (5,5) size 35x6
    119         RenderText {#text} at (80,0) size 165x18
    120           text run at (80,0) width 165: " has \"padding\" on the bar."
  • trunk/Source/WebCore/Android.mk

    r82882 r82889  
    356356        \
    357357        html/shadow/MediaControls.cpp \
    358         html/shadow/MeterShadowElement.cpp \
    359358        html/shadow/SliderThumbElement.cpp \
    360359        html/shadow/TextControlInnerElements.cpp \
  • trunk/Source/WebCore/CMakeLists.txt

    r82882 r82889  
    875875
    876876    html/shadow/MediaControls.cpp
    877     html/shadow/MeterShadowElement.cpp
    878877    html/shadow/SliderThumbElement.cpp
    879878    html/shadow/TextControlInnerElements.cpp
  • trunk/Source/WebCore/ChangeLog

    r82886 r82889  
     12011-04-04  Adrienne Walker  <enne@google.com>
     2
     3        Unreviewed, rolling out r82880.
     4        http://trac.webkit.org/changeset/82880
     5        https://bugs.webkit.org/show_bug.cgi?id=50661
     6
     7        Meter elements not rendered in Chromium Linux layout tests
     8
     9        * Android.mk:
     10        * CMakeLists.txt:
     11        * GNUmakefile.am:
     12        * WebCore.gypi:
     13        * WebCore.pro:
     14        * WebCore.vcproj/WebCore.vcproj:
     15        * WebCore.xcodeproj/project.pbxproj:
     16        * css/CSSMutableStyleDeclaration.cpp:
     17        * css/CSSMutableStyleDeclaration.h:
     18        * css/CSSSelector.cpp:
     19        (WebCore::CSSSelector::pseudoId):
     20        (WebCore::nameToPseudoTypeMap):
     21        (WebCore::CSSSelector::extractPseudoType):
     22        * css/CSSSelector.h:
     23        * css/html.css:
     24        (meter):
     25        (meter::-webkit-meter):
     26        (meter::-webkit-meter-bar):
     27        (meter::-webkit-meter-optimum-value):
     28        (meter::-webkit-meter-suboptimal-value):
     29        (meter::-webkit-meter-even-less-good-value):
     30        * html/HTMLMeterElement.cpp:
     31        (WebCore::HTMLMeterElement::create):
     32        (WebCore::HTMLMeterElement::parseMappedAttribute):
     33        (WebCore::HTMLMeterElement::attach):
     34        * html/HTMLMeterElement.h:
     35        * html/shadow/MeterShadowElement.cpp: Removed.
     36        * html/shadow/MeterShadowElement.h: Removed.
     37        * rendering/RenderMeter.cpp:
     38        (WebCore::RenderMeter::RenderMeter):
     39        (WebCore::RenderMeter::~RenderMeter):
     40        (WebCore::RenderMeter::createPart):
     41        (WebCore::RenderMeter::updateFromElement):
     42        (WebCore::RenderMeter::layoutParts):
     43        (WebCore::RenderMeter::styleDidChange):
     44        (WebCore::RenderMeter::shouldHaveParts):
     45        (WebCore::RenderMeter::valueRatio):
     46        (WebCore::RenderMeter::barPartRect):
     47        (WebCore::RenderMeter::valuePartRect):
     48        (WebCore::RenderMeter::valuePseudoId):
     49        (WebCore::RenderMeter::barPseudoId):
     50        (WebCore::RenderMeter::detachShadows):
     51        (WebCore::RenderMeter::updateShadows):
     52        * rendering/RenderMeter.h:
     53        (WebCore::RenderMeter::renderName):
     54        (WebCore::RenderMeter::isMeter):
     55        (WebCore::RenderMeter::shadowAttached):
     56
    1572011-04-04  Chang Shu  <cshu@webkit.org>
    258
  • trunk/Source/WebCore/GNUmakefile.am

    r82882 r82889  
    19241924        Source/WebCore/html/shadow/MediaControls.cpp \
    19251925        Source/WebCore/html/shadow/MediaControls.h \
    1926         Source/WebCore/html/shadow/MeterShadowElement.cpp \
    1927         Source/WebCore/html/shadow/MeterShadowElement.h \
    19281926        Source/WebCore/html/shadow/ProgressBarValueElement.h \
    19291927        Source/WebCore/html/shadow/SliderThumbElement.cpp \
  • trunk/Source/WebCore/WebCore.gypi

    r82882 r82889  
    31483148            'html/shadow/MediaControls.cpp',
    31493149            'html/shadow/MediaControls.h',
    3150             'html/shadow/MeterShadowElement.cpp',
    3151             'html/shadow/MeterShadowElement.h',
    31523150            'html/shadow/ProgressBarValueElement.h',
    31533151            'html/shadow/SliderThumbElement.cpp',
  • trunk/Source/WebCore/WebCore.pro

    r82882 r82889  
    802802    html/parser/XSSFilter.cpp \
    803803    html/shadow/MediaControls.cpp \
    804     html/shadow/MeterShadowElement.cpp \
    805804    html/shadow/SliderThumbElement.cpp \
    806805    html/shadow/TextControlInnerElements.cpp \
  • trunk/Source/WebCore/WebCore.vcproj/WebCore.vcproj

    r82882 r82889  
    5635856358                                </File>
    5635956359                                <File
    56360                                         RelativePath="..\html\shadow\MeterShadowElement.cpp"
    56361                                         >
    56362                                 </File>
    56363                                 <File
    56364                                         RelativePath="..\html\shadow\MeterShadowElement.h"
    56365                                         >
    56366                                 </File>
    56367                                 <File
    5636856360                                        RelativePath="..\html\shadow\ProgressBarValueElement.h"
    5636956361                                        >
  • trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj

    r82882 r82889  
    32193219                A77D0012133B0AEB00D6658C /* TextChecking.h in Headers */ = {isa = PBXBuildFile; fileRef = A77D0011133B0AEB00D6658C /* TextChecking.h */; settings = {ATTRIBUTES = (Private, ); }; };
    32203220                A784941B0B5FE507001E237A /* Clipboard.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A784941A0B5FE507001E237A /* Clipboard.cpp */; };
    3221                 A78E526F1346BD1700AD9C31 /* MeterShadowElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A78E526D1346BD1700AD9C31 /* MeterShadowElement.cpp */; };
    3222                 A78E52701346BD1700AD9C31 /* MeterShadowElement.h in Headers */ = {isa = PBXBuildFile; fileRef = A78E526E1346BD1700AD9C31 /* MeterShadowElement.h */; };
    32233221                A78FE13B12366B1000ACE8D0 /* SpellChecker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A78FE13912366B1000ACE8D0 /* SpellChecker.cpp */; };
    32243222                A78FE13C12366B1000ACE8D0 /* SpellChecker.h in Headers */ = {isa = PBXBuildFile; fileRef = A78FE13A12366B1000ACE8D0 /* SpellChecker.h */; settings = {ATTRIBUTES = (Private, ); }; };
     
    97359733                A77D0011133B0AEB00D6658C /* TextChecking.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TextChecking.h; sourceTree = "<group>"; };
    97369734                A784941A0B5FE507001E237A /* Clipboard.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = Clipboard.cpp; sourceTree = "<group>"; };
    9737                 A78E526D1346BD1700AD9C31 /* MeterShadowElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MeterShadowElement.cpp; sourceTree = "<group>"; };
    9738                 A78E526E1346BD1700AD9C31 /* MeterShadowElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MeterShadowElement.h; sourceTree = "<group>"; };
    97399735                A78FE13912366B1000ACE8D0 /* SpellChecker.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SpellChecker.cpp; sourceTree = "<group>"; };
    97409736                A78FE13A12366B1000ACE8D0 /* SpellChecker.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 4; path = SpellChecker.h; sourceTree = "<group>"; };
     
    1341813414                                4157AF7F12F1FB0400A8C6F5 /* MediaControls.cpp */,
    1341913415                                4157AF7E12F1FB0400A8C6F5 /* MediaControls.h */,
    13420                                 A78E526D1346BD1700AD9C31 /* MeterShadowElement.cpp */,
    13421                                 A78E526E1346BD1700AD9C31 /* MeterShadowElement.h */,
    1342213416                                A7FE819B12FA677700850C1E /* ProgressBarValueElement.h */,
    1342313417                                4150F9F012B6E0E70008C860 /* SliderThumbElement.cpp */,
     
    2183921833                                89878569122CA064003AABDA /* Metadata.h in Headers */,
    2184021834                                8987856A122CA064003AABDA /* MetadataCallback.h in Headers */,
    21841                                 A78E52701346BD1700AD9C31 /* MeterShadowElement.h in Headers */,
    2184221835                                BC772C4F0C4EB3040083285F /* MIMETypeRegistry.h in Headers */,
    2184321836                                C6D74AD509AA282E000B0A52 /* ModifySelectionListLevel.h in Headers */,
     
    2472424717                                E1ADECC00E76ACF1004A1A5E /* MessagePort.cpp in Sources */,
    2472524718                                41BF700B0FE86F49005E8DEC /* MessagePortChannel.cpp in Sources */,
    24726                                 A78E526F1346BD1700AD9C31 /* MeterShadowElement.cpp in Sources */,
    2472724719                                BC772C4E0C4EB3040083285F /* MIMETypeRegistry.cpp in Sources */,
    2472824720                                BC772C5E0C4EB3440083285F /* MIMETypeRegistryMac.mm in Sources */,
  • trunk/Source/WebCore/css/CSSMutableStyleDeclaration.cpp

    r82880 r82889  
    606606}
    607607
    608 bool CSSMutableStyleDeclaration::setProperty(int propertyID, double value, CSSPrimitiveValue::UnitTypes unit, bool important, bool notifyChanged)
    609 {
    610     CSSProperty property(propertyID, CSSPrimitiveValue::create(value, unit), important);
    611     setPropertyInternal(property);
    612     if (notifyChanged)
    613         setNeedsStyleRecalc();
    614     return true;
    615 }
    616 
    617608void CSSMutableStyleDeclaration::setStringProperty(int propertyId, const String &value, CSSPrimitiveValue::UnitTypes type, bool important)
    618609{
  • trunk/Source/WebCore/css/CSSMutableStyleDeclaration.h

    r82880 r82889  
    110110
    111111    bool setProperty(int propertyID, int value, bool important = false, bool notifyChanged = true);
    112     bool setProperty(int propertyId, double value, CSSPrimitiveValue::UnitTypes, bool important = false, bool notifyChanged = true);
    113112    bool setProperty(int propertyID, const String& value, bool important = false, bool notifyChanged = true);
    114113
     
    119118    void setStringProperty(int propertyId, const String& value, CSSPrimitiveValue::UnitTypes, bool important = false); // parsed string value
    120119    void setImageProperty(int propertyId, const String& url, bool important = false);
    121 
     120 
    122121    // The following parses an entire new style declaration.
    123122    void parseDeclaration(const String& styleDeclaration);
  • trunk/Source/WebCore/css/CSSSelector.cpp

    r82880 r82889  
    161161    case PseudoOuterSpinButton:
    162162        return OUTER_SPIN_BUTTON;
     163#if ENABLE(METER_TAG)
     164    case PseudoMeterBar:
     165        return METER_BAR;
     166    case PseudoMeterOptimum:
     167        return METER_OPTIMUM;
     168    case PseudoMeterSuboptimal:
     169        return METER_SUBOPTIMAL;
     170    case PseudoMeterEvenLessGood:
     171        return METER_EVEN_LESS_GOOD;
     172#else
     173    case PseudoMeterBar:
     174    case PseudoMeterOptimum:
     175    case PseudoMeterSuboptimal:
     176    case PseudoMeterEvenLessGood:
     177        ASSERT_NOT_REACHED();
     178        return NOPSEUDO;
     179#endif
     180
    163181#if ENABLE(FULLSCREEN_API)
    164182    case PseudoFullScreen:
     
    286304    DEFINE_STATIC_LOCAL(AtomicString, optional, ("optional"));
    287305    DEFINE_STATIC_LOCAL(AtomicString, outerSpinButton, ("-webkit-outer-spin-button"));
     306#if ENABLE(METER_TAG)
     307    DEFINE_STATIC_LOCAL(AtomicString, meterBar, ("-webkit-meter-bar"));
     308    DEFINE_STATIC_LOCAL(AtomicString, meterOptimumValue, ("-webkit-meter-optimum-value"));
     309    DEFINE_STATIC_LOCAL(AtomicString, meterSuboptimalValue, ("-webkit-meter-suboptimal-value"));
     310    DEFINE_STATIC_LOCAL(AtomicString, meterEvenLessGoodValue, ("-webkit-meter-even-less-good-value"));
     311#endif
     312
    288313    DEFINE_STATIC_LOCAL(AtomicString, required, ("required"));
    289314    DEFINE_STATIC_LOCAL(AtomicString, resizer, ("-webkit-resizer"));
     
    373398        nameToPseudoType->set(nthLastOfType.impl(), CSSSelector::PseudoNthLastOfType);
    374399        nameToPseudoType->set(outerSpinButton.impl(), CSSSelector::PseudoOuterSpinButton);
     400#if ENABLE(METER_TAG)
     401        nameToPseudoType->set(meterBar.impl(), CSSSelector::PseudoMeterBar);
     402        nameToPseudoType->set(meterOptimumValue.impl(), CSSSelector::PseudoMeterOptimum);
     403        nameToPseudoType->set(meterSuboptimalValue.impl(), CSSSelector::PseudoMeterSuboptimal);
     404        nameToPseudoType->set(meterEvenLessGoodValue.impl(), CSSSelector::PseudoMeterEvenLessGood);
     405#endif
    375406        nameToPseudoType->set(root.impl(), CSSSelector::PseudoRoot);
    376407        nameToPseudoType->set(windowInactive.impl(), CSSSelector::PseudoWindowInactive);
     
    447478#endif
    448479    case PseudoInnerSpinButton:
     480    case PseudoMeterBar:
     481    case PseudoMeterOptimum:
     482    case PseudoMeterSuboptimal:
     483    case PseudoMeterEvenLessGood:
     484    case PseudoOuterSpinButton:
    449485    case PseudoResizer:
    450486    case PseudoScrollbar:
  • trunk/Source/WebCore/css/CSSSelector.h

    r82880 r82889  
    183183            PseudoSearchResultsDecoration,
    184184            PseudoSearchResultsButton,
     185            PseudoMeterBar,
     186            PseudoMeterOptimum,
     187            PseudoMeterSuboptimal,
     188            PseudoMeterEvenLessGood,
    185189            PseudoInputListButton,
    186190#if ENABLE(INPUT_SPEECH)
  • trunk/Source/WebCore/css/html.css

    r82880 r82889  
    674674meter {
    675675    -webkit-appearance: meter;
    676     -webkit-box-sizing: border-box;
    677     display: inline-box;
     676    display: inline-block;
    678677    height: 1em;
    679678    width: 5em;
     
    681680}
    682681
     682meter::-webkit-meter {
     683    -webkit-appearance: meter;
     684}
     685
    683686meter::-webkit-meter-bar {
     687    -webkit-appearance: meter;
    684688    background: -webkit-gradient(linear, left top, left bottom, from(#ddd), to(#ddd), color-stop(0.20, #eee), color-stop(0.45, #ccc), color-stop(0.55, #ccc));
    685     height: 100%;
    686     -webkit-box-sizing: border-box;
    687689}
    688690
    689691meter::-webkit-meter-optimum-value {
     692    -webkit-appearance: meter;
    690693    background: -webkit-gradient(linear, left top, left bottom, from(#ad7), to(#ad7), color-stop(0.20, #cea), color-stop(0.45, #7a3), color-stop(0.55, #7a3));
    691     height: 100%;
    692     -webkit-box-sizing: border-box;
    693 }
    694 
    695 meter::-webkit-meter-suboptimum-value {
     694}
     695
     696meter::-webkit-meter-suboptimal-value {
     697    -webkit-appearance: meter;
    696698    background: -webkit-gradient(linear, left top, left bottom, from(#fe7), to(#fe7), color-stop(0.20, #ffc), color-stop(0.45, #db3), color-stop(0.55, #db3));
    697     height: 100%;
    698     -webkit-box-sizing: border-box;
    699699}
    700700
    701701meter::-webkit-meter-even-less-good-value {
     702    -webkit-appearance: meter;
    702703    background: -webkit-gradient(linear, left top, left bottom, from(#f77), to(#f77), color-stop(0.20, #fcc), color-stop(0.45, #d44), color-stop(0.55, #d44));
    703     height: 100%;
    704     -webkit-box-sizing: border-box;
    705704}
    706705
  • trunk/Source/WebCore/html/HTMLMeterElement.cpp

    r82880 r82889  
    3030#include "HTMLNames.h"
    3131#include "HTMLParserIdioms.h"
    32 #include "MeterShadowElement.h"
    3332#include "RenderMeter.h"
    3433#include <wtf/StdLibExtras.h>
     
    4443}
    4544
    46 HTMLMeterElement::~HTMLMeterElement()
    47 {
    48 }
    49 
    5045PassRefPtr<HTMLMeterElement> HTMLMeterElement::create(const QualifiedName& tagName, Document* document, HTMLFormElement* form)
    5146{
    52     RefPtr<HTMLMeterElement> meter = adoptRef(new HTMLMeterElement(tagName, document, form));
    53     meter->createShadowSubtree();
    54     return meter;
     47    return adoptRef(new HTMLMeterElement(tagName, document, form));
    5548}
    5649
     
    6861void HTMLMeterElement::parseMappedAttribute(Attribute* attribute)
    6962{
    70     if (attribute->name() == valueAttr || attribute->name() == minAttr || attribute->name() == maxAttr || attribute->name() == lowAttr || attribute->name() == highAttr || attribute->name() == optimumAttr)
    71         didElementStateChange();
    72     else
     63    if (attribute->name() == valueAttr || attribute->name() == minAttr || attribute->name() == maxAttr || attribute->name() == lowAttr || attribute->name() == highAttr || attribute->name() == optimumAttr) {
     64        if (renderer())
     65            renderer()->updateFromElement();
     66    } else
    7367        HTMLFormControlElement::parseMappedAttribute(attribute);
    7468}
     
    7771{
    7872    HTMLFormControlElement::attach();
    79     didElementStateChange();
     73    if (renderer())
     74        renderer()->updateFromElement();
    8075}
    8176
     
    209204}
    210205
    211 double HTMLMeterElement::valueRatio() const
    212 {
    213     double min = this->min();
    214     double max = this->max();
    215     double value = this->value();
    216 
    217     if (max <= min)
    218         return 0;
    219     return (value - min) / (max - min);
    220 }
    221 
    222 void HTMLMeterElement::didElementStateChange()
    223 {
    224     m_value->setWidthPercentage(valueRatio()*100);
    225 }
    226 
    227 void HTMLMeterElement::createShadowSubtree()
    228 {
    229     RefPtr<MeterBarElement> bar = MeterBarElement::create(document());
    230     m_value = MeterValueElement::create(document());
    231     ExceptionCode ec = 0;
    232     bar->appendChild(m_value, ec);
    233     setShadowRoot(bar);
    234 }
    235 
    236206} // namespace
    237207#endif
  • trunk/Source/WebCore/html/HTMLMeterElement.h

    r82880 r82889  
    2626
    2727namespace WebCore {
    28 
    29 class MeterValueElement;
    3028
    3129class HTMLMeterElement : public HTMLFormControlElement {
     
    5755    void setOptimum(double, ExceptionCode&);
    5856
    59     double valueRatio() const;
    6057    GaugeRegion gaugeRegion() const;
    61 
    6258private:
    6359    HTMLMeterElement(const QualifiedName&, Document*, HTMLFormElement*);
    64     virtual ~HTMLMeterElement();
    6560
    6661    virtual bool recalcWillValidate() const { return false; }
     62
    6763    virtual const AtomicString& formControlType() const;
     64
    6865    virtual RenderObject* createRenderer(RenderArena*, RenderStyle*);
     66
    6967    virtual void parseMappedAttribute(Attribute*);
     68
    7069    virtual void attach();
    71 
    72     void didElementStateChange();
    73     void createShadowSubtree();
    74 
    75     RefPtr<MeterValueElement> m_value;
    7670};
    7771
  • trunk/Source/WebCore/rendering/RenderMeter.cpp

    r82880 r82889  
    3737
    3838RenderMeter::RenderMeter(HTMLMeterElement* element)
    39     : RenderBlock(element)
     39    : RenderIndicator(element)
    4040{
    4141}
     
    4343RenderMeter::~RenderMeter()
    4444{
     45    detachShadows();
     46}
     47
     48PassRefPtr<ShadowBlockElement> RenderMeter::createPart(PseudoId pseudoId)
     49{
     50    RefPtr<ShadowBlockElement> element = ShadowBlockElement::createForPart(toHTMLElement(node()), pseudoId);
     51    if (element->renderer())
     52        addChild(element->renderer());
     53    return element;
     54}
     55
     56void RenderMeter::updateFromElement()
     57{
     58    updateShadows();
     59    RenderIndicator::updateFromElement();
    4560}
    4661
     
    5772}
    5873
     74void RenderMeter::layoutParts()
     75{
     76    if (shadowAttached()) {
     77        m_barPart->layoutAsPart(barPartRect());
     78        m_valuePart->layoutAsPart(valuePartRect());
     79    }
     80}
     81
     82void RenderMeter::styleDidChange(StyleDifference diff, const RenderStyle* oldStyle)
     83{
     84    RenderBlock::styleDidChange(diff, oldStyle);
     85
     86    if (!oldStyle)
     87        return;
     88
     89    if (oldStyle->appearance() != style()->appearance()) {
     90        detachShadows();
     91        updateShadows();
     92    }
     93}
     94
     95bool RenderMeter::shouldHaveParts() const
     96{
     97    return !theme()->supportsMeter(style()->appearance());
     98}
     99
    59100double RenderMeter::valueRatio() const
    60101{
    61     return static_cast<HTMLMeterElement*>(node())->valueRatio();
     102    HTMLMeterElement* element = static_cast<HTMLMeterElement*>(node());
     103    double min = element->min();
     104    double max = element->max();
     105    double value = element->value();
     106
     107    if (max <= min)
     108        return 0;
     109    return (value - min) / (max - min);
     110}
     111
     112IntRect RenderMeter::barPartRect() const
     113{
     114    return IntRect(borderLeft() + paddingLeft(), borderTop() + paddingTop(), lround(width() - borderLeft() - paddingLeft() - borderRight() - paddingRight()), height()  - borderTop() - paddingTop() - borderBottom() - paddingBottom());
     115}
     116
     117IntRect RenderMeter::valuePartRect() const
     118{
     119    IntRect rect = barPartRect();
     120    int width = static_cast<int>(rect.width()*valueRatio());
     121    if (!style()->isLeftToRightDirection()) {
     122        rect.setX(rect.x() + (rect.width() - width));
     123        rect.setWidth(width);
     124    } else
     125        rect.setWidth(width);
     126
     127    return rect;
     128}
     129
     130PseudoId RenderMeter::valuePseudoId() const
     131{
     132    HTMLMeterElement* element = static_cast<HTMLMeterElement*>(node());
     133
     134    switch (element->gaugeRegion()) {
     135    case HTMLMeterElement::GaugeRegionOptimum:
     136        return METER_OPTIMUM;
     137    case HTMLMeterElement::GaugeRegionSuboptimal:
     138        return METER_SUBOPTIMAL;
     139    case HTMLMeterElement::GaugeRegionEvenLessGood:
     140        return METER_EVEN_LESS_GOOD;
     141    }
     142
     143    ASSERT_NOT_REACHED();
     144    return NOPSEUDO;
     145}
     146
     147PseudoId RenderMeter::barPseudoId() const
     148{
     149    return METER_BAR;
     150}
     151
     152void RenderMeter::detachShadows()
     153{
     154    if (shadowAttached()) {
     155        m_valuePart->detach();
     156        m_valuePart = 0;
     157        m_barPart->detach();
     158        m_barPart = 0;
     159    }
     160}
     161
     162void RenderMeter::updateShadows()
     163{
     164    if (!shadowAttached() && shouldHaveParts()) {
     165        m_barPart = createPart(barPseudoId());
     166        m_valuePart = createPart(valuePseudoId());
     167    }
     168
     169    if (shadowAttached()) {
     170        m_barPart->updateStyleForPart(barPseudoId());
     171        m_valuePart->updateStyleForPart(valuePseudoId());
     172    }
    62173}
    63174
  • trunk/Source/WebCore/rendering/RenderMeter.h

    r82880 r82889  
    3333class ShadowBlockElement;
    3434
    35 class RenderMeter : public RenderBlock {
     35class RenderMeter : public RenderIndicator {
    3636public:
    3737    RenderMeter(HTMLMeterElement*);
     
    3939
    4040private:
     41    virtual const char* renderName() const { return "RenderMeter"; }
     42    virtual bool isMeter() const { return true; }
     43    virtual void updateFromElement();
    4144    virtual void computeLogicalWidth();
    4245    virtual void computeLogicalHeight();
    4346
    44     virtual const char* renderName() const { return "RenderMeter"; }
    45     virtual bool isMeter() const { return true; }
    46     virtual bool requiresForcedStyleRecalcPropagation() const { return true; }
    47     virtual bool canHaveChildren() const { return false; }
     47    virtual void layoutParts();
     48    virtual void styleDidChange(StyleDifference, const RenderStyle* oldStyle);
     49
     50    void updateShadows();
     51    void detachShadows();
     52
     53    bool shadowAttached() const { return m_barPart; }
     54    IntRect valuePartRect() const;
     55    PseudoId valuePseudoId() const;
     56    IntRect barPartRect() const;
     57    PseudoId barPseudoId() const;
    4858
    4959    double valueRatio() const;
     60    bool shouldHaveParts() const;
     61    PassRefPtr<ShadowBlockElement> createPart(PseudoId);
     62
     63    RefPtr<ShadowBlockElement> m_barPart;
     64    RefPtr<ShadowBlockElement> m_valuePart;
    5065};
    5166
Note: See TracChangeset for help on using the changeset viewer.