| OLD | NEW | 
|---|
| 1 // Copyright 2017 The Chromium Authors. All rights reserved. | 1 // Copyright 2017 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 "extensions/renderer/storage_area.h" | 5 #include "extensions/renderer/storage_area.h" | 
| 6 | 6 | 
| 7 #include "base/memory/ptr_util.h" | 7 #include "base/memory/ptr_util.h" | 
| 8 #include "base/strings/stringprintf.h" | 8 #include "base/strings/stringprintf.h" | 
| 9 #include "extensions/common/api/storage.h" | 9 #include "extensions/common/api/storage.h" | 
| 10 #include "extensions/renderer/api_request_handler.h" | 10 #include "extensions/renderer/api_request_handler.h" | 
| (...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 176   } | 176   } | 
| 177   return object; | 177   return object; | 
| 178 } | 178 } | 
| 179 | 179 | 
| 180 void StorageArea::HandleFunctionCall(const std::string& method_name, | 180 void StorageArea::HandleFunctionCall(const std::string& method_name, | 
| 181                                      gin::Arguments* arguments) { | 181                                      gin::Arguments* arguments) { | 
| 182   v8::Isolate* isolate = arguments->isolate(); | 182   v8::Isolate* isolate = arguments->isolate(); | 
| 183   v8::HandleScope handle_scope(isolate); | 183   v8::HandleScope handle_scope(isolate); | 
| 184   v8::Local<v8::Context> context = arguments->GetHolderCreationContext(); | 184   v8::Local<v8::Context> context = arguments->GetHolderCreationContext(); | 
| 185 | 185 | 
| 186   std::vector<v8::Local<v8::Value>> argument_list; | 186   std::vector<v8::Local<v8::Value>> argument_list = arguments->GetAll(); | 
| 187   if (arguments->Length() > 0) { |  | 
| 188     // Just copying handles should never fail. |  | 
| 189     CHECK(arguments->GetRemaining(&argument_list)); |  | 
| 190   } |  | 
| 191 | 187 | 
| 192   std::unique_ptr<base::ListValue> converted_arguments; | 188   std::unique_ptr<base::ListValue> converted_arguments; | 
| 193   v8::Local<v8::Function> callback; | 189   v8::Local<v8::Function> callback; | 
| 194   std::string error; | 190   std::string error; | 
| 195   const APISignature* signature = type_refs_->GetTypeMethodSignature( | 191   const APISignature* signature = type_refs_->GetTypeMethodSignature( | 
| 196       base::StringPrintf("%s.%s", "storage.StorageArea", method_name.c_str())); | 192       base::StringPrintf("%s.%s", "storage.StorageArea", method_name.c_str())); | 
| 197   DCHECK(signature); | 193   DCHECK(signature); | 
| 198   if (!signature->ParseArgumentsToJSON(context, argument_list, *type_refs_, | 194   if (!signature->ParseArgumentsToJSON(context, argument_list, *type_refs_, | 
| 199                                        &converted_arguments, &callback, | 195                                        &converted_arguments, &callback, | 
| 200                                        &error)) { | 196                                        &error)) { | 
| 201     arguments->ThrowTypeError("Invalid invocation"); | 197     arguments->ThrowTypeError("Invalid invocation"); | 
| 202     return; | 198     return; | 
| 203   } | 199   } | 
| 204 | 200 | 
| 205   converted_arguments->Insert(0u, base::MakeUnique<base::Value>(name_)); | 201   converted_arguments->Insert(0u, base::MakeUnique<base::Value>(name_)); | 
| 206   request_handler_->StartRequest( | 202   request_handler_->StartRequest( | 
| 207       context, "storage." + method_name, std::move(converted_arguments), | 203       context, "storage." + method_name, std::move(converted_arguments), | 
| 208       callback, v8::Local<v8::Function>(), binding::RequestThread::UI); | 204       callback, v8::Local<v8::Function>(), binding::RequestThread::UI); | 
| 209 } | 205 } | 
| 210 | 206 | 
| 211 }  // namespace extensions | 207 }  // namespace extensions | 
| OLD | NEW | 
|---|