| OLD | NEW |
| 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef WEBKIT_GLUE_PLUGIN_WEBPLUGIN_DELEGATE_IMPL_H_ | 5 #ifndef WEBKIT_GLUE_PLUGIN_WEBPLUGIN_DELEGATE_IMPL_H_ |
| 6 #define WEBKIT_GLUE_PLUGIN_WEBPLUGIN_DELEGATE_IMPL_H_ | 6 #define WEBKIT_GLUE_PLUGIN_WEBPLUGIN_DELEGATE_IMPL_H_ |
| 7 | 7 |
| 8 #include "build/build_config.h" | 8 #include "build/build_config.h" |
| 9 | 9 |
| 10 #include <string> | 10 #include <string> |
| (...skipping 25 matching lines...) Expand all Loading... |
| 36 PLUGIN_QUIRK_THROTTLE_WM_USER_PLUS_ONE = 2, // Win32 | 36 PLUGIN_QUIRK_THROTTLE_WM_USER_PLUS_ONE = 2, // Win32 |
| 37 PLUGIN_QUIRK_DONT_CALL_WND_PROC_RECURSIVELY = 4, // Win32 | 37 PLUGIN_QUIRK_DONT_CALL_WND_PROC_RECURSIVELY = 4, // Win32 |
| 38 PLUGIN_QUIRK_DONT_SET_NULL_WINDOW_HANDLE_ON_DESTROY = 8, // Win32 | 38 PLUGIN_QUIRK_DONT_SET_NULL_WINDOW_HANDLE_ON_DESTROY = 8, // Win32 |
| 39 PLUGIN_QUIRK_DONT_ALLOW_MULTIPLE_INSTANCES = 16, // Win32 | 39 PLUGIN_QUIRK_DONT_ALLOW_MULTIPLE_INSTANCES = 16, // Win32 |
| 40 PLUGIN_QUIRK_DIE_AFTER_UNLOAD = 32, // Win32 | 40 PLUGIN_QUIRK_DIE_AFTER_UNLOAD = 32, // Win32 |
| 41 PLUGIN_QUIRK_PATCH_SETCURSOR = 64, // Win32 | 41 PLUGIN_QUIRK_PATCH_SETCURSOR = 64, // Win32 |
| 42 PLUGIN_QUIRK_BLOCK_NONSTANDARD_GETURL_REQUESTS = 128, // Win32 | 42 PLUGIN_QUIRK_BLOCK_NONSTANDARD_GETURL_REQUESTS = 128, // Win32 |
| 43 PLUGIN_QUIRK_WINDOWLESS_OFFSET_WINDOW_TO_DRAW = 256, // Linux | 43 PLUGIN_QUIRK_WINDOWLESS_OFFSET_WINDOW_TO_DRAW = 256, // Linux |
| 44 PLUGIN_QUIRK_WINDOWLESS_INVALIDATE_AFTER_SET_WINDOW = 512, // Linux | 44 PLUGIN_QUIRK_WINDOWLESS_INVALIDATE_AFTER_SET_WINDOW = 512, // Linux |
| 45 PLUGIN_QUIRK_NO_WINDOWLESS = 1024, // Windows | 45 PLUGIN_QUIRK_NO_WINDOWLESS = 1024, // Windows |
| 46 PLUGIN_QUIRK_PATCH_REGENUMKEYEXW = 2048, // Windows |
| 46 }; | 47 }; |
| 47 | 48 |
| 48 static WebPluginDelegateImpl* Create(const FilePath& filename, | 49 static WebPluginDelegateImpl* Create(const FilePath& filename, |
| 49 const std::string& mime_type, | 50 const std::string& mime_type, |
| 50 gfx::PluginWindowHandle containing_view); | 51 gfx::PluginWindowHandle containing_view); |
| 51 | 52 |
| 52 static bool IsPluginDelegateWindow(gfx::NativeWindow window); | 53 static bool IsPluginDelegateWindow(gfx::NativeWindow window); |
| 53 static bool GetPluginNameFromWindow(gfx::NativeWindow window, | 54 static bool GetPluginNameFromWindow(gfx::NativeWindow window, |
| 54 std::wstring *plugin_name); | 55 std::wstring *plugin_name); |
| 55 | 56 |
| (...skipping 247 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 303 | 304 |
| 304 #if defined(OS_WIN) | 305 #if defined(OS_WIN) |
| 305 // TrackPopupMenu interceptor. Parameters are the same as the Win32 function | 306 // TrackPopupMenu interceptor. Parameters are the same as the Win32 function |
| 306 // TrackPopupMenu. | 307 // TrackPopupMenu. |
| 307 static BOOL WINAPI TrackPopupMenuPatch(HMENU menu, unsigned int flags, int x, | 308 static BOOL WINAPI TrackPopupMenuPatch(HMENU menu, unsigned int flags, int x, |
| 308 int y, int reserved, HWND window, | 309 int y, int reserved, HWND window, |
| 309 const RECT* rect); | 310 const RECT* rect); |
| 310 | 311 |
| 311 // SetCursor interceptor for windowless plugins. | 312 // SetCursor interceptor for windowless plugins. |
| 312 static HCURSOR WINAPI SetCursorPatch(HCURSOR cursor); | 313 static HCURSOR WINAPI SetCursorPatch(HCURSOR cursor); |
| 314 |
| 315 // RegEnumKeyExW interceptor. |
| 316 static LONG WINAPI RegEnumKeyExWPatch( |
| 317 HKEY key, DWORD index, LPWSTR name, LPDWORD name_size, LPDWORD reserved, |
| 318 LPWSTR class_name, LPDWORD class_size, PFILETIME last_write_time); |
| 313 #endif | 319 #endif |
| 314 | 320 |
| 315 #if defined(OS_MACOSX) | 321 #if defined(OS_MACOSX) |
| 316 // Runnable Method Factory used to drip null events into the plugin | 322 // Runnable Method Factory used to drip null events into the plugin |
| 317 ScopedRunnableMethodFactory<WebPluginDelegateImpl> null_event_factory_; | 323 ScopedRunnableMethodFactory<WebPluginDelegateImpl> null_event_factory_; |
| 318 | 324 |
| 319 // indicates that it's time to send the plugin a null event | 325 // indicates that it's time to send the plugin a null event |
| 320 void OnNullEvent(); | 326 void OnNullEvent(); |
| 321 | 327 |
| 322 // last mouse position within the plugin's rect (used for null events) | 328 // last mouse position within the plugin's rect (used for null events) |
| 323 int last_mouse_x_; | 329 int last_mouse_x_; |
| 324 int last_mouse_y_; | 330 int last_mouse_y_; |
| 325 #endif | 331 #endif |
| 326 | 332 |
| 327 // Holds the current cursor set by the windowless plugin. | 333 // Holds the current cursor set by the windowless plugin. |
| 328 WebCursor current_windowless_cursor_; | 334 WebCursor current_windowless_cursor_; |
| 329 | 335 |
| 330 friend class webkit_glue::WebPluginDelegate; | 336 friend class webkit_glue::WebPluginDelegate; |
| 331 | 337 |
| 332 DISALLOW_EVIL_CONSTRUCTORS(WebPluginDelegateImpl); | 338 DISALLOW_EVIL_CONSTRUCTORS(WebPluginDelegateImpl); |
| 333 }; | 339 }; |
| 334 | 340 |
| 335 #endif // #ifndef WEBKIT_GLUE_PLUGIN_WEBPLUGIN_DELEGATE_IMPL_H_ | 341 #endif // #ifndef WEBKIT_GLUE_PLUGIN_WEBPLUGIN_DELEGATE_IMPL_H_ |
| OLD | NEW |