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

Unified Diff: chrome/browser/extensions/extension_input_api.cc

Issue 6823055: Consolidate OnKeyEvent and InputMethod code. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Update additional OnEventKey references. Created 9 years, 8 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: chrome/browser/extensions/extension_input_api.cc
diff --git a/chrome/browser/extensions/extension_input_api.cc b/chrome/browser/extensions/extension_input_api.cc
index b3b84731491f371ba47c278090a02d89479a88ea..ffcd6594505e0498fe6807c978e2c119f986944b 100644
--- a/chrome/browser/extensions/extension_input_api.cc
+++ b/chrome/browser/extensions/extension_input_api.cc
@@ -8,17 +8,12 @@
#include "base/string_util.h"
#include "base/values.h"
-#include "chrome/browser/extensions/extension_tabs_module.h"
#include "chrome/browser/extensions/key_identifier_conversion_views.h"
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/browser_window.h"
#include "chrome/browser/ui/views/frame/browser_view.h"
-#include "content/browser/renderer_host/render_view_host.h"
-#include "content/common/native_web_keyboard_event.h"
-#include "third_party/WebKit/Source/WebKit/chromium/public/WebInputEvent.h"
#include "views/events/event.h"
#include "views/ime/input_method.h"
-#include "views/widget/root_view.h"
#include "views/widget/widget.h"
namespace {
@@ -56,7 +51,7 @@ void InputFunction::Run() {
SendResponse(RunImpl());
}
-views::RootView* SendKeyboardEventInputFunction::GetRootView() {
+views::Widget* SendKeyboardEventInputFunction::GetTopLevelWidget() {
Browser* browser = GetCurrentBrowser();
if (!browser)
return NULL;
@@ -67,10 +62,7 @@ views::RootView* SendKeyboardEventInputFunction::GetRootView() {
BrowserView* browser_view = BrowserView::GetBrowserViewForNativeWindow(
window->GetNativeHandle());
- if (!browser_view)
- return NULL;
-
- return browser_view->GetRootView();
+ return browser_view ? browser_view->GetWidget() : NULL;
}
bool SendKeyboardEventInputFunction::RunImpl() {
@@ -96,36 +88,28 @@ bool SendKeyboardEventInputFunction::RunImpl() {
return false;
}
+ bool flag = false;
int flags = prototype_event.flags();
- bool alt = false;
- if (args->GetBoolean(kAlt, &alt))
- flags |= alt ? ui::EF_ALT_DOWN : 0;
- bool ctrl = false;
- if (args->GetBoolean(kCtrl, &ctrl))
- flags |= ctrl ? ui::EF_CONTROL_DOWN : 0;
- bool shift = false;
- if (args->GetBoolean(kShift, &shift))
- flags |= shift ? ui::EF_SHIFT_DOWN : 0;
- bool meta = false;
- if (args->GetBoolean(kMeta, &meta)) {
+ flags |= (args->GetBoolean(kAlt, &flag) && flag) ? ui::EF_ALT_DOWN : 0;
+ flags |= (args->GetBoolean(kCtrl, &flag) && flag) ? ui::EF_CONTROL_DOWN : 0;
+ flags |= (args->GetBoolean(kShift, &flag) && flag) ? ui::EF_SHIFT_DOWN : 0;
+ if (args->GetBoolean(kMeta, &flag) && flag) {
// Views does not have a Meta event flag, so return an error for now.
- if (meta) {
- error_ = kUnsupportedModifier;
- return false;
- }
+ error_ = kUnsupportedModifier;
+ return false;
}
- views::RootView* root_view = GetRootView();
- if (!root_view) {
+ views::Widget* widget = GetTopLevelWidget();
+ if (!widget) {
error_ = kNoValidRecipientError;
return false;
}
views::KeyEvent event(type, prototype_event.key_code(), flags);
- views::InputMethod* ime = root_view->GetWidget()->GetInputMethod();
+ views::InputMethod* ime = widget->GetInputMethod();
if (ime) {
ime->DispatchKeyEvent(event);
- } else if (!root_view->ProcessKeyEvent(event)) {
+ } else if (!widget->OnKeyEvent(event)) {
error_ = kKeyEventUnprocessedError;
return false;
}

Powered by Google App Engine
This is Rietveld 408576698