| Index: third_party/WebKit/Source/core/html/HTMLSelectElement.cpp
|
| diff --git a/third_party/WebKit/Source/core/html/HTMLSelectElement.cpp b/third_party/WebKit/Source/core/html/HTMLSelectElement.cpp
|
| index 2e8c5f00015959c75756a3c847ed368892124787..d1414269e37d867bc91ba2789f05333648de82ec 100644
|
| --- a/third_party/WebKit/Source/core/html/HTMLSelectElement.cpp
|
| +++ b/third_party/WebKit/Source/core/html/HTMLSelectElement.cpp
|
| @@ -379,6 +379,8 @@ void HTMLSelectElement::parseAttribute(const QualifiedName& name, const AtomicSt
|
| if (inActiveDocument())
|
| lazyReattachIfAttached();
|
| resetToDefaultSelection();
|
| + if (!usesMenuList())
|
| + saveListboxActiveSelection();
|
| }
|
| } else if (name == multipleAttr) {
|
| parseMultipleAttribute(value);
|
| @@ -643,7 +645,12 @@ void HTMLSelectElement::saveLastSelection()
|
| void HTMLSelectElement::setActiveSelectionAnchor(HTMLOptionElement* option)
|
| {
|
| m_activeSelectionAnchor = option;
|
| + if (!usesMenuList())
|
| + saveListboxActiveSelection();
|
| +}
|
|
|
| +void HTMLSelectElement::saveListboxActiveSelection()
|
| +{
|
| // Cache the selection state so we can restore the old selection as the new
|
| // selection pivots around this anchor index.
|
| // Example:
|
|
|