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

Side by Side Diff: content/browser/renderer_host/browser_compositor_view_mac.mm

Issue 2773433003: Fix CompositorResizeLock to do something. (Closed)
Patch Set: resizelock: . Created 3 years, 9 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 "content/browser/renderer_host/browser_compositor_view_mac.h" 5 #include "content/browser/renderer_host/browser_compositor_view_mac.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 8
9 #include <utility> 9 #include <utility>
10 10
11 #include "base/lazy_instance.h" 11 #include "base/lazy_instance.h"
12 #include "base/trace_event/trace_event.h" 12 #include "base/trace_event/trace_event.h"
13 #include "content/browser/compositor/image_transport_factory.h" 13 #include "content/browser/compositor/image_transport_factory.h"
14 #include "content/browser/renderer_host/resize_lock.h"
15 #include "content/public/browser/browser_thread.h" 14 #include "content/public/browser/browser_thread.h"
16 #include "content/public/browser/context_factory.h" 15 #include "content/public/browser/context_factory.h"
17 #include "media/base/video_frame.h" 16 #include "media/base/video_frame.h"
18 #include "ui/accelerated_widget_mac/accelerated_widget_mac.h" 17 #include "ui/accelerated_widget_mac/accelerated_widget_mac.h"
19 #include "ui/accelerated_widget_mac/window_resize_helper_mac.h" 18 #include "ui/accelerated_widget_mac/window_resize_helper_mac.h"
20 #include "ui/base/layout.h" 19 #include "ui/base/layout.h"
21 #include "ui/gfx/geometry/dip_util.h" 20 #include "ui/gfx/geometry/dip_util.h"
22 21
23 namespace content { 22 namespace content {
24 23
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
98 }; 97 };
99 98
100 RecyclableCompositorMac::RecyclableCompositorMac() 99 RecyclableCompositorMac::RecyclableCompositorMac()
101 : accelerated_widget_mac_(new ui::AcceleratedWidgetMac()), 100 : accelerated_widget_mac_(new ui::AcceleratedWidgetMac()),
102 compositor_(content::GetContextFactoryPrivate()->AllocateFrameSinkId(), 101 compositor_(content::GetContextFactoryPrivate()->AllocateFrameSinkId(),
103 content::GetContextFactory(), 102 content::GetContextFactory(),
104 content::GetContextFactoryPrivate(), 103 content::GetContextFactoryPrivate(),
105 ui::WindowResizeHelperMac::Get()->task_runner()) { 104 ui::WindowResizeHelperMac::Get()->task_runner()) {
106 compositor_.SetAcceleratedWidget( 105 compositor_.SetAcceleratedWidget(
107 accelerated_widget_mac_->accelerated_widget()); 106 accelerated_widget_mac_->accelerated_widget());
108 compositor_.SetLocksWillTimeOut(false);
109 Suspend(); 107 Suspend();
110 compositor_.AddObserver(this); 108 compositor_.AddObserver(this);
111 } 109 }
112 110
113 RecyclableCompositorMac::~RecyclableCompositorMac() { 111 RecyclableCompositorMac::~RecyclableCompositorMac() {
114 compositor_.RemoveObserver(this); 112 compositor_.RemoveObserver(this);
115 } 113 }
116 114
117 void RecyclableCompositorMac::Suspend() { 115 void RecyclableCompositorMac::Suspend() {
118 compositor_suspended_lock_ = compositor_.GetCompositorLock(); 116 // Requests a compositor lock without a timeout.
117 compositor_suspended_lock_ =
118 compositor_.GetCompositorLock(nullptr, base::TimeDelta());
119 } 119 }
120 120
121 void RecyclableCompositorMac::Unsuspend() { 121 void RecyclableCompositorMac::Unsuspend() {
122 compositor_suspended_lock_ = nullptr; 122 compositor_suspended_lock_ = nullptr;
123 } 123 }
124 124
125 void RecyclableCompositorMac::OnCompositingDidCommit( 125 void RecyclableCompositorMac::OnCompositingDidCommit(
126 ui::Compositor* compositor_that_did_commit) { 126 ui::Compositor* compositor_that_did_commit) {
127 DCHECK_EQ(compositor_that_did_commit, compositor()); 127 DCHECK_EQ(compositor_that_did_commit, compositor());
128 content::ImageTransportFactory::GetInstance() 128 content::ImageTransportFactory::GetInstance()
(...skipping 291 matching lines...) Expand 10 before | Expand all | Expand 10 after
420 gfx::Size BrowserCompositorMac::DelegatedFrameHostDesiredSizeInDIP() const { 420 gfx::Size BrowserCompositorMac::DelegatedFrameHostDesiredSizeInDIP() const {
421 NSRect bounds = [client_->BrowserCompositorMacGetNSView() bounds]; 421 NSRect bounds = [client_->BrowserCompositorMacGetNSView() bounds];
422 return gfx::Size(bounds.size.width, bounds.size.height); 422 return gfx::Size(bounds.size.width, bounds.size.height);
423 } 423 }
424 424
425 bool BrowserCompositorMac::DelegatedFrameCanCreateResizeLock() const { 425 bool BrowserCompositorMac::DelegatedFrameCanCreateResizeLock() const {
426 // Mac uses the RenderWidgetResizeHelper instead of a resize lock. 426 // Mac uses the RenderWidgetResizeHelper instead of a resize lock.
427 return false; 427 return false;
428 } 428 }
429 429
430 std::unique_ptr<ResizeLock> 430 std::unique_ptr<CompositorResizeLock>
431 BrowserCompositorMac::DelegatedFrameHostCreateResizeLock( 431 BrowserCompositorMac::DelegatedFrameHostCreateResizeLock() {
432 bool defer_compositor_lock) {
433 NOTREACHED(); 432 NOTREACHED();
434 return std::unique_ptr<ResizeLock>(); 433 return nullptr;
435 } 434 }
436 435
437 void BrowserCompositorMac::DelegatedFrameHostResizeLockWasReleased() { 436 void BrowserCompositorMac::DelegatedFrameHostResizeLockWasReleased() {
438 NOTREACHED(); 437 NOTREACHED();
439 } 438 }
440 439
441 void BrowserCompositorMac::DelegatedFrameHostSendReclaimCompositorResources( 440 void BrowserCompositorMac::DelegatedFrameHostSendReclaimCompositorResources(
442 int compositor_frame_sink_id, 441 int compositor_frame_sink_id,
443 bool is_swap_ack, 442 bool is_swap_ack,
444 const cc::ReturnedResourceArray& resources) { 443 const cc::ReturnedResourceArray& resources) {
(...skipping 24 matching lines...) Expand all
469 468
470 const cc::BeginFrameArgs& BrowserCompositorMac::LastUsedBeginFrameArgs() const { 469 const cc::BeginFrameArgs& BrowserCompositorMac::LastUsedBeginFrameArgs() const {
471 return last_begin_frame_args_; 470 return last_begin_frame_args_;
472 } 471 }
473 472
474 void BrowserCompositorMac::OnBeginFrameSourcePausedChanged(bool paused) { 473 void BrowserCompositorMac::OnBeginFrameSourcePausedChanged(bool paused) {
475 // Only used on Android WebView. 474 // Only used on Android WebView.
476 } 475 }
477 476
478 } // namespace content 477 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698