Chromium Code Reviews| Index: content/browser/web_contents/web_contents_impl.cc |
| diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc |
| index 24be3e297f298557beb17143989203ed9827b985..10c652eafd9cba9e59e71b5c7cf37c67f1b63140 100644 |
| --- a/content/browser/web_contents/web_contents_impl.cc |
| +++ b/content/browser/web_contents/web_contents_impl.cc |
| @@ -206,9 +206,8 @@ bool HasMatchingWidgetHost(FrameTree* tree, RenderWidgetHost* host) { |
| return false; |
| } |
| -void SetAccessibilityModeOnFrame(AccessibilityMode mode, |
| - RenderFrameHost* frame_host) { |
| - static_cast<RenderFrameHostImpl*>(frame_host)->SetAccessibilityMode(mode); |
| +void UpdateAccessibilityModeOnFrame(RenderFrameHost* frame_host) { |
| + static_cast<RenderFrameHostImpl*>(frame_host)->UpdateAccessibilityMode(); |
| } |
| void ResetAccessibility(RenderFrameHost* rfh) { |
| @@ -947,14 +946,19 @@ void WebContentsImpl::SetAccessibilityMode(AccessibilityMode mode) { |
| if (mode == accessibility_mode_) |
| return; |
| + // Don't allow accessibility to be enabled for WebContents that are never |
| + // visible, like extension background pages. |
|
nasko
2016/12/02 21:52:14
nit: Technically, this code is in content/, which
dmazzoni
2016/12/02 22:19:24
Sounds good, I'll reword to say just "background"
|
| + if (IsNeverVisible()) |
| + return; |
| + |
| accessibility_mode_ = mode; |
| for (FrameTreeNode* node : frame_tree_.Nodes()) { |
| - SetAccessibilityModeOnFrame(mode, node->current_frame_host()); |
| + UpdateAccessibilityModeOnFrame(node->current_frame_host()); |
| RenderFrameHost* pending_frame_host = |
| node->render_manager()->pending_frame_host(); |
| if (pending_frame_host) |
| - SetAccessibilityModeOnFrame(mode, pending_frame_host); |
| + UpdateAccessibilityModeOnFrame(pending_frame_host); |
| } |
| } |
| @@ -4065,7 +4069,7 @@ const GURL& WebContentsImpl::GetMainFrameLastCommittedURL() const { |
| void WebContentsImpl::RenderFrameCreated(RenderFrameHost* render_frame_host) { |
| for (auto& observer : observers_) |
| observer.RenderFrameCreated(render_frame_host); |
| - SetAccessibilityModeOnFrame(accessibility_mode_, render_frame_host); |
| + UpdateAccessibilityModeOnFrame(render_frame_host); |
| if (!render_frame_host->IsRenderFrameLive() || render_frame_host->GetParent()) |
| return; |