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

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

Issue 2116663002: Test for BrowserPlugin-based WebView Focus (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase, fix some DCHECKS. Created 4 years, 6 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 0de234dae34df88f010a4c3216cb70616e108045..f373a5c5123c43fd71057d3eb936bbdec4faee62 100644
--- a/content/public/test/browser_test_utils.cc
+++ b/content/public/test/browser_test_utils.cc
@@ -25,8 +25,10 @@
#include "content/browser/accessibility/accessibility_mode_helper.h"
#include "content/browser/accessibility/browser_accessibility.h"
#include "content/browser/accessibility/browser_accessibility_manager.h"
+#include "content/browser/browser_plugin/browser_plugin_guest.h"
#include "content/browser/frame_host/frame_tree_node.h"
#include "content/browser/frame_host/render_frame_host_impl.h"
+#include "content/browser/frame_host/render_widget_host_view_child_frame.h"
#include "content/browser/renderer_host/render_widget_host_impl.h"
#include "content/browser/web_contents/web_contents_impl.h"
#include "content/browser/web_contents/web_contents_view.h"
@@ -1003,6 +1005,62 @@ ui::AXTreeUpdate GetAccessibilityTreeSnapshot(WebContents* web_contents) {
return manager->SnapshotAXTreeForTesting();
}
+bool IsWebContentsBrowserPluginFocused(content::WebContents* web_contents) {
+ WebContentsImpl* web_contents_impl =
+ static_cast<WebContentsImpl*>(web_contents);
+ BrowserPluginGuest* browser_plugin_guest =
+ web_contents_impl->GetBrowserPluginGuest();
+ return browser_plugin_guest ? browser_plugin_guest->focused() : false;
+}
+
+#if defined(USE_AURA)
+void SendRoutedTouchTapSequence(content::WebContents* web_contents,
+ gfx::Point point) {
+ RenderWidgetHostViewAura* rwhva = static_cast<RenderWidgetHostViewAura*>(
+ web_contents->GetRenderWidgetHostView());
+ ui::TouchEvent touch_start(ui::ET_TOUCH_PRESSED, point, 0,
+ base::TimeTicks::Now());
+ rwhva->OnTouchEvent(&touch_start);
+ ui::TouchEvent touch_end(ui::ET_TOUCH_RELEASED, point, 0,
+ base::TimeTicks::Now());
+ rwhva->OnTouchEvent(&touch_end);
+}
+
+void SendRoutedGestureTapSequence(content::WebContents* web_contents,
+ gfx::Point point) {
+ RenderWidgetHostViewAura* rwhva = static_cast<RenderWidgetHostViewAura*>(
+ web_contents->GetRenderWidgetHostView());
+ ui::GestureEventDetails gesture_tap_down_details(ui::ET_GESTURE_TAP_DOWN);
+ gesture_tap_down_details.set_device_type(
+ ui::GestureDeviceType::DEVICE_TOUCHSCREEN);
+ ui::GestureEvent gesture_tap_down(point.x(), point.y(), 0,
+ base::TimeTicks::Now(),
+ gesture_tap_down_details);
+ rwhva->OnGestureEvent(&gesture_tap_down);
+ ui::GestureEventDetails gesture_tap_details(ui::ET_GESTURE_TAP);
+ gesture_tap_details.set_device_type(
+ ui::GestureDeviceType::DEVICE_TOUCHSCREEN);
+ gesture_tap_details.set_tap_count(1);
+ ui::GestureEvent gesture_tap(point.x(), point.y(), 0, base::TimeTicks::Now(),
+ gesture_tap_details);
+ rwhva->OnGestureEvent(&gesture_tap);
+}
+#endif
+
+void WaitForSurfaceReady(content::WebContents* web_contents) {
kenrb 2016/07/05 14:30:57 I know we talked about this earlier, but I don't r
wjmaclean 2016/07/05 15:04:22 Moving the SurfaceHitTestReady relies on a cc DEP
kenrb 2016/07/05 15:32:01 If we change SurfaceHitTestReady to use surface_fr
+ RenderWidgetHostViewChildFrame* child_view =
+ static_cast<RenderWidgetHostViewChildFrame*>(
+ web_contents->GetRenderWidgetHostView());
+ while (true) {
+ base::RunLoop run_loop;
+ base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
+ FROM_HERE, run_loop.QuitClosure(), TestTimeouts::tiny_timeout());
+ run_loop.Run();
+ if (child_view->frame_count() > 0)
+ break;
+ }
+}
+
TitleWatcher::TitleWatcher(WebContents* web_contents,
const base::string16& expected_title)
: WebContentsObserver(web_contents),

Powered by Google App Engine
This is Rietveld 408576698