OLD | NEW |
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 "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/bind_helpers.h" | 8 #include "base/bind_helpers.h" |
9 #include "base/callback.h" | 9 #include "base/callback.h" |
10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
(...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
219 template <> | 219 template <> |
220 void BrowserContextKeyedAPIFactory<HistoryAPI>::DeclareFactoryDependencies() { | 220 void BrowserContextKeyedAPIFactory<HistoryAPI>::DeclareFactoryDependencies() { |
221 DependsOn(ActivityLog::GetFactoryInstance()); | 221 DependsOn(ActivityLog::GetFactoryInstance()); |
222 DependsOn(HistoryServiceFactory::GetInstance()); | 222 DependsOn(HistoryServiceFactory::GetInstance()); |
223 DependsOn(ExtensionsBrowserClient::Get()->GetExtensionSystemFactory()); | 223 DependsOn(ExtensionsBrowserClient::Get()->GetExtensionSystemFactory()); |
224 } | 224 } |
225 | 225 |
226 void HistoryAPI::OnListenerAdded(const EventListenerInfo& details) { | 226 void HistoryAPI::OnListenerAdded(const EventListenerInfo& details) { |
227 Profile* profile = Profile::FromBrowserContext(browser_context_); | 227 Profile* profile = Profile::FromBrowserContext(browser_context_); |
228 history_event_router_.reset(new HistoryEventRouter( | 228 history_event_router_.reset(new HistoryEventRouter( |
229 profile, | 229 profile, HistoryServiceFactory::GetForProfile( |
230 HistoryServiceFactory::GetForProfile(profile, Profile::EXPLICIT_ACCESS))); | 230 profile, ServiceAccessType::EXPLICIT_ACCESS))); |
231 EventRouter::Get(browser_context_)->UnregisterObserver(this); | 231 EventRouter::Get(browser_context_)->UnregisterObserver(this); |
232 } | 232 } |
233 | 233 |
234 bool HistoryFunction::ValidateUrl(const std::string& url_string, GURL* url) { | 234 bool HistoryFunction::ValidateUrl(const std::string& url_string, GURL* url) { |
235 GURL temp_url(url_string); | 235 GURL temp_url(url_string); |
236 if (!temp_url.is_valid()) { | 236 if (!temp_url.is_valid()) { |
237 error_ = kInvalidUrlError; | 237 error_ = kInvalidUrlError; |
238 return false; | 238 return false; |
239 } | 239 } |
240 url->Swap(&temp_url); | 240 url->Swap(&temp_url); |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
287 | 287 |
288 bool HistoryGetVisitsFunction::RunAsyncImpl() { | 288 bool HistoryGetVisitsFunction::RunAsyncImpl() { |
289 scoped_ptr<GetVisits::Params> params(GetVisits::Params::Create(*args_)); | 289 scoped_ptr<GetVisits::Params> params(GetVisits::Params::Create(*args_)); |
290 EXTENSION_FUNCTION_VALIDATE(params.get()); | 290 EXTENSION_FUNCTION_VALIDATE(params.get()); |
291 | 291 |
292 GURL url; | 292 GURL url; |
293 if (!ValidateUrl(params->details.url, &url)) | 293 if (!ValidateUrl(params->details.url, &url)) |
294 return false; | 294 return false; |
295 | 295 |
296 HistoryService* hs = HistoryServiceFactory::GetForProfile( | 296 HistoryService* hs = HistoryServiceFactory::GetForProfile( |
297 GetProfile(), Profile::EXPLICIT_ACCESS); | 297 GetProfile(), ServiceAccessType::EXPLICIT_ACCESS); |
298 hs->QueryURL(url, | 298 hs->QueryURL(url, |
299 true, // Retrieve full history of a URL. | 299 true, // Retrieve full history of a URL. |
300 base::Bind(&HistoryGetVisitsFunction::QueryComplete, | 300 base::Bind(&HistoryGetVisitsFunction::QueryComplete, |
301 base::Unretained(this)), | 301 base::Unretained(this)), |
302 &task_tracker_); | 302 &task_tracker_); |
303 return true; | 303 return true; |
304 } | 304 } |
305 | 305 |
306 void HistoryGetVisitsFunction::QueryComplete( | 306 void HistoryGetVisitsFunction::QueryComplete( |
307 bool success, | 307 bool success, |
(...skipping 24 matching lines...) Expand all Loading... |
332 options.max_count = 100; | 332 options.max_count = 100; |
333 | 333 |
334 if (params->query.start_time.get()) | 334 if (params->query.start_time.get()) |
335 options.begin_time = GetTime(*params->query.start_time); | 335 options.begin_time = GetTime(*params->query.start_time); |
336 if (params->query.end_time.get()) | 336 if (params->query.end_time.get()) |
337 options.end_time = GetTime(*params->query.end_time); | 337 options.end_time = GetTime(*params->query.end_time); |
338 if (params->query.max_results.get()) | 338 if (params->query.max_results.get()) |
339 options.max_count = *params->query.max_results; | 339 options.max_count = *params->query.max_results; |
340 | 340 |
341 HistoryService* hs = HistoryServiceFactory::GetForProfile( | 341 HistoryService* hs = HistoryServiceFactory::GetForProfile( |
342 GetProfile(), Profile::EXPLICIT_ACCESS); | 342 GetProfile(), ServiceAccessType::EXPLICIT_ACCESS); |
343 hs->QueryHistory(search_text, | 343 hs->QueryHistory(search_text, |
344 options, | 344 options, |
345 base::Bind(&HistorySearchFunction::SearchComplete, | 345 base::Bind(&HistorySearchFunction::SearchComplete, |
346 base::Unretained(this)), | 346 base::Unretained(this)), |
347 &task_tracker_); | 347 &task_tracker_); |
348 | 348 |
349 return true; | 349 return true; |
350 } | 350 } |
351 | 351 |
352 void HistorySearchFunction::SearchComplete(history::QueryResults* results) { | 352 void HistorySearchFunction::SearchComplete(history::QueryResults* results) { |
(...skipping 13 matching lines...) Expand all Loading... |
366 | 366 |
367 bool HistoryAddUrlFunction::RunAsync() { | 367 bool HistoryAddUrlFunction::RunAsync() { |
368 scoped_ptr<AddUrl::Params> params(AddUrl::Params::Create(*args_)); | 368 scoped_ptr<AddUrl::Params> params(AddUrl::Params::Create(*args_)); |
369 EXTENSION_FUNCTION_VALIDATE(params.get()); | 369 EXTENSION_FUNCTION_VALIDATE(params.get()); |
370 | 370 |
371 GURL url; | 371 GURL url; |
372 if (!ValidateUrl(params->details.url, &url)) | 372 if (!ValidateUrl(params->details.url, &url)) |
373 return false; | 373 return false; |
374 | 374 |
375 HistoryService* hs = HistoryServiceFactory::GetForProfile( | 375 HistoryService* hs = HistoryServiceFactory::GetForProfile( |
376 GetProfile(), Profile::EXPLICIT_ACCESS); | 376 GetProfile(), ServiceAccessType::EXPLICIT_ACCESS); |
377 hs->AddPage(url, base::Time::Now(), history::SOURCE_EXTENSION); | 377 hs->AddPage(url, base::Time::Now(), history::SOURCE_EXTENSION); |
378 | 378 |
379 SendResponse(true); | 379 SendResponse(true); |
380 return true; | 380 return true; |
381 } | 381 } |
382 | 382 |
383 bool HistoryDeleteUrlFunction::RunAsync() { | 383 bool HistoryDeleteUrlFunction::RunAsync() { |
384 scoped_ptr<DeleteUrl::Params> params(DeleteUrl::Params::Create(*args_)); | 384 scoped_ptr<DeleteUrl::Params> params(DeleteUrl::Params::Create(*args_)); |
385 EXTENSION_FUNCTION_VALIDATE(params.get()); | 385 EXTENSION_FUNCTION_VALIDATE(params.get()); |
386 | 386 |
387 if (!VerifyDeleteAllowed()) | 387 if (!VerifyDeleteAllowed()) |
388 return false; | 388 return false; |
389 | 389 |
390 GURL url; | 390 GURL url; |
391 if (!ValidateUrl(params->details.url, &url)) | 391 if (!ValidateUrl(params->details.url, &url)) |
392 return false; | 392 return false; |
393 | 393 |
394 HistoryService* hs = HistoryServiceFactory::GetForProfile( | 394 HistoryService* hs = HistoryServiceFactory::GetForProfile( |
395 GetProfile(), Profile::EXPLICIT_ACCESS); | 395 GetProfile(), ServiceAccessType::EXPLICIT_ACCESS); |
396 hs->DeleteURL(url); | 396 hs->DeleteURL(url); |
397 | 397 |
398 // Also clean out from the activity log. If the activity log testing flag is | 398 // Also clean out from the activity log. If the activity log testing flag is |
399 // set then don't clean so testers can see what potentially malicious | 399 // set then don't clean so testers can see what potentially malicious |
400 // extensions have been trying to clean from their logs. | 400 // extensions have been trying to clean from their logs. |
401 if (!base::CommandLine::ForCurrentProcess()->HasSwitch( | 401 if (!base::CommandLine::ForCurrentProcess()->HasSwitch( |
402 switches::kEnableExtensionActivityLogTesting)) { | 402 switches::kEnableExtensionActivityLogTesting)) { |
403 ActivityLog* activity_log = ActivityLog::GetInstance(GetProfile()); | 403 ActivityLog* activity_log = ActivityLog::GetInstance(GetProfile()); |
404 DCHECK(activity_log); | 404 DCHECK(activity_log); |
405 activity_log->RemoveURL(url); | 405 activity_log->RemoveURL(url); |
406 } | 406 } |
407 | 407 |
408 SendResponse(true); | 408 SendResponse(true); |
409 return true; | 409 return true; |
410 } | 410 } |
411 | 411 |
412 bool HistoryDeleteRangeFunction::RunAsyncImpl() { | 412 bool HistoryDeleteRangeFunction::RunAsyncImpl() { |
413 scoped_ptr<DeleteRange::Params> params(DeleteRange::Params::Create(*args_)); | 413 scoped_ptr<DeleteRange::Params> params(DeleteRange::Params::Create(*args_)); |
414 EXTENSION_FUNCTION_VALIDATE(params.get()); | 414 EXTENSION_FUNCTION_VALIDATE(params.get()); |
415 | 415 |
416 if (!VerifyDeleteAllowed()) | 416 if (!VerifyDeleteAllowed()) |
417 return false; | 417 return false; |
418 | 418 |
419 base::Time start_time = GetTime(params->range.start_time); | 419 base::Time start_time = GetTime(params->range.start_time); |
420 base::Time end_time = GetTime(params->range.end_time); | 420 base::Time end_time = GetTime(params->range.end_time); |
421 | 421 |
422 std::set<GURL> restrict_urls; | 422 std::set<GURL> restrict_urls; |
423 HistoryService* hs = HistoryServiceFactory::GetForProfile( | 423 HistoryService* hs = HistoryServiceFactory::GetForProfile( |
424 GetProfile(), Profile::EXPLICIT_ACCESS); | 424 GetProfile(), ServiceAccessType::EXPLICIT_ACCESS); |
425 hs->ExpireHistoryBetween( | 425 hs->ExpireHistoryBetween( |
426 restrict_urls, | 426 restrict_urls, |
427 start_time, | 427 start_time, |
428 end_time, | 428 end_time, |
429 base::Bind(&HistoryDeleteRangeFunction::DeleteComplete, | 429 base::Bind(&HistoryDeleteRangeFunction::DeleteComplete, |
430 base::Unretained(this)), | 430 base::Unretained(this)), |
431 &task_tracker_); | 431 &task_tracker_); |
432 | 432 |
433 // Also clean from the activity log unless in testing mode. | 433 // Also clean from the activity log unless in testing mode. |
434 if (!base::CommandLine::ForCurrentProcess()->HasSwitch( | 434 if (!base::CommandLine::ForCurrentProcess()->HasSwitch( |
435 switches::kEnableExtensionActivityLogTesting)) { | 435 switches::kEnableExtensionActivityLogTesting)) { |
436 ActivityLog* activity_log = ActivityLog::GetInstance(GetProfile()); | 436 ActivityLog* activity_log = ActivityLog::GetInstance(GetProfile()); |
437 DCHECK(activity_log); | 437 DCHECK(activity_log); |
438 activity_log->RemoveURLs(restrict_urls); | 438 activity_log->RemoveURLs(restrict_urls); |
439 } | 439 } |
440 | 440 |
441 return true; | 441 return true; |
442 } | 442 } |
443 | 443 |
444 void HistoryDeleteRangeFunction::DeleteComplete() { | 444 void HistoryDeleteRangeFunction::DeleteComplete() { |
445 SendAsyncResponse(); | 445 SendAsyncResponse(); |
446 } | 446 } |
447 | 447 |
448 bool HistoryDeleteAllFunction::RunAsyncImpl() { | 448 bool HistoryDeleteAllFunction::RunAsyncImpl() { |
449 if (!VerifyDeleteAllowed()) | 449 if (!VerifyDeleteAllowed()) |
450 return false; | 450 return false; |
451 | 451 |
452 std::set<GURL> restrict_urls; | 452 std::set<GURL> restrict_urls; |
453 HistoryService* hs = HistoryServiceFactory::GetForProfile( | 453 HistoryService* hs = HistoryServiceFactory::GetForProfile( |
454 GetProfile(), Profile::EXPLICIT_ACCESS); | 454 GetProfile(), ServiceAccessType::EXPLICIT_ACCESS); |
455 hs->ExpireHistoryBetween( | 455 hs->ExpireHistoryBetween( |
456 restrict_urls, | 456 restrict_urls, |
457 base::Time(), // Unbounded beginning... | 457 base::Time(), // Unbounded beginning... |
458 base::Time(), // ...and the end. | 458 base::Time(), // ...and the end. |
459 base::Bind(&HistoryDeleteAllFunction::DeleteComplete, | 459 base::Bind(&HistoryDeleteAllFunction::DeleteComplete, |
460 base::Unretained(this)), | 460 base::Unretained(this)), |
461 &task_tracker_); | 461 &task_tracker_); |
462 | 462 |
463 // Also clean from the activity log unless in testing mode. | 463 // Also clean from the activity log unless in testing mode. |
464 if (!base::CommandLine::ForCurrentProcess()->HasSwitch( | 464 if (!base::CommandLine::ForCurrentProcess()->HasSwitch( |
465 switches::kEnableExtensionActivityLogTesting)) { | 465 switches::kEnableExtensionActivityLogTesting)) { |
466 ActivityLog* activity_log = ActivityLog::GetInstance(GetProfile()); | 466 ActivityLog* activity_log = ActivityLog::GetInstance(GetProfile()); |
467 DCHECK(activity_log); | 467 DCHECK(activity_log); |
468 activity_log->RemoveURLs(restrict_urls); | 468 activity_log->RemoveURLs(restrict_urls); |
469 } | 469 } |
470 | 470 |
471 return true; | 471 return true; |
472 } | 472 } |
473 | 473 |
474 void HistoryDeleteAllFunction::DeleteComplete() { | 474 void HistoryDeleteAllFunction::DeleteComplete() { |
475 SendAsyncResponse(); | 475 SendAsyncResponse(); |
476 } | 476 } |
477 | 477 |
478 } // namespace extensions | 478 } // namespace extensions |
OLD | NEW |