OLD | NEW |
1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 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 #import <UIKit/UIKit.h> | 5 #import <UIKit/UIKit.h> |
6 | 6 |
7 #include "base/callback_helpers.h" | 7 #include "base/callback_helpers.h" |
8 #import "base/mac/bind_objc_block.h" | 8 #import "base/mac/bind_objc_block.h" |
9 #include "base/mac/foundation_util.h" | 9 #include "base/mac/foundation_util.h" |
10 #include "base/strings/sys_string_conversions.h" | 10 #include "base/strings/sys_string_conversions.h" |
(...skipping 239 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
250 | 250 |
251 const GURL StackViewControllerPerfTest::GoogleURL() { | 251 const GURL StackViewControllerPerfTest::GoogleURL() { |
252 return GURL("http://www.google.com"); | 252 return GURL("http://www.google.com"); |
253 } | 253 } |
254 | 254 |
255 void StackViewControllerPerfTest::WaitForPageLoad(Tab* tab) { | 255 void StackViewControllerPerfTest::WaitForPageLoad(Tab* tab) { |
256 base::test::ios::WaitUntilCondition( | 256 base::test::ios::WaitUntilCondition( |
257 ^bool() { | 257 ^bool() { |
258 return !tab.webState->IsLoading(); | 258 return !tab.webState->IsLoading(); |
259 }, | 259 }, |
260 nullptr, base::TimeDelta::FromSecondsD(kMaxPageLoadDelay)); | 260 false, base::TimeDelta::FromSecondsD(kMaxPageLoadDelay)); |
261 base::test::ios::WaitUntilCondition( | 261 base::test::ios::WaitUntilCondition( |
262 nil, nullptr, base::TimeDelta::FromSecondsD(kMaxUICatchupDelay)); | 262 nil, false, base::TimeDelta::FromSecondsD(kMaxUICatchupDelay)); |
263 } | 263 } |
264 | 264 |
265 base::TimeDelta StackViewControllerPerfTest::OpenStackView() { | 265 base::TimeDelta StackViewControllerPerfTest::OpenStackView() { |
266 return base::test::ios::TimeUntilCondition( | 266 return base::test::ios::TimeUntilCondition( |
267 ^{ | 267 ^{ |
268 [delegate_ reinitialize]; | 268 [delegate_ reinitialize]; |
269 MainControllerShowTabSwitcher(); | 269 MainControllerShowTabSwitcher(); |
270 }, | 270 }, |
271 ^bool() { | 271 ^bool() { |
272 return [delegate_ showAnimationEnded]; | 272 return [delegate_ showAnimationEnded]; |
273 }, | 273 }, |
274 nullptr, base::TimeDelta::FromSecondsD(kTotalSpinDelay)); | 274 false, base::TimeDelta::FromSecondsD(kTotalSpinDelay)); |
275 } | 275 } |
276 | 276 |
277 void StackViewControllerPerfTest::MainControllerShowTabSwitcher() { | 277 void StackViewControllerPerfTest::MainControllerShowTabSwitcher() { |
278 // The code for this function is copied from MainController -showTabSwitcher. | 278 // The code for this function is copied from MainController -showTabSwitcher. |
279 // Note that if the code there changes, this code should change to match. | 279 // Note that if the code there changes, this code should change to match. |
280 Tab* currentTab = [[bvc_ tabModel] currentTab]; | 280 Tab* currentTab = [[bvc_ tabModel] currentTab]; |
281 | 281 |
282 // In order to generate the transition between the current browser view | 282 // In order to generate the transition between the current browser view |
283 // controller and the tab switcher controller it's possible that multiple | 283 // controller and the tab switcher controller it's possible that multiple |
284 // screenshots of the same tab are taken. Since taking a screenshot is | 284 // screenshots of the same tab are taken. Since taking a screenshot is |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
319 // Spin and wait for the dismiss stack view animation to finish. | 319 // Spin and wait for the dismiss stack view animation to finish. |
320 base::test::ios::TimeUntilCondition( | 320 base::test::ios::TimeUntilCondition( |
321 ^{ | 321 ^{ |
322 [view_controller_ dismissWithSelectedTabAnimation]; | 322 [view_controller_ dismissWithSelectedTabAnimation]; |
323 EXPECT_TRUE([delegate_ dismissAnimationStarted]); | 323 EXPECT_TRUE([delegate_ dismissAnimationStarted]); |
324 EXPECT_FALSE([delegate_ dismissAnimationEnded]); | 324 EXPECT_FALSE([delegate_ dismissAnimationEnded]); |
325 }, | 325 }, |
326 ^bool() { | 326 ^bool() { |
327 return [delegate_ dismissAnimationEnded]; | 327 return [delegate_ dismissAnimationEnded]; |
328 }, | 328 }, |
329 nullptr, base::TimeDelta::FromSecondsD(kTotalSpinDelay)); | 329 false, base::TimeDelta::FromSecondsD(kTotalSpinDelay)); |
330 | 330 |
331 [view_controller_ dismissViewControllerAnimated:NO completion:nil]; | 331 [view_controller_ dismissViewControllerAnimated:NO completion:nil]; |
332 if (!reuse_svc_) | 332 if (!reuse_svc_) |
333 view_controller_.reset(); | 333 view_controller_.reset(); |
334 | 334 |
335 base::TimeDelta closeTime = base::Time::NowFromSystemTime() - startTime; | 335 base::TimeDelta closeTime = base::Time::NowFromSystemTime() - startTime; |
336 | 336 |
337 // Run the runloop a bit longer to give time for temporary retains that happen | 337 // Run the runloop a bit longer to give time for temporary retains that happen |
338 // in the OS during view teardown to resolve, so that the view gets its | 338 // in the OS during view teardown to resolve, so that the view gets its |
339 // dismissal callbacks. | 339 // dismissal callbacks. |
340 base::test::ios::WaitUntilCondition( | 340 base::test::ios::WaitUntilCondition( |
341 nil, nullptr, base::TimeDelta::FromSecondsD(kSpinDelay)); | 341 nil, false, base::TimeDelta::FromSecondsD(kSpinDelay)); |
342 | 342 |
343 return closeTime; | 343 return closeTime; |
344 } | 344 } |
345 | 345 |
346 base::TimeDelta StackViewControllerPerfTest::TakeSnapshot() { | 346 base::TimeDelta StackViewControllerPerfTest::TakeSnapshot() { |
347 base::Time startTime = base::Time::NowFromSystemTime(); | 347 base::Time startTime = base::Time::NowFromSystemTime(); |
348 UIImage* image = [[tab_model_ currentTab] updateSnapshotWithOverlay:YES | 348 UIImage* image = [[tab_model_ currentTab] updateSnapshotWithOverlay:YES |
349 visibleFrameOnly:YES]; | 349 visibleFrameOnly:YES]; |
350 base::TimeDelta elapsed = base::Time::NowFromSystemTime() - startTime; | 350 base::TimeDelta elapsed = base::Time::NowFromSystemTime() - startTime; |
351 EXPECT_TRUE(image); | 351 EXPECT_TRUE(image); |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
397 CalculateAverage(close_times + 1, kNumTests - 1, NULL, &max_close); | 397 CalculateAverage(close_times + 1, kNumTests - 1, NULL, &max_close); |
398 LogPerfTiming("Open cold", open_times[0]); | 398 LogPerfTiming("Open cold", open_times[0]); |
399 LogPerfTiming("Open warm avg", open_avg); | 399 LogPerfTiming("Open warm avg", open_avg); |
400 LogPerfTiming("Open warm max", max_open); | 400 LogPerfTiming("Open warm max", max_open); |
401 LogPerfTiming("Close cold", close_times[0]); | 401 LogPerfTiming("Close cold", close_times[0]); |
402 LogPerfTiming("Close cold avg", close_avg); | 402 LogPerfTiming("Close cold avg", close_avg); |
403 LogPerfTiming("Close cold max", max_close); | 403 LogPerfTiming("Close cold max", max_close); |
404 } | 404 } |
405 | 405 |
406 } // anonymous namespace | 406 } // anonymous namespace |
OLD | NEW |