diff --git a/chrome/VERSION b/chrome/VERSION
index 1336686..833f22c 100644
--- a/chrome/VERSION
+++ b/chrome/VERSION
@@ -1,4 +1,4 @@
 MAJOR=56
 MINOR=0
-BUILD=2918
+BUILD=2919
 PATCH=0
diff --git a/chrome/browser/chromeos/accessibility/spoken_feedback_browsertest.cc b/chrome/browser/chromeos/accessibility/spoken_feedback_browsertest.cc
index b39a147..ea4dead5 100644
--- a/chrome/browser/chromeos/accessibility/spoken_feedback_browsertest.cc
+++ b/chrome/browser/chromeos/accessibility/spoken_feedback_browsertest.cc
@@ -535,7 +535,7 @@
   // Press Search+/ to enter ChromeVox's "find in page".
   SendKeyPressWithSearch(ui::VKEY_OEM_2);
   EXPECT_EQ(", window", speech_monitor_.GetNextUtterance());
-  EXPECT_EQ("webView", speech_monitor_.GetNextUtterance());
+  EXPECT_EQ("chrome vox Panel", speech_monitor_.GetNextUtterance());
   EXPECT_EQ("Find in page.", speech_monitor_.GetNextUtterance());
 }
 
diff --git a/chrome/browser/resources/chromeos/chromevox/cvox2/background/panel.js b/chrome/browser/resources/chromeos/chromevox/cvox2/background/panel.js
index 2469aeb..0a908659 100644
--- a/chrome/browser/resources/chromeos/chromevox/cvox2/background/panel.js
+++ b/chrome/browser/resources/chromeos/chromevox/cvox2/background/panel.js
@@ -139,6 +139,18 @@
   }, false);
 
   Panel.searchInput_.addEventListener('blur', Panel.onSearchInputBlur, false);
+
+  // If OOBE is showing, automatically trigger the tutorial.
+  chrome.automation.getDesktop(function(desktop) {
+    var loadCompleteType = chrome.automation.EventType.loadComplete;
+    var watchForOobe = function(evt) {
+      if (evt.target.url == 'chrome://oobe/oobe') {
+        desktop.removeEventListener(loadCompleteType, watchForOobe, false);
+        Panel.onTutorial();
+      }
+    };
+    desktop.addEventListener(loadCompleteType, watchForOobe, false);
+  });
 };
 
 /**
diff --git a/chrome/renderer/net/net_error_helper.cc b/chrome/renderer/net/net_error_helper.cc
index debc819..b4048802 100644
--- a/chrome/renderer/net/net_error_helper.cc
+++ b/chrome/renderer/net/net_error_helper.cc
@@ -323,7 +323,6 @@
 
   blink::WebURLRequest request(page_url);
   request.setCachePolicy(blink::WebCachePolicy::ReturnCacheDataDontLoad);
-  request.setRequestorOrigin(blink::WebSecurityOrigin::createUnique());
   web_frame->loadRequest(request);
 }
 
diff --git a/chromeos/CHROMEOS_LKGM b/chromeos/CHROMEOS_LKGM
index 960002b..2be8833 100644
--- a/chromeos/CHROMEOS_LKGM
+++ b/chromeos/CHROMEOS_LKGM
@@ -1 +1 @@
-8982.0.0
\ No newline at end of file
+8985.0.0
\ No newline at end of file
diff --git a/components/nacl/renderer/ppb_nacl_private_impl.cc b/components/nacl/renderer/ppb_nacl_private_impl.cc
index a05a255..fd9657d 100644
--- a/components/nacl/renderer/ppb_nacl_private_impl.cc
+++ b/components/nacl/renderer/ppb_nacl_private_impl.cc
@@ -337,8 +337,7 @@
 
 blink::WebURLRequest CreateWebURLRequest(const blink::WebDocument& document,
                                          const GURL& gurl) {
-  blink::WebURLRequest request;
-  request.setURL(gurl);
+  blink::WebURLRequest request(gurl);
   request.setFirstPartyForCookies(document.firstPartyForCookies());
   return request;
 }
diff --git a/components/printing/renderer/print_web_view_helper.cc b/components/printing/renderer/print_web_view_helper.cc
index 2bb1ccc..dd6a4bf2 100644
--- a/components/printing/renderer/print_web_view_helper.cc
+++ b/components/printing/renderer/print_web_view_helper.cc
@@ -34,7 +34,6 @@
 #include "printing/pdf_metafile_skia.h"
 #include "printing/units.h"
 #include "third_party/WebKit/public/platform/WebDoubleSize.h"
-#include "third_party/WebKit/public/platform/WebSecurityOrigin.h"
 #include "third_party/WebKit/public/platform/WebSize.h"
 #include "third_party/WebKit/public/platform/WebURLRequest.h"
 #include "third_party/WebKit/public/web/WebConsoleMessage.h"
@@ -811,7 +810,6 @@
   // When loading is done this will call didStopLoading() and that will do the
   // actual printing.
   blink::WebURLRequest request = blink::WebURLRequest(GURL(url_str));
-  request.setRequestorOrigin(blink::WebSecurityOrigin::createUnique());
   frame()->loadRequest(request);
 }
 
diff --git a/content/browser/browser_main_runner.cc b/content/browser/browser_main_runner.cc
index b14ee36..2116cc2 100644
--- a/content/browser/browser_main_runner.cc
+++ b/content/browser/browser_main_runner.cc
@@ -87,20 +87,6 @@
       if (parameters.command_line.HasSwitch(switches::kWaitForDebugger))
         base::debug::WaitForDebugger(60, true);
 
-#if defined(OS_WIN)
-      if (base::win::GetVersion() < base::win::VERSION_VISTA) {
-        // When "Extend support of advanced text services to all programs"
-        // (a.k.a. Cicero Unaware Application Support; CUAS) is enabled on
-        // Windows XP and handwriting modules shipped with Office 2003 are
-        // installed, "penjpn.dll" and "skchui.dll" will be loaded and then
-        // crash unless a user installs Office 2003 SP3. To prevent these
-        // modules from being loaded, disable TSF entirely. crbug.com/160914.
-        // TODO(yukawa): Add a high-level wrapper for this instead of calling
-        // Win32 API here directly.
-        ImmDisableTextFrameService(static_cast<DWORD>(-1));
-      }
-#endif  // OS_WIN
-
       base::StatisticsRecorder::Initialize();
 
       notification_service_.reset(new NotificationServiceImpl);
diff --git a/content/child/web_url_loader_impl.cc b/content/child/web_url_loader_impl.cc
index 5337e95..4a2e0d2 100644
--- a/content/child/web_url_loader_impl.cc
+++ b/content/child/web_url_loader_impl.cc
@@ -663,13 +663,11 @@
   PopulateURLResponse(request_.url(), info, &response,
                       request_.reportRawHeaders());
 
-  WebURLRequest new_request;
-  PopulateURLRequestForRedirect(
+  WebURLRequest new_request = PopulateURLRequestForRedirect(
       request_, redirect_info,
       info.was_fetched_via_service_worker
           ? blink::WebURLRequest::SkipServiceWorker::None
-          : blink::WebURLRequest::SkipServiceWorker::All,
-      &new_request);
+          : blink::WebURLRequest::SkipServiceWorker::All);
 
   bool follow = client_->willFollowRedirect(loader_, new_request, response);
   if (!follow) {
@@ -1170,34 +1168,34 @@
   }
 }
 
-void WebURLLoaderImpl::PopulateURLRequestForRedirect(
+WebURLRequest WebURLLoaderImpl::PopulateURLRequestForRedirect(
     const blink::WebURLRequest& request,
     const net::RedirectInfo& redirect_info,
-    blink::WebURLRequest::SkipServiceWorker skip_service_worker,
-    blink::WebURLRequest* new_request) {
+    blink::WebURLRequest::SkipServiceWorker skip_service_worker) {
   // TODO(darin): We lack sufficient information to construct the actual
   // request that resulted from the redirect.
-  new_request->setURL(redirect_info.new_url);
-  new_request->setFirstPartyForCookies(
+  WebURLRequest new_request(redirect_info.new_url);
+  new_request.setFirstPartyForCookies(
       redirect_info.new_first_party_for_cookies);
-  new_request->setDownloadToFile(request.downloadToFile());
-  new_request->setUseStreamOnResponse(request.useStreamOnResponse());
-  new_request->setRequestContext(request.getRequestContext());
-  new_request->setFrameType(request.getFrameType());
-  new_request->setSkipServiceWorker(skip_service_worker);
-  new_request->setShouldResetAppCache(request.shouldResetAppCache());
-  new_request->setFetchRequestMode(request.getFetchRequestMode());
-  new_request->setFetchCredentialsMode(request.getFetchCredentialsMode());
+  new_request.setDownloadToFile(request.downloadToFile());
+  new_request.setUseStreamOnResponse(request.useStreamOnResponse());
+  new_request.setRequestContext(request.getRequestContext());
+  new_request.setFrameType(request.getFrameType());
+  new_request.setSkipServiceWorker(skip_service_worker);
+  new_request.setShouldResetAppCache(request.shouldResetAppCache());
+  new_request.setFetchRequestMode(request.getFetchRequestMode());
+  new_request.setFetchCredentialsMode(request.getFetchCredentialsMode());
 
-  new_request->setHTTPReferrer(WebString::fromUTF8(redirect_info.new_referrer),
+  new_request.setHTTPReferrer(WebString::fromUTF8(redirect_info.new_referrer),
                                NetReferrerPolicyToBlinkReferrerPolicy(
                                    redirect_info.new_referrer_policy));
-  new_request->setPriority(request.getPriority());
+  new_request.setPriority(request.getPriority());
 
   std::string old_method = request.httpMethod().utf8();
-  new_request->setHTTPMethod(WebString::fromUTF8(redirect_info.new_method));
+  new_request.setHTTPMethod(WebString::fromUTF8(redirect_info.new_method));
   if (redirect_info.new_method == old_method)
-    new_request->setHTTPBody(request.httpBody());
+    new_request.setHTTPBody(request.httpBody());
+  return new_request;
 }
 
 void WebURLLoaderImpl::loadSynchronously(const WebURLRequest& request,
diff --git a/content/child/web_url_loader_impl.h b/content/child/web_url_loader_impl.h
index 01f3d22..2f98fab 100644
--- a/content/child/web_url_loader_impl.h
+++ b/content/child/web_url_loader_impl.h
@@ -50,11 +50,10 @@
                                   const ResourceResponseInfo& info,
                                   blink::WebURLResponse* response,
                                   bool report_security_info);
-  static void PopulateURLRequestForRedirect(
+  static blink::WebURLRequest PopulateURLRequestForRedirect(
       const blink::WebURLRequest& request,
       const net::RedirectInfo& redirect_info,
-      blink::WebURLRequest::SkipServiceWorker skip_service_worker,
-      blink::WebURLRequest* new_request);
+      blink::WebURLRequest::SkipServiceWorker skip_service_worker);
 
   // WebURLLoader methods:
   void loadSynchronously(const blink::WebURLRequest& request,
diff --git a/content/child/web_url_loader_impl_unittest.cc b/content/child/web_url_loader_impl_unittest.cc
index c0f51c4..c84a57c 100644
--- a/content/child/web_url_loader_impl_unittest.cc
+++ b/content/child/web_url_loader_impl_unittest.cc
@@ -288,17 +288,15 @@
   ~WebURLLoaderImplTest() override {}
 
   void DoStartAsyncRequest() {
-    blink::WebURLRequest request;
-    request.setURL(GURL(kTestURL));
+    blink::WebURLRequest request{GURL(kTestURL)};
     client()->loader()->loadAsynchronously(request, client());
     ASSERT_TRUE(peer());
   }
 
   void DoStartAsyncRequestWithPriority(
       blink::WebURLRequest::Priority priority) {
-    blink::WebURLRequest request;
+    blink::WebURLRequest request{GURL(kTestURL)};
     request.setPriority(priority);
-    request.setURL(GURL(kTestURL));
     client()->loader()->loadAsynchronously(request, client());
     ASSERT_TRUE(peer());
   }
@@ -466,8 +464,7 @@
 }
 
 TEST_F(WebURLLoaderImplTest, DeleteBeforeResponseDataURL) {
-  blink::WebURLRequest request;
-  request.setURL(GURL("data:text/html;charset=utf-8,blah!"));
+  blink::WebURLRequest request(GURL("data:text/html;charset=utf-8,blah!"));
   client()->loader()->loadAsynchronously(request, client());
   client()->DeleteLoader();
   base::RunLoop().RunUntilIdle();
@@ -477,8 +474,7 @@
 // Data URL tests.
 
 TEST_F(WebURLLoaderImplTest, DataURL) {
-  blink::WebURLRequest request;
-  request.setURL(GURL("data:text/html;charset=utf-8,blah!"));
+  blink::WebURLRequest request(GURL("data:text/html;charset=utf-8,blah!"));
   client()->loader()->loadAsynchronously(request, client());
   base::RunLoop().RunUntilIdle();
   EXPECT_EQ("blah!", client()->received_data());
@@ -488,8 +484,7 @@
 }
 
 TEST_F(WebURLLoaderImplTest, DataURLDeleteOnReceiveResponse) {
-  blink::WebURLRequest request;
-  request.setURL(GURL("data:text/html;charset=utf-8,blah!"));
+  blink::WebURLRequest request(GURL("data:text/html;charset=utf-8,blah!"));
   client()->set_delete_on_receive_response();
   client()->loader()->loadAsynchronously(request, client());
   base::RunLoop().RunUntilIdle();
@@ -499,8 +494,7 @@
 }
 
 TEST_F(WebURLLoaderImplTest, DataURLDeleteOnReceiveData) {
-  blink::WebURLRequest request;
-  request.setURL(GURL("data:text/html;charset=utf-8,blah!"));
+  blink::WebURLRequest request(GURL("data:text/html;charset=utf-8,blah!"));
   client()->set_delete_on_receive_data();
   client()->loader()->loadAsynchronously(request, client());
   base::RunLoop().RunUntilIdle();
@@ -510,8 +504,7 @@
 }
 
 TEST_F(WebURLLoaderImplTest, DataURLDeleteOnFinish) {
-  blink::WebURLRequest request;
-  request.setURL(GURL("data:text/html;charset=utf-8,blah!"));
+  blink::WebURLRequest request(GURL("data:text/html;charset=utf-8,blah!"));
   client()->set_delete_on_finish();
   client()->loader()->loadAsynchronously(request, client());
   base::RunLoop().RunUntilIdle();
@@ -521,8 +514,7 @@
 }
 
 TEST_F(WebURLLoaderImplTest, DataURLDefersLoading) {
-  blink::WebURLRequest request;
-  request.setURL(GURL("data:text/html;charset=utf-8,blah!"));
+  blink::WebURLRequest request(GURL("data:text/html;charset=utf-8,blah!"));
   client()->loader()->loadAsynchronously(request, client());
 
   // setDefersLoading() might be called with either false or true in no
@@ -628,8 +620,7 @@
   const GURL kNavigationURL = GURL(kTestURL);
   const GURL kStreamURL = GURL("http://bar");
   const std::string kMimeType = "text/html";
-  blink::WebURLRequest request;
-  request.setURL(kNavigationURL);
+  blink::WebURLRequest request(kNavigationURL);
   request.setFrameType(blink::WebURLRequest::FrameTypeTopLevel);
   request.setRequestContext(blink::WebURLRequest::RequestContextFrame);
   std::unique_ptr<StreamOverrideParameters> stream_override(
diff --git a/content/public/test/render_view_test.cc b/content/public/test/render_view_test.cc
index defddbdc..6a63403 100644
--- a/content/public/test/render_view_test.cc
+++ b/content/public/test/render_view_test.cc
@@ -37,7 +37,6 @@
 #include "content/test/mock_render_process.h"
 #include "content/test/test_content_client.h"
 #include "content/test/test_render_frame.h"
-#include "third_party/WebKit/public/platform/WebSecurityOrigin.h"
 #include "third_party/WebKit/public/platform/WebURLRequest.h"
 #include "third_party/WebKit/public/platform/scheduler/renderer/renderer_scheduler.h"
 #include "third_party/WebKit/public/web/WebDocument.h"
@@ -186,7 +185,6 @@
   url_string.append(html);
   GURL url(url_string);
   WebURLRequest request(url);
-  request.setRequestorOrigin(blink::WebSecurityOrigin::createUnique());
   request.setCheckForBrowserSideNavigation(false);
   GetMainFrame()->loadRequest(request);
   // The load actually happens asynchronously, so we pump messages to process
diff --git a/content/shell/renderer/layout_test/blink_test_runner.cc b/content/shell/renderer/layout_test/blink_test_runner.cc
index 2806b53a..69cd4cb 100644
--- a/content/shell/renderer/layout_test/blink_test_runner.cc
+++ b/content/shell/renderer/layout_test/blink_test_runner.cc
@@ -67,7 +67,6 @@
 #include "third_party/WebKit/public/platform/WebInputEvent.h"
 #include "third_party/WebKit/public/platform/WebPoint.h"
 #include "third_party/WebKit/public/platform/WebRect.h"
-#include "third_party/WebKit/public/platform/WebSecurityOrigin.h"
 #include "third_party/WebKit/public/platform/WebSize.h"
 #include "third_party/WebKit/public/platform/WebString.h"
 #include "third_party/WebKit/public/platform/WebThread.h"
@@ -1001,7 +1000,6 @@
   // Navigating to about:blank will make sure that no new loads are initiated
   // by the renderer.
   WebURLRequest request = WebURLRequest(GURL(url::kAboutBlankURL));
-  request.setRequestorOrigin(blink::WebSecurityOrigin::createUnique());
   render_view()->GetWebView()->mainFrame()->loadRequest(request);
   Send(new ShellViewHostMsg_ResetDone(routing_id()));
 }
diff --git a/third_party/WebKit/LayoutTests/imported/wpt/check_stability.py b/third_party/WebKit/LayoutTests/imported/wpt/check_stability.py
index e2ee9661..7b70721 100644
--- a/third_party/WebKit/LayoutTests/imported/wpt/check_stability.py
+++ b/third_party/WebKit/LayoutTests/imported/wpt/check_stability.py
@@ -1,3 +1,5 @@
+from __future__ import print_function
+
 import argparse
 import json
 import logging
@@ -75,6 +77,17 @@
                 return self.inner(item)
 
 
+class TravisFold(object):
+    def __init__(self, name):
+        self.name = name
+
+    def __enter__(self):
+        print("travis_fold:start:%s" % self.name, file=sys.stderr)
+
+    def __exit__(self, type, value, traceback):
+        print("travis_fold:end:%s" % self.name, file=sys.stderr)
+
+
 class GitHub(object):
     def __init__(self, org, repo, token):
         self.token = token
@@ -498,68 +511,65 @@
         logger.warning("Can't log to GitHub")
         gh_handler = None
 
-    print >> sys.stderr, "travis_fold:start:browser_setup"
-    logger.info("# %s #" % args.browser.title())
+    with TravisFold("browser_setup"):
+        logger.info("# %s #" % args.browser.title())
 
-    browser_cls = {"firefox": Firefox,
-                   "chrome": Chrome}.get(args.browser)
-    if browser_cls is None:
-        logger.critical("Unrecognised browser %s" % args.browser)
-        return 1
+        browser_cls = {"firefox": Firefox,
+                       "chrome": Chrome}.get(args.browser)
+        if browser_cls is None:
+            logger.critical("Unrecognised browser %s" % args.browser)
+            return 1
 
-    fetch_wpt_master()
+        fetch_wpt_master()
 
-    head_sha1 = get_sha1()
-    logger.info("Testing revision %s" % head_sha1)
+        head_sha1 = get_sha1()
+        logger.info("Testing revision %s" % head_sha1)
 
-    # For now just pass the whole list of changed files to wptrunner and
-    # assume that it will run everything that's actually a test
-    files_changed = get_files_changed()
+        # For now just pass the whole list of changed files to wptrunner and
+        # assume that it will run everything that's actually a test
+        files_changed = get_files_changed()
 
-    if not files_changed:
-        logger.info("No files changed")
-        return 0
+        if not files_changed:
+            logger.info("No files changed")
+            return 0
 
-    build_manifest()
-    install_wptrunner()
-    do_delayed_imports()
+        build_manifest()
+        install_wptrunner()
+        do_delayed_imports()
 
-    logger.debug("Files changed:\n%s" % "".join(" * %s\n" % item for item in files_changed))
+        logger.debug("Files changed:\n%s" % "".join(" * %s\n" % item for item in files_changed))
 
-    browser = browser_cls(args.gh_token)
+        browser = browser_cls(args.gh_token)
 
-    browser.install()
-    browser.install_webdriver()
+        browser.install()
+        browser.install_webdriver()
 
-    kwargs = wptrunner_args(args.root,
-                            files_changed,
-                            args.iterations,
-                            browser)
+        kwargs = wptrunner_args(args.root,
+                                files_changed,
+                                args.iterations,
+                                browser)
 
-    print >> sys.stderr, "travis_fold:end:browser_setup"
-    print >> sys.stderr, "travis_fold:start:running_tests"
-    logger.info("Starting %i test iterations" % args.iterations)
-    with open("raw.log", "wb") as log:
-        wptrunner.setup_logging(kwargs,
-                                {"raw": log})
-        # Setup logging for wptrunner that keeps process output and
-        # warning+ level logs only
-        wptrunner.logger.add_handler(
-            LogActionFilter(
-                LogLevelFilter(
-                    StreamHandler(
-                        sys.stdout,
-                        TbplFormatter()
-                    ),
-                    "WARNING"),
-                ["log", "process_output"]))
+    with TravisFold("running_tests"):
+        logger.info("Starting %i test iterations" % args.iterations)
+        with open("raw.log", "wb") as log:
+            wptrunner.setup_logging(kwargs,
+                                    {"raw": log})
+            # Setup logging for wptrunner that keeps process output and
+            # warning+ level logs only
+            wptrunner.logger.add_handler(
+                LogActionFilter(
+                    LogLevelFilter(
+                        StreamHandler(
+                            sys.stdout,
+                            TbplFormatter()
+                        ),
+                        "WARNING"),
+                    ["log", "process_output"]))
 
-        wptrunner.run_tests(**kwargs)
+            wptrunner.run_tests(**kwargs)
 
-    with open("raw.log", "rb") as log:
-        results, inconsistent = process_results(log, args.iterations)
-
-    print >> sys.stderr, "travis_fold:end:running_tests"
+        with open("raw.log", "rb") as log:
+            results, inconsistent = process_results(log, args.iterations)
 
     if results:
         if inconsistent:
@@ -567,9 +577,8 @@
             retcode = 2
         else:
             logger.info("All results were stable\n")
-        print >> sys.stderr, "travis_fold:start:full_results"
-        write_results(results, args.iterations, args.comment_pr)
-        print >> sys.stderr, "travis_fold:end:full_results"
+        with TravisFold("full_results"):
+            write_results(results, args.iterations, args.comment_pr)
     else:
         logger.info("No tests run.")
 
diff --git a/third_party/WebKit/LayoutTests/imported/wpt/html/semantics/grouping-content/the-li-element/grouping-li-refetest-no-list-owner-ref.html b/third_party/WebKit/LayoutTests/imported/wpt/html/semantics/grouping-content/the-li-element/grouping-li-refetest-no-list-owner-ref.html
deleted file mode 100644
index e3ed2a51..0000000
--- a/third_party/WebKit/LayoutTests/imported/wpt/html/semantics/grouping-content/the-li-element/grouping-li-refetest-no-list-owner-ref.html
+++ /dev/null
@@ -1,29 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>If no ancestors generate CSS boxes, the list item has no owner, and thus gets numbered as 0</title>
-<link rel="author" title="Domenic Denicola" href="mailto:d@domenic.me">
-<link rel="help" href="https://html.spec.whatwg.org/multipage/semantics.html#ordinal-value">
-<link rel="help" href="https://html.spec.whatwg.org/multipage/semantics.html#list-owner">
-
-<style>
-  html, body {
-    display: contents;
-  }
-
-  li {
-    list-style-type: decimal;
-    margin-left: 50px;
-  }
-</style>
-
-<p>This test matches if the list displays similar to the following</p>
-
-<pre>0. A
-0. B
-0. C</pre>
-
-<hr>
-
-<li value="0">A</li>
-<li value="0">B</li>
-<li value="0">C</li>
diff --git a/third_party/WebKit/Source/core/loader/FrameFetchContextTest.cpp b/third_party/WebKit/Source/core/loader/FrameFetchContextTest.cpp
index 264bf8e..0ee5882 100644
--- a/third_party/WebKit/Source/core/loader/FrameFetchContextTest.cpp
+++ b/third_party/WebKit/Source/core/loader/FrameFetchContextTest.cpp
@@ -609,9 +609,7 @@
 
     ResourceRequest request("http://example.test/");
     request.setFrameType(test.frameType);
-    if (strlen(test.requestorOrigin) == 0) {
-      request.setRequestorOrigin(SecurityOrigin::createUnique());
-    } else {
+    if (strlen(test.requestorOrigin) > 0) {
       request.setRequestorOrigin(
           SecurityOrigin::create(KURL(ParsedURLString, test.requestorOrigin)));
     }
diff --git a/third_party/WebKit/Source/platform/testing/weburl_loader_mock.cc b/third_party/WebKit/Source/platform/testing/weburl_loader_mock.cc
index a573866..7b759185d8 100644
--- a/third_party/WebKit/Source/platform/testing/weburl_loader_mock.cc
+++ b/third_party/WebKit/Source/platform/testing/weburl_loader_mock.cc
@@ -66,8 +66,7 @@
   KURL redirectURL(
       ParsedURLString, redirectResponse.httpHeaderField("Location"));
 
-  WebURLRequest newRequest;
-  newRequest.setURL(redirectURL);
+  WebURLRequest newRequest(redirectURL);
   newRequest.setFirstPartyForCookies(redirectURL);
   newRequest.setDownloadToFile(request.downloadToFile());
   newRequest.setUseStreamOnResponse(request.useStreamOnResponse());
diff --git a/third_party/WebKit/Source/web/WebAssociatedURLLoaderImplTest.cpp b/third_party/WebKit/Source/web/WebAssociatedURLLoaderImplTest.cpp
index 741535a..16782b0 100644
--- a/third_party/WebKit/Source/web/WebAssociatedURLLoaderImplTest.cpp
+++ b/third_party/WebKit/Source/web/WebAssociatedURLLoaderImplTest.cpp
@@ -166,8 +166,7 @@
   void didFail(const WebURLError& error) override { m_didFail = true; }
 
   void CheckMethodFails(const char* unsafeMethod) {
-    WebURLRequest request;
-    request.setURL(toKURL("http://www.test.com/success.html"));
+    WebURLRequest request(toKURL("http://www.test.com/success.html"));
     request.setHTTPMethod(WebString::fromUTF8(unsafeMethod));
     WebAssociatedURLLoaderOptions options;
     options.untrustedHTTP = true;
@@ -179,8 +178,7 @@
   }
 
   void CheckHeaderFails(const char* headerField, const char* headerValue) {
-    WebURLRequest request;
-    request.setURL(toKURL("http://www.test.com/success.html"));
+    WebURLRequest request(toKURL("http://www.test.com/success.html"));
     if (equalIgnoringASCIICase(WebString::fromUTF8(headerField), "referer")) {
       request.setHTTPReferrer(WebString::fromUTF8(headerValue),
                               WebReferrerPolicyDefault);
@@ -216,8 +214,7 @@
     id.append(".html");
 
     KURL url = toKURL(id);
-    WebURLRequest request;
-    request.setURL(url);
+    WebURLRequest request(url);
 
     WebString headerNameString(WebString::fromUTF8(headerName));
     m_expectedResponse = WebURLResponse();
@@ -271,8 +268,7 @@
 // Test a successful same-origin URL load.
 TEST_F(WebAssociatedURLLoaderTest, SameOriginSuccess) {
   KURL url = toKURL("http://www.test.com/SameOriginSuccess.html");
-  WebURLRequest request;
-  request.setURL(url);
+  WebURLRequest request(url);
 
   m_expectedResponse = WebURLResponse();
   m_expectedResponse.setMIMEType("text/html");
@@ -293,8 +289,7 @@
 TEST_F(WebAssociatedURLLoaderTest, SameOriginRestriction) {
   // This is cross-origin since the frame was loaded from www.test.com.
   KURL url = toKURL("http://www.other.com/SameOriginRestriction.html");
-  WebURLRequest request;
-  request.setURL(url);
+  WebURLRequest request(url);
   CheckFails(request);
 }
 
@@ -302,8 +297,7 @@
 TEST_F(WebAssociatedURLLoaderTest, CrossOriginSuccess) {
   // This is cross-origin since the frame was loaded from www.test.com.
   KURL url = toKURL("http://www.other.com/CrossOriginSuccess");
-  WebURLRequest request;
-  request.setURL(url);
+  WebURLRequest request(url);
   // No-CORS requests (CrossOriginRequestPolicyAllow) aren't allowed for the
   // default context. So we set the context as Script here.
   request.setRequestContext(WebURLRequest::RequestContextScript);
@@ -331,8 +325,7 @@
   // This is cross-origin since the frame was loaded from www.test.com.
   KURL url =
       toKURL("http://www.other.com/CrossOriginWithAccessControlSuccess.html");
-  WebURLRequest request;
-  request.setURL(url);
+  WebURLRequest request(url);
 
   m_expectedResponse = WebURLResponse();
   m_expectedResponse.setMIMEType("text/html");
@@ -358,8 +351,7 @@
   // This is cross-origin since the frame was loaded from www.test.com.
   KURL url =
       toKURL("http://www.other.com/CrossOriginWithAccessControlFailure.html");
-  WebURLRequest request;
-  request.setURL(url);
+  WebURLRequest request(url);
 
   m_expectedResponse = WebURLResponse();
   m_expectedResponse.setMIMEType("text/html");
@@ -393,8 +385,7 @@
   // This is cross-origin since the frame was loaded from www.test.com.
   KURL url =
       toKURL("http://www.other.com/CrossOriginWithAccessControlFailure.html");
-  WebURLRequest request;
-  request.setURL(url);
+  WebURLRequest request(url);
 
   m_expectedResponse = WebURLResponse();
   m_expectedResponse.setMIMEType("text/html");
@@ -424,8 +415,7 @@
   char redirect[] = "http://www.test.com/RedirectSuccess2.html";  // Same-origin
   KURL redirectURL = toKURL(redirect);
 
-  WebURLRequest request;
-  request.setURL(url);
+  WebURLRequest request(url);
 
   m_expectedRedirectResponse = WebURLResponse();
   m_expectedRedirectResponse.setMIMEType("text/html");
@@ -434,8 +424,7 @@
   Platform::current()->getURLLoaderMockFactory()->registerURL(
       url, m_expectedRedirectResponse, m_frameFilePath);
 
-  m_expectedNewRequest = WebURLRequest();
-  m_expectedNewRequest.setURL(redirectURL);
+  m_expectedNewRequest = WebURLRequest(redirectURL);
 
   m_expectedResponse = WebURLResponse();
   m_expectedResponse.setMIMEType("text/html");
@@ -460,8 +449,7 @@
       "http://www.other.com/RedirectCrossOriginFailure.html";  // Cross-origin
   KURL redirectURL = toKURL(redirect);
 
-  WebURLRequest request;
-  request.setURL(url);
+  WebURLRequest request(url);
 
   m_expectedRedirectResponse = WebURLResponse();
   m_expectedRedirectResponse.setMIMEType("text/html");
@@ -470,8 +458,7 @@
   Platform::current()->getURLLoaderMockFactory()->registerURL(
       url, m_expectedRedirectResponse, m_frameFilePath);
 
-  m_expectedNewRequest = WebURLRequest();
-  m_expectedNewRequest.setURL(redirectURL);
+  m_expectedNewRequest = WebURLRequest(redirectURL);
 
   m_expectedResponse = WebURLResponse();
   m_expectedResponse.setMIMEType("text/html");
@@ -500,8 +487,7 @@
       "RedirectCrossOriginWithAccessControlFailure.html";  // Cross-origin
   KURL redirectURL = toKURL(redirect);
 
-  WebURLRequest request;
-  request.setURL(url);
+  WebURLRequest request(url);
 
   m_expectedRedirectResponse = WebURLResponse();
   m_expectedRedirectResponse.setMIMEType("text/html");
@@ -510,8 +496,7 @@
   Platform::current()->getURLLoaderMockFactory()->registerURL(
       url, m_expectedRedirectResponse, m_frameFilePath);
 
-  m_expectedNewRequest = WebURLRequest();
-  m_expectedNewRequest.setURL(redirectURL);
+  m_expectedNewRequest = WebURLRequest(redirectURL);
 
   m_expectedResponse = WebURLResponse();
   m_expectedResponse.setMIMEType("text/html");
@@ -545,8 +530,7 @@
       "RedirectCrossOriginWithAccessControlSuccess.html";  // Cross-origin
   KURL redirectURL = toKURL(redirect);
 
-  WebURLRequest request;
-  request.setURL(url);
+  WebURLRequest request(url);
   // Add a CORS simple header.
   request.setHTTPHeaderField("accept", "application/json");
 
@@ -561,8 +545,7 @@
   Platform::current()->getURLLoaderMockFactory()->registerURL(
       url, m_expectedRedirectResponse, m_frameFilePath);
 
-  m_expectedNewRequest = WebURLRequest();
-  m_expectedNewRequest.setURL(redirectURL);
+  m_expectedNewRequest = WebURLRequest(redirectURL);
   m_expectedNewRequest.setHTTPHeaderField("accept", "application/json");
 
   m_expectedResponse = WebURLResponse();
@@ -671,10 +654,9 @@
 // Test that the loader can allow non-whitelisted response headers for trusted
 // CORS loads.
 TEST_F(WebAssociatedURLLoaderTest, CrossOriginHeaderAllowResponseHeaders) {
-  WebURLRequest request;
   KURL url =
       toKURL("http://www.other.com/CrossOriginHeaderAllowResponseHeaders.html");
-  request.setURL(url);
+  WebURLRequest request(url);
 
   WebString headerNameString(WebString::fromUTF8("non-whitelisted"));
   m_expectedResponse = WebURLResponse();
diff --git a/third_party/WebKit/Source/web/tests/FrameTestHelpers.cpp b/third_party/WebKit/Source/web/tests/FrameTestHelpers.cpp
index fa489e4..2fdf07d 100644
--- a/third_party/WebKit/Source/web/tests/FrameTestHelpers.cpp
+++ b/third_party/WebKit/Source/web/tests/FrameTestHelpers.cpp
@@ -35,7 +35,6 @@
 #include "platform/testing/WebLayerTreeViewImplForTesting.h"
 #include "public/platform/Platform.h"
 #include "public/platform/WebData.h"
-#include "public/platform/WebSecurityOrigin.h"
 #include "public/platform/WebString.h"
 #include "public/platform/WebThread.h"
 #include "public/platform/WebURLLoaderMockFactory.h"
@@ -116,9 +115,7 @@
 }  // namespace
 
 void loadFrame(WebFrame* frame, const std::string& url) {
-  WebURLRequest urlRequest;
-  urlRequest.setURL(URLTestHelpers::toKURL(url));
-  urlRequest.setRequestorOrigin(WebSecurityOrigin::createUnique());
+  WebURLRequest urlRequest(URLTestHelpers::toKURL(url));
   frame->loadRequest(urlRequest);
   pumpPendingRequestsForFrameToLoad(frame);
 }
diff --git a/third_party/WebKit/Source/web/tests/WebFrameTest.cpp b/third_party/WebKit/Source/web/tests/WebFrameTest.cpp
index cfe94611..bd83d42 100644
--- a/third_party/WebKit/Source/web/tests/WebFrameTest.cpp
+++ b/third_party/WebKit/Source/web/tests/WebFrameTest.cpp
@@ -4162,9 +4162,7 @@
 
   FrameTestHelpers::WebViewHelper webViewHelper;
   webViewHelper.initialize();
-  WebURLRequest request;
-  request.setURL(toKURL(m_baseURL + "fixed_layout.html"));
-  request.setRequestorOrigin(WebSecurityOrigin::createUnique());
+  WebURLRequest request(toKURL(m_baseURL + "fixed_layout.html"));
   webViewHelper.webView()->mainFrame()->loadRequest(request);
   // start reload before first request is delivered.
   FrameTestHelpers::reloadFrameIgnoringCache(
@@ -7401,9 +7399,7 @@
   WebFrame* frame = webViewHelper.webView()->mainFrame();
   const FrameLoader& mainFrameLoader =
       webViewHelper.webView()->mainFrameImpl()->frame()->loader();
-  WebURLRequest request;
-  request.setURL(toKURL(url));
-  request.setRequestorOrigin(WebSecurityOrigin::createUnique());
+  WebURLRequest request(toKURL(url));
   frame->loadRequest(request);
 
   // Before commit, there is no history item.
@@ -10221,11 +10217,9 @@
   FrameTestHelpers::WebViewHelper helper;
   helper.initialize(true);
 
-  WebURLRequest request;
   std::string redirectURL = m_baseURL + "foo.html";
   URLTestHelpers::registerMockedURLLoad(toKURL(redirectURL), "foo.html");
-  request.setURL(toKURL("javascript:location='" + redirectURL + "'"));
-  request.setRequestorOrigin(WebSecurityOrigin::createUnique());
+  WebURLRequest request(toKURL("javascript:location='" + redirectURL + "'"));
   helper.webView()->mainFrameImpl()->loadRequest(request);
 
   // Normally, the result of the JS url replaces the existing contents on the
diff --git a/third_party/WebKit/Source/web/tests/sim/SimTest.cpp b/third_party/WebKit/Source/web/tests/sim/SimTest.cpp
index 7657dfca..476be18f 100644
--- a/third_party/WebKit/Source/web/tests/sim/SimTest.cpp
+++ b/third_party/WebKit/Source/web/tests/sim/SimTest.cpp
@@ -8,7 +8,6 @@
 #include "platform/LayoutTestSupport.h"
 #include "platform/scroll/ScrollbarTheme.h"
 #include "platform/testing/UnitTestHelpers.h"
-#include "public/platform/WebSecurityOrigin.h"
 #include "public/web/WebCache.h"
 #include "web/WebLocalFrameImpl.h"
 #include "web/WebViewImpl.h"
@@ -40,9 +39,7 @@
 }
 
 void SimTest::loadURL(const String& url) {
-  WebURLRequest request;
-  request.setURL(KURL(ParsedURLString, url));
-  request.setRequestorOrigin(WebSecurityOrigin::createUnique());
+  WebURLRequest request(KURL(ParsedURLString, url));
   webView().mainFrameImpl()->loadRequest(request);
 }