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

Unified Diff: chrome/browser/plugin_carbon_interpose_mac.cc

Issue 8224021: Move the following files to content\public\plugin. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 years, 2 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | chrome/chrome.gyp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/plugin_carbon_interpose_mac.cc
===================================================================
--- chrome/browser/plugin_carbon_interpose_mac.cc (revision 104808)
+++ chrome/browser/plugin_carbon_interpose_mac.cc (working copy)
@@ -1,193 +0,0 @@
-// Copyright (c) 2009 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.
-
-#if !defined(__LP64__)
-
-#include <Carbon/Carbon.h>
-
-#include "content/plugin/plugin_interpose_util_mac.h"
-#include "ui/gfx/rect.h"
-#include "webkit/plugins/npapi/carbon_plugin_window_tracker_mac.h"
-
-#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
-
-// Returns true if the given window is modal.
-static bool IsModalWindow(WindowRef window) {
- WindowModality modality = kWindowModalityNone;
- WindowRef modal_target = NULL;
- OSStatus status = GetWindowModality(window, &modality, &modal_target);
- return (status == noErr) && (modality != kWindowModalityNone);
-}
-
-static bool IsContainingWindowActive(const OpaquePluginRef delegate) {
- return mac_plugin_interposing::GetPluginWindowHasFocus(delegate);
-}
-
-static CGRect CGRectForWindow(WindowRef window) {
- CGRect bounds = { { 0, 0 }, { 0, 0 } };
- HIWindowGetBounds(window, kWindowContentRgn, kHICoordSpace72DPIGlobal,
- &bounds);
- return bounds;
-}
-
-struct WindowInfo {
- uint32 window_id;
- CGRect bounds;
- WindowInfo(WindowRef window) {
- window_id = HIWindowGetCGWindowID(window);
- bounds = CGRectForWindow(window);
- }
-};
-
-static void OnPluginWindowClosed(const WindowInfo& window_info) {
- mac_plugin_interposing::NotifyBrowserOfPluginHideWindow(window_info.window_id,
- window_info.bounds);
-}
-
-static void OnPluginWindowShown(WindowRef window) {
- mac_plugin_interposing::NotifyBrowserOfPluginShowWindow(
- HIWindowGetCGWindowID(window), CGRectForWindow(window),
- IsModalWindow(window));
-}
-
-static void OnPluginWindowSelected(WindowRef window) {
- mac_plugin_interposing::NotifyBrowserOfPluginSelectWindow(
- HIWindowGetCGWindowID(window), CGRectForWindow(window),
- IsModalWindow(window));
-}
-
-#pragma mark -
-
-static Boolean ChromePluginIsWindowActive(WindowRef window) {
- const OpaquePluginRef delegate =
- webkit::npapi::CarbonPluginWindowTracker::SharedInstance()->
- GetDelegateForDummyWindow(window);
- return delegate ? IsContainingWindowActive(delegate)
- : IsWindowActive(window);
-}
-
-static Boolean ChromePluginIsWindowHilited(WindowRef window) {
- const OpaquePluginRef delegate =
- webkit::npapi::CarbonPluginWindowTracker::SharedInstance()->
- GetDelegateForDummyWindow(window);
- return delegate ? IsContainingWindowActive(delegate)
- : IsWindowHilited(window);
-}
-
-static void ChromePluginSelectWindow(WindowRef window) {
- mac_plugin_interposing::SwitchToPluginProcess();
- SelectWindow(window);
- OnPluginWindowSelected(window);
-}
-
-static void ChromePluginShowWindow(WindowRef window) {
- mac_plugin_interposing::SwitchToPluginProcess();
- ShowWindow(window);
- OnPluginWindowShown(window);
-}
-
-static void ChromePluginDisposeWindow(WindowRef window) {
- WindowInfo window_info(window);
- DisposeWindow(window);
- OnPluginWindowClosed(window_info);
-}
-
-static void ChromePluginHideWindow(WindowRef window) {
- WindowInfo window_info(window);
- HideWindow(window);
- OnPluginWindowClosed(window_info);
-}
-
-static void ChromePluginShowHide(WindowRef window, Boolean show) {
- if (show) {
- mac_plugin_interposing::SwitchToPluginProcess();
- ShowHide(window, show);
- OnPluginWindowShown(window);
- } else {
- WindowInfo window_info(window);
- ShowHide(window, show);
- OnPluginWindowClosed(window_info);
- }
-}
-
-static void ChromePluginReleaseWindow(WindowRef window) {
- WindowInfo window_info(window);
- ReleaseWindow(window);
- OnPluginWindowClosed(window_info);
-}
-
-static void ChromePluginDisposeDialog(DialogRef dialog) {
- WindowRef window = GetDialogWindow(dialog);
- WindowInfo window_info(window);
- DisposeDialog(dialog);
- OnPluginWindowClosed(window_info);
-}
-
-static WindowPartCode ChromePluginFindWindow(Point point, WindowRef* window) {
- OpaquePluginRef delegate = mac_plugin_interposing::GetActiveDelegate();
- webkit::npapi::CarbonPluginWindowTracker* tracker =
- webkit::npapi::CarbonPluginWindowTracker::SharedInstance();
- WindowRef plugin_window = tracker->GetDummyWindowForDelegate(delegate);
- if (plugin_window) {
- // If plugin_window is non-NULL, then we are in the middle of routing an
- // event to the plugin, so we know it's destined for this window already,
- // so we don't have to worry that we'll be stealing an event meant for an
- // overlapping window.
- Rect window_bounds;
- GetWindowBounds(plugin_window, kWindowContentRgn, &window_bounds);
- if (PtInRect(point, &window_bounds)) {
- if (window)
- *window = plugin_window;
- return inContent;
- }
- }
- return FindWindow(point, window);
-}
-
-static OSStatus ChromePluginSetThemeCursor(ThemeCursor cursor) {
- OpaquePluginRef delegate = mac_plugin_interposing::GetActiveDelegate();
- if (delegate) {
- mac_plugin_interposing::NotifyPluginOfSetThemeCursor(delegate, cursor);
- return noErr;
- }
- return SetThemeCursor(cursor);
-}
-
-static void ChromePluginSetCursor(const Cursor* cursor) {
- OpaquePluginRef delegate = mac_plugin_interposing::GetActiveDelegate();
- if (delegate) {
- mac_plugin_interposing::NotifyPluginOfSetCursor(delegate, cursor);
- return;
- }
- return SetCursor(cursor);
-}
-
-#pragma mark -
-
-struct interpose_substitution {
- const void* replacement;
- const void* original;
-};
-
-#define INTERPOSE_FUNCTION(function) \
- { reinterpret_cast<const void*>(ChromePlugin##function), \
- reinterpret_cast<const void*>(function) }
-
-__attribute__((used)) static const interpose_substitution substitutions[]
- __attribute__((section("__DATA, __interpose"))) = {
- INTERPOSE_FUNCTION(IsWindowActive),
- INTERPOSE_FUNCTION(IsWindowHilited),
- INTERPOSE_FUNCTION(SelectWindow),
- INTERPOSE_FUNCTION(ShowWindow),
- INTERPOSE_FUNCTION(ShowHide),
- INTERPOSE_FUNCTION(DisposeWindow),
- INTERPOSE_FUNCTION(HideWindow),
- INTERPOSE_FUNCTION(ReleaseWindow),
- INTERPOSE_FUNCTION(DisposeDialog),
- INTERPOSE_FUNCTION(FindWindow),
- INTERPOSE_FUNCTION(SetThemeCursor),
- INTERPOSE_FUNCTION(SetCursor),
-};
-
-#endif // !__LP64__
« no previous file with comments | « no previous file | chrome/chrome.gyp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698