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

Side by Side Diff: content/browser/web_contents/web_contents_view_aura_browsertest.cc

Issue 678973004: Standardize usage of virtual/override/final specifiers. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 1 month 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 unified diff | Download patch
« no previous file with comments | « content/browser/web_contents/web_contents_view_aura.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/browser/web_contents/web_contents_view_aura.h" 5 #include "content/browser/web_contents/web_contents_view_aura.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/run_loop.h" 8 #include "base/run_loop.h"
9 #include "base/strings/utf_string_conversions.h" 9 #include "base/strings/utf_string_conversions.h"
10 #include "base/test/test_timeouts.h" 10 #include "base/test/test_timeouts.h"
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
50 FROM_HERE, 50 FROM_HERE,
51 run_loop.QuitClosure(), 51 run_loop.QuitClosure(),
52 base::TimeDelta::FromMillisecondsD(10)); 52 base::TimeDelta::FromMillisecondsD(10));
53 run_loop.Run(); 53 run_loop.Run();
54 } 54 }
55 55
56 // WebContentsDelegate which tracks vertical overscroll updates. 56 // WebContentsDelegate which tracks vertical overscroll updates.
57 class VerticalOverscrollTracker : public content::WebContentsDelegate { 57 class VerticalOverscrollTracker : public content::WebContentsDelegate {
58 public: 58 public:
59 VerticalOverscrollTracker() : count_(0), completed_(false) {} 59 VerticalOverscrollTracker() : count_(0), completed_(false) {}
60 virtual ~VerticalOverscrollTracker() {} 60 ~VerticalOverscrollTracker() override {}
61 61
62 int num_overscroll_updates() const { 62 int num_overscroll_updates() const {
63 return count_; 63 return count_;
64 } 64 }
65 65
66 bool overscroll_completed() const { 66 bool overscroll_completed() const {
67 return completed_; 67 return completed_;
68 } 68 }
69 69
70 void Reset() { 70 void Reset() {
71 count_ = 0; 71 count_ = 0;
72 completed_ = false; 72 completed_ = false;
73 } 73 }
74 74
75 private: 75 private:
76 virtual bool CanOverscrollContent() const override { 76 bool CanOverscrollContent() const override { return true; }
77 return true;
78 }
79 77
80 virtual void OverscrollUpdate(float delta_y) override { 78 void OverscrollUpdate(float delta_y) override { ++count_; }
81 ++count_;
82 }
83 79
84 virtual void OverscrollComplete() override { 80 void OverscrollComplete() override { completed_ = true; }
85 completed_ = true;
86 }
87 81
88 int count_; 82 int count_;
89 bool completed_; 83 bool completed_;
90 84
91 DISALLOW_COPY_AND_ASSIGN(VerticalOverscrollTracker); 85 DISALLOW_COPY_AND_ASSIGN(VerticalOverscrollTracker);
92 }; 86 };
93 87
94 } //namespace 88 } //namespace
95 89
96 90
97 namespace content { 91 namespace content {
98 92
99 // This class keeps track of the RenderViewHost whose screenshot was captured. 93 // This class keeps track of the RenderViewHost whose screenshot was captured.
100 class ScreenshotTracker : public NavigationEntryScreenshotManager { 94 class ScreenshotTracker : public NavigationEntryScreenshotManager {
101 public: 95 public:
102 explicit ScreenshotTracker(NavigationControllerImpl* controller) 96 explicit ScreenshotTracker(NavigationControllerImpl* controller)
103 : NavigationEntryScreenshotManager(controller), 97 : NavigationEntryScreenshotManager(controller),
104 screenshot_taken_for_(NULL), 98 screenshot_taken_for_(NULL),
105 waiting_for_screenshots_(0) { 99 waiting_for_screenshots_(0) {
106 } 100 }
107 101
108 virtual ~ScreenshotTracker() { 102 ~ScreenshotTracker() override {}
109 }
110 103
111 RenderViewHost* screenshot_taken_for() { return screenshot_taken_for_; } 104 RenderViewHost* screenshot_taken_for() { return screenshot_taken_for_; }
112 105
113 void Reset() { 106 void Reset() {
114 screenshot_taken_for_ = NULL; 107 screenshot_taken_for_ = NULL;
115 screenshot_set_.clear(); 108 screenshot_set_.clear();
116 } 109 }
117 110
118 void SetScreenshotInterval(int interval_ms) { 111 void SetScreenshotInterval(int interval_ms) {
119 SetMinScreenshotIntervalMS(interval_ms); 112 SetMinScreenshotIntervalMS(interval_ms);
120 } 113 }
121 114
122 void WaitUntilScreenshotIsReady() { 115 void WaitUntilScreenshotIsReady() {
123 if (!waiting_for_screenshots_) 116 if (!waiting_for_screenshots_)
124 return; 117 return;
125 message_loop_runner_ = new content::MessageLoopRunner; 118 message_loop_runner_ = new content::MessageLoopRunner;
126 message_loop_runner_->Run(); 119 message_loop_runner_->Run();
127 } 120 }
128 121
129 bool ScreenshotSetForEntry(NavigationEntryImpl* entry) const { 122 bool ScreenshotSetForEntry(NavigationEntryImpl* entry) const {
130 return screenshot_set_.count(entry) > 0; 123 return screenshot_set_.count(entry) > 0;
131 } 124 }
132 125
133 private: 126 private:
134 // Overridden from NavigationEntryScreenshotManager: 127 // Overridden from NavigationEntryScreenshotManager:
135 virtual void TakeScreenshotImpl(RenderViewHost* host, 128 void TakeScreenshotImpl(RenderViewHost* host,
136 NavigationEntryImpl* entry) override { 129 NavigationEntryImpl* entry) override {
137 ++waiting_for_screenshots_; 130 ++waiting_for_screenshots_;
138 screenshot_taken_for_ = host; 131 screenshot_taken_for_ = host;
139 NavigationEntryScreenshotManager::TakeScreenshotImpl(host, entry); 132 NavigationEntryScreenshotManager::TakeScreenshotImpl(host, entry);
140 } 133 }
141 134
142 virtual void OnScreenshotSet(NavigationEntryImpl* entry) override { 135 void OnScreenshotSet(NavigationEntryImpl* entry) override {
143 --waiting_for_screenshots_; 136 --waiting_for_screenshots_;
144 screenshot_set_[entry] = true; 137 screenshot_set_[entry] = true;
145 NavigationEntryScreenshotManager::OnScreenshotSet(entry); 138 NavigationEntryScreenshotManager::OnScreenshotSet(entry);
146 if (waiting_for_screenshots_ == 0 && message_loop_runner_.get()) 139 if (waiting_for_screenshots_ == 0 && message_loop_runner_.get())
147 message_loop_runner_->Quit(); 140 message_loop_runner_->Quit();
148 } 141 }
149 142
150 RenderViewHost* screenshot_taken_for_; 143 RenderViewHost* screenshot_taken_for_;
151 scoped_refptr<content::MessageLoopRunner> message_loop_runner_; 144 scoped_refptr<content::MessageLoopRunner> message_loop_runner_;
152 int waiting_for_screenshots_; 145 int waiting_for_screenshots_;
153 std::map<NavigationEntryImpl*, bool> screenshot_set_; 146 std::map<NavigationEntryImpl*, bool> screenshot_set_;
154 147
155 DISALLOW_COPY_AND_ASSIGN(ScreenshotTracker); 148 DISALLOW_COPY_AND_ASSIGN(ScreenshotTracker);
156 }; 149 };
157 150
158 class NavigationWatcher : public WebContentsObserver { 151 class NavigationWatcher : public WebContentsObserver {
159 public: 152 public:
160 explicit NavigationWatcher(WebContents* contents) 153 explicit NavigationWatcher(WebContents* contents)
161 : WebContentsObserver(contents), 154 : WebContentsObserver(contents),
162 navigated_(false), 155 navigated_(false),
163 should_quit_loop_(false) { 156 should_quit_loop_(false) {
164 } 157 }
165 158
166 virtual ~NavigationWatcher() {} 159 ~NavigationWatcher() override {}
167 160
168 void WaitUntilNavigationStarts() { 161 void WaitUntilNavigationStarts() {
169 if (navigated_) 162 if (navigated_)
170 return; 163 return;
171 should_quit_loop_ = true; 164 should_quit_loop_ = true;
172 base::MessageLoop::current()->Run(); 165 base::MessageLoop::current()->Run();
173 } 166 }
174 167
175 private: 168 private:
176 // Overridden from WebContentsObserver: 169 // Overridden from WebContentsObserver:
177 virtual void AboutToNavigateRenderView(RenderViewHost* host) override { 170 void AboutToNavigateRenderView(RenderViewHost* host) override {
178 navigated_ = true; 171 navigated_ = true;
179 if (should_quit_loop_) 172 if (should_quit_loop_)
180 base::MessageLoop::current()->Quit(); 173 base::MessageLoop::current()->Quit();
181 } 174 }
182 175
183 bool navigated_; 176 bool navigated_;
184 bool should_quit_loop_; 177 bool should_quit_loop_;
185 178
186 DISALLOW_COPY_AND_ASSIGN(NavigationWatcher); 179 DISALLOW_COPY_AND_ASSIGN(NavigationWatcher);
187 }; 180 };
188 181
189 class InputEventMessageFilterWaitsForAcks : public BrowserMessageFilter { 182 class InputEventMessageFilterWaitsForAcks : public BrowserMessageFilter {
190 public: 183 public:
191 InputEventMessageFilterWaitsForAcks() 184 InputEventMessageFilterWaitsForAcks()
192 : BrowserMessageFilter(InputMsgStart), 185 : BrowserMessageFilter(InputMsgStart),
193 type_(blink::WebInputEvent::Undefined), 186 type_(blink::WebInputEvent::Undefined),
194 state_(INPUT_EVENT_ACK_STATE_UNKNOWN) {} 187 state_(INPUT_EVENT_ACK_STATE_UNKNOWN) {}
195 188
196 void WaitForAck(blink::WebInputEvent::Type type) { 189 void WaitForAck(blink::WebInputEvent::Type type) {
197 base::RunLoop run_loop; 190 base::RunLoop run_loop;
198 base::AutoReset<base::Closure> reset_quit(&quit_, run_loop.QuitClosure()); 191 base::AutoReset<base::Closure> reset_quit(&quit_, run_loop.QuitClosure());
199 base::AutoReset<blink::WebInputEvent::Type> reset_type(&type_, type); 192 base::AutoReset<blink::WebInputEvent::Type> reset_type(&type_, type);
200 run_loop.Run(); 193 run_loop.Run();
201 } 194 }
202 195
203 InputEventAckState last_ack_state() const { return state_; } 196 InputEventAckState last_ack_state() const { return state_; }
204 197
205 protected: 198 protected:
206 virtual ~InputEventMessageFilterWaitsForAcks() {} 199 ~InputEventMessageFilterWaitsForAcks() override {}
207 200
208 private: 201 private:
209 void ReceivedEventAck(blink::WebInputEvent::Type type, 202 void ReceivedEventAck(blink::WebInputEvent::Type type,
210 InputEventAckState state) { 203 InputEventAckState state) {
211 if (type_ == type) { 204 if (type_ == type) {
212 state_ = state; 205 state_ = state;
213 quit_.Run(); 206 quit_.Run();
214 } 207 }
215 } 208 }
216 209
217 // BrowserMessageFilter: 210 // BrowserMessageFilter:
218 virtual bool OnMessageReceived(const IPC::Message& message) override { 211 bool OnMessageReceived(const IPC::Message& message) override {
219 if (message.type() == InputHostMsg_HandleInputEvent_ACK::ID) { 212 if (message.type() == InputHostMsg_HandleInputEvent_ACK::ID) {
220 InputHostMsg_HandleInputEvent_ACK::Param params; 213 InputHostMsg_HandleInputEvent_ACK::Param params;
221 InputHostMsg_HandleInputEvent_ACK::Read(&message, &params); 214 InputHostMsg_HandleInputEvent_ACK::Read(&message, &params);
222 blink::WebInputEvent::Type type = params.a.type; 215 blink::WebInputEvent::Type type = params.a.type;
223 InputEventAckState ack = params.a.state; 216 InputEventAckState ack = params.a.state;
224 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, 217 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE,
225 base::Bind(&InputEventMessageFilterWaitsForAcks::ReceivedEventAck, 218 base::Bind(&InputEventMessageFilterWaitsForAcks::ReceivedEventAck,
226 this, type, ack)); 219 this, type, ack));
227 } 220 }
228 return false; 221 return false;
(...skipping 28 matching lines...) Expand all
257 NavigateToURL(shell(), test_url); 250 NavigateToURL(shell(), test_url);
258 251
259 WebContentsImpl* web_contents = 252 WebContentsImpl* web_contents =
260 static_cast<WebContentsImpl*>(shell()->web_contents()); 253 static_cast<WebContentsImpl*>(shell()->web_contents());
261 NavigationControllerImpl* controller = &web_contents->GetController(); 254 NavigationControllerImpl* controller = &web_contents->GetController();
262 255
263 screenshot_manager_ = new ScreenshotTracker(controller); 256 screenshot_manager_ = new ScreenshotTracker(controller);
264 controller->SetScreenshotManager(screenshot_manager_); 257 controller->SetScreenshotManager(screenshot_manager_);
265 } 258 }
266 259
267 virtual void SetUpCommandLine(CommandLine* cmd) override { 260 void SetUpCommandLine(CommandLine* cmd) override {
268 cmd->AppendSwitchASCII(switches::kTouchEvents, 261 cmd->AppendSwitchASCII(switches::kTouchEvents,
269 switches::kTouchEventsEnabled); 262 switches::kTouchEventsEnabled);
270 } 263 }
271 264
272 void TestOverscrollNavigation(bool touch_handler) { 265 void TestOverscrollNavigation(bool touch_handler) {
273 ASSERT_NO_FATAL_FAILURE( 266 ASSERT_NO_FATAL_FAILURE(
274 StartTestWithPage("files/overscroll_navigation.html")); 267 StartTestWithPage("files/overscroll_navigation.html"));
275 WebContentsImpl* web_contents = 268 WebContentsImpl* web_contents =
276 static_cast<WebContentsImpl*>(shell()->web_contents()); 269 static_cast<WebContentsImpl*>(shell()->web_contents());
277 NavigationController& controller = web_contents->GetController(); 270 NavigationController& controller = web_contents->GetController();
(...skipping 870 matching lines...) Expand 10 before | Expand all | Expand 10 after
1148 details = dispatcher->OnEventFromSource(&release); 1141 details = dispatcher->OnEventFromSource(&release);
1149 ASSERT_FALSE(details.dispatcher_destroyed); 1142 ASSERT_FALSE(details.dispatcher_destroyed);
1150 WaitAFrame(); 1143 WaitAFrame();
1151 1144
1152 EXPECT_LT(0, tracker.num_overscroll_updates()); 1145 EXPECT_LT(0, tracker.num_overscroll_updates());
1153 EXPECT_FALSE(tracker.overscroll_completed()); 1146 EXPECT_FALSE(tracker.overscroll_completed());
1154 } 1147 }
1155 } 1148 }
1156 1149
1157 } // namespace content 1150 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/web_contents/web_contents_view_aura.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698