Index: ui/views/controls/webview/webview.cc |
diff --git a/ui/views/controls/webview/webview.cc b/ui/views/controls/webview/webview.cc |
index 2e4ba84fa000b8bd33675f371e1ff296849a1820..455ea75d53fe5c3fec56c88e0dbd38f5c8857131 100644 |
--- a/ui/views/controls/webview/webview.cc |
+++ b/ui/views/controls/webview/webview.cc |
@@ -78,7 +78,7 @@ void WebView::SetWebContents(content::WebContents* replacement) { |
DCHECK(!is_embedding_fullscreen_widget_); |
} |
AttachWebContents(); |
- NotifyMaybeTextInputClientChanged(); |
+ NotifyMaybeTextInputClientAndAccessibilityChanged(); |
} |
void WebView::SetEmbedFullscreenWidgetMode(bool enable) { |
@@ -266,7 +266,7 @@ gfx::Size WebView::GetPreferredSize() const { |
void WebView::RenderProcessExited(content::RenderProcessHost* host, |
base::TerminationStatus status, |
int exit_code) { |
- NotifyMaybeTextInputClientChanged(); |
+ NotifyMaybeTextInputClientAndAccessibilityChanged(); |
} |
void WebView::RenderProcessHostDestroyed(content::RenderProcessHost* host) { |
@@ -293,11 +293,11 @@ bool WebView::EmbedsFullscreenWidget() const { |
// WebView, content::WebContentsObserver implementation: |
void WebView::RenderViewReady() { |
- NotifyMaybeTextInputClientChanged(); |
+ NotifyMaybeTextInputClientAndAccessibilityChanged(); |
} |
void WebView::RenderViewDeleted(content::RenderViewHost* render_view_host) { |
- NotifyMaybeTextInputClientChanged(); |
+ NotifyMaybeTextInputClientAndAccessibilityChanged(); |
} |
void WebView::RenderViewHostChanged(content::RenderViewHost* old_host, |
@@ -305,7 +305,7 @@ void WebView::RenderViewHostChanged(content::RenderViewHost* old_host, |
FocusManager* const focus_manager = GetFocusManager(); |
if (focus_manager && focus_manager->GetFocusedView() == this) |
OnFocus(); |
- NotifyMaybeTextInputClientChanged(); |
+ NotifyMaybeTextInputClientAndAccessibilityChanged(); |
} |
void WebView::WebContentsDestroyed() { |
@@ -313,7 +313,7 @@ void WebView::WebContentsDestroyed() { |
observing_render_process_host_->RemoveObserver(this); |
observing_render_process_host_ = nullptr; |
} |
- NotifyMaybeTextInputClientChanged(); |
+ NotifyMaybeTextInputClientAndAccessibilityChanged(); |
} |
void WebView::DidShowFullscreenWidget(int routing_id) { |
@@ -332,11 +332,11 @@ void WebView::DidToggleFullscreenModeForTab(bool entered_fullscreen) { |
} |
void WebView::DidAttachInterstitialPage() { |
- NotifyMaybeTextInputClientChanged(); |
+ NotifyMaybeTextInputClientAndAccessibilityChanged(); |
} |
void WebView::DidDetachInterstitialPage() { |
- NotifyMaybeTextInputClientChanged(); |
+ NotifyMaybeTextInputClientAndAccessibilityChanged(); |
} |
//////////////////////////////////////////////////////////////////////////////// |
@@ -398,14 +398,21 @@ void WebView::ReattachForFullscreenChange(bool enter_fullscreen) { |
// the same. So, do not change attachment. |
OnBoundsChanged(bounds()); |
} |
- NotifyMaybeTextInputClientChanged(); |
+ NotifyMaybeTextInputClientAndAccessibilityChanged(); |
} |
-void WebView::NotifyMaybeTextInputClientChanged() { |
+void WebView::NotifyMaybeTextInputClientAndAccessibilityChanged() { |
// Update the TextInputClient as needed; see GetTextInputClient(). |
FocusManager* const focus_manager = GetFocusManager(); |
if (focus_manager) |
focus_manager->OnTextInputClientChanged(this); |
+ |
+#if defined(OS_CHROMEOS) |
+ if (!web_contents()) |
+ parent()->NotifyAccessibilityEvent(ui::AX_EVENT_CHILDREN_CHANGED, true); |
+ else |
+ NotifyAccessibilityEvent(ui::AX_EVENT_CHILDREN_CHANGED, true); |
+#endif // defined OS_CHROMEOS |
} |
content::WebContents* WebView::CreateWebContents( |