Index: chrome/browser/extensions/api/downloads/downloads_api.cc |
diff --git a/chrome/browser/extensions/api/downloads/downloads_api.cc b/chrome/browser/extensions/api/downloads/downloads_api.cc |
index 485189937dbd46200f6741b6a323ea89da85d41a..5e4ebbbd2e971e57a8dcbd904481b00934307ab2 100644 |
--- a/chrome/browser/extensions/api/downloads/downloads_api.cc |
+++ b/chrome/browser/extensions/api/downloads/downloads_api.cc |
@@ -1609,14 +1609,14 @@ void ExtensionDownloadsEventRouter::OnDeterminingFilename( |
} |
data->BeginFilenameDetermination(no_change, change); |
bool any_determiners = false; |
- base::DictionaryValue* json = DownloadItemToJSON( |
- item, profile_).release(); |
+ std::unique_ptr<base::DictionaryValue> json = |
+ DownloadItemToJSON(item, profile_); |
json->SetString(kFilenameKey, suggested_path.LossyDisplayName()); |
DispatchEvent(events::DOWNLOADS_ON_DETERMINING_FILENAME, |
downloads::OnDeterminingFilename::kEventName, false, |
base::Bind(&OnDeterminingFilenameWillDispatchCallback, |
&any_determiners, data), |
- json); |
+ std::move(json)); |
if (!any_determiners) { |
data->ClearPendingDeterminers(); |
if (!data->creator_suggested_filename().empty() || |
@@ -1777,7 +1777,8 @@ void ExtensionDownloadsEventRouter::OnDownloadCreated( |
std::unique_ptr<base::DictionaryValue> json_item( |
DownloadItemToJSON(download_item, profile_)); |
DispatchEvent(events::DOWNLOADS_ON_CREATED, downloads::OnCreated::kEventName, |
- true, Event::WillDispatchCallback(), json_item->DeepCopy()); |
+ true, Event::WillDispatchCallback(), |
+ json_item->CreateDeepCopy()); |
if (!ExtensionDownloadsEventRouterData::Get(download_item) && |
(router->HasEventListener(downloads::OnChanged::kEventName) || |
router->HasEventListener( |
@@ -1848,7 +1849,7 @@ void ExtensionDownloadsEventRouter::OnDownloadUpdated( |
if (changed) { |
DispatchEvent(events::DOWNLOADS_ON_CHANGED, |
downloads::OnChanged::kEventName, true, |
- Event::WillDispatchCallback(), delta.release()); |
+ Event::WillDispatchCallback(), std::move(delta)); |
data->OnChangedFired(); |
} |
data->set_json(std::move(new_json)); |
@@ -1859,10 +1860,10 @@ void ExtensionDownloadsEventRouter::OnDownloadRemoved( |
DCHECK_CURRENTLY_ON(BrowserThread::UI); |
if (download_item->IsTemporary()) |
return; |
- DispatchEvent( |
- events::DOWNLOADS_ON_ERASED, downloads::OnErased::kEventName, true, |
- Event::WillDispatchCallback(), |
- new base::FundamentalValue(static_cast<int>(download_item->GetId()))); |
+ DispatchEvent(events::DOWNLOADS_ON_ERASED, downloads::OnErased::kEventName, |
+ true, Event::WillDispatchCallback(), |
+ base::MakeUnique<base::FundamentalValue>( |
+ static_cast<int>(download_item->GetId()))); |
} |
void ExtensionDownloadsEventRouter::DispatchEvent( |
@@ -1870,12 +1871,12 @@ void ExtensionDownloadsEventRouter::DispatchEvent( |
const std::string& event_name, |
bool include_incognito, |
const Event::WillDispatchCallback& will_dispatch_callback, |
- base::Value* arg) { |
+ std::unique_ptr<base::Value> arg) { |
DCHECK_CURRENTLY_ON(BrowserThread::UI); |
if (!EventRouter::Get(profile_)) |
return; |
std::unique_ptr<base::ListValue> args(new base::ListValue()); |
- args->Append(arg); |
+ args->Append(std::move(arg)); |
std::string json_args; |
base::JSONWriter::Write(*args, &json_args); |
std::unique_ptr<Event> event( |