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

Side by Side Diff: webkit/plugins/ppapi/ppb_var_deprecated_impl.cc

Issue 8826011: Remove PP_Module from parameters for PPB_Var.VarFromUtf8. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: merge Created 9 years 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
« no previous file with comments | « webkit/plugins/ppapi/ppb_var_deprecated_impl.h ('k') | webkit/plugins/ppapi/ppb_var_impl.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 #include "webkit/plugins/ppapi/ppb_var_impl.h" 5 #include "webkit/plugins/ppapi/ppb_var_deprecated_impl.h"
6 6
7 #include <limits> 7 #include <limits>
8 8
9 #include "ppapi/c/dev/ppb_var_deprecated.h" 9 #include "ppapi/c/dev/ppb_var_deprecated.h"
10 #include "ppapi/c/ppb_var.h" 10 #include "ppapi/c/ppb_var.h"
11 #include "ppapi/c/pp_var.h" 11 #include "ppapi/c/pp_var.h"
12 #include "ppapi/shared_impl/ppb_var_impl.h"
12 #include "third_party/WebKit/Source/WebKit/chromium/public/WebBindings.h" 13 #include "third_party/WebKit/Source/WebKit/chromium/public/WebBindings.h"
13 #include "webkit/plugins/ppapi/common.h" 14 #include "webkit/plugins/ppapi/common.h"
14 #include "webkit/plugins/ppapi/host_globals.h" 15 #include "webkit/plugins/ppapi/host_globals.h"
15 #include "webkit/plugins/ppapi/npapi_glue.h" 16 #include "webkit/plugins/ppapi/npapi_glue.h"
16 #include "webkit/plugins/ppapi/npobject_var.h" 17 #include "webkit/plugins/ppapi/npobject_var.h"
17 #include "webkit/plugins/ppapi/plugin_module.h" 18 #include "webkit/plugins/ppapi/plugin_module.h"
18 #include "webkit/plugins/ppapi/plugin_object.h" 19 #include "webkit/plugins/ppapi/plugin_object.h"
19 #include "webkit/plugins/ppapi/ppapi_plugin_instance.h" 20 #include "webkit/plugins/ppapi/ppapi_plugin_instance.h"
20 #include "v8/include/v8.h"
21 21
22 using ppapi::NPObjectVar; 22 using ppapi::NPObjectVar;
23 using ppapi::PpapiGlobals; 23 using ppapi::PpapiGlobals;
24 using ppapi::StringVar; 24 using ppapi::StringVar;
25 using ppapi::Var; 25 using ppapi::Var;
26 using WebKit::WebBindings; 26 using WebKit::WebBindings;
27 27
28 namespace webkit { 28 namespace webkit {
29 namespace ppapi { 29 namespace ppapi {
30 30
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
102 // 102 //
103 // This will automatically retrieve the ObjectVar from the object and throw 103 // This will automatically retrieve the ObjectVar from the object and throw
104 // an exception if it's invalid. At the end of construction, if there is no 104 // an exception if it's invalid. At the end of construction, if there is no
105 // exception, you know that there is no previously set exception, that the 105 // exception, you know that there is no previously set exception, that the
106 // object passed in is valid and ready to use (via the object() getter), and 106 // object passed in is valid and ready to use (via the object() getter), and
107 // that the TryCatch's pp_module() getter is also set up properly and ready to 107 // that the TryCatch's pp_module() getter is also set up properly and ready to
108 // use. 108 // use.
109 class ObjectAccessorTryCatch : public TryCatch { 109 class ObjectAccessorTryCatch : public TryCatch {
110 public: 110 public:
111 ObjectAccessorTryCatch(PP_Var object, PP_Var* exception) 111 ObjectAccessorTryCatch(PP_Var object, PP_Var* exception)
112 : TryCatch(0, exception), 112 : TryCatch(exception),
113 object_(NPObjectVar::FromPPVar(object)) { 113 object_(NPObjectVar::FromPPVar(object)) {
114 if (!object_) { 114 if (!object_) {
115 // No object or an invalid object was given. This means we have no module 115 SetException(kInvalidObjectException);
116 // to associated with the exception text, so use the magic invalid object
117 // exception.
118 SetInvalidObjectException();
119 } else {
120 // When the object is valid, we have a valid module to associate
121 set_pp_module(object_->pp_module());
122 } 116 }
123 } 117 }
124 118
125 NPObjectVar* object() { return object_.get(); } 119 NPObjectVar* object() { return object_.get(); }
126 120
127 PluginInstance* GetPluginInstance() { 121 PluginInstance* GetPluginInstance() {
128 return HostGlobals::Get()->GetInstance(object()->pp_instance()); 122 return HostGlobals::Get()->GetInstance(object()->pp_instance());
129 } 123 }
130 124
131 protected: 125 protected:
(...skipping 29 matching lines...) Expand all
161 } 155 }
162 156
163 NPIdentifier identifier() const { return identifier_; } 157 NPIdentifier identifier() const { return identifier_; }
164 158
165 private: 159 private:
166 NPIdentifier identifier_; 160 NPIdentifier identifier_;
167 161
168 DISALLOW_COPY_AND_ASSIGN(ObjectAccessorWithIdentifierTryCatch); 162 DISALLOW_COPY_AND_ASSIGN(ObjectAccessorWithIdentifierTryCatch);
169 }; 163 };
170 164
171 // PPB_Var methods -------------------------------------------------------------
172
173 void AddRefVar(PP_Var var) {
174 PpapiGlobals::Get()->GetVarTracker()->AddRefVar(var);
175 }
176
177 void ReleaseVar(PP_Var var) {
178 PpapiGlobals::Get()->GetVarTracker()->ReleaseVar(var);
179 }
180
181 PP_Var VarFromUtf8(PP_Module module, const char* data, uint32_t len) {
182 return StringVar::StringToPPVar(module, data, len);
183 }
184
185 const char* VarToUtf8(PP_Var var, uint32_t* len) {
186 StringVar* str = StringVar::FromPPVar(var);
187 if (!str) {
188 *len = 0;
189 return NULL;
190 }
191 *len = static_cast<uint32_t>(str->value().size());
192 if (str->value().empty())
193 return ""; // Don't return NULL on success.
194 return str->value().data();
195 }
196
197 PP_Bool HasProperty(PP_Var var, 165 PP_Bool HasProperty(PP_Var var,
198 PP_Var name, 166 PP_Var name,
199 PP_Var* exception) { 167 PP_Var* exception) {
200 ObjectAccessorWithIdentifierTryCatch accessor(var, name, exception); 168 ObjectAccessorWithIdentifierTryCatch accessor(var, name, exception);
201 if (accessor.has_exception()) 169 if (accessor.has_exception())
202 return PP_FALSE; 170 return PP_FALSE;
203 return BoolToPPBool(WebBindings::hasProperty(NULL, 171 return BoolToPPBool(WebBindings::hasProperty(NULL,
204 accessor.object()->np_object(), 172 accessor.object()->np_object(),
205 accessor.identifier())); 173 accessor.identifier()));
206 } 174 }
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
259 accessor.SetException(kUnableToGetAllPropertiesException); 227 accessor.SetException(kUnableToGetAllPropertiesException);
260 return; 228 return;
261 } 229 }
262 230
263 if (count == 0) 231 if (count == 0)
264 return; 232 return;
265 233
266 *property_count = count; 234 *property_count = count;
267 *properties = static_cast<PP_Var*>(malloc(sizeof(PP_Var) * count)); 235 *properties = static_cast<PP_Var*>(malloc(sizeof(PP_Var) * count));
268 for (uint32_t i = 0; i < count; ++i) { 236 for (uint32_t i = 0; i < count; ++i) {
269 (*properties)[i] = NPIdentifierToPPVar( 237 (*properties)[i] = NPIdentifierToPPVar(identifiers[i]);
270 accessor.GetPluginInstance()->module()->pp_module(),
271 identifiers[i]);
272 } 238 }
273 free(identifiers); 239 free(identifiers);
274 } 240 }
275 241
276 void SetPropertyDeprecated(PP_Var var, 242 void SetPropertyDeprecated(PP_Var var,
277 PP_Var name, 243 PP_Var name,
278 PP_Var value, 244 PP_Var value,
279 PP_Var* exception) { 245 PP_Var* exception) {
280 ObjectAccessorWithIdentifierTryCatch accessor(var, name, exception); 246 ObjectAccessorWithIdentifierTryCatch accessor(var, name, exception);
281 if (accessor.has_exception()) 247 if (accessor.has_exception())
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after
419 PP_Var CreateObjectWithModuleDeprecated(PP_Module pp_module, 385 PP_Var CreateObjectWithModuleDeprecated(PP_Module pp_module,
420 const PPP_Class_Deprecated* ppp_class, 386 const PPP_Class_Deprecated* ppp_class,
421 void* ppp_class_data) { 387 void* ppp_class_data) {
422 PluginModule* module = HostGlobals::Get()->GetModule(pp_module); 388 PluginModule* module = HostGlobals::Get()->GetModule(pp_module);
423 if (!module) 389 if (!module)
424 return PP_MakeNull(); 390 return PP_MakeNull();
425 return PluginObject::Create(module->GetSomeInstance(), 391 return PluginObject::Create(module->GetSomeInstance(),
426 ppp_class, ppp_class_data); 392 ppp_class, ppp_class_data);
427 } 393 }
428 394
429 const PPB_Var_Deprecated var_deprecated_interface = {
430 &AddRefVar,
431 &ReleaseVar,
432 &VarFromUtf8,
433 &VarToUtf8,
434 &HasPropertyDeprecated,
435 &HasMethodDeprecated,
436 &GetProperty,
437 &EnumerateProperties,
438 &SetPropertyDeprecated,
439 &DeletePropertyDeprecated,
440 &CallDeprecated,
441 &Construct,
442 &IsInstanceOfDeprecated,
443 &CreateObjectDeprecated,
444 &CreateObjectWithModuleDeprecated,
445 };
446
447 const PPB_Var var_interface = {
448 &AddRefVar,
449 &ReleaseVar,
450 &VarFromUtf8,
451 &VarToUtf8
452 };
453
454 } // namespace 395 } // namespace
455 396
456 // static 397 // static
457 const PPB_Var* PPB_Var_Impl::GetVarInterface() { 398 const PPB_Var_Deprecated* PPB_Var_Deprecated_Impl::GetVarDeprecatedInterface() {
458 return &var_interface; 399 static const PPB_Var_Deprecated var_deprecated_interface = {
459 } 400 ::ppapi::PPB_Var_Impl::GetVarInterface1_0()->AddRef,
401 ::ppapi::PPB_Var_Impl::GetVarInterface1_0()->Release,
402 ::ppapi::PPB_Var_Impl::GetVarInterface1_0()->VarFromUtf8,
403 ::ppapi::PPB_Var_Impl::GetVarInterface1_0()->VarToUtf8,
404 &HasPropertyDeprecated,
405 &HasMethodDeprecated,
406 &GetProperty,
407 &EnumerateProperties,
408 &SetPropertyDeprecated,
409 &DeletePropertyDeprecated,
410 &CallDeprecated,
411 &Construct,
412 &IsInstanceOfDeprecated,
413 &CreateObjectDeprecated,
414 &CreateObjectWithModuleDeprecated,
415 };
460 416
461 // static
462 const PPB_Var_Deprecated* PPB_Var_Impl::GetVarDeprecatedInterface() {
463 return &var_deprecated_interface; 417 return &var_deprecated_interface;
464 } 418 }
465 419
466 } // namespace ppapi 420 } // namespace ppapi
467 } // namespace webkit 421 } // namespace webkit
468 422
OLDNEW
« no previous file with comments | « webkit/plugins/ppapi/ppb_var_deprecated_impl.h ('k') | webkit/plugins/ppapi/ppb_var_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698