| Index: chrome/browser/guestview/webview/webview_guest.cc
|
| diff --git a/chrome/browser/guestview/webview/webview_guest.cc b/chrome/browser/guestview/webview/webview_guest.cc
|
| index 8960ebf1df332f26fc979c9e362495bd148fd6ca..28163791da0944e5fe76af689e1d0da0ac5fa4ec 100644
|
| --- a/chrome/browser/guestview/webview/webview_guest.cc
|
| +++ b/chrome/browser/guestview/webview/webview_guest.cc
|
| @@ -139,9 +139,12 @@ WebViewGuest::WebViewGuest(WebContents* guest_web_contents,
|
| content::Source<WebContents>(guest_web_contents));
|
|
|
| #if defined(OS_CHROMEOS)
|
| - notification_registrar_.Add(this,
|
| - chrome::NOTIFICATION_CROS_ACCESSIBILITY_TOGGLE_SPOKEN_FEEDBACK,
|
| - content::NotificationService::AllSources());
|
| + chromeos::AccessibilityManager* accessibility_manager =
|
| + chromeos::AccessibilityManager::Get();
|
| + CHECK(accessibility_manager);
|
| + accessibility_subscription_ = accessibility_manager->RegisterCallback(
|
| + base::Bind(&WebViewGuest::OnAccessibilityStatusChanged,
|
| + base::Unretained(this)));
|
| #endif
|
|
|
| AttachWebViewHelpers(guest_web_contents);
|
| @@ -475,11 +478,6 @@ void WebViewGuest::Observe(int type,
|
| is_top_level);
|
| break;
|
| }
|
| -#if defined(OS_CHROMEOS)
|
| - case chrome::NOTIFICATION_CROS_ACCESSIBILITY_TOGGLE_SPOKEN_FEEDBACK:
|
| - InjectChromeVoxIfNeeded(guest_web_contents()->GetRenderViewHost());
|
| - break;
|
| -#endif
|
| default:
|
| NOTREACHED() << "Unexpected notification sent.";
|
| break;
|
| @@ -750,6 +748,18 @@ void WebViewGuest::SizeChanged(const gfx::Size& old_size,
|
| DispatchEvent(new GuestView::Event(webview::kEventSizeChanged, args.Pass()));
|
| }
|
|
|
| +#if defined(OS_CHROMEOS)
|
| +void WebViewGuest::OnAccessibilityStatusChanged(
|
| + const chromeos::AccessibilityStatusEventDetails& details) {
|
| + if (details.notification_type == chromeos::ACCESSIBILITY_MANAGER_SHUTDOWN) {
|
| + accessibility_subscription_.reset();
|
| + } else if (details.notification_type ==
|
| + chromeos::ACCESSIBILITY_TOGGLE_SPOKEN_FEEDBACK) {
|
| + InjectChromeVoxIfNeeded(guest_web_contents()->GetRenderViewHost());
|
| + }
|
| +}
|
| +#endif
|
| +
|
| void WebViewGuest::InjectChromeVoxIfNeeded(
|
| content::RenderViewHost* render_view_host) {
|
| #if defined(OS_CHROMEOS)
|
|
|