|
|
Created:
4 years, 4 months ago by jam Modified:
4 years, 4 months ago Reviewers:
estark CC:
chromium-reviews, nasko+codewatch_chromium.org, mlamouri+watch-content_chromium.org, jam, darin-cc_chromium.org, creis+watch_chromium.org Base URL:
https://chromium.googlesource.com/chromium/src.git@master Target Ref:
refs/pending/heads/master Project:
chromium Visibility:
Public. |
DescriptionRemove usage of SSLStatus in RenderFrameImpl.
Per discussion, this optimization isn't necessary anymore since we don't have a UI that shows frame specific errors.
BUG=598073
Committed: https://crrev.com/6ce51b7351ed32a0b6c82f5a83d83641a1b5babd
Committed: https://crrev.com/aebe8907589f73cd66311a81f84c15b5a40d12bc
Cr-Original-Commit-Position: refs/heads/master@{#409855}
Cr-Commit-Position: refs/heads/master@{#410418}
Patch Set 1 #Patch Set 2 : remove now unnecessary test #Patch Set 3 : don't send for same origin so thattests pass because of favicon loading #
Total comments: 3
Patch Set 4 : review comments #Patch Set 5 : fix more test #
Total comments: 6
Patch Set 6 : review comments #Patch Set 7 : upload after revert #Patch Set 8 : fix with url interceptor #
Messages
Total messages: 68 (46 generated)
The CQ bit was checked by jam@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 checked by jam@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: linux_chromium_chromeos_rel_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_...)
The CQ bit was checked by jam@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: cast_shell_android on master.tryserver.chromium.android (JOB_FAILED, https://build.chromium.org/p/tryserver.chromium.android/builders/cast_shell_a...) cast_shell_linux on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/cast_shell_linu...)
The CQ bit was checked by jam@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: This issue passed the CQ dry run.
Patchset #3 (id:40001) has been deleted
jam@chromium.org changed reviewers: + estark@chromium.org
btw as a tangent, while debugging this code I found a lot of code paths for checking that mixed content was displayed. It appears that this is only used by the devtools warnings. 1) is this true? 2) if so, just checking that we still want to output this warning to developers given that we don't warn the user about it? https://codereview.chromium.org/2191113002/diff/60001/content/renderer/render... File content/renderer/render_frame_impl.cc (right): https://codereview.chromium.org/2191113002/diff/60001/content/renderer/render... content/renderer/render_frame_impl.cc:810: url::Origin(GURL(main_ds->request().url()))); I've kept this check because otherwise three SSL browser tests (SSLUITest.TestRefNavigation, SSLUITest.TestBadFrameNavigation, SSLUITest.TestUnsafeContentsWithUserException) were flaking. The reason was their last call to CheckAuthenticationBrokenState that checked for AuthState::NONE. The favicon loading for the page was sending a FrameHostMsg_DidDisplayContentWithCertificateErrors which made the auth_state to be sometimes DISPLAYED_INSECURE_CONTENT if the load for the favicon finished before the CheckAuthenticationBrokenState call. Alternatively I can change the CheckAuthenticationBrokenState calls to not look at the auth state for the last call in these three tests. I had that locally but then changed my mind and left this check instead of removing the method altogether. WDYT?
On 2016/08/03 19:33:46, jam wrote: > btw as a tangent, while debugging this code I found a lot of code paths for > checking that mixed content was displayed. It appears that this is only used by > the devtools warnings. > 1) is this true? > 2) if so, just checking that we still want to output this warning to developers > given that we don't warn the user about it? I think the answer to #2 is "yes" but would you be able to give me an example of one of the code paths you're talking about? Reviewing now! > > https://codereview.chromium.org/2191113002/diff/60001/content/renderer/render... > File content/renderer/render_frame_impl.cc (right): > > https://codereview.chromium.org/2191113002/diff/60001/content/renderer/render... > content/renderer/render_frame_impl.cc:810: > url::Origin(GURL(main_ds->request().url()))); > I've kept this check because otherwise three SSL browser tests > (SSLUITest.TestRefNavigation, SSLUITest.TestBadFrameNavigation, > SSLUITest.TestUnsafeContentsWithUserException) were flaking. The reason was > their last call to CheckAuthenticationBrokenState that checked for > AuthState::NONE. The favicon loading for the page was sending a > FrameHostMsg_DidDisplayContentWithCertificateErrors which made the auth_state to > be sometimes DISPLAYED_INSECURE_CONTENT if the load for the favicon finished > before the CheckAuthenticationBrokenState call. > > Alternatively I can change the CheckAuthenticationBrokenState calls to not look > at the auth state for the last call in these three tests. I had that locally but > then changed my mind and left this check instead of removing the method > altogether. WDYT?
https://codereview.chromium.org/2191113002/diff/60001/content/renderer/render... File content/renderer/render_frame_impl.cc (right): https://codereview.chromium.org/2191113002/diff/60001/content/renderer/render... content/renderer/render_frame_impl.cc:810: url::Origin(GURL(main_ds->request().url()))); On 2016/08/03 19:33:45, jam wrote: > I've kept this check because otherwise three SSL browser tests > (SSLUITest.TestRefNavigation, SSLUITest.TestBadFrameNavigation, > SSLUITest.TestUnsafeContentsWithUserException) were flaking. The reason was > their last call to CheckAuthenticationBrokenState that checked for > AuthState::NONE. The favicon loading for the page was sending a > FrameHostMsg_DidDisplayContentWithCertificateErrors which made the auth_state to > be sometimes DISPLAYED_INSECURE_CONTENT if the load for the favicon finished > before the CheckAuthenticationBrokenState call. > > Alternatively I can change the CheckAuthenticationBrokenState calls to not look > at the auth state for the last call in these three tests. I had that locally but > then changed my mind and left this check instead of removing the method > altogether. WDYT? Theoretically, checking only the origin could get us in to trouble here. Suppose that https://foo.com has a certificate error that only happens on some requests (for example only if you happen to hit certain front-end servers or something). Suppose you click through a certificate warning on https://foo.com -- that decision gets remembered for a week. Then later you go visit https://foo.com again and happen to not get the certificate error, but the page loads a same-origin subresource that does happen to get the certificate error. With this check, the browser wouldn't get notified of the same-origin subresource certificate error, so the user wouldn't get notified that there is broken-HTTPS content on the page. I fully acknowledge that this is a very theoretical situation that would probably never happen in real life. But it makes me a little nervous, so I guess I'd prefer changing the tests.
(Also, tangentially related, I think some of the reason this is all so hairy is that the browser tries to treat broken-https subresources the same as plain-http mixed content subresources, and that's a big hack. I filed https://crbug.com/634171 for myself to clean that up.)
The CQ bit was checked by jam@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 2016/08/03 22:01:48, estark wrote: > On 2016/08/03 19:33:46, jam wrote: > > btw as a tangent, while debugging this code I found a lot of code paths for > > checking that mixed content was displayed. It appears that this is only used > by > > the devtools warnings. > > 1) is this true? > > 2) if so, just checking that we still want to output this warning to > developers > > given that we don't warn the user about it? > > I think the answer to #2 is "yes" but would you be able to give me an example of > one of the code paths you're talking about? I just meant the FrameHostMsg_DidDisplayInsecureContent IPC and all the code path that follow in chrome/browser/ssl & components/security_state. But this point is moot since you say we need this for devtools. https://codereview.chromium.org/2191113002/diff/60001/content/renderer/render... File content/renderer/render_frame_impl.cc (right): https://codereview.chromium.org/2191113002/diff/60001/content/renderer/render... content/renderer/render_frame_impl.cc:810: url::Origin(GURL(main_ds->request().url()))); On 2016/08/03 22:31:37, estark wrote: > On 2016/08/03 19:33:45, jam wrote: > > I've kept this check because otherwise three SSL browser tests > > (SSLUITest.TestRefNavigation, SSLUITest.TestBadFrameNavigation, > > SSLUITest.TestUnsafeContentsWithUserException) were flaking. The reason was > > their last call to CheckAuthenticationBrokenState that checked for > > AuthState::NONE. The favicon loading for the page was sending a > > FrameHostMsg_DidDisplayContentWithCertificateErrors which made the auth_state > to > > be sometimes DISPLAYED_INSECURE_CONTENT if the load for the favicon finished > > before the CheckAuthenticationBrokenState call. > > > > Alternatively I can change the CheckAuthenticationBrokenState calls to not > look > > at the auth state for the last call in these three tests. I had that locally > but > > then changed my mind and left this check instead of removing the method > > altogether. WDYT? > > Theoretically, checking only the origin could get us in to trouble here. Suppose > that https://foo.com has a certificate error that only happens on some requests > (for example only if you happen to hit certain front-end servers or something). > Suppose you click through a certificate warning on https://foo.com -- that > decision gets remembered for a week. Then later you go visit https://foo.com > again and happen to not get the certificate error, but the page loads a > same-origin subresource that does happen to get the certificate error. With this > check, the browser wouldn't get notified of the same-origin subresource > certificate error, so the user wouldn't get notified that there is broken-HTTPS > content on the page. > > I fully acknowledge that this is a very theoretical situation that would > probably never happen in real life. But it makes me a little nervous, so I guess > I'd prefer changing the tests. Thanks for the example, I updated the test and removed the method.
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: linux_chromium_rel_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_...)
The CQ bit was checked by jam@chromium.org to run a CQ dry run
Patchset #5 (id:100001) has been deleted
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: This issue passed the CQ dry run.
lgtm with a question inline about the MAYBE_ https://codereview.chromium.org/2191113002/diff/120001/chrome/browser/ssl/ssl... File chrome/browser/ssl/ssl_browser_tests.cc (right): https://codereview.chromium.org/2191113002/diff/120001/chrome/browser/ssl/ssl... chrome/browser/ssl/ssl_browser_tests.cc:158: // Useful when a favicon load may or may not have finised loading, to avoid nit: typo, finised -> finished https://codereview.chromium.org/2191113002/diff/120001/chrome/browser/ssl/ssl... chrome/browser/ssl/ssl_browser_tests.cc:160: DONT_CHECK_DISPLAYED_INSECURE_CONTENT = 1 << 4, Just a note for posterity, this shouldn't be necessary if I clean up this big hack where we treat broken-https subresources the same as plain-http mixed content in the browser (https://crbug.com/634171). If you are making changes before you submit and want to add a TODO(estark) here, I wouldn't mind that :) https://codereview.chromium.org/2191113002/diff/120001/chrome/browser/ssl/ssl... chrome/browser/ssl/ssl_browser_tests.cc:1842: IN_PROC_BROWSER_TEST_F(SSLUITest, MAYBE_TestRefNavigation) { That's odd -- if MAYBE_ wasn't here before, maybe we don't need the MAYBE_?
On 2016/08/03 23:55:44, jam wrote: > On 2016/08/03 22:01:48, estark wrote: > > On 2016/08/03 19:33:46, jam wrote: > > > btw as a tangent, while debugging this code I found a lot of code paths for > > > checking that mixed content was displayed. It appears that this is only used > > by > > > the devtools warnings. > > > 1) is this true? > > > 2) if so, just checking that we still want to output this warning to > > developers > > > given that we don't warn the user about it? > > > > I think the answer to #2 is "yes" but would you be able to give me an example > of > > one of the code paths you're talking about? > > I just meant the FrameHostMsg_DidDisplayInsecureContent IPC and all the code > path that follow in chrome/browser/ssl & components/security_state. But this > point is moot since you say we need this for devtools. Ah, that is actually used elsewhere besides devtools. Whenever the page displays an insecure subresource on an HTTPS page, the DidDisplayInsecureContent message tells the browser to remove the lock icon. (It ends up flowing to SecurityStateModel which uses the presence of insecure content to downgrade the overall security level of the page, somewhere around https://cs.chromium.org/chromium/src/components/security_state/security_state...) > > https://codereview.chromium.org/2191113002/diff/60001/content/renderer/render... > File content/renderer/render_frame_impl.cc (right): > > https://codereview.chromium.org/2191113002/diff/60001/content/renderer/render... > content/renderer/render_frame_impl.cc:810: > url::Origin(GURL(main_ds->request().url()))); > On 2016/08/03 22:31:37, estark wrote: > > On 2016/08/03 19:33:45, jam wrote: > > > I've kept this check because otherwise three SSL browser tests > > > (SSLUITest.TestRefNavigation, SSLUITest.TestBadFrameNavigation, > > > SSLUITest.TestUnsafeContentsWithUserException) were flaking. The reason was > > > their last call to CheckAuthenticationBrokenState that checked for > > > AuthState::NONE. The favicon loading for the page was sending a > > > FrameHostMsg_DidDisplayContentWithCertificateErrors which made the > auth_state > > to > > > be sometimes DISPLAYED_INSECURE_CONTENT if the load for the favicon finished > > > before the CheckAuthenticationBrokenState call. > > > > > > Alternatively I can change the CheckAuthenticationBrokenState calls to not > > look > > > at the auth state for the last call in these three tests. I had that locally > > but > > > then changed my mind and left this check instead of removing the method > > > altogether. WDYT? > > > > Theoretically, checking only the origin could get us in to trouble here. > Suppose > > that https://foo.com has a certificate error that only happens on some > requests > > (for example only if you happen to hit certain front-end servers or > something). > > Suppose you click through a certificate warning on https://foo.com -- that > > decision gets remembered for a week. Then later you go visit https://foo.com > > again and happen to not get the certificate error, but the page loads a > > same-origin subresource that does happen to get the certificate error. With > this > > check, the browser wouldn't get notified of the same-origin subresource > > certificate error, so the user wouldn't get notified that there is > broken-HTTPS > > content on the page. > > > > I fully acknowledge that this is a very theoretical situation that would > > probably never happen in real life. But it makes me a little nervous, so I > guess > > I'd prefer changing the tests. > > Thanks for the example, I updated the test and removed the method.
(Last message, sorry) Just wanted to record some more detail for the historical record about this change. This change removes a band-aid that was intended to stop the browser from treating subresources on a page with certificate errors the same as mixed content. As of fairly recently, browser UI doesn't actually need to distinguish these two cases, because when the page was loaded with certificate errors, browser UI only talks about the certificate errors from the main resource and doesn't care about mixed content or other "lesser" security problems. So I think it's okay to remove this band-aid now. However I'm planning to do some follow-up work so that the browser can distinguish broken-https subresources from mixed content, and I'm tracking that in https://crbug.com/634171.
On 2016/08/04 04:35:36, estark wrote: > On 2016/08/03 23:55:44, jam wrote: > > On 2016/08/03 22:01:48, estark wrote: > > > On 2016/08/03 19:33:46, jam wrote: > > > > btw as a tangent, while debugging this code I found a lot of code paths > for > > > > checking that mixed content was displayed. It appears that this is only > used > > > by > > > > the devtools warnings. > > > > 1) is this true? > > > > 2) if so, just checking that we still want to output this warning to > > > developers > > > > given that we don't warn the user about it? > > > > > > I think the answer to #2 is "yes" but would you be able to give me an > example > > of > > > one of the code paths you're talking about? > > > > I just meant the FrameHostMsg_DidDisplayInsecureContent IPC and all the code > > path that follow in chrome/browser/ssl & components/security_state. But this > > point is moot since you say we need this for devtools. > > Ah, that is actually used elsewhere besides devtools. Whenever the page displays > an insecure subresource on an HTTPS page, the DidDisplayInsecureContent message > tells the browser to remove the lock icon. (It ends up flowing to > SecurityStateModel which uses the presence of insecure content to downgrade the > overall security level of the page, somewhere around > https://cs.chromium.org/chromium/src/components/security_state/security_state...) ah I see, thanks I missed that this affects the UI. https://codereview.chromium.org/2191113002/diff/120001/chrome/browser/ssl/ssl... File chrome/browser/ssl/ssl_browser_tests.cc (right): https://codereview.chromium.org/2191113002/diff/120001/chrome/browser/ssl/ssl... chrome/browser/ssl/ssl_browser_tests.cc:158: // Useful when a favicon load may or may not have finised loading, to avoid On 2016/08/04 04:31:17, estark wrote: > nit: typo, finised -> finished Done. https://codereview.chromium.org/2191113002/diff/120001/chrome/browser/ssl/ssl... chrome/browser/ssl/ssl_browser_tests.cc:160: DONT_CHECK_DISPLAYED_INSECURE_CONTENT = 1 << 4, On 2016/08/04 04:31:17, estark wrote: > Just a note for posterity, this shouldn't be necessary if I clean up this big > hack where we treat broken-https subresources the same as plain-http mixed > content in the browser (https://crbug.com/634171). If you are making changes > before you submit and want to add a TODO(estark) here, I wouldn't mind that :) Done. https://codereview.chromium.org/2191113002/diff/120001/chrome/browser/ssl/ssl... chrome/browser/ssl/ssl_browser_tests.cc:1842: IN_PROC_BROWSER_TEST_F(SSLUITest, MAYBE_TestRefNavigation) { On 2016/08/04 04:31:17, estark wrote: > That's odd -- if MAYBE_ wasn't here before, maybe we don't need the MAYBE_? true, I should have checked flakiness results. http://chromium-try-flakes.appspot.com/search?q=SSLUITest.TestRefNavigation doesn't show any hits, so I've undone this and closed the bug.
The CQ bit was checked by jam@chromium.org
The patchset sent to the CQ was uploaded after l-g-t-m from estark@chromium.org Link to the patchset: https://codereview.chromium.org/2191113002/#ps140001 (title: "review comments")
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
Message was sent while issue was closed.
Committed patchset #6 (id:140001)
Message was sent while issue was closed.
Description was changed from ========== Remove usage of SSLStatus in RenderFrameImpl. Per discussion, this optimization isn't necessary anymore since we don't have a UI that shows frame specific errors. BUG=598073 ========== to ========== Remove usage of SSLStatus in RenderFrameImpl. Per discussion, this optimization isn't necessary anymore since we don't have a UI that shows frame specific errors. BUG=598073 Committed: https://crrev.com/6ce51b7351ed32a0b6c82f5a83d83641a1b5babd Cr-Commit-Position: refs/heads/master@{#409855} ==========
Message was sent while issue was closed.
Patchset 6 (id:??) landed as https://crrev.com/6ce51b7351ed32a0b6c82f5a83d83641a1b5babd Cr-Commit-Position: refs/heads/master@{#409855}
Message was sent while issue was closed.
A revert of this CL (patchset #6 id:140001) has been created in https://codereview.chromium.org/2214293003/ by jam@chromium.org. The reason for reverting is: Causing test flakiness. BUG=634543.
Message was sent while issue was closed.
Description was changed from ========== Remove usage of SSLStatus in RenderFrameImpl. Per discussion, this optimization isn't necessary anymore since we don't have a UI that shows frame specific errors. BUG=598073 Committed: https://crrev.com/6ce51b7351ed32a0b6c82f5a83d83641a1b5babd Cr-Commit-Position: refs/heads/master@{#409855} ========== to ========== Remove usage of SSLStatus in RenderFrameImpl. Per discussion, this optimization isn't necessary anymore since we don't have a UI that shows frame specific errors. BUG=598073 Committed: https://crrev.com/6ce51b7351ed32a0b6c82f5a83d83641a1b5babd Cr-Commit-Position: refs/heads/master@{#409855} ==========
The CQ bit was checked by jam@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: linux_chromium_rel_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_...)
Patchset #8 (id:180001) has been deleted
Patchset #8 (id:200001) has been deleted
Patchset #8 (id:220001) has been deleted
The CQ bit was checked by jam@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...
ptal, it looks like there were other CheckAuthenticationBrokenState calls that would flake depending on when the favicon loaded. I've switched the tests to use a network interceptor that just hangs favicon requests to fix this for all cases.
lgtm
The CQ bit was unchecked by jam@chromium.org
The CQ bit was checked by jam@chromium.org
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
Try jobs failed on following builders: linux_android_rel_ng on master.tryserver.chromium.android (JOB_FAILED, https://build.chromium.org/p/tryserver.chromium.android/builders/linux_androi...)
The CQ bit was checked by jam@chromium.org
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
Try jobs failed on following builders: linux_android_rel_ng on master.tryserver.chromium.android (JOB_FAILED, https://build.chromium.org/p/tryserver.chromium.android/builders/linux_androi...)
The CQ bit was checked by jam@chromium.org
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
Message was sent while issue was closed.
Description was changed from ========== Remove usage of SSLStatus in RenderFrameImpl. Per discussion, this optimization isn't necessary anymore since we don't have a UI that shows frame specific errors. BUG=598073 Committed: https://crrev.com/6ce51b7351ed32a0b6c82f5a83d83641a1b5babd Cr-Commit-Position: refs/heads/master@{#409855} ========== to ========== Remove usage of SSLStatus in RenderFrameImpl. Per discussion, this optimization isn't necessary anymore since we don't have a UI that shows frame specific errors. BUG=598073 Committed: https://crrev.com/6ce51b7351ed32a0b6c82f5a83d83641a1b5babd Cr-Commit-Position: refs/heads/master@{#409855} ==========
Message was sent while issue was closed.
Committed patchset #8 (id:240001)
Message was sent while issue was closed.
Description was changed from ========== Remove usage of SSLStatus in RenderFrameImpl. Per discussion, this optimization isn't necessary anymore since we don't have a UI that shows frame specific errors. BUG=598073 Committed: https://crrev.com/6ce51b7351ed32a0b6c82f5a83d83641a1b5babd Cr-Commit-Position: refs/heads/master@{#409855} ========== to ========== Remove usage of SSLStatus in RenderFrameImpl. Per discussion, this optimization isn't necessary anymore since we don't have a UI that shows frame specific errors. BUG=598073 Committed: https://crrev.com/6ce51b7351ed32a0b6c82f5a83d83641a1b5babd Committed: https://crrev.com/aebe8907589f73cd66311a81f84c15b5a40d12bc Cr-Original-Commit-Position: refs/heads/master@{#409855} Cr-Commit-Position: refs/heads/master@{#410418} ==========
Message was sent while issue was closed.
Patchset 8 (id:??) landed as https://crrev.com/aebe8907589f73cd66311a81f84c15b5a40d12bc Cr-Commit-Position: refs/heads/master@{#410418} |