| Differences between
and this patch
- a/LayoutTests/ChangeLog +27 lines
Lines 1-3 a/LayoutTests/ChangeLog_sec1
1
2010-06-08  MORITA Hajime  <morrita@google.com>
2
3
        Reviewed by NOBODY (OOPS!).
4
5
        [Mac] <meter> elements should be rendered as level indicators.        
6
        https://bugs.webkit.org/show_bug.cgi?id=40217
7
8
        * fast/dom/HTMLMeterElement/meter-appearances-capacity.html: Added.
9
        * fast/dom/HTMLMeterElement/meter-appearances-rating-relevancy.html: Added.
10
        * fast/dom/HTMLMeterElement/meter-optimums.html: Added.
11
        * platform/chromium/test_expectations.txt:
12
        * platform/gtk/Skipped:
13
        * platform/mac/Skipped: removed <meter> related tests.
14
        * platform/mac/fast/dom/HTMLMeterElement/meter-appearances-capacity-expected.checksum: Added.
15
        * platform/mac/fast/dom/HTMLMeterElement/meter-appearances-capacity-expected.png: Added.
16
        * platform/mac/fast/dom/HTMLMeterElement/meter-appearances-capacity-expected.txt: Added.
17
        * platform/mac/fast/dom/HTMLMeterElement/meter-appearances-rating-relevancy-expected.checksum: Added.
18
        * platform/mac/fast/dom/HTMLMeterElement/meter-appearances-rating-relevancy-expected.png: Added.
19
        * platform/mac/fast/dom/HTMLMeterElement/meter-appearances-rating-relevancy-expected.txt: Added.
20
        * platform/mac/fast/dom/HTMLMeterElement/meter-element-expected.checksum: Added.
21
        * platform/mac/fast/dom/HTMLMeterElement/meter-element-expected.png: Added.
22
        * platform/mac/fast/dom/HTMLMeterElement/meter-element-expected.txt: Copied from LayoutTests/platform/qt/fast/dom/HTMLMeterElement/meter-element-expected.txt.
23
        * platform/mac/fast/dom/HTMLMeterElement/meter-optimums-expected.checksum: Added.
24
        * platform/mac/fast/dom/HTMLMeterElement/meter-optimums-expected.png: Added.
25
        * platform/mac/fast/dom/HTMLMeterElement/meter-optimums-expected.txt: Added.
26
        * platform/win/Skipped:
27
1
2010-06-06  MORITA Hajime  <morrita@google.com>
28
2010-06-06  MORITA Hajime  <morrita@google.com>
2
29
3
        Reviewed by Kent Tamura.
30
        Reviewed by Kent Tamura.
- a/LayoutTests/fast/dom/HTMLMeterElement/meter-appearances-capacity.html +47 lines
Line 0 a/LayoutTests/fast/dom/HTMLMeterElement/meter-appearances-capacity.html_sec1
1
<html>
2
<head>
3
<style>
4
  h1, h2, p { font-size: medium; }
5
  meter{ float: right; }
6
  .tall { height: 50px; }
7
  .short { height: 5px; }
8
  .wide { width: 300px; }
9
  .narrow { width: 30px; }
10
  li:nth-child(even) { background: #ccc; }
11
  li:nth-child(odd) { background: #eee; }
12
</style>
13
<script>
14
if (window.layoutTestController)
15
    layoutTestController.notifyDone();
16
</script>
17
</head>
18
<body>
19
  <h1>Meters with various appearance</h1>
20
  <h2>discrete-capacity-level-indicator<h2>
21
  <ul>
22
    <li>value=10/10: <meter min="0" max="10" low="3" high="6" optimum="5" value="10" style="-webkit-appearance: discrete-capacity-level-indicator;"></meter></li>
23
    <li>value=8/10: <meter min="0" max="10" low="3" high="6" optimum="5" value="8" style="-webkit-appearance: discrete-capacity-level-indicator;"></meter></li>
24
    <li>value=5/10: <meter min="0" max="10" low="3" high="6" optimum="5" value="5" style="-webkit-appearance: discrete-capacity-level-indicator;"></meter></li>
25
    <li>value=2/10: <meter min="0" max="10" low="3" high="6" optimum="5" value="2" style="-webkit-appearance: discrete-capacity-level-indicator;"></meter></li>
26
    <li>value=0/10: <meter min="0" max="10" low="3" high="6" optimum="5" value="0" style="-webkit-appearance: discrete-capacity-level-indicator;"></meter></li>
27
    <li>RTL: <meter min="0" max="10" low="3" high="6" optimum="5" value="5" style="-webkit-appearance: discrete-capacity-level-indicator; direction: rtl;"></meter></li>
28
    <li class="tall">Tall: <meter class="tall" min="0" max="10" low="3" high="6" optimum="5" value="5" style="-webkit-appearance: discrete-capacity-level-indicator;"></meter></li>
29
    <li>Short: <meter class="short" min="0" max="10" low="3" high="6" optimum="5" value="3" style="-webkit-appearance: discrete-capacity-level-indicator;"></meter></li>
30
    <li>Wide: <meter class="wide" min="0" max="10" low="3" high="6" optimum="5" value="5" style="-webkit-appearance: discrete-capacity-level-indicator;"></meter></li>
31
    <li>Narrow: <meter class="narrow" min="0" max="10" low="3" high="6" optimum="5" value="5" style="-webkit-appearance: discrete-capacity-level-indicator;"></meter></li>
32
  </ul>
33
  <h2>continuous-capacity-level-indicator<h2>
34
  <ul>
35
    <li>value=10/10: <meter min="0" max="10" low="3" high="6" optimum="5" value="10" style="-webkit-appearance: continuous-capacity-level-indicator;"></meter></li>
36
    <li>value=8/10: <meter min="0" max="10" low="3" high="6" optimum="5" value="8" style="-webkit-appearance: continuous-capacity-level-indicator;"></meter></li>
37
    <li>value=5/10: <meter min="0" max="10" low="3" high="6" optimum="5" value="5" style="-webkit-appearance: continuous-capacity-level-indicator;"></meter></li>
38
    <li>value=2/10: <meter min="0" max="10" low="3" high="6" optimum="5" value="2" style="-webkit-appearance: continuous-capacity-level-indicator;"></meter></li>
39
    <li>value=0/10: <meter min="0" max="10" low="3" high="6" optimum="5" value="0" style="-webkit-appearance: continuous-capacity-level-indicator;"></meter></li>
40
    <li>RTL: <meter min="0" max="10" low="3" high="6" optimum="5" value="5" style="-webkit-appearance: continuous-capacity-level-indicator; direction: rtl;"></meter></li>
41
    <li class="tall">Tall: <meter class="tall" min="0" max="10" low="3" high="6" optimum="5" value="5" style="-webkit-appearance: continuous-capacity-level-indicator;"></meter></li>
42
    <li>Short: <meter class="short" min="0" max="10" low="3" high="6" optimum="5" value="3" style="-webkit-appearance: continuous-capacity-level-indicator;"></meter></li>
43
    <li>Wide: <meter class="wide" min="0" max="10" low="3" high="6" optimum="5" value="5" style="-webkit-appearance: continuous-capacity-level-indicator;"></meter></li>
44
    <li>Narrow: <meter class="narrow" min="0" max="10" low="3" high="6" optimum="5" value="5" style="-webkit-appearance: continuous-capacity-level-indicator;"></meter></li>
45
  </ul>
46
</body>
47
</html>
- a/LayoutTests/fast/dom/HTMLMeterElement/meter-appearances-rating-relevancy.html +48 lines
Line 0 a/LayoutTests/fast/dom/HTMLMeterElement/meter-appearances-rating-relevancy.html_sec1
1
<html>
2
<head>
3
<style>
4
  h1, h2, p { font-size: medium; }
5
  meter{ float: right; }
6
  .tall { height: 50px; }
7
  .short { height: 5px; }
8
  .wide { width: 300px; }
9
  .narrow { width: 30px; }
10
  li:nth-child(even) { background: #ccc; }
11
  li:nth-child(odd) { background: #eee; }
12
</style>
13
<script>
14
if (window.layoutTestController)
15
    layoutTestController.notifyDone();
16
</script>
17
</head>
18
<body>
19
  <h1>Meters with various appearance</h1>
20
  <h2>rating-level-indicator<h2>
21
  <ul>
22
    <li>value=10/10: <meter min="0" max="10" low="3" high="6" optimum="5" value="10" style="-webkit-appearance: rating-level-indicator;"></meter></li>
23
    <li>value=8/10: <meter min="0" max="10" low="3" high="6" optimum="5" value="8" style="-webkit-appearance: rating-level-indicator;"></meter></li>
24
    <li>value=5/10: <meter min="0" max="10" low="3" high="6" optimum="5" value="5" style="-webkit-appearance: rating-level-indicator;"></meter></li>
25
    <li>value=2/10: <meter min="0" max="10" low="3" high="6" optimum="5" value="2" style="-webkit-appearance: rating-level-indicator;"></meter></li>
26
    <li>value=0/10: <meter min="0" max="10" low="3" high="6" optimum="5" value="0" style="-webkit-appearance: rating-level-indicator;"></meter></li>
27
    <li>RTL: <meter min="0" max="10" low="3" high="6" optimum="5" value="5" style="-webkit-appearance: rating-level-indicator; direction: rtl;"></meter></li>
28
    <li class="tall">Tall: <meter class="tall" min="0" max="10" low="3" high="6" optimum="5" value="5" style="-webkit-appearance: rating-level-indicator;"></meter></li>
29
    <li>Short: <meter class="short" min="0" max="10" low="3" high="6" optimum="5" value="3" style="-webkit-appearance: rating-level-indicator;"></meter></li>
30
    <li>Wide: <meter class="wide" min="0" max="10" low="3" high="6" optimum="5" value="5" style="-webkit-appearance: rating-level-indicator;"></meter></li>
31
    <li>Narrow: <meter class="narrow" min="0" max="10" low="3" high="6" optimum="5" value="5" style="-webkit-appearance: rating-level-indicator;"></meter></li>
32
  </ul>
33
34
  <h2>relevancy-level-indicator<h2>
35
  <ul>
36
    <li>value=10/10: <meter min="0" max="10" low="3" high="6" optimum="5" value="10" style="-webkit-appearance: relevancy-level-indicator;"></meter></li>
37
    <li>value=8/10: <meter min="0" max="10" low="3" high="6" optimum="5" value="8" style="-webkit-appearance: relevancy-level-indicator;"></meter></li>
38
    <li>value=5/10: <meter min="0" max="10" low="3" high="6" optimum="5" value="5" style="-webkit-appearance: relevancy-level-indicator;"></meter></li>
39
    <li>value=2/10: <meter min="0" max="10" low="3" high="6" optimum="5" value="2" style="-webkit-appearance: relevancy-level-indicator;"></meter></li>
40
    <li>value=0/10: <meter min="0" max="10" low="3" high="6" optimum="5" value="0" style="-webkit-appearance: relevancy-level-indicator;"></meter></li>
41
    <li>RTL: <meter min="0" max="10" low="3" high="6" optimum="5" value="5" style="-webkit-appearance: relevancy-level-indicator; direction: rtl;"></meter></li>
42
    <li class="tall">Tall: <meter class="tall" min="0" max="10" low="3" high="6" optimum="5" value="5" style="-webkit-appearance: relevancy-level-indicator;"></meter></li>
43
    <li>Short: <meter class="short" min="0" max="10" low="3" high="6" optimum="5" value="3" style="-webkit-appearance: relevancy-level-indicator;"></meter></li>
44
    <li>Wide: <meter class="wide" min="0" max="10" low="3" high="6" optimum="5" value="5" style="-webkit-appearance: relevancy-level-indicator;"></meter></li>
45
    <li>Narrow: <meter class="narrow" min="0" max="10" low="3" high="6" optimum="5" value="5" style="-webkit-appearance: relevancy-level-indicator;"></meter></li>
46
  </ul>
47
</body>
48
</html>
- a/LayoutTests/fast/dom/HTMLMeterElement/meter-optimums.html +36 lines
Line 0 a/LayoutTests/fast/dom/HTMLMeterElement/meter-optimums.html_sec1
1
<html>
2
<head>
3
<script>
4
if (window.layoutTestController)
5
    layoutTestController.notifyDone();
6
</script>
7
</head>
8
<body>
9
  <h1>Meters with various optimums</h1>
10
  <p>(min=0, max=1000, low=300, high=600)</p>
11
  <h2>optimum=450</h2>
12
  <ul>
13
    <li>value=150: <meter min="0" max="1000" low="300" high="600" optimum="450" value="250" ></meter></li>
14
    <li>value=450: <meter min="0" max="1000" low="300" high="600" optimum="450" value="450" ></meter></li>
15
    <li>value=750: <meter min="0" max="1000" low="300" high="600" optimum="450" value="750" ></meter></li>
16
    <li>value=0: <meter min="0" max="1000" low="300" high="600" optimum="450" value="0" ></meter></li>
17
    <li>value=1000: <meter min="0" max="1000" low="300" high="600" optimum="450" value="1000" ></meter></li>
18
  </ul>
19
  <h2>optimum=150</h2>
20
  <ul>
21
    <li>value=150: <meter min="0" max="1000" low="300" high="600" optimum="150" value="250" ></meter></li>
22
    <li>value=450: <meter min="0" max="1000" low="300" high="600" optimum="150" value="450" ></meter></li>
23
    <li>value=750: <meter min="0" max="1000" low="300" high="600" optimum="150" value="750" ></meter></li>
24
    <li>value=0: <meter min="0" max="1000" low="300" high="600" optimum="150" value="0" ></meter></li>
25
    <li>value=1000: <meter min="0" max="1000" low="300" high="600" optimum="150" value="1000" ></meter></li>
26
  </ul>
27
  <h2>optimum=750</h2>
28
  <ul>
29
    <li>value=150: <meter min="0" max="1000" low="300" high="600" optimum="750" value="250" ></meter></li>
30
    <li>value=450: <meter min="0" max="1000" low="300" high="600" optimum="750" value="450" ></meter></li>
31
    <li>value=750: <meter min="0" max="1000" low="300" high="600" optimum="750" value="750" ></meter></li>
32
    <li>value=0: <meter min="0" max="1000" low="300" high="600" optimum="750" value="0" ></meter></li>
33
    <li>value=1000: <meter min="0" max="1000" low="300" high="600" optimum="750" value="1000" ></meter></li>
34
  </ul>
35
</body>
36
</html>
- a/LayoutTests/platform/chromium/test_expectations.txt +3 lines
Lines 2627-2632 BUG38227 SKIP : fast/dom/HTMLProgressElement/progress-bar-value-pseudo-element.h a/LayoutTests/platform/chromium/test_expectations.txt_sec1
2627
// HTMLMeterElement related tests deferred due to https://bugs.webkit.org/show_bug.cgi?id=37074.
2627
// HTMLMeterElement related tests deferred due to https://bugs.webkit.org/show_bug.cgi?id=37074.
2628
BUGWK37074 DEFER : fast/dom/HTMLMeterElement/meter-element.html = MISSING
2628
BUGWK37074 DEFER : fast/dom/HTMLMeterElement/meter-element.html = MISSING
2629
BUGWK37074 DEFER : fast/dom/HTMLMeterElement/set-meter-properties.html = TEXT
2629
BUGWK37074 DEFER : fast/dom/HTMLMeterElement/set-meter-properties.html = TEXT
2630
BUGWK37074 DEFER : fast/dom/HTMLMeterElement/meter-appearances-capacity.html = MISSING
2631
BUGWK37074 DEFER : fast/dom/HTMLMeterElement/meter-appearances-rating-relevancy.html = MISSING
2632
BUGWK37074 DEFER : fast/dom/HTMLMeterElement/meter-optimums.html = MISSING
2630
2633
2631
// WebKit roll 56004 -> 56026
2634
// WebKit roll 56004 -> 56026
2632
BUG38278 : fast/events/continuous-platform-wheelevent-in-scrolling-div.html = TIMEOUT
2635
BUG38278 : fast/events/continuous-platform-wheelevent-in-scrolling-div.html = TIMEOUT
- a/LayoutTests/platform/gtk/Skipped +3 lines
Lines 5707-5712 fast/dom/HTMLProgressElement/progress-bar-value-pseudo-element.html a/LayoutTests/platform/gtk/Skipped_sec1
5707
# meter element is not supported
5707
# meter element is not supported
5708
fast/dom/HTMLMeterElement/meter-element.html
5708
fast/dom/HTMLMeterElement/meter-element.html
5709
fast/dom/HTMLMeterElement/set-meter-properties.html
5709
fast/dom/HTMLMeterElement/set-meter-properties.html
5710
fast/dom/HTMLMeterElement/meter-appearances-capacity.html
5711
fast/dom/HTMLMeterElement/meter-appearances-rating-relevancy.html
5712
fast/dom/HTMLMeterElement/meter-optimums.html
5710
5713
5711
# Needs mock support, and build slave Geolocation service
5714
# Needs mock support, and build slave Geolocation service
5712
# See https://bugs.webkit.org/show_bug.cgi?id=36053
5715
# See https://bugs.webkit.org/show_bug.cgi?id=36053
- a/LayoutTests/platform/mac/Skipped -4 lines
Lines 136-145 fast/forms/multiple-form-submission-protection-mouse.html a/LayoutTests/platform/mac/Skipped_sec1
136
# The animation causes the result of this test to depend on the speed of executing it, and that will cause it to be flaky
136
# The animation causes the result of this test to depend on the speed of executing it, and that will cause it to be flaky
137
fast/dom/HTMLProgressElement/progress-element.html
137
fast/dom/HTMLProgressElement/progress-element.html
138
138
139
# meter element is not supported
140
fast/dom/HTMLMeterElement/meter-element.html
141
fast/dom/HTMLMeterElement/set-meter-properties.html
142
143
# event.dataTransfer.setData('text/uri-list') not correctly implemented on Mac
139
# event.dataTransfer.setData('text/uri-list') not correctly implemented on Mac
144
editing/pasteboard/dataTransfer-setData-getData.html
140
editing/pasteboard/dataTransfer-setData-getData.html
145
141
- a/LayoutTests/platform/mac/fast/dom/HTMLMeterElement/meter-appearances-capacity-expected.checksum +1 lines
Line 0 a/LayoutTests/platform/mac/fast/dom/HTMLMeterElement/meter-appearances-capacity-expected.checksum_sec1
1
46e2fa5e215820fcbb9e81907bd5ceae
- a/LayoutTests/platform/mac/fast/dom/HTMLMeterElement/meter-appearances-capacity-expected.txt +118 lines
Line 0 a/LayoutTests/platform/mac/fast/dom/HTMLMeterElement/meter-appearances-capacity-expected.txt_sec1
1
layer at (0,0) size 800x600
2
  RenderView at (0,0) size 800x600
3
layer at (0,0) size 800x600
4
  RenderBlock {HTML} at (0,0) size 800x600
5
    RenderBody {BODY} at (8,8) size 784x576
6
      RenderBlock {H1} at (0,0) size 784x18
7
        RenderText {#text} at (0,0) size 218x18
8
          text run at (0,0) width 218: "Meters with various appearance"
9
      RenderBlock {H2} at (0,31) size 784x18
10
        RenderText {#text} at (0,0) size 214x18
11
          text run at (0,0) width 214: "discrete-capacity-level-indicator"
12
      RenderBlock {H2} at (0,65) size 784x212
13
        RenderBlock {UL} at (0,0) size 784x212
14
          RenderListItem {LI} at (40,0) size 744x18 [bgcolor=#EEEEEE]
15
            RenderListMarker at (-17,0) size 7x18: bullet
16
            RenderText {#text} at (0,0) size 86x18
17
              text run at (0,0) width 86: "value=10/10:"
18
            RenderMeter {METER} at (664,0) size 80x18
19
          RenderListItem {LI} at (40,18) size 744x18 [bgcolor=#CCCCCC]
20
            RenderListMarker at (-17,0) size 7x18: bullet
21
            RenderText {#text} at (0,0) size 78x18
22
              text run at (0,0) width 78: "value=8/10:"
23
            RenderMeter {METER} at (664,0) size 80x18
24
          RenderListItem {LI} at (40,36) size 744x18 [bgcolor=#EEEEEE]
25
            RenderListMarker at (-17,0) size 7x18: bullet
26
            RenderText {#text} at (0,0) size 78x18
27
              text run at (0,0) width 78: "value=5/10:"
28
            RenderMeter {METER} at (664,0) size 80x18
29
          RenderListItem {LI} at (40,54) size 744x18 [bgcolor=#CCCCCC]
30
            RenderListMarker at (-17,0) size 7x18: bullet
31
            RenderText {#text} at (0,0) size 78x18
32
              text run at (0,0) width 78: "value=2/10:"
33
            RenderMeter {METER} at (664,0) size 80x18
34
          RenderListItem {LI} at (40,72) size 744x18 [bgcolor=#EEEEEE]
35
            RenderListMarker at (-17,0) size 7x18: bullet
36
            RenderText {#text} at (0,0) size 78x18
37
              text run at (0,0) width 78: "value=0/10:"
38
            RenderMeter {METER} at (664,0) size 80x18
39
          RenderListItem {LI} at (40,90) size 744x18 [bgcolor=#CCCCCC]
40
            RenderListMarker at (-17,0) size 7x18: bullet
41
            RenderText {#text} at (0,0) size 39x18
42
              text run at (0,0) width 39: "RTL:"
43
            RenderMeter {METER} at (664,0) size 80x18
44
          RenderListItem {LI} at (40,108) size 744x50 [bgcolor=#EEEEEE]
45
            RenderListMarker at (-17,0) size 7x18: bullet
46
            RenderText {#text} at (0,0) size 32x18
47
              text run at (0,0) width 32: "Tall:"
48
            RenderMeter {METER} at (664,0) size 80x50
49
          RenderListItem {LI} at (40,158) size 744x18 [bgcolor=#CCCCCC]
50
            RenderListMarker at (-17,0) size 7x18: bullet
51
            RenderText {#text} at (0,0) size 43x18
52
              text run at (0,0) width 43: "Short:"
53
            RenderMeter {METER} at (664,0) size 80x18
54
          RenderListItem {LI} at (40,176) size 744x18 [bgcolor=#EEEEEE]
55
            RenderListMarker at (-17,0) size 7x18: bullet
56
            RenderText {#text} at (0,0) size 41x18
57
              text run at (0,0) width 41: "Wide:"
58
            RenderMeter {METER} at (444,0) size 300x18
59
          RenderListItem {LI} at (40,194) size 744x18 [bgcolor=#CCCCCC]
60
            RenderListMarker at (-17,0) size 7x18: bullet
61
            RenderText {#text} at (0,0) size 59x18
62
              text run at (0,0) width 59: "Narrow:"
63
            RenderMeter {METER} at (714,0) size 30x18
64
      RenderBlock {H2} at (0,293) size 784x18
65
        RenderText {#text} at (0,0) size 236x18
66
          text run at (0,0) width 236: "continuous-capacity-level-indicator"
67
      RenderBlock {H2} at (0,327) size 784x212
68
        RenderBlock {UL} at (0,0) size 784x212
69
          RenderListItem {LI} at (40,0) size 744x18 [bgcolor=#EEEEEE]
70
            RenderListMarker at (-17,0) size 7x18: bullet
71
            RenderText {#text} at (0,0) size 86x18
72
              text run at (0,0) width 86: "value=10/10:"
73
            RenderMeter {METER} at (664,0) size 80x16
74
          RenderListItem {LI} at (40,18) size 744x18 [bgcolor=#CCCCCC]
75
            RenderListMarker at (-17,0) size 7x18: bullet
76
            RenderText {#text} at (0,0) size 78x18
77
              text run at (0,0) width 78: "value=8/10:"
78
            RenderMeter {METER} at (664,0) size 80x16
79
          RenderListItem {LI} at (40,36) size 744x18 [bgcolor=#EEEEEE]
80
            RenderListMarker at (-17,0) size 7x18: bullet
81
            RenderText {#text} at (0,0) size 78x18
82
              text run at (0,0) width 78: "value=5/10:"
83
            RenderMeter {METER} at (664,0) size 80x16
84
          RenderListItem {LI} at (40,54) size 744x18 [bgcolor=#CCCCCC]
85
            RenderListMarker at (-17,0) size 7x18: bullet
86
            RenderText {#text} at (0,0) size 78x18
87
              text run at (0,0) width 78: "value=2/10:"
88
            RenderMeter {METER} at (664,0) size 80x16
89
          RenderListItem {LI} at (40,72) size 744x18 [bgcolor=#EEEEEE]
90
            RenderListMarker at (-17,0) size 7x18: bullet
91
            RenderText {#text} at (0,0) size 78x18
92
              text run at (0,0) width 78: "value=0/10:"
93
            RenderMeter {METER} at (664,0) size 80x16
94
          RenderListItem {LI} at (40,90) size 744x18 [bgcolor=#CCCCCC]
95
            RenderListMarker at (-17,0) size 7x18: bullet
96
            RenderText {#text} at (0,0) size 39x18
97
              text run at (0,0) width 39: "RTL:"
98
            RenderMeter {METER} at (664,0) size 80x16
99
          RenderListItem {LI} at (40,108) size 744x50 [bgcolor=#EEEEEE]
100
            RenderListMarker at (-17,0) size 7x18: bullet
101
            RenderText {#text} at (0,0) size 32x18
102
              text run at (0,0) width 32: "Tall:"
103
            RenderMeter {METER} at (664,0) size 80x50
104
          RenderListItem {LI} at (40,158) size 744x18 [bgcolor=#CCCCCC]
105
            RenderListMarker at (-17,0) size 7x18: bullet
106
            RenderText {#text} at (0,0) size 43x18
107
              text run at (0,0) width 43: "Short:"
108
            RenderMeter {METER} at (664,0) size 80x16
109
          RenderListItem {LI} at (40,176) size 744x18 [bgcolor=#EEEEEE]
110
            RenderListMarker at (-17,0) size 7x18: bullet
111
            RenderText {#text} at (0,0) size 41x18
112
              text run at (0,0) width 41: "Wide:"
113
            RenderMeter {METER} at (444,0) size 300x16
114
          RenderListItem {LI} at (40,194) size 744x18 [bgcolor=#CCCCCC]
115
            RenderListMarker at (-17,0) size 7x18: bullet
116
            RenderText {#text} at (0,0) size 59x18
117
              text run at (0,0) width 59: "Narrow:"
118
            RenderMeter {METER} at (714,0) size 30x16
- a/LayoutTests/platform/mac/fast/dom/HTMLMeterElement/meter-appearances-rating-relevancy-expected.checksum +1 lines
Line 0 a/LayoutTests/platform/mac/fast/dom/HTMLMeterElement/meter-appearances-rating-relevancy-expected.checksum_sec1
1
f437b06734f936f41e18617c1188d5ac
- a/LayoutTests/platform/mac/fast/dom/HTMLMeterElement/meter-appearances-rating-relevancy-expected.txt +118 lines
Line 0 a/LayoutTests/platform/mac/fast/dom/HTMLMeterElement/meter-appearances-rating-relevancy-expected.txt_sec1
1
layer at (0,0) size 800x600
2
  RenderView at (0,0) size 800x600
3
layer at (0,0) size 800x600
4
  RenderBlock {HTML} at (0,0) size 800x600
5
    RenderBody {BODY} at (8,8) size 784x576
6
      RenderBlock {H1} at (0,0) size 784x18
7
        RenderText {#text} at (0,0) size 218x18
8
          text run at (0,0) width 218: "Meters with various appearance"
9
      RenderBlock {H2} at (0,31) size 784x18
10
        RenderText {#text} at (0,0) size 142x18
11
          text run at (0,0) width 142: "rating-level-indicator"
12
      RenderBlock {H2} at (0,65) size 784x212
13
        RenderBlock {UL} at (0,0) size 784x212
14
          RenderListItem {LI} at (40,0) size 744x18 [bgcolor=#EEEEEE]
15
            RenderListMarker at (-17,0) size 7x18: bullet
16
            RenderText {#text} at (0,0) size 86x18
17
              text run at (0,0) width 86: "value=10/10:"
18
            RenderMeter {METER} at (614,0) size 130x16
19
          RenderListItem {LI} at (40,18) size 744x18 [bgcolor=#CCCCCC]
20
            RenderListMarker at (-17,0) size 7x18: bullet
21
            RenderText {#text} at (0,0) size 78x18
22
              text run at (0,0) width 78: "value=8/10:"
23
            RenderMeter {METER} at (614,0) size 130x16
24
          RenderListItem {LI} at (40,36) size 744x18 [bgcolor=#EEEEEE]
25
            RenderListMarker at (-17,0) size 7x18: bullet
26
            RenderText {#text} at (0,0) size 78x18
27
              text run at (0,0) width 78: "value=5/10:"
28
            RenderMeter {METER} at (614,0) size 130x16
29
          RenderListItem {LI} at (40,54) size 744x18 [bgcolor=#CCCCCC]
30
            RenderListMarker at (-17,0) size 7x18: bullet
31
            RenderText {#text} at (0,0) size 78x18
32
              text run at (0,0) width 78: "value=2/10:"
33
            RenderMeter {METER} at (614,0) size 130x16
34
          RenderListItem {LI} at (40,72) size 744x18 [bgcolor=#EEEEEE]
35
            RenderListMarker at (-17,0) size 7x18: bullet
36
            RenderText {#text} at (0,0) size 78x18
37
              text run at (0,0) width 78: "value=0/10:"
38
            RenderMeter {METER} at (614,0) size 130x16
39
          RenderListItem {LI} at (40,90) size 744x18 [bgcolor=#CCCCCC]
40
            RenderListMarker at (-17,0) size 7x18: bullet
41
            RenderText {#text} at (0,0) size 39x18
42
              text run at (0,0) width 39: "RTL:"
43
            RenderMeter {METER} at (614,0) size 130x16
44
          RenderListItem {LI} at (40,108) size 744x50 [bgcolor=#EEEEEE]
45
            RenderListMarker at (-17,0) size 7x18: bullet
46
            RenderText {#text} at (0,0) size 32x18
47
              text run at (0,0) width 32: "Tall:"
48
            RenderMeter {METER} at (614,0) size 130x50
49
          RenderListItem {LI} at (40,158) size 744x18 [bgcolor=#CCCCCC]
50
            RenderListMarker at (-17,0) size 7x18: bullet
51
            RenderText {#text} at (0,0) size 43x18
52
              text run at (0,0) width 43: "Short:"
53
            RenderMeter {METER} at (614,0) size 130x13
54
          RenderListItem {LI} at (40,176) size 744x18 [bgcolor=#EEEEEE]
55
            RenderListMarker at (-17,0) size 7x18: bullet
56
            RenderText {#text} at (0,0) size 41x18
57
              text run at (0,0) width 41: "Wide:"
58
            RenderMeter {METER} at (444,0) size 300x16
59
          RenderListItem {LI} at (40,194) size 744x18 [bgcolor=#CCCCCC]
60
            RenderListMarker at (-17,0) size 7x18: bullet
61
            RenderText {#text} at (0,0) size 59x18
62
              text run at (0,0) width 59: "Narrow:"
63
            RenderMeter {METER} at (614,0) size 130x16
64
      RenderBlock {H2} at (0,293) size 784x18
65
        RenderText {#text} at (0,0) size 166x18
66
          text run at (0,0) width 166: "relevancy-level-indicator"
67
      RenderBlock {H2} at (0,327) size 784x212
68
        RenderBlock {UL} at (0,0) size 784x212
69
          RenderListItem {LI} at (40,0) size 744x18 [bgcolor=#EEEEEE]
70
            RenderListMarker at (-17,0) size 7x18: bullet
71
            RenderText {#text} at (0,0) size 86x18
72
              text run at (0,0) width 86: "value=10/10:"
73
            RenderMeter {METER} at (664,0) size 80x16
74
          RenderListItem {LI} at (40,18) size 744x18 [bgcolor=#CCCCCC]
75
            RenderListMarker at (-17,0) size 7x18: bullet
76
            RenderText {#text} at (0,0) size 78x18
77
              text run at (0,0) width 78: "value=8/10:"
78
            RenderMeter {METER} at (664,0) size 80x16
79
          RenderListItem {LI} at (40,36) size 744x18 [bgcolor=#EEEEEE]
80
            RenderListMarker at (-17,0) size 7x18: bullet
81
            RenderText {#text} at (0,0) size 78x18
82
              text run at (0,0) width 78: "value=5/10:"
83
            RenderMeter {METER} at (664,0) size 80x16
84
          RenderListItem {LI} at (40,54) size 744x18 [bgcolor=#CCCCCC]
85
            RenderListMarker at (-17,0) size 7x18: bullet
86
            RenderText {#text} at (0,0) size 78x18
87
              text run at (0,0) width 78: "value=2/10:"
88
            RenderMeter {METER} at (664,0) size 80x16
89
          RenderListItem {LI} at (40,72) size 744x18 [bgcolor=#EEEEEE]
90
            RenderListMarker at (-17,0) size 7x18: bullet
91
            RenderText {#text} at (0,0) size 78x18
92
              text run at (0,0) width 78: "value=0/10:"
93
            RenderMeter {METER} at (664,0) size 80x16
94
          RenderListItem {LI} at (40,90) size 744x18 [bgcolor=#CCCCCC]
95
            RenderListMarker at (-17,0) size 7x18: bullet
96
            RenderText {#text} at (0,0) size 39x18
97
              text run at (0,0) width 39: "RTL:"
98
            RenderMeter {METER} at (664,0) size 80x16
99
          RenderListItem {LI} at (40,108) size 744x50 [bgcolor=#EEEEEE]
100
            RenderListMarker at (-17,0) size 7x18: bullet
101
            RenderText {#text} at (0,0) size 32x18
102
              text run at (0,0) width 32: "Tall:"
103
            RenderMeter {METER} at (664,0) size 80x50
104
          RenderListItem {LI} at (40,158) size 744x18 [bgcolor=#CCCCCC]
105
            RenderListMarker at (-17,0) size 7x18: bullet
106
            RenderText {#text} at (0,0) size 43x18
107
              text run at (0,0) width 43: "Short:"
108
            RenderMeter {METER} at (664,0) size 80x12
109
          RenderListItem {LI} at (40,176) size 744x18 [bgcolor=#EEEEEE]
110
            RenderListMarker at (-17,0) size 7x18: bullet
111
            RenderText {#text} at (0,0) size 41x18
112
              text run at (0,0) width 41: "Wide:"
113
            RenderMeter {METER} at (444,0) size 300x16
114
          RenderListItem {LI} at (40,194) size 744x18 [bgcolor=#CCCCCC]
115
            RenderListMarker at (-17,0) size 7x18: bullet
116
            RenderText {#text} at (0,0) size 59x18
117
              text run at (0,0) width 59: "Narrow:"
118
            RenderMeter {METER} at (714,0) size 30x16
- a/LayoutTests/platform/mac/fast/dom/HTMLMeterElement/meter-element-expected.checksum +1 lines
Line 0 a/LayoutTests/platform/mac/fast/dom/HTMLMeterElement/meter-element-expected.checksum_sec1
1
ee9e030a1b605ca2c030bfee694bf9f6
- a/LayoutTests/platform/mac/fast/dom/HTMLMeterElement/meter-element-expected.txt +10 lines
Line 0 a/LayoutTests/platform/mac/fast/dom/HTMLMeterElement/meter-element-expected.txt_sec1
1
layer at (0,0) size 800x600
2
  RenderView at (0,0) size 800x600
3
layer at (0,0) size 800x600
4
  RenderBlock {HTML} at (0,0) size 800x600
5
    RenderBody {BODY} at (8,8) size 784x584
6
      RenderMeter {METER} at (0,44) size 80x16
7
        RenderText {#text} at (0,0) size 0x0
8
      RenderMeter {METER} at (80,0) size 10x60
9
        RenderText {#text} at (0,0) size 0x0
10
      RenderText {#text} at (0,0) size 0x0
- a/LayoutTests/platform/mac/fast/dom/HTMLMeterElement/meter-optimums-expected.checksum +1 lines
Line 0 a/LayoutTests/platform/mac/fast/dom/HTMLMeterElement/meter-optimums-expected.checksum_sec1
1
851e15761e9707f58957d7cc99012925
- a/LayoutTests/platform/mac/fast/dom/HTMLMeterElement/meter-optimums-expected.txt +98 lines
Line 0 a/LayoutTests/platform/mac/fast/dom/HTMLMeterElement/meter-optimums-expected.txt_sec1
1
layer at (0,0) size 800x600
2
  RenderView at (0,0) size 800x600
3
layer at (0,0) size 800x600
4
  RenderBlock {HTML} at (0,0) size 800x600
5
    RenderBody {BODY} at (8,8) size 784x576
6
      RenderBlock {H1} at (0,0) size 784x37
7
        RenderText {#text} at (0,0) size 419x37
8
          text run at (0,0) width 419: "Meters with various optimums"
9
      RenderBlock {P} at (0,58) size 784x18
10
        RenderText {#text} at (0,0) size 261x18
11
          text run at (0,0) width 261: "(min=0, max=1000, low=300, high=600)"
12
      RenderBlock {H2} at (0,95) size 784x28
13
        RenderText {#text} at (0,0) size 143x28
14
          text run at (0,0) width 143: "optimum=450"
15
      RenderBlock {UL} at (0,142) size 784x90
16
        RenderListItem {LI} at (40,0) size 744x18
17
          RenderListMarker at (-17,0) size 7x18: bullet
18
          RenderText {#text} at (0,0) size 75x18
19
            text run at (0,0) width 75: "value=150: "
20
          RenderMeter {METER} at (75,1) size 80x16
21
        RenderListItem {LI} at (40,18) size 744x18
22
          RenderListMarker at (-17,0) size 7x18: bullet
23
          RenderText {#text} at (0,0) size 75x18
24
            text run at (0,0) width 75: "value=450: "
25
          RenderMeter {METER} at (75,1) size 80x16
26
        RenderListItem {LI} at (40,36) size 744x18
27
          RenderListMarker at (-17,0) size 7x18: bullet
28
          RenderText {#text} at (0,0) size 75x18
29
            text run at (0,0) width 75: "value=750: "
30
          RenderMeter {METER} at (75,1) size 80x16
31
        RenderListItem {LI} at (40,54) size 744x18
32
          RenderListMarker at (-17,0) size 7x18: bullet
33
          RenderText {#text} at (0,0) size 59x18
34
            text run at (0,0) width 59: "value=0: "
35
          RenderMeter {METER} at (59,1) size 80x16
36
        RenderListItem {LI} at (40,72) size 744x18
37
          RenderListMarker at (-17,0) size 7x18: bullet
38
          RenderText {#text} at (0,0) size 83x18
39
            text run at (0,0) width 83: "value=1000: "
40
          RenderMeter {METER} at (83,1) size 80x16
41
      RenderBlock {H2} at (0,251) size 784x28
42
        RenderText {#text} at (0,0) size 143x28
43
          text run at (0,0) width 143: "optimum=150"
44
      RenderBlock {UL} at (0,298) size 784x90
45
        RenderListItem {LI} at (40,0) size 744x18
46
          RenderListMarker at (-17,0) size 7x18: bullet
47
          RenderText {#text} at (0,0) size 75x18
48
            text run at (0,0) width 75: "value=150: "
49
          RenderMeter {METER} at (75,1) size 80x16
50
        RenderListItem {LI} at (40,18) size 744x18
51
          RenderListMarker at (-17,0) size 7x18: bullet
52
          RenderText {#text} at (0,0) size 75x18
53
            text run at (0,0) width 75: "value=450: "
54
          RenderMeter {METER} at (75,1) size 80x16
55
        RenderListItem {LI} at (40,36) size 744x18
56
          RenderListMarker at (-17,0) size 7x18: bullet
57
          RenderText {#text} at (0,0) size 75x18
58
            text run at (0,0) width 75: "value=750: "
59
          RenderMeter {METER} at (75,1) size 80x16
60
        RenderListItem {LI} at (40,54) size 744x18
61
          RenderListMarker at (-17,0) size 7x18: bullet
62
          RenderText {#text} at (0,0) size 59x18
63
            text run at (0,0) width 59: "value=0: "
64
          RenderMeter {METER} at (59,1) size 80x16
65
        RenderListItem {LI} at (40,72) size 744x18
66
          RenderListMarker at (-17,0) size 7x18: bullet
67
          RenderText {#text} at (0,0) size 83x18
68
            text run at (0,0) width 83: "value=1000: "
69
          RenderMeter {METER} at (83,1) size 80x16
70
      RenderBlock {H2} at (0,407) size 784x28
71
        RenderText {#text} at (0,0) size 143x28
72
          text run at (0,0) width 143: "optimum=750"
73
      RenderBlock {UL} at (0,454) size 784x90
74
        RenderListItem {LI} at (40,0) size 744x18
75
          RenderListMarker at (-17,0) size 7x18: bullet
76
          RenderText {#text} at (0,0) size 75x18
77
            text run at (0,0) width 75: "value=150: "
78
          RenderMeter {METER} at (75,1) size 80x16
79
        RenderListItem {LI} at (40,18) size 744x18
80
          RenderListMarker at (-17,0) size 7x18: bullet
81
          RenderText {#text} at (0,0) size 75x18
82
            text run at (0,0) width 75: "value=450: "
83
          RenderMeter {METER} at (75,1) size 80x16
84
        RenderListItem {LI} at (40,36) size 744x18
85
          RenderListMarker at (-17,0) size 7x18: bullet
86
          RenderText {#text} at (0,0) size 75x18
87
            text run at (0,0) width 75: "value=750: "
88
          RenderMeter {METER} at (75,1) size 80x16
89
        RenderListItem {LI} at (40,54) size 744x18
90
          RenderListMarker at (-17,0) size 7x18: bullet
91
          RenderText {#text} at (0,0) size 59x18
92
            text run at (0,0) width 59: "value=0: "
93
          RenderMeter {METER} at (59,1) size 80x16
94
        RenderListItem {LI} at (40,72) size 744x18
95
          RenderListMarker at (-17,0) size 7x18: bullet
96
          RenderText {#text} at (0,0) size 83x18
97
            text run at (0,0) width 83: "value=1000: "
98
          RenderMeter {METER} at (83,1) size 80x16
- a/LayoutTests/platform/win/Skipped +3 lines
Lines 835-840 fast/dom/HTMLProgressElement/progress-bar-value-pseudo-element.html a/LayoutTests/platform/win/Skipped_sec1
835
# meter element is not supported
835
# meter element is not supported
836
fast/dom/HTMLMeterElement/meter-element.html
836
fast/dom/HTMLMeterElement/meter-element.html
837
fast/dom/HTMLMeterElement/set-meter-properties.html
837
fast/dom/HTMLMeterElement/set-meter-properties.html
838
fast/dom/HTMLMeterElement/meter-appearances-capacity.html
839
fast/dom/HTMLMeterElement/meter-appearances-rating-relevancy.html
840
fast/dom/HTMLMeterElement/meter-optimums.html
838
841
839
# No Widgets 1.0 support
842
# No Widgets 1.0 support
840
fast/media/media-feature-wgt-view-mode.html
843
fast/media/media-feature-wgt-view-mode.html
- a/WebCore/ChangeLog +51 lines
Lines 1-3 a/WebCore/ChangeLog_sec1
1
2010-06-08  MORITA Hajime  <morrita@google.com>
2
3
        Reviewed by NOBODY (OOPS!).
4
5
        [Mac] <meter> elements should be rendered as level indicators.        
6
        https://bugs.webkit.org/show_bug.cgi?id=40217
7
8
        Implemented RenderThemeMac::paintMeter() using NSLevelIndicatorCell.
9
        
10
        This change also added new -webkit-appearance values to select the
11
        style of level indicators:
12
        
13
        - relevancy-level-indicator,
14
        - continuous-capacity-level-indicator,
15
        - discrete-capacity-level-indicator, and 
16
        - rating-level-indicator.
17
        
18
        The size of elements are adjusted based on the bounds of the indicator
19
        to make room for painting whole indicator cells.
20
21
        Tests: fast/dom/HTMLMeterElement/meter-appearances-capacity.html
22
               fast/dom/HTMLMeterElement/meter-appearances-rating-relevancy.html
23
               fast/dom/HTMLMeterElement/meter-optimums.html
24
25
        * css/CSSPrimitiveValueMappings.h:
26
        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
27
        * css/CSSValueKeywords.in:
28
        * html/HTMLMeterElement.cpp:
29
        (WebCore::HTMLMeterElement::gaugeRegion):
30
        * html/HTMLMeterElement.h:
31
        (WebCore::HTMLMeterElement::):
32
        * platform/ThemeTypes.h:
33
        (WebCore::):
34
        * rendering/RenderMeter.cpp:
35
        (WebCore::RenderMeter::calcWidth):
36
        (WebCore::RenderMeter::calcHeight):
37
        * rendering/RenderMeter.h:
38
        * rendering/RenderTheme.cpp:
39
        (WebCore::RenderTheme::adjustStyle):
40
        (WebCore::RenderTheme::paint):
41
        (WebCore::RenderTheme::paintBorderOnly):
42
        (WebCore::RenderTheme::paintDecorations):
43
        (WebCore::RenderTheme::meterSizeForBounds):
44
        * rendering/RenderTheme.h:
45
        * rendering/RenderThemeMac.h:
46
        * rendering/RenderThemeMac.mm:
47
        (WebCore::RenderThemeMac::meterSizeForBounds):
48
        (WebCore::RenderThemeMac::paintMeter):
49
        (WebCore::RenderThemeMac::levelIndicatorStyleFor):
50
        (WebCore::RenderThemeMac::levelIndicatorFor):
51
1
2010-06-07  MORITA Hajime  <morrita@google.com>
52
2010-06-07  MORITA Hajime  <morrita@google.com>
2
        
53
        
3
        Reviewed by NOBODY (OOPS!).
54
        Reviewed by NOBODY (OOPS!).
- a/WebCore/css/CSSPrimitiveValueMappings.h +12 lines
Lines 278-283 template<> inline CSSPrimitiveValue::CSSPrimitiveValue(ControlPart e) a/WebCore/css/CSSPrimitiveValueMappings.h_sec1
278
        case MeterPart:
278
        case MeterPart:
279
            m_value.ident = CSSValueMeter;
279
            m_value.ident = CSSValueMeter;
280
            break;
280
            break;
281
        case RelevancyLevelIndicatorPart:
282
            m_value.ident = CSSValueRelevancyLevelIndicator;
283
            break;
284
        case ContinuousCapacityLevelIndicatorPart:
285
            m_value.ident = CSSValueContinuousCapacityLevelIndicator;
286
            break;
287
        case DiscreteCapacityLevelIndicatorPart:
288
            m_value.ident = CSSValueDiscreteCapacityLevelIndicator;
289
            break;
290
        case RatingLevelIndicatorPart:
291
            m_value.ident = CSSValueRatingLevelIndicator;
292
            break;
281
        case OuterSpinButtonPart:
293
        case OuterSpinButtonPart:
282
            m_value.ident = CSSValueOuterSpinButton;
294
            m_value.ident = CSSValueOuterSpinButton;
283
            break;
295
            break;
- a/WebCore/css/CSSValueKeywords.in -1 / +5 lines
Lines 604-611 searchfield-results-decoration a/WebCore/css/CSSValueKeywords.in_sec1
604
searchfield-results-button
604
searchfield-results-button
605
searchfield-cancel-button
605
searchfield-cancel-button
606
textfield
606
textfield
607
textarea
608
caps-lock-indicator
607
caps-lock-indicator
608
relevancy-level-indicator
609
continuous-capacity-level-indicator
610
discrete-capacity-level-indicator
611
rating-level-indicator
612
textarea
609
613
610
#
614
#
611
# CSS_PROP_BORDER_IMAGE
615
# CSS_PROP_BORDER_IMAGE
- a/WebCore/html/HTMLMeterElement.cpp +33 lines
Lines 162-166 void HTMLMeterElement::setOptimum(double optimum, ExceptionCode& ec) a/WebCore/html/HTMLMeterElement.cpp_sec1
162
    setAttribute(optimumAttr, String::number(optimum));
162
    setAttribute(optimumAttr, String::number(optimum));
163
}
163
}
164
164
165
HTMLMeterElement::GaugeRegion HTMLMeterElement::gaugeRegion() const
166
{
167
    double lowValue = low();
168
    double highValue = high();
169
    double theValue = value();
170
    double optimumValue = optimum();
171
172
    if (optimumValue <= lowValue) {
173
        // The optimum range stays under low
174
        if (theValue <= lowValue)
175
            return GaugeRegionOptimum;
176
        if (theValue <= highValue)
177
            return GaugeRegionSuboptimal;
178
        return GaugeRegionEvenLessGood;
179
    }
180
    
181
    if (highValue <= optimumValue) {
182
        // The optimum range stays over high
183
        if (highValue <= theValue)
184
            return GaugeRegionOptimum;
185
        if (lowValue <= theValue)
186
            return GaugeRegionSuboptimal;
187
        return GaugeRegionEvenLessGood;
188
    }
189
190
    // The optimum range stays between high and low
191
    if (lowValue < highValue && theValue < highValue)
192
        return GaugeRegionOptimum;
193
    if (theValue == min() || max() == theValue)
194
        return GaugeRegionEvenLessGood;
195
    return GaugeRegionSuboptimal;
196
}
197
165
} // namespace
198
} // namespace
166
#endif
199
#endif
- a/WebCore/html/HTMLMeterElement.h +7 lines
Lines 30-35 class HTMLMeterElement : public HTMLFormControlElement { a/WebCore/html/HTMLMeterElement.h_sec1
30
public:
30
public:
31
    static PassRefPtr<HTMLMeterElement> create(const QualifiedName&, Document*);
31
    static PassRefPtr<HTMLMeterElement> create(const QualifiedName&, Document*);
32
32
33
    enum GaugeRegion {
34
        GaugeRegionOptimum,
35
        GaugeRegionSuboptimal,
36
        GaugeRegionEvenLessGood
37
    };
38
33
    double min() const;
39
    double min() const;
34
    void setMin(double, ExceptionCode&);
40
    void setMin(double, ExceptionCode&);
35
41
Lines 48-53 public: a/WebCore/html/HTMLMeterElement.h_sec2
48
    double optimum() const;
54
    double optimum() const;
49
    void setOptimum(double, ExceptionCode&);
55
    void setOptimum(double, ExceptionCode&);
50
56
57
    GaugeRegion gaugeRegion() const;
51
private:
58
private:
52
    HTMLMeterElement(const QualifiedName&, Document*);
59
    HTMLMeterElement(const QualifiedName&, Document*);
53
60
- a/WebCore/platform/ThemeTypes.h -1 / +3 lines
Lines 56-62 enum ControlPart { a/WebCore/platform/ThemeTypes.h_sec1
56
    SliderHorizontalPart, SliderVerticalPart, SliderThumbHorizontalPart,
56
    SliderHorizontalPart, SliderVerticalPart, SliderThumbHorizontalPart,
57
    SliderThumbVerticalPart, CaretPart, SearchFieldPart, SearchFieldDecorationPart,
57
    SliderThumbVerticalPart, CaretPart, SearchFieldPart, SearchFieldDecorationPart,
58
    SearchFieldResultsDecorationPart, SearchFieldResultsButtonPart,
58
    SearchFieldResultsDecorationPart, SearchFieldResultsButtonPart,
59
    SearchFieldCancelButtonPart, TextFieldPart, TextAreaPart, CapsLockIndicatorPart
59
    SearchFieldCancelButtonPart, TextFieldPart, CapsLockIndicatorPart,
60
    RelevancyLevelIndicatorPart, ContinuousCapacityLevelIndicatorPart, DiscreteCapacityLevelIndicatorPart, RatingLevelIndicatorPart,
61
    TextAreaPart
60
};
62
};
61
63
62
enum SelectionPart {
64
enum SelectionPart {
- a/WebCore/rendering/RenderMeter.cpp +12 lines
Lines 37-42 RenderMeter::RenderMeter(HTMLMeterElement* element) a/WebCore/rendering/RenderMeter.cpp_sec1
37
{
37
{
38
}
38
}
39
39
40
void RenderMeter::calcWidth()
41
{
42
    RenderBox::calcWidth();
43
    setWidth(theme()->meterSizeForBounds(this, frameRect()).width());
44
}
45
46
void RenderMeter::calcHeight()
47
{
48
    RenderBox::calcHeight();
49
    setHeight(theme()->meterSizeForBounds(this, frameRect()).height());
50
}
51
40
void RenderMeter::layout()
52
void RenderMeter::layout()
41
{
53
{
42
    ASSERT(needsLayout());
54
    ASSERT(needsLayout());
- a/WebCore/rendering/RenderMeter.h +2 lines
Lines 38-43 private: a/WebCore/rendering/RenderMeter.h_sec1
38
    virtual bool isMeter() const { return true; }
38
    virtual bool isMeter() const { return true; }
39
    virtual void layout();
39
    virtual void layout();
40
    virtual void updateFromElement();
40
    virtual void updateFromElement();
41
    virtual void calcWidth();
42
    virtual void calcHeight();
41
};
43
};
42
44
43
inline RenderMeter* toRenderMeter(RenderObject* object)
45
inline RenderMeter* toRenderMeter(RenderObject* object)
- a/WebCore/rendering/RenderTheme.cpp +21 lines
Lines 222-227 void RenderTheme::adjustStyle(CSSStyleSelector* selector, RenderStyle* style, El a/WebCore/rendering/RenderTheme.cpp_sec1
222
#endif
222
#endif
223
#if ENABLE(METER_TAG)
223
#if ENABLE(METER_TAG)
224
        case MeterPart:
224
        case MeterPart:
225
        case RelevancyLevelIndicatorPart:
226
        case ContinuousCapacityLevelIndicatorPart:
227
        case DiscreteCapacityLevelIndicatorPart:
228
        case RatingLevelIndicatorPart:
225
            return adjustMeterStyle(selector, style, e);
229
            return adjustMeterStyle(selector, style, e);
226
#endif
230
#endif
227
        default:
231
        default:
Lines 284-289 bool RenderTheme::paint(RenderObject* o, const RenderObject::PaintInfo& paintInf a/WebCore/rendering/RenderTheme.cpp_sec2
284
            return paintMenuList(o, paintInfo, r);
288
            return paintMenuList(o, paintInfo, r);
285
#if ENABLE(METER_TAG)
289
#if ENABLE(METER_TAG)
286
        case MeterPart:
290
        case MeterPart:
291
        case RelevancyLevelIndicatorPart:
292
        case ContinuousCapacityLevelIndicatorPart:
293
        case DiscreteCapacityLevelIndicatorPart:
294
        case RatingLevelIndicatorPart:
287
            return paintMeter(o, paintInfo, r);
295
            return paintMeter(o, paintInfo, r);
288
#endif
296
#endif
289
#if ENABLE(PROGRESS_TAG)
297
#if ENABLE(PROGRESS_TAG)
Lines 382-387 bool RenderTheme::paintBorderOnly(RenderObject* o, const RenderObject::PaintInfo a/WebCore/rendering/RenderTheme.cpp_sec3
382
        case MenulistPart:
390
        case MenulistPart:
383
#if ENABLE(METER_TAG)
391
#if ENABLE(METER_TAG)
384
        case MeterPart:
392
        case MeterPart:
393
        case RelevancyLevelIndicatorPart:
394
        case ContinuousCapacityLevelIndicatorPart:
395
        case DiscreteCapacityLevelIndicatorPart:
396
        case RatingLevelIndicatorPart:
385
#endif
397
#endif
386
#if ENABLE(PROGRESS_TAG)
398
#if ENABLE(PROGRESS_TAG)
387
        case ProgressBarPart:
399
        case ProgressBarPart:
Lines 423-428 bool RenderTheme::paintDecorations(RenderObject* o, const RenderObject::PaintInf a/WebCore/rendering/RenderTheme.cpp_sec4
423
        case MenulistPart:
435
        case MenulistPart:
424
#if ENABLE(METER_TAG)
436
#if ENABLE(METER_TAG)
425
        case MeterPart:
437
        case MeterPart:
438
        case RelevancyLevelIndicatorPart:
439
        case ContinuousCapacityLevelIndicatorPart:
440
        case DiscreteCapacityLevelIndicatorPart:
441
        case RatingLevelIndicatorPart:
426
#endif
442
#endif
427
#if ENABLE(PROGRESS_TAG)
443
#if ENABLE(PROGRESS_TAG)
428
        case ProgressBarPart:
444
        case ProgressBarPart:
Lines 893-898 void RenderTheme::adjustMeterStyle(CSSStyleSelector*, RenderStyle* style, Elemen a/WebCore/rendering/RenderTheme.cpp_sec5
893
    style->setBoxShadow(0);
909
    style->setBoxShadow(0);
894
}
910
}
895
911
912
IntSize RenderTheme::meterSizeForBounds(const RenderMeter*, const IntRect& bounds) const
913
{
914
    return bounds.size();
915
}
916
896
bool RenderTheme::paintMeter(RenderObject* renderObject, const RenderObject::PaintInfo& paintInfo, const IntRect& rect)
917
bool RenderTheme::paintMeter(RenderObject* renderObject, const RenderObject::PaintInfo& paintInfo, const IntRect& rect)
897
{
918
{
898
    if (!renderObject->isMeter())
919
    if (!renderObject->isMeter())
- a/WebCore/rendering/RenderTheme.h +7 lines
Lines 39-44 namespace WebCore { a/WebCore/rendering/RenderTheme.h_sec1
39
class Element;
39
class Element;
40
class PopupMenu;
40
class PopupMenu;
41
class RenderMenuList;
41
class RenderMenuList;
42
#if ENABLE(METER_TAG)
43
class RenderMeter;
44
#endif
42
#if ENABLE(PROGRESS_TAG)
45
#if ENABLE(PROGRESS_TAG)
43
class RenderProgress;
46
class RenderProgress;
44
#endif
47
#endif
Lines 190-195 public: a/WebCore/rendering/RenderTheme.h_sec2
190
    virtual String formatMediaControlsRemainingTime(float currentTime, float duration) const;
193
    virtual String formatMediaControlsRemainingTime(float currentTime, float duration) const;
191
#endif
194
#endif
192
195
196
#if ENABLE(METER_TAG)
197
    virtual IntSize meterSizeForBounds(const RenderMeter*, const IntRect&) const;
198
#endif
199
193
protected:
200
protected:
194
    // The platform selection color.
201
    // The platform selection color.
195
    virtual Color platformActiveSelectionBackgroundColor() const;
202
    virtual Color platformActiveSelectionBackgroundColor() const;
- a/WebCore/rendering/RenderThemeMac.h +11 lines
Lines 80-85 public: a/WebCore/rendering/RenderThemeMac.h_sec1
80
    
80
    
81
    virtual bool paintCapsLockIndicator(RenderObject*, const RenderObject::PaintInfo&, const IntRect&);
81
    virtual bool paintCapsLockIndicator(RenderObject*, const RenderObject::PaintInfo&, const IntRect&);
82
82
83
#if ENABLE(METER_TAG)
84
    virtual IntSize meterSizeForBounds(const RenderMeter*, const IntRect&) const;
85
    virtual bool paintMeter(RenderObject*, const RenderObject::PaintInfo&, const IntRect&);
86
#endif
87
83
#if ENABLE(PROGRESS_TAG)
88
#if ENABLE(PROGRESS_TAG)
84
    // Returns the repeat interval of the animation for the progress bar.
89
    // Returns the repeat interval of the animation for the progress bar.
85
    virtual double animationRepeatIntervalForProgressBar(RenderProgress*) const;
90
    virtual double animationRepeatIntervalForProgressBar(RenderProgress*) const;
Lines 201-212 private: a/WebCore/rendering/RenderThemeMac.h_sec2
201
    NSSliderCell* sliderThumbHorizontal() const;
206
    NSSliderCell* sliderThumbHorizontal() const;
202
    NSSliderCell* sliderThumbVertical() const;
207
    NSSliderCell* sliderThumbVertical() const;
203
208
209
#if ENABLE(METER_TAG)
210
    NSLevelIndicatorStyle levelIndicatorStyleFor(ControlPart) const;
211
    NSLevelIndicatorCell* levelIndicatorFor(const RenderMeter*) const;
212
#endif
213
204
private:
214
private:
205
    mutable RetainPtr<NSPopUpButtonCell> m_popupButton;
215
    mutable RetainPtr<NSPopUpButtonCell> m_popupButton;
206
    mutable RetainPtr<NSSearchFieldCell> m_search;
216
    mutable RetainPtr<NSSearchFieldCell> m_search;
207
    mutable RetainPtr<NSMenu> m_searchMenuTemplate;
217
    mutable RetainPtr<NSMenu> m_searchMenuTemplate;
208
    mutable RetainPtr<NSSliderCell> m_sliderThumbHorizontal;
218
    mutable RetainPtr<NSSliderCell> m_sliderThumbHorizontal;
209
    mutable RetainPtr<NSSliderCell> m_sliderThumbVertical;
219
    mutable RetainPtr<NSSliderCell> m_sliderThumbVertical;
220
    mutable RetainPtr<NSLevelIndicatorCell> m_levelIndicator;
210
221
211
    bool m_isSliderThumbHorizontalPressed;
222
    bool m_isSliderThumbHorizontalPressed;
212
    bool m_isSliderThumbVerticalPressed;
223
    bool m_isSliderThumbVerticalPressed;
- a/WebCore/rendering/RenderThemeMac.mm -1 / +99 lines
Lines 51-56 a/WebCore/rendering/RenderThemeMac.mm_sec1
51
51
52
#import "RenderProgress.h"
52
#import "RenderProgress.h"
53
53
54
#if ENABLE(METER_TAG)
55
#include "RenderMeter.h"
56
#include "HTMLMeterElement.h"
57
#endif
58
54
#ifdef BUILDING_ON_TIGER
59
#ifdef BUILDING_ON_TIGER
55
typedef int NSInteger;
60
typedef int NSInteger;
56
typedef unsigned NSUInteger;
61
typedef unsigned NSUInteger;
Lines 801-807 bool RenderThemeMac::paintMenuList(RenderObject* o, const RenderObject::PaintInf a/WebCore/rendering/RenderThemeMac.mm_sec2
801
806
802
    return false;
807
    return false;
803
}
808
}
804
   
809
810
#if ENABLE(METER_TAG)
811
812
IntSize RenderThemeMac::meterSizeForBounds(const RenderMeter* renderMeter, const IntRect& bounds) const
813
{
814
    if (NoControlPart == renderMeter->style()->appearance())
815
        return bounds.size();
816
817
    NSLevelIndicatorCell* cell = levelIndicatorFor(renderMeter);
818
    // Makes enough room for cell's intrinsic size.
819
    NSSize cellSize = [cell cellSizeForBounds:IntRect(IntPoint(), bounds.size())];
820
    return IntSize(bounds.width() < cellSize.width ? cellSize.width : bounds.width(),
821
                   bounds.height() < cellSize.height ? cellSize.height : bounds.height());
822
}
823
824
bool RenderThemeMac::paintMeter(RenderObject* renderObject, const RenderObject::PaintInfo& paintInfo, const IntRect& rect)
825
{
826
    if (!renderObject->isMeter())
827
        return true;
828
829
    // Becaue NSLevelIndicatorCell doesn't support vertical gauge, we use a portable version 
830
    if (rect.width() < rect.height())
831
        return RenderTheme::paintMeter(renderObject, paintInfo, rect);
832
833
    NSLevelIndicatorCell* cell = levelIndicatorFor(toRenderMeter(renderObject));
834
    paintInfo.context->save();
835
    [cell drawWithFrame:rect inView:documentViewFor(renderObject)];
836
    [cell setControlView:nil];
837
    paintInfo.context->restore();
838
839
    return false;
840
}
841
842
NSLevelIndicatorStyle RenderThemeMac::levelIndicatorStyleFor(ControlPart part) const
843
{
844
    switch (part) {
845
    case RelevancyLevelIndicatorPart:
846
        return NSRelevancyLevelIndicatorStyle;
847
    case DiscreteCapacityLevelIndicatorPart:
848
        return NSDiscreteCapacityLevelIndicatorStyle;
849
    case RatingLevelIndicatorPart:
850
        return NSRatingLevelIndicatorStyle;
851
    case MeterPart:
852
    case ContinuousCapacityLevelIndicatorPart:
853
    default:
854
        return NSContinuousCapacityLevelIndicatorStyle;
855
    }
856
    
857
}
858
859
NSLevelIndicatorCell* RenderThemeMac::levelIndicatorFor(const RenderMeter* renderMeter) const
860
{
861
    RenderStyle* style = renderMeter->style();
862
    ASSERT(style->appearance() != NoControlPart);
863
864
    if (!m_levelIndicator)
865
        m_levelIndicator.adoptNS([[NSLevelIndicatorCell alloc] initWithLevelIndicatorStyle:NSContinuousCapacityLevelIndicatorStyle]);
866
    NSLevelIndicatorCell* cell = m_levelIndicator.get();
867
868
    HTMLMeterElement* element = static_cast<HTMLMeterElement*>(renderMeter->node());
869
    double value = element->value();
870
871
    // Because NSLevelIndicatorCell does not support optimum-in-the-middle type coloring,
872
    // we explicitly control the color instead giving low and high value to NSLevelIndicatorCell as is.
873
    switch (element->gaugeRegion()) {
874
    case HTMLMeterElement::GaugeRegionOptimum:
875
        // Make meter the green
876
        [cell setWarningValue:value + 1];
877
        [cell setCriticalValue:value + 2];
878
        break;
879
    case HTMLMeterElement::GaugeRegionSuboptimal:
880
        // Make the meter yellow
881
        [cell setWarningValue:value - 1];
882
        [cell setCriticalValue:value + 1];
883
        break;
884
    case HTMLMeterElement::GaugeRegionEvenLessGood:
885
        // Make the meter red
886
        [cell setWarningValue:value - 2];
887
        [cell setCriticalValue:value - 1];
888
        break;
889
    }
890
891
    [cell setLevelIndicatorStyle:levelIndicatorStyleFor(style->appearance())];
892
    [cell setBaseWritingDirection:style->direction() == LTR ? NSWritingDirectionLeftToRight : NSWritingDirectionRightToLeft];
893
    [cell setMinValue:element->min()];
894
    [cell setMaxValue:element->max()];
895
    RetainPtr<NSNumber> valueObject = [NSNumber numberWithDouble:value];
896
    [cell setObjectValue:valueObject.get()];
897
898
    return cell;
899
}
900
901
#endif
902
805
#if ENABLE(PROGRESS_TAG)
903
#if ENABLE(PROGRESS_TAG)
806
904
807
double RenderThemeMac::animationRepeatIntervalForProgressBar(RenderProgress*) const
905
double RenderThemeMac::animationRepeatIntervalForProgressBar(RenderProgress*) const

Return to Bug 40217