Styling option should not override option:checked UA style

This adds !important to option:checked styles, so that styling option won't override the selected appearance.
This adds -internal-listbox which applies to listbox mode select elements.
We need it because we can't remove the !important styles for select[size=0], select[size=1]

BUG=398417

Review URL: https://codereview.chromium.org/450623002

git-svn-id: svn://svn.chromium.org/blink/trunk@179782 bbb929c8-8fbe-4397-9dbb-9b2b20218538
diff --git a/Source/core/css/html.css b/Source/core/css/html.css
index b1ad9ac..91f074a 100644
--- a/Source/core/css/html.css
+++ b/Source/core/css/html.css
@@ -757,9 +757,7 @@
     cursor: default;
 }
 
-select[size],
-select[multiple],
-select[size][multiple] {
+select:-internal-list-box {
     -webkit-appearance: listbox;
     align-items: flex-start;
     border: 1px inset gray;
@@ -771,21 +769,6 @@
     white-space: nowrap;
 }
 
-select[size="0"],
-select[size="1"] {
-    -webkit-appearance: menulist;
-    align-items: center;
-    border-width: 1px;
-    border-style: solid;
-    border-color: initial;
-    border-radius: 5px;
-    overflow-x: initial;
-    overflow-y: initial;
-    vertical-align: initial;
-    -webkit-user-select: initial;
-    white-space: pre;
-}
-
 optgroup {
     font-weight: bolder;
     display: block;
@@ -799,38 +782,21 @@
     min-height: 1.2em;
 }
 
-select:focus[size] option:checked,
-select:focus[multiple] option:checked,
-select:focus[size][multiple] option:checked {
-    background-color: -internal-active-list-box-selection;
-    color: -internal-active-list-box-selection-text;
+select:-internal-list-box:focus option:checked {
+    background-color: -internal-active-list-box-selection !important;
+    color: -internal-active-list-box-selection-text !important;
 }
 
-select[size] option:checked,
-select[multiple] option:checked,
-select[size][multiple] option:checked {
-    background-color: -internal-inactive-list-box-selection;
-    color: -internal-inactive-list-box-selection-text;
+select:-internal-list-box option:checked {
+    background-color: -internal-inactive-list-box-selection !important;
+    color: -internal-inactive-list-box-selection-text !important;
 }
 
-select[size="0"] option:checked,
-select[size="1"] option:checked,
-select:focus[size="0"] option:checked,
-select:focus[size="1"] option:checked {
-    background-color: initial;
-    color: initial;
+select:-internal-list-box:disabled option:checked,
+select:-internal-list-box option:checked:disabled {
+    color: gray !important;
 }
 
-select:disabled option:checked,
-select:disabled[size] option:checked,
-select:disabled[multiple] option:checked,
-select:disabled[size][multiple] option:checked,
-option:checked:disabled,
-select[size] option:checked:disabled,
-select[multiple] option:checked:disabled,
-select[size][multiple] option:checked:disabled {
-    color: gray;
-}
 
 output {
     display: inline;