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