New issue
Advanced search Search tips

Issue 812464 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Jun 2018
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug



Sign in to add a comment

Implement DevTools' network interception as URLLoaderFactory/URLLoader proxy

Project Member Reported by caseq@chromium.org, Feb 15 2018

Issue description

Our current network interception implementation works on the net/ level, i.e. as net::URLRequestInterceptor. This is incompatible with network service and does not let us intercept requests not fulfilled by network. We should instead implement it as URLLoaderFactory/URLLoader/URLLoaderClient interfaces.
 

Comment 1 by caseq@chromium.org, Feb 15 2018

Components: Platform>DevTools>Network
Project Member

Comment 2 by bugdroid1@chromium.org, Feb 17 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3dfc0ccdfbb1e7e4150e5a3a2eb7e9ad640c4e4c

commit 3dfc0ccdfbb1e7e4150e5a3a2eb7e9ad640c4e4c
Author: Andrey Kosyakov <caseq@chromium.org>
Date: Sat Feb 17 00:02:08 2018

DevTools: extract interface for DevToolsURLRequestInterceptor

This extracts DevToolsNetworkInterceptor as an interface between
NetworkHandler and the implementation of network request interceptor.
The only current implementation is DevToolsURLRequestInterceptor, but
the URLLoader-based implementation will share the interface.

Bug:  812464 
Change-Id: I3c3c00fce2bae7e9278b05eb688f3dda1e8b10c3
Reviewed-on: https://chromium-review.googlesource.com/920795
Commit-Queue: Andrey Kosyakov <caseq@chromium.org>
Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#537469}
[modify] https://crrev.com/3dfc0ccdfbb1e7e4150e5a3a2eb7e9ad640c4e4c/content/browser/BUILD.gn
[modify] https://crrev.com/3dfc0ccdfbb1e7e4150e5a3a2eb7e9ad640c4e4c/content/browser/devtools/devtools_interceptor_controller.cc
[modify] https://crrev.com/3dfc0ccdfbb1e7e4150e5a3a2eb7e9ad640c4e4c/content/browser/devtools/devtools_interceptor_controller.h
[add] https://crrev.com/3dfc0ccdfbb1e7e4150e5a3a2eb7e9ad640c4e4c/content/browser/devtools/devtools_network_interceptor.cc
[add] https://crrev.com/3dfc0ccdfbb1e7e4150e5a3a2eb7e9ad640c4e4c/content/browser/devtools/devtools_network_interceptor.h
[modify] https://crrev.com/3dfc0ccdfbb1e7e4150e5a3a2eb7e9ad640c4e4c/content/browser/devtools/devtools_url_interceptor_request_job.cc
[modify] https://crrev.com/3dfc0ccdfbb1e7e4150e5a3a2eb7e9ad640c4e4c/content/browser/devtools/devtools_url_interceptor_request_job.h
[modify] https://crrev.com/3dfc0ccdfbb1e7e4150e5a3a2eb7e9ad640c4e4c/content/browser/devtools/devtools_url_request_interceptor.cc
[modify] https://crrev.com/3dfc0ccdfbb1e7e4150e5a3a2eb7e9ad640c4e4c/content/browser/devtools/devtools_url_request_interceptor.h
[modify] https://crrev.com/3dfc0ccdfbb1e7e4150e5a3a2eb7e9ad640c4e4c/content/browser/devtools/protocol/network_handler.cc

Project Member

Comment 3 by bugdroid1@chromium.org, Mar 15 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8d49c5062f69ab4a3c1fd2391c147555fcbde62e

commit 8d49c5062f69ab4a3c1fd2391c147555fcbde62e
Author: Andrey Kosyakov <caseq@chromium.org>
Date: Thu Mar 15 19:50:49 2018

DevTools: implement a URLLoader-based request interception proxy

BUG= 812464 , 721408 

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_mojo
Change-Id: I39b237ba370dc65febbb52e8d31b1d01d4c35d10
Reviewed-on: https://chromium-review.googlesource.com/956685
Commit-Queue: Andrey Kosyakov <caseq@chromium.org>
Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#543475}
[modify] https://crrev.com/8d49c5062f69ab4a3c1fd2391c147555fcbde62e/content/browser/BUILD.gn
[modify] https://crrev.com/8d49c5062f69ab4a3c1fd2391c147555fcbde62e/content/browser/devtools/devtools_network_interceptor.cc
[modify] https://crrev.com/8d49c5062f69ab4a3c1fd2391c147555fcbde62e/content/browser/devtools/devtools_network_interceptor.h
[modify] https://crrev.com/8d49c5062f69ab4a3c1fd2391c147555fcbde62e/content/browser/devtools/devtools_url_interceptor_request_job.cc
[add] https://crrev.com/8d49c5062f69ab4a3c1fd2391c147555fcbde62e/content/browser/devtools/devtools_url_loader_interceptor.cc
[add] https://crrev.com/8d49c5062f69ab4a3c1fd2391c147555fcbde62e/content/browser/devtools/devtools_url_loader_interceptor.h
[modify] https://crrev.com/8d49c5062f69ab4a3c1fd2391c147555fcbde62e/content/browser/devtools/devtools_url_request_interceptor.cc
[modify] https://crrev.com/8d49c5062f69ab4a3c1fd2391c147555fcbde62e/content/browser/devtools/protocol/network_handler.cc
[modify] https://crrev.com/8d49c5062f69ab4a3c1fd2391c147555fcbde62e/content/browser/devtools/protocol/network_handler.h
[modify] https://crrev.com/8d49c5062f69ab4a3c1fd2391c147555fcbde62e/content/browser/devtools/render_frame_devtools_agent_host.cc
[modify] https://crrev.com/8d49c5062f69ab4a3c1fd2391c147555fcbde62e/content/browser/devtools/render_frame_devtools_agent_host.h
[modify] https://crrev.com/8d49c5062f69ab4a3c1fd2391c147555fcbde62e/content/browser/frame_host/render_frame_host_impl.cc
[modify] https://crrev.com/8d49c5062f69ab4a3c1fd2391c147555fcbde62e/content/browser/frame_host/render_frame_host_impl.h
[modify] https://crrev.com/8d49c5062f69ab4a3c1fd2391c147555fcbde62e/content/browser/loader/navigation_url_loader_network_service.cc
[modify] https://crrev.com/8d49c5062f69ab4a3c1fd2391c147555fcbde62e/testing/buildbot/filters/mojo.fyi.network_content_browsertests.filter
[modify] https://crrev.com/8d49c5062f69ab4a3c1fd2391c147555fcbde62e/third_party/WebKit/LayoutTests/FlagExpectations/enable-features=NetworkService
[modify] https://crrev.com/8d49c5062f69ab4a3c1fd2391c147555fcbde62e/third_party/WebKit/LayoutTests/http/tests/devtools/network/resources/resource.php
[modify] https://crrev.com/8d49c5062f69ab4a3c1fd2391c147555fcbde62e/third_party/WebKit/LayoutTests/http/tests/inspector-protocol/network/redirect-interception-mocked-expected.txt
[modify] https://crrev.com/8d49c5062f69ab4a3c1fd2391c147555fcbde62e/third_party/WebKit/LayoutTests/http/tests/inspector-protocol/network/response-interception-cancel-xhr-while-responding-error-expected.txt
[modify] https://crrev.com/8d49c5062f69ab4a3c1fd2391c147555fcbde62e/third_party/WebKit/LayoutTests/http/tests/inspector-protocol/network/response-interception-cancel-xhr-while-responding-error.js
[modify] https://crrev.com/8d49c5062f69ab4a3c1fd2391c147555fcbde62e/third_party/WebKit/LayoutTests/http/tests/inspector-protocol/network/response-interception-with-data-url-expected.txt
[modify] https://crrev.com/8d49c5062f69ab4a3c1fd2391c147555fcbde62e/third_party/WebKit/LayoutTests/http/tests/inspector-protocol/network/response-interception-with-data-url.js

Project Member

Comment 4 by bugdroid1@chromium.org, Mar 19 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/add8371da1a41468c226f119e6a9b223931becba

commit add8371da1a41468c226f119e6a9b223931becba
Author: Andrey Kosyakov <caseq@chromium.org>
Date: Mon Mar 19 22:09:41 2018

DevTools: add support for auth info to URLLoader-based interceptor

 - expose request id in NetworkServiceClient methods;
 - plumb host process id to DevToolsURLLoaderInterception;
 - maintain a static map from (process id, routing id, request id)
    to InterceptionJob*;
 - wire auth request callbacks from NetworkServiceClient to
    InterceptionJob.

BUG= 812464 , 721408 

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_mojo
Change-Id: I9eee7b2e9bc436376c741fcca7e2f67a2f04a32d
Reviewed-on: https://chromium-review.googlesource.com/967092
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Commit-Queue: Andrey Kosyakov <caseq@chromium.org>
Cr-Commit-Position: refs/heads/master@{#544182}
[modify] https://crrev.com/add8371da1a41468c226f119e6a9b223931becba/content/browser/devtools/devtools_url_interceptor_request_job.cc
[modify] https://crrev.com/add8371da1a41468c226f119e6a9b223931becba/content/browser/devtools/devtools_url_loader_interceptor.cc
[modify] https://crrev.com/add8371da1a41468c226f119e6a9b223931becba/content/browser/devtools/devtools_url_loader_interceptor.h
[modify] https://crrev.com/add8371da1a41468c226f119e6a9b223931becba/content/browser/devtools/protocol/network_handler.cc
[modify] https://crrev.com/add8371da1a41468c226f119e6a9b223931becba/content/browser/devtools/protocol/network_handler.h
[modify] https://crrev.com/add8371da1a41468c226f119e6a9b223931becba/content/browser/devtools/render_frame_devtools_agent_host.cc
[modify] https://crrev.com/add8371da1a41468c226f119e6a9b223931becba/content/browser/devtools/render_frame_devtools_agent_host.h
[modify] https://crrev.com/add8371da1a41468c226f119e6a9b223931becba/content/browser/frame_host/render_frame_host_impl.cc
[modify] https://crrev.com/add8371da1a41468c226f119e6a9b223931becba/content/browser/loader/navigation_url_loader_network_service.cc
[modify] https://crrev.com/add8371da1a41468c226f119e6a9b223931becba/content/browser/loader/navigation_url_loader_network_service_unittest.cc
[modify] https://crrev.com/add8371da1a41468c226f119e6a9b223931becba/content/browser/network_service_client.cc
[modify] https://crrev.com/add8371da1a41468c226f119e6a9b223931becba/content/browser/network_service_client.h
[modify] https://crrev.com/add8371da1a41468c226f119e6a9b223931becba/services/network/public/mojom/network_service.mojom
[modify] https://crrev.com/add8371da1a41468c226f119e6a9b223931becba/services/network/public/mojom/url_loader_factory.mojom
[modify] https://crrev.com/add8371da1a41468c226f119e6a9b223931becba/services/network/url_loader.cc
[modify] https://crrev.com/add8371da1a41468c226f119e6a9b223931becba/services/network/url_loader.h
[modify] https://crrev.com/add8371da1a41468c226f119e6a9b223931becba/services/network/url_loader_factory.cc
[modify] https://crrev.com/add8371da1a41468c226f119e6a9b223931becba/services/network/url_loader_unittest.cc
[modify] https://crrev.com/add8371da1a41468c226f119e6a9b223931becba/third_party/WebKit/LayoutTests/FlagExpectations/enable-features=NetworkService

Project Member

Comment 6 by bugdroid1@chromium.org, Apr 13 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/fce4af9e667780ec7f0865d743697dcb7e24853e

commit fce4af9e667780ec7f0865d743697dcb7e24853e
Author: Andrey Lushnikov <lushnikov@chromium.org>
Date: Fri Apr 13 23:12:38 2018

DevTools: disable inspector-protocol/network/interception-file-url.js

The test doesn't work with network service.

BUG= 812464 
TBR=caseq

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_mojo
Change-Id: I41e101c08f2ea873ff97c01cce5d3bce989c4543
Reviewed-on: https://chromium-review.googlesource.com/1013043
Reviewed-by: Andrey Lushnikov <lushnikov@chromium.org>
Commit-Queue: Andrey Lushnikov <lushnikov@chromium.org>
Cr-Commit-Position: refs/heads/master@{#550787}
[modify] https://crrev.com/fce4af9e667780ec7f0865d743697dcb7e24853e/third_party/WebKit/LayoutTests/FlagExpectations/enable-features=NetworkService

Project Member

Comment 7 by bugdroid1@chromium.org, Apr 17 2018

Labels: merge-merged-testbranch
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/fce4af9e667780ec7f0865d743697dcb7e24853e

commit fce4af9e667780ec7f0865d743697dcb7e24853e
Author: Andrey Lushnikov <lushnikov@chromium.org>
Date: Fri Apr 13 23:12:38 2018

DevTools: disable inspector-protocol/network/interception-file-url.js

The test doesn't work with network service.

BUG= 812464 
TBR=caseq

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_mojo
Change-Id: I41e101c08f2ea873ff97c01cce5d3bce989c4543
Reviewed-on: https://chromium-review.googlesource.com/1013043
Reviewed-by: Andrey Lushnikov <lushnikov@chromium.org>
Commit-Queue: Andrey Lushnikov <lushnikov@chromium.org>
Cr-Commit-Position: refs/heads/master@{#550787}
[modify] https://crrev.com/fce4af9e667780ec7f0865d743697dcb7e24853e/third_party/WebKit/LayoutTests/FlagExpectations/enable-features=NetworkService

Comment 8 by caseq@chromium.org, Jun 5 2018

Status: Fixed (was: Assigned)

Sign in to add a comment