|
|
Chromium Code Reviews|
Created:
3 years, 11 months ago by Takashi Toyoshima Modified:
3 years, 11 months ago CC:
chromium-reviews, tyoshino+watch_chromium.org, Yoav Weiss, gavinp+loader_chromium.org, blink-reviews, loading-reviews+fetch_chromium.org, kinuko+watch, Nate Chapin Target Ref:
refs/pending/heads/master Project:
chromium Visibility:
Public. |
DescriptionResourceFetcherTest: introduce FetchTestingPlatformSupport
To move ResourceFetcherTest under platform, we need to use
TestingPlatformSupportWithMockScheduler and to make
WebURLLoaderMockFactory available with the MockScheduler.
FetchTestingPlatformSupport is the TestingPlatformSupport
inheritance that adds WebURLLoaderMockFactory and FetchContext
support. At this point, only ResourceFetcherTest use the
FetchTestingplatformSupport, but eventually, other tests
may want to use it.
Also this patch contains modifications to remove cached resources
and all mock URL entries so that we can cleanup each test safely.
This is needed to pass LinkPreloadResourceMultipleFetchersAnd{Use|Move}
without any retry.
BUG=655920
TEST=webkit_unit_tests --gtest_filter='ResourceFetcherTest.*'
Review-Url: https://codereview.chromium.org/2644083003
Cr-Commit-Position: refs/heads/master@{#445639}
Committed: https://chromium.googlesource.com/chromium/src/+/284fe71823b4516ac5630addd2f44788347ddd07
Patch Set 1 #
Total comments: 3
Patch Set 2 : FetchTestingPlatformSupport #
Total comments: 4
Patch Set 3 : android arm64 build fix #Patch Set 4 : merge 2647903002 #Patch Set 5 : style nits that could not be detected by cl format #
Total comments: 3
Patch Set 6 : review #23 #
Total comments: 2
Messages
Total messages: 47 (21 generated)
Description was changed from
==========
ResourceFetcherTest: Use TestingPlatformSupport
To move ResourceFetcherTest under platform, use
TestingPlatformSupportWithMockScheduler and make WebURLLoaderMockFactory
available with MockScheduler and MockFetchContext beforehand.
Also this patch contains modifications to remove cached resources so that
LinkPreloadResourceMultipleFetchersAnd{Use|Move} tests work always.
BUG=655920
TEST=webkit_unit_tests --gtest_filter='ResourceFetcherTest.*'
==========
to
==========
ResourceFetcherTest: Use TestingPlatformSupport
To move ResourceFetcherTest under platform, use
TestingPlatformSupportWithMockScheduler and make WebURLLoaderMockFactory
available with MockScheduler and MockFetchContext beforehand.
Also this patch contains modifications to remove cached resources so that
LinkPreloadResourceMultipleFetchersAnd{Use|Move} tests work always.
BUG=655920
TEST=webkit_unit_tests --gtest_filter='ResourceFetcherTest.*'
==========
toyoshim@chromium.org changed reviewers: + yhirano@chromium.org
toyoshim@chromium.org changed reviewers: + kinuko@chromium.org
Yep, finally, I made the last patch to run all fetch unit tests under platform. This still requires minor non-mechanical changes to move under platform, but I can not have it under core/ due to the build rule restriction. Once this patch was submitted, I'd rebase the large platform/loader CL. That should contain the minimum set of non-mechanical changes.
https://codereview.chromium.org/2644083003/diff/1/third_party/WebKit/Source/c... File third_party/WebKit/Source/core/fetch/MockFetchContext.h (right): https://codereview.chromium.org/2644083003/diff/1/third_party/WebKit/Source/c... third_party/WebKit/Source/core/fetch/MockFetchContext.h:59: RefPtr<WebTaskRunner> loadingTaskRunner() const override { return m_runner; } Could you help me understand... so the task runner returned by this fetch context and the task runner that is returned by Platform::current()->currentThread()->scheduler()->loadingTaskRunner() are different, is that right? Wouldn't that become a problem at some point?
https://codereview.chromium.org/2644083003/diff/1/third_party/WebKit/Source/c... File third_party/WebKit/Source/core/fetch/MockFetchContext.h (right): https://codereview.chromium.org/2644083003/diff/1/third_party/WebKit/Source/c... third_party/WebKit/Source/core/fetch/MockFetchContext.h:59: RefPtr<WebTaskRunner> loadingTaskRunner() const override { return m_runner; } The right approach to obtain the task runner in fetch is to access it via FetchContext since it's per-frame runner. But unfortunately as you noticed, we are using currentThread()->scheduler()->loadingTaskRunner() in some modules, e.g. MemoryCache, Resource, and RawResource. Probably, we could change to use per-frame task runner for *Resource, but I have no idea about the MemoryCache. Probably, we will continue to use per-frame runner. Once we move this test to platform, currentThread()->scheduler() is mocked by TestingPlatformSupportWithMockScheduler. That does not have a MessageLoop, and need to call another runUntilIdle method that the testing Platform instance has. So anyway, current WebURLLoaderMockFactory's RunLoop does not work. If all MockFetchContext users are moved to platform, we could change this to return a task runner mocked by TestingPlatform..., but since this is used by core/loader tests, using FakeWebTaskRunner here is a point of compromise.
> Probably, we will continue to use per-frame runner. Sorry, this means, *per-thread* runner in the MemoryCache.
https://codereview.chromium.org/2644083003/diff/1/third_party/WebKit/Source/c... File third_party/WebKit/Source/core/fetch/MockFetchContext.h (right): https://codereview.chromium.org/2644083003/diff/1/third_party/WebKit/Source/c... third_party/WebKit/Source/core/fetch/MockFetchContext.h:59: RefPtr<WebTaskRunner> loadingTaskRunner() const override { return m_runner; } On 2017/01/20 04:13:16, toyoshim wrote: > The right approach to obtain the task runner in fetch is to access it via > FetchContext since it's per-frame runner. But unfortunately as you noticed, we > are using currentThread()->scheduler()->loadingTaskRunner() in some modules, > e.g. MemoryCache, Resource, and RawResource. Probably, we could change to use > per-frame task runner for *Resource, but I have no idea about the MemoryCache. > Probably, we will continue to use per-frame runner. When you say MemoryCache do you mean the task observers for pruning? And I see it comes from the browser... I feel we might be able to deprecate the Web Cache manager and this prune code path as we now have memory coordinator, but that's probably another story. > Once we move this test to platform, currentThread()->scheduler() is mocked by > TestingPlatformSupportWithMockScheduler. That does not have a MessageLoop, and > need to call another runUntilIdle method that the testing Platform instance has. > So anyway, current WebURLLoaderMockFactory's RunLoop does not work. Yep I noticed it. > If all MockFetchContext users are moved to platform, we could change this to > return a task runner mocked by TestingPlatform..., but since this is used by > core/loader tests, using FakeWebTaskRunner here is a point of compromise. Do you mean you're assuming we can't use TestingPlatform if the test's not in platform?
Ah, good point. TestingPlatformSupport is designed to be used in both core and platform. So we can make other MockFetchContext users to use it. Probably, I'd create FetchTestingPlatformSupport that inherits TestingPlatformSupportWithMockScheduler and provides MockFetchContext, and use the platform from related tests. Thus, we can use a same mocked task runner for both.
On 2017/01/20 05:45:47, toyoshim wrote: > Ah, good point. TestingPlatformSupport is designed to be used in both core and > platform. So we can make other MockFetchContext users to use it. > Probably, I'd create FetchTestingPlatformSupport that inherits > TestingPlatformSupportWithMockScheduler and provides MockFetchContext, and use > the platform from related tests. Thus, we can use a same mocked task runner for > both. Yeah I think that's probably nicer and we can have more coherent testing environment.
Description was changed from
==========
ResourceFetcherTest: Use TestingPlatformSupport
To move ResourceFetcherTest under platform, use
TestingPlatformSupportWithMockScheduler and make WebURLLoaderMockFactory
available with MockScheduler and MockFetchContext beforehand.
Also this patch contains modifications to remove cached resources so that
LinkPreloadResourceMultipleFetchersAnd{Use|Move} tests work always.
BUG=655920
TEST=webkit_unit_tests --gtest_filter='ResourceFetcherTest.*'
==========
to
==========
ResourceFetcherTest: introduce FetchTestingPlatformSupport
To move ResourceFetcherTest under platform, we need to use
TestingPlatformSupportWithMockScheduler and to make
WebURLLoaderMockFactory available with the MockScheduler.
FetchTestingPlatformSupport is the TestingPlatformSupport
inheritance that adds WebURLLoaderMockFactory and FetchContext
support. At this point, ResourceFetcherTest use the platform,
but eventually, other tests may want to use it.
Also this patch contains modifications to remove cached resources so that
LinkPreloadResourceMultipleFetchersAnd{Use|Move} tests work always.
BUG=655920
TEST=webkit_unit_tests --gtest_filter='ResourceFetcherTest.*'
==========
PTAL https://codereview.chromium.org/2644083003/diff/20001/third_party/WebKit/Sour... File third_party/WebKit/Source/core/fetch/MockFetchContext.h (right): https://codereview.chromium.org/2644083003/diff/20001/third_party/WebKit/Sour... third_party/WebKit/Source/core/fetch/MockFetchContext.h:32: // TODO(toyoshim): Disallow to pass nullptr for |taskRunner|, and force to use Let me leave this TODO now because it's a little stressful to check my changes work for both core and platform. I'd adopt another CL to use FetchTestingPlatformSupport for other MockFetchContext users, and remove old interfaces that use the FakeWebTaskRunner.
The CQ bit was checked by toyoshim@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: android_arm64_dbg_recipe on master.tryserver.chromium.android (JOB_FAILED, https://build.chromium.org/p/tryserver.chromium.android/builders/android_arm6...)
The CQ bit was checked by toyoshim@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
Thanks for keeping updating this one, I have a few more comments...! (I've wanted to cleanup TestingPlatformSupport & loading tests for sometime) https://codereview.chromium.org/2644083003/diff/20001/third_party/WebKit/Sour... File third_party/WebKit/Source/core/fetch/FetchTestingPlatformSupport.cpp (right): https://codereview.chromium.org/2644083003/diff/20001/third_party/WebKit/Sour... third_party/WebKit/Source/core/fetch/FetchTestingPlatformSupport.cpp:24: } I still feel this is a bit unfortunate. I think it'd be nice if WebURLLoaderMockFactory can just use the right runUntilIdle depending on what the underlying platform supports. What do you think if we make WebURLLoaderMockFactory optionally take TestingPlatformSupport and call its runUntilIdle? Like --> https://codereview.chromium.org/2647903002 (diff from this patch)
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: This issue passed the CQ dry run.
> What do you think if we make WebURLLoaderMockFactory optionally take > TestingPlatformSupport and call its runUntilIdle? Or we may want to pass unique_ptr<Function<void()>> for runUntilIdle that could internally use weak pointer to be safer? But I feel current approach is enough for testing. (well, we have not manage life-cycles for Platform related things carefully though we have a scheme to switch it for testing...) Patch Set 5 is just importing kinuko-san's proposal, and fix some minor style nits (I'm not sure why cl format can not catch them). PTAL.
If we can assume that ScopedTestingPlatformSupport is used, can we use Platform::current instead of passing round the object? https://codereview.chromium.org/2644083003/diff/20001/third_party/WebKit/Sour... File third_party/WebKit/Source/core/fetch/ResourceFetcherTest.cpp (right): https://codereview.chromium.org/2644083003/diff/20001/third_party/WebKit/Sour... third_party/WebKit/Source/core/fetch/ResourceFetcherTest.cpp:557: memoryCache()->remove(resource); How about calling MemoryCache::evictResources in the destructor? https://codereview.chromium.org/2644083003/diff/80001/third_party/WebKit/Sour... File third_party/WebKit/Source/core/fetch/ResourceFetcherTest.cpp (right): https://codereview.chromium.org/2644083003/diff/80001/third_party/WebKit/Sour... third_party/WebKit/Source/core/fetch/ResourceFetcherTest.cpp:399: ScopedMockRedirectRequester(MockFetchContext* context) : m_context(context) {} explicit https://codereview.chromium.org/2644083003/diff/80001/third_party/WebKit/Sour... File third_party/WebKit/Source/platform/testing/weburl_loader_mock_factory_impl.h (right): https://codereview.chromium.org/2644083003/diff/80001/third_party/WebKit/Sour... third_party/WebKit/Source/platform/testing/weburl_loader_mock_factory_impl.h:35: WebURLLoaderMockFactoryImpl(TestingPlatformSupport*); +explicit
On 2017/01/23 07:42:15, yhirano wrote: > If we can assume that ScopedTestingPlatformSupport is used, can we use > Platform::current instead of passing round the object? > Ah, sorry, we would need a down cast then. Never mind.
On 2017/01/23 07:46:20, yhirano wrote: > On 2017/01/23 07:42:15, yhirano wrote: > > If we can assume that ScopedTestingPlatformSupport is used, can we use > > Platform::current instead of passing round the object? > > > Ah, sorry, we would need a down cast then. Never mind. ... or we could have TestingPlatformSupport::current().
On 2017/01/23 07:50:17, yhirano wrote: > On 2017/01/23 07:46:20, yhirano wrote: > > On 2017/01/23 07:42:15, yhirano wrote: > > > If we can assume that ScopedTestingPlatformSupport is used, can we use > > > Platform::current instead of passing round the object? > > > > > Ah, sorry, we would need a down cast then. Never mind. > > ... or we could have TestingPlatformSupport::current(). Hmm, yeah that could be an option too. Might look cleaner?
Aside that, the current code change itself lgtm.
There are several options for better handling of runUntilIdle, but I have no idea which is the best at this point. IMO, Platform could have virtual runUntilIdle() directly because we already have some virtual methods for testing, you know getURLLoaderMockFactory in the discussion is exactly such a thing. Or we could move testing only interfaces into TestingPlatform abstract class, and could have Platform::testing() that may return null for production. Actually, we have some options to call runUntilIdle-ish methods in testing, e.g. testing::runPendingTasks is another option for different situations, and some tests have own method. If we could have such interface on Platform directly, we might solve this confused situation eventually? https://codereview.chromium.org/2644083003/diff/20001/third_party/WebKit/Sour... File third_party/WebKit/Source/core/fetch/ResourceFetcherTest.cpp (right): https://codereview.chromium.org/2644083003/diff/20001/third_party/WebKit/Sour... third_party/WebKit/Source/core/fetch/ResourceFetcherTest.cpp:557: memoryCache()->remove(resource); Aha. Sounds nice. Since now we have an actual implementation of ResourceFetcherTest, I'd move ScopedMockRedirectRequester's cleanUp() to ResourceFetcherTest::TearDown() so that it can clean up for all test cases safely. https://codereview.chromium.org/2644083003/diff/80001/third_party/WebKit/Sour... File third_party/WebKit/Source/core/fetch/ResourceFetcherTest.cpp (right): https://codereview.chromium.org/2644083003/diff/80001/third_party/WebKit/Sour... third_party/WebKit/Source/core/fetch/ResourceFetcherTest.cpp:399: ScopedMockRedirectRequester(MockFetchContext* context) : m_context(context) {} On 2017/01/23 07:42:14, yhirano wrote: > explicit Done.
Description was changed from
==========
ResourceFetcherTest: introduce FetchTestingPlatformSupport
To move ResourceFetcherTest under platform, we need to use
TestingPlatformSupportWithMockScheduler and to make
WebURLLoaderMockFactory available with the MockScheduler.
FetchTestingPlatformSupport is the TestingPlatformSupport
inheritance that adds WebURLLoaderMockFactory and FetchContext
support. At this point, ResourceFetcherTest use the platform,
but eventually, other tests may want to use it.
Also this patch contains modifications to remove cached resources so that
LinkPreloadResourceMultipleFetchersAnd{Use|Move} tests work always.
BUG=655920
TEST=webkit_unit_tests --gtest_filter='ResourceFetcherTest.*'
==========
to
==========
ResourceFetcherTest: introduce FetchTestingPlatformSupport
To move ResourceFetcherTest under platform, we need to use
TestingPlatformSupportWithMockScheduler and to make
WebURLLoaderMockFactory available with the MockScheduler.
FetchTestingPlatformSupport is the TestingPlatformSupport
inheritance that adds WebURLLoaderMockFactory and FetchContext
support. At this point, only ResourceFetcherTest use the
FetchTestingplatformSupport, but eventually, other tests
may want to use it.
Also this patch contains modifications to remove cached resources
and all mock URL entries so that we can cleanup each test safely.
This is needed to pass LinkPreloadResourceMultipleFetchersAnd{Use|Move}
without any retry.
BUG=655920
TEST=webkit_unit_tests --gtest_filter='ResourceFetcherTest.*'
==========
description was also modified to be up to date. PTAL.
The CQ bit was checked by toyoshim@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
On 2017/01/23 09:18:13, toyoshim wrote: > There are several options for better handling of runUntilIdle, but I have no > idea which is the best at this point. IMO, Platform could have virtual > runUntilIdle() directly because we already have some virtual methods for > testing, you know getURLLoaderMockFactory in the discussion is exactly such a > thing. Or we could move testing only interfaces into TestingPlatform abstract > class, and could have Platform::testing() that may return null for production. Fyi, we used to have something like this before, which I removed away sometime ago. https://codereview.chromium.org/1845323002 Platform.h is a public layer that is also exposed outside blink, I'm not too motivated to add a test-only method on it unless we need it outside blink.
On 2017/01/23 10:55:13, kinuko wrote: > On 2017/01/23 09:18:13, toyoshim wrote: > > There are several options for better handling of runUntilIdle, but I have no > > idea which is the best at this point. IMO, Platform could have virtual > > runUntilIdle() directly because we already have some virtual methods for > > testing, you know getURLLoaderMockFactory in the discussion is exactly such a > > thing. Or we could move testing only interfaces into TestingPlatform abstract > > class, and could have Platform::testing() that may return null for production. > > Fyi, we used to have something like this before, which I removed away sometime > ago. > https://codereview.chromium.org/1845323002 > > Platform.h is a public layer that is also exposed outside blink, I'm not too > motivated to add a test-only method on it unless we need it outside blink. I mean, I prefer converging these around TestingPlatformSupport as much as possible, but if we have several cases that don't work well in that layer we could weigh other options too.
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: This issue passed the CQ dry run.
https://codereview.chromium.org/2644083003/diff/100001/third_party/WebKit/Sou... File third_party/WebKit/Source/platform/testing/weburl_loader_mock_factory_impl.cc (right): https://codereview.chromium.org/2644083003/diff/100001/third_party/WebKit/Sou... third_party/WebKit/Source/platform/testing/weburl_loader_mock_factory_impl.cc:24: std::unique_ptr<WebURLLoaderMockFactory> WebURLLoaderMockFactory::create() How about adding a (non-null) TestingPlatformSupport parameter to this function? IIUC the only call site is [1] and we can provide a TestingPlatformSupport object. With that we can delete the if statement in RunUntilIdle. 1: https://cs.chromium.org/chromium/src/content/test/test_blink_web_unit_test_su...
https://codereview.chromium.org/2644083003/diff/100001/third_party/WebKit/Sou... File third_party/WebKit/Source/platform/testing/weburl_loader_mock_factory_impl.cc (right): https://codereview.chromium.org/2644083003/diff/100001/third_party/WebKit/Sou... third_party/WebKit/Source/platform/testing/weburl_loader_mock_factory_impl.cc:24: std::unique_ptr<WebURLLoaderMockFactory> WebURLLoaderMockFactory::create() On 2017/01/23 11:38:56, yhirano wrote: > How about adding a (non-null) TestingPlatformSupport parameter to this function? > IIUC the only call site is [1] and we can provide a TestingPlatformSupport > object. > > With that we can delete the if statement in RunUntilIdle. > > 1: > https://cs.chromium.org/chromium/src/content/test/test_blink_web_unit_test_su... [1] is in content, how can we provide TestingPlatformSupport?
On 2017/01/24 00:39:05, kinuko wrote: > https://codereview.chromium.org/2644083003/diff/100001/third_party/WebKit/Sou... > File > third_party/WebKit/Source/platform/testing/weburl_loader_mock_factory_impl.cc > (right): > > https://codereview.chromium.org/2644083003/diff/100001/third_party/WebKit/Sou... > third_party/WebKit/Source/platform/testing/weburl_loader_mock_factory_impl.cc:24: > std::unique_ptr<WebURLLoaderMockFactory> WebURLLoaderMockFactory::create() > On 2017/01/23 11:38:56, yhirano wrote: > > How about adding a (non-null) TestingPlatformSupport parameter to this > function? > > IIUC the only call site is [1] and we can provide a TestingPlatformSupport > > object. > > > > With that we can delete the if statement in RunUntilIdle. > > > > 1: > > > https://cs.chromium.org/chromium/src/content/test/test_blink_web_unit_test_su... > > [1] is in content, how can we provide TestingPlatformSupport? Sorry I was confused by similar names. I'm uncomfortable with the virtual runUntilIdle + the if statement in RunUntilIdle. We need one of them, not both, right? If we need the latter, Can we store a TestingPlatformSupportWithMockScheduler* and make runUntilIdle non-virtual?
> Platform.h is a public layer that is also exposed outside blink, I'm not too > motivated to add a test-only method on it unless we need it outside blink. I see. It sounds reasonable. It looks a similar policy with content public API. So, TestingPlatformSupport could be a _impl like thing in content. As kinuko-san said, TestingPlatformSupport is Blink platform internal thing and not exposed to public interface. By the way, it looks Platform::getURLLoaderMockFactory() is called only inside Blink. So, probably we can remove this from the public Platform interface, and move it to TestingPlatformSupport? I didn't check details about the test_blink_web_unit_test_support, but it looks only used in content_unittest? If so, we can just remove the caller of test_blink_web_unit_test_support. I can try removing it from the public interface, but I want to make it a separate CL.
lgtm
The CQ bit was checked by toyoshim@chromium.org
The patchset sent to the CQ was uploaded after l-g-t-m from kinuko@chromium.org Link to the patchset: https://codereview.chromium.org/2644083003/#ps100001 (title: "review #23")
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
CQ is committing da patch.
Bot data: {"patchset_id": 100001, "attempt_start_ts": 1485231398888810,
"parent_rev": "44fadca5234816d4defc7380bf7ae8c2376494f6", "commit_rev":
"284fe71823b4516ac5630addd2f44788347ddd07"}
Message was sent while issue was closed.
Description was changed from
==========
ResourceFetcherTest: introduce FetchTestingPlatformSupport
To move ResourceFetcherTest under platform, we need to use
TestingPlatformSupportWithMockScheduler and to make
WebURLLoaderMockFactory available with the MockScheduler.
FetchTestingPlatformSupport is the TestingPlatformSupport
inheritance that adds WebURLLoaderMockFactory and FetchContext
support. At this point, only ResourceFetcherTest use the
FetchTestingplatformSupport, but eventually, other tests
may want to use it.
Also this patch contains modifications to remove cached resources
and all mock URL entries so that we can cleanup each test safely.
This is needed to pass LinkPreloadResourceMultipleFetchersAnd{Use|Move}
without any retry.
BUG=655920
TEST=webkit_unit_tests --gtest_filter='ResourceFetcherTest.*'
==========
to
==========
ResourceFetcherTest: introduce FetchTestingPlatformSupport
To move ResourceFetcherTest under platform, we need to use
TestingPlatformSupportWithMockScheduler and to make
WebURLLoaderMockFactory available with the MockScheduler.
FetchTestingPlatformSupport is the TestingPlatformSupport
inheritance that adds WebURLLoaderMockFactory and FetchContext
support. At this point, only ResourceFetcherTest use the
FetchTestingplatformSupport, but eventually, other tests
may want to use it.
Also this patch contains modifications to remove cached resources
and all mock URL entries so that we can cleanup each test safely.
This is needed to pass LinkPreloadResourceMultipleFetchersAnd{Use|Move}
without any retry.
BUG=655920
TEST=webkit_unit_tests --gtest_filter='ResourceFetcherTest.*'
Review-Url: https://codereview.chromium.org/2644083003
Cr-Commit-Position: refs/heads/master@{#445639}
Committed:
https://chromium.googlesource.com/chromium/src/+/284fe71823b4516ac5630addd2f4...
==========
Message was sent while issue was closed.
Committed patchset #6 (id:100001) as https://chromium.googlesource.com/chromium/src/+/284fe71823b4516ac5630addd2f4... |
