OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/ui/webui/downloads_dom_handler.h" | 5 #include "chrome/browser/ui/webui/downloads_dom_handler.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <functional> | 8 #include <functional> |
9 | 9 |
10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
11 #include "base/callback.h" | 11 #include "base/bind.h" |
| 12 #include "base/bind_helpers.h" |
12 #include "base/memory/singleton.h" | 13 #include "base/memory/singleton.h" |
13 #include "base/metrics/histogram.h" | 14 #include "base/metrics/histogram.h" |
14 #include "base/string_piece.h" | 15 #include "base/string_piece.h" |
15 #include "base/threading/thread.h" | 16 #include "base/threading/thread.h" |
16 #include "base/utf_string_conversions.h" | 17 #include "base/utf_string_conversions.h" |
17 #include "base/values.h" | 18 #include "base/values.h" |
18 #include "chrome/browser/browser_process.h" | 19 #include "chrome/browser/browser_process.h" |
19 #include "chrome/browser/download/chrome_download_manager_delegate.h" | 20 #include "chrome/browser/download/chrome_download_manager_delegate.h" |
20 #include "chrome/browser/download/download_history.h" | 21 #include "chrome/browser/download/download_history.h" |
21 #include "chrome/browser/download/download_prefs.h" | 22 #include "chrome/browser/download/download_prefs.h" |
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
136 Profile::FromBrowserContext(download_manager_->browser_context()); | 137 Profile::FromBrowserContext(download_manager_->browser_context()); |
137 Profile* original_profile = profile->GetOriginalProfile(); | 138 Profile* original_profile = profile->GetOriginalProfile(); |
138 if (original_profile != profile) { | 139 if (original_profile != profile) { |
139 original_download_manager_observer_.reset( | 140 original_download_manager_observer_.reset( |
140 new OriginalDownloadManagerObserver(this, original_profile)); | 141 new OriginalDownloadManagerObserver(this, original_profile)); |
141 } | 142 } |
142 } | 143 } |
143 | 144 |
144 void DownloadsDOMHandler::RegisterMessages() { | 145 void DownloadsDOMHandler::RegisterMessages() { |
145 web_ui_->RegisterMessageCallback("getDownloads", | 146 web_ui_->RegisterMessageCallback("getDownloads", |
146 NewCallback(this, &DownloadsDOMHandler::HandleGetDownloads)); | 147 base::Bind(&DownloadsDOMHandler::HandleGetDownloads, |
| 148 base::Unretained(this))); |
147 web_ui_->RegisterMessageCallback("openFile", | 149 web_ui_->RegisterMessageCallback("openFile", |
148 NewCallback(this, &DownloadsDOMHandler::HandleOpenFile)); | 150 base::Bind(&DownloadsDOMHandler::HandleOpenFile, |
149 | 151 base::Unretained(this))); |
150 web_ui_->RegisterMessageCallback("drag", | 152 web_ui_->RegisterMessageCallback("drag", |
151 NewCallback(this, &DownloadsDOMHandler::HandleDrag)); | 153 base::Bind(&DownloadsDOMHandler::HandleDrag, |
152 | 154 base::Unretained(this))); |
153 web_ui_->RegisterMessageCallback("saveDangerous", | 155 web_ui_->RegisterMessageCallback("saveDangerous", |
154 NewCallback(this, &DownloadsDOMHandler::HandleSaveDangerous)); | 156 base::Bind(&DownloadsDOMHandler::HandleSaveDangerous, |
| 157 base::Unretained(this))); |
155 web_ui_->RegisterMessageCallback("discardDangerous", | 158 web_ui_->RegisterMessageCallback("discardDangerous", |
156 NewCallback(this, &DownloadsDOMHandler::HandleDiscardDangerous)); | 159 base::Bind(&DownloadsDOMHandler::HandleDiscardDangerous, |
| 160 base::Unretained(this))); |
157 web_ui_->RegisterMessageCallback("show", | 161 web_ui_->RegisterMessageCallback("show", |
158 NewCallback(this, &DownloadsDOMHandler::HandleShow)); | 162 base::Bind(&DownloadsDOMHandler::HandleShow, |
| 163 base::Unretained(this))); |
159 web_ui_->RegisterMessageCallback("togglepause", | 164 web_ui_->RegisterMessageCallback("togglepause", |
160 NewCallback(this, &DownloadsDOMHandler::HandlePause)); | 165 base::Bind(&DownloadsDOMHandler::HandlePause, |
| 166 base::Unretained(this))); |
161 web_ui_->RegisterMessageCallback("resume", | 167 web_ui_->RegisterMessageCallback("resume", |
162 NewCallback(this, &DownloadsDOMHandler::HandlePause)); | 168 base::Bind(&DownloadsDOMHandler::HandlePause, |
| 169 base::Unretained(this))); |
163 web_ui_->RegisterMessageCallback("remove", | 170 web_ui_->RegisterMessageCallback("remove", |
164 NewCallback(this, &DownloadsDOMHandler::HandleRemove)); | 171 base::Bind(&DownloadsDOMHandler::HandleRemove, |
| 172 base::Unretained(this))); |
165 web_ui_->RegisterMessageCallback("cancel", | 173 web_ui_->RegisterMessageCallback("cancel", |
166 NewCallback(this, &DownloadsDOMHandler::HandleCancel)); | 174 base::Bind(&DownloadsDOMHandler::HandleCancel, |
| 175 base::Unretained(this))); |
167 web_ui_->RegisterMessageCallback("clearAll", | 176 web_ui_->RegisterMessageCallback("clearAll", |
168 NewCallback(this, &DownloadsDOMHandler::HandleClearAll)); | 177 base::Bind(&DownloadsDOMHandler::HandleClearAll, |
| 178 base::Unretained(this))); |
169 web_ui_->RegisterMessageCallback("openDownloadsFolder", | 179 web_ui_->RegisterMessageCallback("openDownloadsFolder", |
170 NewCallback(this, &DownloadsDOMHandler::HandleOpenDownloadsFolder)); | 180 base::Bind(&DownloadsDOMHandler::HandleOpenDownloadsFolder, |
| 181 base::Unretained(this))); |
171 } | 182 } |
172 | 183 |
173 void DownloadsDOMHandler::OnDownloadUpdated(DownloadItem* download) { | 184 void DownloadsDOMHandler::OnDownloadUpdated(DownloadItem* download) { |
174 // Get the id for the download. Our downloads are sorted latest to first, | 185 // Get the id for the download. Our downloads are sorted latest to first, |
175 // and the id is the index into that list. We should be careful of sync | 186 // and the id is the index into that list. We should be careful of sync |
176 // errors between the UI and the download_items_ list (we may wish to use | 187 // errors between the UI and the download_items_ list (we may wish to use |
177 // something other than 'id'). | 188 // something other than 'id'). |
178 OrderedDownloads::iterator it = find(download_items_.begin(), | 189 OrderedDownloads::iterator it = find(download_items_.begin(), |
179 download_items_.end(), | 190 download_items_.end(), |
180 download); | 191 download); |
(...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
385 return NULL; | 396 return NULL; |
386 } | 397 } |
387 | 398 |
388 DownloadItem* DownloadsDOMHandler::GetDownloadByValue(const ListValue* args) { | 399 DownloadItem* DownloadsDOMHandler::GetDownloadByValue(const ListValue* args) { |
389 int id; | 400 int id; |
390 if (ExtractIntegerValue(args, &id)) { | 401 if (ExtractIntegerValue(args, &id)) { |
391 return GetDownloadById(id); | 402 return GetDownloadById(id); |
392 } | 403 } |
393 return NULL; | 404 return NULL; |
394 } | 405 } |
OLD | NEW |