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

Side by Side Diff: chrome/browser/extensions/api/downloads/downloads_api.cc

Issue 10694106: Added support for multiple parameters to Extension API callbacks. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Synced. Created 8 years, 5 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/downloads/downloads_api.h" 5 #include "chrome/browser/extensions/api/downloads/downloads_api.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <cctype> 8 #include <cctype>
9 #include <iterator> 9 #include <iterator>
10 #include <set> 10 #include <set>
(...skipping 538 matching lines...) Expand 10 before | Expand all | Expand 10 after
549 current_profile); 549 current_profile);
550 manager->DownloadUrl(download_params.Pass()); 550 manager->DownloadUrl(download_params.Pass());
551 RecordApiFunctions(DOWNLOADS_FUNCTION_DOWNLOAD); 551 RecordApiFunctions(DOWNLOADS_FUNCTION_DOWNLOAD);
552 return true; 552 return true;
553 } 553 }
554 554
555 void DownloadsDownloadFunction::OnStarted(DownloadId dl_id, net::Error error) { 555 void DownloadsDownloadFunction::OnStarted(DownloadId dl_id, net::Error error) {
556 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 556 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
557 VLOG(1) << __FUNCTION__ << " " << dl_id << " " << error; 557 VLOG(1) << __FUNCTION__ << " " << dl_id << " " << error;
558 if (dl_id.local() >= 0) { 558 if (dl_id.local() >= 0) {
559 result_.reset(base::Value::CreateIntegerValue(dl_id.local())); 559 SetResult(base::Value::CreateIntegerValue(dl_id.local()));
560 } else { 560 } else {
561 error_ = net::ErrorToString(error); 561 error_ = net::ErrorToString(error);
562 } 562 }
563 SendResponse(error_.empty()); 563 SendResponse(error_.empty());
564 } 564 }
565 565
566 DownloadsSearchFunction::DownloadsSearchFunction() {} 566 DownloadsSearchFunction::DownloadsSearchFunction() {}
567 DownloadsSearchFunction::~DownloadsSearchFunction() {} 567 DownloadsSearchFunction::~DownloadsSearchFunction() {}
568 568
569 bool DownloadsSearchFunction::RunImpl() { 569 bool DownloadsSearchFunction::RunImpl() {
570 scoped_ptr<extensions::api::downloads::Search::Params> params( 570 scoped_ptr<extensions::api::downloads::Search::Params> params(
571 extensions::api::downloads::Search::Params::Create(*args_)); 571 extensions::api::downloads::Search::Params::Create(*args_));
572 EXTENSION_FUNCTION_VALIDATE(params.get()); 572 EXTENSION_FUNCTION_VALIDATE(params.get());
573 DownloadQuery::DownloadVector results; 573 DownloadQuery::DownloadVector results;
574 RunDownloadQuery(params->query, profile(), include_incognito(), 574 RunDownloadQuery(params->query, profile(), include_incognito(),
575 &error_, &results); 575 &error_, &results);
576 if (!error_.empty()) 576 if (!error_.empty())
577 return false; 577 return false;
578 base::ListValue* json_results = new base::ListValue(); 578 base::ListValue* json_results = new base::ListValue();
579 for (DownloadManager::DownloadVector::const_iterator it = results.begin(); 579 for (DownloadManager::DownloadVector::const_iterator it = results.begin();
580 it != results.end(); ++it) { 580 it != results.end(); ++it) {
581 scoped_ptr<base::DictionaryValue> item(DownloadItemToJSON(*it)); 581 scoped_ptr<base::DictionaryValue> item(DownloadItemToJSON(*it));
582 json_results->Append(item.release()); 582 json_results->Append(item.release());
583 } 583 }
584 result_.reset(json_results); 584 SetResult(json_results);
585 RecordApiFunctions(DOWNLOADS_FUNCTION_SEARCH); 585 RecordApiFunctions(DOWNLOADS_FUNCTION_SEARCH);
586 return true; 586 return true;
587 } 587 }
588 588
589 DownloadsPauseFunction::DownloadsPauseFunction() {} 589 DownloadsPauseFunction::DownloadsPauseFunction() {}
590 DownloadsPauseFunction::~DownloadsPauseFunction() {} 590 DownloadsPauseFunction::~DownloadsPauseFunction() {}
591 591
592 bool DownloadsPauseFunction::RunImpl() { 592 bool DownloadsPauseFunction::RunImpl() {
593 scoped_ptr<extensions::api::downloads::Pause::Params> params( 593 scoped_ptr<extensions::api::downloads::Pause::Params> params(
594 extensions::api::downloads::Pause::Params::Create(*args_)); 594 extensions::api::downloads::Pause::Params::Create(*args_));
(...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after
774 base::Bind(&DownloadsGetFileIconFunction::OnIconURLExtracted, this))); 774 base::Bind(&DownloadsGetFileIconFunction::OnIconURLExtracted, this)));
775 return true; 775 return true;
776 } 776 }
777 777
778 void DownloadsGetFileIconFunction::OnIconURLExtracted(const std::string& url) { 778 void DownloadsGetFileIconFunction::OnIconURLExtracted(const std::string& url) {
779 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 779 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
780 if (url.empty()) { 780 if (url.empty()) {
781 error_ = download_extension_errors::kIconNotFoundError; 781 error_ = download_extension_errors::kIconNotFoundError;
782 } else { 782 } else {
783 RecordApiFunctions(DOWNLOADS_FUNCTION_GET_FILE_ICON); 783 RecordApiFunctions(DOWNLOADS_FUNCTION_GET_FILE_ICON);
784 result_.reset(base::Value::CreateStringValue(url)); 784 SetResult(base::Value::CreateStringValue(url));
785 } 785 }
786 SendResponse(error_.empty()); 786 SendResponse(error_.empty());
787 } 787 }
788 788
789 ExtensionDownloadsEventRouter::ExtensionDownloadsEventRouter( 789 ExtensionDownloadsEventRouter::ExtensionDownloadsEventRouter(
790 Profile* profile, 790 Profile* profile,
791 DownloadManager* manager) 791 DownloadManager* manager)
792 : profile_(profile), 792 : profile_(profile),
793 manager_(manager) { 793 manager_(manager) {
794 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 794 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
(...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after
965 extensions::EventFilteringInfo()); 965 extensions::EventFilteringInfo());
966 966
967 DownloadsNotificationSource notification_source; 967 DownloadsNotificationSource notification_source;
968 notification_source.event_name = event_name; 968 notification_source.event_name = event_name;
969 notification_source.profile = profile_; 969 notification_source.profile = profile_;
970 content::NotificationService::current()->Notify( 970 content::NotificationService::current()->Notify(
971 chrome::NOTIFICATION_EXTENSION_DOWNLOADS_EVENT, 971 chrome::NOTIFICATION_EXTENSION_DOWNLOADS_EVENT,
972 content::Source<DownloadsNotificationSource>(&notification_source), 972 content::Source<DownloadsNotificationSource>(&notification_source),
973 content::Details<std::string>(&json_args)); 973 content::Details<std::string>(&json_args));
974 } 974 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698