summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/app/framework.order14
-rw-r--r--chrome/browser/plugin_carbon_interpose_mac.cc11
-rw-r--r--webkit/glue/plugins/carbon_plugin_window_tracker_mac.cc (renamed from webkit/glue/plugins/fake_plugin_window_tracker_mac.cc)23
-rw-r--r--webkit/glue/plugins/carbon_plugin_window_tracker_mac.h51
-rw-r--r--webkit/glue/plugins/fake_plugin_window_tracker_mac.h49
-rw-r--r--webkit/glue/plugins/webplugin_delegate_impl_mac.mm13
-rw-r--r--webkit/webkit.gyp4
7 files changed, 83 insertions, 82 deletions
diff --git a/chrome/app/framework.order b/chrome/app/framework.order
index 2f66f38..3ff59b0 100644
--- a/chrome/app/framework.order
+++ b/chrome/app/framework.order
@@ -30,13 +30,13 @@ __ZN22mac_plugin_interposing31NotifyBrowserOfPluginHideWindowEj6CGRect
__ZN22mac_plugin_interposing28NotifyPluginOfSetThemeCursorEP21WebPluginDelegateImplm
__ZN22mac_plugin_interposing23NotifyPluginOfSetCursorEP21WebPluginDelegateImplPK6Cursor
__ZN22mac_plugin_interposing23GetPluginWindowHasFocusEPK21WebPluginDelegateImpl
-__ZN23FakePluginWindowTrackerC1Ev
-__ZN23FakePluginWindowTrackerC2Ev
-__ZN23FakePluginWindowTracker14SharedInstanceEv
-__ZN23FakePluginWindowTracker29GenerateFakeWindowForDelegateEP21WebPluginDelegateImpl
-__ZNK23FakePluginWindowTracker24GetDelegateForFakeWindowEP15OpaqueWindowPtr
-__ZNK23FakePluginWindowTracker24GetFakeWindowForDelegateEP21WebPluginDelegateImpl
-__ZN23FakePluginWindowTracker27RemoveFakeWindowForDelegateEP21WebPluginDelegateImplP15OpaqueWindowPtr
+__ZN25CarbonPluginWindowTrackerC1Ev
+__ZN25CarbonPluginWindowTrackerC2Ev
+__ZN25CarbonPluginWindowTracker14SharedInstanceEv
+__ZN25CarbonPluginWindowTracker28CreateDummyWindowForDelegateEP21WebPluginDelegateImpl
+__ZNK25CarbonPluginWindowTracker25GetDelegateForDummyWindowEP15OpaqueWindowPtr
+__ZNK25CarbonPluginWindowTracker25GetDummyWindowForDelegateEP21WebPluginDelegateImpl
+__ZN25CarbonPluginWindowTracker29DestroyDummyWindowForDelegateEP21WebPluginDelegateImplP15OpaqueWindowPtr
__ZN7WebCore22narrowPrecisionToFloatIdEEfT_
__ZN7WebCore24narrowPrecisionToCGFloatIdEEfT_
__ZnwmPv
diff --git a/chrome/browser/plugin_carbon_interpose_mac.cc b/chrome/browser/plugin_carbon_interpose_mac.cc
index 020d9ae..850b363 100644
--- a/chrome/browser/plugin_carbon_interpose_mac.cc
+++ b/chrome/browser/plugin_carbon_interpose_mac.cc
@@ -6,7 +6,7 @@
#include "base/gfx/rect.h"
#include "chrome/plugin/plugin_interpose_util_mac.h"
-#include "webkit/glue/plugins/fake_plugin_window_tracker_mac.h"
+#include "webkit/glue/plugins/carbon_plugin_window_tracker_mac.h"
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
@@ -59,7 +59,7 @@ static void OnPluginWindowSelected(WindowRef window) {
static Boolean ChromePluginIsWindowActive(WindowRef window) {
const WebPluginDelegateImpl* delegate =
- FakePluginWindowTracker::SharedInstance()->GetDelegateForFakeWindow(
+ CarbonPluginWindowTracker::SharedInstance()->GetDelegateForDummyWindow(
window);
return delegate ? IsContainingWindowActive(delegate)
: IsWindowActive(window);
@@ -67,7 +67,7 @@ static Boolean ChromePluginIsWindowActive(WindowRef window) {
static Boolean ChromePluginIsWindowHilited(WindowRef window) {
const WebPluginDelegateImpl* delegate =
- FakePluginWindowTracker::SharedInstance()->GetDelegateForFakeWindow(
+ CarbonPluginWindowTracker::SharedInstance()->GetDelegateForDummyWindow(
window);
return delegate ? IsContainingWindowActive(delegate)
: IsWindowHilited(window);
@@ -124,8 +124,9 @@ static void ChromePluginDisposeDialog(DialogRef dialog) {
static WindowPartCode ChromePluginFindWindow(Point point, WindowRef* window) {
WebPluginDelegateImpl* delegate = mac_plugin_interposing::GetActiveDelegate();
- FakePluginWindowTracker* tracker = FakePluginWindowTracker::SharedInstance();
- WindowRef plugin_window = tracker->GetFakeWindowForDelegate(delegate);
+ CarbonPluginWindowTracker* tracker =
+ 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,
diff --git a/webkit/glue/plugins/fake_plugin_window_tracker_mac.cc b/webkit/glue/plugins/carbon_plugin_window_tracker_mac.cc
index 1099a99..6131b45 100644
--- a/webkit/glue/plugins/fake_plugin_window_tracker_mac.cc
+++ b/webkit/glue/plugins/carbon_plugin_window_tracker_mac.cc
@@ -3,23 +3,18 @@
// found in the LICENSE file.
#include "base/logging.h"
-#include "webkit/glue/plugins/fake_plugin_window_tracker_mac.h"
+#include "webkit/glue/plugins/carbon_plugin_window_tracker_mac.h"
-FakePluginWindowTracker::FakePluginWindowTracker() {
+CarbonPluginWindowTracker::CarbonPluginWindowTracker() {
}
-FakePluginWindowTracker* FakePluginWindowTracker::SharedInstance() {
- static FakePluginWindowTracker* tracker = new FakePluginWindowTracker();
+CarbonPluginWindowTracker* CarbonPluginWindowTracker::SharedInstance() {
+ static CarbonPluginWindowTracker* tracker = new CarbonPluginWindowTracker();
return tracker;
}
-WindowRef FakePluginWindowTracker::GenerateFakeWindowForDelegate(
+WindowRef CarbonPluginWindowTracker::CreateDummyWindowForDelegate(
WebPluginDelegateImpl* delegate) {
- // TODO(stuartmorgan): Eventually we will be interposing enough that we don't
- // even need a window, and can just use made-up identifiers, but for now we
- // create one so that things that we don't interpose won't crash trying to use
- // a bad WindowRef.
-
// The real size will be set by the plugin instance, once that size is known.
Rect window_bounds = { 0, 0, 100, 100 };
WindowRef new_ref = NULL;
@@ -33,7 +28,7 @@ WindowRef FakePluginWindowTracker::GenerateFakeWindowForDelegate(
return new_ref;
}
-WebPluginDelegateImpl* FakePluginWindowTracker::GetDelegateForFakeWindow(
+WebPluginDelegateImpl* CarbonPluginWindowTracker::GetDelegateForDummyWindow(
WindowRef window) const {
WindowToDelegateMap::const_iterator i = window_to_delegate_map_.find(window);
if (i != window_to_delegate_map_.end())
@@ -41,7 +36,7 @@ WebPluginDelegateImpl* FakePluginWindowTracker::GetDelegateForFakeWindow(
return NULL;
}
-WindowRef FakePluginWindowTracker::GetFakeWindowForDelegate(
+WindowRef CarbonPluginWindowTracker::GetDummyWindowForDelegate(
WebPluginDelegateImpl* delegate) const {
DelegateToWindowMap::const_iterator i =
delegate_to_window_map_.find(delegate);
@@ -50,9 +45,9 @@ WindowRef FakePluginWindowTracker::GetFakeWindowForDelegate(
return NULL;
}
-void FakePluginWindowTracker::RemoveFakeWindowForDelegate(
+void CarbonPluginWindowTracker::DestroyDummyWindowForDelegate(
WebPluginDelegateImpl* delegate, WindowRef window) {
- DCHECK(GetDelegateForFakeWindow(window) == delegate);
+ DCHECK(GetDelegateForDummyWindow(window) == delegate);
window_to_delegate_map_.erase(window);
delegate_to_window_map_.erase(delegate);
if (window) // Check just in case the initial window creation failed.
diff --git a/webkit/glue/plugins/carbon_plugin_window_tracker_mac.h b/webkit/glue/plugins/carbon_plugin_window_tracker_mac.h
new file mode 100644
index 0000000..3e6ef2d
--- /dev/null
+++ b/webkit/glue/plugins/carbon_plugin_window_tracker_mac.h
@@ -0,0 +1,51 @@
+// 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.
+
+#ifndef WEBKIT_GLUE_PLUGINS_CARBON_PLUGIN_WINDOW_TRACKER_MAC_H_
+#define WEBKIT_GLUE_PLUGINS_CARBON_PLUGIN_WINDOW_TRACKER_MAC_H_
+
+#include <Carbon/Carbon.h>
+#include <map>
+
+#include "base/basictypes.h"
+
+class WebPluginDelegateImpl;
+
+// Creates and tracks the invisible windows that are necessary for
+// Carbon-event-model plugins.
+//
+// Serves as a bridge between plugin delegate instances and the Carbon
+// interposing library. The Carbon functions we interpose work in terms of
+// WindowRefs, and we need to be able to map from those back to the plugin
+// delegates that know what we should claim about the state of the window.
+class __attribute__((visibility("default"))) CarbonPluginWindowTracker {
+ public:
+ CarbonPluginWindowTracker();
+
+ // Returns the shared window tracker instance.
+ static CarbonPluginWindowTracker* SharedInstance();
+
+ // Creates a new carbon window associated with |delegate|.
+ WindowRef CreateDummyWindowForDelegate(WebPluginDelegateImpl* delegate);
+
+ // Returns the WebPluginDelegate associated with the given dummy window.
+ WebPluginDelegateImpl* GetDelegateForDummyWindow(WindowRef window) const;
+
+ // Returns the dummy window associated with |delegate|.
+ WindowRef GetDummyWindowForDelegate(WebPluginDelegateImpl* delegate) const;
+
+ // Destroys the dummy window for |delegate|.
+ void DestroyDummyWindowForDelegate(WebPluginDelegateImpl* delegate,
+ WindowRef window);
+
+ private:
+ typedef std::map<WindowRef, WebPluginDelegateImpl*> WindowToDelegateMap;
+ typedef std::map<WebPluginDelegateImpl*, WindowRef> DelegateToWindowMap;
+ WindowToDelegateMap window_to_delegate_map_;
+ DelegateToWindowMap delegate_to_window_map_;
+
+ DISALLOW_COPY_AND_ASSIGN(CarbonPluginWindowTracker);
+};
+
+#endif // WEBKIT_GLUE_PLUGINS_CARBON_PLUGIN_WINDOW_TRACKER_MAC_H_
diff --git a/webkit/glue/plugins/fake_plugin_window_tracker_mac.h b/webkit/glue/plugins/fake_plugin_window_tracker_mac.h
deleted file mode 100644
index d6576bf..0000000
--- a/webkit/glue/plugins/fake_plugin_window_tracker_mac.h
+++ /dev/null
@@ -1,49 +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.
-
-#ifndef WEBKIT_GLUE_PLUGINS_FAKE_PLUGIN_WINDOW_TRACKER_MAC_H_
-#define WEBKIT_GLUE_PLUGINS_FAKE_PLUGIN_WINDOW_TRACKER_MAC_H_
-
-#include <Carbon/Carbon.h>
-#include <map>
-
-#include "base/basictypes.h"
-
-class ScopedActivePluginWindow;
-class WebPluginDelegateImpl;
-
-// Serves as a bridge between plugin delegate instances and the Carbon
-// interposing library. The Carbon functions we interpose work in terms of
-// WindowRefs, and we need to be able to map from those back to the plugin
-// delegates that know what we should claim about the state of the world.
-class __attribute__((visibility("default"))) FakePluginWindowTracker {
- public:
- FakePluginWindowTracker();
-
- // Returns the shared window tracker instance.
- static FakePluginWindowTracker* SharedInstance();
-
- // Creates a new fake window ref associated with |delegate|.
- WindowRef GenerateFakeWindowForDelegate(WebPluginDelegateImpl* delegate);
-
- // Returns the WebPluginDelegate associated with the given fake window ref.
- WebPluginDelegateImpl* GetDelegateForFakeWindow(WindowRef window) const;
-
- // Returns the fake window ref associated with |delegate|.
- WindowRef GetFakeWindowForDelegate(WebPluginDelegateImpl* delegate) const;
-
- // Removes the fake window ref entry for |delegate|.
- void RemoveFakeWindowForDelegate(WebPluginDelegateImpl* delegate,
- WindowRef window);
-
- private:
- typedef std::map<WindowRef, WebPluginDelegateImpl*> WindowToDelegateMap;
- typedef std::map<WebPluginDelegateImpl*, WindowRef> DelegateToWindowMap;
- WindowToDelegateMap window_to_delegate_map_;
- DelegateToWindowMap delegate_to_window_map_;
-
- DISALLOW_COPY_AND_ASSIGN(FakePluginWindowTracker);
-};
-
-#endif // WEBKIT_GLUE_PLUGINS_FAKE_PLUGIN_WINDOW_TRACKER_MAC_H_
diff --git a/webkit/glue/plugins/webplugin_delegate_impl_mac.mm b/webkit/glue/plugins/webplugin_delegate_impl_mac.mm
index 15454fb..39af388 100644
--- a/webkit/glue/plugins/webplugin_delegate_impl_mac.mm
+++ b/webkit/glue/plugins/webplugin_delegate_impl_mac.mm
@@ -21,7 +21,6 @@
#include "webkit/default_plugin/plugin_impl.h"
#include "webkit/glue/webplugin.h"
#include "webkit/glue/plugins/coregraphics_private_symbols_mac.h"
-#include "webkit/glue/plugins/fake_plugin_window_tracker_mac.h"
#include "webkit/glue/plugins/plugin_constants_win.h"
#include "webkit/glue/plugins/plugin_instance.h"
#include "webkit/glue/plugins/plugin_lib.h"
@@ -29,6 +28,10 @@
#include "webkit/glue/plugins/plugin_stream_url.h"
#include "webkit/glue/webkit_glue.h"
+#ifndef NP_NO_CARBON
+#include "webkit/glue/plugins/carbon_plugin_window_tracker_mac.h"
+#endif
+
// If we're compiling support for the QuickDraw drawing model, turn off GCC
// warnings about deprecated functions (since QuickDraw is a deprecated API).
// According to the GCC documentation, this can only be done per file, not
@@ -204,7 +207,7 @@ WebPluginDelegateImpl::~WebPluginDelegateImpl() {
#ifndef NP_NO_CARBON
if (cg_context_.window) {
- FakePluginWindowTracker::SharedInstance()->RemoveFakeWindowForDelegate(
+ CarbonPluginWindowTracker::SharedInstance()->DestroyDummyWindowForDelegate(
this, reinterpret_cast<WindowRef>(cg_context_.window));
}
#endif
@@ -226,9 +229,9 @@ void WebPluginDelegateImpl::PlatformInitialize() {
if (instance()->event_model() == NPEventModelCarbon) {
// Create a stand-in for the browser window so that the plugin will have
// a non-NULL WindowRef to which it can refer.
- FakePluginWindowTracker* window_tracker =
- FakePluginWindowTracker::SharedInstance();
- cg_context_.window = window_tracker->GenerateFakeWindowForDelegate(this);
+ CarbonPluginWindowTracker* window_tracker =
+ CarbonPluginWindowTracker::SharedInstance();
+ cg_context_.window = window_tracker->CreateDummyWindowForDelegate(this);
cg_context_.context = NULL;
Rect window_bounds = { 0, 0, window_rect_.height(), window_rect_.width() };
SetWindowBounds(reinterpret_cast<WindowRef>(cg_context_.window),
diff --git a/webkit/webkit.gyp b/webkit/webkit.gyp
index fce94944..eaeb46e 100644
--- a/webkit/webkit.gyp
+++ b/webkit/webkit.gyp
@@ -241,10 +241,10 @@
'glue/media/video_renderer_impl.cc',
'glue/media/video_renderer_impl.h',
'glue/media/web_video_renderer.h',
+ 'glue/plugins/carbon_plugin_window_tracker_mac.h',
+ 'glue/plugins/carbon_plugin_window_tracker_mac.cc',
'glue/plugins/coregraphics_private_symbols_mac.h',
'glue/plugins/nphostapi.h',
- 'glue/plugins/fake_plugin_window_tracker_mac.h',
- 'glue/plugins/fake_plugin_window_tracker_mac.cc',
'glue/plugins/gtk_plugin_container.h',
'glue/plugins/gtk_plugin_container.cc',
'glue/plugins/gtk_plugin_container_manager.h',