Chromium Code Reviews| Index: content/test/test_frame_navigation_observer.h |
| diff --git a/content/test/test_frame_navigation_observer.h b/content/test/test_frame_navigation_observer.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..0c50bc169b0e4874bc4e98ba405d976e58a9225e |
| --- /dev/null |
| +++ b/content/test/test_frame_navigation_observer.h |
| @@ -0,0 +1,76 @@ |
| +// Copyright 2014 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#ifndef CONTENT_TEST_TEST_FRAME_NAVIGATION_OBSERVER_H_ |
| +#define CONTENT_TEST_TEST_FRAME_NAVIGATION_OBSERVER_H_ |
| + |
| +#include <set> |
| + |
| +#include "base/callback.h" |
| +#include "base/compiler_specific.h" |
| +#include "base/memory/scoped_ptr.h" |
| +#include "content/public/browser/web_contents_observer.h" |
| +#include "content/public/test/test_utils.h" |
| + |
| +class GURL; |
| + |
| +namespace content { |
| +class RenderFrameHostImpl; |
| +class WebContents; |
| +struct LoadCommittedDetails; |
| + |
| +// For content_browsertests, which run on the UI thread, run a second |
| +// MessageLoop and quit when the navigation in a specific frame completes |
| +// loading. |
| +class TestFrameNavigationObserver : public WebContentsObserver { |
| + public: |
| + // Create and register a new TestFrameNavigationObserver against the |
| + // |web_contents|. |
|
Charlie Reis
2014/04/24 20:37:50
nit: There's no |web_contents| parameter.
nasko
2014/04/24 22:31:12
Done.
|
| + TestFrameNavigationObserver(RenderFrameHostImpl* render_frame_host, |
| + int number_of_navigations); |
| + // Like above but waits for one navigation. |
|
Charlie Reis
2014/04/24 20:37:50
nit: Like -> As
nasko
2014/04/24 22:31:12
Done.
|
| + explicit TestFrameNavigationObserver(RenderFrameHostImpl* render_frame_host); |
| + |
| + virtual ~TestFrameNavigationObserver(); |
| + |
| + // Runs a nested message loop and blocks until the expected number of |
| + // navigations are complete. |
| + void Wait(); |
| + |
| + private: |
| + // WebContentsObserver |
| + virtual void DidStartProvisionalLoadForFrame( |
| + int64 frame_id, |
| + int64 parent_frame_id, |
| + bool is_main_frame, |
| + const GURL& validated_url, |
| + bool is_error_page, |
| + bool is_iframe_srcdoc, |
| + RenderViewHost* render_view_host) OVERRIDE; |
| + |
|
Charlie Reis
2014/04/24 20:37:50
nit: No blank line, since this is the block of Web
nasko
2014/04/24 22:31:12
Done.
|
| + virtual void DidNavigateAnyFrame( |
| + const LoadCommittedDetails& details, |
| + const FrameNavigateParams& params) OVERRIDE; |
| + |
| + // The RenderFrameHost to navigate. |
| + RenderFrameHostImpl* render_frame_host_; |
| + |
| + // If true the navigation has started. |
| + bool navigation_started_; |
| + |
| + // The number of navigations that have been completed. |
| + int navigations_completed_; |
| + |
| + // The number of navigations to wait for. |
| + int number_of_navigations_; |
| + |
| + // The MessageLoopRunner used to spin the message loop. |
| + scoped_refptr<MessageLoopRunner> message_loop_runner_; |
| + |
| + DISALLOW_COPY_AND_ASSIGN(TestFrameNavigationObserver); |
| +}; |
| + |
| +} // namespace content |
| + |
| +#endif // CONTENT_TEST_TEST_FRAME_NAVIGATION_OBSERVER_H_ |