Index: content/browser/accessibility/browser_accessibility_state_impl.cc |
diff --git a/content/browser/accessibility/browser_accessibility_state_impl.cc b/content/browser/accessibility/browser_accessibility_state_impl.cc |
index f45c31d2776807ff2e06e1d28dfd1c8cef521952..7fdab1a07998a77d03de253807259d256427d4db 100644 |
--- a/content/browser/accessibility/browser_accessibility_state_impl.cc |
+++ b/content/browser/accessibility/browser_accessibility_state_impl.cc |
@@ -9,9 +9,8 @@ |
#include "base/timer/timer.h" |
#include "content/browser/accessibility/accessibility_mode_helper.h" |
#include "content/browser/renderer_host/render_widget_host_impl.h" |
+#include "content/browser/web_contents/web_contents_impl.h" |
#include "content/public/browser/browser_thread.h" |
-#include "content/public/browser/render_process_host.h" |
-#include "content/public/browser/render_widget_host_iterator.h" |
#include "content/public/common/content_switches.h" |
#include "ui/gfx/sys_color_change_listener.h" |
@@ -99,20 +98,10 @@ void BrowserAccessibilityStateImpl::ResetAccessibilityModeValue() { |
void BrowserAccessibilityStateImpl::ResetAccessibilityMode() { |
ResetAccessibilityModeValue(); |
- // Iterate over all RenderWidgetHosts, even swapped out ones in case |
- // they become active again. |
- scoped_ptr<RenderWidgetHostIterator> widgets( |
- RenderWidgetHostImpl::GetAllRenderWidgetHosts()); |
- while (RenderWidgetHost* widget = widgets->GetNextHost()) { |
- // Ignore processes that don't have a connection, such as crashed tabs. |
- if (!widget->GetProcess()->HasConnection()) |
- continue; |
- if (!widget->IsRenderView()) |
- continue; |
- |
- RenderWidgetHostImpl* rwhi = RenderWidgetHostImpl::From(widget); |
- rwhi->ResetAccessibilityMode(); |
- } |
+ std::vector<WebContentsImpl*> web_contents_vector = |
+ WebContentsImpl::GetAllWebContents(); |
+ for (size_t i = 0; i < web_contents_vector.size(); ++i) |
+ web_contents_vector[i]->SetAccessibilityMode(accessibility_mode()); |
} |
bool BrowserAccessibilityStateImpl::IsAccessibleBrowser() { |
@@ -158,7 +147,7 @@ void BrowserAccessibilityStateImpl::AddAccessibilityMode( |
accessibility_mode_ = |
content::AddAccessibilityModeTo(accessibility_mode_, mode); |
- AddOrRemoveFromRenderWidgets(mode, true); |
+ AddOrRemoveFromAllWebContents(mode, true); |
} |
void BrowserAccessibilityStateImpl::RemoveAccessibilityMode( |
@@ -172,28 +161,19 @@ void BrowserAccessibilityStateImpl::RemoveAccessibilityMode( |
accessibility_mode_ = |
content::RemoveAccessibilityModeFrom(accessibility_mode_, mode); |
- AddOrRemoveFromRenderWidgets(mode, false); |
+ AddOrRemoveFromAllWebContents(mode, false); |
} |
-void BrowserAccessibilityStateImpl::AddOrRemoveFromRenderWidgets( |
+void BrowserAccessibilityStateImpl::AddOrRemoveFromAllWebContents( |
AccessibilityMode mode, |
bool add) { |
- // Iterate over all RenderWidgetHosts, even swapped out ones in case |
- // they become active again. |
- scoped_ptr<RenderWidgetHostIterator> widgets( |
- RenderWidgetHostImpl::GetAllRenderWidgetHosts()); |
- while (RenderWidgetHost* widget = widgets->GetNextHost()) { |
- // Ignore processes that don't have a connection, such as crashed tabs. |
- if (!widget->GetProcess()->HasConnection()) |
- continue; |
- if (!widget->IsRenderView()) |
- continue; |
- |
- RenderWidgetHostImpl* rwhi = RenderWidgetHostImpl::From(widget); |
+ std::vector<WebContentsImpl*> web_contents_vector = |
+ WebContentsImpl::GetAllWebContents(); |
+ for (size_t i = 0; i < web_contents_vector.size(); ++i) { |
if (add) |
- rwhi->AddAccessibilityMode(mode); |
+ web_contents_vector[i]->AddAccessibilityMode(mode); |
else |
- rwhi->RemoveAccessibilityMode(mode); |
+ web_contents_vector[i]->RemoveAccessibilityMode(mode); |
} |
} |