| Index: content/renderer/pepper/pepper_url_loader_host.cc
|
| diff --git a/content/renderer/pepper/pepper_url_loader_host.cc b/content/renderer/pepper/pepper_url_loader_host.cc
|
| index 27d427149eb1b45a38f3fefba1d4fec459ade0d5..7b01400c2e698c984559b5fdeb3cae072bf20023 100644
|
| --- a/content/renderer/pepper/pepper_url_loader_host.cc
|
| +++ b/content/renderer/pepper/pepper_url_loader_host.cc
|
| @@ -359,10 +359,18 @@ void PepperURLLoaderHost::SendOrderedUpdateToPlugin(IPC::Message* message) {
|
| }
|
|
|
| void PepperURLLoaderHost::Close() {
|
| - if (loader_.get())
|
| + if (loader_.get()) {
|
| loader_->cancel();
|
| - else if (main_document_loader_)
|
| - GetFrame()->stopLoading();
|
| + } else if (main_document_loader_) {
|
| + // TODO(raymes): Calling WebLocalFrame::stopLoading here is incorrect as it
|
| + // cancels all URL loaders associated with the frame. If a client has opened
|
| + // other URLLoaders and then closes the main one, the others should still
|
| + // remain connected. Work out how to only cancel the main request:
|
| + // crbug.com/384197.
|
| + blink::WebLocalFrame* frame = GetFrame();
|
| + if (frame)
|
| + frame->stopLoading();
|
| + }
|
| }
|
|
|
| blink::WebLocalFrame* PepperURLLoaderHost::GetFrame() {
|
|
|