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

Side by Side Diff: extensions/renderer/api_event_handler.cc

Issue 2846743002: Switch SupportsUserData uses to use unique_ptr. (Closed)
Patch Set: Created 3 years, 7 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
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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/api_event_handler.h" 5 #include "extensions/renderer/api_event_handler.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <map> 8 #include <map>
9 #include <memory> 9 #include <memory>
10 #include <vector> 10 #include <vector>
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
63 if (!per_context_data) 63 if (!per_context_data)
64 return nullptr; 64 return nullptr;
65 auto* data = static_cast<APIEventPerContextData*>( 65 auto* data = static_cast<APIEventPerContextData*>(
66 per_context_data->GetUserData(kExtensionAPIEventPerContextKey)); 66 per_context_data->GetUserData(kExtensionAPIEventPerContextKey));
67 67
68 if (!data && should_create) { 68 if (!data && should_create) {
69 auto api_data = 69 auto api_data =
70 base::MakeUnique<APIEventPerContextData>(context->GetIsolate()); 70 base::MakeUnique<APIEventPerContextData>(context->GetIsolate());
71 data = api_data.get(); 71 data = api_data.get();
72 per_context_data->SetUserData(kExtensionAPIEventPerContextKey, 72 per_context_data->SetUserData(kExtensionAPIEventPerContextKey,
73 api_data.release()); 73 std::move(api_data));
74 } 74 }
75 75
76 return data; 76 return data;
77 } 77 }
78 78
79 void DispatchEvent(const v8::FunctionCallbackInfo<v8::Value>& info) { 79 void DispatchEvent(const v8::FunctionCallbackInfo<v8::Value>& info) {
80 v8::Isolate* isolate = info.GetIsolate(); 80 v8::Isolate* isolate = info.GetIsolate();
81 v8::HandleScope handle_scope(isolate); 81 v8::HandleScope handle_scope(isolate);
82 if (info.Length() != 1 || !info[0]->IsArray()) { 82 if (info.Length() != 1 || !info[0]->IsArray()) {
83 NOTREACHED(); 83 NOTREACHED();
(...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after
301 auto iter = data->emitters.find(event_name); 301 auto iter = data->emitters.find(event_name);
302 DCHECK(iter != data->emitters.end()); 302 DCHECK(iter != data->emitters.end());
303 EventEmitter* emitter = nullptr; 303 EventEmitter* emitter = nullptr;
304 gin::Converter<EventEmitter*>::FromV8( 304 gin::Converter<EventEmitter*>::FromV8(
305 context->GetIsolate(), iter->second.Get(context->GetIsolate()), &emitter); 305 context->GetIsolate(), iter->second.Get(context->GetIsolate()), &emitter);
306 CHECK(emitter); 306 CHECK(emitter);
307 return emitter->GetNumListeners(); 307 return emitter->GetNumListeners();
308 } 308 }
309 309
310 } // namespace extensions 310 } // namespace extensions
OLDNEW
« no previous file with comments | « extensions/renderer/api_binding_hooks.cc ('k') | extensions/renderer/native_extension_bindings_system.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698