Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(304)

Unified Diff: third_party/WebKit/Source/core/html/HTMLSelectElement.cpp

Issue 2045603002: Handle the "key" field as opposed to keyIdentifier field. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Remove initialization of the view Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 195dbc2f6b93677706902a854402726d6dbc24d7..f68437bfb35ba05b87df8093b1eb506088f403f1 100644
--- a/third_party/WebKit/Source/core/html/HTMLSelectElement.cpp
+++ b/third_party/WebKit/Source/core/html/HTMLSelectElement.cpp
@@ -1286,15 +1286,15 @@ void HTMLSelectElement::handlePopupOpenKeyboardEvent(Event* event)
bool HTMLSelectElement::shouldOpenPopupForKeyDownEvent(KeyboardEvent* keyEvent)
{
- const String& keyIdentifier = keyEvent->keyIdentifier();
+ const String& key = keyEvent->key();
LayoutTheme& layoutTheme = LayoutTheme::theme();
if (isSpatialNavigationEnabled(document().frame()))
return false;
- return ((layoutTheme.popsMenuByArrowKeys() && (keyIdentifier == "Down" || keyIdentifier == "Up"))
- || (layoutTheme.popsMenuByAltDownUpOrF4Key() && (keyIdentifier == "Down" || keyIdentifier == "Up") && keyEvent->altKey())
- || (layoutTheme.popsMenuByAltDownUpOrF4Key() && (!keyEvent->altKey() && !keyEvent->ctrlKey() && keyIdentifier == "F4")));
+ return ((layoutTheme.popsMenuByArrowKeys() && (key == "ArrowDown" || key == "ArrowUp"))
+ || (layoutTheme.popsMenuByAltDownUpOrF4Key() && (key == "ArrowDown" || key == "ArrowUp") && keyEvent->altKey())
+ || (layoutTheme.popsMenuByAltDownUpOrF4Key() && (!keyEvent->altKey() && !keyEvent->ctrlKey() && key == "F4")));
}
bool HTMLSelectElement::shouldOpenPopupForKeyPressEvent(KeyboardEvent *event)
@@ -1331,23 +1331,23 @@ void HTMLSelectElement::menuListDefaultEventHandler(Event* event)
if (LayoutTheme::theme().popsMenuByArrowKeys() && !isSpatialNavigationEnabled(document().frame()))
return;
- const String& keyIdentifier = keyEvent->keyIdentifier();
+ const String& key = keyEvent->key();
bool handled = true;
const ListItems& listItems = this->listItems();
HTMLOptionElement* option = selectedOption();
int listIndex = option ? option->listIndex() : -1;
- if (keyIdentifier == "Down" || keyIdentifier == "Right")
+ if (key == "ArrowDown" || key == "ArrowRight")
option = nextValidOption(listIndex, SkipForwards, 1);
- else if (keyIdentifier == "Up" || keyIdentifier == "Left")
+ else if (key == "ArrowUp" || key == "ArrowLeft")
option = nextValidOption(listIndex, SkipBackwards, 1);
- else if (keyIdentifier == "PageDown")
+ else if (key == "PageDown")
option = nextValidOption(listIndex, SkipForwards, 3);
- else if (keyIdentifier == "PageUp")
+ else if (key == "PageUp")
option = nextValidOption(listIndex, SkipBackwards, 3);
- else if (keyIdentifier == "Home")
+ else if (key == "Home")
option = nextValidOption(-1, SkipForwards, 1);
- else if (keyIdentifier == "End")
+ else if (key == "End")
option = nextValidOption(listItems.size(), SkipBackwards, 1);
else
handled = false;
@@ -1574,54 +1574,54 @@ void HTMLSelectElement::listBoxDefaultEventHandler(Event* event)
} else if (event->type() == EventTypeNames::keydown) {
if (!event->isKeyboardEvent())
return;
- const String& keyIdentifier = toKeyboardEvent(event)->keyIdentifier();
+ const String& key = toKeyboardEvent(event)->key();
bool handled = false;
HTMLOptionElement* endOption = nullptr;
if (!m_activeSelectionEnd) {
// Initialize the end index
- if (keyIdentifier == "Down" || keyIdentifier == "PageDown") {
+ if (key == "ArrowDown" || key == "PageDown") {
HTMLOptionElement* startOption = lastSelectedOption();
handled = true;
- if (keyIdentifier == "Down")
+ if (key == "ArrowDown")
endOption = nextSelectableOption(startOption);
else
endOption = nextSelectableOptionPageAway(startOption, SkipForwards);
- } else if (keyIdentifier == "Up" || keyIdentifier == "PageUp") {
+ } else if (key == "ArrowUp" || key == "PageUp") {
HTMLOptionElement* startOption = selectedOption();
handled = true;
- if (keyIdentifier == "Up")
+ if (key == "ArrowUp")
endOption = previousSelectableOption(startOption);
else
endOption = nextSelectableOptionPageAway(startOption, SkipBackwards);
}
} else {
// Set the end index based on the current end index.
- if (keyIdentifier == "Down") {
+ if (key == "ArrowDown") {
endOption = nextSelectableOption(m_activeSelectionEnd.get());
handled = true;
- } else if (keyIdentifier == "Up") {
+ } else if (key == "ArrowUp") {
endOption = previousSelectableOption(m_activeSelectionEnd.get());
handled = true;
- } else if (keyIdentifier == "PageDown") {
+ } else if (key == "PageDown") {
endOption = nextSelectableOptionPageAway(m_activeSelectionEnd.get(), SkipForwards);
handled = true;
- } else if (keyIdentifier == "PageUp") {
+ } else if (key == "PageUp") {
endOption = nextSelectableOptionPageAway(m_activeSelectionEnd.get(), SkipBackwards);
handled = true;
}
}
- if (keyIdentifier == "Home") {
+ if (key == "Home") {
endOption = firstSelectableOption();
handled = true;
- } else if (keyIdentifier == "End") {
+ } else if (key == "End") {
endOption = lastSelectableOption();
handled = true;
}
if (isSpatialNavigationEnabled(document().frame())) {
// Check if the selection moves to the boundary.
- if (keyIdentifier == "Left" || keyIdentifier == "Right" || ((keyIdentifier == "Down" || keyIdentifier == "Up") && endOption == m_activeSelectionEnd))
+ if (key == "ArrowLeft" || key == "ArrowRight" || ((key == "ArrowDown" || key == "ArrowUp") && endOption == m_activeSelectionEnd))
return;
}
« no previous file with comments | « third_party/WebKit/Source/core/html/HTMLButtonElement.cpp ('k') | third_party/WebKit/Source/core/html/HTMLSummaryElement.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698