New issue
Advanced search Search tips

Issue 800901 link

Starred by 2 users

Issue metadata

Status: Assigned
Owner:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug


Sign in to add a comment

Move Blob URL resolution to renderer process

Project Member Reported by mek@chromium.org, Jan 10 2018

Issue description

In order to ensure proper ordering between fetches of blob URLs and revocation of a blob URL (specifically the case where a fetch is started, and right afterwards the URL is revoked) we need to move resolution of the blob URL into blink.

In the spec blob URLs are resolved at URL parsing time, so we'll likely end up having to do something similar. Currently this is only a problem in workers (as otherwise fetches and blob URL revocation both happen on channel-associated mojo pipes, so are properly ordered), but when blob URL handling is fully mojofied this will be a much bigger problem.
 

Comment 1 by mek@chromium.org, Jan 10 2018

Blocking: 756743

Comment 2 by mek@chromium.org, Jan 10 2018

Blocking: 800986
Project Member

Comment 3 by bugdroid1@chromium.org, Jan 29 2018

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

commit 3044c7ef40885ca6769f4066d485491b4fe78472
Author: Marijn Kruisselbrink <mek@chromium.org>
Date: Mon Jan 29 21:38:23 2018

Add method to Blob mojo interface to create a URLLoader.

In later CLs this will be used to implement renderer initiated blob URL
loading.

Bug: 800901
Change-Id: I7e6afde55e132f4d6ae35bfb2beccad60ff82a36
Reviewed-on: https://chromium-review.googlesource.com/890021
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Commit-Queue: Marijn Kruisselbrink <mek@chromium.org>
Cr-Commit-Position: refs/heads/master@{#532597}
[modify] https://crrev.com/3044c7ef40885ca6769f4066d485491b4fe78472/content/browser/blob_storage/blob_url_loader_factory.cc
[modify] https://crrev.com/3044c7ef40885ca6769f4066d485491b4fe78472/content/browser/blob_storage/blob_url_unittest.cc
[modify] https://crrev.com/3044c7ef40885ca6769f4066d485491b4fe78472/storage/browser/BUILD.gn
[modify] https://crrev.com/3044c7ef40885ca6769f4066d485491b4fe78472/storage/browser/blob/blob_impl.cc
[modify] https://crrev.com/3044c7ef40885ca6769f4066d485491b4fe78472/storage/browser/blob/blob_impl.h
[modify] https://crrev.com/3044c7ef40885ca6769f4066d485491b4fe78472/storage/browser/blob/blob_registry_impl_unittest.cc
[add] https://crrev.com/3044c7ef40885ca6769f4066d485491b4fe78472/storage/browser/blob/blob_url_loader.cc
[add] https://crrev.com/3044c7ef40885ca6769f4066d485491b4fe78472/storage/browser/blob/blob_url_loader.h
[modify] https://crrev.com/3044c7ef40885ca6769f4066d485491b4fe78472/third_party/WebKit/Source/platform/blob/testing/FakeBlob.cpp
[modify] https://crrev.com/3044c7ef40885ca6769f4066d485491b4fe78472/third_party/WebKit/Source/platform/blob/testing/FakeBlob.h
[modify] https://crrev.com/3044c7ef40885ca6769f4066d485491b4fe78472/third_party/WebKit/common/blob/blob.mojom

Project Member

Comment 4 by bugdroid1@chromium.org, Feb 1 2018

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

commit 88e8ebf96d31393069a54b8b8c9feedd96e0d273
Author: Marijn Kruisselbrink <mek@chromium.org>
Date: Thu Feb 01 18:26:42 2018

Add a few more blob URL tests, checking for races with revoking and resolving.

Revoking right after navigating and/or loading script should not break
the loading.

Bug: 800901
Change-Id: I5b2fc378ae4681fb4d42e1e3742111f67a2d1a41
Reviewed-on: https://chromium-review.googlesource.com/894843
Commit-Queue: Marijn Kruisselbrink <mek@chromium.org>
Reviewed-by: Victor Costan <pwnall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#533743}
[modify] https://crrev.com/88e8ebf96d31393069a54b8b8c9feedd96e0d273/third_party/WebKit/LayoutTests/TestExpectations
[add] https://crrev.com/88e8ebf96d31393069a54b8b8c9feedd96e0d273/third_party/WebKit/LayoutTests/external/wpt/FileAPI/url/url-in-tags-revoke.window.js

Project Member

Comment 5 by bugdroid1@chromium.org, Feb 1 2018

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

commit 64b2dfeff71513573aebd43d312c367fb841e29e
Author: Marijn Kruisselbrink <mek@chromium.org>
Date: Thu Feb 01 20:24:40 2018

Change mojo API to get from blob URL to URLLoader.

Before BlobURLStore resolved URLs to Blob instances, and Blob then had
a CreateLoader method. After this BlobURLStore instead resolves a URL to
a URLLoaderFactory instance, where that instance can only load the specific
blob URL.

This achieves two goals:
 - Eliminate dependency from Blob mojo interface to URLLoader code, which
   should reduce the amount of code needed for java mojo bindings (at least
   until the network service actually gets used by android).
 - Makes it easier to actually implement blob URL loading in the renderer as
   all the loading code eventually expects a URLLoaderFactory anyway.

Bug: 807289, 800901
Change-Id: Ibed4d9819029ce5d94d312d6acccb18ab2f82dd9
Reviewed-on: https://chromium-review.googlesource.com/894285
Commit-Queue: Marijn Kruisselbrink <mek@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Cr-Commit-Position: refs/heads/master@{#533797}
[modify] https://crrev.com/64b2dfeff71513573aebd43d312c367fb841e29e/content/browser/blob_storage/blob_url_loader_factory.h
[modify] https://crrev.com/64b2dfeff71513573aebd43d312c367fb841e29e/content/browser/blob_storage/blob_url_unittest.cc
[modify] https://crrev.com/64b2dfeff71513573aebd43d312c367fb841e29e/storage/browser/BUILD.gn
[modify] https://crrev.com/64b2dfeff71513573aebd43d312c367fb841e29e/storage/browser/blob/blob_impl.cc
[modify] https://crrev.com/64b2dfeff71513573aebd43d312c367fb841e29e/storage/browser/blob/blob_impl.h
[modify] https://crrev.com/64b2dfeff71513573aebd43d312c367fb841e29e/storage/browser/blob/blob_registry_impl_unittest.cc
[add] https://crrev.com/64b2dfeff71513573aebd43d312c367fb841e29e/storage/browser/blob/blob_url_loader_factory.cc
[add] https://crrev.com/64b2dfeff71513573aebd43d312c367fb841e29e/storage/browser/blob/blob_url_loader_factory.h
[modify] https://crrev.com/64b2dfeff71513573aebd43d312c367fb841e29e/storage/browser/blob/blob_url_store_impl.cc
[modify] https://crrev.com/64b2dfeff71513573aebd43d312c367fb841e29e/storage/browser/blob/blob_url_store_impl.h
[modify] https://crrev.com/64b2dfeff71513573aebd43d312c367fb841e29e/third_party/WebKit/Source/platform/blob/testing/FakeBlob.cpp
[modify] https://crrev.com/64b2dfeff71513573aebd43d312c367fb841e29e/third_party/WebKit/Source/platform/blob/testing/FakeBlob.h
[modify] https://crrev.com/64b2dfeff71513573aebd43d312c367fb841e29e/third_party/WebKit/Source/platform/blob/testing/FakeBlobURLStore.cpp
[modify] https://crrev.com/64b2dfeff71513573aebd43d312c367fb841e29e/third_party/WebKit/Source/platform/blob/testing/FakeBlobURLStore.h
[modify] https://crrev.com/64b2dfeff71513573aebd43d312c367fb841e29e/third_party/WebKit/common/blob/blob.mojom
[modify] https://crrev.com/64b2dfeff71513573aebd43d312c367fb841e29e/third_party/WebKit/common/blob/blob_url_store.mojom

Comment 6 by mek@chromium.org, Feb 5 2018

Blocking: 808759
Project Member

Comment 7 by bugdroid1@chromium.org, Feb 9 2018

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

commit 20c2e2937980e39373edc4446369c7410aa38585
Author: Marijn Kruisselbrink <mek@chromium.org>
Date: Fri Feb 09 22:07:57 2018

[Mojo Blob URLs] Refactor Blob URL loading for subresources.

This changes the XHR and fetch codepaths to resolve blob URLs earlier
(i.e when the request is created rather than when the fetch is made), in
order to fix bugs where the blob URL is revoked after creating a request
but before fetching.

This also addresses race conditions between revoking blob URLs and
fetching them by resolving a blob URL as soon as possible for subresource
requests.

Not addressed yet are navigation and download requests, that will be
done in follow ups.

Bug: 800901, 800898,  695031 , 807435
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_mojo
Change-Id: Ifd5eb11abaf04c091c51e607fdaeafa0c89bc1a9
Reviewed-on: https://chromium-review.googlesource.com/893606
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Reviewed-by: Yutaka Hirano <yhirano@chromium.org>
Commit-Queue: Marijn Kruisselbrink <mek@chromium.org>
Cr-Commit-Position: refs/heads/master@{#535845}
[modify] https://crrev.com/20c2e2937980e39373edc4446369c7410aa38585/content/renderer/renderer_blink_platform_impl.cc
[modify] https://crrev.com/20c2e2937980e39373edc4446369c7410aa38585/content/renderer/renderer_blink_platform_impl.h
[modify] https://crrev.com/20c2e2937980e39373edc4446369c7410aa38585/content/renderer/service_worker/service_worker_fetch_context_impl.cc
[modify] https://crrev.com/20c2e2937980e39373edc4446369c7410aa38585/content/renderer/service_worker/service_worker_fetch_context_impl.h
[modify] https://crrev.com/20c2e2937980e39373edc4446369c7410aa38585/content/renderer/service_worker/worker_fetch_context_impl.cc
[modify] https://crrev.com/20c2e2937980e39373edc4446369c7410aa38585/content/renderer/service_worker/worker_fetch_context_impl.h
[modify] https://crrev.com/20c2e2937980e39373edc4446369c7410aa38585/third_party/WebKit/LayoutTests/FlagExpectations/site-per-process
[modify] https://crrev.com/20c2e2937980e39373edc4446369c7410aa38585/third_party/WebKit/LayoutTests/NeverFixTests
[modify] https://crrev.com/20c2e2937980e39373edc4446369c7410aa38585/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/20c2e2937980e39373edc4446369c7410aa38585/third_party/WebKit/LayoutTests/VirtualTestSuites
[add] https://crrev.com/20c2e2937980e39373edc4446369c7410aa38585/third_party/WebKit/LayoutTests/virtual/mojo-blob-urls/external/wpt/FileAPI/url/README.txt
[add] https://crrev.com/20c2e2937980e39373edc4446369c7410aa38585/third_party/WebKit/LayoutTests/virtual/mojo-blob-urls/external/wpt/FileAPI/url/cross-global-revoke.sub-expected.txt
[add] https://crrev.com/20c2e2937980e39373edc4446369c7410aa38585/third_party/WebKit/LayoutTests/virtual/mojo-blob-urls/external/wpt/FileAPI/url/url-with-fetch.any-expected.txt
[add] https://crrev.com/20c2e2937980e39373edc4446369c7410aa38585/third_party/WebKit/LayoutTests/virtual/mojo-blob-urls/external/wpt/FileAPI/url/url-with-xhr.any-expected.txt
[modify] https://crrev.com/20c2e2937980e39373edc4446369c7410aa38585/third_party/WebKit/Source/core/fetch/FetchManager.cpp
[modify] https://crrev.com/20c2e2937980e39373edc4446369c7410aa38585/third_party/WebKit/Source/core/fetch/FetchRequestData.cpp
[modify] https://crrev.com/20c2e2937980e39373edc4446369c7410aa38585/third_party/WebKit/Source/core/fetch/FetchRequestData.h
[modify] https://crrev.com/20c2e2937980e39373edc4446369c7410aa38585/third_party/WebKit/Source/core/fetch/Request.cpp
[modify] https://crrev.com/20c2e2937980e39373edc4446369c7410aa38585/third_party/WebKit/Source/core/fileapi/PublicURLManager.cpp
[modify] https://crrev.com/20c2e2937980e39373edc4446369c7410aa38585/third_party/WebKit/Source/core/fileapi/PublicURLManager.h
[modify] https://crrev.com/20c2e2937980e39373edc4446369c7410aa38585/third_party/WebKit/Source/core/loader/FrameFetchContext.cpp
[modify] https://crrev.com/20c2e2937980e39373edc4446369c7410aa38585/third_party/WebKit/Source/core/loader/FrameFetchContext.h
[modify] https://crrev.com/20c2e2937980e39373edc4446369c7410aa38585/third_party/WebKit/Source/core/loader/ThreadableLoaderTest.cpp
[modify] https://crrev.com/20c2e2937980e39373edc4446369c7410aa38585/third_party/WebKit/Source/core/loader/WorkerFetchContext.cpp
[modify] https://crrev.com/20c2e2937980e39373edc4446369c7410aa38585/third_party/WebKit/Source/core/loader/WorkerFetchContext.h
[modify] https://crrev.com/20c2e2937980e39373edc4446369c7410aa38585/third_party/WebKit/Source/core/xmlhttprequest/XMLHttpRequest.cpp
[modify] https://crrev.com/20c2e2937980e39373edc4446369c7410aa38585/third_party/WebKit/Source/core/xmlhttprequest/XMLHttpRequest.h
[modify] https://crrev.com/20c2e2937980e39373edc4446369c7410aa38585/third_party/WebKit/Source/platform/blob/BUILD.gn
[modify] https://crrev.com/20c2e2937980e39373edc4446369c7410aa38585/third_party/WebKit/Source/platform/loader/BUILD.gn
[modify] https://crrev.com/20c2e2937980e39373edc4446369c7410aa38585/third_party/WebKit/Source/platform/loader/fetch/FetchContext.h
[modify] https://crrev.com/20c2e2937980e39373edc4446369c7410aa38585/third_party/WebKit/Source/platform/loader/fetch/ResourceLoader.cpp
[modify] https://crrev.com/20c2e2937980e39373edc4446369c7410aa38585/third_party/WebKit/Source/platform/loader/fetch/ResourceLoaderOptions.h
[modify] https://crrev.com/20c2e2937980e39373edc4446369c7410aa38585/third_party/WebKit/Source/platform/loader/testing/MockFetchContext.h
[modify] https://crrev.com/20c2e2937980e39373edc4446369c7410aa38585/third_party/WebKit/Tools/Scripts/audit-non-blink-usage.py
[modify] https://crrev.com/20c2e2937980e39373edc4446369c7410aa38585/third_party/WebKit/public/platform/Platform.h
[modify] https://crrev.com/20c2e2937980e39373edc4446369c7410aa38585/third_party/WebKit/public/platform/WebWorkerFetchContext.h

Project Member

Comment 8 by bugdroid1@chromium.org, Feb 12 2018

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

commit 56baee6050c73aa201ec2144a027216a99aeed55
Author: Marijn Kruisselbrink <mek@chromium.org>
Date: Mon Feb 12 20:46:20 2018

[Mojo Blob URLs] Enable mojo blob URLs when network service is enabled.

The only reason blob URLs are still using IPC is because of ordering
issues between revoking blob URLs and fetching them. Those ordering
issues are present anyway with the network service, so we don't lose
anything by switching mojo blob URLs on for the network service.

Furthermore fixing these ordering issues for the network service will
require mojo blob URLs, so this gets us somewhat closer to that too.

Also getting rid of the virtual test suite for mojo blob URLs since
there really isn't much benefit for that if the network service flag
already covers it.

And some general cleanup of mojo blob and blob url related virtual test
expectations.

Bug: 800901
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2;master.tryserver.chromium.linux:linux_mojo
Change-Id: I4ffef220fc10fb07b44f329f8b46d61f408478d0
Reviewed-on: https://chromium-review.googlesource.com/907382
Commit-Queue: Marijn Kruisselbrink <mek@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Cr-Commit-Position: refs/heads/master@{#536179}
[modify] https://crrev.com/56baee6050c73aa201ec2144a027216a99aeed55/content/child/runtime_features.cc
[modify] https://crrev.com/56baee6050c73aa201ec2144a027216a99aeed55/third_party/WebKit/LayoutTests/FlagExpectations/disable-blink-features=RootLayerScrolling
[modify] https://crrev.com/56baee6050c73aa201ec2144a027216a99aeed55/third_party/WebKit/LayoutTests/FlagExpectations/site-per-process
[modify] https://crrev.com/56baee6050c73aa201ec2144a027216a99aeed55/third_party/WebKit/LayoutTests/MSANExpectations
[modify] https://crrev.com/56baee6050c73aa201ec2144a027216a99aeed55/third_party/WebKit/LayoutTests/NeverFixTests
[modify] https://crrev.com/56baee6050c73aa201ec2144a027216a99aeed55/third_party/WebKit/LayoutTests/PRESUBMIT.py
[modify] https://crrev.com/56baee6050c73aa201ec2144a027216a99aeed55/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/56baee6050c73aa201ec2144a027216a99aeed55/third_party/WebKit/LayoutTests/VirtualTestSuites
[rename] https://crrev.com/56baee6050c73aa201ec2144a027216a99aeed55/third_party/WebKit/LayoutTests/flag-specific/enable-features=NetworkService/external/wpt/FileAPI/url/cross-global-revoke.sub-expected.txt
[rename] https://crrev.com/56baee6050c73aa201ec2144a027216a99aeed55/third_party/WebKit/LayoutTests/flag-specific/enable-features=NetworkService/external/wpt/FileAPI/url/url-with-fetch.any-expected.txt
[rename] https://crrev.com/56baee6050c73aa201ec2144a027216a99aeed55/third_party/WebKit/LayoutTests/flag-specific/enable-features=NetworkService/external/wpt/FileAPI/url/url-with-xhr.any-expected.txt
[delete] https://crrev.com/6c1e4da67bd310563da252e6db49792c05baf1ae/third_party/WebKit/LayoutTests/virtual/mojo-blob-urls/external/wpt/FileAPI/url/README.txt
[modify] https://crrev.com/56baee6050c73aa201ec2144a027216a99aeed55/third_party/WebKit/Source/platform/exported/WebRuntimeFeatures.cpp
[modify] https://crrev.com/56baee6050c73aa201ec2144a027216a99aeed55/third_party/WebKit/public/platform/WebRuntimeFeatures.h

Project Member

Comment 9 by bugdroid1@chromium.org, Apr 3 2018

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

commit 07bf59d55b7f57bc915b9f718606b09d2b4a1383
Author: Marijn Kruisselbrink <mek@chromium.org>
Date: Tue Apr 03 21:50:25 2018

[Mojo Blob URLs] Resolve navigation blob URLs in blink.

This makes sure that no race conditions exist between navigating to a
blob URL and revoking it. Currently only implemented for the network
service code path.

Also add one more navigation-then-revoke WPT test, as the existing tests
didn't cover the NavigationScheduler code-path.

Design doc: https://docs.google.com/document/d/1DqVcTWE9Qb_3KpIRH2bFV-6hWEr8S92c4ppY67YL1KI/edit#heading=h.n4fzuc6mgziv

Further navigation cases are handled in https://chromium-review.googlesource.com/c/chromium/src/+/899508.

Bug: 800901
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_mojo
Change-Id: Icf9a4725526b4329a2841626977292802ad2fa7a
Reviewed-on: https://chromium-review.googlesource.com/898009
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Commit-Queue: Marijn Kruisselbrink <mek@chromium.org>
Cr-Commit-Position: refs/heads/master@{#547842}
[modify] https://crrev.com/07bf59d55b7f57bc915b9f718606b09d2b4a1383/content/browser/blob_storage/chrome_blob_storage_context.cc
[modify] https://crrev.com/07bf59d55b7f57bc915b9f718606b09d2b4a1383/content/browser/blob_storage/chrome_blob_storage_context.h
[modify] https://crrev.com/07bf59d55b7f57bc915b9f718606b09d2b4a1383/content/browser/browser_side_navigation_browsertest.cc
[modify] https://crrev.com/07bf59d55b7f57bc915b9f718606b09d2b4a1383/content/browser/frame_host/navigation_request.cc
[modify] https://crrev.com/07bf59d55b7f57bc915b9f718606b09d2b4a1383/content/browser/frame_host/navigation_request.h
[modify] https://crrev.com/07bf59d55b7f57bc915b9f718606b09d2b4a1383/content/browser/frame_host/navigation_request_info.cc
[modify] https://crrev.com/07bf59d55b7f57bc915b9f718606b09d2b4a1383/content/browser/frame_host/navigation_request_info.h
[modify] https://crrev.com/07bf59d55b7f57bc915b9f718606b09d2b4a1383/content/browser/frame_host/navigator.cc
[modify] https://crrev.com/07bf59d55b7f57bc915b9f718606b09d2b4a1383/content/browser/frame_host/navigator.h
[modify] https://crrev.com/07bf59d55b7f57bc915b9f718606b09d2b4a1383/content/browser/frame_host/navigator_impl.cc
[modify] https://crrev.com/07bf59d55b7f57bc915b9f718606b09d2b4a1383/content/browser/frame_host/navigator_impl.h
[modify] https://crrev.com/07bf59d55b7f57bc915b9f718606b09d2b4a1383/content/browser/frame_host/render_frame_host_impl.cc
[modify] https://crrev.com/07bf59d55b7f57bc915b9f718606b09d2b4a1383/content/browser/frame_host/render_frame_host_impl.h
[modify] https://crrev.com/07bf59d55b7f57bc915b9f718606b09d2b4a1383/content/browser/loader/navigation_url_loader_network_service.cc
[modify] https://crrev.com/07bf59d55b7f57bc915b9f718606b09d2b4a1383/content/browser/loader/navigation_url_loader_network_service_unittest.cc
[modify] https://crrev.com/07bf59d55b7f57bc915b9f718606b09d2b4a1383/content/browser/loader/navigation_url_loader_unittest.cc
[modify] https://crrev.com/07bf59d55b7f57bc915b9f718606b09d2b4a1383/content/browser/loader/resource_dispatcher_host_unittest.cc
[modify] https://crrev.com/07bf59d55b7f57bc915b9f718606b09d2b4a1383/content/common/frame.mojom
[modify] https://crrev.com/07bf59d55b7f57bc915b9f718606b09d2b4a1383/content/public/test/navigation_simulator.cc
[modify] https://crrev.com/07bf59d55b7f57bc915b9f718606b09d2b4a1383/content/renderer/render_frame_impl.cc
[modify] https://crrev.com/07bf59d55b7f57bc915b9f718606b09d2b4a1383/content/renderer/render_frame_impl.h
[modify] https://crrev.com/07bf59d55b7f57bc915b9f718606b09d2b4a1383/content/test/test_render_frame.cc
[modify] https://crrev.com/07bf59d55b7f57bc915b9f718606b09d2b4a1383/content/test/test_render_frame_host.cc
[modify] https://crrev.com/07bf59d55b7f57bc915b9f718606b09d2b4a1383/storage/browser/blob/blob_storage_context.h
[modify] https://crrev.com/07bf59d55b7f57bc915b9f718606b09d2b4a1383/storage/browser/blob/blob_storage_registry.cc
[modify] https://crrev.com/07bf59d55b7f57bc915b9f718606b09d2b4a1383/storage/browser/blob/blob_storage_registry.h
[modify] https://crrev.com/07bf59d55b7f57bc915b9f718606b09d2b4a1383/storage/browser/blob/blob_url_loader_factory.cc
[modify] https://crrev.com/07bf59d55b7f57bc915b9f718606b09d2b4a1383/storage/browser/blob/blob_url_loader_factory.h
[modify] https://crrev.com/07bf59d55b7f57bc915b9f718606b09d2b4a1383/storage/browser/blob/blob_url_store_impl.cc
[modify] https://crrev.com/07bf59d55b7f57bc915b9f718606b09d2b4a1383/storage/browser/blob/blob_url_store_impl.h
[modify] https://crrev.com/07bf59d55b7f57bc915b9f718606b09d2b4a1383/third_party/WebKit/LayoutTests/external/wpt/FileAPI/url/url-in-tags-revoke.window.js
[modify] https://crrev.com/07bf59d55b7f57bc915b9f718606b09d2b4a1383/third_party/WebKit/Source/core/exported/LocalFrameClientImpl.cpp
[modify] https://crrev.com/07bf59d55b7f57bc915b9f718606b09d2b4a1383/third_party/WebKit/Source/core/exported/LocalFrameClientImpl.h
[modify] https://crrev.com/07bf59d55b7f57bc915b9f718606b09d2b4a1383/third_party/WebKit/Source/core/fileapi/PublicURLManager.cpp
[modify] https://crrev.com/07bf59d55b7f57bc915b9f718606b09d2b4a1383/third_party/WebKit/Source/core/fileapi/PublicURLManager.h
[modify] https://crrev.com/07bf59d55b7f57bc915b9f718606b09d2b4a1383/third_party/WebKit/Source/core/frame/LocalFrameClient.h
[modify] https://crrev.com/07bf59d55b7f57bc915b9f718606b09d2b4a1383/third_party/WebKit/Source/core/loader/EmptyClients.cpp
[modify] https://crrev.com/07bf59d55b7f57bc915b9f718606b09d2b4a1383/third_party/WebKit/Source/core/loader/EmptyClients.h
[modify] https://crrev.com/07bf59d55b7f57bc915b9f718606b09d2b4a1383/third_party/WebKit/Source/core/loader/FrameLoadRequest.cpp
[modify] https://crrev.com/07bf59d55b7f57bc915b9f718606b09d2b4a1383/third_party/WebKit/Source/core/loader/FrameLoadRequest.h
[modify] https://crrev.com/07bf59d55b7f57bc915b9f718606b09d2b4a1383/third_party/WebKit/Source/core/loader/FrameLoader.cpp
[modify] https://crrev.com/07bf59d55b7f57bc915b9f718606b09d2b4a1383/third_party/WebKit/Source/core/loader/FrameLoader.h
[modify] https://crrev.com/07bf59d55b7f57bc915b9f718606b09d2b4a1383/third_party/WebKit/Source/core/loader/NavigationScheduler.cpp
[modify] https://crrev.com/07bf59d55b7f57bc915b9f718606b09d2b4a1383/third_party/WebKit/Source/platform/blob/testing/FakeBlobURLStore.cpp
[modify] https://crrev.com/07bf59d55b7f57bc915b9f718606b09d2b4a1383/third_party/WebKit/Source/platform/blob/testing/FakeBlobURLStore.h
[modify] https://crrev.com/07bf59d55b7f57bc915b9f718606b09d2b4a1383/third_party/WebKit/public/mojom/blob/blob_url_store.mojom
[modify] https://crrev.com/07bf59d55b7f57bc915b9f718606b09d2b4a1383/third_party/WebKit/public/web/WebFrameClient.h

Project Member

Comment 10 by bugdroid1@chromium.org, Apr 27 2018

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

commit 4d4aa99b532b9f5685316b0fa85fd6ca50667216
Author: Marijn Kruisselbrink <mek@chromium.org>
Date: Fri Apr 27 18:03:27 2018

[Mojo Blob URLs] Handle downloads.

This changes the DownloadURL IPC to pass along a blob URL token, and
uses that to later construct a URLLoaderFactory for the blob URL.

Only works with the network service enabled, but at least fixes ordering
issues already present with the network service and downloading soon to
be revoked blob URLs.

Eventually this should let us remove the other blob specific codepaths
from (at least the network service branch of) the downloads code.

Design doc: https://docs.google.com/document/d/1DqVcTWE9Qb_3KpIRH2bFV-6hWEr8S92c4ppY67YL1KI/edit#heading=h.pvtybbkgf0vd

Bug: 800901,  808759 
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_mojo
Change-Id: I5879fdc65f4843a1296a49496fc73ed6c3a04be1
Reviewed-on: https://chromium-review.googlesource.com/1026808
Commit-Queue: Marijn Kruisselbrink <mek@chromium.org>
Reviewed-by: Min Qin <qinmin@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Cr-Commit-Position: refs/heads/master@{#554418}
[modify] https://crrev.com/4d4aa99b532b9f5685316b0fa85fd6ca50667216/components/download/content/internal/download_driver_impl.cc
[modify] https://crrev.com/4d4aa99b532b9f5685316b0fa85fd6ca50667216/content/browser/BUILD.gn
[modify] https://crrev.com/4d4aa99b532b9f5685316b0fa85fd6ca50667216/content/browser/bad_message.h
[modify] https://crrev.com/4d4aa99b532b9f5685316b0fa85fd6ca50667216/content/browser/download/download_manager_impl.cc
[modify] https://crrev.com/4d4aa99b532b9f5685316b0fa85fd6ca50667216/content/browser/download/download_manager_impl.h
[add] https://crrev.com/4d4aa99b532b9f5685316b0fa85fd6ca50667216/content/browser/download/download_url_loader_factory_getter_impl.cc
[add] https://crrev.com/4d4aa99b532b9f5685316b0fa85fd6ca50667216/content/browser/download/download_url_loader_factory_getter_impl.h
[modify] https://crrev.com/4d4aa99b532b9f5685316b0fa85fd6ca50667216/content/browser/frame_host/render_frame_message_filter.cc
[modify] https://crrev.com/4d4aa99b532b9f5685316b0fa85fd6ca50667216/content/browser/frame_host/render_frame_message_filter.h
[modify] https://crrev.com/4d4aa99b532b9f5685316b0fa85fd6ca50667216/content/browser/renderer_host/render_view_host_unittest.cc
[modify] https://crrev.com/4d4aa99b532b9f5685316b0fa85fd6ca50667216/content/common/frame_messages.h
[modify] https://crrev.com/4d4aa99b532b9f5685316b0fa85fd6ca50667216/content/public/browser/download_manager.h
[modify] https://crrev.com/4d4aa99b532b9f5685316b0fa85fd6ca50667216/content/public/test/mock_download_manager.h
[modify] https://crrev.com/4d4aa99b532b9f5685316b0fa85fd6ca50667216/content/renderer/render_frame_impl.cc
[modify] https://crrev.com/4d4aa99b532b9f5685316b0fa85fd6ca50667216/content/renderer/render_frame_impl.h
[modify] https://crrev.com/4d4aa99b532b9f5685316b0fa85fd6ca50667216/content/shell/test_runner/web_frame_test_client.cc
[modify] https://crrev.com/4d4aa99b532b9f5685316b0fa85fd6ca50667216/content/shell/test_runner/web_frame_test_client.h
[modify] https://crrev.com/4d4aa99b532b9f5685316b0fa85fd6ca50667216/content/shell/test_runner/web_frame_test_proxy.h
[modify] https://crrev.com/4d4aa99b532b9f5685316b0fa85fd6ca50667216/testing/buildbot/filters/mojo.fyi.network_content_browsertests.filter
[modify] https://crrev.com/4d4aa99b532b9f5685316b0fa85fd6ca50667216/third_party/blink/public/web/web_frame_client.h
[modify] https://crrev.com/4d4aa99b532b9f5685316b0fa85fd6ca50667216/third_party/blink/renderer/core/exported/local_frame_client_impl.cc
[modify] https://crrev.com/4d4aa99b532b9f5685316b0fa85fd6ca50667216/tools/metrics/histograms/enums.xml

Project Member

Comment 11 by bugdroid1@chromium.org, May 24 2018

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

commit 7a0d5e18cc6cfc6d4c96f94c170d37ada75d16dc
Author: Marijn Kruisselbrink <mek@chromium.org>
Date: Thu May 24 22:55:09 2018

[Mojo Blob URLs] Handle more navigation cases.

This changes two more IPCs to resolve blob URLs in blink before
sending the request to the browser, hopefully covering all cases.

Still only works with the network service enabled (and that's
probably not going to change), but at least fixes ordering issues
the network service had between resolving and revoking blob URLs.

Design doc: https://docs.google.com/document/d/1DqVcTWE9Qb_3KpIRH2bFV-6hWEr8S92c4ppY67YL1KI/edit#heading=h.n4fzuc6mgziv

Bug: 800901
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_mojo
Change-Id: Iad88fc87264b248d15b03bdad2c24d2c5a46d9df
Reviewed-on: https://chromium-review.googlesource.com/899508
Reviewed-by: Camille Lamy <clamy@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Reviewed-by: Scott Violet <sky@chromium.org>
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Commit-Queue: Marijn Kruisselbrink <mek@chromium.org>
Cr-Commit-Position: refs/heads/master@{#561670}
[modify] https://crrev.com/7a0d5e18cc6cfc6d4c96f94c170d37ada75d16dc/chrome/browser/android/tab_state.cc
[modify] https://crrev.com/7a0d5e18cc6cfc6d4c96f94c170d37ada75d16dc/chrome/browser/browser_about_handler_unittest.cc
[modify] https://crrev.com/7a0d5e18cc6cfc6d4c96f94c170d37ada75d16dc/chrome/browser/media/webrtc/tab_desktop_media_list_unittest.cc
[modify] https://crrev.com/7a0d5e18cc6cfc6d4c96f94c170d37ada75d16dc/chrome/browser/page_load_metrics/observers/session_restore_page_load_metrics_observer_unittest.cc
[modify] https://crrev.com/7a0d5e18cc6cfc6d4c96f94c170d37ada75d16dc/chrome/browser/search/search_unittest.cc
[modify] https://crrev.com/7a0d5e18cc6cfc6d4c96f94c170d37ada75d16dc/chrome/browser/ssl/ssl_browsertest.cc
[modify] https://crrev.com/7a0d5e18cc6cfc6d4c96f94c170d37ada75d16dc/chrome/browser/ui/browser.cc
[modify] https://crrev.com/7a0d5e18cc6cfc6d4c96f94c170d37ada75d16dc/chrome/browser/ui/browser_navigator.cc
[modify] https://crrev.com/7a0d5e18cc6cfc6d4c96f94c170d37ada75d16dc/chrome/browser/ui/browser_navigator_params.h
[modify] https://crrev.com/7a0d5e18cc6cfc6d4c96f94c170d37ada75d16dc/chrome/browser/ui/omnibox/chrome_omnibox_navigation_observer_unittest.cc
[modify] https://crrev.com/7a0d5e18cc6cfc6d4c96f94c170d37ada75d16dc/components/sessions/content/content_serialized_navigation_builder.cc
[modify] https://crrev.com/7a0d5e18cc6cfc6d4c96f94c170d37ada75d16dc/content/browser/bad_message.h
[modify] https://crrev.com/7a0d5e18cc6cfc6d4c96f94c170d37ada75d16dc/content/browser/frame_host/frame_navigation_entry.cc
[modify] https://crrev.com/7a0d5e18cc6cfc6d4c96f94c170d37ada75d16dc/content/browser/frame_host/frame_navigation_entry.h
[modify] https://crrev.com/7a0d5e18cc6cfc6d4c96f94c170d37ada75d16dc/content/browser/frame_host/navigation_controller_impl.cc
[modify] https://crrev.com/7a0d5e18cc6cfc6d4c96f94c170d37ada75d16dc/content/browser/frame_host/navigation_controller_impl.h
[modify] https://crrev.com/7a0d5e18cc6cfc6d4c96f94c170d37ada75d16dc/content/browser/frame_host/navigation_controller_impl_browsertest.cc
[modify] https://crrev.com/7a0d5e18cc6cfc6d4c96f94c170d37ada75d16dc/content/browser/frame_host/navigation_controller_impl_unittest.cc
[modify] https://crrev.com/7a0d5e18cc6cfc6d4c96f94c170d37ada75d16dc/content/browser/frame_host/navigation_entry_impl.cc
[modify] https://crrev.com/7a0d5e18cc6cfc6d4c96f94c170d37ada75d16dc/content/browser/frame_host/navigation_entry_impl.h
[modify] https://crrev.com/7a0d5e18cc6cfc6d4c96f94c170d37ada75d16dc/content/browser/frame_host/navigation_entry_impl_unittest.cc
[modify] https://crrev.com/7a0d5e18cc6cfc6d4c96f94c170d37ada75d16dc/content/browser/frame_host/navigation_request.cc
[modify] https://crrev.com/7a0d5e18cc6cfc6d4c96f94c170d37ada75d16dc/content/browser/frame_host/navigator.h
[modify] https://crrev.com/7a0d5e18cc6cfc6d4c96f94c170d37ada75d16dc/content/browser/frame_host/navigator_impl.cc
[modify] https://crrev.com/7a0d5e18cc6cfc6d4c96f94c170d37ada75d16dc/content/browser/frame_host/navigator_impl.h
[modify] https://crrev.com/7a0d5e18cc6cfc6d4c96f94c170d37ada75d16dc/content/browser/frame_host/render_frame_host_impl.cc
[modify] https://crrev.com/7a0d5e18cc6cfc6d4c96f94c170d37ada75d16dc/content/browser/frame_host/render_frame_host_manager_browsertest.cc
[modify] https://crrev.com/7a0d5e18cc6cfc6d4c96f94c170d37ada75d16dc/content/browser/frame_host/render_frame_host_manager_unittest.cc
[modify] https://crrev.com/7a0d5e18cc6cfc6d4c96f94c170d37ada75d16dc/content/browser/frame_host/render_frame_proxy_host.cc
[modify] https://crrev.com/7a0d5e18cc6cfc6d4c96f94c170d37ada75d16dc/content/browser/isolated_origin_browsertest.cc
[modify] https://crrev.com/7a0d5e18cc6cfc6d4c96f94c170d37ada75d16dc/content/browser/security_exploit_browsertest.cc
[modify] https://crrev.com/7a0d5e18cc6cfc6d4c96f94c170d37ada75d16dc/content/browser/site_instance_impl_unittest.cc
[modify] https://crrev.com/7a0d5e18cc6cfc6d4c96f94c170d37ada75d16dc/content/browser/web_contents/web_contents_impl.cc
[modify] https://crrev.com/7a0d5e18cc6cfc6d4c96f94c170d37ada75d16dc/content/browser/web_contents/web_contents_impl_unittest.cc
[modify] https://crrev.com/7a0d5e18cc6cfc6d4c96f94c170d37ada75d16dc/content/common/frame_messages.h
[modify] https://crrev.com/7a0d5e18cc6cfc6d4c96f94c170d37ada75d16dc/content/public/browser/navigation_controller.h
[modify] https://crrev.com/7a0d5e18cc6cfc6d4c96f94c170d37ada75d16dc/content/public/browser/page_navigator.h
[modify] https://crrev.com/7a0d5e18cc6cfc6d4c96f94c170d37ada75d16dc/content/renderer/render_frame_impl.cc
[modify] https://crrev.com/7a0d5e18cc6cfc6d4c96f94c170d37ada75d16dc/content/renderer/render_frame_proxy.cc
[modify] https://crrev.com/7a0d5e18cc6cfc6d4c96f94c170d37ada75d16dc/content/renderer/render_frame_proxy.h
[modify] https://crrev.com/7a0d5e18cc6cfc6d4c96f94c170d37ada75d16dc/content/shell/browser/shell.cc
[modify] https://crrev.com/7a0d5e18cc6cfc6d4c96f94c170d37ada75d16dc/third_party/WebKit/LayoutTests/FlagExpectations/enable-features=NetworkService
[modify] https://crrev.com/7a0d5e18cc6cfc6d4c96f94c170d37ada75d16dc/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/7a0d5e18cc6cfc6d4c96f94c170d37ada75d16dc/third_party/WebKit/LayoutTests/external/wpt/FileAPI/url/url-in-tags-revoke.window.js
[add] https://crrev.com/7a0d5e18cc6cfc6d4c96f94c170d37ada75d16dc/third_party/WebKit/LayoutTests/external/wpt/FileAPI/url/url-reload.window-expected.txt
[add] https://crrev.com/7a0d5e18cc6cfc6d4c96f94c170d37ada75d16dc/third_party/WebKit/LayoutTests/external/wpt/FileAPI/url/url-reload.window.js
[modify] https://crrev.com/7a0d5e18cc6cfc6d4c96f94c170d37ada75d16dc/third_party/blink/public/web/web_remote_frame_client.h
[modify] https://crrev.com/7a0d5e18cc6cfc6d4c96f94c170d37ada75d16dc/third_party/blink/renderer/core/exported/web_frame_test.cc
[modify] https://crrev.com/7a0d5e18cc6cfc6d4c96f94c170d37ada75d16dc/third_party/blink/renderer/core/frame/remote_frame.cc
[modify] https://crrev.com/7a0d5e18cc6cfc6d4c96f94c170d37ada75d16dc/third_party/blink/renderer/core/frame/remote_frame_client.h
[modify] https://crrev.com/7a0d5e18cc6cfc6d4c96f94c170d37ada75d16dc/third_party/blink/renderer/core/frame/remote_frame_client_impl.cc
[modify] https://crrev.com/7a0d5e18cc6cfc6d4c96f94c170d37ada75d16dc/third_party/blink/renderer/core/frame/remote_frame_client_impl.h
[modify] https://crrev.com/7a0d5e18cc6cfc6d4c96f94c170d37ada75d16dc/third_party/blink/renderer/core/loader/empty_clients.h
[modify] https://crrev.com/7a0d5e18cc6cfc6d4c96f94c170d37ada75d16dc/tools/metrics/histograms/enums.xml

Comment 12 by mek@chromium.org, May 25 2018

Blockedon: 705114
This is pretty much done, although actually shipping this is blocked on 705114, removing the stream concept from loading code. This is because the new blob URL resolution code path doesn't support the stream concept.
Project Member

Comment 13 by bugdroid1@chromium.org, May 31 2018

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

commit d91a89c1b9af8b75e9c66bf6a7d4cccd92ad81fd
Author: Marijn Kruisselbrink <mek@chromium.org>
Date: Thu May 31 16:02:14 2018

[Mojo Blob URLs] Bring back virtual test suite.

We should be able to ship this before network service ships, so as a
start bring back a virtual test suite to run the relevant layout tests
with network service disabled.

Mark external/wpt/FileAPI/url/url-in-tags-revoke.window.html as failing
for now, since that test doesn't work without network service yet.

Bug: 800901
Change-Id: I0fbdde464a2ceda984ab7f98fb0f4c960408b03b
Reviewed-on: https://chromium-review.googlesource.com/1073907
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Commit-Queue: Marijn Kruisselbrink <mek@chromium.org>
Cr-Commit-Position: refs/heads/master@{#563257}
[modify] https://crrev.com/d91a89c1b9af8b75e9c66bf6a7d4cccd92ad81fd/content/child/runtime_features.cc
[modify] https://crrev.com/d91a89c1b9af8b75e9c66bf6a7d4cccd92ad81fd/third_party/WebKit/LayoutTests/FlagExpectations/site-per-process
[modify] https://crrev.com/d91a89c1b9af8b75e9c66bf6a7d4cccd92ad81fd/third_party/WebKit/LayoutTests/NeverFixTests
[modify] https://crrev.com/d91a89c1b9af8b75e9c66bf6a7d4cccd92ad81fd/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/d91a89c1b9af8b75e9c66bf6a7d4cccd92ad81fd/third_party/WebKit/LayoutTests/VirtualTestSuites
[add] https://crrev.com/d91a89c1b9af8b75e9c66bf6a7d4cccd92ad81fd/third_party/WebKit/LayoutTests/virtual/mojo-blob-urls/external/wpt/FileAPI/url/README.txt
[add] https://crrev.com/d91a89c1b9af8b75e9c66bf6a7d4cccd92ad81fd/third_party/WebKit/LayoutTests/virtual/mojo-blob-urls/external/wpt/FileAPI/url/cross-global-revoke.sub-expected.txt
[add] https://crrev.com/d91a89c1b9af8b75e9c66bf6a7d4cccd92ad81fd/third_party/WebKit/LayoutTests/virtual/mojo-blob-urls/external/wpt/FileAPI/url/url-with-fetch.any-expected.txt
[add] https://crrev.com/d91a89c1b9af8b75e9c66bf6a7d4cccd92ad81fd/third_party/WebKit/LayoutTests/virtual/mojo-blob-urls/external/wpt/FileAPI/url/url-with-xhr.any-expected.txt

 Issue 849524  has been merged into this issue.
Project Member

Comment 15 by bugdroid1@chromium.org, Jun 5 2018

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

commit 56c7f22838d9847a0df59838b8ff3f083a04d8f8
Author: Dominic Battre <battre@chromium.org>
Date: Tue Jun 05 09:09:12 2018

Label .../wpt/FileAPI/url/sandboxed-iframe.html as timing out

virtual/mojo-blob-urls/external/wpt/FileAPI/url/sandboxed-iframe.html has many
timeouts on all platforms.

TBR=mek@chromium.org

Bug: 800901
Change-Id: I30c70d8865571b5200a35c24d4fa53f75f8e327c
Reviewed-on: https://chromium-review.googlesource.com/1086794
Reviewed-by: Dominic Battré <battre@chromium.org>
Commit-Queue: Dominic Battré <battre@chromium.org>
Cr-Commit-Position: refs/heads/master@{#564415}
[modify] https://crrev.com/56c7f22838d9847a0df59838b8ff3f083a04d8f8/third_party/WebKit/LayoutTests/TestExpectations

Project Member

Comment 16 by bugdroid1@chromium.org, Jun 5 2018

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

commit 8a7fd10be1aa4c8a1f1c7517b41830ffa4ea9355
Author: Marijn Kruisselbrink <mek@chromium.org>
Date: Tue Jun 05 17:30:39 2018

[Mojo Blob URLs] Fix some tests to pass even without network service.

This makes external/wpt/FileAPI/url/url-in-tags-revoke.window.html pass
even if network service isn't enabled, by making sure
NavigationURLLoader uses the blob_url_loader_factory even in the
non-network-service code path.

The same change also makes IsolatedOriginTestWithMojoBlobURLs work
without network service, so change that test to run with just Mojo Blob
URLs enabled as well.

Bug: 800901
Change-Id: I6ef849efcedd9b5baaf0819410a3bd0d999d67a0
Reviewed-on: https://chromium-review.googlesource.com/1081487
Commit-Queue: Marijn Kruisselbrink <mek@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Cr-Commit-Position: refs/heads/master@{#564557}
[modify] https://crrev.com/8a7fd10be1aa4c8a1f1c7517b41830ffa4ea9355/content/browser/isolated_origin_browsertest.cc
[modify] https://crrev.com/8a7fd10be1aa4c8a1f1c7517b41830ffa4ea9355/content/browser/loader/navigation_url_loader_impl.cc
[modify] https://crrev.com/8a7fd10be1aa4c8a1f1c7517b41830ffa4ea9355/third_party/WebKit/LayoutTests/TestExpectations

Components: Blink>Storage>FileAPI
Components: -Blink>FileAPI
Project Member

Comment 19 by bugdroid1@chromium.org, Jun 18 2018

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

commit 08784a11d0299245d3f72ce11e5e721b8cfb2187
Author: Marijn Kruisselbrink <mek@chromium.org>
Date: Mon Jun 18 18:07:51 2018

[Mojo Blob URLs] Make clicking an <a target="blank_"> with a blob URL work correctly.

This goes through a code-path where the blob URL token was incorrectly
dropped, so make sure we copy the token from the old FrameLoadRequest to
the new FrameLoadRequest.

Adds a web-platform-test to verify this behavior, and enables the blob URL browser
tests to also run with MojoBlobURLs enabled. This browser test required another
bug fix in RenderFrameHostImpl.

Cq-Include-Trybots: luci.chromium.try:linux_mojo
Bug: 800901
Change-Id: I87eee70e784dd8cb273f8671f37b00d8a93d9543
Reviewed-on: https://chromium-review.googlesource.com/1102820
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
Commit-Queue: Marijn Kruisselbrink <mek@chromium.org>
Cr-Commit-Position: refs/heads/master@{#568071}
[modify] https://crrev.com/08784a11d0299245d3f72ce11e5e721b8cfb2187/content/browser/blob_storage/blob_url_browsertest.cc
[modify] https://crrev.com/08784a11d0299245d3f72ce11e5e721b8cfb2187/content/browser/frame_host/render_frame_host_impl.cc
[modify] https://crrev.com/08784a11d0299245d3f72ce11e5e721b8cfb2187/third_party/WebKit/LayoutTests/external/wpt/FileAPI/url/url-in-tags-revoke.window.js
[modify] https://crrev.com/08784a11d0299245d3f72ce11e5e721b8cfb2187/third_party/blink/renderer/core/page/create_window.cc

Project Member

Comment 20 by bugdroid1@chromium.org, Jun 18 2018

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

commit 1fe2b88221486a9ea894fe77110ce174672a409a
Author: Marijn Kruisselbrink <mek@chromium.org>
Date: Mon Jun 18 18:37:39 2018

[Blob URLs] Remove NOTREACHED from ProceedWithResponse.

NavigationRequest calls ProceedWithResponse if network service
isn't enabled because MojoAsyncResourceHandler depends on this.
Since we want to start using BlobURLLoader before network service
ships, this means BlobURLLoader.ProceedWithResponse can also be
called and thus shouldn't be a NOTREACHED. Replace with an empty
implementation instead since it isn't pausing the response anyway.

Bug: 800901
Change-Id: I7edc6a1b20f5aac2fa312a3a2770424464cf12df
Reviewed-on: https://chromium-review.googlesource.com/1103061
Commit-Queue: Marijn Kruisselbrink <mek@chromium.org>
Reviewed-by: Arthur Sonzogni <arthursonzogni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#568090}
[modify] https://crrev.com/1fe2b88221486a9ea894fe77110ce174672a409a/storage/browser/blob/blob_url_loader.cc
[modify] https://crrev.com/1fe2b88221486a9ea894fe77110ce174672a409a/storage/browser/blob/blob_url_loader.h

Project Member

Comment 21 by bugdroid1@chromium.org, Jun 20 2018

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

commit 461e4ae9f7eb4d23bf8530987a68525099dc8481
Author: Marijn Kruisselbrink <mek@chromium.org>
Date: Wed Jun 20 21:55:14 2018

[Mojo Blob URLs] Make blob downlods work correctly with mojo blob URLs.

This makes sure the DownloadContentTest.DownloadAttributeBlobURL test
works with mojo blob URLs enabled even when network service isn't
enabled. We want to ship Mojo Blob URLs before network service is ready
to ship, so need to support this in the downloads code as well.

This simply switches DownloadManagerImpl to use the network service code
path whenever a blob_url_loader_factory is passed in.

Bug: 800901
Change-Id: Ib2668a1a7b9544e29e796eb40ac8680265c7e82b
Reviewed-on: https://chromium-review.googlesource.com/1105477
Reviewed-by: Min Qin <qinmin@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Commit-Queue: Marijn Kruisselbrink <mek@chromium.org>
Cr-Commit-Position: refs/heads/master@{#569038}
[modify] https://crrev.com/461e4ae9f7eb4d23bf8530987a68525099dc8481/content/browser/download/download_browsertest.cc
[modify] https://crrev.com/461e4ae9f7eb4d23bf8530987a68525099dc8481/content/browser/frame_host/render_frame_message_filter.cc

Project Member

Comment 22 by bugdroid1@chromium.org, Jun 22 2018

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

commit cde646336034d5efe37bacbcc9aade8b31dbcd8d
Author: Marijn Kruisselbrink <mek@chromium.org>
Date: Fri Jun 22 22:45:16 2018

[Mojo Blob URLs] Change from RuntimeEnabledFeature to base::Feature.

This will make it possible to check if the feature is enabled from
outside blink, and will also make it easier to turn the feature back off
if necesary after trying to launch it.

Cq-Include-Trybots: luci.chromium.try:linux_mojo
Bug: 800901
Change-Id: I4cba8299c9f43727b5d52cb5c329d0da296e2b59
Reviewed-on: https://chromium-review.googlesource.com/1110846
Commit-Queue: Marijn Kruisselbrink <mek@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Reviewed-by: Jeremy Roman <jbroman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#569813}
[modify] https://crrev.com/cde646336034d5efe37bacbcc9aade8b31dbcd8d/chrome/browser/chrome_security_exploit_browsertest.cc
[modify] https://crrev.com/cde646336034d5efe37bacbcc9aade8b31dbcd8d/content/browser/blob_storage/blob_url_browsertest.cc
[modify] https://crrev.com/cde646336034d5efe37bacbcc9aade8b31dbcd8d/content/browser/download/download_browsertest.cc
[modify] https://crrev.com/cde646336034d5efe37bacbcc9aade8b31dbcd8d/content/browser/isolated_origin_browsertest.cc
[modify] https://crrev.com/cde646336034d5efe37bacbcc9aade8b31dbcd8d/content/child/runtime_features.cc
[modify] https://crrev.com/cde646336034d5efe37bacbcc9aade8b31dbcd8d/third_party/WebKit/LayoutTests/VirtualTestSuites
[modify] https://crrev.com/cde646336034d5efe37bacbcc9aade8b31dbcd8d/third_party/blink/common/BUILD.gn
[add] https://crrev.com/cde646336034d5efe37bacbcc9aade8b31dbcd8d/third_party/blink/common/blob/OWNERS
[add] https://crrev.com/cde646336034d5efe37bacbcc9aade8b31dbcd8d/third_party/blink/common/blob/blob_utils.cc
[modify] https://crrev.com/cde646336034d5efe37bacbcc9aade8b31dbcd8d/third_party/blink/common/features.cc
[modify] https://crrev.com/cde646336034d5efe37bacbcc9aade8b31dbcd8d/third_party/blink/public/common/BUILD.gn
[add] https://crrev.com/cde646336034d5efe37bacbcc9aade8b31dbcd8d/third_party/blink/public/common/blob/OWNERS
[add] https://crrev.com/cde646336034d5efe37bacbcc9aade8b31dbcd8d/third_party/blink/public/common/blob/blob_utils.h
[modify] https://crrev.com/cde646336034d5efe37bacbcc9aade8b31dbcd8d/third_party/blink/public/common/features.h
[modify] https://crrev.com/cde646336034d5efe37bacbcc9aade8b31dbcd8d/third_party/blink/public/platform/web_runtime_features.h
[modify] https://crrev.com/cde646336034d5efe37bacbcc9aade8b31dbcd8d/third_party/blink/renderer/DEPS
[modify] https://crrev.com/cde646336034d5efe37bacbcc9aade8b31dbcd8d/third_party/blink/renderer/core/exported/local_frame_client_impl.cc
[modify] https://crrev.com/cde646336034d5efe37bacbcc9aade8b31dbcd8d/third_party/blink/renderer/core/fetch/request.cc
[modify] https://crrev.com/cde646336034d5efe37bacbcc9aade8b31dbcd8d/third_party/blink/renderer/core/fileapi/public_url_manager.cc
[modify] https://crrev.com/cde646336034d5efe37bacbcc9aade8b31dbcd8d/third_party/blink/renderer/core/fileapi/public_url_manager_test.cc
[modify] https://crrev.com/cde646336034d5efe37bacbcc9aade8b31dbcd8d/third_party/blink/renderer/core/loader/frame_fetch_context.cc
[modify] https://crrev.com/cde646336034d5efe37bacbcc9aade8b31dbcd8d/third_party/blink/renderer/core/loader/frame_load_request.cc
[modify] https://crrev.com/cde646336034d5efe37bacbcc9aade8b31dbcd8d/third_party/blink/renderer/core/loader/navigation_scheduler.cc
[modify] https://crrev.com/cde646336034d5efe37bacbcc9aade8b31dbcd8d/third_party/blink/renderer/core/loader/worker_fetch_context.cc
[modify] https://crrev.com/cde646336034d5efe37bacbcc9aade8b31dbcd8d/third_party/blink/renderer/core/workers/shared_worker.cc
[modify] https://crrev.com/cde646336034d5efe37bacbcc9aade8b31dbcd8d/third_party/blink/renderer/core/xmlhttprequest/xml_http_request.cc
[modify] https://crrev.com/cde646336034d5efe37bacbcc9aade8b31dbcd8d/third_party/blink/renderer/platform/exported/web_runtime_features.cc
[modify] https://crrev.com/cde646336034d5efe37bacbcc9aade8b31dbcd8d/third_party/blink/renderer/platform/runtime_enabled_features.json5

Project Member

Comment 23 by bugdroid1@chromium.org, Jun 22 2018

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

commit 0c87e6eeb327ca8b17ff9335ab1b50f59a392347
Author: Marijn Kruisselbrink <mek@chromium.org>
Date: Fri Jun 22 22:57:39 2018

[Blob URLs] Remove content::BlobURLLoaderFactory and related code.

This class was the initial attempt at adding blob URL support to the
network service, but later a different approach was taken for blob
URLs where a explicit URLLoaderFactory needs to be passed in for
every blob URL fetch.

Getting rid of the old code revealed some places where the new code
doesn't pass in a blob URL Loader Factory, so fallback code is added
to those places (in NavigationControllerImpl for browser initiated
navigations and in RenderFrameHostImpl for renderer initiated
navigations) to make sure things keep working in all cases.

Bug: 800901

Cq-Include-Trybots: luci.chromium.try:linux_mojo
Change-Id: Icebab3007bef73910b20f6994c963c36f090605e
Reviewed-on: https://chromium-review.googlesource.com/1100100
Commit-Queue: Marijn Kruisselbrink <mek@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Cr-Commit-Position: refs/heads/master@{#569819}
[modify] https://crrev.com/0c87e6eeb327ca8b17ff9335ab1b50f59a392347/content/browser/BUILD.gn
[delete] https://crrev.com/8a2de4b77781f96976f98c98eb4f3d77bdfdbaf6/content/browser/blob_storage/blob_url_loader_factory.cc
[delete] https://crrev.com/8a2de4b77781f96976f98c98eb4f3d77bdfdbaf6/content/browser/blob_storage/blob_url_loader_factory.h
[modify] https://crrev.com/0c87e6eeb327ca8b17ff9335ab1b50f59a392347/content/browser/blob_storage/blob_url_unittest.cc
[modify] https://crrev.com/0c87e6eeb327ca8b17ff9335ab1b50f59a392347/content/browser/blob_storage/chrome_blob_storage_context.cc
[modify] https://crrev.com/0c87e6eeb327ca8b17ff9335ab1b50f59a392347/content/browser/blob_storage/chrome_blob_storage_context.h
[modify] https://crrev.com/0c87e6eeb327ca8b17ff9335ab1b50f59a392347/content/browser/frame_host/navigation_controller_impl.cc
[modify] https://crrev.com/0c87e6eeb327ca8b17ff9335ab1b50f59a392347/content/browser/frame_host/render_frame_host_impl.cc
[modify] https://crrev.com/0c87e6eeb327ca8b17ff9335ab1b50f59a392347/content/browser/loader/navigation_url_loader_impl.cc
[modify] https://crrev.com/0c87e6eeb327ca8b17ff9335ab1b50f59a392347/content/browser/renderer_host/render_process_host_impl.cc
[modify] https://crrev.com/0c87e6eeb327ca8b17ff9335ab1b50f59a392347/content/browser/renderer_host/render_process_host_impl.h
[modify] https://crrev.com/0c87e6eeb327ca8b17ff9335ab1b50f59a392347/content/browser/storage_partition_impl.cc
[modify] https://crrev.com/0c87e6eeb327ca8b17ff9335ab1b50f59a392347/content/browser/storage_partition_impl.h
[modify] https://crrev.com/0c87e6eeb327ca8b17ff9335ab1b50f59a392347/content/browser/url_loader_factory_getter.cc
[modify] https://crrev.com/0c87e6eeb327ca8b17ff9335ab1b50f59a392347/content/browser/url_loader_factory_getter.h
[modify] https://crrev.com/0c87e6eeb327ca8b17ff9335ab1b50f59a392347/content/common/renderer_host.mojom
[modify] https://crrev.com/0c87e6eeb327ca8b17ff9335ab1b50f59a392347/content/renderer/loader/child_url_loader_factory_bundle.cc
[modify] https://crrev.com/0c87e6eeb327ca8b17ff9335ab1b50f59a392347/content/renderer/loader/child_url_loader_factory_bundle.h
[modify] https://crrev.com/0c87e6eeb327ca8b17ff9335ab1b50f59a392347/content/renderer/renderer_blink_platform_impl.cc

Project Member

Comment 24 by bugdroid1@chromium.org, Jun 22 2018

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

commit 8a06f8a1bcb5563fe6fbc4dc0ea89914e855b9db
Author: Marijn Kruisselbrink <mek@chromium.org>
Date: Fri Jun 22 23:26:01 2018

Delete deprecated network service blob URL download codepath.

With network service there should always be a BlobURLToken/blob
URLLoaderFactory, so this fallback code should never be reached.

Tbr: jam@chromium.org
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Bug: 800901
Change-Id: I6e1446f9ed5b5f43c4e5f3be27b098d8401b6a51
Reviewed-on: https://chromium-review.googlesource.com/1112663
Commit-Queue: Marijn Kruisselbrink <mek@chromium.org>
Reviewed-by: Min Qin <qinmin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#569834}
[modify] https://crrev.com/8a06f8a1bcb5563fe6fbc4dc0ea89914e855b9db/content/browser/BUILD.gn
[delete] https://crrev.com/5b4db44627bd9d3a76dc1691359ec6a367c51c9d/content/browser/download/blob_download_url_loader_factory_getter.cc
[delete] https://crrev.com/5b4db44627bd9d3a76dc1691359ec6a367c51c9d/content/browser/download/blob_download_url_loader_factory_getter.h
[modify] https://crrev.com/8a06f8a1bcb5563fe6fbc4dc0ea89914e855b9db/content/browser/download/download_manager_impl.cc
[modify] https://crrev.com/8a06f8a1bcb5563fe6fbc4dc0ea89914e855b9db/content/browser/download/download_manager_impl.h

Sign in to add a comment