Commit dc9987c8 authored by Andrey Kosyakov's avatar Andrey Kosyakov Committed by Commit Bot

Revert "DevTools: fix interception for <a download='...'> downloads with network service"

This reverts commit 031b31c4.

Reason for revert: triggers an assert on in devtools download interception tests with network service.

Original change's description:
> DevTools: fix interception for <a download='...'> downloads with network service
> 
> Bug: 721408
> 
> Change-Id: I60f0cf81a69d7826d2043aa8222d2e69ff9e406a
> Reviewed-on: https://chromium-review.googlesource.com/1006231
> Commit-Queue: Andrey Kosyakov <caseq@chromium.org>
> Reviewed-by: Min Qin <qinmin@chromium.org>
> Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#550690}

TBR=dgozman@chromium.org,caseq@chromium.org,qinmin@chromium.org

Change-Id: I51f1a7145faa59103ff06b537380745913af2cf2
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 721408
Reviewed-on: https://chromium-review.googlesource.com/1012817Reviewed-by: default avatarAndrey Kosyakov <caseq@chromium.org>
Commit-Queue: Andrey Kosyakov <caseq@chromium.org>
Cr-Commit-Position: refs/heads/master@{#550710}
parent 3da69b74
......@@ -41,7 +41,6 @@
#include "components/download/public/common/url_download_handler_factory.h"
#include "content/browser/byte_stream.h"
#include "content/browser/child_process_security_policy_impl.h"
#include "content/browser/devtools/render_frame_devtools_agent_host.h"
#include "content/browser/download/blob_download_url_loader_factory_getter.h"
#include "content/browser/download/byte_stream_input_stream.h"
#include "content/browser/download/download_resource_handler.h"
......@@ -1305,8 +1304,6 @@ void DownloadManagerImpl::BeginDownloadInternal(
std::unique_ptr<network::ResourceRequest> request =
download::CreateResourceRequest(params.get());
GURL site_url, tab_url, tab_referrer_url;
network::mojom::URLLoaderFactoryPtrInfo proxy_factory_ptr_info;
network::mojom::URLLoaderFactoryRequest proxy_factory_request;
auto* rfh = RenderFrameHost::FromID(params->render_process_host_id(),
params->render_frame_host_routing_id());
if (rfh) {
......@@ -1317,15 +1314,6 @@ void DownloadManagerImpl::BeginDownloadInternal(
tab_url = entry->GetURL();
tab_referrer_url = entry->GetReferrer().url;
}
network::mojom::URLLoaderFactoryPtrInfo devtools_factory_ptr_info;
network::mojom::URLLoaderFactoryRequest devtools_factory_request =
MakeRequest(&devtools_factory_ptr_info);
if (RenderFrameDevToolsAgentHost::WillCreateURLLoaderFactory(
static_cast<RenderFrameHostImpl*>(rfh), true,
&devtools_factory_request)) {
proxy_factory_ptr_info = std::move(devtools_factory_ptr_info);
proxy_factory_request = std::move(devtools_factory_request);
}
}
scoped_refptr<download::DownloadURLLoaderFactoryGetter>
......@@ -1337,9 +1325,7 @@ void DownloadManagerImpl::BeginDownloadInternal(
} else {
url_loader_factory_getter =
base::MakeRefCounted<NetworkDownloadURLLoaderFactoryGetter>(
storage_partition->url_loader_factory_getter(),
std::move(proxy_factory_ptr_info),
std::move(proxy_factory_request));
storage_partition->url_loader_factory_getter());
}
BrowserThread::PostTask(
BrowserThread::IO, FROM_HERE,
......
......@@ -6,18 +6,13 @@
#include "components/download/public/common/download_task_runner.h"
#include "content/browser/url_loader_factory_getter.h"
#include "content/common/wrapper_shared_url_loader_factory.h"
#include "services/network/public/cpp/shared_url_loader_factory.h"
namespace content {
NetworkDownloadURLLoaderFactoryGetter::NetworkDownloadURLLoaderFactoryGetter(
scoped_refptr<URLLoaderFactoryGetter> url_loader_factory_getter,
network::mojom::URLLoaderFactoryPtrInfo proxy_factory_ptr_info,
network::mojom::URLLoaderFactoryRequest proxy_factory_request)
: url_loader_factory_getter_(url_loader_factory_getter),
proxy_factory_ptr_info_(std::move(proxy_factory_ptr_info)),
proxy_factory_request_(std::move(proxy_factory_request)) {}
scoped_refptr<URLLoaderFactoryGetter> url_loader_factory_getter)
: url_loader_factory_getter_(url_loader_factory_getter) {}
NetworkDownloadURLLoaderFactoryGetter::
~NetworkDownloadURLLoaderFactoryGetter() = default;
......@@ -26,17 +21,7 @@ scoped_refptr<network::SharedURLLoaderFactory>
NetworkDownloadURLLoaderFactoryGetter::GetURLLoaderFactory() {
DCHECK(download::GetIOTaskRunner());
DCHECK(download::GetIOTaskRunner()->BelongsToCurrentThread());
if (lazy_factory_)
return lazy_factory_;
if (proxy_factory_request_.is_pending()) {
url_loader_factory_getter_->CloneNetworkFactory(
std::move(proxy_factory_request_));
lazy_factory_ = base::MakeRefCounted<WrapperSharedURLLoaderFactory>(
std::move(proxy_factory_ptr_info_));
} else {
lazy_factory_ = url_loader_factory_getter_->GetNetworkFactory();
}
return lazy_factory_;
return url_loader_factory_getter_->GetNetworkFactory();
}
} // namespace content
......@@ -6,7 +6,6 @@
#define CONTENT_BROWSER_DOWNLOAD_NETWORK_DOWNLOAD_URL_LOADER_FACTORY_GETTER_H_
#include "components/download/public/common/download_url_loader_factory_getter.h"
#include "services/network/public/mojom/url_loader_factory.mojom.h"
namespace content {
......@@ -16,10 +15,8 @@ class URLLoaderFactoryGetter;
class NetworkDownloadURLLoaderFactoryGetter
: public download::DownloadURLLoaderFactoryGetter {
public:
NetworkDownloadURLLoaderFactoryGetter(
scoped_refptr<URLLoaderFactoryGetter> url_loader_factory_getter,
network::mojom::URLLoaderFactoryPtrInfo proxy_factory_ptr_info,
network::mojom::URLLoaderFactoryRequest proxy_factory_request);
explicit NetworkDownloadURLLoaderFactoryGetter(
scoped_refptr<URLLoaderFactoryGetter> url_loader_factory_getter);
// download::DownloadURLLoaderFactoryGetter implementation.
scoped_refptr<network::SharedURLLoaderFactory> GetURLLoaderFactory() override;
......@@ -29,9 +26,6 @@ class NetworkDownloadURLLoaderFactoryGetter
private:
scoped_refptr<URLLoaderFactoryGetter> url_loader_factory_getter_;
scoped_refptr<network::SharedURLLoaderFactory> lazy_factory_;
network::mojom::URLLoaderFactoryPtrInfo proxy_factory_ptr_info_;
network::mojom::URLLoaderFactoryRequest proxy_factory_request_;
DISALLOW_COPY_AND_ASSIGN(NetworkDownloadURLLoaderFactoryGetter);
};
......
Tests that downloads are intercepted when interception is enabled for page.
Intercepted: http://127.0.0.1:8000/devtools/network/resources/resource.php
(async function(testRunner) {
var {page, session, dp} = await testRunner.startBlank(
`Tests that downloads are intercepted when interception is enabled for page.`);
await session.protocol.Network.clearBrowserCache();
await session.protocol.Network.setCacheDisabled({cacheDisabled: true});
await session.protocol.Network.enable();
await session.protocol.Runtime.enable();
await dp.Network.setRequestInterception({patterns: [{}]});
session.evaluate(`
const a = document.createElement('a');
a.href = '/devtools/network/resources/resource.php';
a.download = 'hello.text';
document.body.appendChild(a);
a.click();
`);
const event = await dp.Network.onceRequestIntercepted();
testRunner.log(`Intercepted: ${event.params.request.url}`);
testRunner.completeTest();
})
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment