We've had the ActivatePageWithInnerContents test to verify a basic level
of functionality when inner WebContents are attached in a prerendered
page in order to eventually support prerendering the PDF viewer. Since
the viewer is being rearchitected, there's little point in supporting
this case anymore.
We now CHECK against attaching an inner WebContents and remove some
workarounds from prerendering code that allowed this test to work. We
make the test into a death test accordingly.
Note that fenced frames, the other embedded frame tree case, already
are not possible during prerendering (the creation is done
post-activation). We add some CHECKs accordingly.
Bug: 40191159, 40180674, 346929955
Change-Id: I8e98a9ba9bcc79aeabb66dfbc42276d66c1b9aef
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5685053
Commit-Queue: Kevin McNee <mcnee@chromium.org>
Reviewed-by: Hiroki Nakagawa <nhiroki@chromium.org>
Reviewed-by: Dave Tapuska <dtapuska@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1324837}
Certain requests may request, but not require, a client cert. Today,
this will result in one of three things happening if there isn't a
client cert available (either from a previous request or from
enterprise policy):
1) The request will fail
2) The user will be shown a cert picker dialog
3) The request will continue without a certificate
On desktop platforms for WebContents-based requesting contexts:
* If there are no certs to choose from, the request will continue
without a cert.
* If there are client certs and the WebContents supports showing
dialogs, the cert picker will be shown.
* If there are certs and the WebContents does not support showing
dialogs, the request will fail.
On Android for WebContents-based requesting contexts:
* We will always call out to the native cert-picker, which may or
may not show a dialog (depending on other device configurations
which Chrome doesn't know about).
On desktop and Android platforms for service worker requesting
contexts:
* The request will always fail.
This CL changes this behavior to allow requests from extension
background service workers to proceed without a client cert if there
are no certs to choose from; this then matches the behavior for
extension background and offscreen WebContents (which do not support
showing dialogs).
Bug: 333954429
Change-Id: Ia6111f3bd499998d6244945daa13ac67774804bf
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5455480
Reviewed-by: Emily Stark <estark@chromium.org>
Reviewed-by: David Benjamin <davidben@chromium.org>
Reviewed-by: Richard (Torne) Coles <torne@chromium.org>
Reviewed-by: Alex Moshchuk <alexmos@chromium.org>
Reviewed-by: Luke Halliwell <halliwell@chromium.org>
Reviewed-by: Andrey Kosyakov <caseq@chromium.org>
Commit-Queue: Devlin Cronin <rdevlin.cronin@chromium.org>
Reviewed-by: Wez <wez@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1322530}
This CL implements CDP support for ignoring certificate errors for all
worker types — service workers, shared workers and dedicated workers. Since SW fetches are often headless, the UI callback is avoided and
a new ShouldBypassCertificateErrors check is introduced.
This CL also promotes some of the Attach* and SendCommand* methods of
TestDevToolsProtocolClient from protected to public, as we need to
establish concurrent connections to targets and TestDevToolsProtocolClient only allows for one by default.
Bug: 40939167
Change-Id: Ieacd2280552672c315d45a51bb6dbcdf43b776e6
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5486845
Reviewed-by: Alex Rudenko <alexrudenko@chromium.org>
Reviewed-by: Emily Stark <estark@chromium.org>
Reviewed-by: Shunya Shishido <sisidovski@chromium.org>
Reviewed-by: Andrey Kosyakov <caseq@chromium.org>
Reviewed-by: Yoshisato Yanagisawa <yyanagisawa@chromium.org>
Commit-Queue: Alex N. Jose <alexnj@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1298597}
The canonical bug format is TODO(crbug.com/<id>). TODOs of the
following forms will all be migrated to the new format:
- TODO(crbug.com/<old id>)
- TODO(https://crbug.com/<old id>)
- TODO(crbug/<old id>)
- TODO(crbug/monorail/<old id>)
- TODO(<old id>)
- TODO(issues.chromium.org/<old id>)
- TODO(https://issues.chromium.org/<old id>)
- TODO(https://issues.chromium.org/u/1/issues/<old id>)
- TODO(bugs.chromium.org/<old id>)
Bug id mapping is sourced from go/chrome-on-buganizer-prod-issues.
See go/crbug-todo-migration for details.
#crbug-todo-migration
Bug: b/321899722
Change-Id: Ibc66b8c440e4bcdef414e77fef4d9874d2ea9951
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5493800
Auto-Submit: Alison Gale <agale@chromium.org>
Commit-Queue: Alison Gale <agale@chromium.org>
Reviewed-by: Peter Boström <pbos@chromium.org>
Owners-Override: Alison Gale <agale@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1293330}
The canonical bug format is TODO(crbug.com/<id>). TODOs of the
following forms will all be migrated to the new format:
- TODO(crbug.com/<old id>)
- TODO(https://crbug.com/<old id>)
- TODO(crbug/<old id>)
- TODO(crbug/monorail/<old id>)
- TODO(<old id>)
- TODO(issues.chromium.org/<old id>)
- TODO(https://issues.chromium.org/<old id>)
- TODO(https://issues.chromium.org/u/1/issues/<old id>)
- TODO(bugs.chromium.org/<old id>)
Bug id mapping is sourced from go/chrome-on-buganizer-prod-issues.
See go/crbug-todo-migration for details.
#crbug-todo-migration
Bug: b/321899722
Change-Id: Ieeb461e2d489e86fd50b87a2a0721a2be34520c3
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5467317
Owners-Override: Alison Gale <agale@chromium.org>
Commit-Queue: Darryl James <dljames@chromium.org>
Commit-Queue: Alison Gale <agale@chromium.org>
Reviewed-by: Darryl James <dljames@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1290198}
This CL is a refactor with no intended behavior change.
This CL replaces SSLClientAuthHandler::ContextGetter with base::WeakPtr.
This CL makes URLLoaderNetworkContext private. This CL deletes
now-unnecessary wrapper functions GetContextFromStoragePartition and
GetBrowserContextFromStoragePartition.
Bug: 1371177
Change-Id: I4bc5c43be8933dc5337f0e38004d69747d0d5957
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5214875
Reviewed-by: Devlin Cronin <rdevlin.cronin@chromium.org>
Commit-Queue: Erik Chen <erikchen@chromium.org>
Reviewed-by: Avi Drissman <avi@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1251234}
Now FrameTree has only is_prerendering() to determine the kPrerender
FrameTree::Type, and callers rely on type() to identify other
types. This works, but makes callers audit a little harder.
Before adding kPreview type to the FrameTree::Type, I will add
similar methods for other types so that I can identify prerendering
specific code path easily.
Bug: b/299239133
Change-Id: If4540e044f0f60639fd4d20bbdedbd5dd775f2ee
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4891931
Reviewed-by: Hiroki Nakagawa <nhiroki@chromium.org>
Commit-Queue: Takashi Toyoshima <toyoshim@chromium.org>
Reviewed-by: Rakina Zata Amni <rakina@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1201622}
Certain requests may require client certs to proceed. The default
behavior for this is to show the user a certificate picker, from which
they can select one. There is also an enterprise policy to allow for
auto-selecting certificates for different URLs.
We only want to show the certificate picker to the user if the request
is made by a web page (something that has a corresponding WebContents);
otherwise, the UI is alarming and confusing. Because of this, we
auto-cancel any client cert selection for requestors that don't have a
WebContents. However, this means that requests from service workers
will never succeed, even if the certificate for the request would have
been auto-selected by policy.
Fix this by instead allowing requests from service workers to check if
there is an auto-selected certificate, and using that if so. Otherwise,
we continue with the old flow of requiring a WebContents to select a
certificate.
Add an end-to-end browser test for the same.
Bug: 1417601
Change-Id: Ied08067ff56295031df61b8f26caa3303edb0c98
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4622260
Reviewed-by: Alex Moshchuk <alexmos@chromium.org>
Reviewed-by: Peter Beverloo <peter@chromium.org>
Reviewed-by: Sergey Ulanov <sergeyu@chromium.org>
Commit-Queue: Devlin Cronin <rdevlin.cronin@chromium.org>
Reviewed-by: Chris Thompson <cthomp@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1171500}
notifications only if the user has allowed HTTPS-related exceptions.
WebContents sends the updated renderer_preferences to the renderers:
1. At the startup of a renderer to inform whether any HTTPS related
warning exceptions has been allowed by the user in the past
2. When the user allows a new certificate or HTTP exception - all
renderers are updated by the browser process.
In case of an certificate exception, the renderers start sending
SubresourceResponseStarted IPC. When all exceptions are revoked, the
renderers are not explicitly signalled to stop sending
SubresourceResponseStarted IPC.
Mini-Design doc:
(https://docs.google.com/document/d/11kzl0_tIzmvOCR7dv28BatxoPO0tk83e-HAPM0HdHZ4/edit?usp=sharing)
Bug: b/257281761
Change-Id: I0bcef03d07f3ddde7174d272b90eafa39fbdcc61
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4075955
Reviewed-by: Nico Weber <thakis@chromium.org>
Reviewed-by: Martin Šrámek <msramek@chromium.org>
Commit-Queue: Aman Verma <amanvr@google.com>
Cr-Commit-Position: refs/heads/main@{#1157119}
Records the distribution of IPC messages where we see a good certificate
and clear out any exceptions that were made by the user for bad
certificates.
Bug: b/257281101
Change-Id: I17d45bf435245b503278b120dbb5e164ff0b8e3b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4004397
Reviewed-by: Ayu Ishii <ayui@chromium.org>
Commit-Queue: Aman Verma <amanvr@google.com>
Reviewed-by: Alex Moshchuk <alexmos@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1072410}
Header files that do not contain "RefCounted" and do not contain
scoped_refptr do not need to include base/memory/ref_counted.h. Remove
it and do IWYU to fix the build.
Bug: 242216
Change-Id: Ie70e43b0c926b8ef610419c99f43eea991ac8d81
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4005763
Reviewed-by: Kyle Charbonneau <kylechar@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
Owners-Override: Kyle Charbonneau <kylechar@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1067592}
GetStoragePartition access.
The GetStoragePartition task is described in
https://docs.google.com/document/d/1kgDz0NhbNeO8qT-gFR_hJJjO1Z-isSnXNtCPrInT2M0 - Design - Pre-work - Necessary pre-work - Investigate
and fix StoragePartition access.
There are two major callsites of guest's WC->GetSI:
1. WebViewGuest's ClearCodeCache, ClearDataInternal and ClearData. These
are addressed by installing a GetGuestMainFrame on GuestViewBase.
2. StatefulSSLHostStateDelegate's AllowCert, QueryPolicy,
AllowHttpForHost, IsHttpAllowedForHost and HasCertAllowException. These
functions only access the storage partition so we can just pass that
instead. This mechanical change introduces the majority of the delta in
this CL.
Bug: 1261928
Change-Id: I0557cb38664fa4493f3bd38bc762865d61cc9607
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3791688
Reviewed-by: Emily Stark <estark@chromium.org>
Reviewed-by: Bo Liu <boliu@chromium.org>
Commit-Queue: William Liu <liuwilliam@chromium.org>
Reviewed-by: Avi Drissman <avi@chromium.org>
Reviewed-by: Kevin McNee <mcnee@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1036561}
This CL changes the following method of content::mojom::FrameHost from:
SubresourceResponseStarted(url.mojom.Url url, uint32 cert_status);
to:
SubresourceResponseStarted(
url.mojom.SchemeHostPort final_response_url, uint32 cert_status);
because it turns out that implementations of that method only ever
depend on the SchemeHostPort of the final URL (and not on other parts of
the full URL like path or query).
Note that this is a revival the following CL using SchemeHostPort
instead of Origin:
https://chromium-review.googlesource.com/c/chromium/src/+/1899739
Since Origin normalizes blob and filesystem, we cannot use it as
a simple replacement of GURL. It caused crbug.com/1049625.
Bug: 973885
Change-Id: I3542be935522bc2abc6f2259d56dd175eabbb3ea
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3637099
Reviewed-by: Alex Moshchuk <alexmos@chromium.org>
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Reviewed-by: Łukasz Anforowicz <lukasza@chromium.org>
Commit-Queue: Yoshisato Yanagisawa <yyanagisawa@chromium.org>
Reviewed-by: Charlie Harrison <csharrison@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1002483}
There are two navigations for prerendering: one for prerendering a page
and the other for activating the prerendered page. This CL avoids
calling NotifyDidChangeVisibleSSLState() for the prerendering navigation
as the prerendered page is not visible to users and should not affect
the visible SSL state. Instead, NotifyDidChangeVisibleSSLState() is
called on the activation navigation.
This change indirectly fixes the precision issue of Omnibox prerendering
for URL inputs (see the bug). The precision is calculated in
AutocompleteActionPredictor::UpdateDatabaseFromTransitionalMatches().
This is supposed to be called on the prerender activation via
NotifyDidChangeVisibleSSLState(), but actually it was also called on the
prerender initial navigation mentioned above. This change drops the call
for the prerender initial navigation, so the calculation logic is
appropriately called only on the prerender activation.
Bug: 1308943
Change-Id: Ie1d8a5b3433d5a98a49157bd1268a6a43b9eb8bc
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3555627
Reviewed-by: Takashi Toyoshima <toyoshim@chromium.org>
Reviewed-by: Alex Moshchuk <alexmos@chromium.org>
Reviewed-by: Adam Langley <agl@chromium.org>
Commit-Queue: Huanpo Lin <robertlin@chromium.org>
Reviewed-by: Hiroki Nakagawa <nhiroki@chromium.org>
Cr-Commit-Position: refs/heads/main@{#997431}
Since SSLManager is bound to NavigationController not WebContents,
it should get the associated navigation controller instead of the
primary navigation controller. Therefore this CL passes
NavigationOrDocumentHandle to SSLManager::OnSSLCertificateError, so
that SSLManager plumbs the correct navigation controller.
Bug: 1284189
Change-Id: Iaca620f12798e7f99312d22f9c72e1a6942f919b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3366165
Reviewed-by: Adam Langley <agl@chromium.org>
Reviewed-by: Kevin McNee <mcnee@chromium.org>
Reviewed-by: Dave Tapuska <dtapuska@chromium.org>
Reviewed-by: Alexander Timin <altimin@chromium.org>
Commit-Queue: Yeunjoo Choi <ychoi@igalia.com>
Cr-Commit-Position: refs/heads/main@{#990269}
This CL adds a new test to verify fenced frame can change the security
state from SECURE to WARNING when a fenced frame loads an insecure
content.
This CL should make SSLManager::UpdateLastCommittedEntry handle the last
committed entry of web contents of |controller_| in order to inform the
web contents of the changed security state caused by the fenced frame.
Additionally, this CL adds
page_displays_insecure_content.html.mock-http-headers file
to make fenced frame load page_displays_insecure_content.html
Bug: 1190833, 1269413
Change-Id: I41923ec9f6a41128773b89be63c7c3262724fc82
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3270199
Reviewed-by: Lingqi Chi <lingqi@chromium.org>
Reviewed-by: Dominic Farolino <dom@chromium.org>
Reviewed-by: Kevin McNee <mcnee@chromium.org>
Reviewed-by: Carlos IL <carlosil@chromium.org>
Reviewed-by: Ken Buchanan <kenrb@chromium.org>
Reviewed-by: Adam Langley <agl@chromium.org>
Commit-Queue: Gyuyoung Kim <gyuyoung@igalia.com>
Cr-Commit-Position: refs/heads/main@{#955532}
This inlines all remaining DISALLOW_* macros in content/. This is done
manually (vim regex + manually finding insertion position).
IWYU cleanup is left as a separate pass that is easier when these macros
go away.
Bug: 1010217
Change-Id: I8b5ea6dd9f8a3f584cf3eef82634017a38b15be8
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3193883
Commit-Queue: Peter Boström <pbos@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
Auto-Submit: Peter Boström <pbos@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
Owners-Override: Lei Zhang <thestig@chromium.org>
Cr-Commit-Position: refs/heads/main@{#936160}
This replaces DISALLOW_COPY_AND_ASSIGN with explicit constructor deletes
where a local script is able to detect its insertion place (~Foo() is
public => insert before this line).
This is incomplete as not all classes have a public ~Foo() declared, so
not all DISALLOW_COPY_AND_ASSIGN occurrences are replaced.
IWYU cleanup is left as a separate pass that is easier when these macros
go away.
Bug: 1010217
Change-Id: Iea478401b7580682c7b9f195f7af9cbbdb6ce315
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3167292
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Owners-Override: Daniel Cheng <dcheng@chromium.org>
Commit-Queue: Peter Boström <pbos@chromium.org>
Cr-Commit-Position: refs/heads/main@{#923194}
Don't include it if it is not needed, especially since
web_contents_impl.h is a big header. Add other headers that
web_contents_impl.h transitively included to fix the build.
Bug: 242216
Change-Id: I62050b638b402a32a5a6846a1240228b29b879dc
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3033578
Reviewed-by: Charlie Reis <creis@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
Cr-Commit-Position: refs/heads/master@{#902511}
This is a content switch, so it makes sense that content would respect
it by default, rather than just chrome. This also happens to make this
feature easier to test.
Bug: 1220829
Change-Id: Ibcd3bc4315c10f9cabb956a37a04bd09181ad762
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2966998
Commit-Queue: Jeremy Roman <jbroman@chromium.org>
Reviewed-by: Alex Moshchuk <alexmos@chromium.org>
Reviewed-by: Emily Stark <estark@chromium.org>
Cr-Commit-Position: refs/heads/master@{#900147}
This CL fixes the issue that SSLManager may get a wrong main frame and
report its metrics with a wrong source id.
This issue could happen because the new multipage architecture allows
WebContents to own more than one FrameTrees, which means there can be
multiple main frames, and we should locate the correct main frame for a
navigation/page.
Before this CL:
NavigationControllerImpl[current]=>delegate()=>GetWebContents()[shared
among primary and non-primary frame trees]->GetMainFrame()[primary]
After this CL:
NavigationControllerImpl[current]=>frame_tree()[current]=>GetMainFrame()
[current].
Bug: 1217953
Change-Id: I395ee81206db54af16b7c73e0939afb583045485
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2962178
Reviewed-by: Emily Stark <estark@chromium.org>
Commit-Queue: Lingqi Chi <lingqi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#893216}
This CL fixes SecurityStateTabHelper to work when there are more than
one page in the same WebContents, particularly with the new prerender.
This CL also incorporates a refactor to PrerenderBrowserTest and adds
a PrerenderTestHelper which allows to test prerender outside of the
content/ layer. Credits to vollick@ for the work on exposing
PrerenderTestHelper and refactoring PrerenderBrowserTests (see
https://chromium-review.googlesource.com/c/chromium/src/+/2787388).
Bug: 1190833
Change-Id: Ibb4c83834e11f821ffe7727e892f35d0360521c2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2819459
Commit-Queue: Lucas Gadani <lfg@chromium.org>
Reviewed-by: Emily Stark <estark@chromium.org>
Reviewed-by: Matt Falkenhagen <falken@chromium.org>
Reviewed-by: Alexander Timin <altimin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#875246}
I can't effectively review code in most of these directories anymore,
so removing myself. (I've left myself as an owner in the areas of code
I still remember, like the interstitials.)
Change-Id: Ie4b00e738509f83c5082a61b47cbd2cf9e3f25f9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2830461
Reviewed-by: Emily Stark <estark@chromium.org>
Commit-Queue: Adrienne Porter Felt <felt@chromium.org>
Cr-Commit-Position: refs/heads/master@{#873359}
Previously SSL.MixedContentShown was logged for bad cert subresources
on bad cert sites. This is not really mixed content, and the more
useful metrics is bad cert subresources on valid cert sites. This
changes the logging logic to do that instead.
Also renames MixedContentShown buckets to use terms that follow the
spec naming, and better reflect the types of content each bucket refers
to.
Bug: 1031270
Change-Id: I989d6f2f3e54f716663acb35ee8e2e65f728e152
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2730509
Commit-Queue: Carlos IL <carlosil@chromium.org>
Auto-Submit: Carlos IL <carlosil@chromium.org>
Reviewed-by: Brian White <bcwhite@chromium.org>
Reviewed-by: Mike West <mkwst@chromium.org>
Reviewed-by: Emily Stark <estark@chromium.org>
Reviewed-by: Chris Thompson <cthomp@chromium.org>
Cr-Commit-Position: refs/heads/master@{#862133}
I added this to every DIR_METADATA file that specified
Internals>Network>{SSL,Certificate}, with the exception of
components/certificate_matching since the OWNERS file currently lists
ChromeOS folks.
Change-Id: I6658e4fe4ce85660fc5243d8cfe76e902508635f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2704778
Commit-Queue: David Benjamin <davidben@chromium.org>
Reviewed-by: Ryan Sleevi <rsleevi@chromium.org>
Reviewed-by: Emily Stark <estark@chromium.org>
Cr-Commit-Position: refs/heads/master@{#855356}
NavigationController is owned by FrameTree so there is no need to go
all the way to WebContents to get to it.
This is just a refactor and should have no behavior changes.
Affected methods
NavigationControllerDelegate
* GetContentsMimeType()
* SetHistoryOffsetAndLength
* HasAccessedInitialDocument
RenderFrameHostDelegate
* DidAccessInitialDocument
* UpdateStateForFrame
* DidDisplayInsecureContent
* DidContainInsecureFormAction
* DidRunInsecureContent
* RecordActiveContentWithCertificateErrors
* SubresourceResponseStarted
* OnGoToEntryAtOffset
Bug: 1164280
Change-Id: I965ffa20dfcc8ce4f2ea5d6a441bb340338b95f5
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2633627
Commit-Queue: Carlos Caballero <carlscab@google.com>
Reviewed-by: Alex Moshchuk <alexmos@chromium.org>
Reviewed-by: Charlie Reis <creis@chromium.org>
Reviewed-by: Alexander Timin <altimin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#848061}