| 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..e8a1609e61da5320fb65ee9dc86dfa28151700e9 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(&web_contents_vector);
|
| + 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(&web_contents_vector);
|
| + 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);
|
| }
|
| }
|
|
|
|
|