summaryrefslogtreecommitdiffstats
path: root/chrome
diff options
context:
space:
mode:
Diffstat (limited to 'chrome')
-rw-r--r--chrome/app/chrome_dll.rc2
-rw-r--r--chrome/app/chrome_dll_resource.h1
-rw-r--r--chrome/browser/automation/automation_provider.cc31
-rw-r--r--chrome/browser/automation/automation_provider.h25
-rw-r--r--chrome/browser/automation/automation_provider_gtk.cc5
-rw-r--r--chrome/browser/automation/automation_provider_mac.mm5
-rw-r--r--chrome/browser/automation/automation_provider_views.cc152
-rw-r--r--chrome/browser/automation/automation_provider_win.cc13
-rw-r--r--chrome/browser/automation/ui_controls_win.cc15
-rw-r--r--chrome/browser/browser.cc10
-rw-r--r--chrome/browser/browser.h1
-rw-r--r--chrome/browser/browser_window.h5
-rw-r--r--chrome/browser/cocoa/browser_window_cocoa.h1
-rw-r--r--chrome/browser/cocoa/browser_window_cocoa.mm4
-rw-r--r--chrome/browser/gtk/browser_window_gtk.cc4
-rw-r--r--chrome/browser/gtk/browser_window_gtk.h1
-rw-r--r--chrome/browser/views/accelerator_table_gtk.cc2
-rw-r--r--chrome/browser/views/frame/browser_view.cc34
-rw-r--r--chrome/browser/views/frame/browser_view.h4
-rw-r--r--chrome/browser/views/toolbar_view.cc216
-rw-r--r--chrome/browser/views/toolbar_view.h53
-rw-r--r--chrome/chrome_tests.gypi1
-rw-r--r--chrome/test/automation/automation_messages_internal.h19
-rw-r--r--chrome/test/automation/browser_proxy.cc23
-rw-r--r--chrome/test/automation/browser_proxy.h9
-rw-r--r--chrome/test/automation/window_proxy.cc9
-rw-r--r--chrome/test/automation/window_proxy.h4
-rw-r--r--chrome/test/test_browser_window.h1
-rw-r--r--chrome/test/ui/keyboard_access_uitest.cc104
29 files changed, 37 insertions, 717 deletions
diff --git a/chrome/app/chrome_dll.rc b/chrome/app/chrome_dll.rc
index 14cee6d..7ed9edf 100644
--- a/chrome/app/chrome_dll.rc
+++ b/chrome/app/chrome_dll.rc
@@ -48,8 +48,6 @@ BEGIN
VK_F6, IDC_FOCUS_LOCATION, VIRTKEY
"D", IDC_FOCUS_LOCATION, VIRTKEY, ALT
"L", IDC_FOCUS_LOCATION, VIRTKEY, CONTROL
- VK_F10, IDC_FOCUS_MENU_BAR, VIRTKEY
- VK_MENU, IDC_FOCUS_MENU_BAR, VIRTKEY
"K", IDC_FOCUS_SEARCH, VIRTKEY, CONTROL
"E", IDC_FOCUS_SEARCH, VIRTKEY, CONTROL
"T", IDC_FOCUS_TOOLBAR, VIRTKEY, SHIFT, ALT
diff --git a/chrome/app/chrome_dll_resource.h b/chrome/app/chrome_dll_resource.h
index ed5bc03..708eaa2 100644
--- a/chrome/app/chrome_dll_resource.h
+++ b/chrome/app/chrome_dll_resource.h
@@ -189,7 +189,6 @@
#define IDC_FOCUS_TOOLBAR 39000
#define IDC_FOCUS_LOCATION 39001
#define IDC_FOCUS_SEARCH 39002
-#define IDC_FOCUS_MENU_BAR 39003
// Show various bits of UI
#define IDC_OPEN_FILE 40000
diff --git a/chrome/browser/automation/automation_provider.cc b/chrome/browser/automation/automation_provider.cc
index ddde680..a2b7d8d 100644
--- a/chrome/browser/automation/automation_provider.cc
+++ b/chrome/browser/automation/automation_provider.cc
@@ -139,8 +139,7 @@ class ClickTask : public Task {
AutomationProvider::AutomationProvider(Profile* profile)
: redirect_query_(0),
profile_(profile),
- reply_message_(NULL),
- popup_menu_waiter_(NULL) {
+ reply_message_(NULL) {
browser_tracker_.reset(new AutomationBrowserTracker(this));
tab_tracker_.reset(new AutomationTabTracker(this));
window_tracker_.reset(new AutomationWindowTracker(this));
@@ -498,14 +497,6 @@ void AutomationProvider::OnMessageReceived(const IPC::Message& message) {
IPC_MESSAGE_HANDLER_DELAY_REPLY(AutomationMsg_LoginWithUserAndPass,
LoginWithUserAndPass)
#endif
-#if defined(TOOLKIT_VIEWS)
- IPC_MESSAGE_HANDLER_DELAY_REPLY(AutomationMsg_WaitForFocusedViewIDToChange,
- WaitForFocusedViewIDToChange)
- IPC_MESSAGE_HANDLER(AutomationMsg_StartTrackingPopupMenus,
- StartTrackingPopupMenus)
- IPC_MESSAGE_HANDLER_DELAY_REPLY(AutomationMsg_WaitForPopupMenuToOpen,
- WaitForPopupMenuToOpen)
-#endif
IPC_END_MESSAGE_MAP()
}
@@ -2537,23 +2528,3 @@ void AutomationProvider::SetContentSetting(
*success = true;
}
}
-
-#if !defined(TOOLKIT_VIEWS)
-void AutomationProvider::GetFocusedViewID(int handle, int* view_id) {
- NOTIMPLEMENTED();
-};
-
-void AutomationProvider::WaitForFocusedViewIDToChange(
- int handle, int previous_view_id, IPC::Message* reply_message) {
- NOTIMPLEMENTED();
-}
-
-void AutomationProvider::StartTrackingPopupMenus(
- int browser_handle, bool* success) {
- NOTIMPLEMENTED();
-}
-
-void AutomationProvider::WaitForPopupMenuToOpen(IPC::Message* reply_message) {
- NOTIMPLEMENTED();
-}
-#endif // !defined(TOOLKIT_VIEWS)
diff --git a/chrome/browser/automation/automation_provider.h b/chrome/browser/automation/automation_provider.h
index 2328606..e5b36bf 100644
--- a/chrome/browser/automation/automation_provider.h
+++ b/chrome/browser/automation/automation_provider.h
@@ -35,7 +35,6 @@
#endif // defined(OS_WIN)
struct AutomationMsg_Find_Params;
-class PopupMenuWaiter;
namespace IPC {
struct Reposition_Params;
@@ -134,7 +133,6 @@ class AutomationProvider : public base::RefCounted<AutomationProvider>,
protected:
friend class base::RefCounted<AutomationProvider>;
- friend class PopupMenuWaiter;
virtual ~AutomationProvider();
private:
@@ -581,22 +579,6 @@ class AutomationProvider : public base::RefCounted<AutomationProvider>,
// Returns NULL on failure.
RenderViewHost* GetViewForTab(int tab_handle);
- // Block until the focused view ID changes to something other than
- // previous_view_id.
- void WaitForFocusedViewIDToChange(int handle,
- int previous_view_id,
- IPC::Message* reply_message);
-
- // Start tracking popup menus. Must be called before executing the
- // command that might open the popup menu; then call WaitForPopupMenuToOpen.
- void StartTrackingPopupMenus(int browser_handle, bool* success);
-
- // Wait until a popup menu has opened.
- void WaitForPopupMenuToOpen(IPC::Message* reply_message);
-
- // Method called by the popup menu tracker when a popup menu is opened.
- void NotifyPopupMenuOpened();
-
typedef ObserverList<NotificationObserver> NotificationObserverList;
typedef std::map<NavigationController*, LoginHandler*> LoginHandlerMap;
typedef std::map<int, ExtensionPortContainer*> PortContainerMap;
@@ -632,13 +614,6 @@ class AutomationProvider : public base::RefCounted<AutomationProvider>,
IPC::Message* reply_message_;
- // Keep track of whether a popup menu has been opened since the last time
- // that StartTrackingPopupMenus has been called.
- bool popup_menu_opened_;
-
- // A temporary object that receives a notification when a popup menu opens.
- PopupMenuWaiter* popup_menu_waiter_;
-
DISALLOW_COPY_AND_ASSIGN(AutomationProvider);
};
diff --git a/chrome/browser/automation/automation_provider_gtk.cc b/chrome/browser/automation/automation_provider_gtk.cc
index 62b378f..601e81a 100644
--- a/chrome/browser/automation/automation_provider_gtk.cc
+++ b/chrome/browser/automation/automation_provider_gtk.cc
@@ -79,6 +79,10 @@ void AutomationProvider::IsWindowMaximized(int handle, bool* is_maximized,
NOTIMPLEMENTED();
}
+void AutomationProvider::GetFocusedViewID(int handle, int* view_id) {
+ NOTIMPLEMENTED();
+}
+
void AutomationProvider::PrintAsync(int tab_handle) {
NOTIMPLEMENTED();
}
@@ -223,3 +227,4 @@ void AutomationProvider::GetWindowTitle(int handle, string16* text) {
const gchar* title = gtk_window_get_title(window);
text->assign(UTF8ToUTF16(title));
}
+
diff --git a/chrome/browser/automation/automation_provider_mac.mm b/chrome/browser/automation/automation_provider_mac.mm
index 2d3f3c5..f58b7a8 100644
--- a/chrome/browser/automation/automation_provider_mac.mm
+++ b/chrome/browser/automation/automation_provider_mac.mm
@@ -66,6 +66,10 @@ void AutomationProvider::IsWindowMaximized(int handle, bool* is_maximized,
NOTIMPLEMENTED();
}
+void AutomationProvider::GetFocusedViewID(int handle, int* view_id) {
+ NOTIMPLEMENTED();
+}
+
void AutomationProvider::PrintAsync(int tab_handle) {
NOTIMPLEMENTED();
}
@@ -154,3 +158,4 @@ void AutomationProvider::GetWindowTitle(int handle, string16* text) {
text->assign(base::SysNSStringToUTF16(title));
}
+
diff --git a/chrome/browser/automation/automation_provider_views.cc b/chrome/browser/automation/automation_provider_views.cc
index f7a461c..f161105 100644
--- a/chrome/browser/automation/automation_provider_views.cc
+++ b/chrome/browser/automation/automation_provider_views.cc
@@ -4,12 +4,7 @@
#include "chrome/browser/automation/automation_provider.h"
-#include "chrome/browser/views/frame/browser_view.h"
-#include "chrome/browser/views/toolbar_view.h"
-#include "chrome/test/automation/automation_messages.h"
#include "gfx/point.h"
-#include "views/controls/menu/menu_wrapper.h"
-#include "views/focus/focus_manager.h"
#include "views/view.h"
#include "views/widget/root_view.h"
#include "views/widget/widget.h"
@@ -39,150 +34,3 @@ void AutomationProvider::WindowGetViewBounds(int handle, int view_id,
}
}
-void AutomationProvider::GetFocusedViewID(int handle, int* view_id) {
- *view_id = -1;
- if (window_tracker_->ContainsHandle(handle)) {
- gfx::NativeWindow window = window_tracker_->GetResource(handle);
- views::FocusManager* focus_manager =
- views::FocusManager::GetFocusManagerForNativeWindow(window);
- DCHECK(focus_manager);
- views::View* focused_view = focus_manager->GetFocusedView();
- if (focused_view)
- *view_id = focused_view->GetID();
- }
-}
-
-// Helper class that waits until the focus has changed to a view other
-// than the one with the provided view id.
-class ViewFocusChangeWaiter : public views::FocusChangeListener {
- public:
- ViewFocusChangeWaiter(views::FocusManager* focus_manager,
- int previous_view_id,
- AutomationProvider* automation,
- IPC::Message* reply_message)
- : focus_manager_(focus_manager),
- previous_view_id_(previous_view_id),
- automation_(automation),
- reply_message_(reply_message),
- ALLOW_THIS_IN_INITIALIZER_LIST(method_factory_(this)) {
- focus_manager_->AddFocusChangeListener(this);
- // Call the focus change notification once in case the focus has
- // already changed.
- FocusWillChange(NULL, focus_manager_->GetFocusedView());
- }
-
- ~ViewFocusChangeWaiter() {
- focus_manager_->RemoveFocusChangeListener(this);
- }
-
- // Inherited from FocusChangeListener
- virtual void FocusWillChange(views::View* focused_before,
- views::View* focused_now) {
- // This listener is called before focus actually changes. Post a task
- // that will get run after focus changes.
- MessageLoop::current()->PostTask(
- FROM_HERE,
- method_factory_.NewRunnableMethod(
- &ViewFocusChangeWaiter::FocusChanged,
- focused_before,
- focused_now));
- }
-
- private:
- void FocusChanged(views::View* focused_before,
- views::View* focused_now) {
- if (focused_now && focused_now->GetID() != previous_view_id_) {
- AutomationMsg_WaitForFocusedViewIDToChange::WriteReplyParams(
- reply_message_, true, focused_now->GetID());
-
- automation_->Send(reply_message_);
- delete this;
- }
- }
-
- views::FocusManager* focus_manager_;
- int previous_view_id_;
- AutomationProvider* automation_;
- IPC::Message* reply_message_;
- ScopedRunnableMethodFactory<ViewFocusChangeWaiter> method_factory_;
-
- DISALLOW_COPY_AND_ASSIGN(ViewFocusChangeWaiter);
-};
-
-void AutomationProvider::WaitForFocusedViewIDToChange(
- int handle, int previous_view_id, IPC::Message* reply_message) {
- if (!window_tracker_->ContainsHandle(handle))
- return;
- gfx::NativeWindow window = window_tracker_->GetResource(handle);
- views::FocusManager* focus_manager =
- views::FocusManager::GetFocusManagerForNativeWindow(window);
-
- // The waiter will respond to the IPC and delete itself when done.
- new ViewFocusChangeWaiter(focus_manager,
- previous_view_id,
- this,
- reply_message);
-}
-
-class PopupMenuWaiter : public views::MenuListener {
- public:
- PopupMenuWaiter(ToolbarView* toolbar_view,
- AutomationProvider* automation)
- : toolbar_view_(toolbar_view),
- automation_(automation),
- reply_message_(NULL) {
- toolbar_view_->AddMenuListener(this);
- }
-
- // Implementation of views::MenuListener
- virtual void OnMenuOpened() {
- toolbar_view_->RemoveMenuListener(this);
- automation_->popup_menu_opened_ = true;
- automation_->popup_menu_waiter_ = NULL;
- if (reply_message_) {
- AutomationMsg_WaitForPopupMenuToOpen::WriteReplyParams(
- reply_message_, true);
- automation_->Send(reply_message_);
- }
- delete this;
- }
-
- void set_reply_message(IPC::Message* reply_message) {
- reply_message_ = reply_message;
- }
-
- private:
- ToolbarView* toolbar_view_;
- AutomationProvider* automation_;
- IPC::Message* reply_message_;
-
- DISALLOW_COPY_AND_ASSIGN(PopupMenuWaiter);
-};
-
-void AutomationProvider::StartTrackingPopupMenus(
- int browser_handle, bool* success) {
- if (browser_tracker_->ContainsHandle(browser_handle)) {
- Browser* browser = browser_tracker_->GetResource(browser_handle);
- BrowserView* browser_view = reinterpret_cast<BrowserView*>(
- browser->window());
- ToolbarView* toolbar_view = browser_view->GetToolbarView();
- popup_menu_opened_ = false;
- popup_menu_waiter_ = new PopupMenuWaiter(toolbar_view, this);
- *success = true;
- }
-}
-
-void AutomationProvider::WaitForPopupMenuToOpen(IPC::Message* reply_message) {
- // See if the menu already opened and return true if so.
- if (popup_menu_opened_) {
- AutomationMsg_WaitForPopupMenuToOpen::WriteReplyParams(
- reply_message, true);
- Send(reply_message);
- return;
- }
-
- // Otherwise, register this reply message with the waiter,
- // which will handle responding to this IPC when the popup
- // menu opens.
- popup_menu_waiter_->set_reply_message(reply_message);
-}
diff --git a/chrome/browser/automation/automation_provider_win.cc b/chrome/browser/automation/automation_provider_win.cc
index 2139420..9539498 100644
--- a/chrome/browser/automation/automation_provider_win.cc
+++ b/chrome/browser/automation/automation_provider_win.cc
@@ -231,6 +231,19 @@ void AutomationProvider::WindowSimulateDrag(int handle,
}
}
+void AutomationProvider::GetFocusedViewID(int handle, int* view_id) {
+ *view_id = -1;
+ if (window_tracker_->ContainsHandle(handle)) {
+ HWND hwnd = window_tracker_->GetResource(handle);
+ views::FocusManager* focus_manager =
+ views::FocusManager::GetFocusManagerForNativeView(hwnd);
+ DCHECK(focus_manager);
+ views::View* focused_view = focus_manager->GetFocusedView();
+ if (focused_view)
+ *view_id = focused_view->GetID();
+ }
+}
+
void AutomationProvider::GetWindowBounds(int handle, gfx::Rect* bounds,
bool* success) {
*success = false;
diff --git a/chrome/browser/automation/ui_controls_win.cc b/chrome/browser/automation/ui_controls_win.cc
index aba7248..3ff1a5c 100644
--- a/chrome/browser/automation/ui_controls_win.cc
+++ b/chrome/browser/automation/ui_controls_win.cc
@@ -166,21 +166,6 @@ bool SendKeyPressImpl(base::KeyboardCode key,
scoped_refptr<InputDispatcher> dispatcher(
task ? new InputDispatcher(task, WM_KEYUP) : NULL);
- // If a pop-up menu is open, it won't receive events sent using SendInput.
- // Check for a pop-up menu using its window class (#32768) and if one
- // exists, send the key event directly there.
- HWND popup_menu = ::FindWindow(L"#32768", 0);
- if (popup_menu != NULL) {
- WPARAM w_param = win_util::KeyboardCodeToWin(key);
- LPARAM l_param = 0;
- ::SendMessage(popup_menu, WM_KEYDOWN, w_param, l_param);
- ::SendMessage(popup_menu, WM_KEYUP, w_param, l_param);
-
- if (dispatcher.get())
- dispatcher->AddRef();
- return true;
- }
-
INPUT input[8] = { 0 }; // 8, assuming all the modifiers are activated
int i = 0;
diff --git a/chrome/browser/browser.cc b/chrome/browser/browser.cc
index 04524e3..4e37d4c 100644
--- a/chrome/browser/browser.cc
+++ b/chrome/browser/browser.cc
@@ -874,9 +874,6 @@ void Browser::UpdateCommandsForFullscreenMode(bool is_fullscreen) {
command_updater_.UpdateCommandEnabled(IDC_FOCUS_TOOLBAR, show_main_ui);
command_updater_.UpdateCommandEnabled(IDC_FOCUS_LOCATION, show_main_ui);
command_updater_.UpdateCommandEnabled(IDC_FOCUS_SEARCH, show_main_ui);
- command_updater_.UpdateCommandEnabled(
- IDC_FOCUS_MENU_BAR,
- show_main_ui && !is_fullscreen && (type() & TYPE_POPUP) == 0);
// Show various bits of UI
command_updater_.UpdateCommandEnabled(IDC_DEVELOPER_MENU, show_main_ui);
@@ -1325,12 +1322,6 @@ void Browser::FocusToolbar() {
window_->FocusToolbar();
}
-void Browser::FocusPageAndAppMenus() {
- UserMetrics::RecordAction(
- UserMetricsAction("FocusPageAndAppMenus"), profile_);
- window_->FocusPageAndAppMenus();
-}
-
void Browser::FocusLocationBar() {
UserMetrics::RecordAction(UserMetricsAction("FocusLocation"), profile_);
window_->SetFocusToLocationBar();
@@ -1761,7 +1752,6 @@ void Browser::ExecuteCommandWithDisposition(
case IDC_FOCUS_TOOLBAR: FocusToolbar(); break;
case IDC_FOCUS_LOCATION: FocusLocationBar(); break;
case IDC_FOCUS_SEARCH: FocusSearch(); break;
- case IDC_FOCUS_MENU_BAR: FocusPageAndAppMenus(); break;
// Show various bits of UI
case IDC_OPEN_FILE: OpenFile(); break;
diff --git a/chrome/browser/browser.h b/chrome/browser/browser.h
index fad8295..51470f7 100644
--- a/chrome/browser/browser.h
+++ b/chrome/browser/browser.h
@@ -460,7 +460,6 @@ class Browser : public TabStripModelDelegate,
void FocusToolbar();
void FocusLocationBar();
void FocusSearch();
- void FocusPageAndAppMenus();
// Show various bits of UI
void OpenFile();
diff --git a/chrome/browser/browser_window.h b/chrome/browser/browser_window.h
index c2e3911..a4ff572 100644
--- a/chrome/browser/browser_window.h
+++ b/chrome/browser/browser_window.h
@@ -150,11 +150,6 @@ class BrowserWindow {
// Focuses the toolbar (for accessibility).
virtual void FocusToolbar() = 0;
- // Focuses the page and app menus like they were a menu bar.
- //
- // Not used on the Mac, which has a "normal" menu bar.
- virtual void FocusPageAndAppMenus() = 0;
-
// Returns whether the bookmark bar is visible or not.
virtual bool IsBookmarkBarVisible() const = 0;
diff --git a/chrome/browser/cocoa/browser_window_cocoa.h b/chrome/browser/cocoa/browser_window_cocoa.h
index 4de884a..b0ace80 100644
--- a/chrome/browser/cocoa/browser_window_cocoa.h
+++ b/chrome/browser/cocoa/browser_window_cocoa.h
@@ -57,7 +57,6 @@ class BrowserWindowCocoa : public BrowserWindow,
virtual void UpdateToolbar(TabContents* contents,
bool should_restore_state);
virtual void FocusToolbar();
- virtual void FocusPageAndAppMenus();
virtual bool IsBookmarkBarVisible() const;
virtual bool IsBookmarkBarAnimating() const;
virtual bool IsToolbarVisible() const;
diff --git a/chrome/browser/cocoa/browser_window_cocoa.mm b/chrome/browser/cocoa/browser_window_cocoa.mm
index 83706d7..01d592e 100644
--- a/chrome/browser/cocoa/browser_window_cocoa.mm
+++ b/chrome/browser/cocoa/browser_window_cocoa.mm
@@ -237,10 +237,6 @@ void BrowserWindowCocoa::FocusToolbar() {
NOTIMPLEMENTED();
}
-void BrowserWindowCocoa::FocusPageAndAppMenus() {
- // Chrome uses the standard Mac OS X menu bar, so this isn't needed.
-}
-
bool BrowserWindowCocoa::IsBookmarkBarVisible() const {
return browser_->profile()->GetPrefs()->GetBoolean(prefs::kShowBookmarkBar);
}
diff --git a/chrome/browser/gtk/browser_window_gtk.cc b/chrome/browser/gtk/browser_window_gtk.cc
index 4357b78..39e6348 100644
--- a/chrome/browser/gtk/browser_window_gtk.cc
+++ b/chrome/browser/gtk/browser_window_gtk.cc
@@ -783,10 +783,6 @@ void BrowserWindowGtk::FocusToolbar() {
NOTIMPLEMENTED();
}
-void BrowserWindowGtk::FocusPageAndAppMenus() {
- NOTIMPLEMENTED();
-}
-
bool BrowserWindowGtk::IsBookmarkBarVisible() const {
return browser_->SupportsWindowFeature(Browser::FEATURE_BOOKMARKBAR) &&
bookmark_bar_.get() &&
diff --git a/chrome/browser/gtk/browser_window_gtk.h b/chrome/browser/gtk/browser_window_gtk.h
index 67613b6..f24e094 100644
--- a/chrome/browser/gtk/browser_window_gtk.h
+++ b/chrome/browser/gtk/browser_window_gtk.h
@@ -75,7 +75,6 @@ class BrowserWindowGtk : public BrowserWindow,
virtual void UpdateToolbar(TabContents* contents,
bool should_restore_state);
virtual void FocusToolbar();
- virtual void FocusPageAndAppMenus();
virtual bool IsBookmarkBarVisible() const;
virtual bool IsBookmarkBarAnimating() const;
virtual bool IsToolbarVisible() const;
diff --git a/chrome/browser/views/accelerator_table_gtk.cc b/chrome/browser/views/accelerator_table_gtk.cc
index f3a7a54..28a630b 100644
--- a/chrome/browser/views/accelerator_table_gtk.cc
+++ b/chrome/browser/views/accelerator_table_gtk.cc
@@ -20,8 +20,6 @@ const AcceleratorMapping kAcceleratorMap[] = {
{ base::VKEY_L, false, true, false, IDC_FOCUS_LOCATION },
{ base::VKEY_D, false, false, true, IDC_FOCUS_LOCATION },
{ base::VKEY_F6, false, false, false, IDC_FOCUS_LOCATION },
- { base::VKEY_F10, false, false, false, IDC_FOCUS_MENU_BAR },
- { base::VKEY_MENU, false, false, false, IDC_FOCUS_MENU_BAR },
// Tab/window controls.
{ base::VKEY_T, false, true, false, IDC_NEW_TAB },
diff --git a/chrome/browser/views/frame/browser_view.cc b/chrome/browser/views/frame/browser_view.cc
index 3c44731..302e13f 100644
--- a/chrome/browser/views/frame/browser_view.cc
+++ b/chrome/browser/views/frame/browser_view.cc
@@ -638,10 +638,10 @@ void BrowserView::TraverseNextAccessibleToolbar(bool forward) {
// TODO(mohamed) This needs to be smart, that applies to all toolbars.
// Currently it just traverses between bookmarks and toolbar.
if (!forward && toolbar_->IsVisible() && toolbar_->IsEnabled()) {
- toolbar_->RequestFocus();
+ toolbar_->InitiateTraversal(last_focused_view_storage_id_);
} else if (forward && bookmark_bar_view_->IsVisible() &&
bookmark_bar_view_->IsEnabled()) {
- bookmark_bar_view_->RequestFocus();
+ bookmark_bar_view_->InitiateTraversal(last_focused_view_storage_id_);
}
}
@@ -863,31 +863,17 @@ void BrowserView::UpdateToolbar(TabContents* contents,
}
void BrowserView::FocusToolbar() {
- // Start the traversal within the main toolbar, passing it the storage id
- // of the view where focus should be returned if the user exits the toolbar.
- SaveFocusedView();
- toolbar_->InitiateTraversal(last_focused_view_storage_id_);
-}
-
-void BrowserView::FocusPageAndAppMenus() {
- // Chrome doesn't have a traditional menu bar, but it has menu buttons in
- // the main toolbar that play the same role. If the user presses a key
- // that would typically focus the menu bar, tell the toolbar to focus
- // the first menu button. Pass it the storage id of the view where
- // focus should be returned if the user presses escape.
- //
- // Not used on the Mac, which has a normal menu bar.
- SaveFocusedView();
- toolbar_->EnterMenuBarEmulationMode(last_focused_view_storage_id_, NULL);
-}
-
-void BrowserView::SaveFocusedView() {
+ // Remove existing views in the storage, traversal should be restarted.
views::ViewStorage* view_storage = views::ViewStorage::GetSharedInstance();
if (view_storage->RetrieveView(last_focused_view_storage_id_))
view_storage->RemoveView(last_focused_view_storage_id_);
- views::View* focused_view = GetRootView()->GetFocusedView();
- if (focused_view)
- view_storage->StoreView(last_focused_view_storage_id_, focused_view);
+
+ // Store the last focused view into the storage, to handle existing traversal.
+ view_storage->StoreView(last_focused_view_storage_id_,
+ GetRootView()->GetFocusedView());
+
+ // Start the traversal within the main toolbar.
+ toolbar_->InitiateTraversal(last_focused_view_storage_id_);
}
void BrowserView::DestroyBrowser() {
diff --git a/chrome/browser/views/frame/browser_view.h b/chrome/browser/views/frame/browser_view.h
index 026fa53..bf753e9 100644
--- a/chrome/browser/views/frame/browser_view.h
+++ b/chrome/browser/views/frame/browser_view.h
@@ -270,7 +270,6 @@ class BrowserView : public BrowserBubbleHost,
virtual void UpdateStopGoState(bool is_loading, bool force);
virtual void UpdateToolbar(TabContents* contents, bool should_restore_state);
virtual void FocusToolbar();
- virtual void FocusPageAndAppMenus();
virtual void DestroyBrowser();
virtual bool IsBookmarkBarVisible() const;
virtual bool IsBookmarkBarAnimating() const;
@@ -473,9 +472,6 @@ class BrowserView : public BrowserBubbleHost,
// Initialize the hung plugin detector.
void InitHangMonitor();
- // Save the current focused view to view storage
- void SaveFocusedView();
-
// Initialize class statics.
static void InitClass();
diff --git a/chrome/browser/views/toolbar_view.cc b/chrome/browser/views/toolbar_view.cc
index 47ca0e0..a640442 100644
--- a/chrome/browser/views/toolbar_view.cc
+++ b/chrome/browser/views/toolbar_view.cc
@@ -34,7 +34,6 @@
#include "chrome/browser/views/bookmark_menu_button.h"
#include "chrome/browser/views/browser_actions_container.h"
#include "chrome/browser/views/event_utils.h"
-#include "chrome/browser/views/frame/browser_view.h"
#include "chrome/browser/views/go_button.h"
#include "chrome/browser/views/location_bar_view.h"
#include "chrome/browser/views/toolbar_star_toggle.h"
@@ -53,8 +52,6 @@
#include "views/controls/label.h"
#include "views/controls/menu/menu_2.h"
#include "views/drag_utils.h"
-#include "views/focus/view_storage.h"
-#include "views/widget/tooltip_manager.h"
#include "views/window/non_client_view.h"
#include "views/window/window.h"
@@ -93,9 +90,7 @@ ToolbarView::ToolbarView(Browser* browser)
bookmark_menu_(NULL),
profile_(NULL),
browser_(browser),
- profiles_menu_contents_(NULL),
- last_focused_view_storage_id_(-1),
- ALLOW_THIS_IN_INITIALIZER_LIST(method_factory_(this)) {
+ profiles_menu_contents_(NULL) {
SetID(VIEW_ID_TOOLBAR);
browser_->command_updater()->AddCommandObserver(IDC_BACK, this);
browser_->command_updater()->AddCommandObserver(IDC_FORWARD, this);
@@ -113,14 +108,6 @@ ToolbarView::ToolbarView(Browser* browser)
}
}
-ToolbarView::~ToolbarView() {
- if (page_menu_->HasFocus() || app_menu_->HasFocus()) {
- views::FocusManager* focus_manager = GetFocusManager();
- focus_manager->UnregisterAccelerators(this);
- focus_manager->RemoveFocusChangeListener(this);
- }
-}
-
void ToolbarView::Init(Profile* profile) {
back_menu_model_.reset(new BackForwardMenuModel(
browser_, BackForwardMenuModel::BACKWARD_MENU));
@@ -161,82 +148,6 @@ void ToolbarView::SetAppMenuModel(AppMenuModel* model) {
app_menu_menu_.reset(new views::Menu2(app_menu_model_.get()));
}
-void ToolbarView::EnterMenuBarEmulationMode(int last_focused_view_storage_id,
- views::MenuButton* menu_to_focus) {
- last_focused_view_storage_id_ = last_focused_view_storage_id;
- if (!menu_to_focus)
- menu_to_focus = page_menu_;
-
- // If we're already in the menu bar emulation mode, just set the focus.
- if (page_menu_->IsFocusable() && app_menu_->IsFocusable()) {
- menu_to_focus->RequestFocus();
- return;
- }
-
- // Make the menus focusable and set focus to the initial menu.
- page_menu_->SetFocusable(true);
- app_menu_->SetFocusable(true);
- menu_to_focus->RequestFocus();
-
- // Listen so we know when focus has moved to something other than one
- // of these menus.
- views::FocusManager* focus_manager = GetFocusManager();
- focus_manager->AddFocusChangeListener(this);
-
- // Add accelerators so that the usual keys used to interact with a
- // menu bar work as expected.
- views::Accelerator return_key(base::VKEY_RETURN, false, false, false);
- focus_manager->RegisterAccelerator(return_key, this);
- views::Accelerator space(base::VKEY_SPACE, false, false, false);
- focus_manager->RegisterAccelerator(space, this);
- views::Accelerator escape(base::VKEY_ESCAPE, false, false, false);
- focus_manager->RegisterAccelerator(escape, this);
- views::Accelerator down(base::VKEY_DOWN, false, false, false);
- focus_manager->RegisterAccelerator(down, this);
- views::Accelerator up(base::VKEY_UP, false, false, false);
- focus_manager->RegisterAccelerator(up, this);
- views::Accelerator left(base::VKEY_LEFT, false, false, false);
- focus_manager->RegisterAccelerator(left, this);
- views::Accelerator right(base::VKEY_RIGHT, false, false, false);
- focus_manager->RegisterAccelerator(right, this);
-}
-
-void ToolbarView::AddMenuListener(views::MenuListener* listener) {
- menu_listeners_.push_back(listener);
-}
-
-void ToolbarView::RemoveMenuListener(views::MenuListener* listener) {
- for (std::vector<views::MenuListener*>::iterator iter =
- menu_listeners_.begin();
- iter != menu_listeners_.end();
- ++iter) {
- if (*iter == listener) {
- menu_listeners_.erase(iter);
- return;
- }
- }
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// ToolbarView, FocusChangeListener overrides:
-
-void ToolbarView::FocusWillChange(views::View* focused_before,
- views::View* focused_now) {
- // If the focus is switching to something outside the menu bar,
- // take it out of the focus traversal.
- if (focused_now != NULL &&
- focused_now != page_menu_ &&
- focused_now != app_menu_) {
- // Post ExitMenuBarEmulationMode to the queue rather than running it
- // right away, because otherwise we'll remove ourselves from the
- // list of listeners while FocusManager is in the middle of iterating
- // over that list.
- MessageLoop::current()->PostTask(
- FROM_HERE, method_factory_.NewRunnableMethod(
- &ToolbarView::ExitMenuBarEmulationMode));
- }
-}
-
////////////////////////////////////////////////////////////////////////////////
// ToolbarView, AccessibleToolbarView overrides:
@@ -413,43 +324,6 @@ void ToolbarView::ExecuteCommand(int command_id) {
////////////////////////////////////////////////////////////////////////////////
// ToolbarView, views::View overrides:
-bool ToolbarView::AcceleratorPressed(
- const views::Accelerator& accelerator) {
- // The only accelerators we handle here are if the menus are focused.
- views::View* focused_view = GetFocusManager()->GetFocusedView();
- if (focused_view != page_menu_ && focused_view != app_menu_) {
- ExitMenuBarEmulationMode();
- return false;
- }
-
- // Safe to cast, given the check above.
- views::MenuButton* menu = static_cast<views::MenuButton*>(focused_view);
- switch (accelerator.GetKeyCode()) {
- case base::VKEY_ESCAPE:
- RestoreLastFocusedView();
- return true;
- case base::VKEY_LEFT:
- case base::VKEY_RIGHT:
- if (menu == app_menu_)
- page_menu_->RequestFocus();
- else
- app_menu_->RequestFocus();
- return true;
- case base::VKEY_UP:
- case base::VKEY_DOWN:
- case base::VKEY_RETURN:
- case base::VKEY_SPACE:
- // Hide the tooltip before activating a menu button.
- if (GetWidget()->GetTooltipManager())
- GetWidget()->GetTooltipManager()->HideKeyboardTooltip();
-
- ActivateMenuButton(menu);
- return true;
- default:
- return false;
- }
-}
-
gfx::Size ToolbarView::GetPreferredSize() {
if (IsDisplayModeNormal()) {
int min_width = kControlIndent + back_->GetPreferredSize().width() +
@@ -834,99 +708,11 @@ void ToolbarView::LoadRightSideControlsImages() {
void ToolbarView::RunPageMenu(const gfx::Point& pt) {
page_menu_model_.reset(new PageMenuModel(this, browser_));
page_menu_menu_.reset(new views::Menu2(page_menu_model_.get()));
- for (unsigned int i = 0; i < menu_listeners_.size(); i++) {
- page_menu_menu_->AddMenuListener(menu_listeners_[i]);
- }
page_menu_menu_->RunMenuAt(pt, views::Menu2::ALIGN_TOPRIGHT);
- for (unsigned int i = 0; i < menu_listeners_.size(); i++) {
- page_menu_menu_->RemoveMenuListener(menu_listeners_[i]);
- }
- SwitchToOtherMenuIfNeeded(page_menu_menu_.get(), app_menu_);
}
void ToolbarView::RunAppMenu(const gfx::Point& pt) {
if (app_menu_model_->BuildProfileSubMenu())
app_menu_menu_->Rebuild();
- for (unsigned int i = 0; i < menu_listeners_.size(); i++) {
- app_menu_menu_->AddMenuListener(menu_listeners_[i]);
- }
app_menu_menu_->RunMenuAt(pt, views::Menu2::ALIGN_TOPRIGHT);
- for (unsigned int i = 0; i < menu_listeners_.size(); i++) {
- app_menu_menu_->RemoveMenuListener(menu_listeners_[i]);
- }
- SwitchToOtherMenuIfNeeded(app_menu_menu_.get(), page_menu_);
-}
-
-void ToolbarView::SwitchToOtherMenuIfNeeded(
- views::Menu2* previous_menu, views::MenuButton* next_menu_button) {
- // If the user tried to move to the right or left, switch from the
- // app menu to the page menu. Switching to the next menu is delayed
- // until the next event loop so that the call stack that initiated
- // activating the first menu can return. (If we didn't do this, the
- // call stack would grow each time the user switches menus, and
- // the actions taken after the user finally exits a menu would cause
- // flicker.)
- views::MenuWrapper::MenuAction action = previous_menu->GetMenuAction();
- if (action == views::MenuWrapper::MENU_ACTION_NEXT ||
- action == views::MenuWrapper::MENU_ACTION_PREVIOUS) {
- MessageLoop::current()->PostTask(
- FROM_HERE, method_factory_.NewRunnableMethod(
- &ToolbarView::ActivateMenuButton,
- next_menu_button));
- }
-}
-
-void ToolbarView::ActivateMenuButton(views::MenuButton* menu_button) {
-#if defined(OS_LINUX)
- // Under GTK, opening a pop-up menu causes the main window to lose focus.
- // Focus is automatically returned when the menu closes.
- //
- // Make sure that the menu button being activated has focus, so that
- // when the user escapes from the menu without selecting anything, focus
- // will be returned here.
- if (!menu_button->HasFocus()) {
- menu_button->RequestFocus();
- GetFocusManager()->StoreFocusedView();
- }
-#endif
-
-#if defined(OS_WIN)
- // On Windows, we have to explicitly clear the focus before opening
- // the pop-up menu, then set the focus again when it closes.
- GetFocusManager()->ClearFocus();
-#endif
-
- // Tell the menu button to activate, opening its pop-up menu.
- menu_button->Activate();
-
-#if defined(OS_WIN)
- EnterMenuBarEmulationMode(last_focused_view_storage_id_, menu_button);
-#endif
-}
-
-void ToolbarView::ExitMenuBarEmulationMode() {
- if (page_menu_->HasFocus() || app_menu_->HasFocus())
- RestoreLastFocusedView();
-
- views::FocusManager* focus_manager = GetFocusManager();
- focus_manager->UnregisterAccelerators(this);
- focus_manager->RemoveFocusChangeListener(this);
- page_menu_->SetFocusable(false);
- app_menu_->SetFocusable(false);
-}
-
-void ToolbarView::RestoreLastFocusedView() {
- views::ViewStorage* view_storage = views::ViewStorage::GetSharedInstance();
- views::View* last_focused_view =
- view_storage->RetrieveView(last_focused_view_storage_id_);
- if (last_focused_view) {
- last_focused_view->RequestFocus();
- } else {
- // Focus the location bar
- views::View* view = GetAncestorWithClassName(BrowserView::kViewClassName);
- if (view) {
- BrowserView* browser_view = static_cast<BrowserView*>(view);
- browser_view->SetFocusToLocationBar();
- }
- }
}
diff --git a/chrome/browser/views/toolbar_view.h b/chrome/browser/views/toolbar_view.h
index 675eb33..23f5232 100644
--- a/chrome/browser/views/toolbar_view.h
+++ b/chrome/browser/views/toolbar_view.h
@@ -20,7 +20,6 @@
#include "chrome/browser/views/location_bar_view.h"
#include "views/controls/button/menu_button.h"
#include "views/controls/menu/menu.h"
-#include "views/controls/menu/menu_wrapper.h"
#include "views/controls/menu/view_menu_delegate.h"
#include "views/view.h"
@@ -37,7 +36,6 @@ class Menu2;
class ToolbarView : public AccessibleToolbarView,
public views::ViewMenuDelegate,
public views::DragController,
- public views::FocusChangeListener,
public menus::SimpleMenuModel::Delegate,
public LocationBarView::Delegate,
public NotificationObserver,
@@ -46,7 +44,7 @@ class ToolbarView : public AccessibleToolbarView,
public BubblePositioner {
public:
explicit ToolbarView(Browser* browser);
- virtual ~ToolbarView();
+ virtual ~ToolbarView() { }
// Create the contents of the Browser Toolbar
void Init(Profile* profile);
@@ -64,25 +62,6 @@ class ToolbarView : public AccessibleToolbarView,
// Sets the app menu model.
void SetAppMenuModel(AppMenuModel* model);
- // Focuses the page menu and enters a special mode where the page
- // and app menus are focusable and allow for keyboard navigation just
- // like a normal menu bar. As soon as focus leaves one of the menus,
- // the special mode is exited.
- //
- // Pass it the storage id of the view where focus should be returned
- // if the user escapes, and the menu button to focus initially. If
- // |menu_to_focus| is NULL, it will focus the page menu by default.
- //
- // Not used on the Mac, which has a "normal" menu bar.
- void EnterMenuBarEmulationMode(int last_focused_view_storage_id,
- views::MenuButton* menu_to_focus);
-
- // Add a listener to receive a callback when the menu opens.
- void AddMenuListener(views::MenuListener* listener);
-
- // Remove a menu listener.
- void RemoveMenuListener(views::MenuListener* listener);
-
// Accessors...
Browser* browser() const { return browser_; }
BrowserActionsContainer* browser_actions() const { return browser_actions_; }
@@ -92,10 +71,6 @@ class ToolbarView : public AccessibleToolbarView,
views::MenuButton* page_menu() const { return page_menu_; }
views::MenuButton* app_menu() const { return app_menu_; }
- // Overridden from views::FocusChangeListener:
- virtual void FocusWillChange(views::View* focused_before,
- views::View* focused_now);
-
// Overridden from AccessibleToolbarView:
virtual bool IsAccessibleViewTraversable(views::View* view);
@@ -131,7 +106,6 @@ class ToolbarView : public AccessibleToolbarView,
virtual void ExecuteCommand(int command_id);
// Overridden from views::View:
- virtual bool AcceleratorPressed(const views::Accelerator& accelerator);
virtual gfx::Size GetPreferredSize();
virtual void Layout();
virtual void Paint(gfx::Canvas* canvas);
@@ -164,13 +138,6 @@ class ToolbarView : public AccessibleToolbarView,
void RunPageMenu(const gfx::Point& pt);
void RunAppMenu(const gfx::Point& pt);
- // Check if the menu exited with a code indicating the user wants to
- // switch to the other menu, and then switch to that other menu.
- void SwitchToOtherMenuIfNeeded(views::Menu2* previous_menu,
- views::MenuButton* next_menu_button);
-
- void ActivateMenuButton(views::MenuButton* menu_button);
-
// Types of display mode this toolbar can have.
enum DisplayMode {
DISPLAYMODE_NORMAL, // Normal toolbar with buttons, etc.
@@ -181,14 +148,6 @@ class ToolbarView : public AccessibleToolbarView,
return display_mode_ == DISPLAYMODE_NORMAL;
}
- // Take the menus out of the focus traversal, unregister accelerators,
- // and stop listening to focus change events.
- void ExitMenuBarEmulationMode();
-
- // Restore the view that was focused before EnterMenuBarEmulationMode
- // was called.
- void RestoreLastFocusedView();
-
scoped_ptr<BackForwardMenuModel> back_menu_model_;
scoped_ptr<BackForwardMenuModel> forward_menu_model_;
@@ -227,16 +186,6 @@ class ToolbarView : public AccessibleToolbarView,
// TODO(beng): build these into MenuButton.
scoped_ptr<views::Menu2> page_menu_menu_;
scoped_ptr<views::Menu2> app_menu_menu_;
-
- // Storage id for the last view that was focused before focus
- // was given to one of the toolbar views.
- int last_focused_view_storage_id_;
-
- // Vector of listeners to receive callbacks when the menu opens.
- std::vector<views::MenuListener*> menu_listeners_;
-
- // Used to post tasks to switch to the next/previous menu.
- ScopedRunnableMethodFactory<ToolbarView> method_factory_;
};
#endif // CHROME_BROWSER_VIEWS_TOOLBAR_VIEW_H_
diff --git a/chrome/chrome_tests.gypi b/chrome/chrome_tests.gypi
index e978edf..582ce0a 100644
--- a/chrome/chrome_tests.gypi
+++ b/chrome/chrome_tests.gypi
@@ -317,7 +317,6 @@
'test/ui/dromaeo_benchmark_uitest.cc',
'test/ui/fast_shutdown_uitest.cc',
'test/ui/history_uitest.cc',
- 'test/ui/keyboard_access_uitest.cc',
'test/ui/layout_plugin_uitest.cc',
'test/ui/mouseleave_uitest.cc',
'test/ui/npapi_uitest.cc',
diff --git a/chrome/test/automation/automation_messages_internal.h b/chrome/test/automation/automation_messages_internal.h
index 0e82155..7447020 100644
--- a/chrome/test/automation/automation_messages_internal.h
+++ b/chrome/test/automation/automation_messages_internal.h
@@ -1288,23 +1288,4 @@ IPC_BEGIN_MESSAGES(Automation)
int64 /* id */,
bool /* success */)
- // Block until the focused view id changes to something other than
- // |previous_view_id|.
- IPC_SYNC_MESSAGE_ROUTED2_2(AutomationMsg_WaitForFocusedViewIDToChange,
- int /* window handle */,
- int /* previous_view_id */,
- bool /* success */,
- int /* new_view_id */)
-
- // To avoid race conditions, waiting until a popup menu opens is a
- // three-step process:
- // 1. Call StartTrackingPopupMenus.
- // 2. Call an automation method that results in opening the popup menu.
- // 3. Call WaitForPopupMenuToOpen and check for success.
- IPC_SYNC_MESSAGE_ROUTED1_1(AutomationMsg_StartTrackingPopupMenus,
- int /* browser handle */,
- bool /* success */)
- IPC_SYNC_MESSAGE_ROUTED0_1(AutomationMsg_WaitForPopupMenuToOpen,
- bool /* success */)
-
IPC_END_MESSAGES(Automation)
diff --git a/chrome/test/automation/browser_proxy.cc b/chrome/test/automation/browser_proxy.cc
index f0825a0..6db138e 100644
--- a/chrome/test/automation/browser_proxy.cc
+++ b/chrome/test/automation/browser_proxy.cc
@@ -91,7 +91,7 @@ bool BrowserProxy::GetActiveTabIndex(int* active_tab_index) const {
*active_tab_index = active_tab_index_response;
return true;
}
-
+
return false;
}
@@ -561,24 +561,3 @@ bool BrowserProxy::ShutdownSessionService() {
return did_shutdown;
}
-bool BrowserProxy::StartTrackingPopupMenus() {
- if (!is_valid())
- return false;
-
- bool result = false;
- if (!sender_->Send(new AutomationMsg_StartTrackingPopupMenus
- (0, handle_, &result)))
- return false;
- return result;
-}
-
-bool BrowserProxy::WaitForPopupMenuToOpen() {
- if (!is_valid())
- return false;
-
- bool result = false;
- if (!sender_->Send(new AutomationMsg_WaitForPopupMenuToOpen
- (0, &result)))
- return false;
- return result;
-}
diff --git a/chrome/test/automation/browser_proxy.h b/chrome/test/automation/browser_proxy.h
index 509a630..a21bfe6 100644
--- a/chrome/test/automation/browser_proxy.h
+++ b/chrome/test/automation/browser_proxy.h
@@ -217,15 +217,6 @@ class BrowserProxy : public AutomationResourceProxy {
// on success.
bool ShutdownSessionService() WARN_UNUSED_RESULT;
- // To avoid race conditions, waiting until a popup menu opens is a
- // three-step process:
- // 1. Call StartTrackingPopupMenus.
- // 2. Call an automation method that results in opening the popup menu.
- // 3. Call WaitForPopupMenuToOpen and check for success.
- // Both methods return true on success.
- bool StartTrackingPopupMenus() WARN_UNUSED_RESULT;
- bool WaitForPopupMenuToOpen() WARN_UNUSED_RESULT;
-
protected:
virtual ~BrowserProxy() {}
private:
diff --git a/chrome/test/automation/window_proxy.cc b/chrome/test/automation/window_proxy.cc
index c098abd..295f05b 100644
--- a/chrome/test/automation/window_proxy.cc
+++ b/chrome/test/automation/window_proxy.cc
@@ -123,15 +123,6 @@ bool WindowProxy::GetFocusedViewID(int* view_id) {
view_id));
}
-bool WindowProxy::WaitForFocusedViewIDToChange(
- int old_view_id, int* new_view_id) {
- bool result = false;
- if (!sender_->Send(new AutomationMsg_WaitForFocusedViewIDToChange
- (0, handle_, old_view_id, &result, new_view_id)))
- return false;
- return result;
-}
-
scoped_refptr<BrowserProxy> WindowProxy::GetBrowser() {
return GetBrowserWithTimeout(base::kNoTimeout, NULL);
}
diff --git a/chrome/test/automation/window_proxy.h b/chrome/test/automation/window_proxy.h
index 3f6fa8a..3c5deca 100644
--- a/chrome/test/automation/window_proxy.h
+++ b/chrome/test/automation/window_proxy.h
@@ -90,10 +90,6 @@ class WindowProxy : public AutomationResourceProxy {
// was retrieved.
bool GetFocusedViewID(int* view_id);
- // Waits until the focused view ID changes to something other than
- // |old_view_id|. Returns true if the focused view ID did change.
- bool WaitForFocusedViewIDToChange(int old_view_id, int* new_view_id);
-
// Returns the browser this window corresponds to, or NULL if this window
// is not a browser. The caller owns the returned BrowserProxy.
scoped_refptr<BrowserProxy> GetBrowser();
diff --git a/chrome/test/test_browser_window.h b/chrome/test/test_browser_window.h
index 1390dd8..169afdb 100644
--- a/chrome/test/test_browser_window.h
+++ b/chrome/test/test_browser_window.h
@@ -48,7 +48,6 @@ class TestBrowserWindow : public BrowserWindow {
virtual void UpdateToolbar(TabContents* contents,
bool should_restore_state) {}
virtual void FocusToolbar() {}
- virtual void FocusPageAndAppMenus() {}
virtual void ShowPageMenu() {}
virtual void ShowAppMenu() {}
virtual bool PreHandleKeyboardEvent(const NativeWebKeyboardEvent& event,
diff --git a/chrome/test/ui/keyboard_access_uitest.cc b/chrome/test/ui/keyboard_access_uitest.cc
deleted file mode 100644
index f5c339e..0000000
--- a/chrome/test/ui/keyboard_access_uitest.cc
+++ /dev/null
@@ -1,104 +0,0 @@
-// Copyright (c) 2010 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "base/keyboard_codes.h"
-#include "chrome/test/automation/browser_proxy.h"
-#include "chrome/test/automation/tab_proxy.h"
-#include "chrome/test/automation/window_proxy.h"
-#include "chrome/test/ui/ui_test.h"
-#include "googleurl/src/gurl.h"
-
-// This functionality currently works on Windows and on Linux when
-// toolkit_views is defined (i.e. for Chrome OS). It's not needed
-// on the Mac, and it's not yet implemented on Linux.
-#if defined(TOOLKIT_VIEWS)
-
-namespace {
-
-class KeyboardAccessTest : public UITest {
- public:
- KeyboardAccessTest() {
- dom_automation_enabled_ = true;
- show_window_ = true;
- }
-
- // Use the keyboard to select "New Tab" from the app menu.
- // This test depends on the fact that there are two menus and that
- // New Tab is the first item in the app menu. If the menus change,
- // this test will need to be changed to reflect that.
- //
- // If alternate_key_sequence is true, use "Alt" instead of "F10" to
- // open the menu bar, and "Down" instead of "Enter" to open a menu.
- void TestMenuKeyboardAccess(bool alternate_key_sequence);
-
- DISALLOW_COPY_AND_ASSIGN(KeyboardAccessTest);
-};
-
-void KeyboardAccessTest::TestMenuKeyboardAccess(bool alternate_key_sequence) {
- scoped_refptr<BrowserProxy> browser = automation()->GetBrowserWindow(0);
- ASSERT_TRUE(browser.get());
- scoped_refptr<WindowProxy> window = browser->GetWindow();
- ASSERT_TRUE(window.get());
-
- // Navigate to a page in the first tab, which makes sure that focus is
- // set to the browser window.
- scoped_refptr<TabProxy> tab(GetActiveTab());
- ASSERT_TRUE(tab.get());
-
- ASSERT_TRUE(tab->NavigateToURL(GURL("about:")));
-
- // The initial tab index should be 0.
- int tab_index = -1;
- ASSERT_TRUE(browser->GetActiveTabIndex(&tab_index));
- ASSERT_EQ(0, tab_index);
-
- // Get the focused view ID, then press a key to activate the
- // page menu, then wait until the focused view changes.
- int original_view_id = -1;
- ASSERT_TRUE(window->GetFocusedViewID(&original_view_id));
-
- if (alternate_key_sequence)
- ASSERT_TRUE(window->SimulateOSKeyPress(base::VKEY_MENU, 0));
- else
- ASSERT_TRUE(window->SimulateOSKeyPress(base::VKEY_F10, 0));
-
- int new_view_id = -1;
- ASSERT_TRUE(window->WaitForFocusedViewIDToChange(
- original_view_id, &new_view_id));
-
- ASSERT_TRUE(browser->StartTrackingPopupMenus());
-
- // Press RIGHT to focus the app menu, then RETURN or DOWN to open it.
- ASSERT_TRUE(window->SimulateOSKeyPress(base::VKEY_RIGHT, 0));
- if (alternate_key_sequence)
- ASSERT_TRUE(window->SimulateOSKeyPress(base::VKEY_DOWN, 0));
- else
- ASSERT_TRUE(window->SimulateOSKeyPress(base::VKEY_RETURN, 0));
-
- // Wait until the popup menu actually opens.
- ASSERT_TRUE(browser->WaitForPopupMenuToOpen());
-
- // Press DOWN to select the first item, then RETURN to select it.
- ASSERT_TRUE(window->SimulateOSKeyPress(base::VKEY_DOWN, 0));
- ASSERT_TRUE(window->SimulateOSKeyPress(base::VKEY_RETURN, 0));
-
- // Wait for the new tab to appear.
- ASSERT_TRUE(browser->WaitForTabCountToBecome(2, sleep_timeout_ms()));
-
- // Make sure that the new tab index is 1.
- ASSERT_TRUE(browser->GetActiveTabIndex(&tab_index));
- ASSERT_EQ(1, tab_index);
-}
-
-TEST_F(KeyboardAccessTest, TestMenuKeyboardAccess) {
- TestMenuKeyboardAccess(false);
-}
-
-TEST_F(KeyboardAccessTest, TestAltMenuKeyboardAccess) {
- TestMenuKeyboardAccess(true);
-}
-
-} // namespace
-
-#endif // defined(TOOLKIT_VIEWS)