Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(198)

Unified Diff: content/public/test/browser_test_utils.cc

Issue 2100753003: Enable PDF accessibility when RenderFrame's accessibility mode changes. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Work around cross-platform whitespace difference in print preview test Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/public/test/browser_test_utils.cc
diff --git a/content/public/test/browser_test_utils.cc b/content/public/test/browser_test_utils.cc
index 4cf348190ad192ef1edfef7df89921c80c1b4d79..ca51b0575028171c30990b686532a6c518739d2a 100644
--- a/content/public/test/browser_test_utils.cc
+++ b/content/public/test/browser_test_utils.cc
@@ -40,6 +40,7 @@
#include "content/common/input_messages.h"
#include "content/common/view_messages.h"
#include "content/public/browser/browser_context.h"
+#include "content/public/browser/browser_plugin_guest_manager.h"
#include "content/public/browser/histogram_fetcher.h"
#include "content/public/browser/navigation_entry.h"
#include "content/public/browser/notification_service.h"
@@ -977,6 +978,14 @@ bool AccessibilityTreeContainsNodeWithName(BrowserAccessibility* node,
return false;
}
+bool ListenToGuestWebContents(
+ AccessibilityNotificationWaiter* accessibility_waiter,
+ WebContents* web_contents) {
+ accessibility_waiter->ListenToAdditionalFrame(
+ static_cast<RenderFrameHostImpl*>(web_contents->GetMainFrame()));
+ return true;
+}
+
void WaitForAccessibilityTreeToContainNodeWithName(WebContents* web_contents,
const std::string& name) {
WebContentsImpl* web_contents_impl = static_cast<WebContentsImpl*>(
@@ -986,15 +995,25 @@ void WaitForAccessibilityTreeToContainNodeWithName(WebContents* web_contents,
BrowserAccessibilityManager* main_frame_manager =
main_frame->browser_accessibility_manager();
FrameTree* frame_tree = web_contents_impl->GetFrameTree();
- while (!AccessibilityTreeContainsNodeWithName(
+ while (!main_frame_manager || !AccessibilityTreeContainsNodeWithName(
main_frame_manager->GetRoot(), name)) {
AccessibilityNotificationWaiter accessibility_waiter(main_frame,
ui::AX_EVENT_NONE);
- for (FrameTreeNode* node : frame_tree->Nodes())
+ for (FrameTreeNode* node : frame_tree->Nodes()) {
accessibility_waiter.ListenToAdditionalFrame(
node->current_frame_host());
+ }
+
+ content::BrowserPluginGuestManager* guest_manager =
+ web_contents_impl->GetBrowserContext()->GetGuestManager();
+ if (guest_manager) {
+ guest_manager->ForEachGuest(web_contents_impl,
+ base::Bind(&ListenToGuestWebContents,
+ &accessibility_waiter));
+ }
accessibility_waiter.WaitForNotification();
+ main_frame_manager = main_frame->browser_accessibility_manager();
}
}
« no previous file with comments | « content/public/renderer/render_frame_observer.h ('k') | content/renderer/pepper/fake_pepper_plugin_instance.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698