2011-02-06  Dominic Cooney  <dominicc@google.com>

        Reviewed by Dimitri Glazkov.

        Convert <keygen> option elements to a shadow DOM
        https://bugs.webkit.org/show_bug.cgi?id=51379

        * html5lib/runner-expected.txt: Two more tests pass.
        * platform/mac/fast/html/keygen-expected.txt: Shadow render tree.
        * platform/mac/fast/invalid/residual-style-expected.txt:
2011-02-03  Dominic Cooney  <dominicc@google.com>

        Reviewed by Dimitri Glazkov.

        Convert <keygen> option elements to a shadow DOM
        https://bugs.webkit.org/show_bug.cgi?id=51379

        Covered by existing tests e.g. fast/html/keygen.html,
        html5lib/runner.html, etc.

        * css/html.css:
        (form): Cleanup.
        (keygen, select): Border radii should match so focus ring looks good.
        (keygen::-webkit-keygen-select): No margin on the shadow element.
        (select): Hoisting border radius to keygen, select rule.
        * dom/SelectElement.cpp:
        (WebCore::toSelectElement): keygen is no longer a select element.
        * html/HTMLKeygenElement.cpp: Implements keygen shadow.
        (WebCore::KeygenSelectElement::create):
        (WebCore::KeygenSelectElement::shadowPseudoId):
        (WebCore::KeygenSelectElement::KeygenSelectElement):
        (WebCore::HTMLKeygenElement::HTMLKeygenElement):
        (WebCore::HTMLKeygenElement::parseMappedAttribute):
        (WebCore::HTMLKeygenElement::appendFormData):
        (WebCore::HTMLKeygenElement::formControlType):
        (WebCore::HTMLKeygenElement::reset):
        (WebCore::HTMLKeygenElement::selectShadow):
        * html/HTMLKeygenElement.h: keygen is no longer a select on C++ side.
        (WebCore::HTMLKeygenElement::canStartSelection):
        (WebCore::HTMLKeygenElement::isEnumeratable):
        (WebCore::HTMLKeygenElement::isResettable):
        * html/HTMLOptionElement.cpp:
        (WebCore::HTMLOptionElement::ownerSelectElement): Only owned by selects.
        * html/HTMLSelectElement.cpp:
        (WebCore::HTMLSelectElement::HTMLSelectElement): Only 'select' tag name.

git-svn-id: svn://svn.chromium.org/blink/trunk@77781 bbb929c8-8fbe-4397-9dbb-9b2b20218538
diff --git a/Source/WebCore/css/html.css b/Source/WebCore/css/html.css
index bc7a445..0f13fcb 100644
--- a/Source/WebCore/css/html.css
+++ b/Source/WebCore/css/html.css
@@ -323,7 +323,7 @@
 
 form {
     display: block;
-    margin-top: 0__qem
+    margin-top: 0__qem;
 }
 
 label {
@@ -433,6 +433,14 @@
     display: inline-block;
 }
 
+keygen, select {
+    -webkit-border-radius: 5px;
+}
+
+keygen::-webkit-keygen-select {
+    margin: 0px;
+}
+
 textarea {
     -webkit-appearance: textarea;
     background-color: white;
@@ -535,12 +543,11 @@
     -webkit-box-sizing: border-box;
 }
 
-keygen, select {
+select {
     -webkit-appearance: menulist;
     -webkit-box-sizing: border-box;
     -webkit-box-align: center;
     border: 1px solid;
-    -webkit-border-radius: 5px;
     white-space: pre;
     -webkit-rtl-ordering: logical;
     color: black;