<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[180490] trunk</title>
</head>
<body>
<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; }
#msg dl a { font-weight: bold}
#msg dl a:link { color:#fc3; }
#msg dl a:active { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/180490">180490</a></dd>
<dt>Author</dt> <dd>weinig@apple.com</dd>
<dt>Date</dt> <dd>2015-02-22 15:33:21 -0800 (Sun, 22 Feb 2015)</dd>
</dl>
<h3>Log Message</h3>
<pre>Convert the caps lock indicator to be implemented using the shadow DOM
https://bugs.webkit.org/show_bug.cgi?id=141868
Reviewed by Dan Bernstein.
Source/WebCore:
- Re-adds 'caps-lock-indicator' as a valid -webkit-appearance value. It was removed
in <a href="http://trac.webkit.org/projects/webkit/changeset/74099">r74099</a> to work around a site bug, that should not be a problem anymore.
- Converts the caps lock indicator to be implemented as part of the shadow DOM rather
than a paint time effect. This gives the proper overflow behavior (it now clips) and
behaves correctly in RTL.
* css/CSSParser.cpp:
(WebCore::isValidKeywordPropertyAndValue):
Make 'caps-lock-indicator' a valid -webkit-appearance value.
* css/CSSValueKeywords.in:
Remove comment that indicated that caps-lock-indicator was not a valid
-webkit-appearance value.
* css/html.css:
(input::-webkit-caps-lock-indicator):
Add new default style for the new -webkit-caps-lock-indicator pseudo-element. The
trick employed here is to use a content: image to both implement the painting of
the caps lock indicator, and to get the sizing right (shrink-to-fit, height: 100%).
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::capsLockIndicatorElement):
(WebCore::HTMLInputElement::capsLockStateMayHaveChanged):
* html/HTMLInputElement.h:
* html/InputType.cpp:
(WebCore::InputType::capsLockStateMayHaveChanged):
* html/InputType.h:
(WebCore::InputType::capsLockIndicatorElement):
Pipe notification of changes in the caps locks state to the <input> element
rather than the RenderTextControlSingleLine. Also add an accessor for the caps
lock indicator element in the shadow DOM.
* html/TextFieldInputType.cpp:
(WebCore::TextFieldInputType::forwardEvent):
(WebCore::TextFieldInputType::shouldHaveCapsLockIndicator):
(WebCore::TextFieldInputType::createShadowSubtree):
(WebCore::TextFieldInputType::capsLockIndicatorElement):
(WebCore::TextFieldInputType::destroyShadowSubtree):
(WebCore::TextFieldInputType::shouldDrawCapsLockIndicator):
(WebCore::TextFieldInputType::capsLockStateMayHaveChanged):
* html/TextFieldInputType.h:
Add a new element to the text field shadow DOM to act as the caps lock indicator.
Give it a pseudo-element ID of -webkit-caps-lock-indicator so it can be referenced
from CSS. The element is always in the DOM for a password field. It toggles between
display: none and display: block depending on the state of the caps lock key.
* page/EventHandler.cpp:
(WebCore::EventHandler::capsLockStateMayHaveChanged):
Pipe notification of changes in the caps locks state to the <input> element
rather than the RenderTextControlSingleLine.
* rendering/RenderTextControlSingleLine.cpp:
(WebCore::RenderTextControlSingleLine::RenderTextControlSingleLine):
(WebCore::RenderTextControlSingleLine::paint): Deleted.
(WebCore::RenderTextControlSingleLine::capsLockStateMayHaveChanged): Deleted.
* rendering/RenderTextControlSingleLine.h:
Remove logic for drawing the caps lock indicator.
* rendering/RenderTheme.cpp:
(WebCore::RenderTheme::adjustStyle):
(WebCore::RenderTheme::paint):
(WebCore::RenderTheme::paintMeter):
(WebCore::RenderTheme::adjustCapsLockIndicatorStyle):
(WebCore::RenderTheme::paintCapsLockIndicator):
(WebCore::RenderTheme::shouldHaveCapsLockIndicator):
* rendering/RenderTheme.h:
(WebCore::RenderTheme::paintCapsLockIndicator): Deleted.
* rendering/RenderThemeIOS.h:
* rendering/RenderThemeIOS.mm:
(WebCore::RenderThemeIOS::shouldHaveCapsLockIndicator):
* rendering/RenderThemeMac.h:
* rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::shouldHaveCapsLockIndicator):
(WebCore::RenderThemeMac::paintCapsLockIndicator): Deleted.
Now that the caps lock indicator is implemented like other aspects of form controls,
the theme code can be converted to be similar as well.
LayoutTests:
* fast/css/appearance-caps-lock-indicator-expected.txt:
* fast/css/appearance-caps-lock-indicator.html:
* platform/mac/fast/css/text-overflow-input-expected.txt:
* platform/mac/fast/forms/basic-inputs-expected.txt:
* platform/mac/fast/forms/input-appearance-height-expected.txt:
* platform/mac/fast/forms/input-value-expected.txt:
* platform/mac/fast/forms/placeholder-pseudo-style-expected.txt:
* platform/mac/fast/forms/validation-message-appearance-expected.txt:</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsfastcssappearancecapslockindicatorexpectedtxt">trunk/LayoutTests/fast/css/appearance-caps-lock-indicator-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastcssappearancecapslockindicatorhtml">trunk/LayoutTests/fast/css/appearance-caps-lock-indicator.html</a></li>
<li><a href="#trunkLayoutTestsplatformmacfastcsstextoverflowinputexpectedtxt">trunk/LayoutTests/platform/mac/fast/css/text-overflow-input-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformmacfastformsbasicinputsexpectedtxt">trunk/LayoutTests/platform/mac/fast/forms/basic-inputs-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformmacfastformsinputappearanceheightexpectedtxt">trunk/LayoutTests/platform/mac/fast/forms/input-appearance-height-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformmacfastformsinputvalueexpectedtxt">trunk/LayoutTests/platform/mac/fast/forms/input-value-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformmacfastformsplaceholderpseudostyleexpectedtxt">trunk/LayoutTests/platform/mac/fast/forms/placeholder-pseudo-style-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformmacfastformsvalidationmessageappearanceexpectedtxt">trunk/LayoutTests/platform/mac/fast/forms/validation-message-appearance-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformmacmavericksfastcsstextoverflowinputexpectedtxt">trunk/LayoutTests/platform/mac-mavericks/fast/css/text-overflow-input-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformmacmavericksfastformsbasicinputsexpectedtxt">trunk/LayoutTests/platform/mac-mavericks/fast/forms/basic-inputs-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformmacmavericksfastformsinputappearanceheightexpectedtxt">trunk/LayoutTests/platform/mac-mavericks/fast/forms/input-appearance-height-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformmacmavericksfastformsinputvalueexpectedtxt">trunk/LayoutTests/platform/mac-mavericks/fast/forms/input-value-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformmacmavericksfastformsplaceholderpseudostyleexpectedtxt">trunk/LayoutTests/platform/mac-mavericks/fast/forms/placeholder-pseudo-style-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformmacmavericksfastformsvalidationmessageappearanceexpectedtxt">trunk/LayoutTests/platform/mac-mavericks/fast/forms/validation-message-appearance-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformmacmaverickstablesmozilla_expected_failuresbugsbug926471expectedtxt">trunk/LayoutTests/platform/mac-mavericks/tables/mozilla_expected_failures/bugs/bug92647-1-expected.txt</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCorecssCSSParsercpp">trunk/Source/WebCore/css/CSSParser.cpp</a></li>
<li><a href="#trunkSourceWebCorecssCSSValueKeywordsin">trunk/Source/WebCore/css/CSSValueKeywords.in</a></li>
<li><a href="#trunkSourceWebCorecsshtmlcss">trunk/Source/WebCore/css/html.css</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLInputElementcpp">trunk/Source/WebCore/html/HTMLInputElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLInputElementh">trunk/Source/WebCore/html/HTMLInputElement.h</a></li>
<li><a href="#trunkSourceWebCorehtmlInputTypecpp">trunk/Source/WebCore/html/InputType.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlInputTypeh">trunk/Source/WebCore/html/InputType.h</a></li>
<li><a href="#trunkSourceWebCorehtmlTextFieldInputTypecpp">trunk/Source/WebCore/html/TextFieldInputType.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlTextFieldInputTypeh">trunk/Source/WebCore/html/TextFieldInputType.h</a></li>
<li><a href="#trunkSourceWebCorepageEventHandlercpp">trunk/Source/WebCore/page/EventHandler.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderTextControlSingleLinecpp">trunk/Source/WebCore/rendering/RenderTextControlSingleLine.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderTextControlSingleLineh">trunk/Source/WebCore/rendering/RenderTextControlSingleLine.h</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderThemecpp">trunk/Source/WebCore/rendering/RenderTheme.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderThemeh">trunk/Source/WebCore/rendering/RenderTheme.h</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderThemeIOSh">trunk/Source/WebCore/rendering/RenderThemeIOS.h</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderThemeIOSmm">trunk/Source/WebCore/rendering/RenderThemeIOS.mm</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderThemeMach">trunk/Source/WebCore/rendering/RenderThemeMac.h</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderThemeMacmm">trunk/Source/WebCore/rendering/RenderThemeMac.mm</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (180489 => 180490)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2015-02-22 20:22:09 UTC (rev 180489)
+++ trunk/LayoutTests/ChangeLog        2015-02-22 23:33:21 UTC (rev 180490)
</span><span class="lines">@@ -1,3 +1,19 @@
</span><ins>+2015-02-21 Sam Weinig <sam@webkit.org>
+
+ Convert the caps lock indicator to be implemented using the shadow DOM
+ https://bugs.webkit.org/show_bug.cgi?id=141868
+
+ Reviewed by Dan Bernstein.
+
+ * fast/css/appearance-caps-lock-indicator-expected.txt:
+ * fast/css/appearance-caps-lock-indicator.html:
+ * platform/mac/fast/css/text-overflow-input-expected.txt:
+ * platform/mac/fast/forms/basic-inputs-expected.txt:
+ * platform/mac/fast/forms/input-appearance-height-expected.txt:
+ * platform/mac/fast/forms/input-value-expected.txt:
+ * platform/mac/fast/forms/placeholder-pseudo-style-expected.txt:
+ * platform/mac/fast/forms/validation-message-appearance-expected.txt:
+
</ins><span class="cx"> 2015-02-22 David Kilzer <ddkilzer@apple.com>
</span><span class="cx">
</span><span class="cx"> [iOS] Gardening: Clean up timeout test for ios-simulator-{wk1,wk2}
</span></span></pre></div>
<a id="trunkLayoutTestsfastcssappearancecapslockindicatorexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/css/appearance-caps-lock-indicator-expected.txt (180489 => 180490)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css/appearance-caps-lock-indicator-expected.txt        2015-02-22 20:22:09 UTC (rev 180489)
+++ trunk/LayoutTests/fast/css/appearance-caps-lock-indicator-expected.txt        2015-02-22 23:33:21 UTC (rev 180490)
</span><span class="lines">@@ -1,3 +1,3 @@
</span><del>-Test that the CSS parser does not accept caps-lock-indicator as a -webkit-appearance value.
</del><ins>+Test that the CSS parser accepts caps-lock-indicator as a -webkit-appearance value.
</ins><span class="cx">
</span><span class="cx"> PASS
</span></span></pre></div>
<a id="trunkLayoutTestsfastcssappearancecapslockindicatorhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/css/appearance-caps-lock-indicator.html (180489 => 180490)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css/appearance-caps-lock-indicator.html        2015-02-22 20:22:09 UTC (rev 180489)
+++ trunk/LayoutTests/fast/css/appearance-caps-lock-indicator.html        2015-02-22 23:33:21 UTC (rev 180490)
</span><span class="lines">@@ -1,6 +1,5 @@
</span><span class="cx"> <p>
</span><del>- Test that the CSS parser does not accept <tt>caps-lock-indicator</tt> as a <tt>-webkit-appearance</tt>
- value.
</del><ins>+ Test that the CSS parser accepts <tt>caps-lock-indicator</tt> as a <tt>-webkit-appearance</tt> value.
</ins><span class="cx"> </p>
</span><span class="cx"> <p id="result">FAIL: Test did not run</p>
</span><span class="cx"> <div id="target" style="display: none; -webkit-appearance: caps-lock-indicator;"></div>
</span><span class="lines">@@ -9,5 +8,5 @@
</span><span class="cx"> testRunner.dumpAsText();
</span><span class="cx">
</span><span class="cx"> var appearance = document.getElementById("target").style.webkitAppearance;
</span><del>- document.getElementById("result").innerText = appearance === "" ? "PASS" : "FAIL: parsed as " + appearance;
</del><ins>+ document.getElementById("result").innerText = appearance === "caps-lock-indicator" ? "PASS" : "FAIL: parsed as " + appearance;
</ins><span class="cx"> </script>
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacfastcsstextoverflowinputexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/mac/fast/css/text-overflow-input-expected.txt (180489 => 180490)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/fast/css/text-overflow-input-expected.txt        2015-02-22 20:22:09 UTC (rev 180489)
+++ trunk/LayoutTests/platform/mac/fast/css/text-overflow-input-expected.txt        2015-02-22 23:33:21 UTC (rev 180490)
</span><span class="lines">@@ -31,6 +31,8 @@
</span><span class="cx"> RenderText {#text} at (615,20) size 5x18
</span><span class="cx"> text run at (615,20) width 5: " "
</span><span class="cx"> RenderTextControl {INPUT} at (621,20) size 137x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
</span><ins>+ RenderFlexibleBox {DIV} at (3,3) size 131x13
+ RenderBlock {DIV} at (0,0) size 131x13
</ins><span class="cx"> RenderBR {BR} at (759,20) size 1x18
</span><span class="cx"> RenderTextControl {INPUT} at (2,43) size 137x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
</span><span class="cx"> RenderText {#text} at (140,43) size 5x18
</span><span class="lines">@@ -53,6 +55,8 @@
</span><span class="cx"> RenderText {#text} at (615,43) size 5x18
</span><span class="cx"> text run at (615,43) width 5: " "
</span><span class="cx"> RenderTextControl {INPUT} at (621,43) size 137x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
</span><ins>+ RenderFlexibleBox {DIV} at (3,3) size 131x13
+ RenderBlock {DIV} at (0,0) size 131x13
</ins><span class="cx"> RenderText {#text} at (0,0) size 0x0
</span><span class="cx"> RenderBlock {P} at (0,114) size 784x64
</span><span class="cx"> RenderText {#text} at (0,0) size 546x18
</span><span class="lines">@@ -79,6 +83,8 @@
</span><span class="cx"> RenderText {#text} at (615,20) size 5x18
</span><span class="cx"> text run at (615,20) width 5: " "
</span><span class="cx"> RenderTextControl {INPUT} at (621,20) size 137x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
</span><ins>+ RenderFlexibleBox {DIV} at (3,3) size 131x13
+ RenderBlock {DIV} at (0,0) size 131x13
</ins><span class="cx"> RenderBR {BR} at (759,20) size 1x18
</span><span class="cx"> RenderTextControl {INPUT} at (2,43) size 137x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
</span><span class="cx"> RenderText {#text} at (140,43) size 5x18
</span><span class="lines">@@ -101,6 +107,8 @@
</span><span class="cx"> RenderText {#text} at (615,43) size 5x18
</span><span class="cx"> text run at (615,43) width 5: " "
</span><span class="cx"> RenderTextControl {INPUT} at (621,43) size 137x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
</span><ins>+ RenderFlexibleBox {DIV} at (3,3) size 131x13
+ RenderBlock {DIV} at (0,0) size 131x13
</ins><span class="cx"> RenderText {#text} at (0,0) size 0x0
</span><span class="cx"> RenderBlock {P} at (0,194) size 784x64
</span><span class="cx"> RenderText {#text} at (0,0) size 237x18
</span><span class="lines">@@ -145,7 +153,7 @@
</span><span class="cx"> RenderText {#text} at (0,0) size 291x13
</span><span class="cx"> text run at (0,0) width 291: "Lorem ipsum dolor sit amet, consectetur adipiscing elit"
</span><span class="cx"> layer at (632,73) size 130x13 scrollWidth 362
</span><del>- RenderBlock {DIV} at (3,3) size 131x13
</del><ins>+ RenderBlock {DIV} at (0,0) size 131x13
</ins><span class="cx"> RenderText {#text} at (0,0) size 361x13
</span><span class="cx"> text run at (0,0) width 361: "\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}"
</span><span class="cx"> layer at (13,96) size 130x13 scrollX 160 scrollWidth 291
</span><span class="lines">@@ -169,7 +177,7 @@
</span><span class="cx"> RenderText {#text} at (-160,0) size 292x13
</span><span class="cx"> text run at (-160,0) width 291: "Lorem ipsum dolor sit amet, consectetur adipiscing elit"
</span><span class="cx"> layer at (632,96) size 130x13 scrollX 230 scrollWidth 361
</span><del>- RenderBlock {DIV} at (3,3) size 131x13
</del><ins>+ RenderBlock {DIV} at (0,0) size 131x13
</ins><span class="cx"> RenderText {#text} at (-230,0) size 362x13
</span><span class="cx"> text run at (-230,0) width 361 RTL: "\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}"
</span><span class="cx"> layer at (13,153) size 130x13 scrollWidth 291
</span><span class="lines">@@ -193,7 +201,7 @@
</span><span class="cx"> RenderText {#text} at (0,0) size 291x13
</span><span class="cx"> text run at (0,0) width 291: "Lorem ipsum dolor sit amet, consectetur adipiscing elit"
</span><span class="cx"> layer at (632,153) size 130x13 scrollWidth 362
</span><del>- RenderBlock {DIV} at (3,3) size 131x13
</del><ins>+ RenderBlock {DIV} at (0,0) size 131x13
</ins><span class="cx"> RenderText {#text} at (0,0) size 361x13
</span><span class="cx"> text run at (0,0) width 361: "\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}"
</span><span class="cx"> layer at (13,176) size 130x13 scrollX 160 scrollWidth 291
</span><span class="lines">@@ -217,7 +225,7 @@
</span><span class="cx"> RenderText {#text} at (-160,0) size 292x13
</span><span class="cx"> text run at (-160,0) width 291: "Lorem ipsum dolor sit amet, consectetur adipiscing elit"
</span><span class="cx"> layer at (632,176) size 130x13 scrollX 230 scrollWidth 361
</span><del>- RenderBlock {DIV} at (3,3) size 131x13
</del><ins>+ RenderBlock {DIV} at (0,0) size 131x13
</ins><span class="cx"> RenderText {#text} at (-230,0) size 362x13
</span><span class="cx"> text run at (-230,0) width 361 RTL: "\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}"
</span><span class="cx"> layer at (259,233) size 130x13 scrollWidth 291
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacfastformsbasicinputsexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/mac/fast/forms/basic-inputs-expected.txt (180489 => 180490)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/fast/forms/basic-inputs-expected.txt        2015-02-22 20:22:09 UTC (rev 180489)
+++ trunk/LayoutTests/platform/mac/fast/forms/basic-inputs-expected.txt        2015-02-22 23:33:21 UTC (rev 180490)
</span><span class="lines">@@ -43,9 +43,13 @@
</span><span class="cx"> text run at (316,3) width 13: "b "
</span><span class="cx"> text run at (328,3) width 8: "a"
</span><span class="cx"> RenderTextControl {INPUT} at (3,26) size 137x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
</span><ins>+ RenderFlexibleBox {DIV} at (3,3) size 131x13
+ RenderBlock {DIV} at (0,0) size 131x13
</ins><span class="cx"> RenderText {#text} at (141,26) size 65x18
</span><span class="cx"> text run at (141,26) width 65: "password "
</span><span class="cx"> RenderTextControl {INPUT} at (207,26) size 138x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
</span><ins>+ RenderFlexibleBox {DIV} at (3,3) size 131x13
+ RenderBlock {DIV} at (0,0) size 131x13
</ins><span class="cx"> RenderText {#text} at (346,26) size 9x18
</span><span class="cx"> text run at (346,26) width 9: "b"
</span><span class="cx"> RenderBlock {DIV} at (10,374) size 450x21 [border: (1px solid #FF0000)]
</span><span class="lines">@@ -75,10 +79,10 @@
</span><span class="cx"> RenderText {#text} at (0,0) size 18x13
</span><span class="cx"> text run at (0,0) width 18: "foo"
</span><span class="cx"> layer at (24,353) size 130x13
</span><del>- RenderBlock {DIV} at (3,3) size 131x13
</del><ins>+ RenderBlock {DIV} at (0,0) size 131x13
</ins><span class="cx"> RenderText {#text} at (0,0) size 20x13
</span><span class="cx"> text run at (0,0) width 20: "\x{2022}\x{2022}\x{2022}"
</span><span class="cx"> layer at (229,353) size 130x13
</span><del>- RenderBlock {DIV} at (3,3) size 131x13 [color=#545454]
</del><ins>+ RenderBlock {DIV} at (0,0) size 131x13 [color=#545454]
</ins><span class="cx"> RenderText {#text} at (0,0) size 20x13
</span><span class="cx"> text run at (0,0) width 20: "\x{2022}\x{2022}\x{2022}"
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacfastformsinputappearanceheightexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/mac/fast/forms/input-appearance-height-expected.txt (180489 => 180490)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/fast/forms/input-appearance-height-expected.txt        2015-02-22 20:22:09 UTC (rev 180489)
+++ trunk/LayoutTests/platform/mac/fast/forms/input-appearance-height-expected.txt        2015-02-22 23:33:21 UTC (rev 180490)
</span><span class="lines">@@ -83,6 +83,8 @@
</span><span class="cx"> RenderText {#text} at (0,214) size 65x18
</span><span class="cx"> text run at (0,214) width 65: "password "
</span><span class="cx"> RenderTextControl {INPUT} at (66,214) size 137x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
</span><ins>+ RenderFlexibleBox {DIV} at (3,3) size 131x13
+ RenderBlock {DIV} at (0,0) size 131x13
</ins><span class="cx"> RenderText {#text} at (204,214) size 5x18
</span><span class="cx"> text run at (204,214) width 5: " "
</span><span class="cx"> RenderBR {BR} at (208,228) size 1x0
</span><span class="lines">@@ -101,6 +103,6 @@
</span><span class="cx"> layer at (63,220) size 130x13
</span><span class="cx"> RenderBlock {DIV} at (3,3) size 131x13
</span><span class="cx"> layer at (77,243) size 130x13
</span><del>- RenderBlock {DIV} at (3,3) size 131x13
</del><ins>+ RenderBlock {DIV} at (0,0) size 131x13
</ins><span class="cx"> layer at (66,266) size 130x13
</span><span class="cx"> RenderBlock {DIV} at (0,0) size 131x13
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacfastformsinputvalueexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/mac/fast/forms/input-value-expected.txt (180489 => 180490)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/fast/forms/input-value-expected.txt        2015-02-22 20:22:09 UTC (rev 180489)
+++ trunk/LayoutTests/platform/mac/fast/forms/input-value-expected.txt        2015-02-22 23:33:21 UTC (rev 180490)
</span><span class="lines">@@ -46,6 +46,8 @@
</span><span class="cx"> text run at (1,1) width 248: "password with value property changed"
</span><span class="cx"> RenderTableCell {TD} at (396,27) size 228x25 [r=1 c=1 rs=1 cs=1]
</span><span class="cx"> RenderTextControl {INPUT} at (3,3) size 137x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
</span><ins>+ RenderFlexibleBox {DIV} at (3,3) size 131x13
+ RenderBlock {DIV} at (0,0) size 131x13
</ins><span class="cx"> RenderTableCell {TD} at (626,29) size 63x20 [r=1 c=2 rs=1 cs=1]
</span><span class="cx"> RenderText {#text} at (1,1) size 30x18
</span><span class="cx"> text run at (1,1) width 30: "after"
</span><span class="lines">@@ -205,7 +207,7 @@
</span><span class="cx"> RenderText {#text} at (0,0) size 34x13
</span><span class="cx"> text run at (0,0) width 34: "before"
</span><span class="cx"> layer at (410,161) size 130x13
</span><del>- RenderBlock {DIV} at (3,3) size 131x13
</del><ins>+ RenderBlock {DIV} at (0,0) size 131x13
</ins><span class="cx"> RenderText {#text} at (0,0) size 40x13
</span><span class="cx"> text run at (0,0) width 40: "\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}"
</span><span class="cx"> layer at (410,302) size 130x13
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacfastformsplaceholderpseudostyleexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/mac/fast/forms/placeholder-pseudo-style-expected.txt (180489 => 180490)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/fast/forms/placeholder-pseudo-style-expected.txt        2015-02-22 20:22:09 UTC (rev 180489)
+++ trunk/LayoutTests/platform/mac/fast/forms/placeholder-pseudo-style-expected.txt        2015-02-22 23:33:21 UTC (rev 180490)
</span><span class="lines">@@ -17,6 +17,8 @@
</span><span class="cx"> RenderText {#text} at (305,20) size 5x18
</span><span class="cx"> text run at (305,20) width 5: " "
</span><span class="cx"> RenderTextControl {INPUT} at (311,20) size 138x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
</span><ins>+ RenderFlexibleBox {DIV} at (3,3) size 131x13
+ RenderBlock {DIV} at (0,0) size 131x13
</ins><span class="cx"> RenderText {#text} at (450,20) size 5x18
</span><span class="cx"> text run at (450,20) width 5: " "
</span><span class="cx"> RenderTextControl {INPUT} at (456,20) size 137x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
</span><span class="lines">@@ -44,7 +46,7 @@
</span><span class="cx"> RenderText {#text} at (0,0) size 52x13
</span><span class="cx"> text run at (0,0) width 52: "password"
</span><span class="cx"> layer at (323,31) size 130x13
</span><del>- RenderBlock {DIV} at (3,3) size 131x13
</del><ins>+ RenderBlock {DIV} at (0,0) size 131x13
</ins><span class="cx"> layer at (467,31) size 130x13
</span><span class="cx"> RenderBlock {DIV} at (3,3) size 131x13 [color=#640000]
</span><span class="cx"> RenderText {#text} at (0,0) size 69x13
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacfastformsvalidationmessageappearanceexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/mac/fast/forms/validation-message-appearance-expected.txt (180489 => 180490)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/fast/forms/validation-message-appearance-expected.txt        2015-02-22 20:22:09 UTC (rev 180489)
+++ trunk/LayoutTests/platform/mac/fast/forms/validation-message-appearance-expected.txt        2015-02-22 23:33:21 UTC (rev 180490)
</span><span class="lines">@@ -5,6 +5,8 @@
</span><span class="cx"> RenderBody {BODY} at (8,8) size 784x23
</span><span class="cx"> RenderBlock {FORM} at (0,0) size 784x23
</span><span class="cx"> RenderTextControl {INPUT} at (2,2) size 137x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
</span><ins>+ RenderFlexibleBox {DIV} at (3,3) size 131x13
+ RenderBlock {DIV} at (0,0) size 131x13
</ins><span class="cx"> RenderText {#text} at (140,2) size 5x18
</span><span class="cx"> text run at (140,2) width 5: " "
</span><span class="cx"> RenderButton {INPUT} at (146,3) size 54x18 [bgcolor=#C0C0C0]
</span><span class="lines">@@ -13,7 +15,7 @@
</span><span class="cx"> text run at (0,0) width 38: "Submit"
</span><span class="cx"> RenderText {#text} at (0,0) size 0x0
</span><span class="cx"> layer at (13,13) size 130x13
</span><del>- RenderBlock {DIV} at (3,3) size 131x13
</del><ins>+ RenderBlock {DIV} at (0,0) size 131x13
</ins><span class="cx"> layer at (10,29) size 220x100
</span><span class="cx"> RenderBlock (positioned) zI: 2147483647 {DIV} at (10,29) size 220x100
</span><span class="cx"> layer at (10,29) size 220x16 scrollHeight 25
</span><span class="lines">@@ -34,4 +36,4 @@
</span><span class="cx"> text run at (0,32) width 112: "current password."
</span><span class="cx"> layer at (42,29) size 18x18 backgroundClip at (10,29) size 220x16 clip at (10,29) size 220x16 outlineClip at (10,29) size 220x16
</span><span class="cx"> RenderBlock (relative positioned) zI: 2147483645 {DIV} at (0,0) size 18x18 [bgcolor=#F8ECEC] [border: (2px solid #440000) none (2px solid #440000)]
</span><del>-caret: position 0 of child 0 {DIV} of {#document-fragment} of child 1 {INPUT} of child 0 {FORM} of body
</del><ins>+caret: position 0 of child 0 {DIV} of child 0 {DIV} of child 0 {DIV} of {#document-fragment} of child 1 {INPUT} of child 0 {FORM} of body
</ins></span></pre></div>
<a id="trunkLayoutTestsplatformmacmavericksfastcsstextoverflowinputexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/mac-mavericks/fast/css/text-overflow-input-expected.txt (180489 => 180490)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac-mavericks/fast/css/text-overflow-input-expected.txt        2015-02-22 20:22:09 UTC (rev 180489)
+++ trunk/LayoutTests/platform/mac-mavericks/fast/css/text-overflow-input-expected.txt        2015-02-22 23:33:21 UTC (rev 180490)
</span><span class="lines">@@ -30,6 +30,8 @@
</span><span class="cx"> RenderBlock {DIV} at (147,1) size 14x11
</span><span class="cx"> RenderText {#text} at (0,0) size 0x0
</span><span class="cx"> RenderTextControl {INPUT} at (2,43) size 146x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
</span><ins>+ RenderFlexibleBox {DIV} at (3,3) size 140x13
+ RenderBlock {DIV} at (0,0) size 140x13
</ins><span class="cx"> RenderBR {BR} at (149,43) size 1x18
</span><span class="cx"> RenderTextControl {INPUT} at (2,66) size 146x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
</span><span class="cx"> RenderText {#text} at (149,66) size 5x18
</span><span class="lines">@@ -51,6 +53,8 @@
</span><span class="cx"> RenderBlock {DIV} at (147,1) size 14x11
</span><span class="cx"> RenderText {#text} at (0,0) size 0x0
</span><span class="cx"> RenderTextControl {INPUT} at (2,89) size 146x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
</span><ins>+ RenderFlexibleBox {DIV} at (3,3) size 140x13
+ RenderBlock {DIV} at (0,0) size 140x13
</ins><span class="cx"> RenderText {#text} at (0,0) size 0x0
</span><span class="cx"> RenderBlock {P} at (0,160) size 784x110
</span><span class="cx"> RenderText {#text} at (0,0) size 546x18
</span><span class="lines">@@ -76,6 +80,8 @@
</span><span class="cx"> RenderBlock {DIV} at (147,1) size 14x11
</span><span class="cx"> RenderText {#text} at (0,0) size 0x0
</span><span class="cx"> RenderTextControl {INPUT} at (2,43) size 146x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
</span><ins>+ RenderFlexibleBox {DIV} at (3,3) size 140x13
+ RenderBlock {DIV} at (0,0) size 140x13
</ins><span class="cx"> RenderBR {BR} at (149,43) size 1x18
</span><span class="cx"> RenderTextControl {INPUT} at (2,66) size 146x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
</span><span class="cx"> RenderText {#text} at (149,66) size 5x18
</span><span class="lines">@@ -97,6 +103,8 @@
</span><span class="cx"> RenderBlock {DIV} at (147,1) size 14x11
</span><span class="cx"> RenderText {#text} at (0,0) size 0x0
</span><span class="cx"> RenderTextControl {INPUT} at (2,89) size 146x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
</span><ins>+ RenderFlexibleBox {DIV} at (3,3) size 140x13
+ RenderBlock {DIV} at (0,0) size 140x13
</ins><span class="cx"> RenderText {#text} at (0,0) size 0x0
</span><span class="cx"> RenderBlock {P} at (0,286) size 784x64
</span><span class="cx"> RenderText {#text} at (0,0) size 237x18
</span><span class="lines">@@ -141,7 +149,7 @@
</span><span class="cx"> RenderText {#text} at (0,0) size 293x13
</span><span class="cx"> text run at (0,0) width 293: "Lorem ipsum dolor sit amet, consectetur adipiscing elit"
</span><span class="cx"> layer at (13,96) size 139x13 scrollWidth 341
</span><del>- RenderBlock {DIV} at (3,3) size 140x13
</del><ins>+ RenderBlock {DIV} at (0,0) size 140x13
</ins><span class="cx"> RenderText {#text} at (0,0) size 340x13
</span><span class="cx"> text run at (0,0) width 340: "\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}"
</span><span class="cx"> layer at (13,119) size 139x13 scrollX 153 scrollWidth 293
</span><span class="lines">@@ -165,7 +173,7 @@
</span><span class="cx"> RenderText {#text} at (-153,0) size 294x13
</span><span class="cx"> text run at (-153,0) width 293: "Lorem ipsum dolor sit amet, consectetur adipiscing elit"
</span><span class="cx"> layer at (13,142) size 139x13 scrollX 200 scrollWidth 339
</span><del>- RenderBlock {DIV} at (3,3) size 140x13
</del><ins>+ RenderBlock {DIV} at (0,0) size 140x13
</ins><span class="cx"> RenderText {#text} at (-200,0) size 341x13
</span><span class="cx"> text run at (-200,0) width 340 RTL: "\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}"
</span><span class="cx"> layer at (13,199) size 139x13 scrollWidth 293
</span><span class="lines">@@ -189,7 +197,7 @@
</span><span class="cx"> RenderText {#text} at (0,0) size 293x13
</span><span class="cx"> text run at (0,0) width 293: "Lorem ipsum dolor sit amet, consectetur adipiscing elit"
</span><span class="cx"> layer at (13,222) size 139x13 scrollWidth 341
</span><del>- RenderBlock {DIV} at (3,3) size 140x13
</del><ins>+ RenderBlock {DIV} at (0,0) size 140x13
</ins><span class="cx"> RenderText {#text} at (0,0) size 340x13
</span><span class="cx"> text run at (0,0) width 340: "\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}"
</span><span class="cx"> layer at (13,245) size 139x13 scrollX 153 scrollWidth 293
</span><span class="lines">@@ -213,7 +221,7 @@
</span><span class="cx"> RenderText {#text} at (-153,0) size 294x13
</span><span class="cx"> text run at (-153,0) width 293: "Lorem ipsum dolor sit amet, consectetur adipiscing elit"
</span><span class="cx"> layer at (13,268) size 139x13 scrollX 200 scrollWidth 339
</span><del>- RenderBlock {DIV} at (3,3) size 140x13
</del><ins>+ RenderBlock {DIV} at (0,0) size 140x13
</ins><span class="cx"> RenderText {#text} at (-200,0) size 341x13
</span><span class="cx"> text run at (-200,0) width 340 RTL: "\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}"
</span><span class="cx"> layer at (259,325) size 139x13 scrollWidth 293
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacmavericksfastformsbasicinputsexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/mac-mavericks/fast/forms/basic-inputs-expected.txt (180489 => 180490)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac-mavericks/fast/forms/basic-inputs-expected.txt        2015-02-22 20:22:09 UTC (rev 180489)
+++ trunk/LayoutTests/platform/mac-mavericks/fast/forms/basic-inputs-expected.txt        2015-02-22 23:33:21 UTC (rev 180490)
</span><span class="lines">@@ -43,9 +43,13 @@
</span><span class="cx"> text run at (334,3) width 13: "b "
</span><span class="cx"> text run at (346,3) width 8: "a"
</span><span class="cx"> RenderTextControl {INPUT} at (3,26) size 146x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
</span><ins>+ RenderFlexibleBox {DIV} at (3,3) size 140x13
+ RenderBlock {DIV} at (0,0) size 140x13
</ins><span class="cx"> RenderText {#text} at (150,26) size 65x18
</span><span class="cx"> text run at (150,26) width 65: "password "
</span><span class="cx"> RenderTextControl {INPUT} at (216,26) size 146x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
</span><ins>+ RenderFlexibleBox {DIV} at (3,3) size 140x13
+ RenderBlock {DIV} at (0,0) size 140x13
</ins><span class="cx"> RenderText {#text} at (363,26) size 9x18
</span><span class="cx"> text run at (363,26) width 9: "b"
</span><span class="cx"> RenderBlock {DIV} at (10,374) size 450x21 [border: (1px solid #FF0000)]
</span><span class="lines">@@ -75,10 +79,10 @@
</span><span class="cx"> RenderText {#text} at (0,0) size 18x13
</span><span class="cx"> text run at (0,0) width 18: "foo"
</span><span class="cx"> layer at (24,353) size 139x13
</span><del>- RenderBlock {DIV} at (3,3) size 140x13
</del><ins>+ RenderBlock {DIV} at (0,0) size 140x13
</ins><span class="cx"> RenderText {#text} at (0,0) size 19x13
</span><span class="cx"> text run at (0,0) width 19: "\x{2022}\x{2022}\x{2022}"
</span><span class="cx"> layer at (238,353) size 139x13
</span><del>- RenderBlock {DIV} at (3,3) size 140x13 [color=#545454]
</del><ins>+ RenderBlock {DIV} at (0,0) size 140x13 [color=#545454]
</ins><span class="cx"> RenderText {#text} at (0,0) size 19x13
</span><span class="cx"> text run at (0,0) width 19: "\x{2022}\x{2022}\x{2022}"
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacmavericksfastformsinputappearanceheightexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/mac-mavericks/fast/forms/input-appearance-height-expected.txt (180489 => 180490)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac-mavericks/fast/forms/input-appearance-height-expected.txt        2015-02-22 20:22:09 UTC (rev 180489)
+++ trunk/LayoutTests/platform/mac-mavericks/fast/forms/input-appearance-height-expected.txt        2015-02-22 23:33:21 UTC (rev 180490)
</span><span class="lines">@@ -83,6 +83,8 @@
</span><span class="cx"> RenderText {#text} at (0,214) size 65x18
</span><span class="cx"> text run at (0,214) width 65: "password "
</span><span class="cx"> RenderTextControl {INPUT} at (66,214) size 146x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
</span><ins>+ RenderFlexibleBox {DIV} at (3,3) size 140x13
+ RenderBlock {DIV} at (0,0) size 140x13
</ins><span class="cx"> RenderText {#text} at (213,214) size 5x18
</span><span class="cx"> text run at (213,214) width 5: " "
</span><span class="cx"> RenderBR {BR} at (217,228) size 1x0
</span><span class="lines">@@ -101,6 +103,6 @@
</span><span class="cx"> layer at (63,220) size 139x13
</span><span class="cx"> RenderBlock {DIV} at (3,3) size 140x13
</span><span class="cx"> layer at (77,243) size 139x13
</span><del>- RenderBlock {DIV} at (3,3) size 140x13
</del><ins>+ RenderBlock {DIV} at (0,0) size 140x13
</ins><span class="cx"> layer at (66,266) size 139x13
</span><span class="cx"> RenderBlock {DIV} at (0,0) size 140x13
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacmavericksfastformsinputvalueexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/mac-mavericks/fast/forms/input-value-expected.txt (180489 => 180490)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac-mavericks/fast/forms/input-value-expected.txt        2015-02-22 20:22:09 UTC (rev 180489)
+++ trunk/LayoutTests/platform/mac-mavericks/fast/forms/input-value-expected.txt        2015-02-22 23:33:21 UTC (rev 180490)
</span><span class="lines">@@ -46,6 +46,8 @@
</span><span class="cx"> text run at (1,1) width 248: "password with value property changed"
</span><span class="cx"> RenderTableCell {TD} at (396,27) size 243x25 [r=1 c=1 rs=1 cs=1]
</span><span class="cx"> RenderTextControl {INPUT} at (3,3) size 146x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
</span><ins>+ RenderFlexibleBox {DIV} at (3,3) size 140x13
+ RenderBlock {DIV} at (0,0) size 140x13
</ins><span class="cx"> RenderTableCell {TD} at (641,29) size 63x20 [r=1 c=2 rs=1 cs=1]
</span><span class="cx"> RenderText {#text} at (1,1) size 30x18
</span><span class="cx"> text run at (1,1) width 30: "after"
</span><span class="lines">@@ -205,7 +207,7 @@
</span><span class="cx"> RenderText {#text} at (0,0) size 35x13
</span><span class="cx"> text run at (0,0) width 35: "before"
</span><span class="cx"> layer at (410,161) size 139x13
</span><del>- RenderBlock {DIV} at (3,3) size 140x13
</del><ins>+ RenderBlock {DIV} at (0,0) size 140x13
</ins><span class="cx"> RenderText {#text} at (0,0) size 37x13
</span><span class="cx"> text run at (0,0) width 37: "\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}\x{2022}"
</span><span class="cx"> layer at (410,302) size 139x13
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacmavericksfastformsplaceholderpseudostyleexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/mac-mavericks/fast/forms/placeholder-pseudo-style-expected.txt (180489 => 180490)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac-mavericks/fast/forms/placeholder-pseudo-style-expected.txt        2015-02-22 20:22:09 UTC (rev 180489)
+++ trunk/LayoutTests/platform/mac-mavericks/fast/forms/placeholder-pseudo-style-expected.txt        2015-02-22 23:33:21 UTC (rev 180490)
</span><span class="lines">@@ -17,6 +17,8 @@
</span><span class="cx"> RenderText {#text} at (323,20) size 5x18
</span><span class="cx"> text run at (323,20) width 5: " "
</span><span class="cx"> RenderTextControl {INPUT} at (329,20) size 146x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
</span><ins>+ RenderFlexibleBox {DIV} at (3,3) size 140x13
+ RenderBlock {DIV} at (0,0) size 140x13
</ins><span class="cx"> RenderText {#text} at (476,20) size 5x18
</span><span class="cx"> text run at (476,20) width 5: " "
</span><span class="cx"> RenderTextControl {INPUT} at (482,20) size 146x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
</span><span class="lines">@@ -43,7 +45,7 @@
</span><span class="cx"> RenderText {#text} at (0,0) size 50x13
</span><span class="cx"> text run at (0,0) width 50: "password"
</span><span class="cx"> layer at (340,31) size 139x13
</span><del>- RenderBlock {DIV} at (3,3) size 140x13
</del><ins>+ RenderBlock {DIV} at (0,0) size 140x13
</ins><span class="cx"> layer at (493,31) size 139x13
</span><span class="cx"> RenderBlock {DIV} at (3,3) size 140x13 [color=#640000]
</span><span class="cx"> RenderText {#text} at (0,0) size 69x13
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacmavericksfastformsvalidationmessageappearanceexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/mac-mavericks/fast/forms/validation-message-appearance-expected.txt (180489 => 180490)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac-mavericks/fast/forms/validation-message-appearance-expected.txt        2015-02-22 20:22:09 UTC (rev 180489)
+++ trunk/LayoutTests/platform/mac-mavericks/fast/forms/validation-message-appearance-expected.txt        2015-02-22 23:33:21 UTC (rev 180490)
</span><span class="lines">@@ -5,6 +5,8 @@
</span><span class="cx"> RenderBody {BODY} at (8,8) size 784x23
</span><span class="cx"> RenderBlock {FORM} at (0,0) size 784x23
</span><span class="cx"> RenderTextControl {INPUT} at (2,2) size 146x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
</span><ins>+ RenderFlexibleBox {DIV} at (3,3) size 140x13
+ RenderBlock {DIV} at (0,0) size 140x13
</ins><span class="cx"> RenderText {#text} at (149,2) size 5x18
</span><span class="cx"> text run at (149,2) width 5: " "
</span><span class="cx"> RenderButton {INPUT} at (155,3) size 54x18 [bgcolor=#C0C0C0]
</span><span class="lines">@@ -13,7 +15,7 @@
</span><span class="cx"> text run at (0,0) width 38: "Submit"
</span><span class="cx"> RenderText {#text} at (0,0) size 0x0
</span><span class="cx"> layer at (13,13) size 139x13
</span><del>- RenderBlock {DIV} at (3,3) size 140x13
</del><ins>+ RenderBlock {DIV} at (0,0) size 140x13
</ins><span class="cx"> layer at (10,29) size 220x100
</span><span class="cx"> RenderBlock (positioned) zI: 2147483647 {DIV} at (10,29) size 220x100
</span><span class="cx"> layer at (10,29) size 220x16 scrollHeight 25
</span><span class="lines">@@ -34,4 +36,4 @@
</span><span class="cx"> text run at (0,32) width 137: "the current password."
</span><span class="cx"> layer at (42,29) size 18x18 backgroundClip at (10,29) size 220x16 clip at (10,29) size 220x16 outlineClip at (10,29) size 220x16
</span><span class="cx"> RenderBlock (relative positioned) zI: 2147483645 {DIV} at (0,0) size 18x18 [bgcolor=#F8ECEC] [border: (2px solid #440000) none (2px solid #440000)]
</span><del>-caret: position 0 of child 0 {DIV} of {#document-fragment} of child 1 {INPUT} of child 0 {FORM} of body
</del><ins>+caret: position 0 of child 0 {DIV} of child 0 {DIV} of child 0 {DIV} of {#document-fragment} of child 1 {INPUT} of child 0 {FORM} of body
</ins></span></pre></div>
<a id="trunkLayoutTestsplatformmacmaverickstablesmozilla_expected_failuresbugsbug926471expectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/mac-mavericks/tables/mozilla_expected_failures/bugs/bug92647-1-expected.txt (180489 => 180490)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac-mavericks/tables/mozilla_expected_failures/bugs/bug92647-1-expected.txt        2015-02-22 20:22:09 UTC (rev 180489)
+++ trunk/LayoutTests/platform/mac-mavericks/tables/mozilla_expected_failures/bugs/bug92647-1-expected.txt        2015-02-22 23:33:21 UTC (rev 180490)
</span><span class="lines">@@ -24,9 +24,11 @@
</span><span class="cx"> text run at (2,2) width 31: "PIN:"
</span><span class="cx"> RenderTableCell {TD} at (85,44) size 193x27 [border: (1px inset #808080)] [r=1 c=1 rs=1 cs=1]
</span><span class="cx"> RenderTextControl {INPUT} at (4,4) size 146x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
</span><ins>+ RenderFlexibleBox {DIV} at (3,3) size 140x13
+ RenderBlock {DIV} at (0,0) size 140x13
</ins><span class="cx"> RenderText {#text} at (0,0) size 0x0
</span><span class="cx"> RenderTableCell {TD} at (280,55) size 4x4 [border: (1px inset #808080)] [r=1 c=2 rs=1 cs=1]
</span><span class="cx"> layer at (107,30) size 139x13
</span><span class="cx"> RenderBlock {DIV} at (3,3) size 140x13
</span><span class="cx"> layer at (107,66) size 139x13
</span><del>- RenderBlock {DIV} at (3,3) size 140x13
</del><ins>+ RenderBlock {DIV} at (0,0) size 140x13
</ins></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (180489 => 180490)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2015-02-22 20:22:09 UTC (rev 180489)
+++ trunk/Source/WebCore/ChangeLog        2015-02-22 23:33:21 UTC (rev 180490)
</span><span class="lines">@@ -1,3 +1,87 @@
</span><ins>+2015-02-21 Sam Weinig <sam@webkit.org>
+
+ Convert the caps lock indicator to be implemented using the shadow DOM
+ https://bugs.webkit.org/show_bug.cgi?id=141868
+
+ Reviewed by Dan Bernstein.
+
+ - Re-adds 'caps-lock-indicator' as a valid -webkit-appearance value. It was removed
+ in r74099 to work around a site bug, that should not be a problem anymore.
+ - Converts the caps lock indicator to be implemented as part of the shadow DOM rather
+ than a paint time effect. This gives the proper overflow behavior (it now clips) and
+ behaves correctly in RTL.
+
+ * css/CSSParser.cpp:
+ (WebCore::isValidKeywordPropertyAndValue):
+ Make 'caps-lock-indicator' a valid -webkit-appearance value.
+
+ * css/CSSValueKeywords.in:
+ Remove comment that indicated that caps-lock-indicator was not a valid
+ -webkit-appearance value.
+
+ * css/html.css:
+ (input::-webkit-caps-lock-indicator):
+ Add new default style for the new -webkit-caps-lock-indicator pseudo-element. The
+ trick employed here is to use a content: image to both implement the painting of
+ the caps lock indicator, and to get the sizing right (shrink-to-fit, height: 100%).
+
+ * html/HTMLInputElement.cpp:
+ (WebCore::HTMLInputElement::capsLockIndicatorElement):
+ (WebCore::HTMLInputElement::capsLockStateMayHaveChanged):
+ * html/HTMLInputElement.h:
+ * html/InputType.cpp:
+ (WebCore::InputType::capsLockStateMayHaveChanged):
+ * html/InputType.h:
+ (WebCore::InputType::capsLockIndicatorElement):
+ Pipe notification of changes in the caps locks state to the <input> element
+ rather than the RenderTextControlSingleLine. Also add an accessor for the caps
+ lock indicator element in the shadow DOM.
+
+ * html/TextFieldInputType.cpp:
+ (WebCore::TextFieldInputType::forwardEvent):
+ (WebCore::TextFieldInputType::shouldHaveCapsLockIndicator):
+ (WebCore::TextFieldInputType::createShadowSubtree):
+ (WebCore::TextFieldInputType::capsLockIndicatorElement):
+ (WebCore::TextFieldInputType::destroyShadowSubtree):
+ (WebCore::TextFieldInputType::shouldDrawCapsLockIndicator):
+ (WebCore::TextFieldInputType::capsLockStateMayHaveChanged):
+ * html/TextFieldInputType.h:
+ Add a new element to the text field shadow DOM to act as the caps lock indicator.
+ Give it a pseudo-element ID of -webkit-caps-lock-indicator so it can be referenced
+ from CSS. The element is always in the DOM for a password field. It toggles between
+ display: none and display: block depending on the state of the caps lock key.
+
+ * page/EventHandler.cpp:
+ (WebCore::EventHandler::capsLockStateMayHaveChanged):
+ Pipe notification of changes in the caps locks state to the <input> element
+ rather than the RenderTextControlSingleLine.
+
+ * rendering/RenderTextControlSingleLine.cpp:
+ (WebCore::RenderTextControlSingleLine::RenderTextControlSingleLine):
+ (WebCore::RenderTextControlSingleLine::paint): Deleted.
+ (WebCore::RenderTextControlSingleLine::capsLockStateMayHaveChanged): Deleted.
+ * rendering/RenderTextControlSingleLine.h:
+ Remove logic for drawing the caps lock indicator.
+
+ * rendering/RenderTheme.cpp:
+ (WebCore::RenderTheme::adjustStyle):
+ (WebCore::RenderTheme::paint):
+ (WebCore::RenderTheme::paintMeter):
+ (WebCore::RenderTheme::adjustCapsLockIndicatorStyle):
+ (WebCore::RenderTheme::paintCapsLockIndicator):
+ (WebCore::RenderTheme::shouldHaveCapsLockIndicator):
+ * rendering/RenderTheme.h:
+ (WebCore::RenderTheme::paintCapsLockIndicator): Deleted.
+ * rendering/RenderThemeIOS.h:
+ * rendering/RenderThemeIOS.mm:
+ (WebCore::RenderThemeIOS::shouldHaveCapsLockIndicator):
+ * rendering/RenderThemeMac.h:
+ * rendering/RenderThemeMac.mm:
+ (WebCore::RenderThemeMac::shouldHaveCapsLockIndicator):
+ (WebCore::RenderThemeMac::paintCapsLockIndicator): Deleted.
+ Now that the caps lock indicator is implemented like other aspects of form controls,
+ the theme code can be converted to be similar as well.
+
</ins><span class="cx"> 2015-02-21 David Kilzer <ddkilzer@apple.com>
</span><span class="cx">
</span><span class="cx"> [iOS] Fix build failure after including CoreMediaSoftLink.h in WebVideoFullscreenInterfaceAVKit.mm
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSParsercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSParser.cpp (180489 => 180490)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSParser.cpp        2015-02-22 20:22:09 UTC (rev 180489)
+++ trunk/Source/WebCore/css/CSSParser.cpp        2015-02-22 23:33:21 UTC (rev 180490)
</span><span class="lines">@@ -807,7 +807,7 @@
</span><span class="cx"> return true;
</span><span class="cx"> break;
</span><span class="cx"> case CSSPropertyWebkitAppearance:
</span><del>- if ((valueID >= CSSValueCheckbox && valueID <= CSSValueTextarea) || valueID == CSSValueNone)
</del><ins>+ if ((valueID >= CSSValueCheckbox && valueID <= CSSValueCapsLockIndicator) || valueID == CSSValueNone)
</ins><span class="cx"> return true;
</span><span class="cx"> break;
</span><span class="cx"> case CSSPropertyWebkitBackfaceVisibility:
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSValueKeywordsin"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSValueKeywords.in (180489 => 180490)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSValueKeywords.in        2015-02-22 20:22:09 UTC (rev 180489)
+++ trunk/Source/WebCore/css/CSSValueKeywords.in        2015-02-22 23:33:21 UTC (rev 180490)
</span><span class="lines">@@ -745,7 +745,6 @@
</span><span class="cx"> image-controls-button
</span><span class="cx"> #endif
</span><span class="cx"> textarea
</span><del>-// An appearance value that should not be accepted by the parser:
</del><span class="cx"> caps-lock-indicator
</span><span class="cx">
</span><span class="cx"> //
</span></span></pre></div>
<a id="trunkSourceWebCorecsshtmlcss"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/html.css (180489 => 180490)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/html.css        2015-02-22 20:22:09 UTC (rev 180489)
+++ trunk/Source/WebCore/css/html.css        2015-02-22 23:33:21 UTC (rev 180490)
</span><span class="lines">@@ -544,6 +544,14 @@
</span><span class="cx"> -webkit-user-select: none;
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+input::-webkit-caps-lock-indicator {
+ -webkit-appearance: caps-lock-indicator;
+ content: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 17 17"><path fill="black" fill-opacity="0.4" d="M12.5 0.5A 4 4 0 0 1 16.5 4.5L 16.5 12.5A 4 4 0 0 1 12.5 16.5L 4.5 16.5A 4 4 0 0 1 0.5 12.5L 0.5 4.5A 4 4 0 0 1 4.5 0.5L 12.5 0.5M 8.5 2L 4 7L 6.25 7L 6.25 10.25L 10.75 10.25L 10.75 7L 13 7L 8.5 2M 10.75 12L 6.25 12L 6.25 14.25L 10.75 14.25L 10.75 12"/></svg>');
+ height: 100%;
+ -webkit-flex: none;
+ -webkit-user-select: none;
+}
+
</ins><span class="cx"> keygen, select {
</span><span class="cx"> border-radius: 5px;
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLInputElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLInputElement.cpp (180489 => 180490)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLInputElement.cpp        2015-02-22 20:22:09 UTC (rev 180489)
+++ trunk/Source/WebCore/html/HTMLInputElement.cpp        2015-02-22 23:33:21 UTC (rev 180490)
</span><span class="lines">@@ -199,6 +199,11 @@
</span><span class="cx"> return m_inputType->innerSpinButtonElement();
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+HTMLElement* HTMLInputElement::capsLockIndicatorElement() const
+{
+ return m_inputType->capsLockIndicatorElement();
+}
+
</ins><span class="cx"> HTMLElement* HTMLInputElement::resultsButtonElement() const
</span><span class="cx"> {
</span><span class="cx"> return m_inputType->resultsButtonElement();
</span><span class="lines">@@ -1901,4 +1906,9 @@
</span><span class="cx"> }
</span><span class="cx"> #endif
</span><span class="cx">
</span><ins>+void HTMLInputElement::capsLockStateMayHaveChanged()
+{
+ m_inputType->capsLockStateMayHaveChanged();
+}
+
</ins><span class="cx"> } // namespace
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLInputElementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLInputElement.h (180489 => 180490)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLInputElement.h        2015-02-22 20:22:09 UTC (rev 180489)
+++ trunk/Source/WebCore/html/HTMLInputElement.h        2015-02-22 23:33:21 UTC (rev 180490)
</span><span class="lines">@@ -147,6 +147,7 @@
</span><span class="cx"> virtual TextControlInnerTextElement* innerTextElement() const override final;
</span><span class="cx"> HTMLElement* innerBlockElement() const;
</span><span class="cx"> HTMLElement* innerSpinButtonElement() const;
</span><ins>+ HTMLElement* capsLockIndicatorElement() const;
</ins><span class="cx"> HTMLElement* resultsButtonElement() const;
</span><span class="cx"> HTMLElement* cancelButtonElement() const;
</span><span class="cx"> HTMLElement* sliderThumbElement() const;
</span><span class="lines">@@ -317,6 +318,8 @@
</span><span class="cx"> bool setupDateTimeChooserParameters(DateTimeChooserParameters&);
</span><span class="cx"> #endif
</span><span class="cx">
</span><ins>+ void capsLockStateMayHaveChanged();
+
</ins><span class="cx"> protected:
</span><span class="cx"> HTMLInputElement(const QualifiedName&, Document&, HTMLFormElement*, bool createdByParser);
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlInputTypecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/InputType.cpp (180489 => 180490)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/InputType.cpp        2015-02-22 20:22:09 UTC (rev 180489)
+++ trunk/Source/WebCore/html/InputType.cpp        2015-02-22 23:33:21 UTC (rev 180490)
</span><span class="lines">@@ -489,6 +489,10 @@
</span><span class="cx"> element().defaultBlur();
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+void InputType::capsLockStateMayHaveChanged()
+{
+}
+
</ins><span class="cx"> void InputType::createShadowSubtree()
</span><span class="cx"> {
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlInputTypeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/InputType.h (180489 => 180490)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/InputType.h        2015-02-22 20:22:09 UTC (rev 180489)
+++ trunk/Source/WebCore/html/InputType.h        2015-02-22 23:33:21 UTC (rev 180490)
</span><span class="lines">@@ -215,6 +215,8 @@
</span><span class="cx">
</span><span class="cx"> virtual void blur();
</span><span class="cx">
</span><ins>+ virtual void capsLockStateMayHaveChanged();
+
</ins><span class="cx"> // Shadow tree handling
</span><span class="cx">
</span><span class="cx"> virtual void createShadowSubtree();
</span><span class="lines">@@ -224,6 +226,7 @@
</span><span class="cx"> virtual HTMLElement* innerBlockElement() const { return nullptr; }
</span><span class="cx"> virtual TextControlInnerTextElement* innerTextElement() const { return nullptr; }
</span><span class="cx"> virtual HTMLElement* innerSpinButtonElement() const { return nullptr; }
</span><ins>+ virtual HTMLElement* capsLockIndicatorElement() const { return nullptr; }
</ins><span class="cx"> virtual HTMLElement* resultsButtonElement() const { return nullptr; }
</span><span class="cx"> virtual HTMLElement* cancelButtonElement() const { return nullptr; }
</span><span class="cx"> virtual HTMLElement* sliderThumbElement() const { return nullptr; }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlTextFieldInputTypecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/TextFieldInputType.cpp (180489 => 180490)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/TextFieldInputType.cpp        2015-02-22 20:22:09 UTC (rev 180489)
+++ trunk/Source/WebCore/html/TextFieldInputType.cpp        2015-02-22 23:33:21 UTC (rev 180490)
</span><span class="lines">@@ -43,6 +43,7 @@
</span><span class="cx"> #include "KeyboardEvent.h"
</span><span class="cx"> #include "NodeRenderStyle.h"
</span><span class="cx"> #include "Page.h"
</span><ins>+#include "PlatformKeyboardEvent.h"
</ins><span class="cx"> #include "RenderLayer.h"
</span><span class="cx"> #include "RenderTextControlSingleLine.h"
</span><span class="cx"> #include "RenderTheme.h"
</span><span class="lines">@@ -202,9 +203,9 @@
</span><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx">
</span><del>- renderTextControl.capsLockStateMayHaveChanged();
</del><ins>+ capsLockStateMayHaveChanged();
</ins><span class="cx"> } else if (event->type() == eventNames().focusEvent)
</span><del>- renderTextControl.capsLockStateMayHaveChanged();
</del><ins>+ capsLockStateMayHaveChanged();
</ins><span class="cx">
</span><span class="cx"> element().forwardEvent(event);
</span><span class="cx"> }
</span><span class="lines">@@ -240,6 +241,13 @@
</span><span class="cx"> return theme->shouldHaveSpinButton(element());
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+bool TextFieldInputType::shouldHaveCapsLockIndicator() const
+{
+ Document& document = element().document();
+ RefPtr<RenderTheme> theme = document.page() ? &document.page()->theme() : RenderTheme::defaultTheme();
+ return theme->shouldHaveCapsLockIndicator(element());
+}
+
</ins><span class="cx"> void TextFieldInputType::createShadowSubtree()
</span><span class="cx"> {
</span><span class="cx"> ASSERT(element().shadowRoot());
</span><span class="lines">@@ -250,7 +258,8 @@
</span><span class="cx">
</span><span class="cx"> Document& document = element().document();
</span><span class="cx"> bool shouldHaveSpinButton = this->shouldHaveSpinButton();
</span><del>- bool createsContainer = shouldHaveSpinButton || needsContainer();
</del><ins>+ bool shouldHaveCapsLockIndicator = this->shouldHaveCapsLockIndicator();
+ bool createsContainer = shouldHaveSpinButton || shouldHaveCapsLockIndicator || needsContainer();
</ins><span class="cx">
</span><span class="cx"> m_innerText = TextControlInnerTextElement::create(document);
</span><span class="cx"> if (!createsContainer) {
</span><span class="lines">@@ -274,6 +283,16 @@
</span><span class="cx"> m_innerSpinButton = SpinButtonElement::create(document, *this);
</span><span class="cx"> m_container->appendChild(m_innerSpinButton, IGNORE_EXCEPTION);
</span><span class="cx"> }
</span><ins>+
+ if (shouldHaveCapsLockIndicator) {
+ m_capsLockIndicator = HTMLDivElement::create(document);
+ m_capsLockIndicator->setPseudo(AtomicString("-webkit-caps-lock-indicator", AtomicString::ConstructFromLiteral));
+
+ bool shouldDrawCapsLockIndicator = this->shouldDrawCapsLockIndicator();
+ m_capsLockIndicator->setInlineStyleProperty(CSSPropertyDisplay, shouldDrawCapsLockIndicator ? CSSValueBlock : CSSValueNone, true);
+
+ m_container->appendChild(m_capsLockIndicator, IGNORE_EXCEPTION);
+ }
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> HTMLElement* TextFieldInputType::containerElement() const
</span><span class="lines">@@ -297,6 +316,11 @@
</span><span class="cx"> return m_innerSpinButton.get();
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+HTMLElement* TextFieldInputType::capsLockIndicatorElement() const
+{
+ return m_capsLockIndicator.get();
+}
+
</ins><span class="cx"> HTMLElement* TextFieldInputType::placeholderElement() const
</span><span class="cx"> {
</span><span class="cx"> return m_placeholder.get();
</span><span class="lines">@@ -305,13 +329,14 @@
</span><span class="cx"> void TextFieldInputType::destroyShadowSubtree()
</span><span class="cx"> {
</span><span class="cx"> InputType::destroyShadowSubtree();
</span><del>- m_innerText.clear();
- m_placeholder.clear();
- m_innerBlock.clear();
</del><ins>+ m_innerText = nullptr;
+ m_placeholder = nullptr;
+ m_innerBlock = nullptr;
</ins><span class="cx"> if (m_innerSpinButton)
</span><span class="cx"> m_innerSpinButton->removeSpinButtonOwner();
</span><del>- m_innerSpinButton.clear();
- m_container.clear();
</del><ins>+ m_innerSpinButton = nullptr;
+ m_capsLockIndicator = nullptr;
+ m_container = nullptr;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void TextFieldInputType::attributeChanged()
</span><span class="lines">@@ -514,4 +539,28 @@
</span><span class="cx"> return shouldSpinButtonRespondToMouseEvents() && element().focused();
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+bool TextFieldInputType::shouldDrawCapsLockIndicator() const
+{
+ if (element().document().focusedElement() != &element())
+ return false;
+
+ Frame* frame = element().document().frame();
+ if (!frame)
+ return false;
+
+ if (!frame->selection().isFocusedAndActive())
+ return false;
+
+ return PlatformKeyboardEvent::currentCapsLockState();
+}
+
+void TextFieldInputType::capsLockStateMayHaveChanged()
+{
+ if (!m_capsLockIndicator)
+ return;
+
+ bool shouldDrawCapsLockIndicator = this->shouldDrawCapsLockIndicator();
+ m_capsLockIndicator->setInlineStyleProperty(CSSPropertyDisplay, shouldDrawCapsLockIndicator ? CSSValueBlock : CSSValueNone, true);
+}
+
</ins><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlTextFieldInputTypeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/TextFieldInputType.h (180489 => 180490)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/TextFieldInputType.h        2015-02-22 20:22:09 UTC (rev 180489)
+++ trunk/Source/WebCore/html/TextFieldInputType.h        2015-02-22 23:33:21 UTC (rev 180490)
</span><span class="lines">@@ -52,10 +52,10 @@
</span><span class="cx"> virtual HTMLElement* innerBlockElement() const override final;
</span><span class="cx"> virtual TextControlInnerTextElement* innerTextElement() const override final;
</span><span class="cx"> virtual HTMLElement* innerSpinButtonElement() const override final;
</span><ins>+ virtual HTMLElement* capsLockIndicatorElement() const override final;
</ins><span class="cx">
</span><span class="cx"> protected:
</span><span class="cx"> virtual bool needsContainer() const;
</span><del>- virtual bool shouldHaveSpinButton() const final;
</del><span class="cx"> virtual void createShadowSubtree() override;
</span><span class="cx"> virtual void destroyShadowSubtree() override;
</span><span class="cx"> virtual void attributeChanged() override final;
</span><span class="lines">@@ -95,6 +95,7 @@
</span><span class="cx"> virtual void updatePlaceholderText() override final;
</span><span class="cx"> virtual bool appendFormData(FormDataList&, bool multipart) const override final;
</span><span class="cx"> virtual void subtreeHasChanged() override final;
</span><ins>+ virtual void capsLockStateMayHaveChanged() override final;
</ins><span class="cx">
</span><span class="cx"> // SpinButtonElement::SpinButtonOwner functions.
</span><span class="cx"> virtual void focusAndSelectSpinButtonOwner() override final;
</span><span class="lines">@@ -103,11 +104,16 @@
</span><span class="cx"> virtual void spinButtonStepDown() override final;
</span><span class="cx"> virtual void spinButtonStepUp() override final;
</span><span class="cx">
</span><ins>+ bool shouldHaveSpinButton() const;
+ bool shouldHaveCapsLockIndicator() const;
+ bool shouldDrawCapsLockIndicator() const;
+
</ins><span class="cx"> RefPtr<HTMLElement> m_container;
</span><span class="cx"> RefPtr<HTMLElement> m_innerBlock;
</span><span class="cx"> RefPtr<TextControlInnerTextElement> m_innerText;
</span><span class="cx"> RefPtr<HTMLElement> m_placeholder;
</span><span class="cx"> RefPtr<SpinButtonElement> m_innerSpinButton;
</span><ins>+ RefPtr<HTMLElement> m_capsLockIndicator;
</ins><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCorepageEventHandlercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/EventHandler.cpp (180489 => 180490)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/EventHandler.cpp        2015-02-22 20:22:09 UTC (rev 180489)
+++ trunk/Source/WebCore/page/EventHandler.cpp        2015-02-22 23:33:21 UTC (rev 180490)
</span><span class="lines">@@ -3645,10 +3645,8 @@
</span><span class="cx"> {
</span><span class="cx"> Document* document = m_frame.document();
</span><span class="cx"> if (auto* element = document->focusedElement()) {
</span><del>- if (auto* renderer = element->renderer()) {
- if (is<RenderTextControlSingleLine>(*renderer))
- downcast<RenderTextControlSingleLine>(*renderer).capsLockStateMayHaveChanged();
- }
</del><ins>+ if (is<HTMLInputElement>(*element))
+ downcast<HTMLInputElement>(*element).capsLockStateMayHaveChanged();
</ins><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderTextControlSingleLinecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderTextControlSingleLine.cpp (180489 => 180490)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderTextControlSingleLine.cpp        2015-02-22 20:22:09 UTC (rev 180489)
+++ trunk/Source/WebCore/rendering/RenderTextControlSingleLine.cpp        2015-02-22 23:33:21 UTC (rev 180490)
</span><span class="lines">@@ -55,7 +55,6 @@
</span><span class="cx">
</span><span class="cx"> RenderTextControlSingleLine::RenderTextControlSingleLine(HTMLInputElement& element, Ref<RenderStyle>&& style)
</span><span class="cx"> : RenderTextControl(element, WTF::move(style))
</span><del>- , m_shouldDrawCapsLockIndicator(false)
</del><span class="cx"> , m_desiredInnerTextLogicalHeight(-1)
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="lines">@@ -69,25 +68,6 @@
</span><span class="cx"> return inputElement().innerSpinButtonElement();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void RenderTextControlSingleLine::paint(PaintInfo& paintInfo, const LayoutPoint& paintOffset)
-{
- RenderTextControl::paint(paintInfo, paintOffset);
-
- if (paintInfo.phase == PaintPhaseBlockBackground && m_shouldDrawCapsLockIndicator) {
- LayoutRect contentsRect = contentBoxRect();
-
- // Center in the block progression direction.
- if (isHorizontalWritingMode())
- contentsRect.setY((height() - contentsRect.height()) / 2);
- else
- contentsRect.setX((width() - contentsRect.width()) / 2);
-
- // Convert the rect into the coords used for painting the content
- contentsRect.moveBy(paintOffset + location());
- theme().paintCapsLockIndicator(*this, paintInfo, snappedIntRect(contentsRect));
- }
-}
-
</del><span class="cx"> LayoutUnit RenderTextControlSingleLine::computeLogicalHeightLimit() const
</span><span class="cx"> {
</span><span class="cx"> return containerElement() ? contentLogicalHeight() : logicalHeight();
</span><span class="lines">@@ -277,25 +257,6 @@
</span><span class="cx"> setHasOverflowClip(false);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void RenderTextControlSingleLine::capsLockStateMayHaveChanged()
-{
- // Only draw the caps lock indicator if these things are true:
- // 1) The field is a password field
- // 2) The frame is active
- // 3) The element is focused
- // 4) The caps lock is on
- bool shouldDrawCapsLockIndicator =
- inputElement().isPasswordField()
- && frame().selection().isFocusedAndActive()
- && document().focusedElement() == &inputElement()
- && PlatformKeyboardEvent::currentCapsLockState();
-
- if (shouldDrawCapsLockIndicator != m_shouldDrawCapsLockIndicator) {
- m_shouldDrawCapsLockIndicator = shouldDrawCapsLockIndicator;
- repaint();
- }
-}
-
</del><span class="cx"> bool RenderTextControlSingleLine::hasControlClip() const
</span><span class="cx"> {
</span><span class="cx"> // Apply control clip for text fields with decorations.
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderTextControlSingleLineh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderTextControlSingleLine.h (180489 => 180490)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderTextControlSingleLine.h        2015-02-22 20:22:09 UTC (rev 180489)
+++ trunk/Source/WebCore/rendering/RenderTextControlSingleLine.h        2015-02-22 23:33:21 UTC (rev 180490)
</span><span class="lines">@@ -38,8 +38,6 @@
</span><span class="cx"> virtual Ref<RenderStyle> createInnerTextStyle(const RenderStyle* startStyle) const override;
</span><span class="cx"> Ref<RenderStyle> createInnerBlockStyle(const RenderStyle* startStyle) const;
</span><span class="cx">
</span><del>- void capsLockStateMayHaveChanged();
-
</del><span class="cx"> protected:
</span><span class="cx"> virtual void centerContainerIfNeeded(RenderBox*) const { }
</span><span class="cx"> virtual LayoutUnit computeLogicalHeightLimit() const;
</span><span class="lines">@@ -55,7 +53,6 @@
</span><span class="cx"> virtual LayoutRect controlClipRect(const LayoutPoint&) const override;
</span><span class="cx"> virtual bool isTextField() const override final { return true; }
</span><span class="cx">
</span><del>- virtual void paint(PaintInfo&, const LayoutPoint&) override;
</del><span class="cx"> virtual void layout() override;
</span><span class="cx">
</span><span class="cx"> virtual bool nodeAtPoint(const HitTestRequest&, HitTestResult&, const HitTestLocation& locationInContainer, const LayoutPoint& accumulatedOffset, HitTestAction) override;
</span><span class="lines">@@ -83,7 +80,6 @@
</span><span class="cx">
</span><span class="cx"> HTMLElement* innerSpinButtonElement() const;
</span><span class="cx">
</span><del>- bool m_shouldDrawCapsLockIndicator;
</del><span class="cx"> LayoutUnit m_desiredInnerTextLogicalHeight;
</span><span class="cx"> };
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderThemecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderTheme.cpp (180489 => 180490)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderTheme.cpp        2015-02-22 20:22:09 UTC (rev 180489)
+++ trunk/Source/WebCore/rendering/RenderTheme.cpp        2015-02-22 23:33:21 UTC (rev 180490)
</span><span class="lines">@@ -250,6 +250,8 @@
</span><span class="cx"> case ImageControlsButtonPart:
</span><span class="cx"> break;
</span><span class="cx"> #endif
</span><ins>+ case CapsLockIndicatorPart:
+ return adjustCapsLockIndicatorStyle(styleResolver, style, e);
</ins><span class="cx"> default:
</span><span class="cx"> break;
</span><span class="cx"> }
</span><span class="lines">@@ -386,6 +388,8 @@
</span><span class="cx"> case ImageControlsButtonPart:
</span><span class="cx"> return paintImageControlsButton(o, paintInfo, integralSnappedRect);
</span><span class="cx"> #endif
</span><ins>+ case CapsLockIndicatorPart:
+ return paintCapsLockIndicator(o, paintInfo, integralSnappedRect);
</ins><span class="cx"> default:
</span><span class="cx"> break;
</span><span class="cx"> }
</span><span class="lines">@@ -960,9 +964,17 @@
</span><span class="cx"> {
</span><span class="cx"> return true;
</span><span class="cx"> }
</span><del>-
</del><span class="cx"> #endif
</span><span class="cx">
</span><ins>+void RenderTheme::adjustCapsLockIndicatorStyle(StyleResolver&, RenderStyle&, Element*) const
+{
+}
+
+bool RenderTheme::paintCapsLockIndicator(const RenderObject&, const PaintInfo&, const IntRect&)
+{
+ return false;
+}
+
</ins><span class="cx"> #if ENABLE(DATALIST_ELEMENT)
</span><span class="cx"> LayoutUnit RenderTheme::sliderTickSnappingThreshold() const
</span><span class="cx"> {
</span><span class="lines">@@ -1076,6 +1088,11 @@
</span><span class="cx"> return inputElement.isSteppable() && !inputElement.isRangeControl();
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+bool RenderTheme::shouldHaveCapsLockIndicator(HTMLInputElement&) const
+{
+ return false;
+}
+
</ins><span class="cx"> void RenderTheme::adjustMenuListButtonStyle(StyleResolver&, RenderStyle&, Element*) const
</span><span class="cx"> {
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderThemeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderTheme.h (180489 => 180490)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderTheme.h        2015-02-22 20:22:09 UTC (rev 180489)
+++ trunk/Source/WebCore/rendering/RenderTheme.h        2015-02-22 23:33:21 UTC (rev 180490)
</span><span class="lines">@@ -188,9 +188,6 @@
</span><span class="cx">
</span><span class="cx"> virtual ScrollbarControlSize scrollbarControlSizeForPart(ControlPart) { return RegularScrollbar; }
</span><span class="cx">
</span><del>- // Method for painting the caps lock indicator
- virtual bool paintCapsLockIndicator(const RenderObject&, const PaintInfo&, const IntRect&) { return 0; };
-
</del><span class="cx"> // Returns the repeat interval of the animation for the progress bar.
</span><span class="cx"> virtual double animationRepeatIntervalForProgressBar(RenderProgress&) const;
</span><span class="cx"> // Returns the duration of the animation for the progress bar.
</span><span class="lines">@@ -232,6 +229,7 @@
</span><span class="cx">
</span><span class="cx"> virtual bool shouldShowPlaceholderWhenFocused() const { return false; }
</span><span class="cx"> virtual bool shouldHaveSpinButton(HTMLInputElement&) const;
</span><ins>+ virtual bool shouldHaveCapsLockIndicator(HTMLInputElement&) const;
</ins><span class="cx">
</span><span class="cx"> // Functions for <select> elements.
</span><span class="cx"> virtual bool delegatesMenuListRendering() const { return false; }
</span><span class="lines">@@ -314,6 +312,9 @@
</span><span class="cx"> virtual bool paintMeter(const RenderObject&, const PaintInfo&, const IntRect&);
</span><span class="cx"> #endif
</span><span class="cx">
</span><ins>+ virtual void adjustCapsLockIndicatorStyle(StyleResolver&, RenderStyle&, Element*) const;
+ virtual bool paintCapsLockIndicator(const RenderObject&, const PaintInfo&, const IntRect&);
+
</ins><span class="cx"> virtual void adjustProgressBarStyle(StyleResolver&, RenderStyle&, Element*) const;
</span><span class="cx"> virtual bool paintProgressBar(const RenderObject&, const PaintInfo&, const IntRect&) { return true; }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderThemeIOSh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderThemeIOS.h (180489 => 180490)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderThemeIOS.h        2015-02-22 20:22:09 UTC (rev 180489)
+++ trunk/Source/WebCore/rendering/RenderThemeIOS.h        2015-02-22 23:33:21 UTC (rev 180490)
</span><span class="lines">@@ -104,6 +104,7 @@
</span><span class="cx">
</span><span class="cx"> virtual bool shouldShowPlaceholderWhenFocused() const override;
</span><span class="cx"> virtual bool shouldHaveSpinButton(HTMLInputElement&) const override;
</span><ins>+ virtual bool shouldHaveCapsLockIndicator(HTMLInputElement&) const override;
</ins><span class="cx">
</span><span class="cx"> #if ENABLE(VIDEO)
</span><span class="cx"> virtual String mediaControlsStyleSheet() override;
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderThemeIOSmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderThemeIOS.mm (180489 => 180490)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderThemeIOS.mm        2015-02-22 20:22:09 UTC (rev 180489)
+++ trunk/Source/WebCore/rendering/RenderThemeIOS.mm        2015-02-22 23:33:21 UTC (rev 180490)
</span><span class="lines">@@ -1079,6 +1079,11 @@
</span><span class="cx"> return false;
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+bool RenderThemeIOS::shouldHaveCapsLockIndicator(HTMLInputElement&) const
+{
+ return false;
+}
+
</ins><span class="cx"> static FontWeight fromCTFontWeight(float fontWeight)
</span><span class="cx"> {
</span><span class="cx"> if (fontWeight <= -0.8)
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderThemeMach"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderThemeMac.h (180489 => 180490)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderThemeMac.h        2015-02-22 20:22:09 UTC (rev 180489)
+++ trunk/Source/WebCore/rendering/RenderThemeMac.h        2015-02-22 23:33:21 UTC (rev 180490)
</span><span class="lines">@@ -81,8 +81,6 @@
</span><span class="cx"> virtual int popupInternalPaddingBottom(RenderStyle&) const override;
</span><span class="cx"> virtual PopupMenuStyle::PopupMenuSize popupMenuSize(const RenderStyle&, IntRect&) const override;
</span><span class="cx">
</span><del>- virtual bool paintCapsLockIndicator(const RenderObject&, const PaintInfo&, const IntRect&) override;
-
</del><span class="cx"> virtual bool popsMenuByArrowKeys() const override { return true; }
</span><span class="cx">
</span><span class="cx"> #if ENABLE(METER_ELEMENT)
</span><span class="lines">@@ -165,6 +163,7 @@
</span><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> virtual bool shouldShowPlaceholderWhenFocused() const override;
</span><ins>+ virtual bool shouldHaveCapsLockIndicator(HTMLInputElement&) const override;
</ins><span class="cx">
</span><span class="cx"> virtual bool paintSnapshottedPluginOverlay(const RenderObject&, const PaintInfo&, const IntRect&) override;
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderThemeMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderThemeMac.mm (180489 => 180490)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderThemeMac.mm        2015-02-22 20:22:09 UTC (rev 180489)
+++ trunk/Source/WebCore/rendering/RenderThemeMac.mm        2015-02-22 23:33:21 UTC (rev 180490)
</span><span class="lines">@@ -827,17 +827,6 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><del>-bool RenderThemeMac::paintCapsLockIndicator(const RenderObject&, const PaintInfo& paintInfo, const IntRect& r)
-{
- if (paintInfo.context->paintingDisabled())
- return true;
-
- LocalCurrentGraphicsContext localContext(paintInfo.context);
- wkDrawCapsLockIndicator(localContext.cgContext(), r);
-
- return false;
-}
-
</del><span class="cx"> bool RenderThemeMac::paintTextArea(const RenderObject& o, const PaintInfo& paintInfo, const FloatRect& r)
</span><span class="cx"> {
</span><span class="cx"> LocalCurrentGraphicsContext localContext(paintInfo.context);
</span><span class="lines">@@ -1900,6 +1889,11 @@
</span><span class="cx"> return true;
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+bool RenderThemeMac::shouldHaveCapsLockIndicator(HTMLInputElement& element) const
+{
+ return element.isPasswordField();
+}
+
</ins><span class="cx"> NSPopUpButtonCell* RenderThemeMac::popupButton() const
</span><span class="cx"> {
</span><span class="cx"> if (!m_popupButton) {
</span></span></pre>
</div>
</div>
</body>
</html>