diff options
author | ctguil@chromium.org <ctguil@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-05-17 21:09:13 +0000 |
---|---|---|
committer | ctguil@chromium.org <ctguil@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-05-17 21:09:13 +0000 |
commit | 6a04ac2239221e2b64fe256507f136533cd541d3 (patch) | |
tree | 2fcc7d3e1f028b0278e43e9b0618861e870577f7 /chrome | |
parent | 8ec7bcff01381b7555f4dd1acc7184623dff5fd9 (diff) | |
download | chromium_src-6a04ac2239221e2b64fe256507f136533cd541d3.zip chromium_src-6a04ac2239221e2b64fe256507f136533cd541d3.tar.gz chromium_src-6a04ac2239221e2b64fe256507f136533cd541d3.tar.bz2 |
Provide accessibility support for Window_win.
TEST=Ensure that the About Chrome dialog has proper accessibility role.
BUG=none
Review URL: http://codereview.chromium.org/1838002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@47454 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
-rw-r--r-- | chrome/browser/browser_window.h | 6 | ||||
-rw-r--r-- | chrome/browser/cocoa/browser_window_cocoa.h | 2 | ||||
-rw-r--r-- | chrome/browser/cocoa/browser_window_cocoa.mm | 6 | ||||
-rw-r--r-- | chrome/browser/gtk/browser_window_gtk.cc | 3 | ||||
-rw-r--r-- | chrome/browser/gtk/browser_window_gtk.h | 2 | ||||
-rw-r--r-- | chrome/browser/views/about_chrome_view.cc | 28 | ||||
-rw-r--r-- | chrome/browser/views/browser_dialogs.h | 4 | ||||
-rw-r--r-- | chrome/browser/views/browser_views_accessibility_browsertest.cc | 25 | ||||
-rw-r--r-- | chrome/browser/views/frame/browser_view.cc | 6 | ||||
-rw-r--r-- | chrome/browser/views/frame/browser_view.h | 2 | ||||
-rw-r--r-- | chrome/test/test_browser_window.h | 2 |
11 files changed, 61 insertions, 25 deletions
diff --git a/chrome/browser/browser_window.h b/chrome/browser/browser_window.h index c23c4e1..ad10784 100644 --- a/chrome/browser/browser_window.h +++ b/chrome/browser/browser_window.h @@ -30,6 +30,10 @@ namespace gfx { class Rect; } +namespace views { +class Window; +} + //////////////////////////////////////////////////////////////////////////////// // BrowserWindow interface // An interface implemented by the "view" of the Browser window. @@ -177,7 +181,7 @@ class BrowserWindow { virtual void ToggleExtensionShelf() = 0; // Shows the About Chrome dialog box. - virtual void ShowAboutChromeDialog() = 0; + virtual views::Window* ShowAboutChromeDialog() = 0; // Shows the Task manager. virtual void ShowTaskManager() = 0; diff --git a/chrome/browser/cocoa/browser_window_cocoa.h b/chrome/browser/cocoa/browser_window_cocoa.h index 3831dd0..2aeffe5 100644 --- a/chrome/browser/cocoa/browser_window_cocoa.h +++ b/chrome/browser/cocoa/browser_window_cocoa.h @@ -65,7 +65,7 @@ class BrowserWindowCocoa : public BrowserWindow, Profile* profile); virtual void ToggleBookmarkBar(); virtual void ToggleExtensionShelf(); - virtual void ShowAboutChromeDialog(); + virtual views::Window* ShowAboutChromeDialog(); virtual void ShowTaskManager(); virtual void ShowBookmarkBubble(const GURL& url, bool already_bookmarked); virtual bool IsDownloadShelfVisible() const; diff --git a/chrome/browser/cocoa/browser_window_cocoa.mm b/chrome/browser/cocoa/browser_window_cocoa.mm index dd5316b..d5e95a5 100644 --- a/chrome/browser/cocoa/browser_window_cocoa.mm +++ b/chrome/browser/cocoa/browser_window_cocoa.mm @@ -252,8 +252,9 @@ void BrowserWindowCocoa::AddFindBar( return [controller_ addFindBar:find_bar_cocoa_controller]; } -void BrowserWindowCocoa::ShowAboutChromeDialog() { +views::Window* BrowserWindowCocoa::ShowAboutChromeDialog() { NOTIMPLEMENTED(); + return NULL; } void BrowserWindowCocoa::ShowTaskManager() { @@ -308,7 +309,8 @@ void BrowserWindowCocoa::ShowNewProfileDialog() { NOTIMPLEMENTED(); } -void BrowserWindowCocoa::ShowRepostFormWarningDialog(TabContents* tab_contents) { +void BrowserWindowCocoa::ShowRepostFormWarningDialog( + TabContents* tab_contents) { RepostFormWarningMac::Create(GetNativeHandle(), tab_contents); } diff --git a/chrome/browser/gtk/browser_window_gtk.cc b/chrome/browser/gtk/browser_window_gtk.cc index a6480e9..90f55f8 100644 --- a/chrome/browser/gtk/browser_window_gtk.cc +++ b/chrome/browser/gtk/browser_window_gtk.cc @@ -878,8 +878,9 @@ void BrowserWindowGtk::ToggleExtensionShelf() { NOTIMPLEMENTED(); } -void BrowserWindowGtk::ShowAboutChromeDialog() { +views::Window* BrowserWindowGtk::ShowAboutChromeDialog() { ShowAboutDialogForProfile(window_, browser_->profile()); + return NULL; } void BrowserWindowGtk::ShowTaskManager() { diff --git a/chrome/browser/gtk/browser_window_gtk.h b/chrome/browser/gtk/browser_window_gtk.h index a2d1ef2..24b1af7 100644 --- a/chrome/browser/gtk/browser_window_gtk.h +++ b/chrome/browser/gtk/browser_window_gtk.h @@ -84,7 +84,7 @@ class BrowserWindowGtk : public BrowserWindow, Profile* profile); virtual void ToggleBookmarkBar(); virtual void ToggleExtensionShelf(); - virtual void ShowAboutChromeDialog(); + virtual views::Window* ShowAboutChromeDialog(); virtual void ShowTaskManager(); virtual void ShowBookmarkBubble(const GURL& url, bool already_bookmarked); virtual bool IsDownloadShelfVisible() const; diff --git a/chrome/browser/views/about_chrome_view.cc b/chrome/browser/views/about_chrome_view.cc index c22dec8..3fb92de 100644 --- a/chrome/browser/views/about_chrome_view.cc +++ b/chrome/browser/views/about_chrome_view.cc @@ -70,13 +70,17 @@ std::wstring StringSubRange(const std::wstring& text, size_t start, namespace browser { -// Declared in browser_dialogs.h so that others don't need to depend on our .h. -void ShowAboutChromeView(gfx::NativeWindow parent, - Profile* profile) { - views::Window::CreateChromeWindow(parent, - gfx::Rect(), - new AboutChromeView(profile))->Show(); -} + // Declared in browser_dialogs.h so that others don't + // need to depend on our .h. + views::Window* ShowAboutChromeView(gfx::NativeWindow parent, + Profile* profile) { + views::Window* about_chrome_window = + views::Window::CreateChromeWindow(parent, + gfx::Rect(), + new AboutChromeView(profile)); + about_chrome_window->Show(); + return about_chrome_window; + } } // namespace browser @@ -559,6 +563,10 @@ std::wstring AboutChromeView::GetDialogButtonLabel( return L""; } +std::wstring AboutChromeView::GetWindowTitle() const { + return l10n_util::GetString(IDS_ABOUT_CHROME_TITLE); +} + bool AboutChromeView::IsDialogButtonEnabled( MessageBoxFlags::DialogButton button) const { if (button == MessageBoxFlags::DIALOGBUTTON_OK && @@ -599,10 +607,6 @@ bool AboutChromeView::IsModal() const { return true; } -std::wstring AboutChromeView::GetWindowTitle() const { - return l10n_util::GetString(IDS_ABOUT_CHROME_TITLE); -} - bool AboutChromeView::Accept() { #if defined(OS_WIN) || defined(OS_CHROMEOS) UpdateStatus(UPGRADE_STARTED, GOOGLE_UPDATE_NO_ERROR); @@ -762,7 +766,7 @@ void AboutChromeView::UpdateStatus(GoogleUpdateUpgradeResult result, new_version_available_); update_label_.SetText(update_string); show_success_indicator = true; - // TODO (seanparent) : Need to see if this code needs to change to + // TODO(seanparent): Need to see if this code needs to change to // force a machine restart. #if defined(OS_WIN) RestartMessageBox::ShowMessageBox(window()->GetNativeWindow()); diff --git a/chrome/browser/views/browser_dialogs.h b/chrome/browser/views/browser_dialogs.h index 4fa37be..b0075fb 100644 --- a/chrome/browser/views/browser_dialogs.h +++ b/chrome/browser/views/browser_dialogs.h @@ -69,8 +69,8 @@ bool IsBookmarkBubbleViewShowing(); void ShowBookmarkManagerView(Profile* profile); // Shows the about dialog. See AboutChromeView. -void ShowAboutChromeView(gfx::NativeWindow parent, - Profile* profile); +views::Window* ShowAboutChromeView(gfx::NativeWindow parent, + Profile* profile); // Shows an HTML dialog. See HtmlDialogView. void ShowHtmlDialogView(gfx::NativeWindow parent, Profile* profile, diff --git a/chrome/browser/views/browser_views_accessibility_browsertest.cc b/chrome/browser/views/browser_views_accessibility_browsertest.cc index ea1b4d2..bddbb2d 100644 --- a/chrome/browser/views/browser_views_accessibility_browsertest.cc +++ b/chrome/browser/views/browser_views_accessibility_browsertest.cc @@ -271,5 +271,30 @@ IN_PROC_BROWSER_TEST_F(BrowserViewsAccessibilityTest, l10n_util::GetString(IDS_ACCNAME_BOOKMARKS), ROLE_SYSTEM_TOOLBAR); } + +IN_PROC_BROWSER_TEST_F(BrowserViewsAccessibilityTest, + TestAboutChromeViewAccObj) { + // Firstly, test that the WindowDelegate got updated. + views::Window* aboutChromeWindow = GetBrowserView()->ShowAboutChromeDialog(); + EXPECT_STREQ(aboutChromeWindow->GetDelegate()->GetWindowTitle().c_str(), + l10n_util::GetString(IDS_ABOUT_CHROME_TITLE).c_str()); + EXPECT_EQ(aboutChromeWindow->GetDelegate()->accessible_role(), + AccessibilityTypes::ROLE_DIALOG); + + // Also test the accessibility object directly. + IAccessible* acc_obj = NULL; + HRESULT hr = + ::AccessibleObjectFromWindow(aboutChromeWindow->GetNativeWindow(), + OBJID_CLIENT, + IID_IAccessible, + reinterpret_cast<void**>(&acc_obj)); + ASSERT_EQ(S_OK, hr); + ASSERT_TRUE(NULL != acc_obj); + + TestAccessibilityInfo(acc_obj, l10n_util::GetString(IDS_ABOUT_CHROME_TITLE), + ROLE_SYSTEM_DIALOG); + + acc_obj->Release(); +} } // Namespace. diff --git a/chrome/browser/views/frame/browser_view.cc b/chrome/browser/views/frame/browser_view.cc index 93de37e..2d36e9c 100644 --- a/chrome/browser/views/frame/browser_view.cc +++ b/chrome/browser/views/frame/browser_view.cc @@ -961,9 +961,9 @@ void BrowserView::ToggleExtensionShelf() { ExtensionShelf::ToggleWhenExtensionShelfVisible(browser_->profile()); } -void BrowserView::ShowAboutChromeDialog() { - browser::ShowAboutChromeView(GetWindow()->GetNativeWindow(), - browser_->profile()); +views::Window* BrowserView::ShowAboutChromeDialog() { + return browser::ShowAboutChromeView(GetWindow()->GetNativeWindow(), + browser_->profile()); } void BrowserView::ShowTaskManager() { diff --git a/chrome/browser/views/frame/browser_view.h b/chrome/browser/views/frame/browser_view.h index ece941b..0f2f12c 100644 --- a/chrome/browser/views/frame/browser_view.h +++ b/chrome/browser/views/frame/browser_view.h @@ -294,7 +294,7 @@ class BrowserView : public BrowserBubbleHost, Profile* profile); virtual void ToggleBookmarkBar(); virtual void ToggleExtensionShelf(); - virtual void ShowAboutChromeDialog(); + virtual views::Window* ShowAboutChromeDialog(); virtual void ShowTaskManager(); virtual void ShowBookmarkBubble(const GURL& url, bool already_bookmarked); virtual void SetDownloadShelfVisible(bool visible); diff --git a/chrome/test/test_browser_window.h b/chrome/test/test_browser_window.h index c524c26..2e2ddcb 100644 --- a/chrome/test/test_browser_window.h +++ b/chrome/test/test_browser_window.h @@ -68,7 +68,7 @@ class TestBrowserWindow : public BrowserWindow { Profile* profile) {} virtual void ToggleBookmarkBar() {} virtual void ToggleExtensionShelf() {} - virtual void ShowAboutChromeDialog() {} + virtual views::Window* ShowAboutChromeDialog() { return NULL; } virtual void ShowTaskManager() {} virtual void ShowBookmarkManager() {} virtual void ShowBookmarkBubble(const GURL& url, bool already_bookmarked) {} |