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

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

Issue 666123003: Mac: Use Mavericks occlusion APIs for power savings. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Move occlusion handling to WebContentsViewMac Created 6 years, 1 month 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 (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_mac.h" 5 #include "content/browser/renderer_host/render_widget_host_view_mac.h"
6 6
7 #import <objc/runtime.h> 7 #import <objc/runtime.h>
8 #include <OpenGL/gl.h> 8 #include <OpenGL/gl.h>
9 #include <QuartzCore/QuartzCore.h> 9 #include <QuartzCore/QuartzCore.h>
10 10
(...skipping 775 matching lines...) Expand 10 before | Expand all | Expand 10 after
786 0); 786 0);
787 render_widget_host_->WasShown(renderer_latency_info); 787 render_widget_host_->WasShown(renderer_latency_info);
788 788
789 // If there is not a frame being currently drawn, kick one, so that the below 789 // If there is not a frame being currently drawn, kick one, so that the below
790 // pause will have a frame to wait on. 790 // pause will have a frame to wait on.
791 render_widget_host_->ScheduleComposite(); 791 render_widget_host_->ScheduleComposite();
792 PauseForPendingResizeOrRepaintsAndDraw(); 792 PauseForPendingResizeOrRepaintsAndDraw();
793 } 793 }
794 794
795 void RenderWidgetHostViewMac::WasHidden() { 795 void RenderWidgetHostViewMac::WasHidden() {
796 if (render_widget_host_->is_hidden()) 796 // We want to call DestroyBrowserCompositorView on inactive tabs, but not on
797 return; 797 // an active tab that is being occluded.
798 798 if (![cocoa_view_ window])
799 DestroyBrowserCompositorView(); 799 DestroyBrowserCompositorView();
800 800
801 // If we have a renderer, then inform it that we are being hidden so it can 801 // If we have a renderer, then inform it that we are being hidden so it can
802 // reduce its resource utilization. 802 // reduce its resource utilization.
803 render_widget_host_->WasHidden(); 803 if (!render_widget_host_->is_hidden())
804 render_widget_host_->WasHidden();
804 } 805 }
805 806
806 void RenderWidgetHostViewMac::SetSize(const gfx::Size& size) { 807 void RenderWidgetHostViewMac::SetSize(const gfx::Size& size) {
807 gfx::Rect rect = GetViewBounds(); 808 gfx::Rect rect = GetViewBounds();
808 rect.set_size(size); 809 rect.set_size(size);
809 SetBounds(rect); 810 SetBounds(rect);
810 } 811 }
811 812
812 void RenderWidgetHostViewMac::SetBounds(const gfx::Rect& rect) { 813 void RenderWidgetHostViewMac::SetBounds(const gfx::Rect& rect) {
813 // |rect.size()| is view coordinates, |rect.origin| is screen coordinates, 814 // |rect.size()| is view coordinates, |rect.origin| is screen coordinates,
(...skipping 2494 matching lines...) Expand 10 before | Expand all | Expand 10 after
3308 3309
3309 // "-webkit-app-region: drag | no-drag" is implemented on Mac by excluding 3310 // "-webkit-app-region: drag | no-drag" is implemented on Mac by excluding
3310 // regions that are not draggable. (See ControlRegionView in 3311 // regions that are not draggable. (See ControlRegionView in
3311 // native_app_window_cocoa.mm). This requires the render host view to be 3312 // native_app_window_cocoa.mm). This requires the render host view to be
3312 // draggable by default. 3313 // draggable by default.
3313 - (BOOL)mouseDownCanMoveWindow { 3314 - (BOOL)mouseDownCanMoveWindow {
3314 return YES; 3315 return YES;
3315 } 3316 }
3316 3317
3317 @end 3318 @end
OLDNEW
« no previous file with comments | « base/mac/sdk_forward_declarations.mm ('k') | content/browser/web_contents/web_contents_view_mac.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698