| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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 "content/renderer/pepper/v8_var_converter.h" | 5 #include "content/renderer/pepper/v8_var_converter.h" |
| 6 | 6 |
| 7 #include <map> | 7 #include <map> |
| 8 #include <stack> | 8 #include <stack> |
| 9 #include <string> | 9 #include <string> |
| 10 | 10 |
| (...skipping 267 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 278 } | 278 } |
| 279 return true; | 279 return true; |
| 280 } | 280 } |
| 281 | 281 |
| 282 bool CanHaveChildren(PP_Var var) { | 282 bool CanHaveChildren(PP_Var var) { |
| 283 return var.type == PP_VARTYPE_ARRAY || var.type == PP_VARTYPE_DICTIONARY; | 283 return var.type == PP_VARTYPE_ARRAY || var.type == PP_VARTYPE_DICTIONARY; |
| 284 } | 284 } |
| 285 | 285 |
| 286 } // namespace | 286 } // namespace |
| 287 | 287 |
| 288 V8VarConverter::V8VarConverter(PP_Instance instance) | |
| 289 : instance_(instance), | |
| 290 object_vars_allowed_(kDisallowObjectVars), | |
| 291 message_loop_proxy_(base::MessageLoopProxy::current()) { | |
| 292 resource_converter_.reset(new ResourceConverterImpl( | |
| 293 instance, RendererPpapiHost::GetForPPInstance(instance))); | |
| 294 } | |
| 295 | |
| 296 V8VarConverter::V8VarConverter(PP_Instance instance, | 288 V8VarConverter::V8VarConverter(PP_Instance instance, |
| 297 AllowObjectVars object_vars_allowed) | 289 AllowObjectVars object_vars_allowed) |
| 298 : instance_(instance), | 290 : instance_(instance), |
| 299 object_vars_allowed_(object_vars_allowed), | 291 object_vars_allowed_(object_vars_allowed) { |
| 300 message_loop_proxy_(base::MessageLoopProxy::current()) { | 292 resource_converter_.reset(new ResourceConverterImpl(instance)); |
| 301 resource_converter_.reset(new ResourceConverterImpl( | |
| 302 instance, RendererPpapiHost::GetForPPInstance(instance))); | |
| 303 } | 293 } |
| 304 | 294 |
| 305 V8VarConverter::V8VarConverter(PP_Instance instance, | 295 V8VarConverter::V8VarConverter(PP_Instance instance, |
| 306 scoped_ptr<ResourceConverter> resource_converter) | 296 scoped_ptr<ResourceConverter> resource_converter) |
| 307 : instance_(instance), | 297 : instance_(instance), |
| 308 object_vars_allowed_(kDisallowObjectVars), | 298 object_vars_allowed_(kDisallowObjectVars), |
| 309 message_loop_proxy_(base::MessageLoopProxy::current()), | |
| 310 resource_converter_(resource_converter.release()) {} | 299 resource_converter_(resource_converter.release()) {} |
| 311 | 300 |
| 312 V8VarConverter::~V8VarConverter() {} | 301 V8VarConverter::~V8VarConverter() {} |
| 313 | 302 |
| 314 // To/FromV8Value use a stack-based DFS search to traverse V8/Var graph. Each | 303 // To/FromV8Value use a stack-based DFS search to traverse V8/Var graph. Each |
| 315 // iteration, the top node on the stack examined. If the node has not been | 304 // iteration, the top node on the stack examined. If the node has not been |
| 316 // visited yet (i.e. sentinel == false) then it is added to the list of parents | 305 // visited yet (i.e. sentinel == false) then it is added to the list of parents |
| 317 // which contains all of the nodes on the path from the start node to the | 306 // which contains all of the nodes on the path from the start node to the |
| 318 // current node. Each of the current nodes children are examined. If they appear | 307 // current node. Each of the current nodes children are examined. If they appear |
| 319 // in the list of parents it means we have a cycle and we return NULL. | 308 // in the list of parents it means we have a cycle and we return NULL. |
| (...skipping 291 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 611 std::string(*name_utf8, name_utf8.length()), child_var); | 600 std::string(*name_utf8, name_utf8.length()), child_var); |
| 612 DCHECK(success); | 601 DCHECK(success); |
| 613 } | 602 } |
| 614 } | 603 } |
| 615 } | 604 } |
| 616 *result_var = root; | 605 *result_var = root; |
| 617 return true; | 606 return true; |
| 618 } | 607 } |
| 619 | 608 |
| 620 } // namespace content | 609 } // namespace content |
| OLD | NEW |