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/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 663 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
674 filename_change_.Run(determined_filename_, conflict_action); | 674 filename_change_.Run(determined_filename_, conflict_action); |
675 } | 675 } |
676 } | 676 } |
677 // Don't clear determiners_ immediately in case there's a second listener | 677 // Don't clear determiners_ immediately in case there's a second listener |
678 // for one of the extensions, so that DetermineFilename can return | 678 // for one of the extensions, so that DetermineFilename can return |
679 // kTooManyListenersError. After a few seconds, DetermineFilename will | 679 // kTooManyListenersError. After a few seconds, DetermineFilename will |
680 // return kInvalidOperationError instead of kTooManyListenersError so that | 680 // return kInvalidOperationError instead of kTooManyListenersError so that |
681 // determiners_ doesn't keep hogging memory. | 681 // determiners_ doesn't keep hogging memory. |
682 weak_ptr_factory_.reset( | 682 weak_ptr_factory_.reset( |
683 new base::WeakPtrFactory<ExtensionDownloadsEventRouterData>(this)); | 683 new base::WeakPtrFactory<ExtensionDownloadsEventRouterData>(this)); |
684 MessageLoopForUI::current()->PostDelayedTask( | 684 base::MessageLoopForUI::current()->PostDelayedTask( |
685 FROM_HERE, | 685 FROM_HERE, |
686 base::Bind(&ExtensionDownloadsEventRouterData::ClearPendingDeterminers, | 686 base::Bind(&ExtensionDownloadsEventRouterData::ClearPendingDeterminers, |
687 weak_ptr_factory_->GetWeakPtr()), | 687 weak_ptr_factory_->GetWeakPtr()), |
688 base::TimeDelta::FromSeconds(30)); | 688 base::TimeDelta::FromSeconds(30)); |
689 } | 689 } |
690 | 690 |
691 int updated_; | 691 int updated_; |
692 int changed_fired_; | 692 int changed_fired_; |
693 scoped_ptr<base::DictionaryValue> json_; | 693 scoped_ptr<base::DictionaryValue> json_; |
694 | 694 |
(...skipping 436 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1131 if (!download_item || !web_contents) { | 1131 if (!download_item || !web_contents) { |
1132 error_ = download_extension_errors::kInvalidOperationError; | 1132 error_ = download_extension_errors::kInvalidOperationError; |
1133 return false; | 1133 return false; |
1134 } | 1134 } |
1135 RecordApiFunctions(DOWNLOADS_FUNCTION_DRAG); | 1135 RecordApiFunctions(DOWNLOADS_FUNCTION_DRAG); |
1136 gfx::Image* icon = g_browser_process->icon_manager()->LookupIconFromFilepath( | 1136 gfx::Image* icon = g_browser_process->icon_manager()->LookupIconFromFilepath( |
1137 download_item->GetTargetFilePath(), IconLoader::NORMAL); | 1137 download_item->GetTargetFilePath(), IconLoader::NORMAL); |
1138 gfx::NativeView view = web_contents->GetView()->GetNativeView(); | 1138 gfx::NativeView view = web_contents->GetView()->GetNativeView(); |
1139 { | 1139 { |
1140 // Enable nested tasks during DnD, while |DragDownload()| blocks. | 1140 // Enable nested tasks during DnD, while |DragDownload()| blocks. |
1141 MessageLoop::ScopedNestableTaskAllower allow(MessageLoop::current()); | 1141 base::MessageLoop::ScopedNestableTaskAllower allow( |
| 1142 base::MessageLoop::current()); |
1142 download_util::DragDownload(download_item, icon, view); | 1143 download_util::DragDownload(download_item, icon, view); |
1143 } | 1144 } |
1144 return true; | 1145 return true; |
1145 } | 1146 } |
1146 | 1147 |
1147 DownloadsGetFileIconFunction::DownloadsGetFileIconFunction() | 1148 DownloadsGetFileIconFunction::DownloadsGetFileIconFunction() |
1148 : icon_extractor_(new DownloadFileIconExtractorImpl()) { | 1149 : icon_extractor_(new DownloadFileIconExtractorImpl()) { |
1149 } | 1150 } |
1150 | 1151 |
1151 DownloadsGetFileIconFunction::~DownloadsGetFileIconFunction() {} | 1152 DownloadsGetFileIconFunction::~DownloadsGetFileIconFunction() {} |
(...skipping 348 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1500 DownloadsNotificationSource notification_source; | 1501 DownloadsNotificationSource notification_source; |
1501 notification_source.event_name = event_name; | 1502 notification_source.event_name = event_name; |
1502 notification_source.profile = profile_; | 1503 notification_source.profile = profile_; |
1503 content::Source<DownloadsNotificationSource> content_source( | 1504 content::Source<DownloadsNotificationSource> content_source( |
1504 ¬ification_source); | 1505 ¬ification_source); |
1505 content::NotificationService::current()->Notify( | 1506 content::NotificationService::current()->Notify( |
1506 chrome::NOTIFICATION_EXTENSION_DOWNLOADS_EVENT, | 1507 chrome::NOTIFICATION_EXTENSION_DOWNLOADS_EVENT, |
1507 content_source, | 1508 content_source, |
1508 content::Details<std::string>(&json_args)); | 1509 content::Details<std::string>(&json_args)); |
1509 } | 1510 } |
OLD | NEW |