| Index: extensions/browser/event_router.cc
|
| diff --git a/extensions/browser/event_router.cc b/extensions/browser/event_router.cc
|
| index 0f56fe73906162c79954e2d72bb997f1d350299e..6cc2c7b647bcaeaa1a362a853d5b99fbd1ea5496 100644
|
| --- a/extensions/browser/event_router.cc
|
| +++ b/extensions/browser/event_router.cc
|
| @@ -13,6 +13,7 @@
|
| #include "base/bind.h"
|
| #include "base/command_line.h"
|
| #include "base/lazy_instance.h"
|
| +#include "base/memory/ptr_util.h"
|
| #include "base/message_loop/message_loop.h"
|
| #include "base/metrics/histogram_macros.h"
|
| #include "base/stl_util.h"
|
| @@ -62,7 +63,7 @@ const char kFilteredEvents[] = "filtered_events";
|
| void NotifyEventDispatched(void* browser_context_id,
|
| const std::string& extension_id,
|
| const std::string& event_name,
|
| - scoped_ptr<ListValue> args) {
|
| + std::unique_ptr<ListValue> args) {
|
| // The ApiActivityMonitor can only be accessed from the UI thread.
|
| if (!BrowserThread::CurrentlyOn(BrowserThread::UI)) {
|
| BrowserThread::PostTask(
|
| @@ -113,7 +114,7 @@ void EventRouter::DispatchExtensionMessage(IPC::Sender* ipc_sender,
|
| UserGestureState user_gesture,
|
| const EventFilteringInfo& info) {
|
| NotifyEventDispatched(browser_context_id, extension_id, event_name,
|
| - make_scoped_ptr(event_args->DeepCopy()));
|
| + base::WrapUnique(event_args->DeepCopy()));
|
|
|
| // TODO(chirantan): Make event dispatch a separate IPC so that it doesn't
|
| // piggyback off MessageInvoke, which is used for other things.
|
| @@ -132,7 +133,7 @@ void EventRouter::DispatchExtensionMessage(IPC::Sender* ipc_sender,
|
|
|
| // DispatchExtensionMessage does _not_ take ownership of event_args, so we
|
| // must ensure that the destruction of args does not attempt to free it.
|
| - scoped_ptr<base::Value> removed_event_args;
|
| + std::unique_ptr<base::Value> removed_event_args;
|
| args.Remove(1, &removed_event_args);
|
| ignore_result(removed_event_args.release());
|
| }
|
| @@ -154,7 +155,7 @@ void EventRouter::DispatchEventToSender(IPC::Sender* ipc_sender,
|
| const std::string& extension_id,
|
| events::HistogramValue histogram_value,
|
| const std::string& event_name,
|
| - scoped_ptr<ListValue> event_args,
|
| + std::unique_ptr<ListValue> event_args,
|
| UserGestureState user_gesture,
|
| const EventFilteringInfo& info) {
|
| int event_id = g_extension_event_id.GetNext();
|
| @@ -199,14 +200,14 @@ void EventRouter::AddEventListener(const std::string& event_name,
|
| content::RenderProcessHost* process,
|
| const std::string& extension_id) {
|
| listeners_.AddListener(EventListener::ForExtension(
|
| - event_name, extension_id, process, scoped_ptr<DictionaryValue>()));
|
| + event_name, extension_id, process, std::unique_ptr<DictionaryValue>()));
|
| }
|
|
|
| void EventRouter::RemoveEventListener(const std::string& event_name,
|
| content::RenderProcessHost* process,
|
| const std::string& extension_id) {
|
| - scoped_ptr<EventListener> listener = EventListener::ForExtension(
|
| - event_name, extension_id, process, scoped_ptr<DictionaryValue>());
|
| + std::unique_ptr<EventListener> listener = EventListener::ForExtension(
|
| + event_name, extension_id, process, std::unique_ptr<DictionaryValue>());
|
| listeners_.RemoveListener(listener.get());
|
| }
|
|
|
| @@ -214,14 +215,14 @@ void EventRouter::AddEventListenerForURL(const std::string& event_name,
|
| content::RenderProcessHost* process,
|
| const GURL& listener_url) {
|
| listeners_.AddListener(EventListener::ForURL(
|
| - event_name, listener_url, process, scoped_ptr<DictionaryValue>()));
|
| + event_name, listener_url, process, std::unique_ptr<DictionaryValue>()));
|
| }
|
|
|
| void EventRouter::RemoveEventListenerForURL(const std::string& event_name,
|
| content::RenderProcessHost* process,
|
| const GURL& listener_url) {
|
| - scoped_ptr<EventListener> listener = EventListener::ForURL(
|
| - event_name, listener_url, process, scoped_ptr<DictionaryValue>());
|
| + std::unique_ptr<EventListener> listener = EventListener::ForURL(
|
| + event_name, listener_url, process, std::unique_ptr<DictionaryValue>());
|
| listeners_.RemoveListener(listener.get());
|
| }
|
|
|
| @@ -289,7 +290,7 @@ void EventRouter::RenderProcessHostDestroyed(content::RenderProcessHost* host) {
|
| void EventRouter::AddLazyEventListener(const std::string& event_name,
|
| const std::string& extension_id) {
|
| bool is_new = listeners_.AddListener(EventListener::ForExtension(
|
| - event_name, extension_id, NULL, scoped_ptr<DictionaryValue>()));
|
| + event_name, extension_id, NULL, std::unique_ptr<DictionaryValue>()));
|
|
|
| if (is_new) {
|
| std::set<std::string> events = GetRegisteredEvents(extension_id);
|
| @@ -301,8 +302,8 @@ void EventRouter::AddLazyEventListener(const std::string& event_name,
|
|
|
| void EventRouter::RemoveLazyEventListener(const std::string& event_name,
|
| const std::string& extension_id) {
|
| - scoped_ptr<EventListener> listener = EventListener::ForExtension(
|
| - event_name, extension_id, NULL, scoped_ptr<DictionaryValue>());
|
| + std::unique_ptr<EventListener> listener = EventListener::ForExtension(
|
| + event_name, extension_id, NULL, std::unique_ptr<DictionaryValue>());
|
| bool did_exist = listeners_.RemoveListener(listener.get());
|
|
|
| if (did_exist) {
|
| @@ -319,17 +320,13 @@ void EventRouter::AddFilteredEventListener(const std::string& event_name,
|
| const base::DictionaryValue& filter,
|
| bool add_lazy_listener) {
|
| listeners_.AddListener(EventListener::ForExtension(
|
| - event_name,
|
| - extension_id,
|
| - process,
|
| - scoped_ptr<DictionaryValue>(filter.DeepCopy())));
|
| + event_name, extension_id, process,
|
| + std::unique_ptr<DictionaryValue>(filter.DeepCopy())));
|
|
|
| if (add_lazy_listener) {
|
| bool added = listeners_.AddListener(EventListener::ForExtension(
|
| - event_name,
|
| - extension_id,
|
| - NULL,
|
| - scoped_ptr<DictionaryValue>(filter.DeepCopy())));
|
| + event_name, extension_id, NULL,
|
| + std::unique_ptr<DictionaryValue>(filter.DeepCopy())));
|
|
|
| if (added)
|
| AddFilterToEvent(event_name, extension_id, &filter);
|
| @@ -342,11 +339,9 @@ void EventRouter::RemoveFilteredEventListener(
|
| const std::string& extension_id,
|
| const base::DictionaryValue& filter,
|
| bool remove_lazy_listener) {
|
| - scoped_ptr<EventListener> listener = EventListener::ForExtension(
|
| - event_name,
|
| - extension_id,
|
| - process,
|
| - scoped_ptr<DictionaryValue>(filter.DeepCopy()));
|
| + std::unique_ptr<EventListener> listener = EventListener::ForExtension(
|
| + event_name, extension_id, process,
|
| + std::unique_ptr<DictionaryValue>(filter.DeepCopy()));
|
|
|
| listeners_.RemoveListener(listener.get());
|
|
|
| @@ -465,18 +460,18 @@ const DictionaryValue* EventRouter::GetFilteredEvents(
|
| return events;
|
| }
|
|
|
| -void EventRouter::BroadcastEvent(scoped_ptr<Event> event) {
|
| +void EventRouter::BroadcastEvent(std::unique_ptr<Event> event) {
|
| DispatchEventImpl(std::string(), linked_ptr<Event>(event.release()));
|
| }
|
|
|
| void EventRouter::DispatchEventToExtension(const std::string& extension_id,
|
| - scoped_ptr<Event> event) {
|
| + std::unique_ptr<Event> event) {
|
| DCHECK(!extension_id.empty());
|
| DispatchEventImpl(extension_id, linked_ptr<Event>(event.release()));
|
| }
|
|
|
| void EventRouter::DispatchEventWithLazyListener(const std::string& extension_id,
|
| - scoped_ptr<Event> event) {
|
| + std::unique_ptr<Event> event) {
|
| DCHECK(!extension_id.empty());
|
| std::string event_name = event->event_name;
|
| bool has_listener = ExtensionHasEventListener(extension_id, event_name);
|
| @@ -858,12 +853,12 @@ void EventRouter::OnExtensionUnloaded(content::BrowserContext* browser_context,
|
|
|
| Event::Event(events::HistogramValue histogram_value,
|
| const std::string& event_name,
|
| - scoped_ptr<base::ListValue> event_args)
|
| + std::unique_ptr<base::ListValue> event_args)
|
| : Event(histogram_value, event_name, std::move(event_args), nullptr) {}
|
|
|
| Event::Event(events::HistogramValue histogram_value,
|
| const std::string& event_name,
|
| - scoped_ptr<base::ListValue> event_args,
|
| + std::unique_ptr<base::ListValue> event_args,
|
| BrowserContext* restrict_to_browser_context)
|
| : Event(histogram_value,
|
| event_name,
|
| @@ -875,7 +870,7 @@ Event::Event(events::HistogramValue histogram_value,
|
|
|
| Event::Event(events::HistogramValue histogram_value,
|
| const std::string& event_name,
|
| - scoped_ptr<ListValue> event_args_tmp,
|
| + std::unique_ptr<ListValue> event_args_tmp,
|
| BrowserContext* restrict_to_browser_context,
|
| const GURL& event_url,
|
| EventRouter::UserGestureState user_gesture,
|
| @@ -899,10 +894,10 @@ Event::Event(events::HistogramValue histogram_value,
|
| Event::~Event() {}
|
|
|
| Event* Event::DeepCopy() {
|
| - Event* copy = new Event(histogram_value, event_name,
|
| - scoped_ptr<base::ListValue>(event_args->DeepCopy()),
|
| - restrict_to_browser_context, event_url, user_gesture,
|
| - filter_info);
|
| + Event* copy = new Event(
|
| + histogram_value, event_name,
|
| + std::unique_ptr<base::ListValue>(event_args->DeepCopy()),
|
| + restrict_to_browser_context, event_url, user_gesture, filter_info);
|
| copy->will_dispatch_callback = will_dispatch_callback;
|
| return copy;
|
| }
|
|
|