Reorganizes Chromecast code to better reflect functional dependencies.

Motivation:
* chromecast/service/ directory had interplay with chromecast/shell/browser
  code, since the service is all run in the browser process and mildly
  coupled (involves starting WebContents instances, etc,). Made more sense
  for chromecast/service to live in chromecast/shell/browser.
* chromecast/shell/ directory is needless hierarchy, since the entire
  chromecast/ directory represents the Chromecast content-embedder.

Highlights:
* chromecast/shell/{app,browser,common,renderer} --> chromecast/*
* chromecast/shell/browser/resources --> chromecast/app/resources
* chromecast/shell/settings --> chromecast/app/resources
* chromecast/shell/android --> chromecast/browser/android
* chromecast/metrics --> chromecast/browser/metrics
* chromecast/service --> chromecast/browser/service

[email protected],[email protected],[email protected]
[email protected],[email protected],[email protected],[email protected],[email protected]
BUG=None

Review URL: https://codereview.chromium.org/638803002

Cr-Commit-Position: refs/heads/master@{#299385}
diff --git a/chromecast/DEPS b/chromecast/DEPS
index 509c6d3d..a1073ac 100644
--- a/chromecast/DEPS
+++ b/chromecast/DEPS
@@ -1,10 +1,9 @@
 # Do not add any includes under chrome/ anywhere in chromecast.
 
 include_rules = [
-  # Chromecast code should, in general, only depend on chromecast/common unless
-  # a dependency is otherwise explicitly declared.
+  # Chromecast code should explicitly declare its dependencies on each
+  # sub-directory within chromecast/.
   "-chromecast",
-  "+chromecast/common",
 
   # Other Chromecast-wide dependencies.
   "+content/public/common",
diff --git a/chromecast/android/DEPS b/chromecast/android/DEPS
index 62e5a66..9659c05 100644
--- a/chromecast/android/DEPS
+++ b/chromecast/android/DEPS
@@ -1,6 +1,6 @@
 include_rules = [
   # Includes for JNI.
   "+chromecast/android",
+  "+chromecast/browser/android",
   "+chromecast/crash/android",
-  "+chromecast/shell/browser/android",
 ]
diff --git a/chromecast/android/cast_jni_registrar.cc b/chromecast/android/cast_jni_registrar.cc
index 81735d8..da2f021 100644
--- a/chromecast/android/cast_jni_registrar.cc
+++ b/chromecast/android/cast_jni_registrar.cc
@@ -6,10 +6,10 @@
 
 #include "base/android/jni_android.h"
 #include "base/android/jni_registrar.h"
+#include "chromecast/browser/android/cast_window_android.h"
+#include "chromecast/browser/android/cast_window_manager.h"
+#include "chromecast/browser/android/external_video_surface_container_impl.h"
 #include "chromecast/crash/android/crash_handler.h"
-#include "chromecast/shell/browser/android/cast_window_android.h"
-#include "chromecast/shell/browser/android/cast_window_manager.h"
-#include "chromecast/shell/browser/android/external_video_surface_container_impl.h"
 
 namespace chromecast {
 namespace android {
@@ -19,9 +19,9 @@
 static base::android::RegistrationMethod kMethods[] = {
   { "CastWindowAndroid", shell::CastWindowAndroid::RegisterJni },
   { "CastWindowManager", shell::RegisterCastWindowManager },
+  { "CrashHandler", CrashHandler::RegisterCastCrashJni },
   { "ExternalVideoSurfaceContainer",
         shell::RegisterExternalVideoSurfaceContainer },
-  { "CrashHandler", CrashHandler::RegisterCastCrashJni },
 };
 
 }  // namespace
diff --git a/chromecast/shell/app/DEPS b/chromecast/app/DEPS
similarity index 84%
rename from chromecast/shell/app/DEPS
rename to chromecast/app/DEPS
index 3dad089..835bef6 100644
--- a/chromecast/shell/app/DEPS
+++ b/chromecast/app/DEPS
@@ -1,4 +1,5 @@
 include_rules = [
+  "+chromecast",
   "+components/crash",
   "+content/public/app",
   "+content/public/browser",
diff --git a/chromecast/app/android/DEPS b/chromecast/app/android/DEPS
new file mode 100644
index 0000000..50218628
--- /dev/null
+++ b/chromecast/app/android/DEPS
@@ -0,0 +1,3 @@
+include_rules = [
+  "+chromecast/android",
+]
diff --git a/chromecast/shell/app/android/cast_jni_loader.cc b/chromecast/app/android/cast_jni_loader.cc
similarity index 96%
rename from chromecast/shell/app/android/cast_jni_loader.cc
rename to chromecast/app/android/cast_jni_loader.cc
index 4cbf8f8..ed7f6ee 100644
--- a/chromecast/shell/app/android/cast_jni_loader.cc
+++ b/chromecast/app/android/cast_jni_loader.cc
@@ -10,7 +10,7 @@
 #include "base/logging.h"
 #include "chromecast/android/cast_jni_registrar.h"
 #include "chromecast/android/platform_jni_loader.h"
-#include "chromecast/shell/app/cast_main_delegate.h"
+#include "chromecast/app/cast_main_delegate.h"
 #include "content/public/app/android_library_loader_hooks.h"
 #include "content/public/app/content_main.h"
 #include "content/public/browser/android/compositor.h"
diff --git a/chromecast/shell/app/cast_main.cc b/chromecast/app/cast_main.cc
similarity index 88%
rename from chromecast/shell/app/cast_main.cc
rename to chromecast/app/cast_main.cc
index 6b731b9..6c6c0b4f 100644
--- a/chromecast/shell/app/cast_main.cc
+++ b/chromecast/app/cast_main.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chromecast/shell/app/cast_main_delegate.h"
+#include "chromecast/app/cast_main_delegate.h"
 #include "content/public/app/content_main.h"
 
 int main(int argc, const char** argv) {
diff --git a/chromecast/shell/app/cast_main_delegate.cc b/chromecast/app/cast_main_delegate.cc
similarity index 95%
rename from chromecast/shell/app/cast_main_delegate.cc
rename to chromecast/app/cast_main_delegate.cc
index e3dbfc1..78e4d55 100644
--- a/chromecast/shell/app/cast_main_delegate.cc
+++ b/chromecast/app/cast_main_delegate.cc
@@ -2,18 +2,18 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chromecast/shell/app/cast_main_delegate.h"
+#include "chromecast/app/cast_main_delegate.h"
 
 #include "base/command_line.h"
 #include "base/cpu.h"
 #include "base/logging.h"
 #include "base/path_service.h"
 #include "base/posix/global_descriptors.h"
+#include "chromecast/browser/cast_content_browser_client.h"
 #include "chromecast/common/cast_paths.h"
 #include "chromecast/common/cast_resource_delegate.h"
 #include "chromecast/common/global_descriptors.h"
-#include "chromecast/shell/browser/cast_content_browser_client.h"
-#include "chromecast/shell/renderer/cast_content_renderer_client.h"
+#include "chromecast/renderer/cast_content_renderer_client.h"
 #include "content/public/browser/browser_main_runner.h"
 #include "content/public/common/content_switches.h"
 #include "ui/base/resource/resource_bundle.h"
diff --git a/chromecast/shell/app/cast_main_delegate.h b/chromecast/app/cast_main_delegate.h
similarity index 88%
rename from chromecast/shell/app/cast_main_delegate.h
rename to chromecast/app/cast_main_delegate.h
index 914e23a..d078655f 100644
--- a/chromecast/shell/app/cast_main_delegate.h
+++ b/chromecast/app/cast_main_delegate.h
@@ -2,12 +2,12 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CHROMECAST_SHELL_APP_CAST_MAIN_DELEGATE_H_
-#define CHROMECAST_SHELL_APP_CAST_MAIN_DELEGATE_H_
+#ifndef CHROMECAST_APP_CAST_MAIN_DELEGATE_H_
+#define CHROMECAST_APP_CAST_MAIN_DELEGATE_H_
 
 #include "base/macros.h"
 #include "base/memory/scoped_ptr.h"
-#include "chromecast/shell/common/cast_content_client.h"
+#include "chromecast/common/cast_content_client.h"
 #include "content/public/app/content_main_delegate.h"
 
 namespace content {
@@ -59,4 +59,4 @@
 }  // namespace shell
 }  // namespace chromecast
 
-#endif  // CHROMECAST_SHELL_APP_CAST_MAIN_DELEGATE_H_
+#endif  // CHROMECAST_APP_CAST_MAIN_DELEGATE_H_
diff --git a/chromecast/shell/settings/chromecast_settings.grd b/chromecast/app/resources/chromecast_settings.grd
similarity index 100%
rename from chromecast/shell/settings/chromecast_settings.grd
rename to chromecast/app/resources/chromecast_settings.grd
diff --git a/chromecast/shell/settings/chromecast_settings_am.xtb b/chromecast/app/resources/chromecast_settings_am.xtb
similarity index 100%
rename from chromecast/shell/settings/chromecast_settings_am.xtb
rename to chromecast/app/resources/chromecast_settings_am.xtb
diff --git a/chromecast/shell/settings/chromecast_settings_ar.xtb b/chromecast/app/resources/chromecast_settings_ar.xtb
similarity index 100%
rename from chromecast/shell/settings/chromecast_settings_ar.xtb
rename to chromecast/app/resources/chromecast_settings_ar.xtb
diff --git a/chromecast/shell/settings/chromecast_settings_bg.xtb b/chromecast/app/resources/chromecast_settings_bg.xtb
similarity index 100%
rename from chromecast/shell/settings/chromecast_settings_bg.xtb
rename to chromecast/app/resources/chromecast_settings_bg.xtb
diff --git a/chromecast/shell/settings/chromecast_settings_bn.xtb b/chromecast/app/resources/chromecast_settings_bn.xtb
similarity index 100%
rename from chromecast/shell/settings/chromecast_settings_bn.xtb
rename to chromecast/app/resources/chromecast_settings_bn.xtb
diff --git a/chromecast/shell/settings/chromecast_settings_ca.xtb b/chromecast/app/resources/chromecast_settings_ca.xtb
similarity index 100%
rename from chromecast/shell/settings/chromecast_settings_ca.xtb
rename to chromecast/app/resources/chromecast_settings_ca.xtb
diff --git a/chromecast/shell/settings/chromecast_settings_cs.xtb b/chromecast/app/resources/chromecast_settings_cs.xtb
similarity index 100%
rename from chromecast/shell/settings/chromecast_settings_cs.xtb
rename to chromecast/app/resources/chromecast_settings_cs.xtb
diff --git a/chromecast/shell/settings/chromecast_settings_da.xtb b/chromecast/app/resources/chromecast_settings_da.xtb
similarity index 100%
rename from chromecast/shell/settings/chromecast_settings_da.xtb
rename to chromecast/app/resources/chromecast_settings_da.xtb
diff --git a/chromecast/shell/settings/chromecast_settings_de.xtb b/chromecast/app/resources/chromecast_settings_de.xtb
similarity index 100%
rename from chromecast/shell/settings/chromecast_settings_de.xtb
rename to chromecast/app/resources/chromecast_settings_de.xtb
diff --git a/chromecast/shell/settings/chromecast_settings_el.xtb b/chromecast/app/resources/chromecast_settings_el.xtb
similarity index 100%
rename from chromecast/shell/settings/chromecast_settings_el.xtb
rename to chromecast/app/resources/chromecast_settings_el.xtb
diff --git a/chromecast/shell/settings/chromecast_settings_en-GB.xtb b/chromecast/app/resources/chromecast_settings_en-GB.xtb
similarity index 100%
rename from chromecast/shell/settings/chromecast_settings_en-GB.xtb
rename to chromecast/app/resources/chromecast_settings_en-GB.xtb
diff --git a/chromecast/shell/settings/chromecast_settings_es-419.xtb b/chromecast/app/resources/chromecast_settings_es-419.xtb
similarity index 100%
rename from chromecast/shell/settings/chromecast_settings_es-419.xtb
rename to chromecast/app/resources/chromecast_settings_es-419.xtb
diff --git a/chromecast/shell/settings/chromecast_settings_es.xtb b/chromecast/app/resources/chromecast_settings_es.xtb
similarity index 100%
rename from chromecast/shell/settings/chromecast_settings_es.xtb
rename to chromecast/app/resources/chromecast_settings_es.xtb
diff --git a/chromecast/shell/settings/chromecast_settings_et.xtb b/chromecast/app/resources/chromecast_settings_et.xtb
similarity index 100%
rename from chromecast/shell/settings/chromecast_settings_et.xtb
rename to chromecast/app/resources/chromecast_settings_et.xtb
diff --git a/chromecast/shell/settings/chromecast_settings_fa.xtb b/chromecast/app/resources/chromecast_settings_fa.xtb
similarity index 100%
rename from chromecast/shell/settings/chromecast_settings_fa.xtb
rename to chromecast/app/resources/chromecast_settings_fa.xtb
diff --git a/chromecast/shell/settings/chromecast_settings_fi.xtb b/chromecast/app/resources/chromecast_settings_fi.xtb
similarity index 100%
rename from chromecast/shell/settings/chromecast_settings_fi.xtb
rename to chromecast/app/resources/chromecast_settings_fi.xtb
diff --git a/chromecast/shell/settings/chromecast_settings_fil.xtb b/chromecast/app/resources/chromecast_settings_fil.xtb
similarity index 100%
rename from chromecast/shell/settings/chromecast_settings_fil.xtb
rename to chromecast/app/resources/chromecast_settings_fil.xtb
diff --git a/chromecast/shell/settings/chromecast_settings_fr.xtb b/chromecast/app/resources/chromecast_settings_fr.xtb
similarity index 100%
rename from chromecast/shell/settings/chromecast_settings_fr.xtb
rename to chromecast/app/resources/chromecast_settings_fr.xtb
diff --git a/chromecast/shell/settings/chromecast_settings_gu.xtb b/chromecast/app/resources/chromecast_settings_gu.xtb
similarity index 100%
rename from chromecast/shell/settings/chromecast_settings_gu.xtb
rename to chromecast/app/resources/chromecast_settings_gu.xtb
diff --git a/chromecast/shell/settings/chromecast_settings_he.xtb b/chromecast/app/resources/chromecast_settings_he.xtb
similarity index 100%
rename from chromecast/shell/settings/chromecast_settings_he.xtb
rename to chromecast/app/resources/chromecast_settings_he.xtb
diff --git a/chromecast/shell/settings/chromecast_settings_hi.xtb b/chromecast/app/resources/chromecast_settings_hi.xtb
similarity index 100%
rename from chromecast/shell/settings/chromecast_settings_hi.xtb
rename to chromecast/app/resources/chromecast_settings_hi.xtb
diff --git a/chromecast/shell/settings/chromecast_settings_hr.xtb b/chromecast/app/resources/chromecast_settings_hr.xtb
similarity index 100%
rename from chromecast/shell/settings/chromecast_settings_hr.xtb
rename to chromecast/app/resources/chromecast_settings_hr.xtb
diff --git a/chromecast/shell/settings/chromecast_settings_hu.xtb b/chromecast/app/resources/chromecast_settings_hu.xtb
similarity index 100%
rename from chromecast/shell/settings/chromecast_settings_hu.xtb
rename to chromecast/app/resources/chromecast_settings_hu.xtb
diff --git a/chromecast/shell/settings/chromecast_settings_id.xtb b/chromecast/app/resources/chromecast_settings_id.xtb
similarity index 100%
rename from chromecast/shell/settings/chromecast_settings_id.xtb
rename to chromecast/app/resources/chromecast_settings_id.xtb
diff --git a/chromecast/shell/settings/chromecast_settings_it.xtb b/chromecast/app/resources/chromecast_settings_it.xtb
similarity index 100%
rename from chromecast/shell/settings/chromecast_settings_it.xtb
rename to chromecast/app/resources/chromecast_settings_it.xtb
diff --git a/chromecast/shell/settings/chromecast_settings_ja.xtb b/chromecast/app/resources/chromecast_settings_ja.xtb
similarity index 100%
rename from chromecast/shell/settings/chromecast_settings_ja.xtb
rename to chromecast/app/resources/chromecast_settings_ja.xtb
diff --git a/chromecast/shell/settings/chromecast_settings_kn.xtb b/chromecast/app/resources/chromecast_settings_kn.xtb
similarity index 100%
rename from chromecast/shell/settings/chromecast_settings_kn.xtb
rename to chromecast/app/resources/chromecast_settings_kn.xtb
diff --git a/chromecast/shell/settings/chromecast_settings_ko.xtb b/chromecast/app/resources/chromecast_settings_ko.xtb
similarity index 100%
rename from chromecast/shell/settings/chromecast_settings_ko.xtb
rename to chromecast/app/resources/chromecast_settings_ko.xtb
diff --git a/chromecast/shell/settings/chromecast_settings_lt.xtb b/chromecast/app/resources/chromecast_settings_lt.xtb
similarity index 100%
rename from chromecast/shell/settings/chromecast_settings_lt.xtb
rename to chromecast/app/resources/chromecast_settings_lt.xtb
diff --git a/chromecast/shell/settings/chromecast_settings_lv.xtb b/chromecast/app/resources/chromecast_settings_lv.xtb
similarity index 100%
rename from chromecast/shell/settings/chromecast_settings_lv.xtb
rename to chromecast/app/resources/chromecast_settings_lv.xtb
diff --git a/chromecast/shell/settings/chromecast_settings_ml.xtb b/chromecast/app/resources/chromecast_settings_ml.xtb
similarity index 100%
rename from chromecast/shell/settings/chromecast_settings_ml.xtb
rename to chromecast/app/resources/chromecast_settings_ml.xtb
diff --git a/chromecast/shell/settings/chromecast_settings_mr.xtb b/chromecast/app/resources/chromecast_settings_mr.xtb
similarity index 100%
rename from chromecast/shell/settings/chromecast_settings_mr.xtb
rename to chromecast/app/resources/chromecast_settings_mr.xtb
diff --git a/chromecast/shell/settings/chromecast_settings_ms.xtb b/chromecast/app/resources/chromecast_settings_ms.xtb
similarity index 100%
rename from chromecast/shell/settings/chromecast_settings_ms.xtb
rename to chromecast/app/resources/chromecast_settings_ms.xtb
diff --git a/chromecast/shell/settings/chromecast_settings_nb.xtb b/chromecast/app/resources/chromecast_settings_nb.xtb
similarity index 100%
rename from chromecast/shell/settings/chromecast_settings_nb.xtb
rename to chromecast/app/resources/chromecast_settings_nb.xtb
diff --git a/chromecast/shell/settings/chromecast_settings_nl.xtb b/chromecast/app/resources/chromecast_settings_nl.xtb
similarity index 100%
rename from chromecast/shell/settings/chromecast_settings_nl.xtb
rename to chromecast/app/resources/chromecast_settings_nl.xtb
diff --git a/chromecast/shell/settings/chromecast_settings_pl.xtb b/chromecast/app/resources/chromecast_settings_pl.xtb
similarity index 100%
rename from chromecast/shell/settings/chromecast_settings_pl.xtb
rename to chromecast/app/resources/chromecast_settings_pl.xtb
diff --git a/chromecast/shell/settings/chromecast_settings_pt-BR.xtb b/chromecast/app/resources/chromecast_settings_pt-BR.xtb
similarity index 100%
rename from chromecast/shell/settings/chromecast_settings_pt-BR.xtb
rename to chromecast/app/resources/chromecast_settings_pt-BR.xtb
diff --git a/chromecast/shell/settings/chromecast_settings_pt-PT.xtb b/chromecast/app/resources/chromecast_settings_pt-PT.xtb
similarity index 100%
rename from chromecast/shell/settings/chromecast_settings_pt-PT.xtb
rename to chromecast/app/resources/chromecast_settings_pt-PT.xtb
diff --git a/chromecast/shell/settings/chromecast_settings_ro.xtb b/chromecast/app/resources/chromecast_settings_ro.xtb
similarity index 100%
rename from chromecast/shell/settings/chromecast_settings_ro.xtb
rename to chromecast/app/resources/chromecast_settings_ro.xtb
diff --git a/chromecast/shell/settings/chromecast_settings_ru.xtb b/chromecast/app/resources/chromecast_settings_ru.xtb
similarity index 100%
rename from chromecast/shell/settings/chromecast_settings_ru.xtb
rename to chromecast/app/resources/chromecast_settings_ru.xtb
diff --git a/chromecast/shell/settings/chromecast_settings_sk.xtb b/chromecast/app/resources/chromecast_settings_sk.xtb
similarity index 100%
rename from chromecast/shell/settings/chromecast_settings_sk.xtb
rename to chromecast/app/resources/chromecast_settings_sk.xtb
diff --git a/chromecast/shell/settings/chromecast_settings_sl.xtb b/chromecast/app/resources/chromecast_settings_sl.xtb
similarity index 100%
rename from chromecast/shell/settings/chromecast_settings_sl.xtb
rename to chromecast/app/resources/chromecast_settings_sl.xtb
diff --git a/chromecast/shell/settings/chromecast_settings_sr.xtb b/chromecast/app/resources/chromecast_settings_sr.xtb
similarity index 100%
rename from chromecast/shell/settings/chromecast_settings_sr.xtb
rename to chromecast/app/resources/chromecast_settings_sr.xtb
diff --git a/chromecast/shell/settings/chromecast_settings_sv.xtb b/chromecast/app/resources/chromecast_settings_sv.xtb
similarity index 100%
rename from chromecast/shell/settings/chromecast_settings_sv.xtb
rename to chromecast/app/resources/chromecast_settings_sv.xtb
diff --git a/chromecast/shell/settings/chromecast_settings_sw.xtb b/chromecast/app/resources/chromecast_settings_sw.xtb
similarity index 100%
rename from chromecast/shell/settings/chromecast_settings_sw.xtb
rename to chromecast/app/resources/chromecast_settings_sw.xtb
diff --git a/chromecast/shell/settings/chromecast_settings_ta.xtb b/chromecast/app/resources/chromecast_settings_ta.xtb
similarity index 100%
rename from chromecast/shell/settings/chromecast_settings_ta.xtb
rename to chromecast/app/resources/chromecast_settings_ta.xtb
diff --git a/chromecast/shell/settings/chromecast_settings_te.xtb b/chromecast/app/resources/chromecast_settings_te.xtb
similarity index 100%
rename from chromecast/shell/settings/chromecast_settings_te.xtb
rename to chromecast/app/resources/chromecast_settings_te.xtb
diff --git a/chromecast/shell/settings/chromecast_settings_th.xtb b/chromecast/app/resources/chromecast_settings_th.xtb
similarity index 100%
rename from chromecast/shell/settings/chromecast_settings_th.xtb
rename to chromecast/app/resources/chromecast_settings_th.xtb
diff --git a/chromecast/shell/settings/chromecast_settings_tr.xtb b/chromecast/app/resources/chromecast_settings_tr.xtb
similarity index 100%
rename from chromecast/shell/settings/chromecast_settings_tr.xtb
rename to chromecast/app/resources/chromecast_settings_tr.xtb
diff --git a/chromecast/shell/settings/chromecast_settings_uk.xtb b/chromecast/app/resources/chromecast_settings_uk.xtb
similarity index 100%
rename from chromecast/shell/settings/chromecast_settings_uk.xtb
rename to chromecast/app/resources/chromecast_settings_uk.xtb
diff --git a/chromecast/shell/settings/chromecast_settings_vi.xtb b/chromecast/app/resources/chromecast_settings_vi.xtb
similarity index 100%
rename from chromecast/shell/settings/chromecast_settings_vi.xtb
rename to chromecast/app/resources/chromecast_settings_vi.xtb
diff --git a/chromecast/shell/settings/chromecast_settings_zh-CN.xtb b/chromecast/app/resources/chromecast_settings_zh-CN.xtb
similarity index 100%
rename from chromecast/shell/settings/chromecast_settings_zh-CN.xtb
rename to chromecast/app/resources/chromecast_settings_zh-CN.xtb
diff --git a/chromecast/shell/settings/chromecast_settings_zh-TW.xtb b/chromecast/app/resources/chromecast_settings_zh-TW.xtb
similarity index 100%
rename from chromecast/shell/settings/chromecast_settings_zh-TW.xtb
rename to chromecast/app/resources/chromecast_settings_zh-TW.xtb
diff --git a/chromecast/shell/browser/resources/resource_ids b/chromecast/app/resources/resource_ids
similarity index 84%
rename from chromecast/shell/browser/resources/resource_ids
rename to chromecast/app/resources/resource_ids
index 882fd8f..d5b43fcc 100644
--- a/chromecast/shell/browser/resources/resource_ids
+++ b/chromecast/app/resources/resource_ids
@@ -14,12 +14,12 @@
 # range for IDR_ is 1 to 28,671 and the range for IDS_ is 1 to 32,767 and
 # common convention starts practical use of IDs at 100 or 101.
 {
-  "SRCDIR": "../../../..",
+  "SRCDIR": "../..",
 
-  "chromecast/shell/browser/resources/shell_resources.grd": {
+  "app/resources/shell_resources.grd": {
     "includes": [31000],
   },
-  "chromecast/shell/settings/chromecast_settings.grd": {
+  "app/resources/chromecast_settings.grd": {
     "messages": [31500],
   },
 }
diff --git a/chromecast/shell/browser/resources/shell_devtools_discovery_page.html b/chromecast/app/resources/shell_devtools_discovery_page.html
similarity index 100%
rename from chromecast/shell/browser/resources/shell_devtools_discovery_page.html
rename to chromecast/app/resources/shell_devtools_discovery_page.html
diff --git a/chromecast/shell/browser/resources/shell_resources.grd b/chromecast/app/resources/shell_resources.grd
similarity index 100%
rename from chromecast/shell/browser/resources/shell_resources.grd
rename to chromecast/app/resources/shell_resources.grd
diff --git a/chromecast/browser/DEPS b/chromecast/browser/DEPS
new file mode 100644
index 0000000..b1af3630
--- /dev/null
+++ b/chromecast/browser/DEPS
@@ -0,0 +1,8 @@
+include_rules = [
+  # chromecast/browser/ is the top-level main directory for the Chromecast
+  # embedder and can include from all other chromecast/ directories.
+  "+chromecast",
+  "+components/crash",
+  "+content/public/browser",
+  "+media/base",
+]
diff --git a/chromecast/shell/android/DEPS b/chromecast/browser/android/DEPS
similarity index 100%
rename from chromecast/shell/android/DEPS
rename to chromecast/browser/android/DEPS
diff --git a/chromecast/shell/android/apk/AndroidManifest.xml b/chromecast/browser/android/apk/AndroidManifest.xml
similarity index 100%
rename from chromecast/shell/android/apk/AndroidManifest.xml
rename to chromecast/browser/android/apk/AndroidManifest.xml
diff --git a/chromecast/shell/android/apk/res/layout/cast_shell_activity.xml b/chromecast/browser/android/apk/res/layout/cast_shell_activity.xml
similarity index 100%
rename from chromecast/shell/android/apk/res/layout/cast_shell_activity.xml
rename to chromecast/browser/android/apk/res/layout/cast_shell_activity.xml
diff --git a/chromecast/shell/android/apk/res/layout/cast_window_view.xml b/chromecast/browser/android/apk/res/layout/cast_window_view.xml
similarity index 100%
rename from chromecast/shell/android/apk/res/layout/cast_window_view.xml
rename to chromecast/browser/android/apk/res/layout/cast_window_view.xml
diff --git a/chromecast/shell/android/apk/res/mipmap-hdpi/app_icon.png b/chromecast/browser/android/apk/res/mipmap-hdpi/app_icon.png
similarity index 100%
rename from chromecast/shell/android/apk/res/mipmap-hdpi/app_icon.png
rename to chromecast/browser/android/apk/res/mipmap-hdpi/app_icon.png
Binary files differ
diff --git a/chromecast/shell/android/apk/res/mipmap-mdpi/app_icon.png b/chromecast/browser/android/apk/res/mipmap-mdpi/app_icon.png
similarity index 100%
rename from chromecast/shell/android/apk/res/mipmap-mdpi/app_icon.png
rename to chromecast/browser/android/apk/res/mipmap-mdpi/app_icon.png
Binary files differ
diff --git a/chromecast/shell/android/apk/res/mipmap-xhdpi/app_icon.png b/chromecast/browser/android/apk/res/mipmap-xhdpi/app_icon.png
similarity index 100%
rename from chromecast/shell/android/apk/res/mipmap-xhdpi/app_icon.png
rename to chromecast/browser/android/apk/res/mipmap-xhdpi/app_icon.png
Binary files differ
diff --git a/chromecast/shell/android/apk/res/mipmap-xxhdpi/app_icon.png b/chromecast/browser/android/apk/res/mipmap-xxhdpi/app_icon.png
similarity index 100%
rename from chromecast/shell/android/apk/res/mipmap-xxhdpi/app_icon.png
rename to chromecast/browser/android/apk/res/mipmap-xxhdpi/app_icon.png
Binary files differ
diff --git a/chromecast/shell/android/apk/res/values-v17/styles.xml b/chromecast/browser/android/apk/res/values-v17/styles.xml
similarity index 100%
rename from chromecast/shell/android/apk/res/values-v17/styles.xml
rename to chromecast/browser/android/apk/res/values-v17/styles.xml
diff --git a/chromecast/shell/android/apk/res/values/strings.xml b/chromecast/browser/android/apk/res/values/strings.xml
similarity index 100%
rename from chromecast/shell/android/apk/res/values/strings.xml
rename to chromecast/browser/android/apk/res/values/strings.xml
diff --git a/chromecast/shell/android/apk/src/org/chromium/chromecast/shell/CastApplication.java b/chromecast/browser/android/apk/src/org/chromium/chromecast/shell/CastApplication.java
similarity index 100%
rename from chromecast/shell/android/apk/src/org/chromium/chromecast/shell/CastApplication.java
rename to chromecast/browser/android/apk/src/org/chromium/chromecast/shell/CastApplication.java
diff --git a/chromecast/shell/android/apk/src/org/chromium/chromecast/shell/CastBrowserHelper.java b/chromecast/browser/android/apk/src/org/chromium/chromecast/shell/CastBrowserHelper.java
similarity index 100%
rename from chromecast/shell/android/apk/src/org/chromium/chromecast/shell/CastBrowserHelper.java
rename to chromecast/browser/android/apk/src/org/chromium/chromecast/shell/CastBrowserHelper.java
diff --git a/chromecast/shell/android/apk/src/org/chromium/chromecast/shell/CastCrashHandler.java b/chromecast/browser/android/apk/src/org/chromium/chromecast/shell/CastCrashHandler.java
similarity index 100%
rename from chromecast/shell/android/apk/src/org/chromium/chromecast/shell/CastCrashHandler.java
rename to chromecast/browser/android/apk/src/org/chromium/chromecast/shell/CastCrashHandler.java
diff --git a/chromecast/shell/android/apk/src/org/chromium/chromecast/shell/CastCrashUploader.java b/chromecast/browser/android/apk/src/org/chromium/chromecast/shell/CastCrashUploader.java
similarity index 100%
rename from chromecast/shell/android/apk/src/org/chromium/chromecast/shell/CastCrashUploader.java
rename to chromecast/browser/android/apk/src/org/chromium/chromecast/shell/CastCrashUploader.java
diff --git a/chromecast/shell/android/apk/src/org/chromium/chromecast/shell/CastShellActivity.java b/chromecast/browser/android/apk/src/org/chromium/chromecast/shell/CastShellActivity.java
similarity index 100%
rename from chromecast/shell/android/apk/src/org/chromium/chromecast/shell/CastShellActivity.java
rename to chromecast/browser/android/apk/src/org/chromium/chromecast/shell/CastShellActivity.java
diff --git a/chromecast/shell/android/apk/src/org/chromium/chromecast/shell/CastWindowAndroid.java b/chromecast/browser/android/apk/src/org/chromium/chromecast/shell/CastWindowAndroid.java
similarity index 100%
rename from chromecast/shell/android/apk/src/org/chromium/chromecast/shell/CastWindowAndroid.java
rename to chromecast/browser/android/apk/src/org/chromium/chromecast/shell/CastWindowAndroid.java
diff --git a/chromecast/shell/android/apk/src/org/chromium/chromecast/shell/CastWindowManager.java b/chromecast/browser/android/apk/src/org/chromium/chromecast/shell/CastWindowManager.java
similarity index 100%
rename from chromecast/shell/android/apk/src/org/chromium/chromecast/shell/CastWindowManager.java
rename to chromecast/browser/android/apk/src/org/chromium/chromecast/shell/CastWindowManager.java
diff --git a/chromecast/shell/android/apk/src/org/chromium/chromecast/shell/ExternalVideoSurfaceContainer.java b/chromecast/browser/android/apk/src/org/chromium/chromecast/shell/ExternalVideoSurfaceContainer.java
similarity index 100%
rename from chromecast/shell/android/apk/src/org/chromium/chromecast/shell/ExternalVideoSurfaceContainer.java
rename to chromecast/browser/android/apk/src/org/chromium/chromecast/shell/ExternalVideoSurfaceContainer.java
diff --git a/chromecast/shell/browser/android/cast_window_android.cc b/chromecast/browser/android/cast_window_android.cc
similarity index 97%
rename from chromecast/shell/browser/android/cast_window_android.cc
rename to chromecast/browser/android/cast_window_android.cc
index 4b68cb9..439c651 100644
--- a/chromecast/shell/browser/android/cast_window_android.cc
+++ b/chromecast/browser/android/cast_window_android.cc
@@ -2,11 +2,11 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chromecast/shell/browser/android/cast_window_android.h"
+#include "chromecast/browser/android/cast_window_android.h"
 
 #include "base/message_loop/message_loop_proxy.h"
 #include "base/path_service.h"
-#include "chromecast/shell/browser/android/cast_window_manager.h"
+#include "chromecast/browser/android/cast_window_manager.h"
 #include "content/public/browser/devtools_agent_host.h"
 #include "content/public/browser/navigation_controller.h"
 #include "content/public/browser/navigation_entry.h"
diff --git a/chromecast/shell/browser/android/cast_window_android.h b/chromecast/browser/android/cast_window_android.h
similarity index 94%
rename from chromecast/shell/browser/android/cast_window_android.h
rename to chromecast/browser/android/cast_window_android.h
index 5dcc9ba..fec8b39e 100644
--- a/chromecast/shell/browser/android/cast_window_android.h
+++ b/chromecast/browser/android/cast_window_android.h
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CHROMECAST_SHELL_BROWSER_ANDROID_CAST_WINDOW_ANDROID_H_
-#define CHROMECAST_SHELL_BROWSER_ANDROID_CAST_WINDOW_ANDROID_H_
+#ifndef CHROMECAST_BROWSER_ANDROID_CAST_WINDOW_ANDROID_H_
+#define CHROMECAST_BROWSER_ANDROID_CAST_WINDOW_ANDROID_H_
 
 #include <jni.h>
 #include <vector>
@@ -94,4 +94,4 @@
 }  // namespace shell
 }  // namespace chromecast
 
-#endif  // CHROMECAST_SHELL_BROWSER_ANDROID_CAST_WINDOW_ANDROID_H_
+#endif  // CHROMECAST_BROWSER_ANDROID_CAST_WINDOW_ANDROID_H_
diff --git a/chromecast/shell/browser/android/cast_window_manager.cc b/chromecast/browser/android/cast_window_manager.cc
similarity index 87%
rename from chromecast/shell/browser/android/cast_window_manager.cc
rename to chromecast/browser/android/cast_window_manager.cc
index 481eb4bbf..814731c 100644
--- a/chromecast/shell/browser/android/cast_window_manager.cc
+++ b/chromecast/browser/android/cast_window_manager.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chromecast/shell/browser/android/cast_window_manager.h"
+#include "chromecast/browser/android/cast_window_manager.h"
 
 #include <jni.h>
 
@@ -11,13 +11,13 @@
 #include "base/android/scoped_java_ref.h"
 #include "base/bind.h"
 #include "base/lazy_instance.h"
+#include "chromecast/browser/android/cast_window_android.h"
+#include "chromecast/browser/cast_browser_context.h"
+#include "chromecast/browser/cast_browser_main_parts.h"
+#include "chromecast/browser/cast_browser_process.h"
+#include "chromecast/browser/cast_content_browser_client.h"
 #include "chromecast/common/chromecast_config.h"
 #include "chromecast/common/pref_names.h"
-#include "chromecast/shell/browser/android/cast_window_android.h"
-#include "chromecast/shell/browser/cast_browser_context.h"
-#include "chromecast/shell/browser/cast_browser_main_parts.h"
-#include "chromecast/shell/browser/cast_browser_process.h"
-#include "chromecast/shell/browser/cast_content_browser_client.h"
 #include "content/public/browser/browser_thread.h"
 #include "content/public/browser/web_contents.h"
 #include "ipc/ipc_channel.h"
diff --git a/chromecast/shell/browser/android/cast_window_manager.h b/chromecast/browser/android/cast_window_manager.h
similarity index 80%
rename from chromecast/shell/browser/android/cast_window_manager.h
rename to chromecast/browser/android/cast_window_manager.h
index a7c2e0a..8494951 100644
--- a/chromecast/shell/browser/android/cast_window_manager.h
+++ b/chromecast/browser/android/cast_window_manager.h
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CHROMECAST_SHELL_BROWSER_ANDROID_CAST_WINDOW_MANAGER_H_
-#define CHROMECAST_SHELL_BROWSER_ANDROID_CAST_WINDOW_MANAGER_H_
+#ifndef CHROMECAST_BROWSER_ANDROID_CAST_WINDOW_MANAGER_H_
+#define CHROMECAST_BROWSER_ANDROID_CAST_WINDOW_MANAGER_H_
 
 #include <jni.h>
 
@@ -32,4 +32,4 @@
 }  // namespace shell
 }  // namespace chromecast
 
-#endif  // CHROMECAST_SHELL_BROWSER_ANDROID_CAST_WINDOW_MANAGER_H_
+#endif  // CHROMECAST_BROWSER_ANDROID_CAST_WINDOW_MANAGER_H_
diff --git a/chromecast/shell/browser/android/external_video_surface_container_impl.cc b/chromecast/browser/android/external_video_surface_container_impl.cc
similarity index 97%
rename from chromecast/shell/browser/android/external_video_surface_container_impl.cc
rename to chromecast/browser/android/external_video_surface_container_impl.cc
index 789bff5..5dbb144 100644
--- a/chromecast/shell/browser/android/external_video_surface_container_impl.cc
+++ b/chromecast/browser/android/external_video_surface_container_impl.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chromecast/shell/browser/android/external_video_surface_container_impl.h"
+#include "chromecast/browser/android/external_video_surface_container_impl.h"
 
 #include "base/android/jni_android.h"
 #include "content/public/browser/android/content_view_core.h"
diff --git a/chromecast/shell/browser/android/external_video_surface_container_impl.h b/chromecast/browser/android/external_video_surface_container_impl.h
similarity index 87%
rename from chromecast/shell/browser/android/external_video_surface_container_impl.h
rename to chromecast/browser/android/external_video_surface_container_impl.h
index 04edd26..b05b188 100644
--- a/chromecast/shell/browser/android/external_video_surface_container_impl.h
+++ b/chromecast/browser/android/external_video_surface_container_impl.h
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CHROMECAST_SHELL_BROWSER_ANDROID_EXTERNAL_VIDEO_SURFACE_CONTAINER_IMPL_H_
-#define CHROMECAST_SHELL_BROWSER_ANDROID_EXTERNAL_VIDEO_SURFACE_CONTAINER_IMPL_H_
+#ifndef CHROMECAST_BROWSER_ANDROID_EXTERNAL_VIDEO_SURFACE_CONTAINER_IMPL_H_
+#define CHROMECAST_BROWSER_ANDROID_EXTERNAL_VIDEO_SURFACE_CONTAINER_IMPL_H_
 
 #include <jni.h>
 
@@ -54,4 +54,4 @@
 }  // namespace shell
 }  // namespace chromecast
 
-#endif  // CHROMECAST_SHELL_BROWSER_ANDROID_EXTERNAL_VIDEO_SURFACE_CONTAINER_IMPL_H_
+#endif  // CHROMECAST_BROWSER_ANDROID_EXTERNAL_VIDEO_SURFACE_CONTAINER_IMPL_H_
diff --git a/chromecast/shell/browser/cast_browser_context.cc b/chromecast/browser/cast_browser_context.cc
similarity index 95%
rename from chromecast/shell/browser/cast_browser_context.cc
rename to chromecast/browser/cast_browser_context.cc
index e3d3e75..ed19a05e 100644
--- a/chromecast/shell/browser/cast_browser_context.cc
+++ b/chromecast/browser/cast_browser_context.cc
@@ -2,15 +2,15 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chromecast/shell/browser/cast_browser_context.h"
+#include "chromecast/browser/cast_browser_context.h"
 
 #include "base/command_line.h"
 #include "base/files/file_util.h"
 #include "base/macros.h"
 #include "base/path_service.h"
+#include "chromecast/browser/cast_download_manager_delegate.h"
+#include "chromecast/browser/url_request_context_factory.h"
 #include "chromecast/common/cast_paths.h"
-#include "chromecast/shell/browser/cast_download_manager_delegate.h"
-#include "chromecast/shell/browser/url_request_context_factory.h"
 #include "content/public/browser/browser_thread.h"
 #include "content/public/browser/resource_context.h"
 #include "content/public/browser/storage_partition.h"
diff --git a/chromecast/shell/browser/cast_browser_context.h b/chromecast/browser/cast_browser_context.h
similarity index 93%
rename from chromecast/shell/browser/cast_browser_context.h
rename to chromecast/browser/cast_browser_context.h
index b331043..931d886 100644
--- a/chromecast/shell/browser/cast_browser_context.h
+++ b/chromecast/browser/cast_browser_context.h
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CHROMECAST_SHELL_BROWSER_CAST_BROWSER_CONTEXT_H_
-#define CHROMECAST_SHELL_BROWSER_CAST_BROWSER_CONTEXT_H_
+#ifndef CHROMECAST_BROWSER_CAST_BROWSER_CONTEXT_H_
+#define CHROMECAST_BROWSER_CAST_BROWSER_CONTEXT_H_
 
 #include "base/files/file_path.h"
 #include "base/macros.h"
@@ -64,4 +64,4 @@
 }  // namespace shell
 }  // namespace chromecast
 
-#endif  // CHROMECAST_SHELL_BROWSER_CAST_BROWSER_CONTEXT_H_
+#endif  // CHROMECAST_BROWSER_CAST_BROWSER_CONTEXT_H_
diff --git a/chromecast/shell/browser/cast_browser_main_parts.cc b/chromecast/browser/cast_browser_main_parts.cc
similarity index 90%
rename from chromecast/shell/browser/cast_browser_main_parts.cc
rename to chromecast/browser/cast_browser_main_parts.cc
index ec3e2e9b..eedca16 100644
--- a/chromecast/shell/browser/cast_browser_main_parts.cc
+++ b/chromecast/browser/cast_browser_main_parts.cc
@@ -2,22 +2,22 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chromecast/shell/browser/cast_browser_main_parts.h"
+#include "chromecast/browser/cast_browser_main_parts.h"
 
 #include "base/command_line.h"
 #include "base/message_loop/message_loop.h"
 #include "base/prefs/pref_registry_simple.h"
+#include "chromecast/browser/cast_browser_context.h"
+#include "chromecast/browser/cast_browser_process.h"
+#include "chromecast/browser/devtools/remote_debugging_server.h"
+#include "chromecast/browser/metrics/cast_metrics_prefs.h"
+#include "chromecast/browser/metrics/cast_metrics_service_client.h"
+#include "chromecast/browser/service/cast_service.h"
+#include "chromecast/browser/url_request_context_factory.h"
+#include "chromecast/browser/webui/webui_cast.h"
 #include "chromecast/common/chromecast_config.h"
-#include "chromecast/metrics/cast_metrics_prefs.h"
-#include "chromecast/metrics/cast_metrics_service_client.h"
 #include "chromecast/net/network_change_notifier_cast.h"
 #include "chromecast/net/network_change_notifier_factory_cast.h"
-#include "chromecast/service/cast_service.h"
-#include "chromecast/shell/browser/cast_browser_context.h"
-#include "chromecast/shell/browser/cast_browser_process.h"
-#include "chromecast/shell/browser/devtools/remote_debugging_server.h"
-#include "chromecast/shell/browser/url_request_context_factory.h"
-#include "chromecast/shell/browser/webui/webui_cast.h"
 #include "content/public/browser/browser_thread.h"
 #include "content/public/common/content_switches.h"
 #include "media/base/media_switches.h"
diff --git a/chromecast/shell/browser/cast_browser_main_parts.h b/chromecast/browser/cast_browser_main_parts.h
similarity index 88%
rename from chromecast/shell/browser/cast_browser_main_parts.h
rename to chromecast/browser/cast_browser_main_parts.h
index b109f13..3220faf8 100644
--- a/chromecast/shell/browser/cast_browser_main_parts.h
+++ b/chromecast/browser/cast_browser_main_parts.h
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CHROMECAST_SHELL_BROWSER_CAST_BROWSER_MAIN_PARTS_H_
-#define CHROMECAST_SHELL_BROWSER_CAST_BROWSER_MAIN_PARTS_H_
+#ifndef CHROMECAST_BROWSER_CAST_BROWSER_MAIN_PARTS_H_
+#define CHROMECAST_BROWSER_CAST_BROWSER_MAIN_PARTS_H_
 
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
@@ -42,4 +42,4 @@
 }  // namespace shell
 }  // namespace chromecast
 
-#endif  // CHROMECAST_SHELL_BROWSER_CAST_BROWSER_MAIN_PARTS_H_
+#endif  // CHROMECAST_BROWSER_CAST_BROWSER_MAIN_PARTS_H_
diff --git a/chromecast/shell/browser/cast_browser_process.cc b/chromecast/browser/cast_browser_process.cc
similarity index 85%
rename from chromecast/shell/browser/cast_browser_process.cc
rename to chromecast/browser/cast_browser_process.cc
index f89e6956..03377d4 100644
--- a/chromecast/shell/browser/cast_browser_process.cc
+++ b/chromecast/browser/cast_browser_process.cc
@@ -2,13 +2,13 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chromecast/shell/browser/cast_browser_process.h"
+#include "chromecast/browser/cast_browser_process.h"
 
 #include "base/logging.h"
-#include "chromecast/metrics/cast_metrics_service_client.h"
-#include "chromecast/service/cast_service.h"
-#include "chromecast/shell/browser/cast_browser_context.h"
-#include "chromecast/shell/browser/devtools/remote_debugging_server.h"
+#include "chromecast/browser/cast_browser_context.h"
+#include "chromecast/browser/devtools/remote_debugging_server.h"
+#include "chromecast/browser/metrics/cast_metrics_service_client.h"
+#include "chromecast/browser/service/cast_service.h"
 
 #if defined(OS_ANDROID)
 #include "components/crash/browser/crash_dump_manager_android.h"
diff --git a/chromecast/shell/browser/cast_browser_process.h b/chromecast/browser/cast_browser_process.h
similarity index 91%
rename from chromecast/shell/browser/cast_browser_process.h
rename to chromecast/browser/cast_browser_process.h
index ba625ac1..a1fe4f85 100644
--- a/chromecast/shell/browser/cast_browser_process.h
+++ b/chromecast/browser/cast_browser_process.h
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CHROMECAST_SHELL_BROWSER_CAST_BROWSER_PROCESS_H_
-#define CHROMECAST_SHELL_BROWSER_CAST_BROWSER_PROCESS_H_
+#ifndef CHROMECAST_BROWSER_CAST_BROWSER_PROCESS_H_
+#define CHROMECAST_BROWSER_CAST_BROWSER_PROCESS_H_
 
 #include "base/macros.h"
 #include "base/memory/scoped_ptr.h"
@@ -66,4 +66,4 @@
 }  // namespace shell
 }  // namespace chromecast
 
-#endif  // CHROMECAST_SHELL_BROWSER_CAST_BROWSER_PROCESS_H_
+#endif  // CHROMECAST_BROWSER_CAST_BROWSER_PROCESS_H_
diff --git a/chromecast/shell/browser/cast_content_browser_client.cc b/chromecast/browser/cast_content_browser_client.cc
similarity index 92%
rename from chromecast/shell/browser/cast_content_browser_client.cc
rename to chromecast/browser/cast_content_browser_client.cc
index ad1ea3f..392072b 100644
--- a/chromecast/shell/browser/cast_content_browser_client.cc
+++ b/chromecast/browser/cast_content_browser_client.cc
@@ -2,21 +2,21 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chromecast/shell/browser/cast_content_browser_client.h"
+#include "chromecast/browser/cast_content_browser_client.h"
 
 #include "base/command_line.h"
 #include "base/files/scoped_file.h"
 #include "base/i18n/rtl.h"
 #include "base/path_service.h"
+#include "chromecast/browser/cast_browser_context.h"
+#include "chromecast/browser/cast_browser_main_parts.h"
+#include "chromecast/browser/cast_browser_process.h"
+#include "chromecast/browser/cast_network_delegate.h"
+#include "chromecast/browser/devtools/cast_dev_tools_delegate.h"
+#include "chromecast/browser/geolocation/cast_access_token_store.h"
+#include "chromecast/browser/url_request_context_factory.h"
 #include "chromecast/common/cast_paths.h"
 #include "chromecast/common/global_descriptors.h"
-#include "chromecast/shell/browser/cast_browser_context.h"
-#include "chromecast/shell/browser/cast_browser_main_parts.h"
-#include "chromecast/shell/browser/cast_browser_process.h"
-#include "chromecast/shell/browser/cast_network_delegate.h"
-#include "chromecast/shell/browser/devtools/cast_dev_tools_delegate.h"
-#include "chromecast/shell/browser/geolocation/cast_access_token_store.h"
-#include "chromecast/shell/browser/url_request_context_factory.h"
 #include "components/crash/app/breakpad_linux.h"
 #include "content/public/browser/browser_thread.h"
 #include "content/public/browser/certificate_request_result_type.h"
@@ -28,7 +28,7 @@
 #include "net/ssl/ssl_cert_request_info.h"
 
 #if defined(OS_ANDROID)
-#include "chromecast/shell/browser/android/external_video_surface_container_impl.h"
+#include "chromecast/browser/android/external_video_surface_container_impl.h"
 #endif  // defined(OS_ANDROID)
 
 #if defined(OS_ANDROID)
@@ -148,7 +148,6 @@
 void CastContentBrowserClient::SelectClientCertificate(
     int render_process_id,
     int render_view_id,
-    const net::HttpNetworkSession* network_session,
     net::SSLCertRequestInfo* cert_request_info,
     const base::Callback<void(net::X509Certificate*)>& callback) {
   GURL requesting_url("https://" + cert_request_info->host_and_port.ToString());
diff --git a/chromecast/shell/browser/cast_content_browser_client.h b/chromecast/browser/cast_content_browser_client.h
similarity index 93%
rename from chromecast/shell/browser/cast_content_browser_client.h
rename to chromecast/browser/cast_content_browser_client.h
index 30035a0..00ae0722 100644
--- a/chromecast/shell/browser/cast_content_browser_client.h
+++ b/chromecast/browser/cast_content_browser_client.h
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CHROMECAST_SHELL_BROWSER_CAST_CONTENT_BROWSER_CLIENT_H_
-#define CHROMECAST_SHELL_BROWSER_CAST_CONTENT_BROWSER_CLIENT_H_
+#ifndef CHROMECAST_BROWSER_CAST_CONTENT_BROWSER_CLIENT_H_
+#define CHROMECAST_BROWSER_CAST_CONTENT_BROWSER_CLIENT_H_
 
 #include "base/macros.h"
 #include "base/memory/scoped_ptr.h"
@@ -53,7 +53,6 @@
   virtual void SelectClientCertificate(
       int render_process_id,
       int render_frame_id,
-      const net::HttpNetworkSession* network_session,
       net::SSLCertRequestInfo* cert_request_info,
       const base::Callback<void(net::X509Certificate*)>& callback) override;
   virtual bool CanCreateWindow(
@@ -95,4 +94,4 @@
 }  // namespace shell
 }  // namespace chromecast
 
-#endif  // CHROMECAST_SHELL_BROWSER_CAST_CONTENT_BROWSER_CLIENT_H_
+#endif  // CHROMECAST_BROWSER_CAST_CONTENT_BROWSER_CLIENT_H_
diff --git a/chromecast/shell/browser/cast_download_manager_delegate.cc b/chromecast/browser/cast_download_manager_delegate.cc
similarity index 95%
rename from chromecast/shell/browser/cast_download_manager_delegate.cc
rename to chromecast/browser/cast_download_manager_delegate.cc
index edc35f0..9817fcb3 100644
--- a/chromecast/shell/browser/cast_download_manager_delegate.cc
+++ b/chromecast/browser/cast_download_manager_delegate.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chromecast/shell/browser/cast_download_manager_delegate.h"
+#include "chromecast/browser/cast_download_manager_delegate.h"
 
 #include "base/files/file_path.h"
 #include "base/logging.h"
diff --git a/chromecast/shell/browser/cast_download_manager_delegate.h b/chromecast/browser/cast_download_manager_delegate.h
similarity index 85%
rename from chromecast/shell/browser/cast_download_manager_delegate.h
rename to chromecast/browser/cast_download_manager_delegate.h
index d18e4899..d77e07f 100644
--- a/chromecast/shell/browser/cast_download_manager_delegate.h
+++ b/chromecast/browser/cast_download_manager_delegate.h
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CHROMECAST_SHELL_BROWSER_CAST_DOWNLOAD_MANAGER_DELEGATE_H_
-#define CHROMECAST_SHELL_BROWSER_CAST_DOWNLOAD_MANAGER_DELEGATE_H_
+#ifndef CHROMECAST_BROWSER_CAST_DOWNLOAD_MANAGER_DELEGATE_H_
+#define CHROMECAST_BROWSER_CAST_DOWNLOAD_MANAGER_DELEGATE_H_
 
 #include "base/macros.h"
 #include "content/public/browser/download_manager_delegate.h"
@@ -38,4 +38,4 @@
 }  // namespace shell
 }  // namespace chromecast
 
-#endif  // CHROMECAST_SHELL_BROWSER_CAST_DOWNLOAD_MANAGER_DELEGATE_H_
\ No newline at end of file
+#endif  // CHROMECAST_BROWSER_CAST_DOWNLOAD_MANAGER_DELEGATE_H_
\ No newline at end of file
diff --git a/chromecast/shell/browser/cast_http_user_agent_settings.cc b/chromecast/browser/cast_http_user_agent_settings.cc
similarity index 91%
rename from chromecast/shell/browser/cast_http_user_agent_settings.cc
rename to chromecast/browser/cast_http_user_agent_settings.cc
index e4a1537d..1cbf1c6 100644
--- a/chromecast/shell/browser/cast_http_user_agent_settings.cc
+++ b/chromecast/browser/cast_http_user_agent_settings.cc
@@ -2,10 +2,10 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chromecast/shell/browser/cast_http_user_agent_settings.h"
+#include "chromecast/browser/cast_http_user_agent_settings.h"
 
 #include "base/logging.h"
-#include "chromecast/shell/common/cast_content_client.h"
+#include "chromecast/common/cast_content_client.h"
 #include "content/public/browser/browser_thread.h"
 #include "grit/chromecast_settings.h"
 #include "net/http/http_util.h"
diff --git a/chromecast/shell/browser/cast_http_user_agent_settings.h b/chromecast/browser/cast_http_user_agent_settings.h
similarity index 80%
rename from chromecast/shell/browser/cast_http_user_agent_settings.h
rename to chromecast/browser/cast_http_user_agent_settings.h
index 7cf4bb263..90a432b 100644
--- a/chromecast/shell/browser/cast_http_user_agent_settings.h
+++ b/chromecast/browser/cast_http_user_agent_settings.h
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CHROMECAST_SHELL_BROWSER_CAST_HTTP_USER_AGENT_SETTINGS_H_
-#define CHROMECAST_SHELL_BROWSER_CAST_HTTP_USER_AGENT_SETTINGS_H_
+#ifndef CHROMECAST_BROWSER_CAST_HTTP_USER_AGENT_SETTINGS_H_
+#define CHROMECAST_BROWSER_CAST_HTTP_USER_AGENT_SETTINGS_H_
 
 #include "base/compiler_specific.h"
 #include "base/macros.h"
@@ -30,4 +30,4 @@
 
 }  // namespace shell
 }  // namespace chromecast
-#endif  // CHROMECAST_SHELL_BROWSER_CAST_HTTP_USER_AGENT_SETTINGS_H_
+#endif  // CHROMECAST_BROWSER_CAST_HTTP_USER_AGENT_SETTINGS_H_
diff --git a/chromecast/shell/browser/cast_network_delegate.cc b/chromecast/browser/cast_network_delegate.cc
similarity index 94%
rename from chromecast/shell/browser/cast_network_delegate.cc
rename to chromecast/browser/cast_network_delegate.cc
index 1ee7e71..ff0fcc9 100644
--- a/chromecast/shell/browser/cast_network_delegate.cc
+++ b/chromecast/browser/cast_network_delegate.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chromecast/shell/browser/cast_network_delegate.h"
+#include "chromecast/browser/cast_network_delegate.h"
 
 #include "base/command_line.h"
 #include "base/files/file_path.h"
diff --git a/chromecast/shell/browser/cast_network_delegate.h b/chromecast/browser/cast_network_delegate.h
similarity index 83%
rename from chromecast/shell/browser/cast_network_delegate.h
rename to chromecast/browser/cast_network_delegate.h
index b43bb64..982237f 100644
--- a/chromecast/shell/browser/cast_network_delegate.h
+++ b/chromecast/browser/cast_network_delegate.h
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CHROMECAST_SHELL_BROWSER_CAST_NETWORK_DELEGATE_H_
-#define CHROMECAST_SHELL_BROWSER_CAST_NETWORK_DELEGATE_H_
+#ifndef CHROMECAST_BROWSER_CAST_NETWORK_DELEGATE_H_
+#define CHROMECAST_BROWSER_CAST_NETWORK_DELEGATE_H_
 
 #include "net/base/network_delegate.h"
 
@@ -37,4 +37,4 @@
 }  // namespace shell
 }  // namespace chromecast
 
-#endif  // CHROMECAST_SHELL_BROWSER_CAST_NETWORK_DELEGATE_H_
+#endif  // CHROMECAST_BROWSER_CAST_NETWORK_DELEGATE_H_
diff --git a/chromecast/shell/browser/cast_network_delegate_simple.cc b/chromecast/browser/cast_network_delegate_simple.cc
similarity index 93%
rename from chromecast/shell/browser/cast_network_delegate_simple.cc
rename to chromecast/browser/cast_network_delegate_simple.cc
index 60a42c9..14aabf5d 100644
--- a/chromecast/shell/browser/cast_network_delegate_simple.cc
+++ b/chromecast/browser/cast_network_delegate_simple.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chromecast/shell/browser/cast_network_delegate.h"
+#include "chromecast/browser/cast_network_delegate.h"
 
 #include "base/macros.h"
 #include "url/gurl.h"
diff --git a/chromecast/shell/browser/devtools/cast_dev_tools_delegate.cc b/chromecast/browser/devtools/cast_dev_tools_delegate.cc
similarity index 98%
rename from chromecast/shell/browser/devtools/cast_dev_tools_delegate.cc
rename to chromecast/browser/devtools/cast_dev_tools_delegate.cc
index 5a0a28e..aaf97bf 100644
--- a/chromecast/shell/browser/devtools/cast_dev_tools_delegate.cc
+++ b/chromecast/browser/devtools/cast_dev_tools_delegate.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chromecast/shell/browser/devtools/cast_dev_tools_delegate.h"
+#include "chromecast/browser/devtools/cast_dev_tools_delegate.h"
 
 #include "base/files/file_path.h"
 #include "base/macros.h"
diff --git a/chromecast/shell/browser/devtools/cast_dev_tools_delegate.h b/chromecast/browser/devtools/cast_dev_tools_delegate.h
similarity index 90%
rename from chromecast/shell/browser/devtools/cast_dev_tools_delegate.h
rename to chromecast/browser/devtools/cast_dev_tools_delegate.h
index 98c45db..1816070 100644
--- a/chromecast/shell/browser/devtools/cast_dev_tools_delegate.h
+++ b/chromecast/browser/devtools/cast_dev_tools_delegate.h
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CHROMECAST_SHELL_BROWSER_DEVTOOLS_CAST_DEV_TOOLS_DELEGATE_H_
-#define CHROMECAST_SHELL_BROWSER_DEVTOOLS_CAST_DEV_TOOLS_DELEGATE_H_
+#ifndef CHROMECAST_BROWSER_DEVTOOLS_CAST_DEV_TOOLS_DELEGATE_H_
+#define CHROMECAST_BROWSER_DEVTOOLS_CAST_DEV_TOOLS_DELEGATE_H_
 
 #include "content/public/browser/devtools_http_handler_delegate.h"
 #include "content/public/browser/devtools_manager_delegate.h"
@@ -64,4 +64,4 @@
 }  // namespace shell
 }  // namespace chromecast
 
-#endif  // CHROMECAST_SHELL_BROWSER_DEVTOOLS_CAST_DEV_TOOLS_DELEGATE_H_
+#endif  // CHROMECAST_BROWSER_DEVTOOLS_CAST_DEV_TOOLS_DELEGATE_H_
diff --git a/chromecast/shell/browser/devtools/remote_debugging_server.cc b/chromecast/browser/devtools/remote_debugging_server.cc
similarity index 96%
rename from chromecast/shell/browser/devtools/remote_debugging_server.cc
rename to chromecast/browser/devtools/remote_debugging_server.cc
index 3587ed1d..2084b07 100644
--- a/chromecast/shell/browser/devtools/remote_debugging_server.cc
+++ b/chromecast/browser/devtools/remote_debugging_server.cc
@@ -2,16 +2,16 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chromecast/shell/browser/devtools/remote_debugging_server.h"
+#include "chromecast/browser/devtools/remote_debugging_server.h"
 
 #include "base/bind.h"
 #include "base/bind_helpers.h"
 #include "base/command_line.h"
 #include "base/files/file_path.h"
 #include "base/strings/stringprintf.h"
+#include "chromecast/browser/devtools/cast_dev_tools_delegate.h"
 #include "chromecast/common/chromecast_config.h"
 #include "chromecast/common/pref_names.h"
-#include "chromecast/shell/browser/devtools/cast_dev_tools_delegate.h"
 #include "content/public/browser/browser_context.h"
 #include "content/public/browser/browser_thread.h"
 #include "content/public/browser/devtools_http_handler.h"
diff --git a/chromecast/shell/browser/devtools/remote_debugging_server.h b/chromecast/browser/devtools/remote_debugging_server.h
similarity index 79%
rename from chromecast/shell/browser/devtools/remote_debugging_server.h
rename to chromecast/browser/devtools/remote_debugging_server.h
index f4351fa..3248bb77 100644
--- a/chromecast/shell/browser/devtools/remote_debugging_server.h
+++ b/chromecast/browser/devtools/remote_debugging_server.h
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CHROMECAST_SHELL_BROWSER_DEVTOOLS_REMOTE_DEBUGGING_SERVER_H_
-#define CHROMECAST_SHELL_BROWSER_DEVTOOLS_REMOTE_DEBUGGING_SERVER_H_
+#ifndef CHROMECAST_BROWSER_DEVTOOLS_REMOTE_DEBUGGING_SERVER_H_
+#define CHROMECAST_BROWSER_DEVTOOLS_REMOTE_DEBUGGING_SERVER_H_
 
 #include "base/prefs/pref_member.h"
 
@@ -38,4 +38,4 @@
 }  // namespace shell
 }  // namespace chromecast
 
-#endif  // CHROMECAST_SHELL_BROWSER_DEVTOOLS_REMOTE_DEBUGGING_SERVER_H_
+#endif  // CHROMECAST_BROWSER_DEVTOOLS_REMOTE_DEBUGGING_SERVER_H_
diff --git a/chromecast/shell/browser/devtools/remote_debugging_server_simple.cc b/chromecast/browser/devtools/remote_debugging_server_simple.cc
similarity index 82%
rename from chromecast/shell/browser/devtools/remote_debugging_server_simple.cc
rename to chromecast/browser/devtools/remote_debugging_server_simple.cc
index 40d7a2c..3c5f5b7 100644
--- a/chromecast/shell/browser/devtools/remote_debugging_server_simple.cc
+++ b/chromecast/browser/devtools/remote_debugging_server_simple.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chromecast/shell/browser/devtools/remote_debugging_server.h"
+#include "chromecast/browser/devtools/remote_debugging_server.h"
 
 namespace chromecast {
 namespace shell {
diff --git a/chromecast/shell/browser/geolocation/cast_access_token_store.cc b/chromecast/browser/geolocation/cast_access_token_store.cc
similarity index 87%
rename from chromecast/shell/browser/geolocation/cast_access_token_store.cc
rename to chromecast/browser/geolocation/cast_access_token_store.cc
index cae51df..54624f2 100644
--- a/chromecast/shell/browser/geolocation/cast_access_token_store.cc
+++ b/chromecast/browser/geolocation/cast_access_token_store.cc
@@ -2,11 +2,11 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chromecast/shell/browser/geolocation/cast_access_token_store.h"
+#include "chromecast/browser/geolocation/cast_access_token_store.h"
 
 #include "base/callback_helpers.h"
-#include "chromecast/shell/browser/cast_browser_context.h"
-#include "chromecast/shell/browser/cast_content_browser_client.h"
+#include "chromecast/browser/cast_browser_context.h"
+#include "chromecast/browser/cast_content_browser_client.h"
 #include "content/public/browser/browser_thread.h"
 #include "content/public/common/content_client.h"
 
diff --git a/chromecast/shell/browser/geolocation/cast_access_token_store.h b/chromecast/browser/geolocation/cast_access_token_store.h
similarity index 84%
rename from chromecast/shell/browser/geolocation/cast_access_token_store.h
rename to chromecast/browser/geolocation/cast_access_token_store.h
index 215aae3..02bbc7cb 100644
--- a/chromecast/shell/browser/geolocation/cast_access_token_store.h
+++ b/chromecast/browser/geolocation/cast_access_token_store.h
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CHROMECAST_SHELL_BROWSER_GEOLOCATION_CAST_ACCESS_TOKEN_STORE_H_
-#define CHROMECAST_SHELL_BROWSER_GEOLOCATION_CAST_ACCESS_TOKEN_STORE_H_
+#ifndef CHROMECAST_BROWSER_GEOLOCATION_CAST_ACCESS_TOKEN_STORE_H_
+#define CHROMECAST_BROWSER_GEOLOCATION_CAST_ACCESS_TOKEN_STORE_H_
 
 #include "base/macros.h"
 #include "content/public/browser/access_token_store.h"
@@ -44,4 +44,4 @@
 }  // namespace shell
 }  // namespace chromecast
 
-#endif  // CHROMECAST_SHELL_BROWSER_GEOLOCATION_CAST_ACCESS_TOKEN_STORE_H_
+#endif  // CHROMECAST_BROWSER_GEOLOCATION_CAST_ACCESS_TOKEN_STORE_H_
diff --git a/chromecast/metrics/DEPS b/chromecast/browser/metrics/DEPS
similarity index 60%
rename from chromecast/metrics/DEPS
rename to chromecast/browser/metrics/DEPS
index e5585bf..d9ef433 100644
--- a/chromecast/metrics/DEPS
+++ b/chromecast/browser/metrics/DEPS
@@ -1,4 +1,3 @@
 include_rules = [
   "+components/metrics",
-  "+content/public/browser",
 ]
diff --git a/chromecast/metrics/OWNERS b/chromecast/browser/metrics/OWNERS
similarity index 100%
rename from chromecast/metrics/OWNERS
rename to chromecast/browser/metrics/OWNERS
diff --git a/chromecast/metrics/cast_metrics_prefs.cc b/chromecast/browser/metrics/cast_metrics_prefs.cc
similarity index 78%
rename from chromecast/metrics/cast_metrics_prefs.cc
rename to chromecast/browser/metrics/cast_metrics_prefs.cc
index 95d145b..b53ed80 100644
--- a/chromecast/metrics/cast_metrics_prefs.cc
+++ b/chromecast/browser/metrics/cast_metrics_prefs.cc
@@ -2,9 +2,9 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chromecast/metrics/cast_metrics_prefs.h"
+#include "chromecast/browser/metrics/cast_metrics_prefs.h"
 
-#include "chromecast/metrics/cast_stability_metrics_provider.h"
+#include "chromecast/browser/metrics/cast_stability_metrics_provider.h"
 #include "components/metrics/metrics_service.h"
 
 namespace chromecast {
diff --git a/chromecast/metrics/cast_metrics_prefs.h b/chromecast/browser/metrics/cast_metrics_prefs.h
similarity index 66%
rename from chromecast/metrics/cast_metrics_prefs.h
rename to chromecast/browser/metrics/cast_metrics_prefs.h
index ff7a973c..22451241 100644
--- a/chromecast/metrics/cast_metrics_prefs.h
+++ b/chromecast/browser/metrics/cast_metrics_prefs.h
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CHROMECAST_METRICS_CAST_METRICS_PREFS_H_
-#define CHROMECAST_METRICS_CAST_METRICS_PREFS_H_
+#ifndef CHROMECAST_BROWSER_METRICS_CAST_METRICS_PREFS_H_
+#define CHROMECAST_BROWSER_METRICS_CAST_METRICS_PREFS_H_
 
 class PrefRegistrySimple;
 
@@ -15,4 +15,4 @@
 }  // namespace metrics
 }  // namespace chromecast
 
-#endif  // CHROMECAST_METRICS_CAST_METRICS_PREFS_H_
+#endif  // CHROMECAST_BROWSER_METRICS_CAST_METRICS_PREFS_H_
diff --git a/chromecast/metrics/cast_metrics_service_client.cc b/chromecast/browser/metrics/cast_metrics_service_client.cc
similarity index 96%
rename from chromecast/metrics/cast_metrics_service_client.cc
rename to chromecast/browser/metrics/cast_metrics_service_client.cc
index 5e28a57..db12520 100644
--- a/chromecast/metrics/cast_metrics_service_client.cc
+++ b/chromecast/browser/metrics/cast_metrics_service_client.cc
@@ -2,14 +2,14 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chromecast/metrics/cast_metrics_service_client.h"
+#include "chromecast/browser/metrics/cast_metrics_service_client.h"
 
 #include "base/command_line.h"
 #include "base/i18n/rtl.h"
+#include "chromecast/browser/metrics/cast_stability_metrics_provider.h"
+#include "chromecast/browser/metrics/platform_metrics_providers.h"
 #include "chromecast/common/chromecast_config.h"
 #include "chromecast/common/chromecast_switches.h"
-#include "chromecast/metrics/cast_stability_metrics_provider.h"
-#include "chromecast/metrics/platform_metrics_providers.h"
 #include "components/metrics/client_info.h"
 #include "components/metrics/gpu/gpu_metrics_provider.h"
 #include "components/metrics/metrics_provider.h"
diff --git a/chromecast/metrics/cast_metrics_service_client.h b/chromecast/browser/metrics/cast_metrics_service_client.h
similarity index 92%
rename from chromecast/metrics/cast_metrics_service_client.h
rename to chromecast/browser/metrics/cast_metrics_service_client.h
index 9f5997a8..605c91c 100644
--- a/chromecast/metrics/cast_metrics_service_client.h
+++ b/chromecast/browser/metrics/cast_metrics_service_client.h
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CHROMECAST_METRICS_CAST_METRICS_SERVICE_CLIENT_H_
-#define CHROMECAST_METRICS_CAST_METRICS_SERVICE_CLIENT_H_
+#ifndef CHROMECAST_BROWSER_METRICS_CAST_METRICS_SERVICE_CLIENT_H_
+#define CHROMECAST_BROWSER_METRICS_CAST_METRICS_SERVICE_CLIENT_H_
 
 #include <string>
 
@@ -80,4 +80,4 @@
 }  // namespace metrics
 }  // namespace chromecast
 
-#endif  // CHROMECAST_METRICS_CAST_METRICS_SERVICE_CLIENT_H_
+#endif  // CHROMECAST_BROWSER_METRICS_CAST_METRICS_SERVICE_CLIENT_H_
diff --git a/chromecast/metrics/cast_metrics_service_client_unittest.cc b/chromecast/browser/metrics/cast_metrics_service_client_unittest.cc
similarity index 94%
rename from chromecast/metrics/cast_metrics_service_client_unittest.cc
rename to chromecast/browser/metrics/cast_metrics_service_client_unittest.cc
index 5b22f09..3153786 100644
--- a/chromecast/metrics/cast_metrics_service_client_unittest.cc
+++ b/chromecast/browser/metrics/cast_metrics_service_client_unittest.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chromecast/metrics/cast_metrics_service_client.h"
+#include "chromecast/browser/metrics/cast_metrics_service_client.h"
 
 #include "base/macros.h"
 #include "base/memory/scoped_ptr.h"
diff --git a/chromecast/metrics/cast_stability_metrics_provider.cc b/chromecast/browser/metrics/cast_stability_metrics_provider.cc
similarity index 97%
rename from chromecast/metrics/cast_stability_metrics_provider.cc
rename to chromecast/browser/metrics/cast_stability_metrics_provider.cc
index 7242cf4..a7258bf 100644
--- a/chromecast/metrics/cast_stability_metrics_provider.cc
+++ b/chromecast/browser/metrics/cast_stability_metrics_provider.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chromecast/metrics/cast_stability_metrics_provider.h"
+#include "chromecast/browser/metrics/cast_stability_metrics_provider.h"
 
 #include <vector>
 
@@ -11,9 +11,9 @@
 #include "base/metrics/sparse_histogram.h"
 #include "base/prefs/pref_registry_simple.h"
 #include "base/prefs/pref_service.h"
+#include "chromecast/browser/metrics/cast_metrics_service_client.h"
 #include "chromecast/common/chromecast_config.h"
 #include "chromecast/common/pref_names.h"
-#include "chromecast/metrics/cast_metrics_service_client.h"
 #include "components/metrics/proto/system_profile.pb.h"
 #include "content/public/browser/child_process_data.h"
 #include "content/public/browser/navigation_controller.h"
diff --git a/chromecast/metrics/cast_stability_metrics_provider.h b/chromecast/browser/metrics/cast_stability_metrics_provider.h
similarity index 91%
rename from chromecast/metrics/cast_stability_metrics_provider.h
rename to chromecast/browser/metrics/cast_stability_metrics_provider.h
index bba94b62..635fc06 100644
--- a/chromecast/metrics/cast_stability_metrics_provider.h
+++ b/chromecast/browser/metrics/cast_stability_metrics_provider.h
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CHROMECAST_METRICS_CAST_STABILITY_METRICS_PROVIDER_H_
-#define CHROMECAST_METRICS_CAST_STABILITY_METRICS_PROVIDER_H_
+#ifndef CHROMECAST_BROWSER_METRICS_CAST_STABILITY_METRICS_PROVIDER_H_
+#define CHROMECAST_BROWSER_METRICS_CAST_STABILITY_METRICS_PROVIDER_H_
 
 #include "base/basictypes.h"
 #include "base/metrics/user_metrics.h"
@@ -70,4 +70,4 @@
 }  // namespace metrics
 }  // namespace chromecast
 
-#endif  // CHROMECAST_METRICS_CAST_STABILITY_METRICS_PROVIDER_H_
+#endif  // CHROMECAST_BROWSER_METRICS_CAST_STABILITY_METRICS_PROVIDER_H_
diff --git a/chromecast/metrics/platform_metrics_providers.h b/chromecast/browser/metrics/platform_metrics_providers.h
similarity index 83%
rename from chromecast/metrics/platform_metrics_providers.h
rename to chromecast/browser/metrics/platform_metrics_providers.h
index 9d847e5c..da1130b 100644
--- a/chromecast/metrics/platform_metrics_providers.h
+++ b/chromecast/browser/metrics/platform_metrics_providers.h
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CHROMECAST_METRICS_PLATFORM_METRICS_PROVIDERS_H_
-#define CHROMECAST_METRICS_PLATFORM_METRICS_PROVIDERS_H_
+#ifndef CHROMECAST_BROWSER_METRICS_PLATFORM_METRICS_PROVIDERS_H_
+#define CHROMECAST_BROWSER_METRICS_PLATFORM_METRICS_PROVIDERS_H_
 
 #include "components/metrics/proto/system_profile.pb.h"
 
@@ -36,4 +36,4 @@
 }  // namespace metrics
 }  // namespace chromecast
 
-#endif  // CHROMECAST_METRICS_PLATFORM_METRICS_PROVIDERS_H_
+#endif  // CHROMECAST_BROWSER_METRICS_PLATFORM_METRICS_PROVIDERS_H_
diff --git a/chromecast/metrics/platform_metrics_providers_simple.cc b/chromecast/browser/metrics/platform_metrics_providers_simple.cc
similarity index 90%
rename from chromecast/metrics/platform_metrics_providers_simple.cc
rename to chromecast/browser/metrics/platform_metrics_providers_simple.cc
index d312ec60..7bc4c52 100644
--- a/chromecast/metrics/platform_metrics_providers_simple.cc
+++ b/chromecast/browser/metrics/platform_metrics_providers_simple.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chromecast/metrics/platform_metrics_providers.h"
+#include "chromecast/browser/metrics/platform_metrics_providers.h"
 
 namespace chromecast {
 namespace metrics {
diff --git a/chromecast/service/DEPS b/chromecast/browser/service/DEPS
similarity index 100%
rename from chromecast/service/DEPS
rename to chromecast/browser/service/DEPS
diff --git a/chromecast/service/cast_service.cc b/chromecast/browser/service/cast_service.cc
similarity index 94%
rename from chromecast/service/cast_service.cc
rename to chromecast/browser/service/cast_service.cc
index 0490b0f5..87c9ee2 100644
--- a/chromecast/service/cast_service.cc
+++ b/chromecast/browser/service/cast_service.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chromecast/service/cast_service.h"
+#include "chromecast/browser/service/cast_service.h"
 
 #include "base/logging.h"
 #include "base/threading/thread_checker.h"
diff --git a/chromecast/service/cast_service.h b/chromecast/browser/service/cast_service.h
similarity index 92%
rename from chromecast/service/cast_service.h
rename to chromecast/browser/service/cast_service.h
index 14532c91..7e7d94c 100644
--- a/chromecast/service/cast_service.h
+++ b/chromecast/browser/service/cast_service.h
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CHROMECAST_SERVICE_CAST_SERVICE_H_
-#define CHROMECAST_SERVICE_CAST_SERVICE_H_
+#ifndef CHROMECAST_BROWSER_SERVICE_CAST_SERVICE_H_
+#define CHROMECAST_BROWSER_SERVICE_CAST_SERVICE_H_
 
 #include "base/callback.h"
 #include "base/macros.h"
@@ -71,4 +71,4 @@
 
 }  // namespace chromecast
 
-#endif  // CHROMECAST_SERVICE_CAST_SERVICE_H_
+#endif  // CHROMECAST_BROWSER_SERVICE_CAST_SERVICE_H_
diff --git a/chromecast/service/cast_service_android.cc b/chromecast/browser/service/cast_service_android.cc
similarity index 94%
rename from chromecast/service/cast_service_android.cc
rename to chromecast/browser/service/cast_service_android.cc
index fc4cc85f..7a4b563 100644
--- a/chromecast/service/cast_service_android.cc
+++ b/chromecast/browser/service/cast_service_android.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chromecast/service/cast_service_android.h"
+#include "chromecast/browser/service/cast_service_android.h"
 
 #include "chromecast/android/chromecast_config_android.h"
 
diff --git a/chromecast/service/cast_service_android.h b/chromecast/browser/service/cast_service_android.h
similarity index 75%
rename from chromecast/service/cast_service_android.h
rename to chromecast/browser/service/cast_service_android.h
index 61a779cd..22670c6 100644
--- a/chromecast/service/cast_service_android.h
+++ b/chromecast/browser/service/cast_service_android.h
@@ -2,11 +2,11 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CHROMECAST_SERVICE_CAST_SERVICE_ANDROID_H_
-#define CHROMECAST_SERVICE_CAST_SERVICE_ANDROID_H_
+#ifndef CHROMECAST_BROWSER_SERVICE_CAST_SERVICE_ANDROID_H_
+#define CHROMECAST_BROWSER_SERVICE_CAST_SERVICE_ANDROID_H_
 
 #include "base/macros.h"
-#include "chromecast/service/cast_service.h"
+#include "chromecast/browser/service/cast_service.h"
 
 namespace chromecast {
 
@@ -28,4 +28,4 @@
 
 }  // namespace chromecast
 
-#endif  // CHROMECAST_SERVICE_CAST_SERVICE_ANDROID_H_
+#endif  // CHROMECAST_BROWSER_SERVICE_CAST_SERVICE_ANDROID_H_
diff --git a/chromecast/service/cast_service_simple.cc b/chromecast/browser/service/cast_service_simple.cc
similarity index 98%
rename from chromecast/service/cast_service_simple.cc
rename to chromecast/browser/service/cast_service_simple.cc
index a4990f8..c5e591a 100644
--- a/chromecast/service/cast_service_simple.cc
+++ b/chromecast/browser/service/cast_service_simple.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chromecast/service/cast_service_simple.h"
+#include "chromecast/browser/service/cast_service_simple.h"
 
 #include "base/command_line.h"
 #include "base/files/file_path.h"
diff --git a/chromecast/service/cast_service_simple.h b/chromecast/browser/service/cast_service_simple.h
similarity index 79%
rename from chromecast/service/cast_service_simple.h
rename to chromecast/browser/service/cast_service_simple.h
index 16d1e5c..4939e5d 100644
--- a/chromecast/service/cast_service_simple.h
+++ b/chromecast/browser/service/cast_service_simple.h
@@ -2,11 +2,11 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CHROMECAST_SERVICE_CAST_SERVICE_SIMPLE_H_
-#define CHROMECAST_SERVICE_CAST_SERVICE_SIMPLE_H_
+#ifndef CHROMECAST_BROWSER_SERVICE_CAST_SERVICE_SIMPLE_H_
+#define CHROMECAST_BROWSER_SERVICE_CAST_SERVICE_SIMPLE_H_
 
 #include "base/memory/scoped_ptr.h"
-#include "chromecast/service/cast_service.h"
+#include "chromecast/browser/service/cast_service.h"
 
 namespace aura {
 class WindowTreeHost;
@@ -39,4 +39,4 @@
 
 }  // namespace chromecast
 
-#endif  // CHROMECAST_SERVICE_CAST_SERVICE_SIMPLE_H_
+#endif  // CHROMECAST_BROWSER_SERVICE_CAST_SERVICE_SIMPLE_H_
diff --git a/chromecast/shell/browser/test/DEPS b/chromecast/browser/test/DEPS
similarity index 100%
rename from chromecast/shell/browser/test/DEPS
rename to chromecast/browser/test/DEPS
diff --git a/chromecast/shell/browser/test/OWNERS b/chromecast/browser/test/OWNERS
similarity index 100%
rename from chromecast/shell/browser/test/OWNERS
rename to chromecast/browser/test/OWNERS
diff --git a/chromecast/shell/browser/test/chromecast_browser_test.cc b/chromecast/browser/test/chromecast_browser_test.cc
similarity index 92%
rename from chromecast/shell/browser/test/chromecast_browser_test.cc
rename to chromecast/browser/test/chromecast_browser_test.cc
index 1925075..01647742 100644
--- a/chromecast/shell/browser/test/chromecast_browser_test.cc
+++ b/chromecast/browser/test/chromecast_browser_test.cc
@@ -2,13 +2,13 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chromecast/shell/browser/test/chromecast_browser_test.h"
+#include "chromecast/browser/test/chromecast_browser_test.h"
 
 #include "base/command_line.h"
 #include "base/logging.h"
 #include "base/message_loop/message_loop.h"
-#include "chromecast/shell/browser/cast_browser_context.h"
-#include "chromecast/shell/browser/cast_browser_process.h"
+#include "chromecast/browser/cast_browser_context.h"
+#include "chromecast/browser/cast_browser_process.h"
 #include "content/public/browser/browser_thread.h"
 #include "content/public/browser/render_process_host.h"
 #include "content/public/browser/web_contents.h"
diff --git a/chromecast/shell/browser/test/chromecast_browser_test.h b/chromecast/browser/test/chromecast_browser_test.h
similarity index 88%
rename from chromecast/shell/browser/test/chromecast_browser_test.h
rename to chromecast/browser/test/chromecast_browser_test.h
index 28c62d8..76d8246 100644
--- a/chromecast/shell/browser/test/chromecast_browser_test.h
+++ b/chromecast/browser/test/chromecast_browser_test.h
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CHROMECAST_SHELL_BROWSER_TEST_CHROMECAST_BROWSER_TEST_H_
-#define CHROMECAST_SHELL_BROWSER_TEST_CHROMECAST_BROWSER_TEST_H_
+#ifndef CHROMECAST_BROWSER_TEST_CHROMECAST_BROWSER_TEST_H_
+#define CHROMECAST_BROWSER_TEST_CHROMECAST_BROWSER_TEST_H_
 
 #include "base/macros.h"
 #include "base/memory/scoped_ptr.h"
@@ -53,4 +53,4 @@
 }  // namespace shell
 }  // namespace chromecast
 
-#endif  // CHROMECAST_SHELL_BROWSER_TEST_CHROMECAST_BROWSER_TEST_H_
+#endif  // CHROMECAST_BROWSER_TEST_CHROMECAST_BROWSER_TEST_H_
diff --git a/chromecast/shell/browser/test/chromecast_browser_test_runner.cc b/chromecast/browser/test/chromecast_browser_test_runner.cc
similarity index 97%
rename from chromecast/shell/browser/test/chromecast_browser_test_runner.cc
rename to chromecast/browser/test/chromecast_browser_test_runner.cc
index 7312f1f..950e675 100644
--- a/chromecast/shell/browser/test/chromecast_browser_test_runner.cc
+++ b/chromecast/browser/test/chromecast_browser_test_runner.cc
@@ -5,7 +5,7 @@
 #include "base/command_line.h"
 #include "base/macros.h"
 #include "base/sys_info.h"
-#include "chromecast/shell/app/cast_main_delegate.h"
+#include "chromecast/app/cast_main_delegate.h"
 #include "content/public/common/content_switches.h"
 #include "content/public/test/content_test_suite_base.h"
 #include "content/public/test/test_launcher.h"
diff --git a/chromecast/shell/browser/test/chromecast_shell_browser_test.cc b/chromecast/browser/test/chromecast_shell_browser_test.cc
similarity index 93%
rename from chromecast/shell/browser/test/chromecast_shell_browser_test.cc
rename to chromecast/browser/test/chromecast_shell_browser_test.cc
index f9cc96b..64bac58 100644
--- a/chromecast/shell/browser/test/chromecast_shell_browser_test.cc
+++ b/chromecast/browser/test/chromecast_shell_browser_test.cc
@@ -3,7 +3,7 @@
 // found in the LICENSE file.
 
 #include "base/macros.h"
-#include "chromecast/shell/browser/test/chromecast_browser_test.h"
+#include "chromecast/browser/test/chromecast_browser_test.h"
 #include "url/gurl.h"
 #include "url/url_constants.h"
 
diff --git a/chromecast/shell/browser/url_request_context_factory.cc b/chromecast/browser/url_request_context_factory.cc
similarity index 98%
rename from chromecast/shell/browser/url_request_context_factory.cc
rename to chromecast/browser/url_request_context_factory.cc
index 07018558..e2653a73 100644
--- a/chromecast/shell/browser/url_request_context_factory.cc
+++ b/chromecast/browser/url_request_context_factory.cc
@@ -2,15 +2,15 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chromecast/shell/browser/url_request_context_factory.h"
+#include "chromecast/browser/url_request_context_factory.h"
 
 #include "base/command_line.h"
 #include "base/files/file_path.h"
 #include "base/macros.h"
 #include "base/path_service.h"
 #include "base/threading/worker_pool.h"
-#include "chromecast/shell/browser/cast_http_user_agent_settings.h"
-#include "chromecast/shell/browser/cast_network_delegate.h"
+#include "chromecast/browser/cast_http_user_agent_settings.h"
+#include "chromecast/browser/cast_network_delegate.h"
 #include "content/public/browser/browser_context.h"
 #include "content/public/browser/browser_thread.h"
 #include "content/public/browser/cookie_store_factory.h"
diff --git a/chromecast/shell/browser/url_request_context_factory.h b/chromecast/browser/url_request_context_factory.h
similarity index 95%
rename from chromecast/shell/browser/url_request_context_factory.h
rename to chromecast/browser/url_request_context_factory.h
index 439a56c..0b9a4e95 100644
--- a/chromecast/shell/browser/url_request_context_factory.h
+++ b/chromecast/browser/url_request_context_factory.h
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CHROMECAST_SHELL_BROWSER_URL_REQUEST_CONTEXT_FACTORY_H_
-#define CHROMECAST_SHELL_BROWSER_URL_REQUEST_CONTEXT_FACTORY_H_
+#ifndef CHROMECAST_BROWSER_URL_REQUEST_CONTEXT_FACTORY_H_
+#define CHROMECAST_BROWSER_URL_REQUEST_CONTEXT_FACTORY_H_
 
 #include "content/public/browser/content_browser_client.h"
 #include "net/http/http_network_session.h"
@@ -114,4 +114,4 @@
 }  // namespace shell
 }  // namespace chromecast
 
-#endif  // CHROMECAST_SHELL_BROWSER_URL_REQUEST_CONTEXT_FACTORY_H_
+#endif  // CHROMECAST_BROWSER_URL_REQUEST_CONTEXT_FACTORY_H_
diff --git a/chromecast/shell/browser/webui/webui_cast.h b/chromecast/browser/webui/webui_cast.h
similarity index 71%
rename from chromecast/shell/browser/webui/webui_cast.h
rename to chromecast/browser/webui/webui_cast.h
index f0588cc..0172dc54 100644
--- a/chromecast/shell/browser/webui/webui_cast.h
+++ b/chromecast/browser/webui/webui_cast.h
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CHROMECAST_SHELL_BROWSER_WEBUI_WEBUI_CAST_H_
-#define CHROMECAST_SHELL_BROWSER_WEBUI_WEBUI_CAST_H_
+#ifndef CHROMECAST_BROWSER_WEBUI_WEBUI_CAST_H_
+#define CHROMECAST_BROWSER_WEBUI_WEBUI_CAST_H_
 
 namespace chromecast {
 namespace shell {
@@ -15,4 +15,4 @@
 }  // namespace shell
 }  // namespace chromecast
 
-#endif  // CHROMECAST_SHELL_BROWSER_UI_WEBUI_CAST_H_
+#endif  // CHROMECAST_BROWSER_UI_WEBUI_CAST_H_
diff --git a/chromecast/shell/browser/webui/webui_cast_simple.cc b/chromecast/browser/webui/webui_cast_simple.cc
similarity index 85%
rename from chromecast/shell/browser/webui/webui_cast_simple.cc
rename to chromecast/browser/webui/webui_cast_simple.cc
index 76c2a64..255c1d8 100644
--- a/chromecast/shell/browser/webui/webui_cast_simple.cc
+++ b/chromecast/browser/webui/webui_cast_simple.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chromecast/shell/browser/webui/webui_cast.h"
+#include "chromecast/browser/webui/webui_cast.h"
 
 namespace chromecast {
 namespace shell {
diff --git a/chromecast/chromecast.gyp b/chromecast/chromecast.gyp
index 7ca308a4..7485fad 100644
--- a/chromecast/chromecast.gyp
+++ b/chromecast/chromecast.gyp
@@ -14,91 +14,6 @@
   },
   'targets': [
     {
-      'target_name': 'cast_common',
-      'type': '<(component)',
-      'dependencies': [
-        '../base/base.gyp:base',
-      ],
-      'sources': [
-        'common/cast_paths.cc',
-        'common/cast_paths.h',
-        'common/cast_resource_delegate.cc',
-        'common/cast_resource_delegate.h',
-        'common/chromecast_config.cc',
-        'common/chromecast_config.h',
-        'common/chromecast_switches.cc',
-        'common/chromecast_switches.h',
-        'common/pref_names.cc',
-        'common/pref_names.h',
-      ],
-      'conditions': [
-        ['chromecast_branding=="Chrome"', {
-          'dependencies': [
-            'internal/chromecast_internal.gyp:cast_common_internal',
-          ],
-        }, {
-          'sources': [
-            'common/chromecast_config_simple.cc',
-          ],
-        }],
-      ],
-    },
-    {
-      'target_name': 'cast_metrics',
-      'type': '<(component)',
-      'dependencies': [
-        'cast_common',
-        '../components/components.gyp:component_metrics_proto',
-        '../components/components.gyp:metrics',
-        '../components/components.gyp:metrics_gpu',
-        '../components/components.gyp:metrics_net',
-        '../components/components.gyp:metrics_profiler',
-        '../content/content.gyp:content',
-      ],
-      'sources': [
-        'metrics/cast_metrics_prefs.cc',
-        'metrics/cast_metrics_prefs.h',
-        'metrics/cast_metrics_service_client.cc',
-        'metrics/cast_metrics_service_client.h',
-        'metrics/cast_stability_metrics_provider.cc',
-        'metrics/cast_stability_metrics_provider.h',
-        'metrics/platform_metrics_providers.h',
-      ],
-      'conditions': [
-        ['chromecast_branding=="Chrome"', {
-          'dependencies': [
-            '<(cast_internal_gyp):cast_metrics_internal',
-          ],
-        }, {
-          'sources': [
-            'metrics/platform_metrics_providers_simple.cc',
-          ],
-        }],
-      ],
-    },
-    {
-      'target_name': 'cast_metrics_unittests',
-      'type': '<(gtest_target_type)',
-      'dependencies': [
-        'cast_metrics',
-        '../base/base.gyp:base_prefs_test_support',
-        '../base/base.gyp:run_all_unittests',
-        '../base/base.gyp:test_support_base',
-        '../components/components.gyp:component_metrics_proto',
-        '../testing/gtest.gyp:gtest',
-      ],
-      'sources': [
-        'metrics/cast_metrics_service_client_unittest.cc',
-      ],
-      'conditions': [
-        ['use_allocator!="none"', {
-          'dependencies': [
-            '../base/allocator/allocator.gyp:allocator',
-          ],
-        }],
-      ]
-    },  # end of target 'cast_metrics_unittests'
-    {
       'target_name': 'cast_net',
       'type': '<(component)',
       'sources': [
@@ -109,42 +24,6 @@
       ],
     },
     {
-      'target_name': 'cast_service',
-      'type': '<(component)',
-      'dependencies': [
-        '../skia/skia.gyp:skia',
-      ],
-      'sources': [
-        'service/cast_service.cc',
-        'service/cast_service.h',
-      ],
-      'conditions': [
-        ['chromecast_branding=="Chrome"', {
-          'dependencies': [
-            'internal/chromecast_internal.gyp:cast_service_internal',
-          ],
-        }, {
-          'dependencies': [
-            '../base/base.gyp:base',
-            '../content/content.gyp:content',
-          ],
-          'conditions': [
-            ['OS=="android"', {
-              'sources': [
-                'service/cast_service_android.cc',
-                'service/cast_service_android.h',
-              ],
-            }, {
-              'sources': [
-                'service/cast_service_simple.cc',
-                'service/cast_service_simple.h',
-              ],
-            }],
-          ],
-        }],
-      ],
-    },
-    {
       'target_name': 'cast_shell_resources',
       'type': 'none',
       'variables': {
@@ -154,8 +33,8 @@
         {
           'action_name': 'cast_shell_resources',
           'variables': {
-            'grit_grd_file': 'shell/browser/resources/shell_resources.grd',
-            'grit_resource_ids': 'shell/browser/resources/resource_ids',
+            'grit_grd_file': 'app/resources/shell_resources.grd',
+            'grit_resource_ids': 'app/resources/resource_ids',
           },
           'includes': [ '../build/grit_action.gypi' ],
         },
@@ -204,17 +83,19 @@
       'target_name': 'cast_shell_common',
       'type': '<(component)',
       'dependencies': [
-        'cast_common',
-        'cast_metrics',
-        'cast_service',
         'cast_shell_pak',
         'cast_shell_resources',
         'cast_version_header',
         'chromecast_locales.gyp:chromecast_locales_pak',
         'chromecast_locales.gyp:chromecast_settings',
         'media/media.gyp:media_base',
+        '../base/base.gyp:base',
         '../components/components.gyp:cdm_renderer',
         '../components/components.gyp:component_metrics_proto',
+        '../components/components.gyp:metrics',
+        '../components/components.gyp:metrics_gpu',
+        '../components/components.gyp:metrics_net',
+        '../components/components.gyp:metrics_profiler',
         '../content/content.gyp:content',
         '../content/content.gyp:content_app_browser',
         '../skia/skia.gyp:skia',
@@ -222,37 +103,56 @@
         '../third_party/widevine/cdm/widevine_cdm.gyp:widevine_cdm_version_h',
       ],
       'sources': [
-        'shell/app/cast_main_delegate.cc',
-        'shell/app/cast_main_delegate.h',
-        'shell/browser/cast_browser_context.cc',
-        'shell/browser/cast_browser_context.h',
-        'shell/browser/cast_browser_main_parts.cc',
-        'shell/browser/cast_browser_main_parts.h',
-        'shell/browser/cast_browser_process.cc',
-        'shell/browser/cast_browser_process.h',
-        'shell/browser/cast_content_browser_client.cc',
-        'shell/browser/cast_content_browser_client.h',
-        'shell/browser/cast_download_manager_delegate.cc',
-        'shell/browser/cast_download_manager_delegate.h',
-        'shell/browser/cast_http_user_agent_settings.cc',
-        'shell/browser/cast_http_user_agent_settings.h',
-        'shell/browser/cast_network_delegate.cc',
-        'shell/browser/cast_network_delegate.h',
-        'shell/browser/devtools/cast_dev_tools_delegate.cc',
-        'shell/browser/devtools/cast_dev_tools_delegate.h',
-        'shell/browser/devtools/remote_debugging_server.cc',
-        'shell/browser/devtools/remote_debugging_server.h',
-        'shell/browser/geolocation/cast_access_token_store.cc',
-        'shell/browser/geolocation/cast_access_token_store.h',
-        'shell/browser/url_request_context_factory.cc',
-        'shell/browser/url_request_context_factory.h',
-        'shell/browser/webui/webui_cast.h',
-        'shell/common/cast_content_client.cc',
-        'shell/common/cast_content_client.h',
-        'shell/renderer/cast_content_renderer_client.cc',
-        'shell/renderer/cast_content_renderer_client.h',
-        'shell/renderer/key_systems_cast.cc',
-        'shell/renderer/key_systems_cast.h',
+        'app/cast_main_delegate.cc',
+        'app/cast_main_delegate.h',
+        'browser/cast_browser_context.cc',
+        'browser/cast_browser_context.h',
+        'browser/cast_browser_main_parts.cc',
+        'browser/cast_browser_main_parts.h',
+        'browser/cast_browser_process.cc',
+        'browser/cast_browser_process.h',
+        'browser/cast_content_browser_client.cc',
+        'browser/cast_content_browser_client.h',
+        'browser/cast_download_manager_delegate.cc',
+        'browser/cast_download_manager_delegate.h',
+        'browser/cast_http_user_agent_settings.cc',
+        'browser/cast_http_user_agent_settings.h',
+        'browser/cast_network_delegate.cc',
+        'browser/cast_network_delegate.h',
+        'browser/devtools/cast_dev_tools_delegate.cc',
+        'browser/devtools/cast_dev_tools_delegate.h',
+        'browser/devtools/remote_debugging_server.cc',
+        'browser/devtools/remote_debugging_server.h',
+        'browser/geolocation/cast_access_token_store.cc',
+        'browser/geolocation/cast_access_token_store.h',
+        'browser/metrics/cast_metrics_prefs.cc',
+        'browser/metrics/cast_metrics_prefs.h',
+        'browser/metrics/cast_metrics_service_client.cc',
+        'browser/metrics/cast_metrics_service_client.h',
+        'browser/metrics/cast_stability_metrics_provider.cc',
+        'browser/metrics/cast_stability_metrics_provider.h',
+        'browser/metrics/platform_metrics_providers.h',
+        'browser/service/cast_service.cc',
+        'browser/service/cast_service.h',
+        'browser/url_request_context_factory.cc',
+        'browser/url_request_context_factory.h',
+        'browser/webui/webui_cast.h',
+        'common/cast_content_client.cc',
+        'common/cast_content_client.h',
+        'common/cast_paths.cc',
+        'common/cast_paths.h',
+        'common/cast_resource_delegate.cc',
+        'common/cast_resource_delegate.h',
+        'common/chromecast_config.cc',
+        'common/chromecast_config.h',
+        'common/chromecast_switches.cc',
+        'common/chromecast_switches.h',
+        'common/pref_names.cc',
+        'common/pref_names.h',
+        'renderer/cast_content_renderer_client.cc',
+        'renderer/cast_content_renderer_client.h',
+        'renderer/key_systems_cast.cc',
+        'renderer/key_systems_cast.h',
       ],
       'conditions': [
         ['chromecast_branding=="Chrome"', {
@@ -261,15 +161,52 @@
           ],
         }, {
           'sources': [
-            'shell/browser/cast_network_delegate_simple.cc',
-            'shell/browser/devtools/remote_debugging_server_simple.cc',
-            'shell/browser/webui/webui_cast_simple.cc',
-            'shell/renderer/key_systems_cast_simple.cc',
+            'browser/cast_network_delegate_simple.cc',
+            'browser/devtools/remote_debugging_server_simple.cc',
+            'browser/metrics/platform_metrics_providers_simple.cc',
+            'browser/webui/webui_cast_simple.cc',
+            'common/chromecast_config_simple.cc',
+            'renderer/key_systems_cast_simple.cc',
+          ],
+          'conditions': [
+            ['OS=="android"', {
+              'sources': [
+                'browser/service/cast_service_android.cc',
+                'browser/service/cast_service_android.h',
+              ],
+            }, {
+              'sources': [
+                'browser/service/cast_service_simple.cc',
+                'browser/service/cast_service_simple.h',
+              ],
+            }],
           ],
         }],
       ],
     },
     {
+      'target_name': 'cast_shell_unittests',
+      'type': '<(gtest_target_type)',
+      'dependencies': [
+        'cast_shell_common',
+        '../base/base.gyp:base_prefs_test_support',
+        '../base/base.gyp:run_all_unittests',
+        '../base/base.gyp:test_support_base',
+        '../components/components.gyp:component_metrics_proto',
+        '../testing/gtest.gyp:gtest',
+      ],
+      'sources': [
+        'browser/metrics/cast_metrics_service_client_unittest.cc',
+      ],
+      'conditions': [
+        ['use_allocator!="none"', {
+          'dependencies': [
+            '../base/allocator/allocator.gyp:allocator',
+          ],
+        }],
+      ]
+    },  # end of target 'cast_metrics_unittests'
+    {
       'target_name': 'cast_version_header',
       'type': 'none',
       'direct_dependent_settings': {
@@ -321,7 +258,6 @@
           'target_name': 'libcast_shell_android',
           'type': 'shared_library',
           'dependencies': [
-            'cast_common',
             'cast_jni_headers',
             'cast_shell_common',
             'cast_shell_pak',
@@ -345,17 +281,17 @@
             'android/chromecast_config_android.cc',
             'android/chromecast_config_android.h',
             'android/platform_jni_loader.h',
+            'app/android/cast_jni_loader.cc',
+            'browser/android/cast_window_android.cc',
+            'browser/android/cast_window_android.h',
+            'browser/android/cast_window_manager.cc',
+            'browser/android/cast_window_manager.h',
+            'browser/android/external_video_surface_container_impl.cc',
+            'browser/android/external_video_surface_container_impl.h',
             'crash/android/cast_crash_reporter_client_android.cc',
             'crash/android/cast_crash_reporter_client_android.h',
             'crash/android/crash_handler.cc',
             'crash/android/crash_handler.h',
-            'shell/app/android/cast_jni_loader.cc',
-            'shell/browser/android/cast_window_android.cc',
-            'shell/browser/android/cast_window_android.h',
-            'shell/browser/android/cast_window_manager.cc',
-            'shell/browser/android/cast_window_manager.h',
-            'shell/browser/android/external_video_surface_container_impl.cc',
-            'shell/browser/android/external_video_surface_container_impl.h',
           ],
           'conditions': [
             ['chromecast_branding=="Chrome"', {
@@ -383,8 +319,8 @@
           ],
           'variables': {
             'has_java_resources': 1,
-            'java_in_dir': 'shell/android/apk',
-            'resource_dir': 'shell/android/apk/res',
+            'java_in_dir': 'browser/android/apk',
+            'resource_dir': 'browser/android/apk/res',
             'R_package': 'org.chromium.chromecast.shell',
           },
           'includes': ['../build/java.gypi'],
@@ -406,7 +342,7 @@
             # if the actual Java path is used.
             # This will hopefully be removable after the great GN migration.
             'java_in_dir': 'android',
-            'android_manifest_path': 'shell/android/apk/AndroidManifest.xml',
+            'android_manifest_path': 'browser/android/apk/AndroidManifest.xml',
             'package_name': 'org.chromium.chromecast.shell',
             'native_lib_target': 'libcast_shell_android',
             'asset_location': '<(PRODUCT_DIR)/assets',
@@ -418,10 +354,10 @@
           'target_name': 'cast_jni_headers',
           'type': 'none',
           'sources': [
-            'shell/android/apk/src/org/chromium/chromecast/shell/CastCrashHandler.java',
-            'shell/android/apk/src/org/chromium/chromecast/shell/CastWindowAndroid.java',
-            'shell/android/apk/src/org/chromium/chromecast/shell/CastWindowManager.java',
-            'shell/android/apk/src/org/chromium/chromecast/shell/ExternalVideoSurfaceContainer.java',
+            'browser/android/apk/src/org/chromium/chromecast/shell/CastCrashHandler.java',
+            'browser/android/apk/src/org/chromium/chromecast/shell/CastWindowAndroid.java',
+            'browser/android/apk/src/org/chromium/chromecast/shell/CastWindowManager.java',
+            'browser/android/apk/src/org/chromium/chromecast/shell/ExternalVideoSurfaceContainer.java',
           ],
           'direct_dependent_settings': {
             'include_dirs': [
@@ -467,7 +403,7 @@
             'cast_shell_core',
           ],
           'sources': [
-            'shell/app/cast_main.cc',
+            'app/cast_main.cc',
           ],
         },
         {
@@ -481,7 +417,7 @@
             'HAS_OUT_OF_PROC_TEST_RUNNER',
           ],
           'sources': [
-            'shell/browser/test/chromecast_shell_browser_test.cc',
+            'browser/test/chromecast_shell_browser_test.cc',
           ],
         },
         {
@@ -496,9 +432,9 @@
             '../testing/gtest.gyp:gtest',
           ],
           'sources': [
-            'shell/browser/test/chromecast_browser_test.cc',
-            'shell/browser/test/chromecast_browser_test.h',
-            'shell/browser/test/chromecast_browser_test_runner.cc',
+            'browser/test/chromecast_browser_test.cc',
+            'browser/test/chromecast_browser_test.h',
+            'browser/test/chromecast_browser_test_runner.cc',
           ],
         },
       ],  # end of targets
diff --git a/chromecast/chromecast_locales.gyp b/chromecast/chromecast_locales.gyp
index ebcd4d22..883a127e 100644
--- a/chromecast/chromecast_locales.gyp
+++ b/chromecast/chromecast_locales.gyp
@@ -15,8 +15,8 @@
         {
           'action_name': 'chromecast_settings',
           'variables': {
-            'grit_grd_file': 'shell/settings/chromecast_settings.grd',
-            'grit_resource_ids': 'shell/browser/resources/resource_ids',
+            'grit_grd_file': 'app/resources/chromecast_settings.grd',
+            'grit_resource_ids': 'app/resources/resource_ids',
           },
           'includes': [ '../build/grit_action.gypi' ],
         },
diff --git a/chromecast/shell/common/cast_content_client.cc b/chromecast/common/cast_content_client.cc
similarity index 95%
rename from chromecast/shell/common/cast_content_client.cc
rename to chromecast/common/cast_content_client.cc
index e5827a18..e93b7d2a 100644
--- a/chromecast/shell/common/cast_content_client.cc
+++ b/chromecast/common/cast_content_client.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chromecast/shell/common/cast_content_client.h"
+#include "chromecast/common/cast_content_client.h"
 
 #include "chromecast/common/version.h"
 #include "content/public/common/user_agent.h"
diff --git a/chromecast/shell/common/cast_content_client.h b/chromecast/common/cast_content_client.h
similarity index 84%
rename from chromecast/shell/common/cast_content_client.h
rename to chromecast/common/cast_content_client.h
index e95677fa..3a4d61d7 100644
--- a/chromecast/shell/common/cast_content_client.h
+++ b/chromecast/common/cast_content_client.h
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CHROMECAST_SHELL_COMMON_CAST_CONTENT_CLIENT_H_
-#define CHROMECAST_SHELL_COMMON_CAST_CONTENT_CLIENT_H_
+#ifndef CHROMECAST_COMMON_CAST_CONTENT_CLIENT_H_
+#define CHROMECAST_COMMON_CAST_CONTENT_CLIENT_H_
 
 #include "content/public/common/content_client.h"
 
@@ -30,4 +30,4 @@
 }  // namespace shell
 }  // namespace chromecast
 
-#endif  // CHROMECAST_SHELL_COMMON_CAST_CONTENT_CLIENT_H_
+#endif  // CHROMECAST_COMMON_CAST_CONTENT_CLIENT_H_
diff --git a/chromecast/crash/android/DEPS b/chromecast/crash/android/DEPS
index 50218628..2443d79 100644
--- a/chromecast/crash/android/DEPS
+++ b/chromecast/crash/android/DEPS
@@ -1,3 +1,4 @@
 include_rules = [
   "+chromecast/android",
+  "+chromecast/common",
 ]
diff --git a/chromecast/shell/renderer/DEPS b/chromecast/renderer/DEPS
similarity index 87%
rename from chromecast/shell/renderer/DEPS
rename to chromecast/renderer/DEPS
index 161949b..8632b54 100644
--- a/chromecast/shell/renderer/DEPS
+++ b/chromecast/renderer/DEPS
@@ -1,4 +1,5 @@
 include_rules = [
+  "+chromecast/media",
   "+components/cdm/renderer",
   "+content/public/renderer",
   "+third_party/WebKit/public/platform",
diff --git a/chromecast/shell/renderer/cast_content_renderer_client.cc b/chromecast/renderer/cast_content_renderer_client.cc
similarity index 93%
rename from chromecast/shell/renderer/cast_content_renderer_client.cc
rename to chromecast/renderer/cast_content_renderer_client.cc
index d7cb87ca..1e949ae 100644
--- a/chromecast/shell/renderer/cast_content_renderer_client.cc
+++ b/chromecast/renderer/cast_content_renderer_client.cc
@@ -2,13 +2,13 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chromecast/shell/renderer/cast_content_renderer_client.h"
+#include "chromecast/renderer/cast_content_renderer_client.h"
 
 #include <sys/sysinfo.h>
 
 #include "base/command_line.h"
 #include "base/memory/memory_pressure_listener.h"
-#include "chromecast/shell/renderer/key_systems_cast.h"
+#include "chromecast/renderer/key_systems_cast.h"
 #include "content/public/common/content_switches.h"
 #include "content/public/renderer/render_view.h"
 #include "crypto/nss_util.h"
diff --git a/chromecast/shell/renderer/cast_content_renderer_client.h b/chromecast/renderer/cast_content_renderer_client.h
similarity index 78%
rename from chromecast/shell/renderer/cast_content_renderer_client.h
rename to chromecast/renderer/cast_content_renderer_client.h
index e113fb75..1b3284193 100644
--- a/chromecast/shell/renderer/cast_content_renderer_client.h
+++ b/chromecast/renderer/cast_content_renderer_client.h
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CHROMECAST_SHELL_RENDERER_CAST_CONTENT_RENDERER_CLIENT_H_
-#define CHROMECAST_SHELL_RENDERER_CAST_CONTENT_RENDERER_CLIENT_H_
+#ifndef CHROMECAST_RENDERER_CAST_CONTENT_RENDERER_CLIENT_H_
+#define CHROMECAST_RENDERER_CAST_CONTENT_RENDERER_CLIENT_H_
 
 #include "content/public/renderer/content_renderer_client.h"
 
@@ -25,4 +25,4 @@
 }  // namespace shell
 }  // namespace chromecast
 
-#endif  // CHROMECAST_SHELL_RENDERER_CAST_CONTENT_RENDERER_CLIENT_H_
+#endif  // CHROMECAST_RENDERER_CAST_CONTENT_RENDERER_CLIENT_H_
diff --git a/chromecast/shell/renderer/key_systems_cast.cc b/chromecast/renderer/key_systems_cast.cc
similarity index 95%
rename from chromecast/shell/renderer/key_systems_cast.cc
rename to chromecast/renderer/key_systems_cast.cc
index a0818d9e..be25c64 100644
--- a/chromecast/shell/renderer/key_systems_cast.cc
+++ b/chromecast/renderer/key_systems_cast.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chromecast/shell/renderer/key_systems_cast.h"
+#include "chromecast/renderer/key_systems_cast.h"
 
 #include <string>
 
diff --git a/chromecast/shell/renderer/key_systems_cast.h b/chromecast/renderer/key_systems_cast.h
similarity index 81%
rename from chromecast/shell/renderer/key_systems_cast.h
rename to chromecast/renderer/key_systems_cast.h
index c291344..5853c68 100644
--- a/chromecast/shell/renderer/key_systems_cast.h
+++ b/chromecast/renderer/key_systems_cast.h
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CHROMECAST_SHELL_RENDERER_KEY_SYSTEMS_CAST_H_
-#define CHROMECAST_SHELL_RENDERER_KEY_SYSTEMS_CAST_H_
+#ifndef CHROMECAST_RENDERER_KEY_SYSTEMS_CAST_H_
+#define CHROMECAST_RENDERER_KEY_SYSTEMS_CAST_H_
 
 #include <vector>
 
@@ -27,4 +27,4 @@
 }  // namespace shell
 }  // namespace chromecast
 
-#endif  // CHROMECAST_SHELL_RENDERER_KEY_SYSTEMS_CAST_H_
+#endif  // CHROMECAST_RENDERER_KEY_SYSTEMS_CAST_H_
diff --git a/chromecast/shell/renderer/key_systems_cast_simple.cc b/chromecast/renderer/key_systems_cast_simple.cc
similarity index 87%
rename from chromecast/shell/renderer/key_systems_cast_simple.cc
rename to chromecast/renderer/key_systems_cast_simple.cc
index 752669f..395c2b7 100644
--- a/chromecast/shell/renderer/key_systems_cast_simple.cc
+++ b/chromecast/renderer/key_systems_cast_simple.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chromecast/shell/renderer/key_systems_cast.h"
+#include "chromecast/renderer/key_systems_cast.h"
 
 namespace chromecast {
 namespace shell {
diff --git a/chromecast/shell/DEPS b/chromecast/shell/DEPS
deleted file mode 100644
index b752d48..0000000
--- a/chromecast/shell/DEPS
+++ /dev/null
@@ -1,5 +0,0 @@
-include_rules = [
-  # chromecast/shell/ is the top-level directory for the Chromecast embedder and
-  # can include from all other chromecast/ directories.
-  "+chromecast",
-]
diff --git a/chromecast/shell/browser/DEPS b/chromecast/shell/browser/DEPS
deleted file mode 100644
index b023f30..0000000
--- a/chromecast/shell/browser/DEPS
+++ /dev/null
@@ -1,5 +0,0 @@
-include_rules = [
-  "+components/crash",
-  "+content/public/browser",
-  "+media/base",
-]