1 /*
2 * Copyright (C) 2006, 2007 Apple Inc. All rights reserved.
3 * Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies)
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright
11 * notice, this list of conditions and the following disclaimer in the
12 * documentation and/or other materials provided with the distribution.
13 *
14 * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
15 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
17 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
18 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
19 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
20 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
21 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
22 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
24 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25 */
26
27 #include "config.h"
28 #include "PluginDebug.h"
29 #include "PlatformString.h"
30
31 #if !LOG_DISABLED
32
33 namespace WebCore {
34
35 static const char* const errorStrings[] = {
36 "No errors occurred.", /* NPERR_NO_ERROR */
37 "Error with no specific error code occurred.", /* NPERR_GENERIC_ERROR */
38 "Invalid instance passed to the plug-in.", /* NPERR_INVALID_INSTANCE_ERROR */
39 "Function table invalid.", /* NPERR_INVALID_FUNCTABLE_ERROR */
40 "Loading of plug-in failed.", /* NPERR_MODULE_LOAD_FAILED_ERROR */
41 "Memory allocation failed.", /* NPERR_OUT_OF_MEMORY_ERROR */
42 "Plug-in missing or invalid.", /* NPERR_INVALID_PLUGIN_ERROR */
43 "Plug-in directory missing or invalid.", /* NPERR_INVALID_PLUGIN_DIR_ERROR */
44 "Versions of plug-in and Communicator do not match.", /* NPERR_INCOMPATIBLE_VERSION_ERROR */
45 "Parameter missing or invalid.", /* NPERR_INVALID_PARAM */
46 "URL missing or invalid.", /* NPERR_INVALID_URL */
47 "File missing or invalid.", /* NPERR_FILE_NOT_FOUND */
48 "Stream contains no data.", /* NPERR_NO_DATA */
49 "Seekable stream expected.", /* NPERR_STREAM_NOT_SEEKABLE */
50 "Unknown error code"
51 };
52
53 #ifdef XP_MACOSX
54 static const char* const drawingModels[] = {
55 "NPDrawingModelQuickDraw",
56 "NPDrawingModelCoreGraphics",
57 "NPDrawingModelOpenGL",
58 "NPDrawingModelCoreAnimation"
59 };
60
61 static const char* const eventModels[] = {
62 "NPEventModelCarbon",
63 "NPEventModelCocoa"
64 };
65 #endif //XP_MACOSX
66
prettyNameForNPError(NPError error)67 const char* prettyNameForNPError(NPError error)
68 {
69 return errorStrings[error];
70 }
71
72 #ifdef XP_MACOSX
prettyNameForDrawingModel(NPDrawingModel drawingModel)73 const char* prettyNameForDrawingModel(NPDrawingModel drawingModel)
74 {
75 return drawingModels[drawingModel];
76 }
77
prettyNameForEventModel(NPEventModel eventModel)78 const char* prettyNameForEventModel(NPEventModel eventModel)
79 {
80 return eventModels[eventModel];
81 }
82 #endif //XP_MACOSX
83
prettyNameForNPNVariable(NPNVariable variable)84 CString prettyNameForNPNVariable(NPNVariable variable)
85 {
86 switch (variable) {
87 case NPNVxDisplay: return "NPNVxDisplay";
88 case NPNVxtAppContext: return "NPNVxtAppContext";
89 case NPNVnetscapeWindow: return "NPNVnetscapeWindow";
90 case NPNVjavascriptEnabledBool: return "NPNVjavascriptEnabledBool";
91 case NPNVasdEnabledBool: return "NPNVasdEnabledBool";
92 case NPNVisOfflineBool: return "NPNVisOfflineBool";
93
94 case NPNVserviceManager: return "NPNVserviceManager (not supported)";
95 case NPNVDOMElement: return "NPNVDOMElement (not supported)";
96 case NPNVDOMWindow: return "NPNVDOMWindow (not supported)";
97 case NPNVToolkit: return "NPNVToolkit (not supported)";
98 case NPNVSupportsXEmbedBool: return "NPNVSupportsXEmbedBool (not supported)";
99
100 case NPNVWindowNPObject: return "NPNVWindowNPObject";
101 case NPNVPluginElementNPObject: return "NPNVPluginElementNPObject";
102 case NPNVSupportsWindowless: return "NPNVSupportsWindowless";
103 case NPNVprivateModeBool: return "NPNVprivateModeBool";
104
105 #ifdef XP_MACOSX
106 case NPNVpluginDrawingModel: return "NPNVpluginDrawingModel";
107 #ifndef NP_NO_QUICKDRAW
108 case NPNVsupportsQuickDrawBool: return "NPNVsupportsQuickDrawBool";
109 #endif
110 case NPNVsupportsCoreGraphicsBool: return "NPNVsupportsCoreGraphicsBool";
111 case NPNVsupportsOpenGLBool: return "NPNVsupportsOpenGLBool";
112 case NPNVsupportsCoreAnimationBool: return "NPNVsupportsCoreAnimationBool";
113 #ifndef NP_NO_CARBON
114 case NPNVsupportsCarbonBool: return "NPNVsupportsCarbonBool";
115 #endif
116 case NPNVsupportsCocoaBool: return "NPNVsupportsCocoaBool";
117 #endif
118
119 default: return "Unknown variable";
120 }
121 }
122
prettyNameForNPPVariable(NPPVariable variable,void * value)123 CString prettyNameForNPPVariable(NPPVariable variable, void* value)
124 {
125 switch (variable) {
126 case NPPVpluginNameString: return "NPPVpluginNameString";
127 case NPPVpluginDescriptionString: return "NPPVpluginDescriptionString";
128 case NPPVpluginWindowBool: return "NPPVpluginWindowBool";
129 case NPPVpluginTransparentBool: return "NPPVpluginTransparentBool";
130
131 case NPPVjavaClass: return "NPPVjavaClass (not supported)";
132 case NPPVpluginWindowSize: return "NPPVpluginWindowSize (not supported)";
133 case NPPVpluginTimerInterval: return "NPPVpluginTimerInterval (not supported)";
134 case NPPVpluginScriptableInstance: return "NPPVpluginScriptableInstance (not supported)";
135 case NPPVpluginScriptableIID: return "NPPVpluginScriptableIID (not supported)";
136 case NPPVjavascriptPushCallerBool: return "NPPVjavascriptPushCallerBool (not supported)";
137 case NPPVpluginKeepLibraryInMemory: return "NPPVpluginKeepLibraryInMemory (not supported)";
138 case NPPVpluginNeedsXEmbed: return "NPPVpluginNeedsXEmbed (not supported)";
139
140 case NPPVpluginScriptableNPObject: return "NPPVpluginScriptableNPObject";
141
142 case NPPVformValue: return "NPPVformValue (not supported)";
143 case NPPVpluginUrlRequestsDisplayedBool: return "NPPVpluginUrlRequestsDisplayedBool (not supported)";
144
145 case NPPVpluginWantsAllNetworkStreams: return "NPPVpluginWantsAllNetworkStreams";
146 case NPPVpluginCancelSrcStream: return "NPPVpluginCancelSrcStream";
147
148 #ifdef XP_MACOSX
149 case NPPVpluginDrawingModel: {
150 String result("NPPVpluginDrawingModel, ");
151 result.append(prettyNameForDrawingModel(NPDrawingModel(uintptr_t(value))));
152 return result.latin1();
153 }
154 case NPPVpluginEventModel: {
155 String result("NPPVpluginEventModel, ");
156 result.append(prettyNameForEventModel(NPEventModel(uintptr_t(value))));
157 return result.latin1();
158 }
159 case NPPVpluginCoreAnimationLayer: return "NPPVpluginCoreAnimationLayer";
160 #endif
161
162 default: return "Unknown variable";
163 }
164 }
165
166 } // namespace WebCore
167
168 #endif // !LOG_DISABLED
169