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

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

Issue 2773433003: Fix CompositorResizeLock to do something. (Closed)
Patch Set: resizelock: observer-rebase Created 3 years, 8 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" 14 #include "content/browser/renderer_host/compositor_resize_lock.h"
15 #include "content/public/browser/browser_thread.h" 15 #include "content/public/browser/browser_thread.h"
16 #include "content/public/browser/context_factory.h" 16 #include "content/public/browser/context_factory.h"
17 #include "media/base/video_frame.h" 17 #include "media/base/video_frame.h"
18 #include "ui/accelerated_widget_mac/accelerated_widget_mac.h" 18 #include "ui/accelerated_widget_mac/accelerated_widget_mac.h"
19 #include "ui/accelerated_widget_mac/window_resize_helper_mac.h" 19 #include "ui/accelerated_widget_mac/window_resize_helper_mac.h"
20 #include "ui/base/layout.h" 20 #include "ui/base/layout.h"
21 #include "ui/gfx/geometry/dip_util.h" 21 #include "ui/gfx/geometry/dip_util.h"
22 22
23 namespace content { 23 namespace content {
24 24
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
84 84
85 // ui::CompositorObserver implementation: 85 // ui::CompositorObserver implementation:
86 void OnCompositingDidCommit(ui::Compositor* compositor) override; 86 void OnCompositingDidCommit(ui::Compositor* compositor) override;
87 void OnCompositingStarted(ui::Compositor* compositor, 87 void OnCompositingStarted(ui::Compositor* compositor,
88 base::TimeTicks start_time) override {} 88 base::TimeTicks start_time) override {}
89 void OnCompositingLockStateChanged(ui::Compositor* compositor) override {} 89 void OnCompositingLockStateChanged(ui::Compositor* compositor) override {}
90 void OnCompositingShuttingDown(ui::Compositor* compositor) override {} 90 void OnCompositingShuttingDown(ui::Compositor* compositor) override {}
91 91
92 std::unique_ptr<ui::AcceleratedWidgetMac> accelerated_widget_mac_; 92 std::unique_ptr<ui::AcceleratedWidgetMac> accelerated_widget_mac_;
93 ui::Compositor compositor_; 93 ui::Compositor compositor_;
94 scoped_refptr<ui::CompositorLock> compositor_suspended_lock_; 94 std::unique_ptr<ui::CompositorLock> compositor_suspended_lock_;
95 95
96 DISALLOW_COPY_AND_ASSIGN(RecyclableCompositorMac); 96 DISALLOW_COPY_AND_ASSIGN(RecyclableCompositorMac);
97 }; 97 };
98 98
99 RecyclableCompositorMac::RecyclableCompositorMac() 99 RecyclableCompositorMac::RecyclableCompositorMac()
100 : accelerated_widget_mac_(new ui::AcceleratedWidgetMac()), 100 : accelerated_widget_mac_(new ui::AcceleratedWidgetMac()),
101 compositor_(content::GetContextFactoryPrivate()->AllocateFrameSinkId(), 101 compositor_(content::GetContextFactoryPrivate()->AllocateFrameSinkId(),
102 content::GetContextFactory(), 102 content::GetContextFactory(),
103 content::GetContextFactoryPrivate(), 103 content::GetContextFactoryPrivate(),
104 ui::WindowResizeHelperMac::Get()->task_runner()) { 104 ui::WindowResizeHelperMac::Get()->task_runner()) {
105 compositor_.SetAcceleratedWidget( 105 compositor_.SetAcceleratedWidget(
106 accelerated_widget_mac_->accelerated_widget()); 106 accelerated_widget_mac_->accelerated_widget());
107 compositor_.SetLocksWillTimeOut(false);
108 Suspend(); 107 Suspend();
109 compositor_.AddObserver(this); 108 compositor_.AddObserver(this);
110 } 109 }
111 110
112 RecyclableCompositorMac::~RecyclableCompositorMac() { 111 RecyclableCompositorMac::~RecyclableCompositorMac() {
113 compositor_.RemoveObserver(this); 112 compositor_.RemoveObserver(this);
114 } 113 }
115 114
116 void RecyclableCompositorMac::Suspend() { 115 void RecyclableCompositorMac::Suspend() {
117 compositor_suspended_lock_ = compositor_.GetCompositorLock(); 116 // Requests a compositor lock without a timeout.
117 compositor_suspended_lock_ =
118 compositor_.GetCompositorLock(nullptr, base::TimeDelta());
118 } 119 }
119 120
120 void RecyclableCompositorMac::Unsuspend() { 121 void RecyclableCompositorMac::Unsuspend() {
121 compositor_suspended_lock_ = nullptr; 122 compositor_suspended_lock_ = nullptr;
122 } 123 }
123 124
124 void RecyclableCompositorMac::OnCompositingDidCommit( 125 void RecyclableCompositorMac::OnCompositingDidCommit(
125 ui::Compositor* compositor_that_did_commit) { 126 ui::Compositor* compositor_that_did_commit) {
126 DCHECK_EQ(compositor_that_did_commit, compositor()); 127 DCHECK_EQ(compositor_that_did_commit, compositor());
127 content::ImageTransportFactory::GetInstance() 128 content::ImageTransportFactory::GetInstance()
(...skipping 287 matching lines...) Expand 10 before | Expand all | Expand 10 after
415 gfx::Size BrowserCompositorMac::DelegatedFrameHostDesiredSizeInDIP() const { 416 gfx::Size BrowserCompositorMac::DelegatedFrameHostDesiredSizeInDIP() const {
416 NSRect bounds = [client_->BrowserCompositorMacGetNSView() bounds]; 417 NSRect bounds = [client_->BrowserCompositorMacGetNSView() bounds];
417 return gfx::Size(bounds.size.width, bounds.size.height); 418 return gfx::Size(bounds.size.width, bounds.size.height);
418 } 419 }
419 420
420 bool BrowserCompositorMac::DelegatedFrameCanCreateResizeLock() const { 421 bool BrowserCompositorMac::DelegatedFrameCanCreateResizeLock() const {
421 // Mac uses the RenderWidgetResizeHelper instead of a resize lock. 422 // Mac uses the RenderWidgetResizeHelper instead of a resize lock.
422 return false; 423 return false;
423 } 424 }
424 425
425 std::unique_ptr<ResizeLock> 426 std::unique_ptr<CompositorResizeLock>
426 BrowserCompositorMac::DelegatedFrameHostCreateResizeLock( 427 BrowserCompositorMac::DelegatedFrameHostCreateResizeLock() {
427 bool defer_compositor_lock) {
428 NOTREACHED(); 428 NOTREACHED();
429 return std::unique_ptr<ResizeLock>(); 429 return nullptr;
430 } 430 }
431 431
432 void BrowserCompositorMac::DelegatedFrameHostResizeLockWasReleased() { 432 void BrowserCompositorMac::DelegatedFrameHostResizeLockWasReleased() {
433 NOTREACHED(); 433 NOTREACHED();
434 } 434 }
435 435
436 void BrowserCompositorMac::DelegatedFrameHostSendReclaimCompositorResources( 436 void BrowserCompositorMac::DelegatedFrameHostSendReclaimCompositorResources(
437 int compositor_frame_sink_id, 437 int compositor_frame_sink_id,
438 bool is_swap_ack, 438 bool is_swap_ack,
439 const cc::ReturnedResourceArray& resources) { 439 const cc::ReturnedResourceArray& resources) {
440 client_->BrowserCompositorMacSendReclaimCompositorResources( 440 client_->BrowserCompositorMacSendReclaimCompositorResources(
441 compositor_frame_sink_id, is_swap_ack, resources); 441 compositor_frame_sink_id, is_swap_ack, resources);
442 } 442 }
443 443
444 void BrowserCompositorMac::OnBeginFrame(const cc::BeginFrameArgs& args) { 444 void BrowserCompositorMac::OnBeginFrame(const cc::BeginFrameArgs& args) {
445 client_->BrowserCompositorMacSendBeginFrame(args); 445 client_->BrowserCompositorMacSendBeginFrame(args);
446 } 446 }
447 447
448 bool BrowserCompositorMac::IsAutoResizeEnabled() const { 448 bool BrowserCompositorMac::IsAutoResizeEnabled() const {
449 NOTREACHED(); 449 NOTREACHED();
450 return false; 450 return false;
451 } 451 }
452 452
453 } // namespace content 453 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/renderer_host/browser_compositor_view_mac.h ('k') | content/browser/renderer_host/compositor_resize_lock.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698