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

Side by Side Diff: content/browser/renderer_host/render_widget_host_view_aura.cc

Issue 161413002: Revert of Read compositor VSync information from platform, when possible (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 10 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 | Annotate | Revision Log
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/renderer_host/render_widget_host_view_aura.h" 5 #include "content/browser/renderer_host/render_widget_host_view_aura.h"
6 6
7 #include "base/auto_reset.h" 7 #include "base/auto_reset.h"
8 #include "base/basictypes.h" 8 #include "base/basictypes.h"
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/callback_helpers.h" 10 #include "base/callback_helpers.h"
(...skipping 3211 matching lines...) Expand 10 before | Expand all | Expand 10 after
3222 void RenderWidgetHostViewAura::OnCompositingLockStateChanged( 3222 void RenderWidgetHostViewAura::OnCompositingLockStateChanged(
3223 ui::Compositor* compositor) { 3223 ui::Compositor* compositor) {
3224 // A compositor lock that is part of a resize lock timed out. We 3224 // A compositor lock that is part of a resize lock timed out. We
3225 // should display a renderer frame. 3225 // should display a renderer frame.
3226 if (!compositor->IsLocked() && can_lock_compositor_ == YES_DID_LOCK) { 3226 if (!compositor->IsLocked() && can_lock_compositor_ == YES_DID_LOCK) {
3227 can_lock_compositor_ = NO_PENDING_RENDERER_FRAME; 3227 can_lock_compositor_ = NO_PENDING_RENDERER_FRAME;
3228 } 3228 }
3229 } 3229 }
3230 3230
3231 void RenderWidgetHostViewAura::OnUpdateVSyncParameters( 3231 void RenderWidgetHostViewAura::OnUpdateVSyncParameters(
3232 ui::Compositor* compositor,
3232 base::TimeTicks timebase, 3233 base::TimeTicks timebase,
3233 base::TimeDelta interval) { 3234 base::TimeDelta interval) {
3234 if (IsShowing()) { 3235 if (IsShowing()) {
3235 if (IsDeadlineSchedulingEnabled()) { 3236 if (IsDeadlineSchedulingEnabled()) {
3236 // The deadline scheduler has logic to stagger the draws of the 3237 // The deadline scheduler has logic to stagger the draws of the
3237 // Renderer and Browser built-in, so send it an accurate timebase. 3238 // Renderer and Browser built-in, so send it an accurate timebase.
3238 host_->UpdateVSyncParameters(timebase, interval); 3239 host_->UpdateVSyncParameters(timebase, interval);
3239 } else if (!last_draw_ended_.is_null()) { 3240 } else if (!last_draw_ended_.is_null()) {
3240 // For the non-deadline scheduler, we send the Renderer an offset 3241 // For the non-deadline scheduler, we send the Renderer an offset
3241 // vsync timebase to avoid its draws racing the Browser's draws. 3242 // vsync timebase to avoid its draws racing the Browser's draws.
(...skipping 280 matching lines...) Expand 10 before | Expand all | Expand 10 after
3522 input_method->SetFocusedTextInputClient(this); 3523 input_method->SetFocusedTextInputClient(this);
3523 } 3524 }
3524 3525
3525 #if defined(OS_WIN) 3526 #if defined(OS_WIN)
3526 // The parent may have changed here. Ensure that the legacy window is 3527 // The parent may have changed here. Ensure that the legacy window is
3527 // reparented accordingly. 3528 // reparented accordingly.
3528 if (legacy_render_widget_host_HWND_) 3529 if (legacy_render_widget_host_HWND_)
3529 legacy_render_widget_host_HWND_->UpdateParent( 3530 legacy_render_widget_host_HWND_->UpdateParent(
3530 reinterpret_cast<HWND>(GetNativeViewId())); 3531 reinterpret_cast<HWND>(GetNativeViewId()));
3531 #endif 3532 #endif
3532
3533 ui::Compositor* compositor = GetCompositor();
3534 if (compositor)
3535 compositor->vsync_manager()->AddObserver(this);
3536 } 3533 }
3537 3534
3538 void RenderWidgetHostViewAura::RemovingFromRootWindow() { 3535 void RenderWidgetHostViewAura::RemovingFromRootWindow() {
3539 aura::client::CursorClient* cursor_client = 3536 aura::client::CursorClient* cursor_client =
3540 aura::client::GetCursorClient(window_->GetRootWindow()); 3537 aura::client::GetCursorClient(window_->GetRootWindow());
3541 if (cursor_client) 3538 if (cursor_client)
3542 cursor_client->RemoveObserver(this); 3539 cursor_client->RemoveObserver(this);
3543 3540
3544 DetachFromInputMethod(); 3541 DetachFromInputMethod();
3545 3542
3546 window_->GetDispatcher()->RemoveRootWindowObserver(this); 3543 window_->GetDispatcher()->RemoveRootWindowObserver(this);
3547 ui::Compositor* compositor = GetCompositor(); 3544 ui::Compositor* compositor = GetCompositor();
3548 if (current_surface_.get()) { 3545 if (current_surface_.get()) {
3549 // We can't get notification for commits after this point, which would 3546 // We can't get notification for commits after this point, which would
3550 // guarantee that the compositor isn't using an old texture any more, so 3547 // guarantee that the compositor isn't using an old texture any more, so
3551 // instead we force the layer to stop using any external resources which 3548 // instead we force the layer to stop using any external resources which
3552 // synchronizes with the compositor thread, and makes it safe to run the 3549 // synchronizes with the compositor thread, and makes it safe to run the
3553 // callback. 3550 // callback.
3554 window_->layer()->SetShowPaintedContent(); 3551 window_->layer()->SetShowPaintedContent();
3555 } 3552 }
3556 RunOnCommitCallbacks(); 3553 RunOnCommitCallbacks();
3557 resize_lock_.reset(); 3554 resize_lock_.reset();
3558 host_->WasResized(); 3555 host_->WasResized();
3559 3556 if (compositor && compositor->HasObserver(this))
3560 if (compositor) { 3557 compositor->RemoveObserver(this);
3561 if (compositor->HasObserver(this))
3562 compositor->RemoveObserver(this);
3563 compositor->vsync_manager()->RemoveObserver(this);
3564 }
3565 3558
3566 #if defined(OS_WIN) 3559 #if defined(OS_WIN)
3567 // Update the legacy window's parent temporarily to the desktop window. It 3560 // Update the legacy window's parent temporarily to the desktop window. It
3568 // will eventually get reparented to the right root. 3561 // will eventually get reparented to the right root.
3569 if (legacy_render_widget_host_HWND_) 3562 if (legacy_render_widget_host_HWND_)
3570 legacy_render_widget_host_HWND_->UpdateParent(::GetDesktopWindow()); 3563 legacy_render_widget_host_HWND_->UpdateParent(::GetDesktopWindow());
3571 #endif 3564 #endif
3572 } 3565 }
3573 3566
3574 ui::Compositor* RenderWidgetHostViewAura::GetCompositor() const { 3567 ui::Compositor* RenderWidgetHostViewAura::GetCompositor() const {
(...skipping 25 matching lines...) Expand all
3600 RenderWidgetHost* widget) { 3593 RenderWidgetHost* widget) {
3601 return new RenderWidgetHostViewAura(widget); 3594 return new RenderWidgetHostViewAura(widget);
3602 } 3595 }
3603 3596
3604 // static 3597 // static
3605 void RenderWidgetHostViewPort::GetDefaultScreenInfo(WebScreenInfo* results) { 3598 void RenderWidgetHostViewPort::GetDefaultScreenInfo(WebScreenInfo* results) {
3606 GetScreenInfoForWindow(results, NULL); 3599 GetScreenInfoForWindow(results, NULL);
3607 } 3600 }
3608 3601
3609 } // namespace content 3602 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/renderer_host/render_widget_host_view_aura.h ('k') | content/renderer/gpu/compositor_output_surface.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698