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

Side by Side Diff: chrome/browser/extensions/api/history/history_api.cc

Issue 1871713002: Convert //chrome/browser/extensions from scoped_ptr to std::unique_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase and fix header Created 4 years, 8 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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "chrome/browser/extensions/api/history/history_api.h" 5 #include "chrome/browser/extensions/api/history/history_api.h"
6 6
7 #include <memory>
7 #include <utility> 8 #include <utility>
8 9
9 #include "base/bind.h" 10 #include "base/bind.h"
10 #include "base/bind_helpers.h" 11 #include "base/bind_helpers.h"
11 #include "base/callback.h" 12 #include "base/callback.h"
12 #include "base/command_line.h" 13 #include "base/command_line.h"
13 #include "base/json/json_writer.h" 14 #include "base/json/json_writer.h"
14 #include "base/lazy_instance.h" 15 #include "base/lazy_instance.h"
15 #include "base/location.h" 16 #include "base/location.h"
16 #include "base/memory/scoped_ptr.h"
17 #include "base/single_thread_task_runner.h" 17 #include "base/single_thread_task_runner.h"
18 #include "base/strings/string_number_conversions.h" 18 #include "base/strings/string_number_conversions.h"
19 #include "base/strings/utf_string_conversions.h" 19 #include "base/strings/utf_string_conversions.h"
20 #include "base/task/cancelable_task_tracker.h" 20 #include "base/task/cancelable_task_tracker.h"
21 #include "base/thread_task_runner_handle.h" 21 #include "base/thread_task_runner_handle.h"
22 #include "base/time/time.h" 22 #include "base/time/time.h"
23 #include "base/values.h" 23 #include "base/values.h"
24 #include "chrome/browser/extensions/activity_log/activity_log.h" 24 #include "chrome/browser/extensions/activity_log/activity_log.h"
25 #include "chrome/browser/history/history_service_factory.h" 25 #include "chrome/browser/history/history_service_factory.h"
26 #include "chrome/browser/profiles/profile.h" 26 #include "chrome/browser/profiles/profile.h"
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
136 } 136 }
137 137
138 HistoryEventRouter::~HistoryEventRouter() { 138 HistoryEventRouter::~HistoryEventRouter() {
139 } 139 }
140 140
141 void HistoryEventRouter::OnURLVisited(history::HistoryService* history_service, 141 void HistoryEventRouter::OnURLVisited(history::HistoryService* history_service,
142 ui::PageTransition transition, 142 ui::PageTransition transition,
143 const history::URLRow& row, 143 const history::URLRow& row,
144 const history::RedirectList& redirects, 144 const history::RedirectList& redirects,
145 base::Time visit_time) { 145 base::Time visit_time) {
146 scoped_ptr<base::ListValue> args = OnVisited::Create(GetHistoryItem(row)); 146 std::unique_ptr<base::ListValue> args =
147 OnVisited::Create(GetHistoryItem(row));
147 DispatchEvent(profile_, events::HISTORY_ON_VISITED, 148 DispatchEvent(profile_, events::HISTORY_ON_VISITED,
148 api::history::OnVisited::kEventName, std::move(args)); 149 api::history::OnVisited::kEventName, std::move(args));
149 } 150 }
150 151
151 void HistoryEventRouter::OnURLsDeleted(history::HistoryService* history_service, 152 void HistoryEventRouter::OnURLsDeleted(history::HistoryService* history_service,
152 bool all_history, 153 bool all_history,
153 bool expired, 154 bool expired,
154 const history::URLRows& deleted_rows, 155 const history::URLRows& deleted_rows,
155 const std::set<GURL>& favicon_urls) { 156 const std::set<GURL>& favicon_urls) {
156 OnVisitRemoved::Removed removed; 157 OnVisitRemoved::Removed removed;
157 removed.all_history = all_history; 158 removed.all_history = all_history;
158 159
159 std::vector<std::string>* urls = new std::vector<std::string>(); 160 std::vector<std::string>* urls = new std::vector<std::string>();
160 for (const auto& row : deleted_rows) 161 for (const auto& row : deleted_rows)
161 urls->push_back(row.url().spec()); 162 urls->push_back(row.url().spec());
162 removed.urls.reset(urls); 163 removed.urls.reset(urls);
163 164
164 scoped_ptr<base::ListValue> args = OnVisitRemoved::Create(removed); 165 std::unique_ptr<base::ListValue> args = OnVisitRemoved::Create(removed);
165 DispatchEvent(profile_, events::HISTORY_ON_VISIT_REMOVED, 166 DispatchEvent(profile_, events::HISTORY_ON_VISIT_REMOVED,
166 api::history::OnVisitRemoved::kEventName, std::move(args)); 167 api::history::OnVisitRemoved::kEventName, std::move(args));
167 } 168 }
168 169
169 void HistoryEventRouter::DispatchEvent(Profile* profile, 170 void HistoryEventRouter::DispatchEvent(
170 events::HistogramValue histogram_value, 171 Profile* profile,
171 const std::string& event_name, 172 events::HistogramValue histogram_value,
172 scoped_ptr<base::ListValue> event_args) { 173 const std::string& event_name,
174 std::unique_ptr<base::ListValue> event_args) {
173 if (profile && EventRouter::Get(profile)) { 175 if (profile && EventRouter::Get(profile)) {
174 scoped_ptr<Event> event( 176 std::unique_ptr<Event> event(
175 new Event(histogram_value, event_name, std::move(event_args))); 177 new Event(histogram_value, event_name, std::move(event_args)));
176 event->restrict_to_browser_context = profile; 178 event->restrict_to_browser_context = profile;
177 EventRouter::Get(profile)->BroadcastEvent(std::move(event)); 179 EventRouter::Get(profile)->BroadcastEvent(std::move(event));
178 } 180 }
179 } 181 }
180 182
181 HistoryAPI::HistoryAPI(content::BrowserContext* context) 183 HistoryAPI::HistoryAPI(content::BrowserContext* context)
182 : browser_context_(context) { 184 : browser_context_(context) {
183 EventRouter* event_router = EventRouter::Get(browser_context_); 185 EventRouter* event_router = EventRouter::Get(browser_context_);
184 event_router->RegisterObserver(this, api::history::OnVisited::kEventName); 186 event_router->RegisterObserver(this, api::history::OnVisited::kEventName);
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
265 FROM_HERE, 267 FROM_HERE,
266 base::Bind(&HistoryFunctionWithCallback::SendResponseToCallback, this)); 268 base::Bind(&HistoryFunctionWithCallback::SendResponseToCallback, this));
267 } 269 }
268 270
269 void HistoryFunctionWithCallback::SendResponseToCallback() { 271 void HistoryFunctionWithCallback::SendResponseToCallback() {
270 SendResponse(true); 272 SendResponse(true);
271 Release(); // Balanced in RunAsync(). 273 Release(); // Balanced in RunAsync().
272 } 274 }
273 275
274 bool HistoryGetVisitsFunction::RunAsyncImpl() { 276 bool HistoryGetVisitsFunction::RunAsyncImpl() {
275 scoped_ptr<GetVisits::Params> params(GetVisits::Params::Create(*args_)); 277 std::unique_ptr<GetVisits::Params> params(GetVisits::Params::Create(*args_));
276 EXTENSION_FUNCTION_VALIDATE(params.get()); 278 EXTENSION_FUNCTION_VALIDATE(params.get());
277 279
278 GURL url; 280 GURL url;
279 if (!ValidateUrl(params->details.url, &url)) 281 if (!ValidateUrl(params->details.url, &url))
280 return false; 282 return false;
281 283
282 history::HistoryService* hs = HistoryServiceFactory::GetForProfile( 284 history::HistoryService* hs = HistoryServiceFactory::GetForProfile(
283 GetProfile(), ServiceAccessType::EXPLICIT_ACCESS); 285 GetProfile(), ServiceAccessType::EXPLICIT_ACCESS);
284 hs->QueryURL(url, 286 hs->QueryURL(url,
285 true, // Retrieve full history of a URL. 287 true, // Retrieve full history of a URL.
(...skipping 11 matching lines...) Expand all
297 if (success && !visits.empty()) { 299 if (success && !visits.empty()) {
298 for (const history::VisitRow& visit : visits) 300 for (const history::VisitRow& visit : visits)
299 visit_item_vec.push_back(GetVisitItem(visit)); 301 visit_item_vec.push_back(GetVisitItem(visit));
300 } 302 }
301 303
302 results_ = GetVisits::Results::Create(visit_item_vec); 304 results_ = GetVisits::Results::Create(visit_item_vec);
303 SendAsyncResponse(); 305 SendAsyncResponse();
304 } 306 }
305 307
306 bool HistorySearchFunction::RunAsyncImpl() { 308 bool HistorySearchFunction::RunAsyncImpl() {
307 scoped_ptr<Search::Params> params(Search::Params::Create(*args_)); 309 std::unique_ptr<Search::Params> params(Search::Params::Create(*args_));
308 EXTENSION_FUNCTION_VALIDATE(params.get()); 310 EXTENSION_FUNCTION_VALIDATE(params.get());
309 311
310 base::string16 search_text = base::UTF8ToUTF16(params->query.text); 312 base::string16 search_text = base::UTF8ToUTF16(params->query.text);
311 313
312 history::QueryOptions options; 314 history::QueryOptions options;
313 options.SetRecentDayRange(1); 315 options.SetRecentDayRange(1);
314 options.max_count = 100; 316 options.max_count = 100;
315 317
316 if (params->query.start_time.get()) 318 if (params->query.start_time.get())
317 options.begin_time = GetTime(*params->query.start_time); 319 options.begin_time = GetTime(*params->query.start_time);
(...skipping 17 matching lines...) Expand all
335 HistoryItemList history_item_vec; 337 HistoryItemList history_item_vec;
336 if (results && !results->empty()) { 338 if (results && !results->empty()) {
337 for (const history::URLResult* item : *results) 339 for (const history::URLResult* item : *results)
338 history_item_vec.push_back(GetHistoryItem(*item)); 340 history_item_vec.push_back(GetHistoryItem(*item));
339 } 341 }
340 results_ = Search::Results::Create(history_item_vec); 342 results_ = Search::Results::Create(history_item_vec);
341 SendAsyncResponse(); 343 SendAsyncResponse();
342 } 344 }
343 345
344 bool HistoryAddUrlFunction::RunAsync() { 346 bool HistoryAddUrlFunction::RunAsync() {
345 scoped_ptr<AddUrl::Params> params(AddUrl::Params::Create(*args_)); 347 std::unique_ptr<AddUrl::Params> params(AddUrl::Params::Create(*args_));
346 EXTENSION_FUNCTION_VALIDATE(params.get()); 348 EXTENSION_FUNCTION_VALIDATE(params.get());
347 349
348 GURL url; 350 GURL url;
349 if (!ValidateUrl(params->details.url, &url)) 351 if (!ValidateUrl(params->details.url, &url))
350 return false; 352 return false;
351 353
352 history::HistoryService* hs = HistoryServiceFactory::GetForProfile( 354 history::HistoryService* hs = HistoryServiceFactory::GetForProfile(
353 GetProfile(), ServiceAccessType::EXPLICIT_ACCESS); 355 GetProfile(), ServiceAccessType::EXPLICIT_ACCESS);
354 hs->AddPage(url, base::Time::Now(), history::SOURCE_EXTENSION); 356 hs->AddPage(url, base::Time::Now(), history::SOURCE_EXTENSION);
355 357
356 SendResponse(true); 358 SendResponse(true);
357 return true; 359 return true;
358 } 360 }
359 361
360 bool HistoryDeleteUrlFunction::RunAsync() { 362 bool HistoryDeleteUrlFunction::RunAsync() {
361 scoped_ptr<DeleteUrl::Params> params(DeleteUrl::Params::Create(*args_)); 363 std::unique_ptr<DeleteUrl::Params> params(DeleteUrl::Params::Create(*args_));
362 EXTENSION_FUNCTION_VALIDATE(params.get()); 364 EXTENSION_FUNCTION_VALIDATE(params.get());
363 365
364 if (!VerifyDeleteAllowed()) 366 if (!VerifyDeleteAllowed())
365 return false; 367 return false;
366 368
367 GURL url; 369 GURL url;
368 if (!ValidateUrl(params->details.url, &url)) 370 if (!ValidateUrl(params->details.url, &url))
369 return false; 371 return false;
370 372
371 history::HistoryService* hs = HistoryServiceFactory::GetForProfile( 373 history::HistoryService* hs = HistoryServiceFactory::GetForProfile(
372 GetProfile(), ServiceAccessType::EXPLICIT_ACCESS); 374 GetProfile(), ServiceAccessType::EXPLICIT_ACCESS);
373 hs->DeleteURL(url); 375 hs->DeleteURL(url);
374 376
375 // Also clean out from the activity log. If the activity log testing flag is 377 // Also clean out from the activity log. If the activity log testing flag is
376 // set then don't clean so testers can see what potentially malicious 378 // set then don't clean so testers can see what potentially malicious
377 // extensions have been trying to clean from their logs. 379 // extensions have been trying to clean from their logs.
378 if (!base::CommandLine::ForCurrentProcess()->HasSwitch( 380 if (!base::CommandLine::ForCurrentProcess()->HasSwitch(
379 switches::kEnableExtensionActivityLogTesting)) { 381 switches::kEnableExtensionActivityLogTesting)) {
380 ActivityLog* activity_log = ActivityLog::GetInstance(GetProfile()); 382 ActivityLog* activity_log = ActivityLog::GetInstance(GetProfile());
381 DCHECK(activity_log); 383 DCHECK(activity_log);
382 activity_log->RemoveURL(url); 384 activity_log->RemoveURL(url);
383 } 385 }
384 386
385 SendResponse(true); 387 SendResponse(true);
386 return true; 388 return true;
387 } 389 }
388 390
389 bool HistoryDeleteRangeFunction::RunAsyncImpl() { 391 bool HistoryDeleteRangeFunction::RunAsyncImpl() {
390 scoped_ptr<DeleteRange::Params> params(DeleteRange::Params::Create(*args_)); 392 std::unique_ptr<DeleteRange::Params> params(
393 DeleteRange::Params::Create(*args_));
391 EXTENSION_FUNCTION_VALIDATE(params.get()); 394 EXTENSION_FUNCTION_VALIDATE(params.get());
392 395
393 if (!VerifyDeleteAllowed()) 396 if (!VerifyDeleteAllowed())
394 return false; 397 return false;
395 398
396 base::Time start_time = GetTime(params->range.start_time); 399 base::Time start_time = GetTime(params->range.start_time);
397 base::Time end_time = GetTime(params->range.end_time); 400 base::Time end_time = GetTime(params->range.end_time);
398 401
399 std::set<GURL> restrict_urls; 402 std::set<GURL> restrict_urls;
400 history::HistoryService* hs = HistoryServiceFactory::GetForProfile( 403 history::HistoryService* hs = HistoryServiceFactory::GetForProfile(
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
446 } 449 }
447 450
448 return true; 451 return true;
449 } 452 }
450 453
451 void HistoryDeleteAllFunction::DeleteComplete() { 454 void HistoryDeleteAllFunction::DeleteComplete() {
452 SendAsyncResponse(); 455 SendAsyncResponse();
453 } 456 }
454 457
455 } // namespace extensions 458 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698