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

Side by Side Diff: plugin/cross/main.cc

Issue 149130: In preparation for becoming an internal plugin in chrome I did these things:... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/o3d/
Patch Set: '' Created 11 years, 5 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright 2009, Google Inc. 2 * Copyright 2009, Google Inc.
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are 6 * modification, are permitted provided that the following conditions are
7 * met: 7 * met:
8 * 8 *
9 * * Redistributions of source code must retain the above copyright 9 * * Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer. 10 * notice, this list of conditions and the following disclaimer.
(...skipping 17 matching lines...) Expand all
28 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 */ 30 */
31 31
32 32
33 #include "plugin/cross/main.h" 33 #include "plugin/cross/main.h"
34 34
35 using glue::_o3d::PluginObject; 35 using glue::_o3d::PluginObject;
36 using glue::StreamManager; 36 using glue::StreamManager;
37 37
38 #if !defined(O3D_INTERNAL_PLUGIN)
39
38 int BreakpadEnabler::scope_count_ = 0; 40 int BreakpadEnabler::scope_count_ = 0;
39 41
40 // Used for breakpad crash handling 42 // Used for breakpad crash handling
41 ExceptionManager *g_exception_manager = NULL; 43 ExceptionManager *g_exception_manager = NULL;
42 44
43 extern "C" { 45 #endif // O3D_INTERNAL_PLUGIN
44 char *NP_GetMIMEDescription(void) { 46
45 return O3D_PLUGIN_MIME_TYPE "::O3D MIME"; 47 namespace o3d {
48
49 char *NP_GetMIMEDescription(void) {
Antoine Labour 2009/07/11 02:59:43 FYI, that broke the linux plugin. That's one of th
50 return O3D_PLUGIN_MIME_TYPE "::O3D MIME";
51 }
52
53 NPError NP_GetValue(void *instance, NPPVariable variable, void *value) {
54 switch (variable) {
55 case NPPVpluginNameString:
56 *static_cast<char **>(value) = O3D_PLUGIN_NAME;
57 break;
58 case NPPVpluginDescriptionString:
59 *static_cast<char **>(value) = O3D_PLUGIN_DESCRIPTION;
60 break;
61 default:
62 return NPERR_INVALID_PARAM;
63 break;
46 } 64 }
65 return NPERR_NO_ERROR;
66 }
47 67
48 NPError NP_GetValue(void *instance, NPPVariable variable, void *value) { 68 NPError NPP_NewStream(NPP instance, NPMIMEType type, NPStream *stream,
49 switch (variable) { 69 NPBool seekable, uint16 *stype) {
50 case NPPVpluginNameString: 70 HANDLE_CRASHES;
51 *static_cast<char **>(value) = O3D_PLUGIN_NAME; 71 PluginObject *obj = static_cast<PluginObject*>(instance->pdata);
52 break; 72 StreamManager *stream_manager = obj->stream_manager();
53 case NPPVpluginDescriptionString: 73 if (stream_manager->NewStream(stream, stype)) {
54 *static_cast<char **>(value) = O3D_PLUGIN_DESCRIPTION; 74 return NPERR_NO_ERROR;
55 break; 75 } else {
56 default: 76 // TODO: find out which error we should return
57 return NPERR_INVALID_PARAM; 77 return NPERR_INVALID_PARAM;
58 break; 78 }
79 }
80
81 NPError NPP_DestroyStream(NPP instance, NPStream *stream, NPReason reason) {
82 HANDLE_CRASHES;
83 PluginObject *obj = static_cast<PluginObject*>(instance->pdata);
84 StreamManager *stream_manager = obj->stream_manager();
85 if (stream_manager->DestroyStream(stream, reason)) {
86 return NPERR_NO_ERROR;
87 } else {
88 // TODO: find out which error we should return
89 return NPERR_INVALID_PARAM;
90 }
91 }
92
93 int32 NPP_WriteReady(NPP instance, NPStream *stream) {
94 HANDLE_CRASHES;
95 PluginObject *obj = static_cast<PluginObject*>(instance->pdata);
96 StreamManager *stream_manager = obj->stream_manager();
97 return stream_manager->WriteReady(stream);
98 }
99
100 int32 NPP_Write(NPP instance, NPStream *stream, int32 offset, int32 len,
101 void *buffer) {
102 HANDLE_CRASHES;
103 PluginObject *obj = static_cast<PluginObject*>(instance->pdata);
104 StreamManager *stream_manager = obj->stream_manager();
105 return stream_manager->Write(stream, offset, len, buffer);
106 }
107
108 void NPP_Print(NPP instance, NPPrint *platformPrint) {
109 HANDLE_CRASHES;
110 }
111
112 void NPP_URLNotify(NPP instance, const char *url, NPReason reason,
113 void *notifyData) {
114 HANDLE_CRASHES;
115 PluginObject *obj = static_cast<PluginObject*>(instance->pdata);
116 StreamManager *stream_manager = obj->stream_manager();
117 stream_manager->URLNotify(url, reason, notifyData);
118 }
119
120 NPError NPP_GetValue(NPP instance, NPPVariable variable, void *value) {
121 HANDLE_CRASHES;
122 switch (variable) {
123 case NPPVpluginScriptableNPObject: {
124 void **v = static_cast<void **>(value);
125 PluginObject *obj = static_cast<PluginObject *>(instance->pdata);
126 // Return value is expected to be retained
127 GLUE_PROFILE_START(instance, "retainobject");
128 NPN_RetainObject(obj);
129 GLUE_PROFILE_STOP(instance, "retainobject");
130 *v = obj;
131 break;
59 } 132 }
60 return NPERR_NO_ERROR; 133 default: {
61 } 134 NPError ret = PlatformNPPGetValue(instance, variable, value);
62 135 if (ret == NPERR_INVALID_PARAM)
63 NPError OSCALL NP_GetEntryPoints(NPPluginFuncs *pluginFuncs) { 136 ret = o3d::NP_GetValue(instance, variable, value);
64 HANDLE_CRASHES; 137 return ret;
65 pluginFuncs->version = 11;
66 pluginFuncs->size = sizeof(*pluginFuncs);
67 pluginFuncs->newp = NPP_New;
68 pluginFuncs->destroy = NPP_Destroy;
69 pluginFuncs->setwindow = NPP_SetWindow;
70 pluginFuncs->newstream = NPP_NewStream;
71 pluginFuncs->destroystream = NPP_DestroyStream;
72 pluginFuncs->asfile = NPP_StreamAsFile;
73 pluginFuncs->writeready = NPP_WriteReady;
74 pluginFuncs->write = NPP_Write;
75 pluginFuncs->print = NPP_Print;
76 pluginFuncs->event = NPP_HandleEvent;
77 pluginFuncs->urlnotify = NPP_URLNotify;
78 pluginFuncs->getvalue = NPP_GetValue;
79 pluginFuncs->setvalue = NPP_SetValue;
80
81 return NPERR_NO_ERROR;
82 }
83
84 NPError NPP_NewStream(NPP instance, NPMIMEType type, NPStream *stream,
85 NPBool seekable, uint16 *stype) {
86 HANDLE_CRASHES;
87 PluginObject *obj = static_cast<PluginObject*>(instance->pdata);
88 StreamManager *stream_manager = obj->stream_manager();
89 if (stream_manager->NewStream(stream, stype)) {
90 return NPERR_NO_ERROR;
91 } else {
92 // TODO: find out which error we should return
93 return NPERR_INVALID_PARAM;
94 } 138 }
95 } 139 }
140 return NPERR_NO_ERROR;
141 }
96 142
97 NPError NPP_DestroyStream(NPP instance, NPStream *stream, NPReason reason) { 143 NPError NPP_SetValue(NPP instance, NPNVariable variable, void *value) {
98 HANDLE_CRASHES; 144 HANDLE_CRASHES;
99 PluginObject *obj = static_cast<PluginObject*>(instance->pdata); 145 return NPERR_GENERIC_ERROR;
100 StreamManager *stream_manager = obj->stream_manager(); 146 }
101 if (stream_manager->DestroyStream(stream, reason)) { 147 } // namespace o3d
102 return NPERR_NO_ERROR;
103 } else {
104 // TODO: find out which error we should return
105 return NPERR_INVALID_PARAM;
106 }
107 }
108 148
109 int32 NPP_WriteReady(NPP instance, NPStream *stream) { 149 #if defined(O3D_INTERNAL_PLUGIN)
110 HANDLE_CRASHES; 150 namespace o3d {
111 PluginObject *obj = static_cast<PluginObject*>(instance->pdata); 151 #else
112 StreamManager *stream_manager = obj->stream_manager(); 152 extern "C" {
113 return stream_manager->WriteReady(stream); 153 #endif
114 }
115 154
116 int32 NPP_Write(NPP instance, NPStream *stream, int32 offset, int32 len, 155 NPError OSCALL NP_GetEntryPoints(NPPluginFuncs *pluginFuncs) {
117 void *buffer) { 156 HANDLE_CRASHES;
118 HANDLE_CRASHES; 157 pluginFuncs->version = 11;
119 PluginObject *obj = static_cast<PluginObject*>(instance->pdata); 158 pluginFuncs->size = sizeof(*pluginFuncs);
120 StreamManager *stream_manager = obj->stream_manager(); 159 pluginFuncs->newp = o3d::NPP_New;
121 return stream_manager->Write(stream, offset, len, buffer); 160 pluginFuncs->destroy = o3d::NPP_Destroy;
122 } 161 pluginFuncs->setwindow = o3d::NPP_SetWindow;
162 pluginFuncs->newstream = o3d::NPP_NewStream;
163 pluginFuncs->destroystream = o3d::NPP_DestroyStream;
164 pluginFuncs->asfile = o3d::NPP_StreamAsFile;
165 pluginFuncs->writeready = o3d::NPP_WriteReady;
166 pluginFuncs->write = o3d::NPP_Write;
167 pluginFuncs->print = o3d::NPP_Print;
168 pluginFuncs->event = o3d::NPP_HandleEvent;
169 pluginFuncs->urlnotify = o3d::NPP_URLNotify;
170 pluginFuncs->getvalue = o3d::NPP_GetValue;
171 pluginFuncs->setvalue = o3d::NPP_SetValue;
123 172
124 void NPP_Print(NPP instance, NPPrint *platformPrint) { 173 return NPERR_NO_ERROR;
125 HANDLE_CRASHES; 174 }
126 } 175 } // namespace o3d / extern "C"
127
128 void NPP_URLNotify(NPP instance, const char *url, NPReason reason,
129 void *notifyData) {
130 HANDLE_CRASHES;
131 PluginObject *obj = static_cast<PluginObject*>(instance->pdata);
132 StreamManager *stream_manager = obj->stream_manager();
133 stream_manager->URLNotify(url, reason, notifyData);
134 }
135
136 NPError NPP_GetValue(NPP instance, NPPVariable variable, void *value) {
137 HANDLE_CRASHES;
138 switch (variable) {
139 case NPPVpluginScriptableNPObject: {
140 void **v = static_cast<void **>(value);
141 PluginObject *obj = static_cast<PluginObject *>(instance->pdata);
142 // Return value is expected to be retained
143 GLUE_PROFILE_START(instance, "retainobject");
144 NPN_RetainObject(obj);
145 GLUE_PROFILE_STOP(instance, "retainobject");
146 *v = obj;
147 break;
148 }
149 default: {
150 NPError ret = PlatformNPPGetValue(instance, variable, value);
151 if (ret == NPERR_INVALID_PARAM)
152 ret = NP_GetValue(instance, variable, value);
153 return ret;
154 }
155 }
156 return NPERR_NO_ERROR;
157 }
158
159 NPError NPP_SetValue(NPP instance, NPNVariable variable, void *value) {
160 HANDLE_CRASHES;
161 return NPERR_GENERIC_ERROR;
162 }
163 } // extern "C"
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698