| 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;
|
| }
|
|
|