summaryrefslogtreecommitdiffstats
path: root/chrome
diff options
context:
space:
mode:
authorctguil@chromium.org <ctguil@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-05-17 21:09:13 +0000
committerctguil@chromium.org <ctguil@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-05-17 21:09:13 +0000
commit6a04ac2239221e2b64fe256507f136533cd541d3 (patch)
tree2fcc7d3e1f028b0278e43e9b0618861e870577f7 /chrome
parent8ec7bcff01381b7555f4dd1acc7184623dff5fd9 (diff)
downloadchromium_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.h6
-rw-r--r--chrome/browser/cocoa/browser_window_cocoa.h2
-rw-r--r--chrome/browser/cocoa/browser_window_cocoa.mm6
-rw-r--r--chrome/browser/gtk/browser_window_gtk.cc3
-rw-r--r--chrome/browser/gtk/browser_window_gtk.h2
-rw-r--r--chrome/browser/views/about_chrome_view.cc28
-rw-r--r--chrome/browser/views/browser_dialogs.h4
-rw-r--r--chrome/browser/views/browser_views_accessibility_browsertest.cc25
-rw-r--r--chrome/browser/views/frame/browser_view.cc6
-rw-r--r--chrome/browser/views/frame/browser_view.h2
-rw-r--r--chrome/test/test_browser_window.h2
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) {}