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

Side by Side Diff: android_webview/browser/browser_view_renderer.cc

Issue 1969263004: sync compositor: Remove begin frame source (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: comment Created 4 years, 6 months 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 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 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 "android_webview/browser/browser_view_renderer.h" 5 #include "android_webview/browser/browser_view_renderer.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "android_webview/browser/browser_view_renderer_client.h" 9 #include "android_webview/browser/browser_view_renderer_client.h"
10 #include "android_webview/browser/child_frame.h" 10 #include "android_webview/browser/child_frame.h"
(...skipping 360 matching lines...) Expand 10 before | Expand all | Expand 10 after
371 } 371 }
372 } 372 }
373 373
374 void BrowserViewRenderer::SetIsPaused(bool paused) { 374 void BrowserViewRenderer::SetIsPaused(bool paused) {
375 TRACE_EVENT_INSTANT1("android_webview", 375 TRACE_EVENT_INSTANT1("android_webview",
376 "BrowserViewRenderer::SetIsPaused", 376 "BrowserViewRenderer::SetIsPaused",
377 TRACE_EVENT_SCOPE_THREAD, 377 TRACE_EVENT_SCOPE_THREAD,
378 "paused", 378 "paused",
379 paused); 379 paused);
380 is_paused_ = paused; 380 is_paused_ = paused;
381 UpdateCompositorIsActive();
382 } 381 }
383 382
384 void BrowserViewRenderer::SetViewVisibility(bool view_visible) { 383 void BrowserViewRenderer::SetViewVisibility(bool view_visible) {
385 TRACE_EVENT_INSTANT1("android_webview", 384 TRACE_EVENT_INSTANT1("android_webview",
386 "BrowserViewRenderer::SetViewVisibility", 385 "BrowserViewRenderer::SetViewVisibility",
387 TRACE_EVENT_SCOPE_THREAD, 386 TRACE_EVENT_SCOPE_THREAD,
388 "view_visible", 387 "view_visible",
389 view_visible); 388 view_visible);
390 view_visible_ = view_visible; 389 view_visible_ = view_visible;
391 } 390 }
392 391
393 void BrowserViewRenderer::SetWindowVisibility(bool window_visible) { 392 void BrowserViewRenderer::SetWindowVisibility(bool window_visible) {
394 TRACE_EVENT_INSTANT1("android_webview", 393 TRACE_EVENT_INSTANT1("android_webview",
395 "BrowserViewRenderer::SetWindowVisibility", 394 "BrowserViewRenderer::SetWindowVisibility",
396 TRACE_EVENT_SCOPE_THREAD, 395 TRACE_EVENT_SCOPE_THREAD,
397 "window_visible", 396 "window_visible",
398 window_visible); 397 window_visible);
399 window_visible_ = window_visible; 398 window_visible_ = window_visible;
400 UpdateCompositorIsActive();
401 } 399 }
402 400
403 void BrowserViewRenderer::OnSizeChanged(int width, int height) { 401 void BrowserViewRenderer::OnSizeChanged(int width, int height) {
404 TRACE_EVENT_INSTANT2("android_webview", 402 TRACE_EVENT_INSTANT2("android_webview",
405 "BrowserViewRenderer::OnSizeChanged", 403 "BrowserViewRenderer::OnSizeChanged",
406 TRACE_EVENT_SCOPE_THREAD, 404 TRACE_EVENT_SCOPE_THREAD,
407 "width", 405 "width",
408 width, 406 width,
409 "height", 407 "height",
410 height); 408 height);
411 size_.SetSize(width, height); 409 size_.SetSize(width, height);
412 if (offscreen_pre_raster_) 410 if (offscreen_pre_raster_)
413 UpdateMemoryPolicy(); 411 UpdateMemoryPolicy();
414 } 412 }
415 413
416 void BrowserViewRenderer::OnAttachedToWindow(int width, int height) { 414 void BrowserViewRenderer::OnAttachedToWindow(int width, int height) {
417 TRACE_EVENT2("android_webview", 415 TRACE_EVENT2("android_webview",
418 "BrowserViewRenderer::OnAttachedToWindow", 416 "BrowserViewRenderer::OnAttachedToWindow",
419 "width", 417 "width",
420 width, 418 width,
421 "height", 419 "height",
422 height); 420 height);
423 attached_to_window_ = true; 421 attached_to_window_ = true;
424 size_.SetSize(width, height); 422 size_.SetSize(width, height);
425 if (offscreen_pre_raster_) 423 if (offscreen_pre_raster_)
426 UpdateMemoryPolicy(); 424 UpdateMemoryPolicy();
427 UpdateCompositorIsActive();
428 } 425 }
429 426
430 void BrowserViewRenderer::OnDetachedFromWindow() { 427 void BrowserViewRenderer::OnDetachedFromWindow() {
431 TRACE_EVENT0("android_webview", "BrowserViewRenderer::OnDetachedFromWindow"); 428 TRACE_EVENT0("android_webview", "BrowserViewRenderer::OnDetachedFromWindow");
432 attached_to_window_ = false; 429 attached_to_window_ = false;
433 ReleaseHardware(); 430 ReleaseHardware();
434 UpdateCompositorIsActive();
435 } 431 }
436 432
437 void BrowserViewRenderer::ZoomBy(float delta) { 433 void BrowserViewRenderer::ZoomBy(float delta) {
438 if (!compositor_) 434 if (!compositor_)
439 return; 435 return;
440 compositor_->SynchronouslyZoomBy( 436 compositor_->SynchronouslyZoomBy(
441 delta, gfx::Point(size_.width() / 2, size_.height() / 2)); 437 delta, gfx::Point(size_.width() / 2, size_.height() / 2));
442 } 438 }
443 439
444 void BrowserViewRenderer::OnComputeScroll(base::TimeTicks animation_time) { 440 void BrowserViewRenderer::OnComputeScroll(base::TimeTicks animation_time) {
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
501 } 497 }
502 498
503 void BrowserViewRenderer::DidDestroyCompositor( 499 void BrowserViewRenderer::DidDestroyCompositor(
504 content::SynchronousCompositor* compositor) { 500 content::SynchronousCompositor* compositor) {
505 TRACE_EVENT_INSTANT0("android_webview", 501 TRACE_EVENT_INSTANT0("android_webview",
506 "BrowserViewRenderer::DidDestroyCompositor", 502 "BrowserViewRenderer::DidDestroyCompositor",
507 TRACE_EVENT_SCOPE_THREAD); 503 TRACE_EVENT_SCOPE_THREAD);
508 DCHECK(compositor_); 504 DCHECK(compositor_);
509 if (compositor_ == compositor) 505 if (compositor_ == compositor)
510 compositor_ = nullptr; 506 compositor_ = nullptr;
511 compositor->SetIsActive(false);
512 compositor_map_.erase(GetCompositorID(compositor)); 507 compositor_map_.erase(GetCompositorID(compositor));
513 } 508 }
514 509
515 void BrowserViewRenderer::DidBecomeCurrent( 510 void BrowserViewRenderer::DidBecomeCurrent(
516 content::SynchronousCompositor* compositor) { 511 content::SynchronousCompositor* compositor) {
517 TRACE_EVENT_INSTANT0("android_webview", 512 TRACE_EVENT_INSTANT0("android_webview",
518 "BrowserViewRenderer::DidBecomeCurrent", 513 "BrowserViewRenderer::DidBecomeCurrent",
519 TRACE_EVENT_SCOPE_THREAD); 514 TRACE_EVENT_SCOPE_THREAD);
520 DCHECK(compositor); 515 DCHECK(compositor);
521 DCHECK(GetCompositorID(compositor)); 516 DCHECK(GetCompositorID(compositor));
522 if (compositor_)
523 compositor_->SetIsActive(false);
524
525 compositor_ = compositor; 517 compositor_ = compositor;
526 UpdateCompositorIsActive();
527 } 518 }
528 519
529 void BrowserViewRenderer::SetDipScale(float dip_scale) { 520 void BrowserViewRenderer::SetDipScale(float dip_scale) {
530 dip_scale_ = dip_scale; 521 dip_scale_ = dip_scale;
531 CHECK_GT(dip_scale_, 0.f); 522 CHECK_GT(dip_scale_, 0.f);
532 } 523 }
533 524
534 gfx::Vector2d BrowserViewRenderer::max_scroll_offset() const { 525 gfx::Vector2d BrowserViewRenderer::max_scroll_offset() const {
535 DCHECK_GT(dip_scale_, 0.f); 526 DCHECK_GT(dip_scale_, 0.f);
536 return gfx::ToCeiledVector2d(gfx::ScaleVector2d( 527 return gfx::ToCeiledVector2d(gfx::ScaleVector2d(
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after
699 TRACE_EVENT_INSTANT0("android_webview", "BrowserViewRenderer::PostInvalidate", 690 TRACE_EVENT_INSTANT0("android_webview", "BrowserViewRenderer::PostInvalidate",
700 TRACE_EVENT_SCOPE_THREAD); 691 TRACE_EVENT_SCOPE_THREAD);
701 client_->PostInvalidate(); 692 client_->PostInvalidate();
702 } 693 }
703 694
704 bool BrowserViewRenderer::CompositeSW(SkCanvas* canvas) { 695 bool BrowserViewRenderer::CompositeSW(SkCanvas* canvas) {
705 DCHECK(compositor_); 696 DCHECK(compositor_);
706 return compositor_->DemandDrawSw(canvas); 697 return compositor_->DemandDrawSw(canvas);
707 } 698 }
708 699
709 void BrowserViewRenderer::UpdateCompositorIsActive() {
710 if (compositor_) {
711 compositor_->SetIsActive(!is_paused_ &&
712 (!attached_to_window_ || window_visible_));
713 }
714 }
715
716 std::string BrowserViewRenderer::ToString() const { 700 std::string BrowserViewRenderer::ToString() const {
717 std::string str; 701 std::string str;
718 base::StringAppendF(&str, "is_paused: %d ", is_paused_); 702 base::StringAppendF(&str, "is_paused: %d ", is_paused_);
719 base::StringAppendF(&str, "view_visible: %d ", view_visible_); 703 base::StringAppendF(&str, "view_visible: %d ", view_visible_);
720 base::StringAppendF(&str, "window_visible: %d ", window_visible_); 704 base::StringAppendF(&str, "window_visible: %d ", window_visible_);
721 base::StringAppendF(&str, "dip_scale: %f ", dip_scale_); 705 base::StringAppendF(&str, "dip_scale: %f ", dip_scale_);
722 base::StringAppendF(&str, "page_scale_factor: %f ", page_scale_factor_); 706 base::StringAppendF(&str, "page_scale_factor: %f ", page_scale_factor_);
723 base::StringAppendF(&str, "view size: %s ", size_.ToString().c_str()); 707 base::StringAppendF(&str, "view size: %s ", size_.ToString().c_str());
724 base::StringAppendF(&str, "attached_to_window: %d ", attached_to_window_); 708 base::StringAppendF(&str, "attached_to_window: %d ", attached_to_window_);
725 base::StringAppendF(&str, 709 base::StringAppendF(&str,
726 "global visible rect: %s ", 710 "global visible rect: %s ",
727 last_on_draw_global_visible_rect_.ToString().c_str()); 711 last_on_draw_global_visible_rect_.ToString().c_str());
728 base::StringAppendF( 712 base::StringAppendF(
729 &str, "scroll_offset_dip: %s ", scroll_offset_dip_.ToString().c_str()); 713 &str, "scroll_offset_dip: %s ", scroll_offset_dip_.ToString().c_str());
730 base::StringAppendF(&str, 714 base::StringAppendF(&str,
731 "overscroll_rounding_error_: %s ", 715 "overscroll_rounding_error_: %s ",
732 overscroll_rounding_error_.ToString().c_str()); 716 overscroll_rounding_error_.ToString().c_str());
733 base::StringAppendF( 717 base::StringAppendF(
734 &str, "on_new_picture_enable: %d ", on_new_picture_enable_); 718 &str, "on_new_picture_enable: %d ", on_new_picture_enable_);
735 base::StringAppendF(&str, "clear_view: %d ", clear_view_); 719 base::StringAppendF(&str, "clear_view: %d ", clear_view_);
736 return str; 720 return str;
737 } 721 }
738 722
739 } // namespace android_webview 723 } // namespace android_webview
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698