OLD | NEW |
| (Empty) |
1 // Copyright 2015 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 #include "components/web_view/test_frame_tree_delegate.h" | |
6 | |
7 #include <utility> | |
8 | |
9 #include "base/run_loop.h" | |
10 #include "components/web_view/client_initiated_frame_connection.h" | |
11 #include "components/web_view/frame_connection.h" | |
12 #include "testing/gtest/include/gtest/gtest.h" | |
13 | |
14 namespace web_view { | |
15 | |
16 TestFrameTreeDelegate::TestFrameTreeDelegate(mojo::Shell* shell) | |
17 : shell_(shell), | |
18 waiting_for_create_frame_(false), | |
19 waiting_for_destroy_frame_(nullptr), | |
20 most_recent_frame_(nullptr), | |
21 waiting_for_frame_disconnected_(nullptr) {} | |
22 | |
23 TestFrameTreeDelegate::~TestFrameTreeDelegate() {} | |
24 | |
25 Frame* TestFrameTreeDelegate::WaitForCreateFrame() { | |
26 if (is_waiting()) { | |
27 ADD_FAILURE() << "already waiting"; | |
28 return nullptr; | |
29 } | |
30 waiting_for_create_frame_ = true; | |
31 run_loop_.reset(new base::RunLoop); | |
32 run_loop_->Run(); | |
33 run_loop_.reset(); | |
34 return most_recent_frame_; | |
35 } | |
36 | |
37 void TestFrameTreeDelegate::WaitForDestroyFrame(Frame* frame) { | |
38 ASSERT_FALSE(is_waiting()); | |
39 waiting_for_destroy_frame_ = frame; | |
40 run_loop_.reset(new base::RunLoop); | |
41 run_loop_->Run(); | |
42 run_loop_.reset(); | |
43 } | |
44 | |
45 void TestFrameTreeDelegate::WaitForFrameDisconnected(Frame* frame) { | |
46 ASSERT_FALSE(is_waiting()); | |
47 waiting_for_frame_disconnected_ = frame; | |
48 run_loop_.reset(new base::RunLoop); | |
49 run_loop_->Run(); | |
50 run_loop_.reset(); | |
51 } | |
52 | |
53 scoped_ptr<FrameUserData> TestFrameTreeDelegate::CreateUserDataForNewFrame( | |
54 mojom::FrameClientPtr frame_client) { | |
55 return make_scoped_ptr( | |
56 new ClientInitiatedFrameConnection(std::move(frame_client))); | |
57 } | |
58 | |
59 bool TestFrameTreeDelegate::CanPostMessageEventToFrame( | |
60 const Frame* source, | |
61 const Frame* target, | |
62 mojom::HTMLMessageEvent* event) { | |
63 return true; | |
64 } | |
65 | |
66 void TestFrameTreeDelegate::LoadingStateChanged(bool loading, double progress) { | |
67 } | |
68 | |
69 void TestFrameTreeDelegate::TitleChanged(const mojo::String& title) {} | |
70 | |
71 void TestFrameTreeDelegate::NavigateTopLevel(Frame* source, | |
72 mojo::URLRequestPtr request) {} | |
73 | |
74 void TestFrameTreeDelegate::CanNavigateFrame( | |
75 Frame* target, | |
76 mojo::URLRequestPtr request, | |
77 const CanNavigateFrameCallback& callback) { | |
78 FrameConnection::CreateConnectionForCanNavigateFrame( | |
79 shell_, target, std::move(request), callback); | |
80 } | |
81 | |
82 void TestFrameTreeDelegate::DidStartNavigation(Frame* frame) {} | |
83 | |
84 void TestFrameTreeDelegate::DidCommitProvisionalLoad(Frame* frame) {} | |
85 | |
86 void TestFrameTreeDelegate::DidNavigateLocally(Frame* source, | |
87 const GURL& url) {} | |
88 | |
89 void TestFrameTreeDelegate::DidCreateFrame(Frame* frame) { | |
90 if (waiting_for_create_frame_) { | |
91 most_recent_frame_ = frame; | |
92 run_loop_->Quit(); | |
93 } | |
94 } | |
95 | |
96 void TestFrameTreeDelegate::DidDestroyFrame(Frame* frame) { | |
97 if (waiting_for_destroy_frame_ == frame) { | |
98 waiting_for_destroy_frame_ = nullptr; | |
99 run_loop_->Quit(); | |
100 } | |
101 } | |
102 | |
103 void TestFrameTreeDelegate::OnWindowEmbeddedInFrameDisconnected(Frame* frame) { | |
104 if (waiting_for_frame_disconnected_ == frame) { | |
105 waiting_for_frame_disconnected_ = nullptr; | |
106 run_loop_->Quit(); | |
107 } | |
108 } | |
109 | |
110 } // namespace web_view | |
OLD | NEW |