diff --git a/DEPS b/DEPS
index b18d2a2..8655a59f 100644
--- a/DEPS
+++ b/DEPS
@@ -82,7 +82,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling V8
   # and whatever else without interference from each other.
-  'v8_revision': 'e5c2988b8dd0e3fabdcfa334ed32930b03b9b18f',
+  'v8_revision': '6696edd63a12f1a49d7d57547a3c9e2960b6c667',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling swarming_client
   # and whatever else without interference from each other.
@@ -90,7 +90,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling ANGLE
   # and whatever else without interference from each other.
-  'angle_revision': 'c6faa9745f889b838ec8a7c6ad255bbb1c51f48d',
+  'angle_revision': '62fcf62aecc7dc23b73e1cfefb751191eafc39d3',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling build tools
   # and whatever else without interference from each other.
@@ -643,7 +643,7 @@
     Var('chromium_git') + '/external/khronosgroup/webgl.git' + '@' + 'd458ada06171a85af00367251a4ed55db7fe2018',
 
   'src/third_party/webrtc':
-    Var('webrtc_git') + '/src.git' + '@' + '43fb9123182ec84fb8e27d51390fb924217bb66d', # commit position 20628
+    Var('webrtc_git') + '/src.git' + '@' + 'f8409521d96bfa7af127815cafe3e09ba720ebe8', # commit position 20628
 
   'src/third_party/xdg-utils': {
       'url': Var('chromium_git') + '/chromium/deps/xdg-utils.git' + '@' + 'd80274d5869b17b8c9067a1022e4416ee7ed5e0d',
diff --git a/build/config/BUILDCONFIG.gn b/build/config/BUILDCONFIG.gn
index b8d515426..853c849 100644
--- a/build/config/BUILDCONFIG.gn
+++ b/build/config/BUILDCONFIG.gn
@@ -525,6 +525,9 @@
   "//build/config/compiler:default_optimization",
   "//build/config/compiler:default_stack_frames",
   "//build/config/compiler:default_symbols",
+
+  # TODO(crbug.com/795158): Remove once libwidevinecdmadapter.so is fixed.
+  "//build/config/compiler:default_fatal_linker_warnings",
   "//build/config/compiler:no_exceptions",
   "//build/config/compiler:no_rtti",
   "//build/config/compiler:runtime_library",
diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
index a894a39..5154ead 100644
--- a/build/config/compiler/BUILD.gn
+++ b/build/config/compiler/BUILD.gn
@@ -265,16 +265,6 @@
         cflags += [ "-fstack-protector" ]
       }
     }
-
-    # Linker warnings.
-    if (fatal_linker_warnings && !(is_chromeos && current_cpu == "arm") &&
-        !(is_android && use_order_profiling) && !is_mac && !is_ios &&
-        current_os != "aix") {
-      # TODO(jochen): Enable this on chromeos on arm. http://crbug.com/356580
-      # TODO(lizeb,pasko): Fix link errors when linking with order_profiling=1
-      # crbug.com/485542
-      ldflags += [ "-Wl,--fatal-warnings" ]
-    }
   }
 
   # Eliminate build metadata (__DATE__, __TIME__ and __TIMESTAMP__) for
@@ -2050,3 +2040,19 @@
     cflags_objcc = common_flags
   }
 }
+
+# Default linker warnings.
+config("default_fatal_linker_warnings") {
+  ldflags = []
+
+  # Linker warnings.
+  if (!is_win && fatal_linker_warnings &&
+      !(is_chromeos && current_cpu == "arm") &&
+      !(is_android && use_order_profiling) && !is_mac && !is_ios &&
+      current_os != "aix") {
+    # TODO(jochen): Enable this on chromeos on arm. http://crbug.com/356580
+    # TODO(lizeb,pasko): Fix link errors when linking with order_profiling=1
+    # crbug.com/485542
+    ldflags += [ "-Wl,--fatal-warnings" ]
+  }
+}
diff --git a/components/drive/service/drive_api_service.cc b/components/drive/service/drive_api_service.cc
index 2f687f4..7a9d1b70 100644
--- a/components/drive/service/drive_api_service.cc
+++ b/components/drive/service/drive_api_service.cc
@@ -400,9 +400,14 @@
           ? google_apis::FilesListCorpora::ALL_TEAM_DRIVES
           : google_apis::FilesListCorpora::DEFAULT;
 
+  std::string query = util::TranslateQuery(search_query);
+  if (!query.empty())
+    query += " and ";
+  query += "trashed = false";
+
   return files_list_request_runner_->CreateAndStartWithSizeBackoff(
-      kMaxNumFilesResourcePerRequestForSearch, corpora, std::string(),
-      util::TranslateQuery(search_query), kFileListFields, callback);
+      kMaxNumFilesResourcePerRequestForSearch, corpora, std::string(), query,
+      kFileListFields, callback);
 }
 
 CancelCallback DriveAPIService::SearchByTitle(
diff --git a/media/cdm/ppapi/ppapi_cdm_adapter.gni b/media/cdm/ppapi/ppapi_cdm_adapter.gni
index 002c9801..63e0ddec 100644
--- a/media/cdm/ppapi/ppapi_cdm_adapter.gni
+++ b/media/cdm/ppapi/ppapi_cdm_adapter.gni
@@ -2,6 +2,8 @@
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
+import("//build/config/compiler/compiler.gni")
+
 # This template defines a CDM adapter target. Just use this as you would a
 # normal target and everything should work correctly.
 template("ppapi_cdm_adapter") {
@@ -61,6 +63,11 @@
     if (is_linux) {
       # CDM adapter depends on a CDM in component and non-component builds.
       configs += [ "//build/config/gcc:rpath_for_built_shared_libraries" ]
+
+      if (use_lld) {
+        # TODO(crbug.com/795158) LLD warns about libwidevinecdm.so
+        configs -= [ "//build/config/compiler:default_fatal_linker_warnings" ]
+      }
     }
 
     # TODO(jschuh) crbug.com/167187
diff --git a/sandbox/linux/tests/unit_tests.cc b/sandbox/linux/tests/unit_tests.cc
index 1b28aa2..515d0ea 100644
--- a/sandbox/linux/tests/unit_tests.cc
+++ b/sandbox/linux/tests/unit_tests.cc
@@ -135,16 +135,7 @@
   // We need to fork(), so we can't be multi-threaded, as threads could hold
   // locks.
   int num_threads = CountThreads();
-#if !defined(THREAD_SANITIZER)
   const int kNumExpectedThreads = 1;
-#else
-  // Under TSAN, there is a special helper thread. It should be completely
-  // invisible to our testing, so we ignore it. It should be ok to fork()
-  // with this thread. It's currently buggy, but it's the best we can do until
-  // there is a way to delay the start of the thread
-  // (https://code.google.com/p/thread-sanitizer/issues/detail?id=19).
-  const int kNumExpectedThreads = 2;
-#endif
 
   // The kernel is at liberty to wake a thread id futex before updating /proc.
   // If another test running in the same process has stopped a thread, it may
diff --git a/third_party/WebKit/LayoutTests/external/wpt/html/dom/usvstring-reflection.html b/third_party/WebKit/LayoutTests/external/wpt/html/dom/usvstring-reflection.html
index e3507b43..c3a79e7 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/html/dom/usvstring-reflection.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/html/dom/usvstring-reflection.html
@@ -82,4 +82,8 @@
   assert_equals(event.url, window.location.href + "\uFFFD");
 }, "storage event : unpaired surrogate codepoint should be replaced with U+FFFD")
 
+test(() => {
+  var wsocket = new EventSource('ws://www.example.com/socketserve\uD899/');
+  assert_true(wsocket.url.endsWith('ws://www.example.com/socketserve%EF%BF%BD/'));
+}, "websocket url : unpaired surrogate codepoint should be replaced with U+FFFD")
 </script>
diff --git a/third_party/WebKit/Source/devtools/front_end/accessibility/accessibilityNode.css b/third_party/WebKit/Source/devtools/front_end/accessibility/accessibilityNode.css
index 1fcbfde0..0f2dcdd 100644
--- a/third_party/WebKit/Source/devtools/front_end/accessibility/accessibilityNode.css
+++ b/third_party/WebKit/Source/devtools/front_end/accessibility/accessibilityNode.css
@@ -58,6 +58,12 @@
     align-items: baseline;
 }
 
+.tree-outline li::before {
+    content: "";
+    width: 14px;
+    display: inline-block;
+}
+
 .tree-outline li.property {
     color: rgb(33, 33, 33);
 }
diff --git a/third_party/WebKit/Source/modules/websockets/WebSocket.idl b/third_party/WebKit/Source/modules/websockets/WebSocket.idl
index dea6d3c..8d23f66 100644
--- a/third_party/WebKit/Source/modules/websockets/WebSocket.idl
+++ b/third_party/WebKit/Source/modules/websockets/WebSocket.idl
@@ -35,13 +35,13 @@
 
 [
     ActiveScriptWrappable,
-    Constructor(DOMString url, optional (DOMString or sequence<DOMString>) protocols),
+    Constructor(USVString url, optional (DOMString or sequence<DOMString>) protocols),
     ConstructorCallWith=ExecutionContext,
     Exposed=(Window,Worker),
     ImplementedAs=DOMWebSocket,
     RaisesException=Constructor
 ] interface WebSocket : EventTarget {
-    readonly attribute DOMString url;
+    readonly attribute USVString url;
 
     // ready state
     const unsigned short CONNECTING = 0;
diff --git a/third_party/WebKit/Source/platform/TimerTest.cpp b/third_party/WebKit/Source/platform/TimerTest.cpp
index b88b24ca..2f34557 100644
--- a/third_party/WebKit/Source/platform/TimerTest.cpp
+++ b/third_party/WebKit/Source/platform/TimerTest.cpp
@@ -541,7 +541,8 @@
       platform_->GetRendererScheduler()->NewTimerTaskQueue(
           scheduler::MainThreadTaskQueue::QueueType::kFrameThrottleable));
   scoped_refptr<scheduler::WebTaskRunnerImpl> web_task_runner =
-      scheduler::WebTaskRunnerImpl::Create(task_runner, base::nullopt);
+      scheduler::WebTaskRunnerImpl::Create(task_runner,
+                                           TaskType::kInternalTest);
   TimerForTest<TimerTest> timer(web_task_runner, this,
                                 &TimerTest::CountingTask);
   timer.StartOneShot(TimeDelta(), FROM_HERE);
@@ -632,7 +633,8 @@
       platform_->GetRendererScheduler()->NewTimerTaskQueue(
           scheduler::MainThreadTaskQueue::QueueType::kFrameThrottleable));
   scoped_refptr<scheduler::WebTaskRunnerImpl> web_task_runner1 =
-      scheduler::WebTaskRunnerImpl::Create(task_runner1, base::nullopt);
+      scheduler::WebTaskRunnerImpl::Create(task_runner1,
+                                           TaskType::kInternalTest);
   TaskObserver task_observer1(web_task_runner1, &run_order);
   task_runner1->AddTaskObserver(&task_observer1);
 
@@ -640,7 +642,8 @@
       platform_->GetRendererScheduler()->NewTimerTaskQueue(
           scheduler::MainThreadTaskQueue::QueueType::kFrameThrottleable));
   scoped_refptr<scheduler::WebTaskRunnerImpl> web_task_runner2 =
-      scheduler::WebTaskRunnerImpl::Create(task_runner2, base::nullopt);
+      scheduler::WebTaskRunnerImpl::Create(task_runner2,
+                                           TaskType::kInternalTest);
   TaskObserver task_observer2(web_task_runner2, &run_order);
   task_runner2->AddTaskObserver(&task_observer2);
 
@@ -672,7 +675,8 @@
       platform_->GetRendererScheduler()->NewTimerTaskQueue(
           scheduler::MainThreadTaskQueue::QueueType::kFrameThrottleable));
   scoped_refptr<scheduler::WebTaskRunnerImpl> web_task_runner1 =
-      scheduler::WebTaskRunnerImpl::Create(task_runner1, base::nullopt);
+      scheduler::WebTaskRunnerImpl::Create(task_runner1,
+                                           TaskType::kInternalTest);
   TaskObserver task_observer1(web_task_runner1, &run_order);
   task_runner1->AddTaskObserver(&task_observer1);
 
@@ -680,7 +684,8 @@
       platform_->GetRendererScheduler()->NewTimerTaskQueue(
           scheduler::MainThreadTaskQueue::QueueType::kFrameThrottleable));
   scoped_refptr<scheduler::WebTaskRunnerImpl> web_task_runner2 =
-      scheduler::WebTaskRunnerImpl::Create(task_runner2, base::nullopt);
+      scheduler::WebTaskRunnerImpl::Create(task_runner2,
+                                           TaskType::kInternalTest);
   TaskObserver task_observer2(web_task_runner2, &run_order);
   task_runner2->AddTaskObserver(&task_observer2);
 
@@ -714,13 +719,15 @@
       platform_->GetRendererScheduler()->NewTimerTaskQueue(
           scheduler::MainThreadTaskQueue::QueueType::kFrameThrottleable));
   scoped_refptr<scheduler::WebTaskRunnerImpl> web_task_runner1 =
-      scheduler::WebTaskRunnerImpl::Create(task_runner1, base::nullopt);
+      scheduler::WebTaskRunnerImpl::Create(task_runner1,
+                                           TaskType::kInternalTest);
 
   scoped_refptr<scheduler::TaskQueue> task_runner2(
       platform_->GetRendererScheduler()->NewTimerTaskQueue(
           scheduler::MainThreadTaskQueue::QueueType::kFrameThrottleable));
   scoped_refptr<scheduler::WebTaskRunnerImpl> web_task_runner2 =
-      scheduler::WebTaskRunnerImpl::Create(task_runner2, base::nullopt);
+      scheduler::WebTaskRunnerImpl::Create(task_runner2,
+                                           TaskType::kInternalTest);
 
   TimerForTest<TimerTest> timer(web_task_runner1, this,
                                 &TimerTest::CountingTask);
diff --git a/third_party/WebKit/Source/platform/scheduler/renderer/web_view_scheduler_impl_unittest.cc b/third_party/WebKit/Source/platform/scheduler/renderer/web_view_scheduler_impl_unittest.cc
index 71f9645..715bb09 100644
--- a/third_party/WebKit/Source/platform/scheduler/renderer/web_view_scheduler_impl_unittest.cc
+++ b/third_party/WebKit/Source/platform/scheduler/renderer/web_view_scheduler_impl_unittest.cc
@@ -65,11 +65,13 @@
   }
 
   scoped_refptr<WebTaskRunner> ThrottleableTaskRunner() {
-    return WebTaskRunnerImpl::Create(ThrottleableTaskQueue(), base::nullopt);
+    return WebTaskRunnerImpl::Create(ThrottleableTaskQueue(),
+                                     TaskType::kInternalTest);
   }
 
   scoped_refptr<WebTaskRunner> LoadingTaskRunner() {
-    return WebTaskRunnerImpl::Create(LoadingTaskQueue(), base::nullopt);
+    return WebTaskRunnerImpl::Create(LoadingTaskQueue(),
+                                     TaskType::kInternalTest);
   }
 
   scoped_refptr<TaskQueue> ThrottleableTaskQueue() {
diff --git a/tools/clang/scripts/update.py b/tools/clang/scripts/update.py
index 78542c9..c0db796 100755
--- a/tools/clang/scripts/update.py
+++ b/tools/clang/scripts/update.py
@@ -27,7 +27,7 @@
 # Do NOT CHANGE this if you don't know what you're doing -- see
 # https://chromium.googlesource.com/chromium/src/+/master/docs/updating_clang.md
 # Reverting problematic clang rolls is safe, though.
-CLANG_REVISION = '318667'
+CLANG_REVISION = '321204'
 
 use_head_revision = bool(os.environ.get('LLVM_FORCE_HEAD_REVISION', '0')
                          in ('1', 'YES'))