Chromium Code Reviews| 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/loader/cross_site_resource_handler.h" | 5 #include "content/browser/loader/cross_site_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/command_line.h" | 10 #include "base/command_line.h" |
| (...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 154 // request. | 154 // request. |
| 155 // | 155 // |
| 156 // Similarly, HTTP 204 (No Content) responses leave us showing the previous | 156 // Similarly, HTTP 204 (No Content) responses leave us showing the previous |
| 157 // page. We should allow the navigation to finish without running the unload | 157 // page. We should allow the navigation to finish without running the unload |
| 158 // handler or swapping in the pending RenderViewHost. | 158 // handler or swapping in the pending RenderViewHost. |
| 159 // | 159 // |
| 160 // In both cases, any pending RenderViewHost (if one was created for this | 160 // In both cases, any pending RenderViewHost (if one was created for this |
| 161 // navigation) will stick around until the next cross-site navigation, since | 161 // navigation) will stick around until the next cross-site navigation, since |
| 162 // we are unable to tell when to destroy it. | 162 // we are unable to tell when to destroy it. |
| 163 // See RenderFrameHostManager::RendererAbortedProvisionalLoad. | 163 // See RenderFrameHostManager::RendererAbortedProvisionalLoad. |
| 164 if (!swap_needed || info->IsDownload() || | 164 if (!swap_needed || info->IsDownload() || info->is_stream() || |
|
davidben
2014/02/12 19:57:56
It's possible we should just set the IsDownload bi
Zachary Kuznia
2014/02/12 22:04:48
IsDownload and is_stream should be mutually exclus
davidben
2014/02/12 22:18:56
Right, but the question is whether consumers of th
Charlie Reis
2014/02/13 01:45:07
I agree that the current approach is error prone.
davidben
2014/02/13 03:48:28
The other callers seem to be more interested in th
Charlie Reis
2014/02/13 19:33:05
I'll defer to networking folks on that decision, s
| |
| 165 (response->head.headers.get() && | 165 (response->head.headers.get() && |
| 166 response->head.headers->response_code() == 204)) { | 166 response->head.headers->response_code() == 204)) { |
| 167 return next_handler_->OnResponseStarted(request_id, response, defer); | 167 return next_handler_->OnResponseStarted(request_id, response, defer); |
| 168 } | 168 } |
| 169 | 169 |
| 170 // Now that we know a swap is needed and we have something to commit, we | 170 // Now that we know a swap is needed and we have something to commit, we |
| 171 // pause to let the UI thread run the unload handler of the previous page | 171 // pause to let the UI thread run the unload handler of the previous page |
| 172 // and set up a transfer if needed. | 172 // and set up a transfer if needed. |
| 173 StartCrossSiteTransition(request_id, response, should_transfer); | 173 StartCrossSiteTransition(request_id, response, should_transfer); |
| 174 | 174 |
| (...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 310 } | 310 } |
| 311 | 311 |
| 312 void CrossSiteResourceHandler::ResumeIfDeferred() { | 312 void CrossSiteResourceHandler::ResumeIfDeferred() { |
| 313 if (did_defer_) { | 313 if (did_defer_) { |
| 314 did_defer_ = false; | 314 did_defer_ = false; |
| 315 controller()->Resume(); | 315 controller()->Resume(); |
| 316 } | 316 } |
| 317 } | 317 } |
| 318 | 318 |
| 319 } // namespace content | 319 } // namespace content |
| OLD | NEW |