summaryrefslogtreecommitdiffstats
path: root/chrome
diff options
context:
space:
mode:
Diffstat (limited to 'chrome')
-rw-r--r--chrome/app/framework.order16
-rw-r--r--chrome/browser/plugin_carbon_interpose_mac.cc7
-rw-r--r--chrome/plugin/plugin_interpose_util_mac.h3
-rw-r--r--chrome/plugin/plugin_interpose_util_mac.mm5
4 files changed, 19 insertions, 12 deletions
diff --git a/chrome/app/framework.order b/chrome/app/framework.order
index 167d45f..814cecc 100644
--- a/chrome/app/framework.order
+++ b/chrome/app/framework.order
@@ -23,20 +23,20 @@ _NP_GetValue
_NP_Initialize
_NP_Shutdown
__ZN22mac_plugin_interposing21SwitchToPluginProcessEv
-__ZN22mac_plugin_interposing31NotifyBrowserOfPluginHideWindowEj6CGRect
-__ZN22mac_plugin_interposing31NotifyBrowserOfPluginShowWindowEj6CGRectb
+__ZN22mac_plugin_interposing17GetActiveDelegateEv
__ZN22mac_plugin_interposing33NotifyBrowserOfPluginSelectWindowEj6CGRectb
+__ZN22mac_plugin_interposing31NotifyBrowserOfPluginShowWindowEj6CGRectb
+__ZN22mac_plugin_interposing31NotifyBrowserOfPluginHideWindowEj6CGRect
__ZN22mac_plugin_interposing28NotifyPluginOfSetThemeCursorEP21WebPluginDelegateImplm
-__ZN23FakePluginWindowTracker14SharedInstanceEv
-__ZN23FakePluginWindowTracker27RemoveFakeWindowForDelegateEP21WebPluginDelegateImplP15OpaqueWindowPtr
-__ZN23FakePluginWindowTracker29GenerateFakeWindowForDelegateEP21WebPluginDelegateImpl
-__ZN23FakePluginWindowTracker24get_active_plugin_windowEv
-__ZN23FakePluginWindowTracker24set_active_plugin_windowEP15OpaqueWindowPtr
__ZN23FakePluginWindowTrackerC1Ev
__ZN23FakePluginWindowTrackerC2Ev
+__ZN23FakePluginWindowTracker14SharedInstanceEv
+__ZN23FakePluginWindowTracker29GenerateFakeWindowForDelegateEP21WebPluginDelegateImpl
+__ZNK23FakePluginWindowTracker24GetDelegateForFakeWindowEP15OpaqueWindowPtr
+__ZNK23FakePluginWindowTracker24GetFakeWindowForDelegateEP21WebPluginDelegateImpl
+__ZN23FakePluginWindowTracker27RemoveFakeWindowForDelegateEP21WebPluginDelegateImplP15OpaqueWindowPtr
__ZN7WebCore22narrowPrecisionToFloatIdEEfT_
__ZN7WebCore24narrowPrecisionToCGFloatIdEEfT_
-__ZNK23FakePluginWindowTracker24GetDelegateForFakeWindowEP15OpaqueWindowPtr
__ZnwmPv
_catch_exception_raise
diff --git a/chrome/browser/plugin_carbon_interpose_mac.cc b/chrome/browser/plugin_carbon_interpose_mac.cc
index 45f0ffe..adbba7e 100644
--- a/chrome/browser/plugin_carbon_interpose_mac.cc
+++ b/chrome/browser/plugin_carbon_interpose_mac.cc
@@ -126,8 +126,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->get_active_plugin_window();
+ WindowRef plugin_window = tracker->GetFakeWindowForDelegate(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,
@@ -145,9 +146,7 @@ static WindowPartCode ChromePluginFindWindow(Point point, WindowRef* window) {
}
static OSStatus ChromePluginSetThemeCursor(ThemeCursor cursor) {
- FakePluginWindowTracker* tracker = FakePluginWindowTracker::SharedInstance();
- WebPluginDelegateImpl* delegate =
- tracker->GetDelegateForFakeWindow(tracker->get_active_plugin_window());
+ WebPluginDelegateImpl* delegate = mac_plugin_interposing::GetActiveDelegate();
if (delegate) {
mac_plugin_interposing::NotifyPluginOfSetThemeCursor(delegate, cursor);
return noErr;
diff --git a/chrome/plugin/plugin_interpose_util_mac.h b/chrome/plugin/plugin_interpose_util_mac.h
index 75d1142..deabe6c 100644
--- a/chrome/plugin/plugin_interpose_util_mac.h
+++ b/chrome/plugin/plugin_interpose_util_mac.h
@@ -20,6 +20,9 @@ void SetUpCocoaInterposing();
// Brings the plugin process to the front so that the user can see its windows.
void SwitchToPluginProcess();
+// Returns the delegate currently processing events.
+WebPluginDelegateImpl* GetActiveDelegate();
+
// Sends a message to the browser process to inform it that the given window
// has been brought forward.
void NotifyBrowserOfPluginSelectWindow(uint32 window_id, CGRect bounds,
diff --git a/chrome/plugin/plugin_interpose_util_mac.mm b/chrome/plugin/plugin_interpose_util_mac.mm
index 1cad1bb..7743175 100644
--- a/chrome/plugin/plugin_interpose_util_mac.mm
+++ b/chrome/plugin/plugin_interpose_util_mac.mm
@@ -31,6 +31,11 @@ void SwitchToPluginProcess() {
}
__attribute__((visibility("default")))
+WebPluginDelegateImpl* GetActiveDelegate() {
+ return WebPluginDelegateImpl::GetActiveDelegate();
+}
+
+__attribute__((visibility("default")))
void NotifyBrowserOfPluginSelectWindow(uint32 window_id, CGRect bounds,
bool modal) {
PluginThread* plugin_thread = PluginThread::current();