| 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 b9a3011b3e9321b4dd11c57cc67f7c085808a229..9340e523960894e338dbf156100a991daed294bf 100644
|
| --- a/content/public/test/browser_test_utils.cc
|
| +++ b/content/public/test/browser_test_utils.cc
|
| @@ -93,6 +93,7 @@
|
| #include "ui/resources/grit/webui_resources.h"
|
|
|
| #if defined(USE_AURA)
|
| +#include "content/browser/renderer_host/overscroll_controller.h"
|
| #include "content/browser/renderer_host/render_widget_host_view_aura.h"
|
| #include "ui/aura/test/window_event_dispatcher_test_api.h"
|
| #include "ui/aura/window.h"
|
| @@ -2055,4 +2056,56 @@ void PwnMessageHelper::LockMouse(RenderProcessHost* process,
|
| privileged));
|
| }
|
|
|
| +#if defined(USE_AURA)
|
| +namespace {
|
| +class OverscrollControllerSpyImpl : public OverscrollController,
|
| + public OverscrollControllerSpy {
|
| + public:
|
| + OverscrollControllerSpyImpl()
|
| + : content_scrolling_(false),
|
| + message_loop_runner_(new MessageLoopRunner) {}
|
| + ~OverscrollControllerSpyImpl() override {}
|
| +
|
| + // OverscrollController:
|
| + void ReceivedEventACK(const blink::WebInputEvent& event,
|
| + bool processed) override {
|
| + OverscrollController::ReceivedEventACK(event, processed);
|
| +
|
| + if (scroll_state_ == STATE_CONTENT_SCROLLING) {
|
| + content_scrolling_ = true;
|
| + if (message_loop_runner_->loop_running())
|
| + message_loop_runner_->Quit();
|
| + }
|
| + }
|
| +
|
| + // OverscrollControllerSpy:
|
| + void WaitForScrollStateContentScrolling() override {
|
| + if (!content_scrolling_)
|
| + message_loop_runner_->Run();
|
| + }
|
| +
|
| + private:
|
| + bool content_scrolling_;
|
| + scoped_refptr<MessageLoopRunner> message_loop_runner_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(OverscrollControllerSpyImpl);
|
| +};
|
| +} // namespace
|
| +
|
| +// static
|
| +OverscrollControllerSpy* OverscrollControllerSpy::Create(
|
| + RenderWidgetHostView* rwhv) {
|
| + std::unique_ptr<OverscrollControllerSpyImpl> spy =
|
| + base::MakeUnique<OverscrollControllerSpyImpl>();
|
| + OverscrollControllerSpy* spy_raw = spy.get();
|
| +
|
| + RenderWidgetHostViewAura* rwhva =
|
| + static_cast<RenderWidgetHostViewAura*>(rwhv);
|
| + rwhva->SetOverscrollControllerForTesting(std::move(spy));
|
| +
|
| + return spy_raw;
|
| +}
|
| +
|
| +#endif // defined(USE_AURA)
|
| +
|
| } // namespace content
|
|
|