| 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 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 68 virtual ~SavePageData() {} | 68 virtual ~SavePageData() {} |
| 69 | 69 |
| 70 private: | 70 private: |
| 71 static const char kKey[]; | 71 static const char kKey[]; |
| 72 | 72 |
| 73 DISALLOW_COPY_AND_ASSIGN(SavePageData); | 73 DISALLOW_COPY_AND_ASSIGN(SavePageData); |
| 74 }; | 74 }; |
| 75 | 75 |
| 76 const char SavePageData::kKey[] = "DownloadItem SavePageData"; | 76 const char SavePageData::kKey[] = "DownloadItem SavePageData"; |
| 77 | 77 |
| 78 void BeginDownload(content::DownloadUrlParameters* params) { | 78 void BeginDownload(scoped_ptr<content::DownloadUrlParameters> params) { |
| 79 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 79 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
| 80 // ResourceDispatcherHost{Base} is-not-a URLRequest::Delegate, and | 80 // ResourceDispatcherHost{Base} is-not-a URLRequest::Delegate, and |
| 81 // DownloadUrlParameters can-not include resource_dispatcher_host_impl.h, so | 81 // DownloadUrlParameters can-not include resource_dispatcher_host_impl.h, so |
| 82 // we must down cast. RDHI is the only subclass of RDH as of 2012 May 4. | 82 // we must down cast. RDHI is the only subclass of RDH as of 2012 May 4. |
| 83 scoped_ptr<net::URLRequest> request( | 83 scoped_ptr<net::URLRequest> request( |
| 84 params->resource_context()->GetRequestContext()->CreateRequest( | 84 params->resource_context()->GetRequestContext()->CreateRequest( |
| 85 params->url(), NULL)); | 85 params->url(), NULL)); |
| 86 request->set_referrer(params->referrer().url.spec()); | 86 request->set_referrer(params->referrer().url.spec()); |
| 87 webkit_glue::ConfigureURLRequestForReferrerPolicy( | 87 webkit_glue::ConfigureURLRequestForReferrerPolicy( |
| 88 request.get(), params->referrer().policy); | 88 request.get(), params->referrer().policy); |
| (...skipping 20 matching lines...) Expand all Loading... |
| 109 request->SetExtraRequestHeaderByName( | 109 request->SetExtraRequestHeaderByName( |
| 110 iter->first, iter->second, false/*overwrite*/); | 110 iter->first, iter->second, false/*overwrite*/); |
| 111 } | 111 } |
| 112 params->resource_dispatcher_host()->BeginDownload( | 112 params->resource_dispatcher_host()->BeginDownload( |
| 113 request.Pass(), | 113 request.Pass(), |
| 114 params->content_initiated(), | 114 params->content_initiated(), |
| 115 params->resource_context(), | 115 params->resource_context(), |
| 116 params->render_process_host_id(), | 116 params->render_process_host_id(), |
| 117 params->render_view_host_routing_id(), | 117 params->render_view_host_routing_id(), |
| 118 params->prefer_cache(), | 118 params->prefer_cache(), |
| 119 params->save_info(), | 119 params->GetSaveInfo(), // Nulls params internal copy. |
| 120 params->callback()); | 120 params->callback()); |
| 121 } | 121 } |
| 122 | 122 |
| 123 class MapValueIteratorAdapter { | 123 class MapValueIteratorAdapter { |
| 124 public: | 124 public: |
| 125 explicit MapValueIteratorAdapter( | 125 explicit MapValueIteratorAdapter( |
| 126 base::hash_map<int64, DownloadItem*>::const_iterator iter) | 126 base::hash_map<int64, DownloadItem*>::const_iterator iter) |
| 127 : iter_(iter) { | 127 : iter_(iter) { |
| 128 } | 128 } |
| 129 ~MapValueIteratorAdapter() {} | 129 ~MapValueIteratorAdapter() {} |
| (...skipping 641 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 771 } | 771 } |
| 772 | 772 |
| 773 void DownloadManagerImpl::DownloadUrl( | 773 void DownloadManagerImpl::DownloadUrl( |
| 774 scoped_ptr<content::DownloadUrlParameters> params) { | 774 scoped_ptr<content::DownloadUrlParameters> params) { |
| 775 if (params->post_id() >= 0) { | 775 if (params->post_id() >= 0) { |
| 776 // Check this here so that the traceback is more useful. | 776 // Check this here so that the traceback is more useful. |
| 777 DCHECK(params->prefer_cache()); | 777 DCHECK(params->prefer_cache()); |
| 778 DCHECK(params->method() == "POST"); | 778 DCHECK(params->method() == "POST"); |
| 779 } | 779 } |
| 780 BrowserThread::PostTask(BrowserThread::IO, FROM_HERE, base::Bind( | 780 BrowserThread::PostTask(BrowserThread::IO, FROM_HERE, base::Bind( |
| 781 &BeginDownload, base::Owned(params.release()))); | 781 &BeginDownload, base::Passed(params.Pass()))); |
| 782 } | 782 } |
| 783 | 783 |
| 784 void DownloadManagerImpl::AddObserver(Observer* observer) { | 784 void DownloadManagerImpl::AddObserver(Observer* observer) { |
| 785 observers_.AddObserver(observer); | 785 observers_.AddObserver(observer); |
| 786 // TODO: It is the responsibility of the observers to query the | 786 // TODO: It is the responsibility of the observers to query the |
| 787 // DownloadManager. Remove the following call from here and update all | 787 // DownloadManager. Remove the following call from here and update all |
| 788 // observers. | 788 // observers. |
| 789 observer->ModelChanged(this); | 789 observer->ModelChanged(this); |
| 790 } | 790 } |
| 791 | 791 |
| (...skipping 233 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1025 void DownloadManagerImpl::DownloadRenamedToFinalName( | 1025 void DownloadManagerImpl::DownloadRenamedToFinalName( |
| 1026 DownloadItemImpl* download) { | 1026 DownloadItemImpl* download) { |
| 1027 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 1027 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 1028 // If the rename failed, we receive an OnDownloadInterrupted() call before we | 1028 // If the rename failed, we receive an OnDownloadInterrupted() call before we |
| 1029 // receive the DownloadRenamedToFinalName() call. | 1029 // receive the DownloadRenamedToFinalName() call. |
| 1030 if (delegate_) { | 1030 if (delegate_) { |
| 1031 delegate_->UpdatePathForItemInPersistentStore( | 1031 delegate_->UpdatePathForItemInPersistentStore( |
| 1032 download, download->GetFullPath()); | 1032 download, download->GetFullPath()); |
| 1033 } | 1033 } |
| 1034 } | 1034 } |
| OLD | NEW |