Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4690)

Unified Diff: chrome/browser/guestview/webview/webview_guest.cc

Issue 166273014: Remove dependency on NotificationService for cros a11y settings. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Merge ToT. Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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)

Powered by Google App Engine
This is Rietveld 408576698