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 "content/browser/download/download_manager_impl.h" | 5 #include "content/browser/download/download_manager_impl.h" |
6 | 6 |
7 #include <iterator> | 7 #include <iterator> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/callback.h" | 10 #include "base/callback.h" |
(...skipping 336 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
347 // We'll have nothing more to report to the observers after this point. | 347 // We'll have nothing more to report to the observers after this point. |
348 observers_.Clear(); | 348 observers_.Clear(); |
349 | 349 |
350 if (delegate_) | 350 if (delegate_) |
351 delegate_->Shutdown(); | 351 delegate_->Shutdown(); |
352 delegate_ = NULL; | 352 delegate_ = NULL; |
353 } | 353 } |
354 | 354 |
355 void DownloadManagerImpl::StartDownload( | 355 void DownloadManagerImpl::StartDownload( |
356 scoped_ptr<DownloadCreateInfo> info, | 356 scoped_ptr<DownloadCreateInfo> info, |
357 scoped_ptr<ByteStreamReader> stream, | 357 scoped_ptr<ByteStreamReader<DownloadInterruptReason> > stream, |
358 const DownloadUrlParameters::OnStartedCallback& on_started) { | 358 const DownloadUrlParameters::OnStartedCallback& on_started) { |
359 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 359 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
360 DCHECK(info); | 360 DCHECK(info); |
361 uint32 download_id = info->download_id; | 361 uint32 download_id = info->download_id; |
362 const bool new_download = (download_id == content::DownloadItem::kInvalidId); | 362 const bool new_download = (download_id == content::DownloadItem::kInvalidId); |
363 base::Callback<void(uint32)> got_id(base::Bind( | 363 base::Callback<void(uint32)> got_id(base::Bind( |
364 &DownloadManagerImpl::StartDownloadWithId, | 364 &DownloadManagerImpl::StartDownloadWithId, |
365 weak_factory_.GetWeakPtr(), | 365 weak_factory_.GetWeakPtr(), |
366 base::Passed(info.Pass()), | 366 base::Passed(info.Pass()), |
367 base::Passed(stream.Pass()), | 367 base::Passed(stream.Pass()), |
368 on_started, | 368 on_started, |
369 new_download)); | 369 new_download)); |
370 if (new_download) { | 370 if (new_download) { |
371 GetNextId(got_id); | 371 GetNextId(got_id); |
372 } else { | 372 } else { |
373 got_id.Run(download_id); | 373 got_id.Run(download_id); |
374 } | 374 } |
375 } | 375 } |
376 | 376 |
377 void DownloadManagerImpl::StartDownloadWithId( | 377 void DownloadManagerImpl::StartDownloadWithId( |
378 scoped_ptr<DownloadCreateInfo> info, | 378 scoped_ptr<DownloadCreateInfo> info, |
379 scoped_ptr<ByteStreamReader> stream, | 379 scoped_ptr<ByteStreamReader<DownloadInterruptReason> > stream, |
380 const DownloadUrlParameters::OnStartedCallback& on_started, | 380 const DownloadUrlParameters::OnStartedCallback& on_started, |
381 bool new_download, | 381 bool new_download, |
382 uint32 id) { | 382 uint32 id) { |
383 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 383 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
384 DCHECK_NE(content::DownloadItem::kInvalidId, id); | 384 DCHECK_NE(content::DownloadItem::kInvalidId, id); |
385 DownloadItemImpl* download = NULL; | 385 DownloadItemImpl* download = NULL; |
386 if (new_download) { | 386 if (new_download) { |
387 download = CreateActiveItem(id, *info); | 387 download = CreateActiveItem(id, *info); |
388 } else { | 388 } else { |
389 DownloadMap::iterator item_iterator = downloads_.find(id); | 389 DownloadMap::iterator item_iterator = downloads_.find(id); |
(...skipping 292 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
682 if (delegate_) | 682 if (delegate_) |
683 delegate_->OpenDownload(download); | 683 delegate_->OpenDownload(download); |
684 } | 684 } |
685 | 685 |
686 void DownloadManagerImpl::ShowDownloadInShell(DownloadItemImpl* download) { | 686 void DownloadManagerImpl::ShowDownloadInShell(DownloadItemImpl* download) { |
687 if (delegate_) | 687 if (delegate_) |
688 delegate_->ShowDownloadInShell(download); | 688 delegate_->ShowDownloadInShell(download); |
689 } | 689 } |
690 | 690 |
691 } // namespace content | 691 } // namespace content |
OLD | NEW |