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

Side by Side Diff: content/browser/loader/resource_loader.cc

Issue 15476003: Move TransferNavigationResourceThrottle into CrossSiteResourceHandler. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Clean up Created 7 years, 6 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 | Annotate | Revision Log
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/loader/resource_loader.h" 5 #include "content/browser/loader/resource_loader.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/message_loop.h" 8 #include "base/message_loop.h"
9 #include "base/time.h" 9 #include "base/time.h"
10 #include "content/browser/child_process_security_policy_impl.h" 10 #include "content/browser/child_process_security_policy_impl.h"
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after
165 // by that time. In CompleteTransfer, the ResoureHandlers are substituted 165 // by that time. In CompleteTransfer, the ResoureHandlers are substituted
166 // again. 166 // again.
167 handler_.reset(new DoomedResourceHandler(handler_.Pass())); 167 handler_.reset(new DoomedResourceHandler(handler_.Pass()));
168 } 168 }
169 169
170 void ResourceLoader::WillCompleteTransfer() { 170 void ResourceLoader::WillCompleteTransfer() {
171 handler_.reset(); 171 handler_.reset();
172 } 172 }
173 173
174 void ResourceLoader::CompleteTransfer(scoped_ptr<ResourceHandler> new_handler) { 174 void ResourceLoader::CompleteTransfer(scoped_ptr<ResourceHandler> new_handler) {
175 DCHECK_EQ(DEFERRED_REDIRECT, deferred_stage_); 175 DCHECK_EQ(DEFERRED_READ, deferred_stage_);
176 DCHECK(!handler_.get()); 176 DCHECK(!handler_.get());
177 177
178 handler_ = new_handler.Pass(); 178 handler_ = new_handler.Pass();
179 handler_->SetController(this); 179 handler_->SetController(this);
180 is_transferring_ = false;
181 180
182 Resume(); 181 Resume();
183 } 182 }
184 183
185 ResourceRequestInfoImpl* ResourceLoader::GetRequestInfo() { 184 ResourceRequestInfoImpl* ResourceLoader::GetRequestInfo() {
186 return ResourceRequestInfoImpl::ForRequest(request_.get()); 185 return ResourceRequestInfoImpl::ForRequest(request_.get());
187 } 186 }
188 187
189 void ResourceLoader::ClearLoginDelegate() { 188 void ResourceLoader::ClearLoginDelegate() {
190 login_delegate_ = NULL; 189 login_delegate_ = NULL;
(...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after
419 418
420 void ResourceLoader::ContinueSSLRequest(const GlobalRequestID& id) { 419 void ResourceLoader::ContinueSSLRequest(const GlobalRequestID& id) {
421 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); 420 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
422 421
423 DVLOG(1) << "ContinueSSLRequest() url: " << request_->url().spec(); 422 DVLOG(1) << "ContinueSSLRequest() url: " << request_->url().spec();
424 423
425 request_->ContinueDespiteLastError(); 424 request_->ContinueDespiteLastError();
426 } 425 }
427 426
428 void ResourceLoader::Resume() { 427 void ResourceLoader::Resume() {
429 DCHECK(!is_transferring_); 428 bool was_transfer = is_transferring_;
429 is_transferring_ = false;
430 430
431 DeferredStage stage = deferred_stage_; 431 DeferredStage stage = deferred_stage_;
432 deferred_stage_ = DEFERRED_NONE; 432 deferred_stage_ = DEFERRED_NONE;
433 switch (stage) { 433 switch (stage) {
434 case DEFERRED_NONE: 434 case DEFERRED_NONE:
435 NOTREACHED(); 435 NOTREACHED();
436 break; 436 break;
437 case DEFERRED_START: 437 case DEFERRED_START:
438 StartRequestInternal(); 438 StartRequestInternal();
439 break; 439 break;
440 case DEFERRED_REDIRECT: 440 case DEFERRED_REDIRECT:
441 request_->FollowDeferredRedirect(); 441 request_->FollowDeferredRedirect();
442 break; 442 break;
443 case DEFERRED_READ: 443 case DEFERRED_READ:
444 base::MessageLoop::current()->PostTask( 444 if (was_transfer) {
445 FROM_HERE, 445 // We need to go through the OnResponseStarted steps again in the new
446 base::Bind(&ResourceLoader::ResumeReading, 446 // resource handler.
447 weak_ptr_factory_.GetWeakPtr())); 447 OnResponseStarted(request_.get());
448 } else {
449 base::MessageLoop::current()->PostTask(
450 FROM_HERE,
451 base::Bind(&ResourceLoader::ResumeReading,
452 weak_ptr_factory_.GetWeakPtr()));
453 }
448 break; 454 break;
449 case DEFERRED_FINISH: 455 case DEFERRED_FINISH:
450 // Delay self-destruction since we don't know how we were reached. 456 // Delay self-destruction since we don't know how we were reached.
451 base::MessageLoop::current()->PostTask( 457 base::MessageLoop::current()->PostTask(
452 FROM_HERE, 458 FROM_HERE,
453 base::Bind(&ResourceLoader::CallDidFinishLoading, 459 base::Bind(&ResourceLoader::CallDidFinishLoading,
454 weak_ptr_factory_.GetWeakPtr())); 460 weak_ptr_factory_.GetWeakPtr()));
455 break; 461 break;
456 } 462 }
457 } 463 }
(...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after
653 // we resume. 659 // we resume.
654 deferred_stage_ = DEFERRED_FINISH; 660 deferred_stage_ = DEFERRED_FINISH;
655 } 661 }
656 } 662 }
657 663
658 void ResourceLoader::CallDidFinishLoading() { 664 void ResourceLoader::CallDidFinishLoading() {
659 delegate_->DidFinishLoading(this); 665 delegate_->DidFinishLoading(this);
660 } 666 }
661 667
662 } // namespace content 668 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698