| 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 // Pepper API support should be turned on for this module. | 5 // Pepper API support should be turned on for this module. |
| 6 #define PEPPER_APIS_ENABLED | 6 #define PEPPER_APIS_ENABLED |
| 7 | 7 |
| 8 #include "webkit/glue/plugins/plugin_host.h" | 8 #include "webkit/glue/plugins/plugin_host.h" |
| 9 | 9 |
| 10 #include "base/file_util.h" | 10 #include "base/file_util.h" |
| 11 #include "base/logging.h" | 11 #include "base/logging.h" |
| 12 #include "base/scoped_ptr.h" | 12 #include "base/scoped_ptr.h" |
| 13 #include "base/string_piece.h" | 13 #include "base/string_piece.h" |
| 14 #include "base/string_util.h" | 14 #include "base/string_util.h" |
| 15 #include "base/sys_string_conversions.h" | 15 #include "base/sys_string_conversions.h" |
| 16 #include "net/base/net_util.h" | 16 #include "net/base/net_util.h" |
| 17 #include "webkit/api/public/WebBindings.h" | 17 #include "webkit/api/public/WebBindings.h" |
| 18 #include "webkit/default_plugin/default_plugin_shared.h" | 18 #include "webkit/default_plugin/default_plugin_shared.h" |
| 19 #include "webkit/glue/glue_util.h" | 19 #include "webkit/glue/glue_util.h" |
| 20 #include "webkit/glue/webplugininfo.h" | 20 #include "webkit/glue/webplugininfo.h" |
| 21 #include "webkit/glue/webplugin_delegate.h" |
| 21 #include "webkit/glue/webkit_glue.h" | 22 #include "webkit/glue/webkit_glue.h" |
| 22 #include "webkit/glue/plugins/plugin_instance.h" | 23 #include "webkit/glue/plugins/plugin_instance.h" |
| 23 #include "webkit/glue/plugins/plugin_lib.h" | 24 #include "webkit/glue/plugins/plugin_lib.h" |
| 24 #include "webkit/glue/plugins/plugin_list.h" | 25 #include "webkit/glue/plugins/plugin_list.h" |
| 25 #include "webkit/glue/plugins/plugin_stream_url.h" | 26 #include "webkit/glue/plugins/plugin_stream_url.h" |
| 26 #include "third_party/npapi/bindings/npruntime.h" | 27 #include "third_party/npapi/bindings/npruntime.h" |
| 27 | 28 |
| 28 using WebKit::WebBindings; | 29 using WebKit::WebBindings; |
| 29 | 30 |
| 30 namespace NPAPI | 31 namespace NPAPI |
| (...skipping 629 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 660 | 661 |
| 661 NOTIMPLEMENTED(); | 662 NOTIMPLEMENTED(); |
| 662 } | 663 } |
| 663 | 664 |
| 664 #if defined(PEPPER_APIS_ENABLED) | 665 #if defined(PEPPER_APIS_ENABLED) |
| 665 static NPError InitializeRenderContext(NPP id, | 666 static NPError InitializeRenderContext(NPP id, |
| 666 NPRenderType type, | 667 NPRenderType type, |
| 667 NPRenderContext* context) { | 668 NPRenderContext* context) { |
| 668 scoped_refptr<NPAPI::PluginInstance> plugin = FindInstance(id); | 669 scoped_refptr<NPAPI::PluginInstance> plugin = FindInstance(id); |
| 669 if (plugin) { | 670 if (plugin) { |
| 670 return plugin->InitializeRenderContext(type, context); | 671 webkit_glue::WebPluginDelegate* delegate = plugin->webplugin()->delegate(); |
| 672 // Set up the renderer for the specified type. |
| 673 return delegate->InitializeRenderContext(type, context); |
| 671 } | 674 } |
| 672 return NPERR_GENERIC_ERROR; | 675 return NPERR_GENERIC_ERROR; |
| 673 } | 676 } |
| 674 | 677 |
| 675 static NPError FlushRenderContext(NPP id, | 678 static NPError FlushRenderContext(NPP id, |
| 676 NPRenderContext* context, | 679 NPRenderContext* context, |
| 677 NPFlushRenderContextCallbackPtr callback, | 680 NPFlushRenderContextCallbackPtr callback, |
| 678 void* userData) { | 681 void* user_data) { |
| 679 scoped_refptr<NPAPI::PluginInstance> plugin = FindInstance(id); | 682 scoped_refptr<NPAPI::PluginInstance> plugin = FindInstance(id); |
| 680 if (plugin) { | 683 if (plugin) { |
| 681 return plugin->FlushRenderContext(context, callback, userData); | 684 webkit_glue::WebPluginDelegate* delegate = plugin->webplugin()->delegate(); |
| 685 // Do the flush. |
| 686 NPError err = delegate->FlushRenderContext(context); |
| 687 // Invoke the callback to inform the caller the work was done. |
| 688 if (callback != NULL) { |
| 689 (*callback)(context, err, user_data); |
| 690 } |
| 691 // Return any errors. |
| 692 return err; |
| 682 } | 693 } |
| 683 return NPERR_GENERIC_ERROR; | 694 return NPERR_GENERIC_ERROR; |
| 684 } | 695 } |
| 685 #endif // defined(PEPPER_APIS_ENABLED) | 696 #endif // defined(PEPPER_APIS_ENABLED) |
| 686 | 697 |
| 687 NPError NPN_GetValue(NPP id, NPNVariable variable, void *value) { | 698 NPError NPN_GetValue(NPP id, NPNVariable variable, void *value) { |
| 688 // Allows the plugin to query the browser for information | 699 // Allows the plugin to query the browser for information |
| 689 // | 700 // |
| 690 // Variables: | 701 // Variables: |
| 691 // NPNVxDisplay (unix only) | 702 // NPNVxDisplay (unix only) |
| (...skipping 276 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 968 | 979 |
| 969 void NPN_PluginThreadAsyncCall(NPP id, | 980 void NPN_PluginThreadAsyncCall(NPP id, |
| 970 void (*func)(void *), | 981 void (*func)(void *), |
| 971 void *userData) { | 982 void *userData) { |
| 972 scoped_refptr<NPAPI::PluginInstance> plugin = FindInstance(id); | 983 scoped_refptr<NPAPI::PluginInstance> plugin = FindInstance(id); |
| 973 if (plugin) { | 984 if (plugin) { |
| 974 plugin->PluginThreadAsyncCall(func, userData); | 985 plugin->PluginThreadAsyncCall(func, userData); |
| 975 } | 986 } |
| 976 } | 987 } |
| 977 | 988 |
| 978 #if defined(PEPPER_APIS_ENABLED) | |
| 979 NPError NPN_InitializeRenderContext(NPP id, | |
| 980 NPRenderType type, | |
| 981 NPRenderContext* context) { | |
| 982 scoped_refptr<NPAPI::PluginInstance> plugin = FindInstance(id); | |
| 983 if (plugin) { | |
| 984 return plugin->InitializeRenderContext(type, context); | |
| 985 } | |
| 986 return NPERR_GENERIC_ERROR; | |
| 987 } | |
| 988 | |
| 989 NPError NPN_FlushRenderContext(NPP id, | |
| 990 NPRenderContext* context, | |
| 991 NPFlushRenderContextCallbackPtr callback, | |
| 992 void* userData) { | |
| 993 scoped_refptr<NPAPI::PluginInstance> plugin = FindInstance(id); | |
| 994 if (plugin) { | |
| 995 return plugin->FlushRenderContext(context, callback, userData); | |
| 996 } | |
| 997 return NPERR_GENERIC_ERROR; | |
| 998 } | |
| 999 #endif // defined(PEPPER_APIS_ENABLED) | |
| 1000 | |
| 1001 NPError NPN_GetValueForURL(NPP id, | 989 NPError NPN_GetValueForURL(NPP id, |
| 1002 NPNURLVariable variable, | 990 NPNURLVariable variable, |
| 1003 const char *url, | 991 const char *url, |
| 1004 char **value, | 992 char **value, |
| 1005 uint32_t *len) { | 993 uint32_t *len) { |
| 1006 if (!id) | 994 if (!id) |
| 1007 return NPERR_INVALID_PARAM; | 995 return NPERR_INVALID_PARAM; |
| 1008 | 996 |
| 1009 if (!url || !*url || !len) | 997 if (!url || !*url || !len) |
| 1010 return NPERR_INVALID_URL; | 998 return NPERR_INVALID_URL; |
| (...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1096 uint32_t *plen) { | 1084 uint32_t *plen) { |
| 1097 if (!id || !protocol || !host || !scheme || !realm || !username || | 1085 if (!id || !protocol || !host || !scheme || !realm || !username || |
| 1098 !ulen || !password || !plen) | 1086 !ulen || !password || !plen) |
| 1099 return NPERR_INVALID_PARAM; | 1087 return NPERR_INVALID_PARAM; |
| 1100 | 1088 |
| 1101 // TODO: implement me (bug 23928) | 1089 // TODO: implement me (bug 23928) |
| 1102 return NPERR_GENERIC_ERROR; | 1090 return NPERR_GENERIC_ERROR; |
| 1103 } | 1091 } |
| 1104 | 1092 |
| 1105 } // extern "C" | 1093 } // extern "C" |
| OLD | NEW |