Bug 1526836 [wpt PR 15296] - Implement `navigator.getUserAgent()`, a=testonly
commitb23d8838b3e03152db7388b7e1ae6c2e856282f1
authorMike West <mkwst@chromium.org>
Tue, 5 Mar 2019 11:11:39 +0000 (5 11:11 +0000)
committerJames Graham <james@hoppipolla.co.uk>
Fri, 15 Mar 2019 18:07:15 +0000 (15 18:07 +0000)
treec116f9db602d9a51653f65c6fe9dca70d4f9ffd6
parent6881bde88cd99a3d30dcd1b4a0b73f4dc6a405ce
Bug 1526836 [wpt PR 15296] - Implement `navigator.getUserAgent()`, a=testonly

Automatic update from web-platform-tests
Implement `navigator.getUserAgent()`

This patch is smaller than it looks. It basically does the following:

1.  It introduces `blink::UserAgentMetadata`, and a corresponding mojo
    type in order to hold the various shards of data we'd like to expose
    about user agents (brand, version, platform, architecture, and
    model).

2.  It threads these new types down from //chrome and //content/shell's
    implementations of `ContentBrowserClient` down into Blink via the
    same route we're using for the existing user-agent string
    (ChromeContentBrowserClient -> RenderProcessHost -> RenderThread
    -> Platform -> LocalFrameClient -> FrameLoader).

3.  It extends `Navigator` with a new `NavigatorUserAgent` mixin that
    exposes `navigator.getUserAgent()`. This returns a promise that
    resolves with a newly defined `UserAgent` IDL dictionary type.

So, the patch is huge, but not really that complex.

Bug: 928670
Change-Id: I4f267e373864162264ad4d721650942b147b378d
Reviewed-on: https://chromium-review.googlesource.com/c/1458098
Commit-Queue: Mike West <mkwst@chromium.org>
Reviewed-by: Yoav Weiss <yoavweiss@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Cr-Commit-Position: refs/heads/master@{#631613}

--

wpt-commits: 290e4d77cd6418cf7b37351549c1ed2e5c62f557
wpt-pr: 15296
testing/web-platform/tests/html/webappapis/system-state-and-capabilities/the-navigator-object/navigator_user_agent.tentative.html [new file with mode: 0644]
testing/web-platform/tests/html/webappapis/system-state-and-capabilities/the-navigator-object/navigator_user_agent.tentative.https.html [new file with mode: 0644]