[Extensions Cleanup] Remove linked_ptr from EventRouter code
Remove linked_ptr usage from extensions event-related code, including
event_router.* and lazy_event_dispatcher.*. Most of these were easy
changes, where the object didn't actually have to be linked. One
exception is in the lazy event dispatching. Previously, we would store
the linked_ptr in a callback while waiting for the extension background
page to start up. Now, we instead have to create a copy of the event.
This is slightly less efficient, since it is an additional copy
(potentially even an additional copy per browser context per extension),
but realistically, this won't happen frequently (because the background
context would be around for at least 5 seconds after any event).
Bug: 913604
Change-Id: I9cb534f69f1839a7fbfe640490317221c5448884
Reviewed-on: https://chromium-review.googlesource.com/c/1370721
Commit-Queue: Devlin <[email protected]>
Reviewed-by: Istiaque Ahmed <[email protected]>
Cr-Commit-Position: refs/heads/master@{#618665}
diff --git a/extensions/browser/event_router.h b/extensions/browser/event_router.h
index 0397e21..3e2cd3e 100644
--- a/extensions/browser/event_router.h
+++ b/extensions/browser/event_router.h
@@ -12,7 +12,6 @@
#include "base/callback.h"
#include "base/compiler_specific.h"
#include "base/macros.h"
-#include "base/memory/linked_ptr.h"
#include "base/memory/ref_counted.h"
#include "base/memory/weak_ptr.h"
#include "base/observer_list.h"
@@ -305,7 +304,7 @@
// empty, the event is broadcast. An event that just came off the pending
// list may not be delayed again.
void DispatchEventImpl(const std::string& restrict_to_extension_id,
- const linked_ptr<Event>& event);
+ std::unique_ptr<Event> event);
// Dispatches the event to the specified extension or URL running in
// |process|.
@@ -314,7 +313,7 @@
content::RenderProcessHost* process,
int64_t service_worker_version_id,
int worker_thread_id,
- const linked_ptr<Event>& event,
+ Event* event,
const base::DictionaryValue* listener_filter,
bool did_enqueue);
@@ -352,7 +351,7 @@
const std::string& event_name);
void DispatchPendingEvent(
- const linked_ptr<Event>& event,
+ std::unique_ptr<Event> event,
std::unique_ptr<LazyContextTaskQueue::ContextInfo> params);
// Implementation of EventListenerMap::Delegate.