1// Copyright 2014 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef CONTENT_PUBLIC_TEST_FRAME_LOAD_WAITER_H_
6#define CONTENT_PUBLIC_TEST_FRAME_LOAD_WAITER_H_
7
8#include "base/macros.h"
9#include "base/run_loop.h"
10#include "content/public/renderer/render_frame_observer.h"
11
12namespace content {
13
14// Helper class to spin the run loop when waiting for a frame load to complete.
15// Blink uses a threaded HTML parser, so it's no longer sufficient to just spin
16// the run loop once to process all pending messages.
17class FrameLoadWaiter : public RenderFrameObserver {
18 public:
19  explicit FrameLoadWaiter(RenderFrame* frame);
20  void Wait();
21
22 private:
23  virtual void DidFinishLoad() OVERRIDE;
24
25  base::RunLoop run_loop_;
26
27  DISALLOW_COPY_AND_ASSIGN(FrameLoadWaiter);
28};
29
30}  // namespace content
31
32#endif  // CONTENT_PUBLIC_TEST_FRAME_LOAD_WAITER_H_
33