Commit 5fd7f0ba authored by dzhioev@chromium.org's avatar dzhioev@chromium.org

ChromeVox enabled for every WebDialog created by call to ShowWebDialog.

While I was investigating http://crbug.com/355650 I noticed that
ChromeVox doesn't work not only in cloud print dialog but in every dialog that
was created by ShowWebDialog. This problem can be fixed by creating extension
web contents observer for contents of dialog.

BUG=355650
TEST=manually

Review URL: https://codereview.chromium.org/256783006

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@272333 0039d316-1c4b-4281-b951-d872f2087c98
parent fa69f2b6
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#include "chrome/browser/extensions/chrome_extension_web_contents_observer.h"
#include "chrome/browser/ui/browser_dialogs.h" #include "chrome/browser/ui/browser_dialogs.h"
#include "chrome/browser/ui/webui/chrome_web_contents_handler.h" #include "chrome/browser/ui/webui/chrome_web_contents_handler.h"
#include "ui/views/controls/webview/web_dialog_view.h" #include "ui/views/controls/webview/web_dialog_view.h"
...@@ -14,20 +15,20 @@ gfx::NativeWindow ShowWebDialog(gfx::NativeWindow parent, ...@@ -14,20 +15,20 @@ gfx::NativeWindow ShowWebDialog(gfx::NativeWindow parent,
content::BrowserContext* context, content::BrowserContext* context,
ui::WebDialogDelegate* delegate) { ui::WebDialogDelegate* delegate) {
views::Widget* widget = NULL; views::Widget* widget = NULL;
views::WebDialogView* view =
new views::WebDialogView(context, delegate, new ChromeWebContentsHandler);
if (parent) { if (parent) {
widget = views::Widget::CreateWindowWithParent( widget = views::Widget::CreateWindowWithParent(view, parent);
new views::WebDialogView(context,
delegate,
new ChromeWebContentsHandler),
parent);
} else { } else {
// We shouldn't be called with a NULL parent, but sometimes are. // We shouldn't be called with a NULL parent, but sometimes are.
widget = views::Widget::CreateWindow( widget = views::Widget::CreateWindow(view);
new views::WebDialogView(context,
delegate,
new ChromeWebContentsHandler));
} }
// Observer is needed for ChromeVox extension to send messages between content
// and background scripts.
extensions::ChromeExtensionWebContentsObserver::CreateForWebContents(
view->web_contents());
widget->Show(); widget->Show();
return widget->GetNativeWindow(); return widget->GetNativeWindow();
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment