| Index: content/browser/renderer_host/render_widget_host_view_mac.mm
|
| diff --git a/content/browser/renderer_host/render_widget_host_view_mac.mm b/content/browser/renderer_host/render_widget_host_view_mac.mm
|
| index 5f448975353d51b2c8787f801e0c37edec35ed51..73f6ec237fab161bb06a8489c30905aaee44e820 100644
|
| --- a/content/browser/renderer_host/render_widget_host_view_mac.mm
|
| +++ b/content/browser/renderer_host/render_widget_host_view_mac.mm
|
| @@ -35,14 +35,10 @@
|
| #include "content/browser/frame_host/frame_tree_node.h"
|
| #include "content/browser/frame_host/render_frame_host_impl.h"
|
| #include "content/browser/gpu/compositor_util.h"
|
| -#include "content/browser/renderer_host/compositing_iosurface_context_mac.h"
|
| -#include "content/browser/renderer_host/compositing_iosurface_layer_mac.h"
|
| -#include "content/browser/renderer_host/compositing_iosurface_mac.h"
|
| #include "content/browser/renderer_host/render_widget_helper.h"
|
| #include "content/browser/renderer_host/render_view_host_impl.h"
|
| #import "content/browser/renderer_host/render_widget_host_view_mac_dictionary_helper.h"
|
| #import "content/browser/renderer_host/render_widget_host_view_mac_editcommand_helper.h"
|
| -#import "content/browser/renderer_host/software_layer_mac.h"
|
| #import "content/browser/renderer_host/text_input_client_mac.h"
|
| #include "content/common/accessibility_messages.h"
|
| #include "content/common/edit_command.h"
|
| @@ -458,8 +454,44 @@ DelegatedFrameHost* RenderWidgetHostViewMac::GetDelegatedFrameHost() const {
|
|
|
| bool RenderWidgetHostViewMac::BrowserCompositorViewShouldAckImmediately()
|
| const {
|
| - // The logic for delegated and non-delegated rendering is the same.
|
| - return AcceleratedLayerShouldAckImmediately();
|
| + // If vsync is disabled, then always draw and ack frames immediately.
|
| + static bool is_vsync_disabled =
|
| + base::CommandLine::ForCurrentProcess()->HasSwitch(
|
| + switches::kDisableGpuVsync);
|
| + if (is_vsync_disabled)
|
| + return true;
|
| +
|
| + // If the window is occluded, then this frame's display call may be severely
|
| + // throttled. This is a good thing, unless tab capture may be active, because
|
| + // the broadcast will be inappropriately throttled.
|
| + // http://crbug.com/350410
|
| +
|
| + // If tab capture isn't active then only ack frames when we draw them.
|
| + if (delegated_frame_host_ && !delegated_frame_host_->HasFrameSubscriber())
|
| + return false;
|
| +
|
| + NSWindow* window = [cocoa_view_ window];
|
| + // If the view isn't even in the heirarchy then frames will never be drawn,
|
| + // so ack them immediately.
|
| + if (!window)
|
| + return true;
|
| +
|
| + // Check the window occlusion API.
|
| + if ([window respondsToSelector:@selector(occlusionState)]) {
|
| + if ([window occlusionState] & NSWindowOcclusionStateVisible) {
|
| + // If the window is visible then it is safe to wait until frames are
|
| + // drawn to ack them.
|
| + return false;
|
| + } else {
|
| + // If the window is occluded then frames may never be drawn, so ack them
|
| + // immediately.
|
| + return true;
|
| + }
|
| + }
|
| +
|
| + // If the window occlusion API is not present then ack frames when we draw
|
| + // them.
|
| + return false;
|
| }
|
|
|
| void RenderWidgetHostViewMac::BrowserCompositorViewFrameSwapped(
|
| @@ -1600,56 +1632,6 @@ SkColorType RenderWidgetHostViewMac::PreferredReadbackFormat() {
|
| }
|
|
|
| ////////////////////////////////////////////////////////////////////////////////
|
| -// CompositingIOSurfaceLayerClient, public:
|
| -
|
| -bool RenderWidgetHostViewMac::AcceleratedLayerShouldAckImmediately() const {
|
| - // If vsync is disabled, then always draw and ack frames immediately.
|
| - static bool is_vsync_disabled =
|
| - base::CommandLine::ForCurrentProcess()->HasSwitch(
|
| - switches::kDisableGpuVsync);
|
| - if (is_vsync_disabled)
|
| - return true;
|
| -
|
| - // If the window is occluded, then this frame's display call may be severely
|
| - // throttled. This is a good thing, unless tab capture may be active, because
|
| - // the broadcast will be inappropriately throttled.
|
| - // http://crbug.com/350410
|
| -
|
| - // If tab capture isn't active then only ack frames when we draw them.
|
| - if (delegated_frame_host_ && !delegated_frame_host_->HasFrameSubscriber())
|
| - return false;
|
| -
|
| - NSWindow* window = [cocoa_view_ window];
|
| - // If the view isn't even in the heirarchy then frames will never be drawn,
|
| - // so ack them immediately.
|
| - if (!window)
|
| - return true;
|
| -
|
| - // Check the window occlusion API.
|
| - if ([window respondsToSelector:@selector(occlusionState)]) {
|
| - if ([window occlusionState] & NSWindowOcclusionStateVisible) {
|
| - // If the window is visible then it is safe to wait until frames are
|
| - // drawn to ack them.
|
| - return false;
|
| - } else {
|
| - // If the window is occluded then frames may never be drawn, so ack them
|
| - // immediately.
|
| - return true;
|
| - }
|
| - }
|
| -
|
| - // If the window occlusion API is not present then ack frames when we draw
|
| - // them.
|
| - return false;
|
| -}
|
| -
|
| -void RenderWidgetHostViewMac::AcceleratedLayerDidDrawFrame() {
|
| -}
|
| -
|
| -void RenderWidgetHostViewMac::AcceleratedLayerHitError() {
|
| -}
|
| -
|
| -////////////////////////////////////////////////////////////////////////////////
|
| // gfx::DisplayObserver, public:
|
|
|
| void RenderWidgetHostViewMac::OnDisplayAdded(const gfx::Display& display) {
|
|
|