Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(12)

Side by Side Diff: content/browser/download/download_resource_handler.cc

Issue 1728583002: Simplify DownloadRequestHandle by using WebContentsGetter (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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_resource_handler.h" 5 #include "content/browser/download/download_resource_handler.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/callback_helpers.h" 10 #include "base/callback_helpers.h"
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
88 tab_info_(new DownloadTabInfo()), 88 tab_info_(new DownloadTabInfo()),
89 core_(request, this) { 89 core_(request, this) {
90 // Do UI thread initialization for tab_info_ asap after 90 // Do UI thread initialization for tab_info_ asap after
91 // DownloadResourceHandler creation since the tab could be navigated 91 // DownloadResourceHandler creation since the tab could be navigated
92 // before StartOnUIThread gets called. This is safe because deletion 92 // before StartOnUIThread gets called. This is safe because deletion
93 // will occur via PostTask() as well, which will serialized behind this 93 // will occur via PostTask() as well, which will serialized behind this
94 // PostTask() 94 // PostTask()
95 const ResourceRequestInfoImpl* request_info = GetRequestInfo(); 95 const ResourceRequestInfoImpl* request_info = GetRequestInfo();
96 BrowserThread::PostTask( 96 BrowserThread::PostTask(
97 BrowserThread::UI, FROM_HERE, 97 BrowserThread::UI, FROM_HERE,
98 base::Bind(&InitializeDownloadTabInfoOnUIThread, 98 base::Bind(
99 DownloadRequestHandle(AsWeakPtr(), request_info->GetChildID(), 99 &InitializeDownloadTabInfoOnUIThread,
100 request_info->GetRouteID(), 100 DownloadRequestHandle(AsWeakPtr(),
101 request_info->GetRequestID(), 101 request_info->GetWebContentsGetterForRequest()),
102 request_info->frame_tree_node_id()), 102 tab_info_.get()));
103 tab_info_.get()));
104 } 103 }
105 104
106 DownloadResourceHandler::~DownloadResourceHandler() { 105 DownloadResourceHandler::~DownloadResourceHandler() {
107 if (tab_info_) { 106 if (tab_info_) {
108 BrowserThread::PostTask( 107 BrowserThread::PostTask(
109 BrowserThread::UI, FROM_HERE, 108 BrowserThread::UI, FROM_HERE,
110 base::Bind(&DeleteOnUIThread, base::Passed(&tab_info_))); 109 base::Bind(&DeleteOnUIThread, base::Passed(&tab_info_)));
111 } 110 }
112 } 111 }
113 112
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
181 BrowserThread::UI, FROM_HERE, 180 BrowserThread::UI, FROM_HERE,
182 base::Bind(callback, nullptr, create_info->result)); 181 base::Bind(callback, nullptr, create_info->result));
183 return; 182 return;
184 } 183 }
185 184
186 const ResourceRequestInfoImpl* request_info = GetRequestInfo(); 185 const ResourceRequestInfoImpl* request_info = GetRequestInfo();
187 create_info->has_user_gesture = request_info->HasUserGesture(); 186 create_info->has_user_gesture = request_info->HasUserGesture();
188 create_info->transition_type = request_info->GetPageTransition(); 187 create_info->transition_type = request_info->GetPageTransition();
189 188
190 create_info->request_handle.reset(new DownloadRequestHandle( 189 create_info->request_handle.reset(new DownloadRequestHandle(
191 AsWeakPtr(), request_info->GetChildID(), request_info->GetRouteID(), 190 AsWeakPtr(), request_info->GetWebContentsGetterForRequest()));
192 request_info->GetRequestID(), request_info->frame_tree_node_id()));
193 191
194 BrowserThread::PostTask( 192 BrowserThread::PostTask(
195 BrowserThread::UI, FROM_HERE, 193 BrowserThread::UI, FROM_HERE,
196 base::Bind(&StartOnUIThread, base::Passed(&create_info), 194 base::Bind(&StartOnUIThread, base::Passed(&create_info),
197 base::Passed(&tab_info_), base::Passed(&stream_reader), 195 base::Passed(&tab_info_), base::Passed(&stream_reader),
198 callback)); 196 callback));
199 } 197 }
200 198
201 void DownloadResourceHandler::OnReadyToRead() { 199 void DownloadResourceHandler::OnReadyToRead() {
202 DCHECK_CURRENTLY_ON(BrowserThread::IO); 200 DCHECK_CURRENTLY_ON(BrowserThread::IO);
(...skipping 22 matching lines...) Expand all
225 " }", 223 " }",
226 request() ? 224 request() ?
227 request()->url().spec().c_str() : 225 request()->url().spec().c_str() :
228 "<NULL request>", 226 "<NULL request>",
229 info->GetChildID(), 227 info->GetChildID(),
230 info->GetRequestID(), 228 info->GetRequestID(),
231 info->GetRouteID()); 229 info->GetRouteID());
232 } 230 }
233 231
234 } // namespace content 232 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698