diff options
author | avi@chromium.org <avi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-03-30 21:59:18 +0000 |
---|---|---|
committer | avi@chromium.org <avi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-03-30 21:59:18 +0000 |
commit | 4699f1faf715bc2714e0d6b0ca8b939b6cefcef7 (patch) | |
tree | 3af19f9757aa4bacc4fe877e5a4d3245d2ef7818 /content/browser | |
parent | 7510d108021bc6b0efeb42ea18f29c266bf9e780 (diff) | |
download | chromium_src-4699f1faf715bc2714e0d6b0ca8b939b6cefcef7.zip chromium_src-4699f1faf715bc2714e0d6b0ca8b939b6cefcef7.tar.gz chromium_src-4699f1faf715bc2714e0d6b0ca8b939b6cefcef7.tar.bz2 |
Mac content shell: fix GPU acceleration
BUG=120772
TEST=site in bug works in content shell on Mac.
Review URL: https://chromiumcodereview.appspot.com/9969010
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@129961 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/browser')
3 files changed, 16 insertions, 18 deletions
diff --git a/content/browser/renderer_host/accelerated_plugin_view_mac.h b/content/browser/renderer_host/accelerated_plugin_view_mac.h index 4f8c0ba..0d3de79 100644 --- a/content/browser/renderer_host/accelerated_plugin_view_mac.h +++ b/content/browser/renderer_host/accelerated_plugin_view_mac.h @@ -1,4 +1,4 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Copyright (c) 2012 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -13,13 +13,6 @@ class RenderWidgetHostViewMac; -// Informal protocol implemented by windows that need to be informed explicitly -// about underlay surfaces. -@interface NSObject (UnderlayableSurface) -- (void)underlaySurfaceAdded; -- (void)underlaySurfaceRemoved; -@end - // This subclass of NSView hosts the output of accelerated plugins on // the page. @interface AcceleratedPluginView : NSView { diff --git a/content/browser/renderer_host/accelerated_plugin_view_mac.mm b/content/browser/renderer_host/accelerated_plugin_view_mac.mm index c499046..3571ae0 100644 --- a/content/browser/renderer_host/accelerated_plugin_view_mac.mm +++ b/content/browser/renderer_host/accelerated_plugin_view_mac.mm @@ -9,6 +9,7 @@ #include "base/command_line.h" #include "base/debug/trace_event.h" #include "content/browser/renderer_host/render_widget_host_view_mac.h" +#import "content/public/browser/accelerated_window_interface.h" #include "content/public/browser/browser_thread.h" #include "ui/gfx/gl/gl_context.h" #include "ui/gfx/gl/gl_switches.h" @@ -185,10 +186,12 @@ using content::BrowserThread; // Inform the window hosting this accelerated view that it needs to be // transparent. if (![self isHiddenOrHasHiddenAncestor]) { - if ([[self window] respondsToSelector:@selector(underlaySurfaceRemoved)]) - [static_cast<id>([self window]) underlaySurfaceRemoved]; - if ([newWindow respondsToSelector:@selector(underlaySurfaceAdded)]) - [static_cast<id>(newWindow) underlaySurfaceAdded]; + if ([[self window] conformsToProtocol:@protocol(UnderlayableSurface)]) { + [static_cast<id<UnderlayableSurface> >([self window]) + underlaySurfaceRemoved]; + } + if ([newWindow conformsToProtocol:@protocol(UnderlayableSurface)]) + [static_cast<id<UnderlayableSurface> >(newWindow) underlaySurfaceAdded]; } } @@ -196,8 +199,9 @@ using content::BrowserThread; TRACE_EVENT0("browser", "AcceleratedPluginView::viewDidHide"); [super viewDidHide]; - if ([[self window] respondsToSelector:@selector(underlaySurfaceRemoved)]) { - [static_cast<id>([self window]) underlaySurfaceRemoved]; + if ([[self window] conformsToProtocol:@protocol(UnderlayableSurface)]) { + [static_cast<id<UnderlayableSurface> >([self window]) + underlaySurfaceRemoved]; } } @@ -210,8 +214,8 @@ using content::BrowserThread; [self initOpenGLContext]; } - if ([[self window] respondsToSelector:@selector(underlaySurfaceRemoved)]) { - [static_cast<id>([self window]) underlaySurfaceAdded]; + if ([[self window] conformsToProtocol:@protocol(UnderlayableSurface)]) { + [static_cast<id<UnderlayableSurface> >([self window]) underlaySurfaceAdded]; } } diff --git a/content/browser/renderer_host/accelerated_plugin_view_mac_unittest.mm b/content/browser/renderer_host/accelerated_plugin_view_mac_unittest.mm index 4d902d2..8ad3334 100644 --- a/content/browser/renderer_host/accelerated_plugin_view_mac_unittest.mm +++ b/content/browser/renderer_host/accelerated_plugin_view_mac_unittest.mm @@ -1,14 +1,15 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Copyright (c) 2012 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "content/browser/renderer_host/accelerated_plugin_view_mac.h" #include "base/logging.h" +#import "content/public/browser/accelerated_window_interface.h" #include "testing/gtest/include/gtest/gtest.h" #include "testing/platform_test.h" -@interface UnderlayCountingWindow : NSWindow { +@interface UnderlayCountingWindow : NSWindow<UnderlayableSurface> { @private int underlayCount_; } |