diff --git a/DEPS b/DEPS
index e9e1c2b..b51fa38 100644
--- a/DEPS
+++ b/DEPS
@@ -39,7 +39,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling Skia
   # and whatever else without interference from each other.
-  'skia_revision': 'c67bb575d0393bef8517810c8f7c578804403c61',
+  'skia_revision': '9342bd8219227bfab7bf33f3d842122612bc22b8',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling V8
   # and whatever else without interference from each other.
diff --git a/ash/mus/BUILD.gn b/ash/mus/BUILD.gn
index 6b8a563..da25a6e 100644
--- a/ash/mus/BUILD.gn
+++ b/ash/mus/BUILD.gn
@@ -129,24 +129,3 @@
     "//ash/resources:ash_test_resources_200_percent",
   ]
 }
-
-source_set("unittests") {
-  testonly = true
-
-  sources = [
-    "shelf_delegate_mus_unittest.cc",
-  ]
-
-  deps = [
-    "//base",
-    "//components/mus/public/interfaces",
-    "//mash/shelf/public/interfaces",
-    "//mojo/public/cpp/bindings",
-    "//services/shell/public/cpp:shell_test_support",
-  ]
-
-  data_deps = [
-    "//mash/session",
-    ":mus",
-  ]
-}
diff --git a/ash/mus/shelf_delegate_mus_unittest.cc b/ash/mus/shelf_delegate_mus_unittest.cc
deleted file mode 100644
index 0a59fdeb..0000000
--- a/ash/mus/shelf_delegate_mus_unittest.cc
+++ /dev/null
@@ -1,132 +0,0 @@
-// Copyright 2016 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include <memory>
-
-#include "base/bind.h"
-#include "base/command_line.h"
-#include "base/run_loop.h"
-#include "components/mus/public/interfaces/window_server_test.mojom.h"
-#include "mash/shelf/public/interfaces/shelf.mojom.h"
-#include "mojo/public/cpp/bindings/associated_binding.h"
-#include "services/shell/public/cpp/shell_test.h"
-
-namespace {
-
-class TestShelfObserver : public mash::shelf::mojom::ShelfObserver {
- public:
-  explicit TestShelfObserver(mash::shelf::mojom::ShelfControllerPtr* shelf)
-      : observer_binding_(this) {
-    mash::shelf::mojom::ShelfObserverAssociatedPtrInfo ptr_info;
-    observer_binding_.Bind(&ptr_info, shelf->associated_group());
-    (*shelf)->AddObserver(std::move(ptr_info));
-  }
-
-  ~TestShelfObserver() override {}
-
-  mash::shelf::mojom::Alignment alignment() const { return alignment_; }
-  mash::shelf::mojom::AutoHideBehavior auto_hide() const { return auto_hide_; }
-
-  void WaitForIncomingMethodCalls(size_t expected_calls) {
-    DCHECK_EQ(0u, expected_calls_);
-    expected_calls_ = expected_calls;
-    DCHECK(!run_loop_ || !run_loop_->running());
-    run_loop_.reset(new base::RunLoop());
-    run_loop_->Run();
-  }
-
- private:
-  void OnMethodCall() {
-    DCHECK_LT(0u, expected_calls_);
-    DCHECK(run_loop_->running());
-    expected_calls_--;
-    if (expected_calls_ == 0u)
-      run_loop_->Quit();
-  }
-
-  // mash::shelf::mojom::ShelfObserver:
-  void OnAlignmentChanged(mash::shelf::mojom::Alignment alignment) override {
-    alignment_ = alignment;
-    OnMethodCall();
-  }
-  void OnAutoHideBehaviorChanged(
-      mash::shelf::mojom::AutoHideBehavior auto_hide) override {
-    auto_hide_ = auto_hide;
-    OnMethodCall();
-  }
-
-  mojo::AssociatedBinding<mash::shelf::mojom::ShelfObserver> observer_binding_;
-
-  mash::shelf::mojom::Alignment alignment_ =
-      mash::shelf::mojom::Alignment::BOTTOM;
-  mash::shelf::mojom::AutoHideBehavior auto_hide_ =
-      mash::shelf::mojom::AutoHideBehavior::NEVER;
-
-  size_t expected_calls_ = 0u;
-  std::unique_ptr<base::RunLoop> run_loop_;
-
-  DISALLOW_COPY_AND_ASSIGN(TestShelfObserver);
-};
-
-}  // namespace
-
-namespace ash {
-namespace sysui {
-
-void RunCallback(bool* success, const base::Closure& callback, bool result) {
-  *success = result;
-  callback.Run();
-}
-
-class ShelfDelegateMusTest : public shell::test::ShellTest {
- public:
-  ShelfDelegateMusTest() : ShellTest("exe:mash_unittests") {}
-  ~ShelfDelegateMusTest() override {}
-
- private:
-  void SetUp() override {
-    base::CommandLine::ForCurrentProcess()->AppendSwitch("use-test-config");
-    ShellTest::SetUp();
-  }
-
-  DISALLOW_COPY_AND_ASSIGN(ShelfDelegateMusTest);
-};
-
-TEST_F(ShelfDelegateMusTest, AshSysUIHasDrawnWindow) {
-  // mash_session embeds ash_sysui, which paints the shelf.
-  connector()->Connect("mojo:mash_session");
-  mus::mojom::WindowServerTestPtr test_interface;
-  connector()->ConnectToInterface("mojo:mus", &test_interface);
-  base::RunLoop run_loop;
-  bool drawn = false;
-  test_interface->EnsureClientHasDrawnWindow(
-      "mojo:ash_sysui",
-      base::Bind(&RunCallback, &drawn, run_loop.QuitClosure()));
-  run_loop.Run();
-  EXPECT_TRUE(drawn);
-}
-
-TEST_F(ShelfDelegateMusTest, ShelfControllerAndObserverBasic) {
-  connector()->Connect("mojo:mash_session");
-  mash::shelf::mojom::ShelfControllerPtr shelf_controller;
-  connector()->ConnectToInterface("mojo:ash_sysui", &shelf_controller);
-
-  // Adding the observer should fire state initialization function calls.
-  TestShelfObserver observer(&shelf_controller);
-  observer.WaitForIncomingMethodCalls(2u);
-  EXPECT_EQ(mash::shelf::mojom::Alignment::BOTTOM, observer.alignment());
-  EXPECT_EQ(mash::shelf::mojom::AutoHideBehavior::NEVER, observer.auto_hide());
-
-  shelf_controller->SetAlignment(mash::shelf::mojom::Alignment::LEFT);
-  observer.WaitForIncomingMethodCalls(1u);
-  EXPECT_EQ(mash::shelf::mojom::Alignment::LEFT, observer.alignment());
-
-  shelf_controller->SetAutoHideBehavior(
-      mash::shelf::mojom::AutoHideBehavior::ALWAYS);
-  observer.WaitForIncomingMethodCalls(1u);
-  EXPECT_EQ(mash::shelf::mojom::AutoHideBehavior::ALWAYS, observer.auto_hide());
-}
-
-}  // namespace sysui
-}  // namespace ash
diff --git a/chrome/BUILD.gn b/chrome/BUILD.gn
index 0400fc7..f4860f9 100644
--- a/chrome/BUILD.gn
+++ b/chrome/BUILD.gn
@@ -222,10 +222,9 @@
       # On Mac, internal plugins go inside the framework, so these
       # dependencies are on chrome.dll.
       "//third_party/adobe/flash:flapper_binaries",
+      "//third_party/widevine/cdm:widevinecdmadapter",
     ]
 
-    data_deps += [ "//third_party/widevine/cdm:widevinecdmadapter" ]
-
     if (is_multi_dll_chrome) {
       defines += [ "CHROME_MULTIPLE_DLL" ]
       data_deps += [ ":chrome_child" ]
diff --git a/chrome/VERSION b/chrome/VERSION
index e16e153..bad3316 100644
--- a/chrome/VERSION
+++ b/chrome/VERSION
@@ -1,4 +1,4 @@
 MAJOR=52
 MINOR=0
-BUILD=2737
+BUILD=2738
 PATCH=0
diff --git a/chrome/browser/content_settings/content_settings_browsertest.cc b/chrome/browser/content_settings/content_settings_browsertest.cc
index f5bbfac..1d1349c 100644
--- a/chrome/browser/content_settings/content_settings_browsertest.cc
+++ b/chrome/browser/content_settings/content_settings_browsertest.cc
@@ -322,30 +322,27 @@
   // Registers any CDM plugins not registered by default.
   void SetUpCommandLine(base::CommandLine* command_line) override {
 #if defined(ENABLE_PEPPER_CDMS)
-    // Base path for Clear Key CDM (relative to the chrome executable).
-    const char kClearKeyCdmBaseDirectory[] = "ClearKeyCdm";
-
-// Platform-specific filename relative to kClearKeyCdmBaseDirectory.
+    // Platform-specific filename relative to the chrome executable.
 #if defined(OS_WIN)
-    const char kClearKeyCdmAdapterFileName[] = "clearkeycdmadapter.dll";
+    const char kLibraryName[] = "clearkeycdmadapter.dll";
 #else  // !defined(OS_WIN)
 #if defined(OS_MACOSX)
-    const char kClearKeyCdmAdapterFileName[] = "clearkeycdmadapter.plugin";
+    const char kLibraryName[] = "clearkeycdmadapter.plugin";
 #elif defined(OS_POSIX)
-    const char kClearKeyCdmAdapterFileName[] = "libclearkeycdmadapter.so";
+    const char kLibraryName[] = "libclearkeycdmadapter.so";
 #endif  // defined(OS_MACOSX)
 #endif  // defined(OS_WIN)
 
     // Append the switch to register the External Clear Key CDM.
     base::FilePath::StringType pepper_plugins = BuildPepperPluginRegistration(
-        kClearKeyCdmBaseDirectory, kClearKeyCdmAdapterFileName, "Clear Key CDM",
-        kExternalClearKeyMimeType);
+        kLibraryName, "Clear Key CDM", kExternalClearKeyMimeType);
 #if defined(WIDEVINE_CDM_AVAILABLE) && defined(WIDEVINE_CDM_IS_COMPONENT)
     // The CDM must be registered when it is a component.
     pepper_plugins.append(FILE_PATH_LITERAL(","));
-    pepper_plugins.append(BuildPepperPluginRegistration(
-        kWidevineCdmBaseDirectory, kWidevineCdmAdapterFileName,
-        kWidevineCdmDisplayName, kWidevineCdmPluginMimeType));
+    pepper_plugins.append(
+        BuildPepperPluginRegistration(kWidevineCdmAdapterFileName,
+                                      kWidevineCdmDisplayName,
+                                      kWidevineCdmPluginMimeType));
 #endif  // defined(WIDEVINE_CDM_AVAILABLE) && defined(WIDEVINE_CDM_IS_COMPONENT)
     command_line->AppendSwitchNative(switches::kRegisterPepperPlugins,
                                      pepper_plugins);
@@ -437,13 +434,11 @@
   // plugin using the provided parameters and a dummy version.
   // Multiple results may be passed to kRegisterPepperPlugins, separated by ",".
   base::FilePath::StringType BuildPepperPluginRegistration(
-      const char* library_path,
       const char* library_name,
       const char* display_name,
       const char* mime_type) {
     base::FilePath plugin_dir;
     EXPECT_TRUE(PathService::Get(base::DIR_MODULE, &plugin_dir));
-    plugin_dir = plugin_dir.AppendASCII(library_path);
 
     base::FilePath plugin_lib = plugin_dir.AppendASCII(library_name);
     EXPECT_TRUE(base::PathExists(plugin_lib));
diff --git a/chrome/browser/load_library_perf_test.cc b/chrome/browser/load_library_perf_test.cc
index 0aa7f02e..5b4fe125 100644
--- a/chrome/browser/load_library_perf_test.cc
+++ b/chrome/browser/load_library_perf_test.cc
@@ -16,22 +16,21 @@
 #include "testing/perf/perf_test.h"
 #include "widevine_cdm_version.h"  //  In SHARED_INTERMEDIATE_DIR.
 
-// Base path for Clear Key CDM (relative to the chrome executable).
-const char kClearKeyCdmBaseDirectory[] = "ClearKeyCdm";
-
 // Measures the size (bytes) and time to load (sec) of a native library.
-void MeasureSizeAndTimeToLoadNativeLibrary(const std::string& library_base_dir,
-                                           const std::string& library_name) {
+void MeasureSizeAndTimeToLoadNativeLibrary(const base::FilePath& library_name) {
   base::FilePath output_dir;
   ASSERT_TRUE(PathService::Get(base::DIR_MODULE, &output_dir));
-  output_dir = output_dir.AppendASCII(library_base_dir);
-  base::FilePath library_path = output_dir.AppendASCII(library_name);
+  base::FilePath library_path = output_dir.Append(library_name);
   ASSERT_TRUE(base::PathExists(library_path)) << library_path.value();
 
   int64_t size = 0;
   ASSERT_TRUE(base::GetFileSize(library_path, &size));
-  perf_test::PrintResult("library_size", "", library_name,
-                         static_cast<size_t>(size), "bytes", true);
+  perf_test::PrintResult("library_size",
+                         "",
+                         library_name.AsUTF8Unsafe(),
+                         static_cast<size_t>(size),
+                         "bytes",
+                         true);
 
   base::NativeLibraryLoadError error;
   base::TimeTicks start = base::TimeTicks::Now();
@@ -40,50 +39,50 @@
   double delta = (base::TimeTicks::Now() - start).InMillisecondsF();
   ASSERT_TRUE(native_library) << "Error loading library: " << error.ToString();
   base::UnloadNativeLibrary(native_library);
-  perf_test::PrintResult("time_to_load_library", "", library_name, delta, "ms",
+  perf_test::PrintResult("time_to_load_library",
+                         "",
+                         library_name.AsUTF8Unsafe(),
+                         delta,
+                         "ms",
                          true);
 }
 
 // Use the base name of the library to dynamically get the platform specific
 // name. See base::GetNativeLibraryName() for details.
 void MeasureSizeAndTimeToLoadNativeLibraryByBaseName(
-    const std::string& library_base_dir,
     const std::string& base_library_name) {
-  MeasureSizeAndTimeToLoadNativeLibrary(
-      library_base_dir, base::UTF16ToUTF8(base::GetNativeLibraryName(
-                            base::ASCIIToUTF16(base_library_name))));
+  MeasureSizeAndTimeToLoadNativeLibrary(base::FilePath::FromUTF16Unsafe(
+      base::GetNativeLibraryName(base::ASCIIToUTF16(base_library_name))));
 }
 
 #if defined(ENABLE_PEPPER_CDMS)
 #if defined(WIDEVINE_CDM_AVAILABLE)
 TEST(LoadCDMPerfTest, Widevine) {
-  MeasureSizeAndTimeToLoadNativeLibrary(kWidevineCdmBaseDirectory,
-                                        kWidevineCdmFileName);
+  MeasureSizeAndTimeToLoadNativeLibrary(
+      base::FilePath::FromUTF8Unsafe(kWidevineCdmFileName));
 }
 
 TEST(LoadCDMPerfTest, WidevineAdapter) {
-  MeasureSizeAndTimeToLoadNativeLibrary(kWidevineCdmBaseDirectory,
-                                        kWidevineCdmAdapterFileName);
+  MeasureSizeAndTimeToLoadNativeLibrary(
+      base::FilePath::FromUTF8Unsafe(kWidevineCdmAdapterFileName));
 }
 #endif  // defined(WIDEVINE_CDM_AVAILABLE)
 
 TEST(LoadCDMPerfTest, ExternalClearKey) {
 #if defined(OS_MACOSX)
-  MeasureSizeAndTimeToLoadNativeLibrary(kClearKeyCdmBaseDirectory,
-                                        "libclearkeycdm.dylib");
+  MeasureSizeAndTimeToLoadNativeLibrary(
+    base::FilePath::FromUTF8Unsafe("libclearkeycdm.dylib"));
 #else
-  MeasureSizeAndTimeToLoadNativeLibraryByBaseName(kClearKeyCdmBaseDirectory,
-                                                  "clearkeycdm");
+  MeasureSizeAndTimeToLoadNativeLibraryByBaseName("clearkeycdm");
 #endif  // defined(OS_MACOSX)
 }
 
 TEST(LoadCDMPerfTest, ExternalClearKeyAdapter) {
 #if defined(OS_MACOSX)
-  MeasureSizeAndTimeToLoadNativeLibrary(kClearKeyCdmBaseDirectory,
-                                        "clearkeycdmadapter.plugin");
+  MeasureSizeAndTimeToLoadNativeLibrary(
+    base::FilePath::FromUTF8Unsafe("clearkeycdmadapter.plugin"));
 #else
-  MeasureSizeAndTimeToLoadNativeLibraryByBaseName(kClearKeyCdmBaseDirectory,
-                                                  "clearkeycdmadapter");
+  MeasureSizeAndTimeToLoadNativeLibraryByBaseName("clearkeycdmadapter");
 #endif  // defined(OS_MACOSX)
 }
 #endif  // defined(ENABLE_PEPPER_CDMS)
diff --git a/chrome/browser/media/encrypted_media_browsertest.cc b/chrome/browser/media/encrypted_media_browsertest.cc
index ed8f2031e..ffcf367 100644
--- a/chrome/browser/media/encrypted_media_browsertest.cc
+++ b/chrome/browser/media/encrypted_media_browsertest.cc
@@ -26,10 +26,7 @@
 #include "widevine_cdm_version.h"  //  In SHARED_INTERMEDIATE_DIR.
 
 #if defined(ENABLE_PEPPER_CDMS)
-// Base path for Clear Key CDM (relative to the chrome executable).
-const char kClearKeyCdmBaseDirectory[] = "ClearKeyCdm";
-
-// Platform-specific filename relative to kClearKeyCdmBaseDirectory.
+// Platform-specific filename relative to the chrome executable.
 const char kClearKeyCdmAdapterFileName[] =
 #if defined(OS_MACOSX)
     "clearkeycdmadapter.plugin";
@@ -264,13 +261,11 @@
 
 #if defined(ENABLE_PEPPER_CDMS)
     if (IsExternalClearKey(key_system)) {
-      RegisterPepperCdm(command_line, kClearKeyCdmBaseDirectory,
-                        kClearKeyCdmAdapterFileName, key_system);
+      RegisterPepperCdm(command_line, kClearKeyCdmAdapterFileName, key_system);
     }
 #if defined(WIDEVINE_CDM_AVAILABLE) && defined(WIDEVINE_CDM_IS_COMPONENT)
     else if (IsWidevine(key_system)) {  // NOLINT
-      RegisterPepperCdm(command_line, kWidevineCdmBaseDirectory,
-                        kWidevineCdmAdapterFileName, key_system);
+      RegisterPepperCdm(command_line, kWidevineCdmAdapterFileName, key_system);
     }
 #endif  // defined(WIDEVINE_CDM_AVAILABLE) && defined(WIDEVINE_CDM_IS_COMPONENT)
 #endif  // defined(ENABLE_PEPPER_CDMS)
@@ -278,24 +273,18 @@
 
  private:
 #if defined(ENABLE_PEPPER_CDMS)
-  // The CDM adapter should be located in |adapter_base_dir| in DIR_MODULE.
   void RegisterPepperCdm(base::CommandLine* command_line,
-                         const std::string& adapter_base_dir,
                          const std::string& adapter_name,
                          const std::string& key_system) {
     DCHECK(!is_pepper_cdm_registered_)
         << "RegisterPepperCdm() can only be called once.";
     is_pepper_cdm_registered_ = true;
 
-    // Build the CDM adapter path.
+    // Append the switch to register the Clear Key CDM Adapter.
     base::FilePath plugin_dir;
     EXPECT_TRUE(PathService::Get(base::DIR_MODULE, &plugin_dir));
-    plugin_dir = plugin_dir.AppendASCII(adapter_base_dir);
-
     base::FilePath plugin_lib = plugin_dir.AppendASCII(adapter_name);
     EXPECT_TRUE(base::PathExists(plugin_lib)) << plugin_lib.value();
-
-    // Build pepper plugin registration switch.
     base::FilePath::StringType pepper_plugin = plugin_lib.value();
     pepper_plugin.append(FILE_PATH_LITERAL("#CDM#0.1.0.0;"));
 #if defined(OS_WIN)
@@ -303,8 +292,6 @@
 #else
     pepper_plugin.append(GetPepperType(key_system));
 #endif
-
-    // Append the switch to register the CDM Adapter.
     command_line->AppendSwitchNative(switches::kRegisterPepperPlugins,
                                      pepper_plugin);
   }
diff --git a/chrome/browser/media/encrypted_media_supported_types_browsertest.cc b/chrome/browser/media/encrypted_media_supported_types_browsertest.cc
index 6c0b5b8..d59b992c 100644
--- a/chrome/browser/media/encrypted_media_supported_types_browsertest.cc
+++ b/chrome/browser/media/encrypted_media_supported_types_browsertest.cc
@@ -83,8 +83,8 @@
 // Expectations for Widevine.
 // Note: Widevine is not available on platforms using components because
 // RegisterPepperCdm() cannot set the codecs.
-// TODO(xhwang): Enable these tests after we have the ability to use the
-// manifest in these tests. See http://crbug.com/586634
+// TODO(ddorwin): Enable these tests after we have the ability to use the CUS
+// in these tests. See http://crbug.com/356833.
 #if defined(WIDEVINE_CDM_AVAILABLE) && !defined(WIDEVINE_CDM_IS_COMPONENT)
 #define EXPECT_WV_SUCCESS EXPECT_SUCCESS
 #define EXPECT_WV_PROPRIETARY EXPECT_PROPRIETARY
@@ -96,23 +96,6 @@
 #endif  // defined(WIDEVINE_CDM_AVAILABLE) &&
         // !defined(WIDEVINE_CDM_IS_COMPONENT)
 
-#if defined(ENABLE_PEPPER_CDMS)
-// Base path for Clear Key CDM (relative to the chrome executable).
-const char kClearKeyCdmBaseDirectory[] = "ClearKeyCdm";
-
-// Platform-specific filename relative to kClearKeyCdmBaseDirectory.
-const char kClearKeyCdmAdapterFileName[] =
-#if defined(OS_MACOSX)
-    "clearkeycdmadapter.plugin";
-#elif defined(OS_WIN)
-    "clearkeycdmadapter.dll";
-#elif defined(OS_POSIX)
-    "libclearkeycdmadapter.so";
-#endif
-
-const char kClearKeyCdmPluginMimeType[] = "application/x-ppapi-clearkey-cdm";
-#endif  // defined(ENABLE_PEPPER_CDMS)
-
 };  // namespace
 
 class EncryptedMediaSupportedTypesTest : public InProcessBrowserTest {
@@ -167,7 +150,6 @@
   // Update the command line to load |adapter_name| for
   // |pepper_type_for_key_system|.
   void RegisterPepperCdm(base::CommandLine* command_line,
-                         const std::string& adapter_base_dir,
                          const std::string& adapter_name,
                          const std::string& pepper_type_for_key_system,
                          bool expect_adapter_exists = true) {
@@ -178,8 +160,6 @@
     // Append the switch to register the appropriate adapter.
     base::FilePath plugin_dir;
     EXPECT_TRUE(PathService::Get(base::DIR_MODULE, &plugin_dir));
-    plugin_dir = plugin_dir.AppendASCII(adapter_base_dir);
-
     base::FilePath plugin_lib = plugin_dir.AppendASCII(adapter_name);
     EXPECT_EQ(expect_adapter_exists, base::PathExists(plugin_lib));
     base::FilePath::StringType pepper_plugin = plugin_lib.value();
@@ -302,15 +282,26 @@
  protected:
   void SetUpCommandLine(base::CommandLine* command_line) override {
     EncryptedMediaSupportedTypesTest::SetUpCommandLine(command_line);
-    RegisterPepperCdm(command_line, kClearKeyCdmBaseDirectory,
-                      kClearKeyCdmAdapterFileName, kClearKeyCdmPluginMimeType);
+
+    // Platform-specific filename relative to the chrome executable.
+    const char adapter_file_name[] =
+#if defined(OS_MACOSX)
+        "clearkeycdmadapter.plugin";
+#elif defined(OS_WIN)
+        "clearkeycdmadapter.dll";
+#elif defined(OS_POSIX)
+        "libclearkeycdmadapter.so";
+#endif
+
+    const std::string pepper_name("application/x-ppapi-clearkey-cdm");
+    RegisterPepperCdm(command_line, adapter_file_name, pepper_name);
   }
 #endif  // defined(ENABLE_PEPPER_CDMS)
 };
 
 // TODO(sandersd): Register the Widevine CDM if it is a component. A component
 // CDM registered using RegisterPepperCdm() declares support for audio codecs,
-// but not the other codecs we expect. http://crbug.com/356833
+// but not the other codecs we expect. http://crbug.com/356833.
 class EncryptedMediaSupportedTypesWidevineTest
     : public EncryptedMediaSupportedTypesTest {
 };
@@ -322,9 +313,10 @@
  protected:
   void SetUpCommandLine(base::CommandLine* command_line) override {
     EncryptedMediaSupportedTypesTest::SetUpCommandLine(command_line);
-    RegisterPepperCdm(command_line, kClearKeyCdmBaseDirectory,
+    RegisterPepperCdm(command_line,
                       "clearkeycdmadapterwrongname.dll",
-                      kClearKeyCdmPluginMimeType, false);
+                      "application/x-ppapi-clearkey-cdm",
+                      false);
   }
 };
 
@@ -334,9 +326,10 @@
  protected:
   void SetUpCommandLine(base::CommandLine* command_line) override {
     EncryptedMediaSupportedTypesTest::SetUpCommandLine(command_line);
-    RegisterPepperCdm(command_line, "WidevineCdm",
+    RegisterPepperCdm(command_line,
                       "widevinecdmadapterwrongname.dll",
-                      "application/x-ppapi-widevine-cdm", false);
+                      "application/x-ppapi-widevine-cdm",
+                      false);
   }
 };
 #endif  // defined(ENABLE_PEPPER_CDMS)
diff --git a/chrome/browser_tests.isolate b/chrome/browser_tests.isolate
index 2880b5b..cec61ef8 100644
--- a/chrome/browser_tests.isolate
+++ b/chrome/browser_tests.isolate
@@ -35,8 +35,8 @@
     ['OS=="linux"', {
       'variables': {
         'files': [
-          '<(PRODUCT_DIR)/ClearKeyCdm/libclearkeycdm.so',
-          '<(PRODUCT_DIR)/ClearKeyCdm/libclearkeycdmadapter.so',
+          '<(PRODUCT_DIR)/libclearkeycdm.so',
+          '<(PRODUCT_DIR)/libclearkeycdmadapter.so',
           '<(PRODUCT_DIR)/libpower_saver_test_plugin.so',
           '<(PRODUCT_DIR)/libppapi_tests.so',
         ],
@@ -45,8 +45,8 @@
     ['OS=="linux" and branding=="Chrome" and enable_pepper_cdms==1', {
       'variables': {
         'files': [
-          '<(PRODUCT_DIR)/WidevineCdm/libwidevinecdm.so',
-          '<(PRODUCT_DIR)/WidevineCdm/libwidevinecdmadapter.so',
+          '<(PRODUCT_DIR)/libwidevinecdm.so',
+          '<(PRODUCT_DIR)/libwidevinecdmadapter.so',
         ],
       },
     }],
@@ -183,9 +183,9 @@
     ['OS=="mac"', {
       'variables': {
         'files': [
-          '<(PRODUCT_DIR)/ClearKeyCdm/clearkeycdmadapter.plugin',
-          '<(PRODUCT_DIR)/ClearKeyCdm/libclearkeycdm.dylib',
+          '<(PRODUCT_DIR)/clearkeycdmadapter.plugin',
           '<(PRODUCT_DIR)/content_shell.pak',
+          '<(PRODUCT_DIR)/libclearkeycdm.dylib',
           '<(PRODUCT_DIR)/osmesa.so',
           '<(PRODUCT_DIR)/power_saver_test_plugin.plugin/Contents/MacOS/power_saver_test_plugin',
           '<(PRODUCT_DIR)/ppapi_tests.plugin/Contents/MacOS/ppapi_tests',
@@ -195,8 +195,8 @@
     ['OS=="mac" and branding=="Chrome" and enable_pepper_cdms==1', {
       'variables': {
         'files': [
-          '<(PRODUCT_DIR)/WidevineCdm/libwidevinecdm.dylib',
-          '<(PRODUCT_DIR)/WidevineCdm/widevinecdmadapter.plugin',
+          '<(PRODUCT_DIR)/libwidevinecdm.dylib',
+          '<(PRODUCT_DIR)/widevinecdmadapter.plugin',
         ],
       },
     }],
@@ -205,8 +205,8 @@
         'files': [
           '../native_client/build/build_nexe.py',
           '<(PRODUCT_DIR)/chrome_elf.dll',
-          '<(PRODUCT_DIR)/ClearKeyCdm/clearkeycdm.dll',
-          '<(PRODUCT_DIR)/ClearKeyCdm/clearkeycdmadapter.dll',
+          '<(PRODUCT_DIR)/clearkeycdm.dll',
+          '<(PRODUCT_DIR)/clearkeycdmadapter.dll',
           '<(PRODUCT_DIR)/crashpad_handler.exe',
           '<(PRODUCT_DIR)/power_saver_test_plugin.dll',
           '<(PRODUCT_DIR)/ppapi_tests.dll',
@@ -217,8 +217,8 @@
     ['OS=="win" and branding=="Chrome" and enable_pepper_cdms==1', {
       'variables': {
         'files': [
-          '<(PRODUCT_DIR)/WidevineCdm/widevinecdm.dll',
-          '<(PRODUCT_DIR)/WidevineCdm/widevinecdmadapter.dll',
+          '<(PRODUCT_DIR)/widevinecdm.dll',
+          '<(PRODUCT_DIR)/widevinecdmadapter.dll',
         ],
       },
     }],
diff --git a/chrome/chrome_dll_bundle.gypi b/chrome/chrome_dll_bundle.gypi
index cf2fccdf..985f40d 100644
--- a/chrome/chrome_dll_bundle.gypi
+++ b/chrome/chrome_dll_bundle.gypi
@@ -132,14 +132,14 @@
       ],
     },
     {
-      # The adapter is not a complete plugin on its own. It needs the Widevine
-      # CDM to work.
-      'destination': '<(PRODUCT_DIR)/$(CONTENTS_FOLDER_PATH)/Internet Plug-Ins/WidevineCdm',
+      # This file is used by the component installer.
+      # It is not a complete plugin on its own.
+      'destination': '<(PRODUCT_DIR)/$(CONTENTS_FOLDER_PATH)/Internet Plug-Ins/',
       'files': [],
       'conditions': [
         ['branding == "Chrome"', {
           'files': [
-            '<(PRODUCT_DIR)/WidevineCdm/widevinecdmadapter.plugin',
+            '<(PRODUCT_DIR)/widevinecdmadapter.plugin',
           ],
         }],
       ],
diff --git a/chrome/chrome_installer.gypi b/chrome/chrome_installer.gypi
index 9e80cbf..bc5dc90 100644
--- a/chrome/chrome_installer.gypi
+++ b/chrome/chrome_installer.gypi
@@ -524,8 +524,8 @@
             'rpm_arch': 'i386',
             'packaging_files_binaries': [
               '<(PRODUCT_DIR)/nacl_irt_x86_32.nexe',
-              '<(PRODUCT_DIR)/WidevineCdm/libwidevinecdmadapter.so',
-              '<(PRODUCT_DIR)/WidevineCdm/libwidevinecdm.so',
+              '<(PRODUCT_DIR)/libwidevinecdmadapter.so',
+              '<(PRODUCT_DIR)/libwidevinecdm.so',
             ],
             'packaging_files_common': [
               '<(DEPTH)/build/linux/bin/eu-strip',
@@ -536,8 +536,8 @@
             'rpm_arch': 'x86_64',
             'packaging_files_binaries': [
               '<(PRODUCT_DIR)/nacl_irt_x86_64.nexe',
-              '<(PRODUCT_DIR)/WidevineCdm/libwidevinecdmadapter.so',
-              '<(PRODUCT_DIR)/WidevineCdm/libwidevinecdm.so',
+              '<(PRODUCT_DIR)/libwidevinecdmadapter.so',
+              '<(PRODUCT_DIR)/libwidevinecdm.so',
             ],
             'packaging_files_common': [
               '<!(which eu-strip)',
diff --git a/chrome/common/chrome_paths.cc b/chrome/common/chrome_paths.cc
index 5dfcbcc..c7462488e 100644
--- a/chrome/common/chrome_paths.cc
+++ b/chrome/common/chrome_paths.cc
@@ -345,7 +345,7 @@
     case chrome::DIR_COMPONENT_WIDEVINE_CDM:
       if (!PathService::Get(chrome::DIR_USER_DATA, &cur))
         return false;
-      cur = cur.AppendASCII(kWidevineCdmBaseDirectory);
+      cur = cur.Append(FILE_PATH_LITERAL("WidevineCDM"));
       break;
 #endif  // defined(WIDEVINE_CDM_IS_COMPONENT)
     // TODO(xhwang): FILE_WIDEVINE_CDM_ADAPTER has different meanings.
@@ -354,7 +354,6 @@
     case chrome::FILE_WIDEVINE_CDM_ADAPTER:
       if (!GetInternalPluginsDirectory(&cur))
         return false;
-      cur = cur.AppendASCII(kWidevineCdmBaseDirectory);
       cur = cur.AppendASCII(kWidevineCdmAdapterFileName);
       break;
 #endif  // defined(WIDEVINE_CDM_AVAILABLE) && defined(ENABLE_PEPPER_CDMS)
diff --git a/chrome/installer/linux/BUILD.gn b/chrome/installer/linux/BUILD.gn
index c467d74e..9f1422a 100644
--- a/chrome/installer/linux/BUILD.gn
+++ b/chrome/installer/linux/BUILD.gn
@@ -220,14 +220,14 @@
   if (current_cpu == "x86") {
     packaging_files_binaries += [
       "$root_out_dir/nacl_irt_x86_32.nexe",
-      "$root_out_dir/WidevineCdm/libwidevinecdmadapter.so",
-      "$root_out_dir/WidevineCdm/libwidevinecdm.so",
+      "$root_out_dir/libwidevinecdmadapter.so",
+      "$root_out_dir/libwidevinecdm.so",
     ]
   } else if (current_cpu == "x64") {
     packaging_files_binaries += [
       "$root_out_dir/nacl_irt_x86_64.nexe",
-      "$root_out_dir/WidevineCdm/libwidevinecdmadapter.so",
-      "$root_out_dir/WidevineCdm/libwidevinecdm.so",
+      "$root_out_dir/libwidevinecdmadapter.so",
+      "$root_out_dir/libwidevinecdm.so",
     ]
   } else if (current_cpu == "arm") {
     packaging_files_binaries += [ "$root_out_dir/nacl_irt_arm.nexe" ]
diff --git a/chrome/installer/linux/common/installer.include b/chrome/installer/linux/common/installer.include
index 08e163d..ed85858 100644
--- a/chrome/installer/linux/common/installer.include
+++ b/chrome/installer/linux/common/installer.include
@@ -159,14 +159,9 @@
   find "${STAGEDIR}/${INSTALLDIR}/locales" -type d -exec chmod 755 '{}' \;
 
   # Widevine CDM.
-  WIDEVINECDM_SRCDIR="${BUILDDIR}/WidevineCdm"
-  WIDEVINECDM_DESTDIR="${STAGEDIR}/${INSTALLDIR}/WidevineCdm"
-  if [ -f "${WIDEVINECDM_SRCDIR}/libwidevinecdmadapter.so" ]; then
-    install -m 755 -d "${WIDEVINECDM_DESTDIR}"
-    install -m 644 -s "${WIDEVINECDM_SRCDIR}/libwidevinecdmadapter.so" \
-      "${WIDEVINECDM_DESTDIR}/"
-    install -m 644 "${WIDEVINECDM_SRCDIR}/libwidevinecdm.so" \
-      "${WIDEVINECDM_DESTDIR}/"
+  if [ -f "${BUILDDIR}/libwidevinecdmadapter.so" ]; then
+    install -m 644 -s "${BUILDDIR}/libwidevinecdmadapter.so" "${STAGEDIR}/${INSTALLDIR}/"
+    install -m 644 "${BUILDDIR}/libwidevinecdm.so" "${STAGEDIR}/${INSTALLDIR}/"
   fi
 
   # ANGLE
diff --git a/chrome/installer/mini_installer/chrome.release b/chrome/installer/mini_installer/chrome.release
index 1c5a7f1..1816869d 100644
--- a/chrome/installer/mini_installer/chrome.release
+++ b/chrome/installer/mini_installer/chrome.release
@@ -55,7 +55,7 @@
 
 [GOOGLE_CHROME]
 SecondaryTile.png: %(VersionDir)s\
-WidevineCdm\widevinecdmadapter.dll: %(VersionDir)s\WidevineCdm\
+widevinecdmadapter.dll: %(VersionDir)s\
 #
 # Pepper Flash sub-dir.
 #
diff --git a/chrome/tools/build/chromeos/FILES.cfg b/chrome/tools/build/chromeos/FILES.cfg
index 2363a37f..855cabaf 100644
--- a/chrome/tools/build/chromeos/FILES.cfg
+++ b/chrome/tools/build/chromeos/FILES.cfg
@@ -102,20 +102,20 @@
   },
   # CDM files (each has an adapter and the actual CDM):
   {
-    'filename': 'ClearKeyCdm/libclearkeycdmadapter.so',
+    'filename': 'libclearkeycdmadapter.so',
     'buildtype': ['dev', 'official'],
   },
   {
-    'filename': 'ClearKeyCdm/libclearkeycdm.so',
+    'filename': 'libclearkeycdm.so',
     'buildtype': ['dev', 'official'],
   },
   {
-    'filename': 'WidevineCdm/libwidevinecdmadapter.so',
+    'filename': 'libwidevinecdmadapter.so',
     'arch': ['32bit', '64bit', 'arm'],
     'buildtype': ['official'],
   },
   {
-    'filename': 'WidevineCdm/libwidevinecdm.so',
+    'filename': 'libwidevinecdm.so',
     'arch': ['32bit', '64bit', 'arm'],
     'buildtype': ['official'],
     'direct_archive': 1,
diff --git a/chrome/tools/build/linux/FILES.cfg b/chrome/tools/build/linux/FILES.cfg
index 495701c..2b3b3b97 100644
--- a/chrome/tools/build/linux/FILES.cfg
+++ b/chrome/tools/build/linux/FILES.cfg
@@ -109,20 +109,20 @@
   },
   # CDM files (each has an adapter and the actual CDM):
   {
-    'filename': 'ClearKeyCdm/libclearkeycdmadapter.so',
+    'filename': 'libclearkeycdmadapter.so',
     'buildtype': ['dev', 'official'],
   },
   {
-    'filename': 'ClearKeyCdm/libclearkeycdm.so',
+    'filename': 'libclearkeycdm.so',
     'buildtype': ['dev', 'official'],
   },
   {
-    'filename': 'WidevineCdm/libwidevinecdmadapter.so',
+    'filename': 'libwidevinecdmadapter.so',
     'arch': ['32bit', '64bit'],
     'buildtype': ['official'],
   },
   {
-    'filename': 'WidevineCdm/libwidevinecdm.so',
+    'filename': 'libwidevinecdm.so',
     'arch': ['32bit', '64bit'],
     'buildtype': ['official'],
     'direct_archive': 1,
diff --git a/chrome/tools/build/win/FILES.cfg b/chrome/tools/build/win/FILES.cfg
index 7e224117..08b8f30 100644
--- a/chrome/tools/build/win/FILES.cfg
+++ b/chrome/tools/build/win/FILES.cfg
@@ -350,7 +350,7 @@
   },
   # Widevine CDM adapter files:
   {
-    'filename': 'WidevineCdm/widevinecdmadapter.dll',
+    'filename': 'widevinecdmadapter.dll',
     'buildtype': ['official'],
   },
   # ANGLE files:
diff --git a/chromeos/CHROMEOS_LKGM b/chromeos/CHROMEOS_LKGM
index b75d623..43e8744 100644
--- a/chromeos/CHROMEOS_LKGM
+++ b/chromeos/CHROMEOS_LKGM
@@ -1 +1 @@
-8315.0.0
\ No newline at end of file
+8325.0.0
\ No newline at end of file
diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn
index 4ff0c76b..3730469 100644
--- a/content/browser/BUILD.gn
+++ b/content/browser/BUILD.gn
@@ -74,7 +74,7 @@
     "//net",
     "//net:extras",
     "//services/shell",
-    "//services/shell/public/cpp:cpp_for_chromium",
+    "//services/shell/public/cpp",
     "//services/shell/public/interfaces",
     "//services/shell/runner/common",
     "//services/shell/runner/host:lib",
diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn
index ec689fbd..5d49764 100644
--- a/content/test/BUILD.gn
+++ b/content/test/BUILD.gn
@@ -70,7 +70,7 @@
     "//media",
     "//mojo/edk/test:test_support",
     "//net:test_support",
-    "//services/shell/public/cpp:cpp_for_chromium",
+    "//services/shell/public/cpp",
     "//skia",
     "//storage/browser",
     "//storage/common",
@@ -465,7 +465,7 @@
     "//mojo/public/js",
     "//mojo/test:test_support",
     "//net:test_support",
-    "//services/shell/public/cpp:cpp_for_chromium",
+    "//services/shell/public/cpp",
     "//storage/browser",
     "//testing/gmock",
     "//testing/gtest",
diff --git a/content/utility/BUILD.gn b/content/utility/BUILD.gn
index 04a25df..1c3334b 100644
--- a/content/utility/BUILD.gn
+++ b/content/utility/BUILD.gn
@@ -29,7 +29,7 @@
     "//mojo/common",
     "//mojo/public/cpp/bindings",
     "//services/shell",
-    "//services/shell/public/cpp:cpp_for_chromium",
+    "//services/shell/public/cpp",
     "//services/shell/public/interfaces",
     "//third_party/WebKit/public:blink_headers",
     "//third_party/WebKit/public:mojo_bindings",
diff --git a/mash/BUILD.gn b/mash/BUILD.gn
index 1e437de..42f43bd 100644
--- a/mash/BUILD.gn
+++ b/mash/BUILD.gn
@@ -24,7 +24,6 @@
 
 test("mash_unittests") {
   deps = [
-    "//ash/mus:unittests",
     "//base",
     "//base/test:test_config",
     "//base/test:test_support",
diff --git a/mash/unittests_manifest.json b/mash/unittests_manifest.json
index 37ff6fb..07461b1 100644
--- a/mash/unittests_manifest.json
+++ b/mash/unittests_manifest.json
@@ -5,9 +5,6 @@
   "capabilities": {
     "required": {
       "*": { "classes": [ "app" ] },
-      "mojo:ash_sysui": {
-        "interfaces": [ "mash::shelf::mojom::ShelfController" ]
-      },
       "mojo:desktop_wm": {
         "interfaces": [
           "mus::mojom::AcceleratorRegistrar",
diff --git a/media/cdm/external_clear_key_test_helper.cc b/media/cdm/external_clear_key_test_helper.cc
index ebdcf7e0..1a2a15e 100644
--- a/media/cdm/external_clear_key_test_helper.cc
+++ b/media/cdm/external_clear_key_test_helper.cc
@@ -19,8 +19,6 @@
 #define STRINGIFY(X) #X
 #define MAKE_STRING(X) STRINGIFY(X)
 
-const char kClearKeyCdmBaseDirectory[] = "ClearKeyCdm";
-
 // File name of the External ClearKey CDM on different platforms.
 const base::FilePath::CharType kExternalClearKeyCdmFileName[] =
 #if defined(OS_MACOSX)
@@ -42,10 +40,10 @@
 void ExternalClearKeyTestHelper::LoadLibrary() {
   // Determine the location of the CDM. It is expected to be in the same
   // directory as the current module.
-  base::FilePath library_dir;
-  ASSERT_TRUE(PathService::Get(base::DIR_MODULE, &library_dir));
-  library_dir = library_dir.AppendASCII(kClearKeyCdmBaseDirectory);
-  library_path_ = library_dir.Append(kExternalClearKeyCdmFileName);
+  base::FilePath current_module_dir;
+  ASSERT_TRUE(PathService::Get(base::DIR_MODULE, &current_module_dir));
+  library_path_ =
+      current_module_dir.Append(base::FilePath(kExternalClearKeyCdmFileName));
   ASSERT_TRUE(base::PathExists(library_path_)) << library_path_.value();
 
   // Now load the CDM library.
diff --git a/media/cdm/ppapi/BUILD.gn b/media/cdm/ppapi/BUILD.gn
index 95f056d..4869c620 100644
--- a/media/cdm/ppapi/BUILD.gn
+++ b/media/cdm/ppapi/BUILD.gn
@@ -11,7 +11,6 @@
 # "use_vpx". These should be added here if necessary but its not clear if
 # they are required any more.
 shared_library("clearkeycdm") {
-  output_dir = "$root_out_dir/ClearKeyCdm"
   sources = [
     "cdm_file_io_test.cc",
     "cdm_file_io_test.h",
@@ -63,8 +62,6 @@
 }
 
 ppapi_cdm_adapter("clearkeycdmadapter") {
-  output_dir = "$root_out_dir/ClearKeyCdm"
-
   # Check whether the plugin's origin URL is valid.
   defines = [ "CHECK_DOCUMENT_URL" ]
   deps = [
diff --git a/media/media.gyp b/media/media.gyp
index fc6b155..f3387a79 100644
--- a/media/media.gyp
+++ b/media/media.gyp
@@ -1327,13 +1327,6 @@
           'sources': [
             'cdm/cdm_adapter_unittest.cc',
           ],
-          'conditions': [
-            ['OS == "mac"', {
-                'xcode_settings': {
-                  'LD_RUNPATH_SEARCH_PATHS' : [ '@executable_path/ClearKeyCdm' ],
-                },
-            }]
-          ],
         }],
         ['target_arch != "arm" and chromeos == 1 and use_x11 == 1', {
           'sources': [
diff --git a/media/media_cdm.gypi b/media/media_cdm.gypi
index 83105e9..5efcb3b 100644
--- a/media/media_cdm.gypi
+++ b/media/media_cdm.gypi
@@ -23,7 +23,6 @@
         {
           # GN version: //media/cdm/ppapi:clearkeycdm
           'target_name': 'clearkeycdm',
-          'product_dir': '<(PRODUCT_DIR)/ClearKeyCdm',
           'type': 'none',
           # TODO(tomfinegan): Simplify this by unconditionally including all the
           # decoders, and changing clearkeycdm to select which decoder to use
@@ -70,7 +69,7 @@
             }],
             ['OS == "mac"', {
               'xcode_settings': {
-                'DYLIB_INSTALL_NAME_BASE': '@rpath',
+                'DYLIB_INSTALL_NAME_BASE': '@loader_path',
               },
             }]
           ],
@@ -116,7 +115,6 @@
         {
           # GN version: //media/cdm/ppapi:clearkeycdmadapter
           'target_name': 'clearkeycdmadapter',
-          'product_dir': '<(PRODUCT_DIR)/ClearKeyCdm',
           'type': 'none',
           # Check whether the plugin's origin URL is valid.
           'defines': ['CHECK_DOCUMENT_URL'],
@@ -136,14 +134,9 @@
               'libraries': [
                '-lrt',
                 # Built by clearkeycdm.
-                '<(PRODUCT_DIR)/ClearKeyCdm/libclearkeycdm.so',
+                '<(PRODUCT_DIR)/libclearkeycdm.so',
               ],
             }],
-            ['OS == "mac"', {
-              'xcode_settings': {
-                'LD_RUNPATH_SEARCH_PATHS' : [ '@loader_path/.' ],
-              },
-            }]
           ],
         },
       ],
diff --git a/mojo/public/mojo_application.gni b/mojo/public/mojo_application.gni
index 10d0ffe..1c090a88 100644
--- a/mojo/public/mojo_application.gni
+++ b/mojo/public/mojo_application.gni
@@ -93,6 +93,7 @@
     deps = [
       "//mojo/platform_handle:for_shared_library",
       "//mojo/public/c/system:for_shared_library",
+      "//services/shell/public/cpp:application_support",
     ]
 
     deps += mojo_deps
diff --git a/services/shell/public/cpp/BUILD.gn b/services/shell/public/cpp/BUILD.gn
index 3f859df6..cbfac3a 100644
--- a/services/shell/public/cpp/BUILD.gn
+++ b/services/shell/public/cpp/BUILD.gn
@@ -5,19 +5,11 @@
 # GYP version: mojo/mojo_base.gyp:mojo_application_base
 source_set("cpp") {
   public_deps = [
-    ":init_commandline",
     ":sources",
   ]
 }
 
-# Like the target above, but without special commandline initialization that
-# apps use.
-source_set("cpp_for_chromium") {
-  public_deps = [
-    ":sources",
-  ]
-}
-
+# TODO(rockot): Rename this to "cpp".
 source_set("sources") {
   sources = [
     "application_runner.h",
@@ -26,7 +18,6 @@
     "connection.h",
     "connector.h",
     "identity.h",
-    "initialize_base_and_icu.cc",
     "interface_binder.h",
     "interface_factory.h",
     "interface_factory_impl.h",
@@ -50,12 +41,8 @@
     "shell_connection_ref.h",
   ]
 
-  deps = [
-    "//base",
-    "//base:i18n",
-  ]
-
   public_deps = [
+    "//base",
     "//mojo/public/cpp/bindings",
     "//mojo/public/cpp/system",
     "//services/shell/public/interfaces",
@@ -63,9 +50,16 @@
   ]
 }
 
-source_set("init_commandline") {
+source_set("application_support") {
   sources = [
     "lib/init_commandline.cc",
+    "lib/initialize_base_and_icu.cc",
+  ]
+
+  deps = [
+    "//base",
+    "//base:i18n",
+    "//mojo/public/c/system",
   ]
 }
 
diff --git a/services/shell/public/cpp/initialize_base_and_icu.cc b/services/shell/public/cpp/lib/initialize_base_and_icu.cc
similarity index 100%
rename from services/shell/public/cpp/initialize_base_and_icu.cc
rename to services/shell/public/cpp/lib/initialize_base_and_icu.cc
diff --git a/services/shell/shell_public.gyp b/services/shell/shell_public.gyp
index 2d4a034..c8b2487 100644
--- a/services/shell/shell_public.gyp
+++ b/services/shell/shell_public.gyp
@@ -41,8 +41,6 @@
       'public/cpp/connection.h',
       'public/cpp/connector.h',
       'public/cpp/identity.h',
-      'public/cpp/initialize_base_and_icu.cc',
-      'public/cpp/initialize_base_and_icu.h',
       'public/cpp/interface_binder.h',
       'public/cpp/interface_factory.h',
       'public/cpp/interface_factory_impl.h',
diff --git a/third_party/WebKit/Source/devtools/front_end/common/ModuleExtensionInterfaces.js b/third_party/WebKit/Source/devtools/front_end/common/ModuleExtensionInterfaces.js
index d9d614b..e337b7fc 100644
--- a/third_party/WebKit/Source/devtools/front_end/common/ModuleExtensionInterfaces.js
+++ b/third_party/WebKit/Source/devtools/front_end/common/ModuleExtensionInterfaces.js
@@ -46,19 +46,19 @@
 
 /**
  * @param {?Object} revealable
- * @param {number=} lineNumber
+ * @param {boolean=} omitFocus
  */
-WebInspector.Revealer.reveal = function(revealable, lineNumber)
+WebInspector.Revealer.reveal = function(revealable, omitFocus)
 {
-    WebInspector.Revealer.revealPromise(revealable, lineNumber);
+    WebInspector.Revealer.revealPromise(revealable, omitFocus);
 }
 
 /**
  * @param {?Object} revealable
- * @param {number=} lineNumber
+ * @param {boolean=} omitFocus
  * @return {!Promise.<undefined>}
  */
-WebInspector.Revealer.revealPromise = function(revealable, lineNumber)
+WebInspector.Revealer.revealPromise = function(revealable, omitFocus)
 {
     if (!revealable)
         return Promise.reject(new Error("Can't reveal " + revealable));
@@ -72,7 +72,7 @@
     {
         var promises = [];
         for (var i = 0; i < revealers.length; ++i)
-            promises.push(revealers[i].reveal(/** @type {!Object} */ (revealable), lineNumber));
+            promises.push(revealers[i].reveal(/** @type {!Object} */ (revealable), omitFocus));
         return Promise.race(promises);
     }
 }
@@ -80,10 +80,10 @@
 WebInspector.Revealer.prototype = {
     /**
      * @param {!Object} object
-     * @param {number=} lineNumber
+     * @param {boolean=} omitFocus
      * @return {!Promise}
      */
-    reveal: function(object, lineNumber) {}
+    reveal: function(object, omitFocus) {}
 }
 
 /**
diff --git a/third_party/WebKit/Source/devtools/front_end/elements/StylesSidebarPane.js b/third_party/WebKit/Source/devtools/front_end/elements/StylesSidebarPane.js
index b6ee0ae..a61d5cb 100644
--- a/third_party/WebKit/Source/devtools/front_end/elements/StylesSidebarPane.js
+++ b/third_party/WebKit/Source/devtools/front_end/elements/StylesSidebarPane.js
@@ -1414,18 +1414,7 @@
     _handleSelectorClick: function(event)
     {
         if (WebInspector.KeyboardShortcut.eventHasCtrlOrMeta(/** @type {!MouseEvent} */(event)) && this.navigable && event.target.classList.contains("simple-selector")) {
-            var index = event.target._selectorIndex;
-            var cssModel = this._parentPane._cssModel;
-            var rule = this._style.parentRule;
-            var header = cssModel.styleSheetHeaderForId(/** @type {string} */(rule.styleSheetId));
-            if (!header) {
-                event.consume(true);
-                return;
-            }
-            var rawLocation = new WebInspector.CSSLocation(header, rule.lineNumberInSource(index), rule.columnNumberInSource(index));
-            var uiLocation = WebInspector.cssWorkspaceBinding.rawLocationToUILocation(rawLocation);
-            if (uiLocation)
-                WebInspector.Revealer.reveal(uiLocation);
+            this._navigateToSelectorSource(event.target._selectorIndex, true);
             event.consume(true);
             return;
         }
@@ -1433,6 +1422,23 @@
         event.consume(true);
     },
 
+    /**
+     * @param {number} index
+     * @param {boolean} focus
+     */
+    _navigateToSelectorSource: function(index, focus)
+    {
+        var cssModel = this._parentPane._cssModel;
+        var rule = this._style.parentRule;
+        var header = cssModel.styleSheetHeaderForId(/** @type {string} */(rule.styleSheetId));
+        if (!header)
+            return;
+        var rawLocation = new WebInspector.CSSLocation(header, rule.lineNumberInSource(index), rule.columnNumberInSource(index));
+        var uiLocation = WebInspector.cssWorkspaceBinding.rawLocationToUILocation(rawLocation);
+        if (uiLocation)
+            WebInspector.Revealer.reveal(uiLocation, !focus);
+    },
+
     _startEditingOnMouseEvent: function()
     {
         if (!this.editable || this._isSASSStyle())
@@ -1464,6 +1470,8 @@
 
         element.getComponentSelection().setBaseAndExtent(element, 0, element, 1);
         this._parentPane.setEditingStyle(true);
+        if (element.classList.contains("simple-selector"))
+            this._navigateToSelectorSource(0, false);
     },
 
     /**
@@ -2298,14 +2306,16 @@
 
     /**
      * @param {!Element} element
+     * @param {boolean=} omitFocus
      */
-    _navigateToSource: function(element)
+    _navigateToSource: function(element, omitFocus)
     {
-        console.assert(this.section().navigable);
+        if (!this.section().navigable)
+            return;
         var propertyNameClicked = element === this.nameElement;
         var uiLocation = WebInspector.cssWorkspaceBinding.propertyUILocation(this.property, propertyNameClicked);
         if (uiLocation)
-            WebInspector.Revealer.reveal(uiLocation);
+            WebInspector.Revealer.reveal(uiLocation, omitFocus);
     },
 
     /**
@@ -2438,6 +2448,7 @@
             this._prompt.addEventListener(WebInspector.TextPrompt.Events.ItemAccepted, applyItemCallback, this);
         }
         var proxyElement = this._prompt.attachAndStartEditing(selectElement, blurListener.bind(this, context));
+        this._navigateToSource(selectElement, true);
 
         proxyElement.addEventListener("keydown", this._editingNameValueKeyDown.bind(this, context), false);
         proxyElement.addEventListener("keypress", this._editingNameValueKeyPress.bind(this, context), false);
diff --git a/third_party/WebKit/Source/devtools/front_end/extensions/ExtensionServer.js b/third_party/WebKit/Source/devtools/front_end/extensions/ExtensionServer.js
index 1ec2ecd..92fde8b 100644
--- a/third_party/WebKit/Source/devtools/front_end/extensions/ExtensionServer.js
+++ b/third_party/WebKit/Source/devtools/front_end/extensions/ExtensionServer.js
@@ -371,7 +371,7 @@
 
         var resource = WebInspector.resourceForURL(message.url);
         if (resource) {
-            WebInspector.Revealer.reveal(resource, message.lineNumber);
+            WebInspector.Revealer.reveal(resource);
             return this._status.OK();
         }
 
diff --git a/third_party/WebKit/Source/devtools/front_end/network/NetworkPanel.js b/third_party/WebKit/Source/devtools/front_end/network/NetworkPanel.js
index e479a8a..ee34655c 100644
--- a/third_party/WebKit/Source/devtools/front_end/network/NetworkPanel.js
+++ b/third_party/WebKit/Source/devtools/front_end/network/NetworkPanel.js
@@ -617,10 +617,9 @@
     /**
      * @override
      * @param {!Object} request
-     * @param {number=} lineNumber
      * @return {!Promise}
      */
-    reveal: function(request, lineNumber)
+    reveal: function(request)
     {
         if (!(request instanceof WebInspector.NetworkRequest))
             return Promise.reject(new Error("Internal error: not a network request"));
diff --git a/third_party/WebKit/Source/devtools/front_end/resources/ResourcesPanel.js b/third_party/WebKit/Source/devtools/front_end/resources/ResourcesPanel.js
index ca82949..43df4dd 100644
--- a/third_party/WebKit/Source/devtools/front_end/resources/ResourcesPanel.js
+++ b/third_party/WebKit/Source/devtools/front_end/resources/ResourcesPanel.js
@@ -854,16 +854,15 @@
     /**
      * @override
      * @param {!Object} resource
-     * @param {number=} lineNumber
      * @return {!Promise}
      */
-    reveal: function(resource, lineNumber)
+    reveal: function(resource)
     {
         if (!(resource instanceof WebInspector.Resource))
             return Promise.reject(new Error("Internal error: not a resource"));
         var panel = WebInspector.ResourcesPanel._instance();
         WebInspector.inspectorView.setCurrentPanel(panel);
-        panel.showResource(resource, lineNumber);
+        panel.showResource(resource);
         return Promise.resolve();
     }
 }
diff --git a/third_party/WebKit/Source/devtools/front_end/settings/SettingsScreen.js b/third_party/WebKit/Source/devtools/front_end/settings/SettingsScreen.js
index bc236cff..42ea06e7 100644
--- a/third_party/WebKit/Source/devtools/front_end/settings/SettingsScreen.js
+++ b/third_party/WebKit/Source/devtools/front_end/settings/SettingsScreen.js
@@ -536,10 +536,9 @@
     /**
      * @override
      * @param {!Object} object
-     * @param {number=} lineNumber
      * @return {!Promise}
      */
-    reveal: function(object, lineNumber)
+    reveal: function(object)
     {
         console.assert(object instanceof WebInspector.Setting);
         var setting = /** @type {!WebInspector.Setting} */ (object);
diff --git a/third_party/WebKit/Source/devtools/front_end/sources/SourcesPanel.js b/third_party/WebKit/Source/devtools/front_end/sources/SourcesPanel.js
index 19d20dc..6c7627f 100644
--- a/third_party/WebKit/Source/devtools/front_end/sources/SourcesPanel.js
+++ b/third_party/WebKit/Source/devtools/front_end/sources/SourcesPanel.js
@@ -172,12 +172,30 @@
     {
         WebInspector.context.setFlavor(WebInspector.SourcesPanel, this);
         WebInspector.Panel.prototype.wasShown.call(this);
+        var wrapper = WebInspector.SourcesPanel.WrapperView._instance;
+        if (wrapper && wrapper.isShowing())
+            WebInspector.inspectorView.setDrawerMinimized(true);
+        this.editorView.setMainWidget(this._sourcesView);
     },
 
     willHide: function()
     {
         WebInspector.Panel.prototype.willHide.call(this);
         WebInspector.context.setFlavor(WebInspector.SourcesPanel, null);
+        if (WebInspector.SourcesPanel.WrapperView._instance && WebInspector.SourcesPanel.WrapperView._instance.isShowing()) {
+            WebInspector.SourcesPanel.WrapperView._instance._showViewInWrapper();
+            WebInspector.inspectorView.setDrawerMinimized(false);
+        }
+    },
+
+    /**
+     * @return {boolean}
+     */
+    _ensureSourcesViewVisible: function()
+    {
+        if (WebInspector.SourcesPanel.WrapperView._instance && WebInspector.SourcesPanel.WrapperView._instance.isShowing())
+            return true;
+        return this === WebInspector.inspectorView.setCurrentPanel(this);
     },
 
     onResize: function()
@@ -338,24 +356,34 @@
      * @param {!WebInspector.UISourceCode} uiSourceCode
      * @param {number=} lineNumber 0-based
      * @param {number=} columnNumber
+     * @param {boolean=} omitFocus
      */
-    showUISourceCode: function(uiSourceCode, lineNumber, columnNumber)
+    showUISourceCode: function(uiSourceCode, lineNumber, columnNumber, omitFocus)
     {
-        this._showEditor();
-        this._sourcesView.showSourceLocation(uiSourceCode, lineNumber, columnNumber);
+        if (omitFocus) {
+            var wrapperShowing = WebInspector.SourcesPanel.WrapperView._instance && WebInspector.SourcesPanel.WrapperView._instance.isShowing();
+            if (!this.isShowing() && !wrapperShowing)
+                return;
+        } else {
+            this._showEditor();
+        }
+        this._sourcesView.showSourceLocation(uiSourceCode, lineNumber, columnNumber, omitFocus);
     },
 
     _showEditor: function()
     {
+        if (WebInspector.SourcesPanel.WrapperView._instance && WebInspector.SourcesPanel.WrapperView._instance.isShowing())
+            return;
         WebInspector.inspectorView.setCurrentPanel(this);
     },
 
     /**
      * @param {!WebInspector.UILocation} uiLocation
+     * @param {boolean=} omitFocus
      */
-    showUILocation: function(uiLocation)
+    showUILocation: function(uiLocation, omitFocus)
     {
-        this.showUISourceCode(uiLocation.uiSourceCode, uiLocation.lineNumber, uiLocation.columnNumber);
+        this.showUISourceCode(uiLocation.uiSourceCode, uiLocation.lineNumber, uiLocation.columnNumber, omitFocus);
     },
 
     /**
@@ -1209,13 +1237,14 @@
     /**
      * @override
      * @param {!Object} uiLocation
+     * @param {boolean=} omitFocus
      * @return {!Promise}
      */
-    reveal: function(uiLocation)
+    reveal: function(uiLocation, omitFocus)
     {
         if (!(uiLocation instanceof WebInspector.UILocation))
             return Promise.reject(new Error("Internal error: not a ui location"));
-        WebInspector.SourcesPanel.instance().showUILocation(uiLocation);
+        WebInspector.SourcesPanel.instance().showUILocation(uiLocation, omitFocus);
         return Promise.resolve();
     }
 }
@@ -1232,13 +1261,14 @@
     /**
      * @override
      * @param {!Object} rawLocation
+     * @param {boolean=} omitFocus
      * @return {!Promise}
      */
-    reveal: function(rawLocation)
+    reveal: function(rawLocation, omitFocus)
     {
         if (!(rawLocation instanceof WebInspector.DebuggerModel.Location))
             return Promise.reject(new Error("Internal error: not a debugger location"));
-        WebInspector.SourcesPanel.instance().showUILocation(WebInspector.debuggerWorkspaceBinding.rawLocationToUILocation(rawLocation));
+        WebInspector.SourcesPanel.instance().showUILocation(WebInspector.debuggerWorkspaceBinding.rawLocationToUILocation(rawLocation), omitFocus);
         return Promise.resolve();
     }
 }
@@ -1255,13 +1285,14 @@
     /**
      * @override
      * @param {!Object} uiSourceCode
+     * @param {boolean=} omitFocus
      * @return {!Promise}
      */
-    reveal: function(uiSourceCode)
+    reveal: function(uiSourceCode, omitFocus)
     {
         if (!(uiSourceCode instanceof WebInspector.UISourceCode))
             return Promise.reject(new Error("Internal error: not a ui source code"));
-        WebInspector.SourcesPanel.instance().showUISourceCode(uiSourceCode);
+        WebInspector.SourcesPanel.instance().showUISourceCode(uiSourceCode, undefined, undefined, omitFocus);
         return Promise.resolve();
     }
 }
@@ -1303,7 +1334,7 @@
     handleAction: function(context, actionId)
     {
         var panel = WebInspector.SourcesPanel.instance();
-        if (panel !== WebInspector.inspectorView.setCurrentPanel(panel))
+        if (!panel._ensureSourcesViewVisible())
             return false;
         switch (actionId) {
         case "debugger.toggle-pause":
@@ -1389,3 +1420,51 @@
         return WebInspector.SourcesPanel.instance();
     }
 }
+
+/**
+ * @constructor
+ * @extends {WebInspector.VBox}
+ */
+WebInspector.SourcesPanel.WrapperView = function()
+{
+    WebInspector.VBox.call(this);
+    this.element.classList.add("sources-view-wrapper");
+    WebInspector.SourcesPanel.WrapperView._instance = this;
+    this._view = WebInspector.SourcesPanel.instance()._sourcesView;
+}
+
+WebInspector.SourcesPanel.WrapperView.prototype = {
+    wasShown: function()
+    {
+        if (WebInspector.inspectorView.currentPanel() && WebInspector.inspectorView.currentPanel().name !== "sources")
+            this._showViewInWrapper();
+        else
+            WebInspector.inspectorView.setDrawerMinimized(true);
+    },
+
+    willHide: function()
+    {
+        WebInspector.inspectorView.setDrawerMinimized(false);
+    },
+
+    /**
+     * @override
+     * @return {!Element}
+     */
+    defaultFocusedElement: function()
+    {
+        return this._view.defaultFocusedElement();
+    },
+
+    focus: function()
+    {
+        this._view.focus();
+    },
+
+    _showViewInWrapper: function()
+    {
+        this._view.show(this.element);
+    },
+
+    __proto__: WebInspector.VBox.prototype
+}
diff --git a/third_party/WebKit/Source/devtools/front_end/sources/module.json b/third_party/WebKit/Source/devtools/front_end/sources/module.json
index 2d32ec21..b67bab9 100644
--- a/third_party/WebKit/Source/devtools/front_end/sources/module.json
+++ b/third_party/WebKit/Source/devtools/front_end/sources/module.json
@@ -324,6 +324,14 @@
             "title": "History",
             "persistence": "temporary",
             "className": "WebInspector.RevisionHistoryView"
+        },
+        {
+            "type": "drawer-view",
+            "name": "sources.quick",
+            "title": "Quick source",
+            "persistence": "closeable",
+            "order": 1000,
+            "className": "WebInspector.SourcesPanel.WrapperView"
         }
     ],
     "dependencies": [
diff --git a/third_party/WebKit/Source/devtools/front_end/ui/UIUtils.js b/third_party/WebKit/Source/devtools/front_end/ui/UIUtils.js
index 117d64c1..1f5ece2 100644
--- a/third_party/WebKit/Source/devtools/front_end/ui/UIUtils.js
+++ b/third_party/WebKit/Source/devtools/front_end/ui/UIUtils.js
@@ -785,6 +785,8 @@
 {
     if (WebInspector._glassPane && x && !WebInspector._glassPane.element.isAncestor(x))
         return;
+    if (x && !x.ownerDocument.isAncestor(x))
+        return;
     if (WebInspector._currentFocusElement !== x)
         WebInspector._previousFocusElement = WebInspector._currentFocusElement;
     WebInspector._currentFocusElement = x;
diff --git a/third_party/widevine/cdm/BUILD.gn b/third_party/widevine/cdm/BUILD.gn
index 050f78c2..e2093a58 100644
--- a/third_party/widevine/cdm/BUILD.gn
+++ b/third_party/widevine/cdm/BUILD.gn
@@ -67,7 +67,7 @@
   copy("widevinecdm") {
     sources = widevine_cdm_binary_files
     outputs = [
-      "$root_out_dir/WidevineCdm/{{source_file_part}}",
+      "$root_out_dir/{{source_file_part}}",
     ]
 
     # TODO(jrummell)
@@ -77,7 +77,6 @@
   assert(!is_chrome_branded, "Branded Chrome should have binary files to copy.")
   assert(!is_android, "Android should not have enable_pepper_cdms.")
   shared_library("widevinecdm") {
-    output_dir = "$root_out_dir/WidevineCdm"
     sources = [
       "//media/cdm/stub/stub_cdm.cc",
       "//media/cdm/stub/stub_cdm.h",
@@ -125,7 +124,6 @@
 
   ppapi_cdm_adapter("widevinecdmadapter") {
     defines = []
-    output_dir = "$root_out_dir/WidevineCdm"
     deps = [
       ":version_h",
       ":widevinecdm",
@@ -133,14 +131,14 @@
     ]
 
     if (is_linux) {
-      ldflags = [ rebase_path("$root_out_dir/WidevineCdm/libwidevinecdm.so",
-                              root_build_dir) ]
+      ldflags =
+          [ rebase_path("$root_out_dir/libwidevinecdm.so", root_build_dir) ]
     } else if (is_win) {
-      ldflags = [ rebase_path("$root_out_dir/WidevineCdm/widevinecdm.dll.lib",
-                              root_build_dir) ]
+      ldflags =
+          [ rebase_path("$root_out_dir/widevinecdm.dll.lib", root_build_dir) ]
     } else if (is_mac) {
-      ldflags = [ rebase_path("$root_out_dir/WidevineCdm/libwidevinecdm.dylib",
-                              root_build_dir) ]
+      ldflags =
+          [ rebase_path("$root_out_dir/libwidevinecdm.dylib", root_build_dir) ]
     }
   }
 } else {
diff --git a/third_party/widevine/cdm/widevine_cdm.gyp b/third_party/widevine/cdm/widevine_cdm.gyp
index beb971c..97a416518b 100644
--- a/third_party/widevine/cdm/widevine_cdm.gyp
+++ b/third_party/widevine/cdm/widevine_cdm.gyp
@@ -10,7 +10,6 @@
     },
     'enable_widevine%': '<(enable_widevine)',
     'widevine_cdm_version_h_file%': 'widevine_cdm_version.h',
-    # TODO(xhwang): Also include manifest.json.
     'widevine_cdm_binary_files%': [],
     'conditions': [
       [ 'branding == "Chrome"', {
@@ -87,7 +86,6 @@
     {
       # GN version: //third_party/widevine/cdm:widevinecdmadapter
       'target_name': 'widevinecdmadapter',
-      'product_dir': '<(PRODUCT_DIR)/WidevineCdm',
       'type': 'none',
       'conditions': [
         [ '(branding == "Chrome" or enable_widevine == 1) and enable_pepper_cdms == 1', {
@@ -106,19 +104,19 @@
               'libraries': [
                 '-lrt',
                 # Copied/created by widevinecdm.
-                '<(PRODUCT_DIR)/WidevineCdm/libwidevinecdm.so',
+                '<(PRODUCT_DIR)/libwidevinecdm.so',
               ],
             }],
             [ 'OS == "win"', {
               'libraries': [
                 # Copied/created by widevinecdm.
-                '<(PRODUCT_DIR)/WidevineCdm/widevinecdm.dll.lib',
+                '<(PRODUCT_DIR)/widevinecdm.dll.lib',
               ],
             }],
             [ 'OS == "mac"', {
               'libraries': [
                 # Copied/created by widevinecdm.
-                '<(PRODUCT_DIR)/WidevineCdm/libwidevinecdm.dylib',
+                '<(PRODUCT_DIR)/libwidevinecdm.dylib',
               ],
             }],
           ],
@@ -148,16 +146,17 @@
             }],
           ],
           'copies': [{
-            'destination': '<(PRODUCT_DIR)/WidevineCdm',
+            # TODO(ddorwin): Do we need a sub-directory? We either need a
+            # sub-directory or to rename manifest.json before we can copy it.
+            'destination': '<(PRODUCT_DIR)',
             'files': [ '<@(widevine_cdm_binary_files)' ],
           }],
         }],
         [ 'branding != "Chrome" and enable_widevine == 1', {
-          'product_dir': '<(PRODUCT_DIR)/WidevineCdm',
           'conditions': [
             ['os_posix == 1 and OS != "mac"', {
               'type': 'loadable_module',
-              # This causes the binary to be put in <(PRODUCT_DIR)/WidevineCdm
+              # Note that this causes the binary to be put in PRODUCT_DIR
               # instead of lib/. This matches what happens in the copy step
               # above.
             }],
diff --git a/third_party/widevine/cdm/widevine_cdm_common.h b/third_party/widevine/cdm/widevine_cdm_common.h
index 0dafb1e..b5e51939 100644
--- a/third_party/widevine/cdm/widevine_cdm_common.h
+++ b/third_party/widevine/cdm/widevine_cdm_common.h
@@ -16,9 +16,6 @@
 // This type is used to register the Widevine CDM.
 const char kWidevineCdmType[] = "Widevine";
 
-// Widevine CDM files are in a directory with this name.
-const char kWidevineCdmBaseDirectory[] = "WidevineCdm";
-
 // This name is used by UMA. Do not change it!
 const char kWidevineKeySystemNameForUMA[] = "Widevine";
 
diff --git a/tools/valgrind/memcheck/suppressions.txt b/tools/valgrind/memcheck/suppressions.txt
index 637f14d..120baef 100644
--- a/tools/valgrind/memcheck/suppressions.txt
+++ b/tools/valgrind/memcheck/suppressions.txt
@@ -3123,18 +3123,6 @@
    fun:_ZN4base4BindIMN7content21ChromeAppCacheServiceEFvRKNS_8FilePathEPNS1_15ResourceContextEPN3net23URLRequestContextGetterE13scoped_refptrIN7storage20SpecialStoragePolicyEEEJPS2_S3_S7_SB_IS9_ESE_EEENS_8CallbackINS_8internal22MakeUnboundRunTypeImplIT_JDpT0_EE4TypeEEESM_DpOSN_
 }
 {
-   bug_600484
-   Memcheck:Leak
-   fun:_Znw*
-   fun:_ZN4mojo3edk2js13HandleWrapper6Create*
-   fun:_ZN3gin9ConverterIN4mojo6Handle*
-   fun:_ZN3gin11ConvertToV8IN4mojo6Handle*
-   fun:_ZN3gin10ToV8TraitsIN4mojo6HandleELb0EE14TryConvertToV8*
-   fun:_ZN3gin14TryConvertToV8IN4mojo6Handle*
-   fun:_ZN3gin10Dictionary3SetIN4mojo6Handle*
-   fun:_ZN4mojo3edk2js12_GLOBAL__N_114CreateDataPipe*
-}
-{
    bug_602964
    Memcheck:Leak
    fun:_Znw*