author Mike West <mkwst@chromium.org>
Tue, 05 Mar 2019 11:11:39 +0000
changeset 464517 41177907128bdc7babb664a503c90d36fc842f0d
parent 464183 c08164922aaf04062e0fa9c16c59dbbe995a728a
permissions -rw-r--r--
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

<!DOCTYPE html>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
  test(t => {
    assert_false("getUserAgent" in navigator);
  }, "navigator.getUserAgent() is not available in non-secure contexts.");