X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fcontent%2Fbrowser%2Faccessibility%2Fbrowser_accessibility_state_impl.cc;h=1e3063e19de30e2991bed0c13320c1ee7c9a6d6f;hb=4a1a0bdd01eef90b0826a0e761d3379d3715c10f;hp=f45c31d2776807ff2e06e1d28dfd1c8cef521952;hpb=b1be5ca53587d23e7aeb77b26861fdc0a181ffd8;p=platform%2Fframework%2Fweb%2Fcrosswalk.git diff --git a/src/content/browser/accessibility/browser_accessibility_state_impl.cc b/src/content/browser/accessibility/browser_accessibility_state_impl.cc index f45c31d..1e3063e 100644 --- a/src/content/browser/accessibility/browser_accessibility_state_impl.cc +++ b/src/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" @@ -63,7 +62,7 @@ BrowserAccessibilityStateImpl::~BrowserAccessibilityStateImpl() { } void BrowserAccessibilityStateImpl::OnScreenReaderDetected() { - if (CommandLine::ForCurrentProcess()->HasSwitch( + if (base::CommandLine::ForCurrentProcess()->HasSwitch( switches::kDisableRendererAccessibility)) { return; } @@ -84,13 +83,13 @@ void BrowserAccessibilityStateImpl::ResetAccessibilityModeValue() { // On Windows 8, always enable accessibility for editable text controls // so we can show the virtual keyboard when one is enabled. if (base::win::GetVersion() >= base::win::VERSION_WIN8 && - !CommandLine::ForCurrentProcess()->HasSwitch( + !base::CommandLine::ForCurrentProcess()->HasSwitch( switches::kDisableRendererAccessibility)) { accessibility_mode_ = AccessibilityModeEditableTextOnly; } #endif // defined(OS_WIN) - if (CommandLine::ForCurrentProcess()->HasSwitch( + if (base::CommandLine::ForCurrentProcess()->HasSwitch( switches::kForceRendererAccessibility)) { accessibility_mode_ = AccessibilityModeComplete; } @@ -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 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 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() { @@ -139,7 +128,7 @@ void BrowserAccessibilityStateImpl::UpdateHistograms() { UMA_HISTOGRAM_BOOLEAN("Accessibility.InvertedColors", gfx::IsInvertedColorScheme()); UMA_HISTOGRAM_BOOLEAN("Accessibility.ManuallyEnabled", - CommandLine::ForCurrentProcess()->HasSwitch( + base::CommandLine::ForCurrentProcess()->HasSwitch( switches::kForceRendererAccessibility)); } @@ -150,7 +139,7 @@ void BrowserAccessibilityStateImpl::UpdatePlatformSpecificHistograms() { void BrowserAccessibilityStateImpl::AddAccessibilityMode( AccessibilityMode mode) { - if (CommandLine::ForCurrentProcess()->HasSwitch( + if (base::CommandLine::ForCurrentProcess()->HasSwitch( switches::kDisableRendererAccessibility)) { return; } @@ -158,12 +147,12 @@ void BrowserAccessibilityStateImpl::AddAccessibilityMode( accessibility_mode_ = content::AddAccessibilityModeTo(accessibility_mode_, mode); - AddOrRemoveFromRenderWidgets(mode, true); + AddOrRemoveFromAllWebContents(mode, true); } void BrowserAccessibilityStateImpl::RemoveAccessibilityMode( AccessibilityMode mode) { - if (CommandLine::ForCurrentProcess()->HasSwitch( + if (base::CommandLine::ForCurrentProcess()->HasSwitch( switches::kForceRendererAccessibility) && mode == AccessibilityModeComplete) { return; @@ -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 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 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); } }