Revert "Migrate Chrome Camera App to chromium"

This reverts commit a23510b0284104fd2ba2d87986503ac65ad7109c.
Needed to fix the git history of "chromium/src/chrome/browser/resources/chromeos/camera"

Bug: 918091
Cr-Commit-Position: refs/heads/master@{#624995}
diff --git a/chrome/browser/resources/chromeos/camera/Makefile b/chrome/browser/resources/chromeos/camera/Makefile
deleted file mode 100644
index f7322be..0000000
--- a/chrome/browser/resources/chromeos/camera/Makefile
+++ /dev/null
@@ -1,208 +0,0 @@
-# Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-CHROME=google-chrome
-
-PROD_ICONS = \
-	src/images/camera_app_icons_128.png \
-	src/images/camera_app_icons_48.png \
-
-CANARY_ICONS = \
-	utils/canary/images/camera_app_icons_128.png \
-	utils/canary/images/camera_app_icons_48.png \
-
-DEV_ICONS = \
-	utils/dev/images/camera_app_icons_128.png \
-	utils/dev/images/camera_app_icons_48.png \
-
-# Include all resources of the Camera App to be copied to the target package,
-# but without the manifest files and app icons (to be added later).
-RESOURCES = \
-	src/_locales/am/messages.json \
-	src/_locales/ar/messages.json \
-	src/_locales/bg/messages.json \
-	src/_locales/bn/messages.json \
-	src/_locales/ca/messages.json \
-	src/_locales/cs/messages.json \
-	src/_locales/da/messages.json \
-	src/_locales/de/messages.json \
-	src/_locales/el/messages.json \
-	src/_locales/en/messages.json \
-	src/_locales/en_GB/messages.json \
-	src/_locales/es/messages.json \
-	src/_locales/es_419/messages.json \
-	src/_locales/et/messages.json \
-	src/_locales/fa/messages.json \
-	src/_locales/fi/messages.json \
-	src/_locales/fil/messages.json \
-	src/_locales/fr/messages.json \
-	src/_locales/gu/messages.json \
-	src/_locales/he/messages.json \
-	src/_locales/hi/messages.json \
-	src/_locales/hr/messages.json \
-	src/_locales/hu/messages.json \
-	src/_locales/id/messages.json \
-	src/_locales/it/messages.json \
-	src/_locales/ja/messages.json \
-	src/_locales/kn/messages.json \
-	src/_locales/ko/messages.json \
-	src/_locales/lt/messages.json \
-	src/_locales/lv/messages.json \
-	src/_locales/ml/messages.json \
-	src/_locales/mr/messages.json \
-	src/_locales/ms/messages.json \
-	src/_locales/nl/messages.json \
-	src/_locales/no/messages.json \
-	src/_locales/pl/messages.json \
-	src/_locales/pt_BR/messages.json \
-	src/_locales/pt_PT/messages.json \
-	src/_locales/ro/messages.json \
-	src/_locales/ru/messages.json \
-	src/_locales/sk/messages.json \
-	src/_locales/sl/messages.json \
-	src/_locales/sr/messages.json \
-	src/_locales/sv/messages.json \
-	src/_locales/sw/messages.json \
-	src/_locales/ta/messages.json \
-	src/_locales/te/messages.json \
-	src/_locales/th/messages.json \
-	src/_locales/tr/messages.json \
-	src/_locales/uk/messages.json \
-	src/_locales/vi/messages.json \
-	src/_locales/zh_CN/messages.json \
-	src/_locales/zh_TW/messages.json \
-	src/css/main.css \
-	src/images/browser_button_back.svg \
-	src/images/browser_button_delete.svg \
-	src/images/browser_button_export.svg \
-	src/images/browser_button_print.svg \
-	src/images/camera_button_grid_off.svg \
-	src/images/camera_button_grid_on.svg \
-	src/images/camera_button_mic_off.svg \
-	src/images/camera_button_mic_on.svg \
-	src/images/camera_button_mirror_off.svg \
-	src/images/camera_button_mirror_on.svg \
-	src/images/camera_button_settings.svg \
-	src/images/camera_button_switch_device.svg \
-	src/images/camera_button_switch_photo.svg \
-	src/images/camera_button_switch_video.svg \
-	src/images/camera_button_timer_off.svg \
-	src/images/camera_button_timer_on_10s.svg \
-	src/images/camera_button_timer_on_3s.svg \
-	src/images/camera_focus_aim.svg \
-	src/images/camera_mode_photo.svg \
-	src/images/camera_mode_recording.svg \
-	src/images/camera_shutter_photo_start.svg \
-	src/images/camera_shutter_photo_start_active.svg \
-	src/images/camera_shutter_photo_start_hover.svg \
-	src/images/camera_shutter_photo_stop.svg \
-	src/images/camera_shutter_photo_stop_hover.svg \
-	src/images/camera_shutter_recording_start.svg \
-	src/images/camera_shutter_recording_start_hover.svg \
-	src/images/camera_shutter_recording_stop.svg \
-	src/images/camera_shutter_recording_stop_hover.svg \
-	src/images/settings_button_back.svg \
-	src/images/settings_button_expand.svg \
-	src/images/settings_feedback.svg \
-	src/images/settings_grid_type.svg \
-	src/images/settings_help.svg \
-	src/images/settings_timer_duration.svg \
-	src/images/spinner.svg \
-	src/js/background.js \
-	src/js/main.js \
-	src/js/models/gallery.js \
-	src/js/models/file_system.js \
-	src/js/nav.js \
-	src/js/scrollbar.js \
-	src/js/toast.js \
-	src/js/tooltip.js \
-	src/js/util.js \
-	src/js/views/browser.js \
-	src/js/views/camera.js \
-	src/js/views/camera/gallerybutton.js \
-	src/js/views/camera/layout.js \
-	src/js/views/camera/options.js \
-	src/js/views/camera/preview.js \
-	src/js/views/camera/recordtime.js \
-	src/js/views/dialog.js \
-	src/js/views/gallery_base.js \
-	src/js/views/settings.js \
-	src/js/views/view.js \
-	src/js/views/warning.js \
-	src/sounds/record_end.ogg \
-	src/sounds/record_start.ogg \
-	src/sounds/shutter.ogg \
-	src/sounds/tick.ogg \
-	src/views/main.html \
-	src/LICENSE \
-
-# Resources for the Prod build.
-RESOURCES_PROD = $(RESOURCES) $(PROD_ICONS)
-
-# Resources for the Canary build.
-RESOURCES_CANARY = $(RESOURCES) $(CANARY_ICONS)
-
-# Resources for the Dev build.
-RESOURCES_DEV = $(RESOURCES) $(DEV_ICONS)
-
-# Path for the Camera resources. Relative, with a trailing slash.
-SRC_PATH=src/
-
-# Path for Canary-specific utility files. Relative, with a trailing slash.
-CANARY_UTILS_PATH=utils/canary/
-
-# Path for Dev-specific utility files. Relative, with a trailing slash.
-DEV_UTILS_PATH=utils/dev/
-
-# Manifest file for the camera.crx package.
-SRC_MANIFEST=src/manifest.json
-
-# Builds camera.crx
-all: build/camera.crx
-
-# Builds the release version.
-build/camera: $(RESOURCES_PROD) $(SRC_MANIFEST)
-	mkdir -p build/camera
-	cd $(SRC_PATH); cp --parents $(patsubst $(SRC_PATH)%, %, \
-	  $(RESOURCES_PROD)) ../build/camera
-	cp $(SRC_MANIFEST) build/camera/manifest.json
-
-# Builds the camera.crx package.
-build/camera.crx: build/camera
-	$(CHROME) --pack-extension=build/camera \
-	  --pack-extension-key=dev-keys/camera.pem
-
-# Alias for build/camera.crx.
-camera: build/camera.crx
-
-# Canary build
-canary: build/camera-canary
-
-# Dev build
-dev: build/camera-dev.crx
-
-# Builds the canary version.
-build/camera-canary: $(RESOURCES_CANARY) $(SRC_MANIFEST)
-	mkdir -p build/camera-canary
-	cd $(SRC_PATH); cp --parents $(patsubst $(SRC_PATH)%, %, \
-	  $(RESOURCES)) ../build/camera-canary
-	cp -r $(CANARY_UTILS_PATH)* build/camera-canary
-	utils/generate_manifest.py --canary
-
-# Builds the dev version.
-build/camera-dev: $(RESOURCES_DEV) $(SRC_MANIFEST)
-	mkdir -p build/camera-dev
-	cd $(SRC_PATH); cp --parents $(patsubst $(SRC_PATH)%, %, \
-	  $(RESOURCES)) ../build/camera-dev
-	cp -r $(DEV_UTILS_PATH)* build/camera-dev
-	utils/generate_manifest.py --dev
-
-# Builds the camera-dev.crx package.
-build/camera-dev.crx: build/camera-dev
-	$(CHROME) --pack-extension=build/camera-dev \
-	  --pack-extension-key=dev-keys/camera.pem
-
-# Cleans the workspace from build files files.
-clean:
-	rm -rf build
diff --git a/chrome/browser/resources/chromeos/camera/PRESUBMIT.cfg b/chrome/browser/resources/chromeos/camera/PRESUBMIT.cfg
deleted file mode 100644
index be3b6cd..0000000
--- a/chrome/browser/resources/chromeos/camera/PRESUBMIT.cfg
+++ /dev/null
@@ -1,8 +0,0 @@
-# Camera App doesn't currently comply with the ChromiumOS style guide, because of
-# third party dependencies.
-
-[Hook Overrides]
-stray_whitespace_check: false
-long_line_check: false
-cros_license_check: false
-tab_check: false
diff --git a/chrome/browser/resources/chromeos/camera/README.md b/chrome/browser/resources/chromeos/camera/README.md
deleted file mode 100644
index f6cdfa3..0000000
--- a/chrome/browser/resources/chromeos/camera/README.md
+++ /dev/null
@@ -1,17 +0,0 @@
-Camera App
-==========
-
-Camera App is a packaged app designed to take photos and record videos.
-
-Supported systems
------------------
-Should work on any operating system, especially on Chrome OS.
-
-Compiling and installing
-------------------------
-
-To compile run "make all", then drag the camera.crx package from the build directory to Chrome. Note, that currently building on Linux only is supported. However, the crx packages should work on any other operating system without problems.
-
-Known issues
-------------
-<http:///crbug.com/?q=Cr%3DPlatform-Apps-Camera>
diff --git a/chrome/browser/resources/chromeos/camera/dev-keys/camera.pem b/chrome/browser/resources/chromeos/camera/dev-keys/camera.pem
deleted file mode 100644
index 14fca93..0000000
--- a/chrome/browser/resources/chromeos/camera/dev-keys/camera.pem
+++ /dev/null
@@ -1,16 +0,0 @@
------BEGIN PRIVATE KEY-----
-MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAN9NEO/werJcK4Yg9
-mD6pi2J4dJnnnQleoHNTaELcThlmWpyUbRfJAz7FF3JdsrjSp5UdX5fCK9qQzFvC8
-8fbxix4e7YkyG71rd4pC4uhgxh64qOpNvrY77OTq5Q2RKPCGrgsM/M3dkPvadZbOJ
-+thQ8JbRAS9DqO1hCnGVh2T51AgMBAAECgYBZTdbyPrizUE1PzSr7ygJfv/8CSNKE
-HOELvHHJcGwNZAShH6sxecNPNbMFdyb9KT2UaK68pYExtku9H24Xnbit5ma2lkl0z
-wrNtqN4pYZ2UiKQVrL3/wFGYqQPHhj3/6HsoWIKeOdaTWw8QxsbRz+ibUZdyKgJiN
-bf7o6EA8m6AQJBAPEPYe1Voj7SEu0uFGJ2kjM5oQ+HYMBo2I4PliCsP1dMToDRp9z
-9Xp+BZYs6FIOiVH0JrCNHO1aqZSO5VaOryTUCQQDtI+vx0qwosP0PqNHDeVYdpvfX
-kwN65yftR2smWS/iNqD7TSgGhON8z3Pq/57SKbWAZVqeAZL4Q0DapgKw24hBAkAst
-XipJxfHZPkDqmc3d9xXydl4Ythr90Yq2vMyLiA1Vb69n6TtlMSG+t3Ve7kwTNw0sK
-WPiXeU9Fd7z7T1fTf9AkEAvVVx21ht9eshkTAjkmM9G12lAewx2h3W5f6gkTSiI4W
-kUCBRNatCCfOERHsk7f05GbNSf1cYZbkkfa4P9e7BQQJBAOsyAFy2c/r/tvZX5SVm
-gOuoimubBZrgkXHRCXlXYSunHSXhcCmtyRPs/KxkIOzq4qTpPA0wX4WEugM7ZNBFa
-2k=
------END PRIVATE KEY-----
diff --git a/chrome/browser/resources/chromeos/camera/src/LICENSE b/chrome/browser/resources/chromeos/camera/src/LICENSE
deleted file mode 100644
index a32e00ce..0000000
--- a/chrome/browser/resources/chromeos/camera/src/LICENSE
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright 2015 The Chromium Authors. All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//    * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//    * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//    * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/chrome/browser/resources/chromeos/camera/src/_locales/am/messages.json b/chrome/browser/resources/chromeos/camera/src/_locales/am/messages.json
deleted file mode 100644
index d3a71da..0000000
--- a/chrome/browser/resources/chromeos/camera/src/_locales/am/messages.json
+++ /dev/null
@@ -1,206 +0,0 @@
-{
-  "name": {
-    "message": "ካሜራ",
-    "description": "Name of the Camera App."
-  },
-  "description": {
-    "message": "በካሜራዎ ፎቶዎችን ያንሱ እና ቪዲዮዎችን ይቅረጹ።",
-    "description": "Short description of the Camera App."
-  },
-  "errorMsgFileSystemFailed": {
-    "message": "የፋይል ሥርዓት ስህተቶች።",
-    "description": "Error message shown when failing to read or write the file system."
-  },
-  "errorMsgNoCamera": {
-    "message": "የእርስዎ ካሜራ አሁን ላይ ሊገኝ አይችልም።\nካሜራው በአግባቡ መገናኘቱን እባክዎ ይፈትሹ።",
-    "description": "Error message shown when it was impossible to connect to the camera due to unavailability."
-  },
-  "errorMsgGalleryExportFailed": {
-    "message": "$file$ን ወደ ውጭ መላክ አልተቻለም",
-    "description": "Error message shown when exporting to an external directory failed. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg"
-      }
-    }
-  },
-  "errorMsgSaveFileFailed": {
-    "message": "ፋይሉን ማስቀመጥ አልተሳካም",
-    "description": "Error message shown when saving/adding a image or video to the file system failed."
-  },
-  "errorMsgTakePhotoFailed": {
-    "message": "ፎቶን ማንሳት አልተቻለም",
-    "description": "Error message shown when failing to take photo."
-  },
-  "errorMsgRecordStartFailed": {
-    "message": "መቅረጽ መጀመር አልተቻለም",
-    "description": "Error message shown when failing to start recording video."
-  },
-  "errorMsgEmptyRecording": {
-    "message": "ምንም አልተቀረጸም",
-    "description": "Error message shown when no data is recorded for a recording and it won't be added to the gallery."
-  },
-  "statusMsgRecordingStopped": {
-    "message": "ቀረጻ ቆሟል",
-    "description": "Status message for spoken feedback when video recording has been stopped."
-  },
-  "statusMsgCameraSwitched": {
-    "message": "$camera$ ገቢር",
-    "description": "Status message for spoken feedback when switching over to another camera.",
-    "placeholders": {
-      "camera": {
-        "content": "$1",
-        "example": "USB WebCam (12ab:5678) User-facing"
-      }
-    }
-  },
-  "galleryButton": {
-    "message": "ወደ ማዕከለ-ሥዕላት ሂድ",
-    "description": "Label for the gallery button."
-  },
-  "deleteButton": {
-    "message": "ሰርዝ",
-    "description": "Label for the delete button."
-  },
-  "exportButton": {
-    "message": "ወደ ዲስክ ላክ",
-    "description": "Label for the exporting button."
-  },
-  "printButton": {
-    "message": "አትም",
-    "description": "Label for the printing button."
-  },
-  "backButton": {
-    "message": "ተመለስ",
-    "description": "Label for the back button."
-  },
-  "galleryImages": {
-    "message": "የማዕከለ-ሥዕላት ምስሎች",
-    "description": "Text to speech label for the gallery list."
-  },
-  "settingsButton": {
-    "message": "ቅንብሮች",
-    "description": "Label for the settings button."
-  },
-  "gridTypeButton": {
-    "message": "የፍርግርግ ዓይነት",
-    "description": "Label for the button of grid-type options."
-  },
-  "timerDurationButton": {
-    "message": "የጊዜ ቆጣሪ ቆይታ",
-    "description": "Label for the button of timer-duration options."
-  },
-  "feedbackButton": {
-    "message": "ግብረመልስ ላክ",
-    "description": "Label for the feedback button."
-  },
-  "helpButton": {
-    "message": "እገዛ",
-    "description": "Label for the help button."
-  },
-  "labelGrid3x3": {
-    "message": "3 x 3",
-    "description": "Label for for grid-type: 3x3."
-  },
-  "ariaGrid3x3": {
-    "message": "3 በ3",
-    "description": "Label for spoken feedback to read out grid-type: 3x3."
-  },
-  "labelGrid4x4": {
-    "message": "4 x 4",
-    "description": "Label for for grid-type: 4x4."
-  },
-  "ariaGrid4x4": {
-    "message": "4 በ4",
-    "description": "Label for spoken feedback to read out grid-type: 4x4."
-  },
-  "labelGridGolden": {
-    "message": "ወርቃማ ውድር",
-    "description": "Label for grid-type: golden ratio."
-  },
-  "labelTimer3s": {
-    "message": "3 ሰከንዶች",
-    "description": "Label for timer-duration: 3 seconds."
-  },
-  "labelTimer10s": {
-    "message": "10 ሰከንዶች",
-    "description": "Label for timer-duration: 10 seconds."
-  },
-  "takePhotoButton": {
-    "message": "ፎቶ ያንሱ",
-    "description": "Label for the shutter button to take photo."
-  },
-  "takePhotoCancelButton": {
-    "message": "ፎቶን ማንሳት አቁም",
-    "description": "Label for the shutter button to cancel countdown timer and stop taking photo."
-  },
-  "recordVideoStartButton": {
-    "message": "መቅረጽ ጀምር",
-    "description": "Label for the shutter button to start recording."
-  },
-  "recordVideoStopButton": {
-    "message": "መቅረጽ አቁም",
-    "description": "Label for the shutter button to stop recording."
-  },
-  "switchCameraButton": {
-    "message": "ወደ ቀጣዩ ካሜራ ቀይር",
-    "description": "Label for the button to switch to next connected camera. Eg. switching from front facing to back facing, or a camera connected via USB. The button is shown only when more than one camera is connected."
-  },
-  "switchRecordVideoButton": {
-    "message": "ቪዲዮ ለመቅረጽ ቀይር",
-    "description": "Label for the button to switch to record video mode."
-  },
-  "switchTakePhotoButton": {
-    "message": "ፎቶ ለማንሳት ይቀይሩ",
-    "description": "Label for the button to switch to take photo mode."
-  },
-  "toggleTimerButton": {
-    "message": "የሰዓት ቆጣሪ",
-    "description": "Label for the checkbox to toggle the countdown timer."
-  },
-  "toggleMirrorButton": {
-    "message": "ማስተላለፍ",
-    "description": "Label for the checkbox to toggle the preview mirroring. Eg. if mirroring is toggled on, preview will be flipped horizontally."
-  },
-  "toggleGridButton": {
-    "message": "ፍርግርግ",
-    "description": "Label for the checkbox to toggle the grid shown on preview."
-  },
-  "toggleMicButton": {
-    "message": "ማይክሮፎን",
-    "description": "Label for the checkbox to toggle the microphone for recording video."
-  },
-  "dialogOKButton": {
-    "message": "እሺ",
-    "description": "Label for the accepting button in the dialog."
-  },
-  "dialogCancelButton": {
-    "message": "ይቅር",
-    "description": "Label for the dismissing button in the dialog."
-  },
-  "deleteConfirmationMsg": {
-    "message": "እርግጠኛ ነዎት $file$ን ማስወገድ ይፈልጋሉ?",
-    "description": "Confirmation message before removing a selected item from the gallery. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg."
-      }
-    }
-  },
-  "deleteMultiConfirmationMsg": {
-    "message": "እርግጠኛ ነዎት $count$ ንጥሎችን ማስወገድ ይፈልጋሉ?",
-    "description": "Confirmation message before removing multiple selected items from the gallery. Expects a file count to be passed in.",
-    "placeholders": {
-      "count": {
-        "content": "$1",
-        "example": "20."
-      }
-    }
-  },
-  "migratePicturesMsg": {
-    "message": "በካሜራው የተነሱ ፎቶዎች ወይም የተቀረጹ ቪዲዮዎች ወደ የውርዶች አቃፊው ይወሰዳሉ። በፋይሎች ውስጥ ሊደርሱባቸው ይችላሉ።\n\nየማከማቻ ፈቃዶች ያላቸው መተግበሪያዎች የእርስዎን ፎቶዎች እና ቪዲዮዎች መዳረሻ ይኖራቸዋል።",
-    "description": "Message shown before moving all photos and videos stored in the Camera App to the Downloads folder."
-  }
-}
\ No newline at end of file
diff --git a/chrome/browser/resources/chromeos/camera/src/_locales/ar/messages.json b/chrome/browser/resources/chromeos/camera/src/_locales/ar/messages.json
deleted file mode 100644
index af75f23..0000000
--- a/chrome/browser/resources/chromeos/camera/src/_locales/ar/messages.json
+++ /dev/null
@@ -1,206 +0,0 @@
-{
-  "name": {
-    "message": "الكاميرا",
-    "description": "Name of the Camera App."
-  },
-  "description": {
-    "message": "يمكنك التقاط الصور وتسجيل الفيديوهات باستخدام الكاميرا.",
-    "description": "Short description of the Camera App."
-  },
-  "errorMsgFileSystemFailed": {
-    "message": "أخطاء نظام الملفات.",
-    "description": "Error message shown when failing to read or write the file system."
-  },
-  "errorMsgNoCamera": {
-    "message": "الكاميرا غير متاحة حاليًا.\nيُرجى التحقُّق من اتصال الكاميرا بشكلٍ صحيح.",
-    "description": "Error message shown when it was impossible to connect to the camera due to unavailability."
-  },
-  "errorMsgGalleryExportFailed": {
-    "message": "يتعذَّر تصدير $file$.",
-    "description": "Error message shown when exporting to an external directory failed. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg"
-      }
-    }
-  },
-  "errorMsgSaveFileFailed": {
-    "message": "يتعذَّر حفظ الملف.",
-    "description": "Error message shown when saving/adding a image or video to the file system failed."
-  },
-  "errorMsgTakePhotoFailed": {
-    "message": "يتعذّر التقاط الصورة.",
-    "description": "Error message shown when failing to take photo."
-  },
-  "errorMsgRecordStartFailed": {
-    "message": "يتعذّر بدء التسجيل.",
-    "description": "Error message shown when failing to start recording video."
-  },
-  "errorMsgEmptyRecording": {
-    "message": "لم يتمّ تسجيل أيّ بيانات.",
-    "description": "Error message shown when no data is recorded for a recording and it won't be added to the gallery."
-  },
-  "statusMsgRecordingStopped": {
-    "message": "تمّ إيقاف التسجيل.",
-    "description": "Status message for spoken feedback when video recording has been stopped."
-  },
-  "statusMsgCameraSwitched": {
-    "message": "الكاميرا $camera$ نشِطة.",
-    "description": "Status message for spoken feedback when switching over to another camera.",
-    "placeholders": {
-      "camera": {
-        "content": "$1",
-        "example": "USB WebCam (12ab:5678) User-facing"
-      }
-    }
-  },
-  "galleryButton": {
-    "message": "الانتقال إلى المعرض",
-    "description": "Label for the gallery button."
-  },
-  "deleteButton": {
-    "message": "حذف",
-    "description": "Label for the delete button."
-  },
-  "exportButton": {
-    "message": "تصدير إلى القرص",
-    "description": "Label for the exporting button."
-  },
-  "printButton": {
-    "message": "طباعة",
-    "description": "Label for the printing button."
-  },
-  "backButton": {
-    "message": "رجوع",
-    "description": "Label for the back button."
-  },
-  "galleryImages": {
-    "message": "صور المعرض",
-    "description": "Text to speech label for the gallery list."
-  },
-  "settingsButton": {
-    "message": "إعدادات",
-    "description": "Label for the settings button."
-  },
-  "gridTypeButton": {
-    "message": "نوع الشبكة",
-    "description": "Label for the button of grid-type options."
-  },
-  "timerDurationButton": {
-    "message": "مدة المؤقِّت",
-    "description": "Label for the button of timer-duration options."
-  },
-  "feedbackButton": {
-    "message": "إرسال تعليقات",
-    "description": "Label for the feedback button."
-  },
-  "helpButton": {
-    "message": "مساعدة",
-    "description": "Label for the help button."
-  },
-  "labelGrid3x3": {
-    "message": "وضع 3 × 3",
-    "description": "Label for for grid-type: 3x3."
-  },
-  "ariaGrid3x3": {
-    "message": "وضع 3 في 3",
-    "description": "Label for spoken feedback to read out grid-type: 3x3."
-  },
-  "labelGrid4x4": {
-    "message": "وضع 4 × 4",
-    "description": "Label for for grid-type: 4x4."
-  },
-  "ariaGrid4x4": {
-    "message": "وضع 4 في 4",
-    "description": "Label for spoken feedback to read out grid-type: 4x4."
-  },
-  "labelGridGolden": {
-    "message": "وضع النسبة الذهبية",
-    "description": "Label for grid-type: golden ratio."
-  },
-  "labelTimer3s": {
-    "message": "3 ثوانٍ",
-    "description": "Label for timer-duration: 3 seconds."
-  },
-  "labelTimer10s": {
-    "message": "۱۰ ثوانٍ",
-    "description": "Label for timer-duration: 10 seconds."
-  },
-  "takePhotoButton": {
-    "message": "التقاط صورة",
-    "description": "Label for the shutter button to take photo."
-  },
-  "takePhotoCancelButton": {
-    "message": "إيقاف التقاط الصورة",
-    "description": "Label for the shutter button to cancel countdown timer and stop taking photo."
-  },
-  "recordVideoStartButton": {
-    "message": "بدء التسجيل",
-    "description": "Label for the shutter button to start recording."
-  },
-  "recordVideoStopButton": {
-    "message": "إيقاف التسجيل",
-    "description": "Label for the shutter button to stop recording."
-  },
-  "switchCameraButton": {
-    "message": "التبديل إلى الكاميرا التالية",
-    "description": "Label for the button to switch to next connected camera. Eg. switching from front facing to back facing, or a camera connected via USB. The button is shown only when more than one camera is connected."
-  },
-  "switchRecordVideoButton": {
-    "message": "تبديل لوضع تسجيل الفيديو",
-    "description": "Label for the button to switch to record video mode."
-  },
-  "switchTakePhotoButton": {
-    "message": "تبديل لوضع التقاط الصور",
-    "description": "Label for the button to switch to take photo mode."
-  },
-  "toggleTimerButton": {
-    "message": "الموقِّت",
-    "description": "Label for the checkbox to toggle the countdown timer."
-  },
-  "toggleMirrorButton": {
-    "message": "النسخ المطابق",
-    "description": "Label for the checkbox to toggle the preview mirroring. Eg. if mirroring is toggled on, preview will be flipped horizontally."
-  },
-  "toggleGridButton": {
-    "message": "الشبكة",
-    "description": "Label for the checkbox to toggle the grid shown on preview."
-  },
-  "toggleMicButton": {
-    "message": "الميكروفون",
-    "description": "Label for the checkbox to toggle the microphone for recording video."
-  },
-  "dialogOKButton": {
-    "message": "موافق",
-    "description": "Label for the accepting button in the dialog."
-  },
-  "dialogCancelButton": {
-    "message": "إلغاء",
-    "description": "Label for the dismissing button in the dialog."
-  },
-  "deleteConfirmationMsg": {
-    "message": "هل تريد فعلاً إزالة $file$؟",
-    "description": "Confirmation message before removing a selected item from the gallery. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg."
-      }
-    }
-  },
-  "deleteMultiConfirmationMsg": {
-    "message": "هل تريد فعلاً إزالة $count$ عنصر؟",
-    "description": "Confirmation message before removing multiple selected items from the gallery. Expects a file count to be passed in.",
-    "placeholders": {
-      "count": {
-        "content": "$1",
-        "example": "20."
-      }
-    }
-  },
-  "migratePicturesMsg": {
-    "message": "سيتمّ نقل الصور والفيديوهات الملتقَطة بالكاميرا إلى مجلد \"التنزيلات\" ويمكنك الوصول إليها من خلال تطبيق \"ملفات\".\n\nستتمكَّن التطبيقات من الوصول إلى صورك وفيديوهاتك في حال تزويدها بأذونات الاطّلاع على سعة التخزين.",
-    "description": "Message shown before moving all photos and videos stored in the Camera App to the Downloads folder."
-  }
-}
\ No newline at end of file
diff --git a/chrome/browser/resources/chromeos/camera/src/_locales/bg/messages.json b/chrome/browser/resources/chromeos/camera/src/_locales/bg/messages.json
deleted file mode 100644
index 51698cbd..0000000
--- a/chrome/browser/resources/chromeos/camera/src/_locales/bg/messages.json
+++ /dev/null
@@ -1,206 +0,0 @@
-{
-  "name": {
-    "message": "Камера",
-    "description": "Name of the Camera App."
-  },
-  "description": {
-    "message": "Правете снимки и записвайте видеоклипове с камерата си.",
-    "description": "Short description of the Camera App."
-  },
-  "errorMsgFileSystemFailed": {
-    "message": "Грешки в системата за съхранение на файлове.",
-    "description": "Error message shown when failing to read or write the file system."
-  },
-  "errorMsgNoCamera": {
-    "message": "Понастоящем няма достъп до камерата ви.\nМоля, проверете дали е свързана правилно.",
-    "description": "Error message shown when it was impossible to connect to the camera due to unavailability."
-  },
-  "errorMsgGalleryExportFailed": {
-    "message": "$file$ не може да се експортира",
-    "description": "Error message shown when exporting to an external directory failed. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg"
-      }
-    }
-  },
-  "errorMsgSaveFileFailed": {
-    "message": "Файлът не може да бъде запазен",
-    "description": "Error message shown when saving/adding a image or video to the file system failed."
-  },
-  "errorMsgTakePhotoFailed": {
-    "message": "Не може да се направи снимка",
-    "description": "Error message shown when failing to take photo."
-  },
-  "errorMsgRecordStartFailed": {
-    "message": "Записването не може да се стартира",
-    "description": "Error message shown when failing to start recording video."
-  },
-  "errorMsgEmptyRecording": {
-    "message": "Нищо не е записано",
-    "description": "Error message shown when no data is recorded for a recording and it won't be added to the gallery."
-  },
-  "statusMsgRecordingStopped": {
-    "message": "Записването спря",
-    "description": "Status message for spoken feedback when video recording has been stopped."
-  },
-  "statusMsgCameraSwitched": {
-    "message": "$camera$ е активна",
-    "description": "Status message for spoken feedback when switching over to another camera.",
-    "placeholders": {
-      "camera": {
-        "content": "$1",
-        "example": "USB WebCam (12ab:5678) User-facing"
-      }
-    }
-  },
-  "galleryButton": {
-    "message": "Към галерията",
-    "description": "Label for the gallery button."
-  },
-  "deleteButton": {
-    "message": "Изтриване",
-    "description": "Label for the delete button."
-  },
-  "exportButton": {
-    "message": "Експортиране в диска",
-    "description": "Label for the exporting button."
-  },
-  "printButton": {
-    "message": "Печат",
-    "description": "Label for the printing button."
-  },
-  "backButton": {
-    "message": "Назад",
-    "description": "Label for the back button."
-  },
-  "galleryImages": {
-    "message": "Изображения в галерията",
-    "description": "Text to speech label for the gallery list."
-  },
-  "settingsButton": {
-    "message": "Настройки",
-    "description": "Label for the settings button."
-  },
-  "gridTypeButton": {
-    "message": "Тип решетка",
-    "description": "Label for the button of grid-type options."
-  },
-  "timerDurationButton": {
-    "message": "Продължителност на таймера",
-    "description": "Label for the button of timer-duration options."
-  },
-  "feedbackButton": {
-    "message": "Изпращане на отзиви",
-    "description": "Label for the feedback button."
-  },
-  "helpButton": {
-    "message": "Помощ",
-    "description": "Label for the help button."
-  },
-  "labelGrid3x3": {
-    "message": "3 x 3",
-    "description": "Label for for grid-type: 3x3."
-  },
-  "ariaGrid3x3": {
-    "message": "3 на 3",
-    "description": "Label for spoken feedback to read out grid-type: 3x3."
-  },
-  "labelGrid4x4": {
-    "message": "4 x 4",
-    "description": "Label for for grid-type: 4x4."
-  },
-  "ariaGrid4x4": {
-    "message": "4 на 4",
-    "description": "Label for spoken feedback to read out grid-type: 4x4."
-  },
-  "labelGridGolden": {
-    "message": "Златното сечение",
-    "description": "Label for grid-type: golden ratio."
-  },
-  "labelTimer3s": {
-    "message": "3 секунди",
-    "description": "Label for timer-duration: 3 seconds."
-  },
-  "labelTimer10s": {
-    "message": "10 секунди",
-    "description": "Label for timer-duration: 10 seconds."
-  },
-  "takePhotoButton": {
-    "message": "Правене на снимка",
-    "description": "Label for the shutter button to take photo."
-  },
-  "takePhotoCancelButton": {
-    "message": "Спиране на правенето на снимка",
-    "description": "Label for the shutter button to cancel countdown timer and stop taking photo."
-  },
-  "recordVideoStartButton": {
-    "message": "Започване на запис",
-    "description": "Label for the shutter button to start recording."
-  },
-  "recordVideoStopButton": {
-    "message": "Спиране на записа",
-    "description": "Label for the shutter button to stop recording."
-  },
-  "switchCameraButton": {
-    "message": "Превключване към следващата камера",
-    "description": "Label for the button to switch to next connected camera. Eg. switching from front facing to back facing, or a camera connected via USB. The button is shown only when more than one camera is connected."
-  },
-  "switchRecordVideoButton": {
-    "message": "Превключване към режима за запис на видеоклипове",
-    "description": "Label for the button to switch to record video mode."
-  },
-  "switchTakePhotoButton": {
-    "message": "Превключване към режима за правене на снимки",
-    "description": "Label for the button to switch to take photo mode."
-  },
-  "toggleTimerButton": {
-    "message": "Таймер",
-    "description": "Label for the checkbox to toggle the countdown timer."
-  },
-  "toggleMirrorButton": {
-    "message": "Функция за огледално обръщане",
-    "description": "Label for the checkbox to toggle the preview mirroring. Eg. if mirroring is toggled on, preview will be flipped horizontally."
-  },
-  "toggleGridButton": {
-    "message": "Решетка",
-    "description": "Label for the checkbox to toggle the grid shown on preview."
-  },
-  "toggleMicButton": {
-    "message": "Микрофон",
-    "description": "Label for the checkbox to toggle the microphone for recording video."
-  },
-  "dialogOKButton": {
-    "message": "OK",
-    "description": "Label for the accepting button in the dialog."
-  },
-  "dialogCancelButton": {
-    "message": "Отказ",
-    "description": "Label for the dismissing button in the dialog."
-  },
-  "deleteConfirmationMsg": {
-    "message": "Наистина ли искате да премахнете $file$?",
-    "description": "Confirmation message before removing a selected item from the gallery. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg."
-      }
-    }
-  },
-  "deleteMultiConfirmationMsg": {
-    "message": "Наистина ли искате да премахнете $count$ елемента?",
-    "description": "Confirmation message before removing multiple selected items from the gallery. Expects a file count to be passed in.",
-    "placeholders": {
-      "count": {
-        "content": "$1",
-        "example": "20."
-      }
-    }
-  },
-  "migratePicturesMsg": {
-    "message": "Направените с камерата снимки и видеоклипове ще бъдат преместени в папката „Изтегляния“. Можете да осъществите достъп до тях от „Файлове“.\n\nПриложенията с разрешения за хранилището ще имат достъп до снимките и видеоклиповете ви.",
-    "description": "Message shown before moving all photos and videos stored in the Camera App to the Downloads folder."
-  }
-}
\ No newline at end of file
diff --git a/chrome/browser/resources/chromeos/camera/src/_locales/bn/messages.json b/chrome/browser/resources/chromeos/camera/src/_locales/bn/messages.json
deleted file mode 100644
index 0f65c08..0000000
--- a/chrome/browser/resources/chromeos/camera/src/_locales/bn/messages.json
+++ /dev/null
@@ -1,206 +0,0 @@
-{
-  "name": {
-    "message": "ক্যামেরা",
-    "description": "Name of the Camera App."
-  },
-  "description": {
-    "message": "আপনার ক্যামেরা ব্যবহার করে ছবি তুলুন এবং ভিডিও রেকর্ড করুন।",
-    "description": "Short description of the Camera App."
-  },
-  "errorMsgFileSystemFailed": {
-    "message": "ফাইল সিস্টেমে সমস্যা।",
-    "description": "Error message shown when failing to read or write the file system."
-  },
-  "errorMsgNoCamera": {
-    "message": "আপনার ক্যামেরাটি বর্তমানে উপলভ্য নয়।\nক্যামেরাটি সঠিকভাবে কানেক্ট করা আছে কিনা দেখে নিন।",
-    "description": "Error message shown when it was impossible to connect to the camera due to unavailability."
-  },
-  "errorMsgGalleryExportFailed": {
-    "message": "$file$টি এক্সপোর্ট করা যায়নি",
-    "description": "Error message shown when exporting to an external directory failed. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg"
-      }
-    }
-  },
-  "errorMsgSaveFileFailed": {
-    "message": "ফাইলটি সেভ করা যায়নি",
-    "description": "Error message shown when saving/adding a image or video to the file system failed."
-  },
-  "errorMsgTakePhotoFailed": {
-    "message": "ফটো তোলা যায়নি",
-    "description": "Error message shown when failing to take photo."
-  },
-  "errorMsgRecordStartFailed": {
-    "message": "রেকর্ডিং শুরু করা যায়নি",
-    "description": "Error message shown when failing to start recording video."
-  },
-  "errorMsgEmptyRecording": {
-    "message": "কিছুই রেকর্ড করা হয়নি",
-    "description": "Error message shown when no data is recorded for a recording and it won't be added to the gallery."
-  },
-  "statusMsgRecordingStopped": {
-    "message": "রেকর্ডিং বন্ধ করা হয়েছে",
-    "description": "Status message for spoken feedback when video recording has been stopped."
-  },
-  "statusMsgCameraSwitched": {
-    "message": "$camera$ চালু আছে",
-    "description": "Status message for spoken feedback when switching over to another camera.",
-    "placeholders": {
-      "camera": {
-        "content": "$1",
-        "example": "USB WebCam (12ab:5678) User-facing"
-      }
-    }
-  },
-  "galleryButton": {
-    "message": "গ্যালারিতে যান",
-    "description": "Label for the gallery button."
-  },
-  "deleteButton": {
-    "message": "মুছুন",
-    "description": "Label for the delete button."
-  },
-  "exportButton": {
-    "message": "ডিস্কে এক্সপোর্ট করুন",
-    "description": "Label for the exporting button."
-  },
-  "printButton": {
-    "message": "প্রিন্ট করুন",
-    "description": "Label for the printing button."
-  },
-  "backButton": {
-    "message": "ফিরে যান",
-    "description": "Label for the back button."
-  },
-  "galleryImages": {
-    "message": "গ্যালারির ছবিগুলি",
-    "description": "Text to speech label for the gallery list."
-  },
-  "settingsButton": {
-    "message": "সেটিংস",
-    "description": "Label for the settings button."
-  },
-  "gridTypeButton": {
-    "message": "গ্রিডের ধরন",
-    "description": "Label for the button of grid-type options."
-  },
-  "timerDurationButton": {
-    "message": "টাইমার সময়কাল",
-    "description": "Label for the button of timer-duration options."
-  },
-  "feedbackButton": {
-    "message": "মতামত দিন",
-    "description": "Label for the feedback button."
-  },
-  "helpButton": {
-    "message": "সহায়তা",
-    "description": "Label for the help button."
-  },
-  "labelGrid3x3": {
-    "message": "৩ x ৩",
-    "description": "Label for for grid-type: 3x3."
-  },
-  "ariaGrid3x3": {
-    "message": "৩ বাই ৩",
-    "description": "Label for spoken feedback to read out grid-type: 3x3."
-  },
-  "labelGrid4x4": {
-    "message": "৪ x ৪",
-    "description": "Label for for grid-type: 4x4."
-  },
-  "ariaGrid4x4": {
-    "message": "৪ বাই ৪",
-    "description": "Label for spoken feedback to read out grid-type: 4x4."
-  },
-  "labelGridGolden": {
-    "message": "গোল্ডেন রেশিও",
-    "description": "Label for grid-type: golden ratio."
-  },
-  "labelTimer3s": {
-    "message": "৩ সেকেন্ড",
-    "description": "Label for timer-duration: 3 seconds."
-  },
-  "labelTimer10s": {
-    "message": "১০ সেকেন্ড",
-    "description": "Label for timer-duration: 10 seconds."
-  },
-  "takePhotoButton": {
-    "message": "ফটো তুলুন",
-    "description": "Label for the shutter button to take photo."
-  },
-  "takePhotoCancelButton": {
-    "message": "ফটো তোলা বন্ধ করুন",
-    "description": "Label for the shutter button to cancel countdown timer and stop taking photo."
-  },
-  "recordVideoStartButton": {
-    "message": "রেকর্ডিং শুরু করুন",
-    "description": "Label for the shutter button to start recording."
-  },
-  "recordVideoStopButton": {
-    "message": "রেকর্ডিং বন্ধ করুন",
-    "description": "Label for the shutter button to stop recording."
-  },
-  "switchCameraButton": {
-    "message": "পরবর্তী ক্যামেরাতে যান",
-    "description": "Label for the button to switch to next connected camera. Eg. switching from front facing to back facing, or a camera connected via USB. The button is shown only when more than one camera is connected."
-  },
-  "switchRecordVideoButton": {
-    "message": "ভিডিও রেকর্ড করতে পরিবর্তন করুন",
-    "description": "Label for the button to switch to record video mode."
-  },
-  "switchTakePhotoButton": {
-    "message": "ফটো তুলতে পরিবর্তন করুন",
-    "description": "Label for the button to switch to take photo mode."
-  },
-  "toggleTimerButton": {
-    "message": "টাইমার",
-    "description": "Label for the checkbox to toggle the countdown timer."
-  },
-  "toggleMirrorButton": {
-    "message": "মিররিং",
-    "description": "Label for the checkbox to toggle the preview mirroring. Eg. if mirroring is toggled on, preview will be flipped horizontally."
-  },
-  "toggleGridButton": {
-    "message": "গ্রিড",
-    "description": "Label for the checkbox to toggle the grid shown on preview."
-  },
-  "toggleMicButton": {
-    "message": "মাইক্রোফোন",
-    "description": "Label for the checkbox to toggle the microphone for recording video."
-  },
-  "dialogOKButton": {
-    "message": "ঠিক আছে",
-    "description": "Label for the accepting button in the dialog."
-  },
-  "dialogCancelButton": {
-    "message": "বাতিল করুন",
-    "description": "Label for the dismissing button in the dialog."
-  },
-  "deleteConfirmationMsg": {
-    "message": "আপনি কি সত্যিই $file$ সরিয়ে ফেলতে চান?",
-    "description": "Confirmation message before removing a selected item from the gallery. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg."
-      }
-    }
-  },
-  "deleteMultiConfirmationMsg": {
-    "message": "আপনি কি সত্যিই $count$টি আইটেম সরিয়ে ফেলতে চান?",
-    "description": "Confirmation message before removing multiple selected items from the gallery. Expects a file count to be passed in.",
-    "placeholders": {
-      "count": {
-        "content": "$1",
-        "example": "20."
-      }
-    }
-  },
-  "migratePicturesMsg": {
-    "message": "ক্যামেরায় তোলা ফটো এবং ভিডিও ডাউনলোড ফোল্ডারে সরিয়ে দেওয়া হবে। আপনি সেগুলি ফাইল বিকল্প থেকে অ্যাক্সেস করতে পারবেন।\n\nযে অ্যাপগুলিকে স্টোরেজ ব্যবহারের অনুমতি দেওয়া আছে সেগুলি আপনার ফটো এবং ভিডিও অ্যাক্সেস করতে পারবে।",
-    "description": "Message shown before moving all photos and videos stored in the Camera App to the Downloads folder."
-  }
-}
\ No newline at end of file
diff --git a/chrome/browser/resources/chromeos/camera/src/_locales/ca/messages.json b/chrome/browser/resources/chromeos/camera/src/_locales/ca/messages.json
deleted file mode 100644
index f3547e9d..0000000
--- a/chrome/browser/resources/chromeos/camera/src/_locales/ca/messages.json
+++ /dev/null
@@ -1,206 +0,0 @@
-{
-  "name": {
-    "message": "Càmera",
-    "description": "Name of the Camera App."
-  },
-  "description": {
-    "message": "Fes fotos i grava vídeos amb la càmera.",
-    "description": "Short description of the Camera App."
-  },
-  "errorMsgFileSystemFailed": {
-    "message": "Errors del sistema de fitxers.",
-    "description": "Error message shown when failing to read or write the file system."
-  },
-  "errorMsgNoCamera": {
-    "message": "La càmera no està disponible en aquest moment.\nComprova que la càmera estigui ben connectada.",
-    "description": "Error message shown when it was impossible to connect to the camera due to unavailability."
-  },
-  "errorMsgGalleryExportFailed": {
-    "message": "No es pot exportar el fitxer $file$",
-    "description": "Error message shown when exporting to an external directory failed. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg"
-      }
-    }
-  },
-  "errorMsgSaveFileFailed": {
-    "message": "No es pot desar el fitxer",
-    "description": "Error message shown when saving/adding a image or video to the file system failed."
-  },
-  "errorMsgTakePhotoFailed": {
-    "message": "No es pot fer la foto",
-    "description": "Error message shown when failing to take photo."
-  },
-  "errorMsgRecordStartFailed": {
-    "message": "No es pot iniciar la gravació",
-    "description": "Error message shown when failing to start recording video."
-  },
-  "errorMsgEmptyRecording": {
-    "message": "No s'ha gravat res",
-    "description": "Error message shown when no data is recorded for a recording and it won't be added to the gallery."
-  },
-  "statusMsgRecordingStopped": {
-    "message": "S'ha aturat la gravació",
-    "description": "Status message for spoken feedback when video recording has been stopped."
-  },
-  "statusMsgCameraSwitched": {
-    "message": "Càmera $camera$ activada",
-    "description": "Status message for spoken feedback when switching over to another camera.",
-    "placeholders": {
-      "camera": {
-        "content": "$1",
-        "example": "USB WebCam (12ab:5678) User-facing"
-      }
-    }
-  },
-  "galleryButton": {
-    "message": "Ves a la galeria",
-    "description": "Label for the gallery button."
-  },
-  "deleteButton": {
-    "message": "Suprimeix",
-    "description": "Label for the delete button."
-  },
-  "exportButton": {
-    "message": "Exporta al disc",
-    "description": "Label for the exporting button."
-  },
-  "printButton": {
-    "message": "Imprimeix",
-    "description": "Label for the printing button."
-  },
-  "backButton": {
-    "message": "Torna",
-    "description": "Label for the back button."
-  },
-  "galleryImages": {
-    "message": "Imatges de la galeria",
-    "description": "Text to speech label for the gallery list."
-  },
-  "settingsButton": {
-    "message": "Configuració",
-    "description": "Label for the settings button."
-  },
-  "gridTypeButton": {
-    "message": "Tipus de quadrícula",
-    "description": "Label for the button of grid-type options."
-  },
-  "timerDurationButton": {
-    "message": "Durada del temporitzador",
-    "description": "Label for the button of timer-duration options."
-  },
-  "feedbackButton": {
-    "message": "Envia suggeriments",
-    "description": "Label for the feedback button."
-  },
-  "helpButton": {
-    "message": "Ajuda",
-    "description": "Label for the help button."
-  },
-  "labelGrid3x3": {
-    "message": "3 x 3",
-    "description": "Label for for grid-type: 3x3."
-  },
-  "ariaGrid3x3": {
-    "message": "3 per 3",
-    "description": "Label for spoken feedback to read out grid-type: 3x3."
-  },
-  "labelGrid4x4": {
-    "message": "4 x 4",
-    "description": "Label for for grid-type: 4x4."
-  },
-  "ariaGrid4x4": {
-    "message": "4 per 4",
-    "description": "Label for spoken feedback to read out grid-type: 4x4."
-  },
-  "labelGridGolden": {
-    "message": "Proporció àuria",
-    "description": "Label for grid-type: golden ratio."
-  },
-  "labelTimer3s": {
-    "message": "3 segons",
-    "description": "Label for timer-duration: 3 seconds."
-  },
-  "labelTimer10s": {
-    "message": "10 segons",
-    "description": "Label for timer-duration: 10 seconds."
-  },
-  "takePhotoButton": {
-    "message": "Fes una foto",
-    "description": "Label for the shutter button to take photo."
-  },
-  "takePhotoCancelButton": {
-    "message": "No facis la foto",
-    "description": "Label for the shutter button to cancel countdown timer and stop taking photo."
-  },
-  "recordVideoStartButton": {
-    "message": "Comença a gravar",
-    "description": "Label for the shutter button to start recording."
-  },
-  "recordVideoStopButton": {
-    "message": "Atura la gravació",
-    "description": "Label for the shutter button to stop recording."
-  },
-  "switchCameraButton": {
-    "message": "Canvia a la càmera següent",
-    "description": "Label for the button to switch to next connected camera. Eg. switching from front facing to back facing, or a camera connected via USB. The button is shown only when more than one camera is connected."
-  },
-  "switchRecordVideoButton": {
-    "message": "Canvia al mode per gravar vídeo",
-    "description": "Label for the button to switch to record video mode."
-  },
-  "switchTakePhotoButton": {
-    "message": "Canvia al mode per fer fotos",
-    "description": "Label for the button to switch to take photo mode."
-  },
-  "toggleTimerButton": {
-    "message": "Temporitzador",
-    "description": "Label for the checkbox to toggle the countdown timer."
-  },
-  "toggleMirrorButton": {
-    "message": "Rèplica",
-    "description": "Label for the checkbox to toggle the preview mirroring. Eg. if mirroring is toggled on, preview will be flipped horizontally."
-  },
-  "toggleGridButton": {
-    "message": "Quadrícula",
-    "description": "Label for the checkbox to toggle the grid shown on preview."
-  },
-  "toggleMicButton": {
-    "message": "Micròfon",
-    "description": "Label for the checkbox to toggle the microphone for recording video."
-  },
-  "dialogOKButton": {
-    "message": "D'acord",
-    "description": "Label for the accepting button in the dialog."
-  },
-  "dialogCancelButton": {
-    "message": "Cancel·la",
-    "description": "Label for the dismissing button in the dialog."
-  },
-  "deleteConfirmationMsg": {
-    "message": "Confirmes que vols suprimir el fitxer $file$?",
-    "description": "Confirmation message before removing a selected item from the gallery. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg."
-      }
-    }
-  },
-  "deleteMultiConfirmationMsg": {
-    "message": "Confirmes que vols suprimir $count$ elements?",
-    "description": "Confirmation message before removing multiple selected items from the gallery. Expects a file count to be passed in.",
-    "placeholders": {
-      "count": {
-        "content": "$1",
-        "example": "20."
-      }
-    }
-  },
-  "migratePicturesMsg": {
-    "message": "Les fotos i els vídeos que es facin amb la càmera es mouran a la carpeta Baixades. Pots accedir-hi des de Fitxers.\n\nLes aplicacions amb permisos d'emmagatzematge tindran accés a les fotos i als vídeos.",
-    "description": "Message shown before moving all photos and videos stored in the Camera App to the Downloads folder."
-  }
-}
\ No newline at end of file
diff --git a/chrome/browser/resources/chromeos/camera/src/_locales/cs/messages.json b/chrome/browser/resources/chromeos/camera/src/_locales/cs/messages.json
deleted file mode 100644
index c5bd4ff..0000000
--- a/chrome/browser/resources/chromeos/camera/src/_locales/cs/messages.json
+++ /dev/null
@@ -1,206 +0,0 @@
-{
-  "name": {
-    "message": "Fotoaparát",
-    "description": "Name of the Camera App."
-  },
-  "description": {
-    "message": "Foťte a nahrávejte videa pomocí fotoaparátu.",
-    "description": "Short description of the Camera App."
-  },
-  "errorMsgFileSystemFailed": {
-    "message": "Chyby systému souborů.",
-    "description": "Error message shown when failing to read or write the file system."
-  },
-  "errorMsgNoCamera": {
-    "message": "Fotoaparát momentálně není dostupný.\nZkontrolujte, zda je fotoaparát správně připojen.",
-    "description": "Error message shown when it was impossible to connect to the camera due to unavailability."
-  },
-  "errorMsgGalleryExportFailed": {
-    "message": "Soubor $file$ se nepodařilo exportovat",
-    "description": "Error message shown when exporting to an external directory failed. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg"
-      }
-    }
-  },
-  "errorMsgSaveFileFailed": {
-    "message": "Soubor se nepodařilo uložit",
-    "description": "Error message shown when saving/adding a image or video to the file system failed."
-  },
-  "errorMsgTakePhotoFailed": {
-    "message": "Fotku se nepodařilo pořídit",
-    "description": "Error message shown when failing to take photo."
-  },
-  "errorMsgRecordStartFailed": {
-    "message": "Nahrávání se nepodařilo zahájit",
-    "description": "Error message shown when failing to start recording video."
-  },
-  "errorMsgEmptyRecording": {
-    "message": "Nic nebylo zaznamenáno",
-    "description": "Error message shown when no data is recorded for a recording and it won't be added to the gallery."
-  },
-  "statusMsgRecordingStopped": {
-    "message": "Nahrávání bylo zastaveno",
-    "description": "Status message for spoken feedback when video recording has been stopped."
-  },
-  "statusMsgCameraSwitched": {
-    "message": "$camera$ je aktivní",
-    "description": "Status message for spoken feedback when switching over to another camera.",
-    "placeholders": {
-      "camera": {
-        "content": "$1",
-        "example": "USB WebCam (12ab:5678) User-facing"
-      }
-    }
-  },
-  "galleryButton": {
-    "message": "Přejít do galerie",
-    "description": "Label for the gallery button."
-  },
-  "deleteButton": {
-    "message": "Smazat",
-    "description": "Label for the delete button."
-  },
-  "exportButton": {
-    "message": "Exportovat na disk",
-    "description": "Label for the exporting button."
-  },
-  "printButton": {
-    "message": "Tisknout",
-    "description": "Label for the printing button."
-  },
-  "backButton": {
-    "message": "Zpět",
-    "description": "Label for the back button."
-  },
-  "galleryImages": {
-    "message": "Obrázky v galerii",
-    "description": "Text to speech label for the gallery list."
-  },
-  "settingsButton": {
-    "message": "Nastavení",
-    "description": "Label for the settings button."
-  },
-  "gridTypeButton": {
-    "message": "Typ mřížky",
-    "description": "Label for the button of grid-type options."
-  },
-  "timerDurationButton": {
-    "message": "Trvání časovače",
-    "description": "Label for the button of timer-duration options."
-  },
-  "feedbackButton": {
-    "message": "Odeslat zpětnou vazbu",
-    "description": "Label for the feedback button."
-  },
-  "helpButton": {
-    "message": "Nápověda",
-    "description": "Label for the help button."
-  },
-  "labelGrid3x3": {
-    "message": "3 × 3",
-    "description": "Label for for grid-type: 3x3."
-  },
-  "ariaGrid3x3": {
-    "message": "3 krát 3",
-    "description": "Label for spoken feedback to read out grid-type: 3x3."
-  },
-  "labelGrid4x4": {
-    "message": "4 × 4",
-    "description": "Label for for grid-type: 4x4."
-  },
-  "ariaGrid4x4": {
-    "message": "4 krát 4",
-    "description": "Label for spoken feedback to read out grid-type: 4x4."
-  },
-  "labelGridGolden": {
-    "message": "Zlatý řez",
-    "description": "Label for grid-type: golden ratio."
-  },
-  "labelTimer3s": {
-    "message": "3 sekundy",
-    "description": "Label for timer-duration: 3 seconds."
-  },
-  "labelTimer10s": {
-    "message": "10 sekund",
-    "description": "Label for timer-duration: 10 seconds."
-  },
-  "takePhotoButton": {
-    "message": "Vyfotit",
-    "description": "Label for the shutter button to take photo."
-  },
-  "takePhotoCancelButton": {
-    "message": "Zastavit focení",
-    "description": "Label for the shutter button to cancel countdown timer and stop taking photo."
-  },
-  "recordVideoStartButton": {
-    "message": "Zahájit nahrávání",
-    "description": "Label for the shutter button to start recording."
-  },
-  "recordVideoStopButton": {
-    "message": "Zastavit nahrávání",
-    "description": "Label for the shutter button to stop recording."
-  },
-  "switchCameraButton": {
-    "message": "Přepnout na další fotoaparát",
-    "description": "Label for the button to switch to next connected camera. Eg. switching from front facing to back facing, or a camera connected via USB. The button is shown only when more than one camera is connected."
-  },
-  "switchRecordVideoButton": {
-    "message": "Přepnout na záznam videa",
-    "description": "Label for the button to switch to record video mode."
-  },
-  "switchTakePhotoButton": {
-    "message": "Přepnout na focení",
-    "description": "Label for the button to switch to take photo mode."
-  },
-  "toggleTimerButton": {
-    "message": "Časovač",
-    "description": "Label for the checkbox to toggle the countdown timer."
-  },
-  "toggleMirrorButton": {
-    "message": "Zrcadlení",
-    "description": "Label for the checkbox to toggle the preview mirroring. Eg. if mirroring is toggled on, preview will be flipped horizontally."
-  },
-  "toggleGridButton": {
-    "message": "Mřížka",
-    "description": "Label for the checkbox to toggle the grid shown on preview."
-  },
-  "toggleMicButton": {
-    "message": "Mikrofon",
-    "description": "Label for the checkbox to toggle the microphone for recording video."
-  },
-  "dialogOKButton": {
-    "message": "OK",
-    "description": "Label for the accepting button in the dialog."
-  },
-  "dialogCancelButton": {
-    "message": "Zrušit",
-    "description": "Label for the dismissing button in the dialog."
-  },
-  "deleteConfirmationMsg": {
-    "message": "Opravdu chcete soubor $file$ odstranit?",
-    "description": "Confirmation message before removing a selected item from the gallery. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg."
-      }
-    }
-  },
-  "deleteMultiConfirmationMsg": {
-    "message": "Opravdu chcete tyto položky ($count$) odstranit?",
-    "description": "Confirmation message before removing multiple selected items from the gallery. Expects a file count to be passed in.",
-    "placeholders": {
-      "count": {
-        "content": "$1",
-        "example": "20."
-      }
-    }
-  },
-  "migratePicturesMsg": {
-    "message": "Fotky a videa pořízená fotoaparátem se přesunou do složky stažených souborů. Najdete je v aplikaci Soubory.\n\nK vašim fotkám a videím budou mít přístup aplikace s oprávněním k úložišti.",
-    "description": "Message shown before moving all photos and videos stored in the Camera App to the Downloads folder."
-  }
-}
\ No newline at end of file
diff --git a/chrome/browser/resources/chromeos/camera/src/_locales/da/messages.json b/chrome/browser/resources/chromeos/camera/src/_locales/da/messages.json
deleted file mode 100644
index cbe678a..0000000
--- a/chrome/browser/resources/chromeos/camera/src/_locales/da/messages.json
+++ /dev/null
@@ -1,206 +0,0 @@
-{
-  "name": {
-    "message": "Kamera",
-    "description": "Name of the Camera App."
-  },
-  "description": {
-    "message": "Tag billeder, og optag videoer med dit kamera.",
-    "description": "Short description of the Camera App."
-  },
-  "errorMsgFileSystemFailed": {
-    "message": "Der er opstået fejl i filsystemet.",
-    "description": "Error message shown when failing to read or write the file system."
-  },
-  "errorMsgNoCamera": {
-    "message": "Dit kamera er i øjeblikket utilgængeligt.\nTjek, om kameraet er tilsluttet korrekt.",
-    "description": "Error message shown when it was impossible to connect to the camera due to unavailability."
-  },
-  "errorMsgGalleryExportFailed": {
-    "message": "$file$ kan ikke eksporteres",
-    "description": "Error message shown when exporting to an external directory failed. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg"
-      }
-    }
-  },
-  "errorMsgSaveFileFailed": {
-    "message": "Filen kan ikke gemmes",
-    "description": "Error message shown when saving/adding a image or video to the file system failed."
-  },
-  "errorMsgTakePhotoFailed": {
-    "message": "Det er ikke muligt at tage billeder",
-    "description": "Error message shown when failing to take photo."
-  },
-  "errorMsgRecordStartFailed": {
-    "message": "Det er ikke muligt at starte en optagelse",
-    "description": "Error message shown when failing to start recording video."
-  },
-  "errorMsgEmptyRecording": {
-    "message": "Der er ingen optagelser",
-    "description": "Error message shown when no data is recorded for a recording and it won't be added to the gallery."
-  },
-  "statusMsgRecordingStopped": {
-    "message": "Optagelsen er stoppet",
-    "description": "Status message for spoken feedback when video recording has been stopped."
-  },
-  "statusMsgCameraSwitched": {
-    "message": "$camera$ er aktivt",
-    "description": "Status message for spoken feedback when switching over to another camera.",
-    "placeholders": {
-      "camera": {
-        "content": "$1",
-        "example": "USB WebCam (12ab:5678) User-facing"
-      }
-    }
-  },
-  "galleryButton": {
-    "message": "Gå til galleri",
-    "description": "Label for the gallery button."
-  },
-  "deleteButton": {
-    "message": "Slet",
-    "description": "Label for the delete button."
-  },
-  "exportButton": {
-    "message": "Eksportér til disk",
-    "description": "Label for the exporting button."
-  },
-  "printButton": {
-    "message": "Udskriv",
-    "description": "Label for the printing button."
-  },
-  "backButton": {
-    "message": "Gå tilbage",
-    "description": "Label for the back button."
-  },
-  "galleryImages": {
-    "message": "Galleribilleder",
-    "description": "Text to speech label for the gallery list."
-  },
-  "settingsButton": {
-    "message": "Indstillinger",
-    "description": "Label for the settings button."
-  },
-  "gridTypeButton": {
-    "message": "Gittertype",
-    "description": "Label for the button of grid-type options."
-  },
-  "timerDurationButton": {
-    "message": "Varighed for timer",
-    "description": "Label for the button of timer-duration options."
-  },
-  "feedbackButton": {
-    "message": "Giv feedback",
-    "description": "Label for the feedback button."
-  },
-  "helpButton": {
-    "message": "Hjælp",
-    "description": "Label for the help button."
-  },
-  "labelGrid3x3": {
-    "message": "3x3",
-    "description": "Label for for grid-type: 3x3."
-  },
-  "ariaGrid3x3": {
-    "message": "3 gange 3",
-    "description": "Label for spoken feedback to read out grid-type: 3x3."
-  },
-  "labelGrid4x4": {
-    "message": "4x4",
-    "description": "Label for for grid-type: 4x4."
-  },
-  "ariaGrid4x4": {
-    "message": "4 gange 4",
-    "description": "Label for spoken feedback to read out grid-type: 4x4."
-  },
-  "labelGridGolden": {
-    "message": "Det gyldne snit",
-    "description": "Label for grid-type: golden ratio."
-  },
-  "labelTimer3s": {
-    "message": "3 sekunder",
-    "description": "Label for timer-duration: 3 seconds."
-  },
-  "labelTimer10s": {
-    "message": "10 sekunder",
-    "description": "Label for timer-duration: 10 seconds."
-  },
-  "takePhotoButton": {
-    "message": "Tag billede",
-    "description": "Label for the shutter button to take photo."
-  },
-  "takePhotoCancelButton": {
-    "message": "Stop med at tage billedet",
-    "description": "Label for the shutter button to cancel countdown timer and stop taking photo."
-  },
-  "recordVideoStartButton": {
-    "message": "Start optagelse",
-    "description": "Label for the shutter button to start recording."
-  },
-  "recordVideoStopButton": {
-    "message": "Stop optagelse",
-    "description": "Label for the shutter button to stop recording."
-  },
-  "switchCameraButton": {
-    "message": "Skift til næste kamera",
-    "description": "Label for the button to switch to next connected camera. Eg. switching from front facing to back facing, or a camera connected via USB. The button is shown only when more than one camera is connected."
-  },
-  "switchRecordVideoButton": {
-    "message": "Skift til videooptagelse",
-    "description": "Label for the button to switch to record video mode."
-  },
-  "switchTakePhotoButton": {
-    "message": "Skift til billedtilstand",
-    "description": "Label for the button to switch to take photo mode."
-  },
-  "toggleTimerButton": {
-    "message": "Timer",
-    "description": "Label for the checkbox to toggle the countdown timer."
-  },
-  "toggleMirrorButton": {
-    "message": "Spejling",
-    "description": "Label for the checkbox to toggle the preview mirroring. Eg. if mirroring is toggled on, preview will be flipped horizontally."
-  },
-  "toggleGridButton": {
-    "message": "Gitter",
-    "description": "Label for the checkbox to toggle the grid shown on preview."
-  },
-  "toggleMicButton": {
-    "message": "Mikrofon",
-    "description": "Label for the checkbox to toggle the microphone for recording video."
-  },
-  "dialogOKButton": {
-    "message": "OK",
-    "description": "Label for the accepting button in the dialog."
-  },
-  "dialogCancelButton": {
-    "message": "Annuller",
-    "description": "Label for the dismissing button in the dialog."
-  },
-  "deleteConfirmationMsg": {
-    "message": "Er du sikker på, at du vil fjerne $file$?",
-    "description": "Confirmation message before removing a selected item from the gallery. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg."
-      }
-    }
-  },
-  "deleteMultiConfirmationMsg": {
-    "message": "Er du sikker på, at du vil fjerne $count$ elementer?",
-    "description": "Confirmation message before removing multiple selected items from the gallery. Expects a file count to be passed in.",
-    "placeholders": {
-      "count": {
-        "content": "$1",
-        "example": "20."
-      }
-    }
-  },
-  "migratePicturesMsg": {
-    "message": "Billeder og videoer, der er taget med kameraet, flyttes til mappen Downloads. Du kan finde dem under Filer.\n\nApps med lagertilladelser vil have adgang til dine billeder og videoer.",
-    "description": "Message shown before moving all photos and videos stored in the Camera App to the Downloads folder."
-  }
-}
\ No newline at end of file
diff --git a/chrome/browser/resources/chromeos/camera/src/_locales/de/messages.json b/chrome/browser/resources/chromeos/camera/src/_locales/de/messages.json
deleted file mode 100644
index e861ad3..0000000
--- a/chrome/browser/resources/chromeos/camera/src/_locales/de/messages.json
+++ /dev/null
@@ -1,206 +0,0 @@
-{
-  "name": {
-    "message": "Kamera",
-    "description": "Name of the Camera App."
-  },
-  "description": {
-    "message": "Nehmen Sie Fotos und Videos mit Ihrer Kamera auf.",
-    "description": "Short description of the Camera App."
-  },
-  "errorMsgFileSystemFailed": {
-    "message": "Fehler im Dateisystem.",
-    "description": "Error message shown when failing to read or write the file system."
-  },
-  "errorMsgNoCamera": {
-    "message": "Ihre Kamera ist derzeit nicht verfügbar.\nÜberprüfen Sie bitte, ob die Kamera richtig verbunden ist.",
-    "description": "Error message shown when it was impossible to connect to the camera due to unavailability."
-  },
-  "errorMsgGalleryExportFailed": {
-    "message": "$file$ konnte nicht exportiert werden",
-    "description": "Error message shown when exporting to an external directory failed. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg"
-      }
-    }
-  },
-  "errorMsgSaveFileFailed": {
-    "message": "Datei konnte nicht gespeichert werden",
-    "description": "Error message shown when saving/adding a image or video to the file system failed."
-  },
-  "errorMsgTakePhotoFailed": {
-    "message": "Foto konnte nicht aufgenommen werden",
-    "description": "Error message shown when failing to take photo."
-  },
-  "errorMsgRecordStartFailed": {
-    "message": "Videoaufnahme konnte nicht gestartet werden",
-    "description": "Error message shown when failing to start recording video."
-  },
-  "errorMsgEmptyRecording": {
-    "message": "Keine Aufzeichnung",
-    "description": "Error message shown when no data is recorded for a recording and it won't be added to the gallery."
-  },
-  "statusMsgRecordingStopped": {
-    "message": "Aufzeichnung wurde beendet",
-    "description": "Status message for spoken feedback when video recording has been stopped."
-  },
-  "statusMsgCameraSwitched": {
-    "message": "$camera$ aktiv",
-    "description": "Status message for spoken feedback when switching over to another camera.",
-    "placeholders": {
-      "camera": {
-        "content": "$1",
-        "example": "USB WebCam (12ab:5678) User-facing"
-      }
-    }
-  },
-  "galleryButton": {
-    "message": "Zur Galerie",
-    "description": "Label for the gallery button."
-  },
-  "deleteButton": {
-    "message": "Löschen",
-    "description": "Label for the delete button."
-  },
-  "exportButton": {
-    "message": "Auf Festplatte exportieren",
-    "description": "Label for the exporting button."
-  },
-  "printButton": {
-    "message": "Drucken",
-    "description": "Label for the printing button."
-  },
-  "backButton": {
-    "message": "Zurück",
-    "description": "Label for the back button."
-  },
-  "galleryImages": {
-    "message": "Galeriebilder",
-    "description": "Text to speech label for the gallery list."
-  },
-  "settingsButton": {
-    "message": "Einstellungen",
-    "description": "Label for the settings button."
-  },
-  "gridTypeButton": {
-    "message": "Rastertyp",
-    "description": "Label for the button of grid-type options."
-  },
-  "timerDurationButton": {
-    "message": "Timerdauer",
-    "description": "Label for the button of timer-duration options."
-  },
-  "feedbackButton": {
-    "message": "Feedback geben",
-    "description": "Label for the feedback button."
-  },
-  "helpButton": {
-    "message": "Hilfe",
-    "description": "Label for the help button."
-  },
-  "labelGrid3x3": {
-    "message": "3 x 3",
-    "description": "Label for for grid-type: 3x3."
-  },
-  "ariaGrid3x3": {
-    "message": "3 mal 3",
-    "description": "Label for spoken feedback to read out grid-type: 3x3."
-  },
-  "labelGrid4x4": {
-    "message": "4 x 4",
-    "description": "Label for for grid-type: 4x4."
-  },
-  "ariaGrid4x4": {
-    "message": "4 mal 4",
-    "description": "Label for spoken feedback to read out grid-type: 4x4."
-  },
-  "labelGridGolden": {
-    "message": "Goldener Schnitt",
-    "description": "Label for grid-type: golden ratio."
-  },
-  "labelTimer3s": {
-    "message": "3 Sekunden",
-    "description": "Label for timer-duration: 3 seconds."
-  },
-  "labelTimer10s": {
-    "message": "10 Sekunden",
-    "description": "Label for timer-duration: 10 seconds."
-  },
-  "takePhotoButton": {
-    "message": "Foto aufnehmen",
-    "description": "Label for the shutter button to take photo."
-  },
-  "takePhotoCancelButton": {
-    "message": "Fotoaufnahme beenden",
-    "description": "Label for the shutter button to cancel countdown timer and stop taking photo."
-  },
-  "recordVideoStartButton": {
-    "message": "Video aufnehmen",
-    "description": "Label for the shutter button to start recording."
-  },
-  "recordVideoStopButton": {
-    "message": "Videoaufnahme beenden",
-    "description": "Label for the shutter button to stop recording."
-  },
-  "switchCameraButton": {
-    "message": "Zur nächsten Kamera wechseln",
-    "description": "Label for the button to switch to next connected camera. Eg. switching from front facing to back facing, or a camera connected via USB. The button is shown only when more than one camera is connected."
-  },
-  "switchRecordVideoButton": {
-    "message": "Zu Videomodus wechseln",
-    "description": "Label for the button to switch to record video mode."
-  },
-  "switchTakePhotoButton": {
-    "message": "Zu Fotomodus wechseln",
-    "description": "Label for the button to switch to take photo mode."
-  },
-  "toggleTimerButton": {
-    "message": "Timer",
-    "description": "Label for the checkbox to toggle the countdown timer."
-  },
-  "toggleMirrorButton": {
-    "message": "Spiegeln",
-    "description": "Label for the checkbox to toggle the preview mirroring. Eg. if mirroring is toggled on, preview will be flipped horizontally."
-  },
-  "toggleGridButton": {
-    "message": "Raster",
-    "description": "Label for the checkbox to toggle the grid shown on preview."
-  },
-  "toggleMicButton": {
-    "message": "Mikrofon",
-    "description": "Label for the checkbox to toggle the microphone for recording video."
-  },
-  "dialogOKButton": {
-    "message": "OK",
-    "description": "Label for the accepting button in the dialog."
-  },
-  "dialogCancelButton": {
-    "message": "Abbrechen",
-    "description": "Label for the dismissing button in the dialog."
-  },
-  "deleteConfirmationMsg": {
-    "message": "Möchten Sie \"$file$\" wirklich entfernen?",
-    "description": "Confirmation message before removing a selected item from the gallery. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg."
-      }
-    }
-  },
-  "deleteMultiConfirmationMsg": {
-    "message": "Möchten Sie $count$ Elemente wirklich entfernen?",
-    "description": "Confirmation message before removing multiple selected items from the gallery. Expects a file count to be passed in.",
-    "placeholders": {
-      "count": {
-        "content": "$1",
-        "example": "20."
-      }
-    }
-  },
-  "migratePicturesMsg": {
-    "message": "Mit der Kamera aufgenommene Fotos und Videos werden in den Ordner \"Downloads\" verschoben. Sie können sie in der App \"Dateien\" ansehen.\n\nApps mit Speicherberechtigungen haben Zugriff auf Ihre Fotos und Videos.",
-    "description": "Message shown before moving all photos and videos stored in the Camera App to the Downloads folder."
-  }
-}
\ No newline at end of file
diff --git a/chrome/browser/resources/chromeos/camera/src/_locales/el/messages.json b/chrome/browser/resources/chromeos/camera/src/_locales/el/messages.json
deleted file mode 100644
index 87f1866b..0000000
--- a/chrome/browser/resources/chromeos/camera/src/_locales/el/messages.json
+++ /dev/null
@@ -1,206 +0,0 @@
-{
-  "name": {
-    "message": "Κάμερα",
-    "description": "Name of the Camera App."
-  },
-  "description": {
-    "message": "Τραβήξτε φωτογραφίες και βίντεο με την κάμερά σας.",
-    "description": "Short description of the Camera App."
-  },
-  "errorMsgFileSystemFailed": {
-    "message": "Αρχειοθετήστε σφάλματα συστήματος.",
-    "description": "Error message shown when failing to read or write the file system."
-  },
-  "errorMsgNoCamera": {
-    "message": "Η κάμερά σας δεν είναι διαθέσιμη προς το παρόν.\nΕλέγξτε αν η κάμερα έχει συνδεθεί σωστά.",
-    "description": "Error message shown when it was impossible to connect to the camera due to unavailability."
-  },
-  "errorMsgGalleryExportFailed": {
-    "message": "Δεν είναι δυνατή η εξαγωγή του αρχείου $file$",
-    "description": "Error message shown when exporting to an external directory failed. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg"
-      }
-    }
-  },
-  "errorMsgSaveFileFailed": {
-    "message": "Δεν είναι δυνατή η αποθήκευση του αρχείου",
-    "description": "Error message shown when saving/adding a image or video to the file system failed."
-  },
-  "errorMsgTakePhotoFailed": {
-    "message": "Δεν είναι δυνατή η λήψη φωτογραφίας",
-    "description": "Error message shown when failing to take photo."
-  },
-  "errorMsgRecordStartFailed": {
-    "message": "Δεν είναι δυνατή η έναρξη της εγγραφής",
-    "description": "Error message shown when failing to start recording video."
-  },
-  "errorMsgEmptyRecording": {
-    "message": "Καμία εγγραφή",
-    "description": "Error message shown when no data is recorded for a recording and it won't be added to the gallery."
-  },
-  "statusMsgRecordingStopped": {
-    "message": "Η εγγραφή διακόπηκε",
-    "description": "Status message for spoken feedback when video recording has been stopped."
-  },
-  "statusMsgCameraSwitched": {
-    "message": "$camera$ ενεργή",
-    "description": "Status message for spoken feedback when switching over to another camera.",
-    "placeholders": {
-      "camera": {
-        "content": "$1",
-        "example": "USB WebCam (12ab:5678) User-facing"
-      }
-    }
-  },
-  "galleryButton": {
-    "message": "Μετάβαση στο gallery",
-    "description": "Label for the gallery button."
-  },
-  "deleteButton": {
-    "message": "Διαγραφή",
-    "description": "Label for the delete button."
-  },
-  "exportButton": {
-    "message": "Εξαγωγή σε δίσκο",
-    "description": "Label for the exporting button."
-  },
-  "printButton": {
-    "message": "Εκτύπωση",
-    "description": "Label for the printing button."
-  },
-  "backButton": {
-    "message": "Πίσω",
-    "description": "Label for the back button."
-  },
-  "galleryImages": {
-    "message": "Εικόνες gallery",
-    "description": "Text to speech label for the gallery list."
-  },
-  "settingsButton": {
-    "message": "Ρυθμίσεις",
-    "description": "Label for the settings button."
-  },
-  "gridTypeButton": {
-    "message": "Τύπος πλέγματος",
-    "description": "Label for the button of grid-type options."
-  },
-  "timerDurationButton": {
-    "message": "Διάρκεια χρονομέτρου",
-    "description": "Label for the button of timer-duration options."
-  },
-  "feedbackButton": {
-    "message": "Αποστολή σχολίων",
-    "description": "Label for the feedback button."
-  },
-  "helpButton": {
-    "message": "Βοήθεια",
-    "description": "Label for the help button."
-  },
-  "labelGrid3x3": {
-    "message": "3 x 3",
-    "description": "Label for for grid-type: 3x3."
-  },
-  "ariaGrid3x3": {
-    "message": "3 x 3",
-    "description": "Label for spoken feedback to read out grid-type: 3x3."
-  },
-  "labelGrid4x4": {
-    "message": "4 x 4",
-    "description": "Label for for grid-type: 4x4."
-  },
-  "ariaGrid4x4": {
-    "message": "4 x 4",
-    "description": "Label for spoken feedback to read out grid-type: 4x4."
-  },
-  "labelGridGolden": {
-    "message": "Ιδανικός λόγος διαστάσεων",
-    "description": "Label for grid-type: golden ratio."
-  },
-  "labelTimer3s": {
-    "message": "3 δευτερόλεπτα",
-    "description": "Label for timer-duration: 3 seconds."
-  },
-  "labelTimer10s": {
-    "message": "10 δευτερόλεπτα",
-    "description": "Label for timer-duration: 10 seconds."
-  },
-  "takePhotoButton": {
-    "message": "Λήψη φωτογραφίας",
-    "description": "Label for the shutter button to take photo."
-  },
-  "takePhotoCancelButton": {
-    "message": "Διακοπή λήψης φωτογραφίας",
-    "description": "Label for the shutter button to cancel countdown timer and stop taking photo."
-  },
-  "recordVideoStartButton": {
-    "message": "Έναρξη εγγραφής",
-    "description": "Label for the shutter button to start recording."
-  },
-  "recordVideoStopButton": {
-    "message": "Διακοπή εγγραφής",
-    "description": "Label for the shutter button to stop recording."
-  },
-  "switchCameraButton": {
-    "message": "Μετάβαση στην επόμενη κάμερα",
-    "description": "Label for the button to switch to next connected camera. Eg. switching from front facing to back facing, or a camera connected via USB. The button is shown only when more than one camera is connected."
-  },
-  "switchRecordVideoButton": {
-    "message": "Μετάβαση στη λειτουργία εγγραφής βίντεο",
-    "description": "Label for the button to switch to record video mode."
-  },
-  "switchTakePhotoButton": {
-    "message": "Μετάβαση στη λειτουργία λήψης φωτογραφίας",
-    "description": "Label for the button to switch to take photo mode."
-  },
-  "toggleTimerButton": {
-    "message": "Χρονόμετρο",
-    "description": "Label for the checkbox to toggle the countdown timer."
-  },
-  "toggleMirrorButton": {
-    "message": "Κατοπτρισμός",
-    "description": "Label for the checkbox to toggle the preview mirroring. Eg. if mirroring is toggled on, preview will be flipped horizontally."
-  },
-  "toggleGridButton": {
-    "message": "Πλέγμα",
-    "description": "Label for the checkbox to toggle the grid shown on preview."
-  },
-  "toggleMicButton": {
-    "message": "Μικρόφωνο",
-    "description": "Label for the checkbox to toggle the microphone for recording video."
-  },
-  "dialogOKButton": {
-    "message": "ΟΚ",
-    "description": "Label for the accepting button in the dialog."
-  },
-  "dialogCancelButton": {
-    "message": "Ακύρωση",
-    "description": "Label for the dismissing button in the dialog."
-  },
-  "deleteConfirmationMsg": {
-    "message": "Είστε βέβαιοι ότι θέλετε να καταργήσετε το αρχείο $file$;",
-    "description": "Confirmation message before removing a selected item from the gallery. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg."
-      }
-    }
-  },
-  "deleteMultiConfirmationMsg": {
-    "message": "Είστε βέβαιοι ότι θέλετε να καταργήσετε $count$ στοιχεία;",
-    "description": "Confirmation message before removing multiple selected items from the gallery. Expects a file count to be passed in.",
-    "placeholders": {
-      "count": {
-        "content": "$1",
-        "example": "20."
-      }
-    }
-  },
-  "migratePicturesMsg": {
-    "message": "Οι φωτογραφίες και τα βίντεο που λήφθηκαν με την κάμερα θα μετακινηθούν στον φάκελο \"Λήψεις\". Μπορείτε να τα δείτε στα Αρχεία.\n\nΟι εφαρμογές με άδειες αποθηκευτικού χώρου θα έχουν πρόσβαση στις φωτογραφίες και τα βίντεό σας.",
-    "description": "Message shown before moving all photos and videos stored in the Camera App to the Downloads folder."
-  }
-}
\ No newline at end of file
diff --git a/chrome/browser/resources/chromeos/camera/src/_locales/en/messages.json b/chrome/browser/resources/chromeos/camera/src/_locales/en/messages.json
deleted file mode 100644
index 6412f2d..0000000
--- a/chrome/browser/resources/chromeos/camera/src/_locales/en/messages.json
+++ /dev/null
@@ -1,206 +0,0 @@
-{
-  "name": {
-    "message": "Camera",
-    "description": "Name of the Camera App."
-  },
-  "description": {
-    "message": "Take photos and record videos with your camera.",
-    "description": "Short description of the Camera App."
-  },
-  "errorMsgFileSystemFailed": {
-    "message": "File system errors.",
-    "description": "Error message shown when failing to read or write the file system."
-  },
-  "errorMsgNoCamera": {
-    "message": "Your camera is currently unavailable.\nPlease check if the camera is properly connected.",
-    "description": "Error message shown when it was impossible to connect to the camera due to unavailability."
-  },
-  "errorMsgGalleryExportFailed": {
-    "message": "Unable to export $file$",
-    "description": "Error message shown when exporting to an external directory failed. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg"
-      }
-    }
-  },
-  "errorMsgSaveFileFailed": {
-    "message": "Unable to save the file",
-    "description": "Error message shown when saving/adding a image or video to the file system failed."
-  },
-  "errorMsgTakePhotoFailed": {
-    "message": "Unable to take photo",
-    "description": "Error message shown when failing to take photo."
-  },
-  "errorMsgRecordStartFailed": {
-    "message": "Unable to start recording",
-    "description": "Error message shown when failing to start recording video."
-  },
-  "errorMsgEmptyRecording": {
-    "message": "Nothing recorded",
-    "description": "Error message shown when no data is recorded for a recording and it won't be added to the gallery."
-  },
-  "statusMsgRecordingStopped": {
-    "message": "Recording stopped",
-    "description": "Status message for spoken feedback when video recording has been stopped."
-  },
-  "statusMsgCameraSwitched": {
-    "message": "$camera$ active",
-    "description": "Status message for spoken feedback when switching over to another camera.",
-    "placeholders": {
-      "camera": {
-        "content": "$1",
-        "example": "USB WebCam (12ab:5678) User-facing"
-      }
-    }
-  },
-  "galleryButton": {
-    "message": "Go to gallery",
-    "description": "Label for the gallery button."
-  },
-  "deleteButton": {
-    "message": "Delete",
-    "description": "Label for the delete button."
-  },
-  "exportButton": {
-    "message": "Export to disk",
-    "description": "Label for the exporting button."
-  },
-  "printButton": {
-    "message": "Print",
-    "description": "Label for the printing button."
-  },
-  "backButton": {
-    "message": "Go back",
-    "description": "Label for the back button."
-  },
-  "galleryImages": {
-    "message": "Gallery images",
-    "description": "Text to speech label for the gallery list."
-  },
-  "settingsButton": {
-    "message": "Settings",
-    "description": "Label for the settings button."
-  },
-  "gridTypeButton": {
-    "message": "Grid type",
-    "description": "Label for the button of grid-type options."
-  },
-  "timerDurationButton": {
-    "message": "Timer duration",
-    "description": "Label for the button of timer-duration options."
-  },
-  "feedbackButton": {
-    "message": "Send feedback",
-    "description": "Label for the feedback button."
-  },
-  "helpButton": {
-    "message": "Help",
-    "description": "Label for the help button."
-  },
-  "labelGrid3x3": {
-    "message": "3 x 3",
-    "description": "Label for for grid-type: 3x3."
-  },
-  "ariaGrid3x3": {
-    "message": "3 by 3",
-    "description": "Label for spoken feedback to read out grid-type: 3x3."
-  },
-  "labelGrid4x4": {
-    "message": "4 x 4",
-    "description": "Label for for grid-type: 4x4."
-  },
-  "ariaGrid4x4": {
-    "message": "4 by 4",
-    "description": "Label for spoken feedback to read out grid-type: 4x4."
-  },
-  "labelGridGolden": {
-    "message": "Golden ratio",
-    "description": "Label for grid-type: golden ratio."
-  },
-  "labelTimer3s": {
-    "message": "3 seconds",
-    "description": "Label for timer-duration: 3 seconds."
-  },
-  "labelTimer10s": {
-    "message": "10 seconds",
-    "description": "Label for timer-duration: 10 seconds."
-  },
-  "takePhotoButton": {
-    "message": "Take photo",
-    "description": "Label for the shutter button to take photo."
-  },
-  "takePhotoCancelButton": {
-    "message": "Stop taking photo",
-    "description": "Label for the shutter button to cancel countdown timer and stop taking photo."
-  },
-  "recordVideoStartButton": {
-    "message": "Start recording",
-    "description": "Label for the shutter button to start recording."
-  },
-  "recordVideoStopButton": {
-    "message": "Stop recording",
-    "description": "Label for the shutter button to stop recording."
-  },
-  "switchCameraButton": {
-    "message": "Switch to next camera",
-    "description": "Label for the button to switch to next connected camera. Eg. switching from front facing to back facing, or a camera connected via USB. The button is shown only when more than one camera is connected."
-  },
-  "switchRecordVideoButton": {
-   "message": "Switch to record video",
-   "description": "Label for the button to switch to record video mode."
-  },
-  "switchTakePhotoButton": {
-   "message": "Switch to take photo",
-   "description": "Label for the button to switch to take photo mode."
-  },
-  "toggleTimerButton": {
-    "message": "Timer",
-    "description": "Label for the checkbox to toggle the countdown timer."
-  },
-  "toggleMirrorButton": {
-    "message": "Mirroring",
-    "description": "Label for the checkbox to toggle the preview mirroring. Eg. if mirroring is toggled on, preview will be flipped horizontally."
-  },
-  "toggleGridButton": {
-    "message": "Grid",
-    "description": "Label for the checkbox to toggle the grid shown on preview."
-  },
-  "toggleMicButton": {
-    "message": "Microphone",
-    "description": "Label for the checkbox to toggle the microphone for recording video."
-  },
-  "dialogOKButton": {
-    "message": "OK",
-    "description": "Label for the accepting button in the dialog."
-  },
-  "dialogCancelButton": {
-    "message": "Cancel",
-    "description": "Label for the dismissing button in the dialog."
-  },
-  "deleteConfirmationMsg": {
-    "message": "Do you really want to remove $file$?",
-    "description": "Confirmation message before removing a selected item from the gallery. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg."
-      }
-    }
-  },
-  "deleteMultiConfirmationMsg": {
-    "message": "Do you really want to remove $count$ items?",
-    "description": "Confirmation message before removing multiple selected items from the gallery. Expects a file count to be passed in.",
-    "placeholders": {
-      "count": {
-        "content": "$1",
-        "example": "20."
-      }
-    }
-  },
-  "migratePicturesMsg": {
-    "message": "Photos and videos taken with the camera will be moved to the Downloads folder. You can access them in Files.\n\nApps with storage permissions will have access to your photos and videos.",
-    "description": "Message shown before moving all photos and videos stored in the Camera App to the Downloads folder."
-  }
-}
diff --git a/chrome/browser/resources/chromeos/camera/src/_locales/en_GB/messages.json b/chrome/browser/resources/chromeos/camera/src/_locales/en_GB/messages.json
deleted file mode 100644
index b923a3f..0000000
--- a/chrome/browser/resources/chromeos/camera/src/_locales/en_GB/messages.json
+++ /dev/null
@@ -1,206 +0,0 @@
-{
-  "name": {
-    "message": "Camera",
-    "description": "Name of the Camera App."
-  },
-  "description": {
-    "message": "Take photos and record videos with your camera.",
-    "description": "Short description of the Camera App."
-  },
-  "errorMsgFileSystemFailed": {
-    "message": "File system errors.",
-    "description": "Error message shown when failing to read or write the file system."
-  },
-  "errorMsgNoCamera": {
-    "message": "Your camera is currently unavailable.\nPlease check if the camera is properly connected.",
-    "description": "Error message shown when it was impossible to connect to the camera due to unavailability."
-  },
-  "errorMsgGalleryExportFailed": {
-    "message": "Unable to export $file$",
-    "description": "Error message shown when exporting to an external directory failed. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg"
-      }
-    }
-  },
-  "errorMsgSaveFileFailed": {
-    "message": "Unable to save the file",
-    "description": "Error message shown when saving/adding a image or video to the file system failed."
-  },
-  "errorMsgTakePhotoFailed": {
-    "message": "Unable to take photo",
-    "description": "Error message shown when failing to take photo."
-  },
-  "errorMsgRecordStartFailed": {
-    "message": "Unable to start recording",
-    "description": "Error message shown when failing to start recording video."
-  },
-  "errorMsgEmptyRecording": {
-    "message": "Nothing recorded",
-    "description": "Error message shown when no data is recorded for a recording and it won't be added to the gallery."
-  },
-  "statusMsgRecordingStopped": {
-    "message": "Recording stopped",
-    "description": "Status message for spoken feedback when video recording has been stopped."
-  },
-  "statusMsgCameraSwitched": {
-    "message": "$camera$ active",
-    "description": "Status message for spoken feedback when switching over to another camera.",
-    "placeholders": {
-      "camera": {
-        "content": "$1",
-        "example": "USB WebCam (12ab:5678) User-facing"
-      }
-    }
-  },
-  "galleryButton": {
-    "message": "Go to gallery",
-    "description": "Label for the gallery button."
-  },
-  "deleteButton": {
-    "message": "Delete",
-    "description": "Label for the delete button."
-  },
-  "exportButton": {
-    "message": "Export to disk",
-    "description": "Label for the exporting button."
-  },
-  "printButton": {
-    "message": "Print",
-    "description": "Label for the printing button."
-  },
-  "backButton": {
-    "message": "Go back",
-    "description": "Label for the back button."
-  },
-  "galleryImages": {
-    "message": "Gallery images",
-    "description": "Text to speech label for the gallery list."
-  },
-  "settingsButton": {
-    "message": "Settings",
-    "description": "Label for the settings button."
-  },
-  "gridTypeButton": {
-    "message": "Grid type",
-    "description": "Label for the button of grid-type options."
-  },
-  "timerDurationButton": {
-    "message": "Timer duration",
-    "description": "Label for the button of timer-duration options."
-  },
-  "feedbackButton": {
-    "message": "Send feedback",
-    "description": "Label for the feedback button."
-  },
-  "helpButton": {
-    "message": "Help",
-    "description": "Label for the help button."
-  },
-  "labelGrid3x3": {
-    "message": "3 x 3",
-    "description": "Label for for grid-type: 3x3."
-  },
-  "ariaGrid3x3": {
-    "message": "3 by 3",
-    "description": "Label for spoken feedback to read out grid-type: 3x3."
-  },
-  "labelGrid4x4": {
-    "message": "4 x 4",
-    "description": "Label for for grid-type: 4x4."
-  },
-  "ariaGrid4x4": {
-    "message": "4 by 4",
-    "description": "Label for spoken feedback to read out grid-type: 4x4."
-  },
-  "labelGridGolden": {
-    "message": "Golden ratio",
-    "description": "Label for grid-type: golden ratio."
-  },
-  "labelTimer3s": {
-    "message": "3 seconds",
-    "description": "Label for timer-duration: 3 seconds."
-  },
-  "labelTimer10s": {
-    "message": "10 seconds",
-    "description": "Label for timer-duration: 10 seconds."
-  },
-  "takePhotoButton": {
-    "message": "Take photo",
-    "description": "Label for the shutter button to take photo."
-  },
-  "takePhotoCancelButton": {
-    "message": "Stop taking photo",
-    "description": "Label for the shutter button to cancel countdown timer and stop taking photo."
-  },
-  "recordVideoStartButton": {
-    "message": "Start recording",
-    "description": "Label for the shutter button to start recording."
-  },
-  "recordVideoStopButton": {
-    "message": "Stop recording",
-    "description": "Label for the shutter button to stop recording."
-  },
-  "switchCameraButton": {
-    "message": "Switch to next camera",
-    "description": "Label for the button to switch to next connected camera. Eg. switching from front facing to back facing, or a camera connected via USB. The button is shown only when more than one camera is connected."
-  },
-  "switchRecordVideoButton": {
-    "message": "Switch to record video",
-    "description": "Label for the button to switch to record video mode."
-  },
-  "switchTakePhotoButton": {
-    "message": "Switch to take photo",
-    "description": "Label for the button to switch to take photo mode."
-  },
-  "toggleTimerButton": {
-    "message": "Timer",
-    "description": "Label for the checkbox to toggle the countdown timer."
-  },
-  "toggleMirrorButton": {
-    "message": "Mirroring",
-    "description": "Label for the checkbox to toggle the preview mirroring. Eg. if mirroring is toggled on, preview will be flipped horizontally."
-  },
-  "toggleGridButton": {
-    "message": "Grid",
-    "description": "Label for the checkbox to toggle the grid shown on preview."
-  },
-  "toggleMicButton": {
-    "message": "Microphone",
-    "description": "Label for the checkbox to toggle the microphone for recording video."
-  },
-  "dialogOKButton": {
-    "message": "OK",
-    "description": "Label for the accepting button in the dialog."
-  },
-  "dialogCancelButton": {
-    "message": "Cancel",
-    "description": "Label for the dismissing button in the dialog."
-  },
-  "deleteConfirmationMsg": {
-    "message": "Do you really want to remove $file$?",
-    "description": "Confirmation message before removing a selected item from the gallery. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg."
-      }
-    }
-  },
-  "deleteMultiConfirmationMsg": {
-    "message": "Do you really want to remove $count$ items?",
-    "description": "Confirmation message before removing multiple selected items from the gallery. Expects a file count to be passed in.",
-    "placeholders": {
-      "count": {
-        "content": "$1",
-        "example": "20."
-      }
-    }
-  },
-  "migratePicturesMsg": {
-    "message": "Photos and videos taken with the camera will be moved to the Downloads folder. You can access them in Files.\n\nApps with storage permissions will have access to your photos and videos.",
-    "description": "Message shown before moving all photos and videos stored in the Camera App to the Downloads folder."
-  }
-}
\ No newline at end of file
diff --git a/chrome/browser/resources/chromeos/camera/src/_locales/es/messages.json b/chrome/browser/resources/chromeos/camera/src/_locales/es/messages.json
deleted file mode 100644
index 894ff28..0000000
--- a/chrome/browser/resources/chromeos/camera/src/_locales/es/messages.json
+++ /dev/null
@@ -1,206 +0,0 @@
-{
-  "name": {
-    "message": "Cámara",
-    "description": "Name of the Camera App."
-  },
-  "description": {
-    "message": "Haz fotos y graba vídeos con la cámara.",
-    "description": "Short description of the Camera App."
-  },
-  "errorMsgFileSystemFailed": {
-    "message": "Se han producido errores en el sistema de archivos.",
-    "description": "Error message shown when failing to read or write the file system."
-  },
-  "errorMsgNoCamera": {
-    "message": "La cámara no está disponible en este momento.\nComprueba si la cámara está conectada correctamente.",
-    "description": "Error message shown when it was impossible to connect to the camera due to unavailability."
-  },
-  "errorMsgGalleryExportFailed": {
-    "message": "No se ha podido exportar $file$",
-    "description": "Error message shown when exporting to an external directory failed. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg"
-      }
-    }
-  },
-  "errorMsgSaveFileFailed": {
-    "message": "No se ha podido guardar el archivo",
-    "description": "Error message shown when saving/adding a image or video to the file system failed."
-  },
-  "errorMsgTakePhotoFailed": {
-    "message": "No se ha podido hacer la foto",
-    "description": "Error message shown when failing to take photo."
-  },
-  "errorMsgRecordStartFailed": {
-    "message": "No se ha podido iniciar la grabación",
-    "description": "Error message shown when failing to start recording video."
-  },
-  "errorMsgEmptyRecording": {
-    "message": "No se ha grabado nada",
-    "description": "Error message shown when no data is recorded for a recording and it won't be added to the gallery."
-  },
-  "statusMsgRecordingStopped": {
-    "message": "Se ha detenido la grabación",
-    "description": "Status message for spoken feedback when video recording has been stopped."
-  },
-  "statusMsgCameraSwitched": {
-    "message": "$camera$ activa",
-    "description": "Status message for spoken feedback when switching over to another camera.",
-    "placeholders": {
-      "camera": {
-        "content": "$1",
-        "example": "USB WebCam (12ab:5678) User-facing"
-      }
-    }
-  },
-  "galleryButton": {
-    "message": "Ir a la galería",
-    "description": "Label for the gallery button."
-  },
-  "deleteButton": {
-    "message": "Eliminar",
-    "description": "Label for the delete button."
-  },
-  "exportButton": {
-    "message": "Exportar a disco",
-    "description": "Label for the exporting button."
-  },
-  "printButton": {
-    "message": "Imprimir",
-    "description": "Label for the printing button."
-  },
-  "backButton": {
-    "message": "Atrás",
-    "description": "Label for the back button."
-  },
-  "galleryImages": {
-    "message": "Imágenes de la galería",
-    "description": "Text to speech label for the gallery list."
-  },
-  "settingsButton": {
-    "message": "Ajustes",
-    "description": "Label for the settings button."
-  },
-  "gridTypeButton": {
-    "message": "Tipo de cuadrícula",
-    "description": "Label for the button of grid-type options."
-  },
-  "timerDurationButton": {
-    "message": "Duración del temporizador",
-    "description": "Label for the button of timer-duration options."
-  },
-  "feedbackButton": {
-    "message": "Enviar comentarios",
-    "description": "Label for the feedback button."
-  },
-  "helpButton": {
-    "message": "Ayuda",
-    "description": "Label for the help button."
-  },
-  "labelGrid3x3": {
-    "message": "3x3",
-    "description": "Label for for grid-type: 3x3."
-  },
-  "ariaGrid3x3": {
-    "message": "Tres por tres",
-    "description": "Label for spoken feedback to read out grid-type: 3x3."
-  },
-  "labelGrid4x4": {
-    "message": "4x4",
-    "description": "Label for for grid-type: 4x4."
-  },
-  "ariaGrid4x4": {
-    "message": "Cuatro por cuatro",
-    "description": "Label for spoken feedback to read out grid-type: 4x4."
-  },
-  "labelGridGolden": {
-    "message": "Proporción áurea",
-    "description": "Label for grid-type: golden ratio."
-  },
-  "labelTimer3s": {
-    "message": "3 segundos",
-    "description": "Label for timer-duration: 3 seconds."
-  },
-  "labelTimer10s": {
-    "message": "10 segundos",
-    "description": "Label for timer-duration: 10 seconds."
-  },
-  "takePhotoButton": {
-    "message": "Hacer foto",
-    "description": "Label for the shutter button to take photo."
-  },
-  "takePhotoCancelButton": {
-    "message": "Detener foto",
-    "description": "Label for the shutter button to cancel countdown timer and stop taking photo."
-  },
-  "recordVideoStartButton": {
-    "message": "Iniciar grabación",
-    "description": "Label for the shutter button to start recording."
-  },
-  "recordVideoStopButton": {
-    "message": "Detener grabación",
-    "description": "Label for the shutter button to stop recording."
-  },
-  "switchCameraButton": {
-    "message": "Cambiar a la siguiente cámara",
-    "description": "Label for the button to switch to next connected camera. Eg. switching from front facing to back facing, or a camera connected via USB. The button is shown only when more than one camera is connected."
-  },
-  "switchRecordVideoButton": {
-    "message": "Cambiar al modo de cámara de vídeo",
-    "description": "Label for the button to switch to record video mode."
-  },
-  "switchTakePhotoButton": {
-    "message": "Cambiar al modo de cámara de fotos",
-    "description": "Label for the button to switch to take photo mode."
-  },
-  "toggleTimerButton": {
-    "message": "Temporizador",
-    "description": "Label for the checkbox to toggle the countdown timer."
-  },
-  "toggleMirrorButton": {
-    "message": "Efecto espejo",
-    "description": "Label for the checkbox to toggle the preview mirroring. Eg. if mirroring is toggled on, preview will be flipped horizontally."
-  },
-  "toggleGridButton": {
-    "message": "Cuadrícula",
-    "description": "Label for the checkbox to toggle the grid shown on preview."
-  },
-  "toggleMicButton": {
-    "message": "Micrófono",
-    "description": "Label for the checkbox to toggle the microphone for recording video."
-  },
-  "dialogOKButton": {
-    "message": "Aceptar",
-    "description": "Label for the accepting button in the dialog."
-  },
-  "dialogCancelButton": {
-    "message": "Cancelar",
-    "description": "Label for the dismissing button in the dialog."
-  },
-  "deleteConfirmationMsg": {
-    "message": "¿Seguro que quieres eliminar $file$?",
-    "description": "Confirmation message before removing a selected item from the gallery. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg."
-      }
-    }
-  },
-  "deleteMultiConfirmationMsg": {
-    "message": "¿Seguro que quieres quitar estos $count$ elementos?",
-    "description": "Confirmation message before removing multiple selected items from the gallery. Expects a file count to be passed in.",
-    "placeholders": {
-      "count": {
-        "content": "$1",
-        "example": "20."
-      }
-    }
-  },
-  "migratePicturesMsg": {
-    "message": "Las fotos y los vídeos hechos con la cámara se moverán a la carpeta Descargas. Podrás acceder a ellos con la aplicación Archivos.\n\nLas aplicaciones con permiso de almacenamiento podrán acceder a tus fotos y vídeos.",
-    "description": "Message shown before moving all photos and videos stored in the Camera App to the Downloads folder."
-  }
-}
\ No newline at end of file
diff --git a/chrome/browser/resources/chromeos/camera/src/_locales/es_419/messages.json b/chrome/browser/resources/chromeos/camera/src/_locales/es_419/messages.json
deleted file mode 100644
index f82f6a6..0000000
--- a/chrome/browser/resources/chromeos/camera/src/_locales/es_419/messages.json
+++ /dev/null
@@ -1,206 +0,0 @@
-{
-  "name": {
-    "message": "Cámara",
-    "description": "Name of the Camera App."
-  },
-  "description": {
-    "message": "Toma fotos y graba videos con la cámara.",
-    "description": "Short description of the Camera App."
-  },
-  "errorMsgFileSystemFailed": {
-    "message": "Errores en el sistema de archivos",
-    "description": "Error message shown when failing to read or write the file system."
-  },
-  "errorMsgNoCamera": {
-    "message": "La cámara no está disponible en este momento. Revisa si la conectaste correctamente.",
-    "description": "Error message shown when it was impossible to connect to the camera due to unavailability."
-  },
-  "errorMsgGalleryExportFailed": {
-    "message": "No se puede exportar $file$",
-    "description": "Error message shown when exporting to an external directory failed. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg"
-      }
-    }
-  },
-  "errorMsgSaveFileFailed": {
-    "message": "No se puede guardar el archivo",
-    "description": "Error message shown when saving/adding a image or video to the file system failed."
-  },
-  "errorMsgTakePhotoFailed": {
-    "message": "No se puede tomar la foto",
-    "description": "Error message shown when failing to take photo."
-  },
-  "errorMsgRecordStartFailed": {
-    "message": "No es posible comenzar a grabar",
-    "description": "Error message shown when failing to start recording video."
-  },
-  "errorMsgEmptyRecording": {
-    "message": "No se grabaron datos",
-    "description": "Error message shown when no data is recorded for a recording and it won't be added to the gallery."
-  },
-  "statusMsgRecordingStopped": {
-    "message": "Se detuvo la grabación",
-    "description": "Status message for spoken feedback when video recording has been stopped."
-  },
-  "statusMsgCameraSwitched": {
-    "message": "$camera$ activada",
-    "description": "Status message for spoken feedback when switching over to another camera.",
-    "placeholders": {
-      "camera": {
-        "content": "$1",
-        "example": "USB WebCam (12ab:5678) User-facing"
-      }
-    }
-  },
-  "galleryButton": {
-    "message": "Ir a la galería",
-    "description": "Label for the gallery button."
-  },
-  "deleteButton": {
-    "message": "Borrar",
-    "description": "Label for the delete button."
-  },
-  "exportButton": {
-    "message": "Exportar al disco",
-    "description": "Label for the exporting button."
-  },
-  "printButton": {
-    "message": "Imprimir",
-    "description": "Label for the printing button."
-  },
-  "backButton": {
-    "message": "Volver",
-    "description": "Label for the back button."
-  },
-  "galleryImages": {
-    "message": "Imágenes de la galería",
-    "description": "Text to speech label for the gallery list."
-  },
-  "settingsButton": {
-    "message": "Configuración",
-    "description": "Label for the settings button."
-  },
-  "gridTypeButton": {
-    "message": "Tipo de cuadrícula",
-    "description": "Label for the button of grid-type options."
-  },
-  "timerDurationButton": {
-    "message": "Duración del temporizador",
-    "description": "Label for the button of timer-duration options."
-  },
-  "feedbackButton": {
-    "message": "Enviar comentarios",
-    "description": "Label for the feedback button."
-  },
-  "helpButton": {
-    "message": "Ayuda",
-    "description": "Label for the help button."
-  },
-  "labelGrid3x3": {
-    "message": "3 x 3",
-    "description": "Label for for grid-type: 3x3."
-  },
-  "ariaGrid3x3": {
-    "message": "3 por 3",
-    "description": "Label for spoken feedback to read out grid-type: 3x3."
-  },
-  "labelGrid4x4": {
-    "message": "4 x 4",
-    "description": "Label for for grid-type: 4x4."
-  },
-  "ariaGrid4x4": {
-    "message": "4 por 4",
-    "description": "Label for spoken feedback to read out grid-type: 4x4."
-  },
-  "labelGridGolden": {
-    "message": "Proporción áurea",
-    "description": "Label for grid-type: golden ratio."
-  },
-  "labelTimer3s": {
-    "message": "3 segundos",
-    "description": "Label for timer-duration: 3 seconds."
-  },
-  "labelTimer10s": {
-    "message": "10 segundos",
-    "description": "Label for timer-duration: 10 seconds."
-  },
-  "takePhotoButton": {
-    "message": "Tomar una foto",
-    "description": "Label for the shutter button to take photo."
-  },
-  "takePhotoCancelButton": {
-    "message": "Detener foto",
-    "description": "Label for the shutter button to cancel countdown timer and stop taking photo."
-  },
-  "recordVideoStartButton": {
-    "message": "Iniciar grabación",
-    "description": "Label for the shutter button to start recording."
-  },
-  "recordVideoStopButton": {
-    "message": "Detener grabación",
-    "description": "Label for the shutter button to stop recording."
-  },
-  "switchCameraButton": {
-    "message": "Cambiar a la siguiente cámara",
-    "description": "Label for the button to switch to next connected camera. Eg. switching from front facing to back facing, or a camera connected via USB. The button is shown only when more than one camera is connected."
-  },
-  "switchRecordVideoButton": {
-    "message": "Cambiar al modo para grabar video",
-    "description": "Label for the button to switch to record video mode."
-  },
-  "switchTakePhotoButton": {
-    "message": "Cambiar al modo para tomar fotos",
-    "description": "Label for the button to switch to take photo mode."
-  },
-  "toggleTimerButton": {
-    "message": "Temporizador",
-    "description": "Label for the checkbox to toggle the countdown timer."
-  },
-  "toggleMirrorButton": {
-    "message": "Duplicación",
-    "description": "Label for the checkbox to toggle the preview mirroring. Eg. if mirroring is toggled on, preview will be flipped horizontally."
-  },
-  "toggleGridButton": {
-    "message": "Cuadrícula",
-    "description": "Label for the checkbox to toggle the grid shown on preview."
-  },
-  "toggleMicButton": {
-    "message": "Micrófono",
-    "description": "Label for the checkbox to toggle the microphone for recording video."
-  },
-  "dialogOKButton": {
-    "message": "Aceptar",
-    "description": "Label for the accepting button in the dialog."
-  },
-  "dialogCancelButton": {
-    "message": "Cancelar",
-    "description": "Label for the dismissing button in the dialog."
-  },
-  "deleteConfirmationMsg": {
-    "message": "¿Confirmas que deseas quitar $file$?",
-    "description": "Confirmation message before removing a selected item from the gallery. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg."
-      }
-    }
-  },
-  "deleteMultiConfirmationMsg": {
-    "message": "¿Confirmas que deseas quitar $count$ elementos?",
-    "description": "Confirmation message before removing multiple selected items from the gallery. Expects a file count to be passed in.",
-    "placeholders": {
-      "count": {
-        "content": "$1",
-        "example": "20."
-      }
-    }
-  },
-  "migratePicturesMsg": {
-    "message": "Las fotos y los videos que tomes con la cámara se moverán a la carpeta Descargas, que puedes abrir con la app de Archivos.\n\nLas apps que tengan permiso de almacenamiento podrán acceder a tus fotos y videos.",
-    "description": "Message shown before moving all photos and videos stored in the Camera App to the Downloads folder."
-  }
-}
\ No newline at end of file
diff --git a/chrome/browser/resources/chromeos/camera/src/_locales/et/messages.json b/chrome/browser/resources/chromeos/camera/src/_locales/et/messages.json
deleted file mode 100644
index 3c6365e3..0000000
--- a/chrome/browser/resources/chromeos/camera/src/_locales/et/messages.json
+++ /dev/null
@@ -1,206 +0,0 @@
-{
-  "name": {
-    "message": "Kaamera",
-    "description": "Name of the Camera App."
-  },
-  "description": {
-    "message": "Jäädvustage oma kaameraga fotosid ja salvestage videoid.",
-    "description": "Short description of the Camera App."
-  },
-  "errorMsgFileSystemFailed": {
-    "message": "Failisüsteemi vead.",
-    "description": "Error message shown when failing to read or write the file system."
-  },
-  "errorMsgNoCamera": {
-    "message": "Kaamera pole praegu saadaval.\nKontrollige, kas kaamera on korralikult ühendatud.",
-    "description": "Error message shown when it was impossible to connect to the camera due to unavailability."
-  },
-  "errorMsgGalleryExportFailed": {
-    "message": "Faili $file$ eksportimine ebaõnnestus",
-    "description": "Error message shown when exporting to an external directory failed. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg"
-      }
-    }
-  },
-  "errorMsgSaveFileFailed": {
-    "message": "Faili salvestamine ebaõnnestus",
-    "description": "Error message shown when saving/adding a image or video to the file system failed."
-  },
-  "errorMsgTakePhotoFailed": {
-    "message": "Foto jäädvustamine ebaõnnestus",
-    "description": "Error message shown when failing to take photo."
-  },
-  "errorMsgRecordStartFailed": {
-    "message": "Salvestamise alustamine ebaõnnestus",
-    "description": "Error message shown when failing to start recording video."
-  },
-  "errorMsgEmptyRecording": {
-    "message": "Midagi pole salvestatud",
-    "description": "Error message shown when no data is recorded for a recording and it won't be added to the gallery."
-  },
-  "statusMsgRecordingStopped": {
-    "message": "Salvestamine on peatatud",
-    "description": "Status message for spoken feedback when video recording has been stopped."
-  },
-  "statusMsgCameraSwitched": {
-    "message": "$camera$ on aktiivne",
-    "description": "Status message for spoken feedback when switching over to another camera.",
-    "placeholders": {
-      "camera": {
-        "content": "$1",
-        "example": "USB WebCam (12ab:5678) User-facing"
-      }
-    }
-  },
-  "galleryButton": {
-    "message": "Ava galerii",
-    "description": "Label for the gallery button."
-  },
-  "deleteButton": {
-    "message": "Kustuta",
-    "description": "Label for the delete button."
-  },
-  "exportButton": {
-    "message": "Ekspordi kettale",
-    "description": "Label for the exporting button."
-  },
-  "printButton": {
-    "message": "Prindi",
-    "description": "Label for the printing button."
-  },
-  "backButton": {
-    "message": "Mine tagasi",
-    "description": "Label for the back button."
-  },
-  "galleryImages": {
-    "message": "Galerii kujutised",
-    "description": "Text to speech label for the gallery list."
-  },
-  "settingsButton": {
-    "message": "Seaded",
-    "description": "Label for the settings button."
-  },
-  "gridTypeButton": {
-    "message": "Ruudustiku tüüp",
-    "description": "Label for the button of grid-type options."
-  },
-  "timerDurationButton": {
-    "message": "Taimeri kestus",
-    "description": "Label for the button of timer-duration options."
-  },
-  "feedbackButton": {
-    "message": "Tagasiside saatmine",
-    "description": "Label for the feedback button."
-  },
-  "helpButton": {
-    "message": "Abi",
-    "description": "Label for the help button."
-  },
-  "labelGrid3x3": {
-    "message": "3 x 3",
-    "description": "Label for for grid-type: 3x3."
-  },
-  "ariaGrid3x3": {
-    "message": "kolm korda kolm",
-    "description": "Label for spoken feedback to read out grid-type: 3x3."
-  },
-  "labelGrid4x4": {
-    "message": "4 x 4",
-    "description": "Label for for grid-type: 4x4."
-  },
-  "ariaGrid4x4": {
-    "message": "neli korda neli",
-    "description": "Label for spoken feedback to read out grid-type: 4x4."
-  },
-  "labelGridGolden": {
-    "message": "Kuldlõige",
-    "description": "Label for grid-type: golden ratio."
-  },
-  "labelTimer3s": {
-    "message": "3 sekundit",
-    "description": "Label for timer-duration: 3 seconds."
-  },
-  "labelTimer10s": {
-    "message": "10 sekundit",
-    "description": "Label for timer-duration: 10 seconds."
-  },
-  "takePhotoButton": {
-    "message": "Jäädvusta foto",
-    "description": "Label for the shutter button to take photo."
-  },
-  "takePhotoCancelButton": {
-    "message": "Peata foto jäädvustamine",
-    "description": "Label for the shutter button to cancel countdown timer and stop taking photo."
-  },
-  "recordVideoStartButton": {
-    "message": "Alusta salvestamist",
-    "description": "Label for the shutter button to start recording."
-  },
-  "recordVideoStopButton": {
-    "message": "Peata salvestamine",
-    "description": "Label for the shutter button to stop recording."
-  },
-  "switchCameraButton": {
-    "message": "Vaheta järgmisele kaamerale",
-    "description": "Label for the button to switch to next connected camera. Eg. switching from front facing to back facing, or a camera connected via USB. The button is shown only when more than one camera is connected."
-  },
-  "switchRecordVideoButton": {
-    "message": "Vaheta video salvestamise režiimile",
-    "description": "Label for the button to switch to record video mode."
-  },
-  "switchTakePhotoButton": {
-    "message": "Vaheta foto jäädvustamise režiimile",
-    "description": "Label for the button to switch to take photo mode."
-  },
-  "toggleTimerButton": {
-    "message": "Taimer",
-    "description": "Label for the checkbox to toggle the countdown timer."
-  },
-  "toggleMirrorButton": {
-    "message": "Peegeldamine",
-    "description": "Label for the checkbox to toggle the preview mirroring. Eg. if mirroring is toggled on, preview will be flipped horizontally."
-  },
-  "toggleGridButton": {
-    "message": "Ruudustik",
-    "description": "Label for the checkbox to toggle the grid shown on preview."
-  },
-  "toggleMicButton": {
-    "message": "Mikrofon",
-    "description": "Label for the checkbox to toggle the microphone for recording video."
-  },
-  "dialogOKButton": {
-    "message": "OK",
-    "description": "Label for the accepting button in the dialog."
-  },
-  "dialogCancelButton": {
-    "message": "Tühista",
-    "description": "Label for the dismissing button in the dialog."
-  },
-  "deleteConfirmationMsg": {
-    "message": "Kas soovite kindlasti eemaldada faili $file$?",
-    "description": "Confirmation message before removing a selected item from the gallery. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg."
-      }
-    }
-  },
-  "deleteMultiConfirmationMsg": {
-    "message": "Kas soovite kindlasti eemaldada need $count$ üksust?",
-    "description": "Confirmation message before removing multiple selected items from the gallery. Expects a file count to be passed in.",
-    "placeholders": {
-      "count": {
-        "content": "$1",
-        "example": "20."
-      }
-    }
-  },
-  "migratePicturesMsg": {
-    "message": "Kaameraga tehtud fotod ja videod teisaldatakse kausta Allalaadimised. Pääsete neile juurde rakenduses Failid.\n\nSalvestusruumi kasutuse lubadega rakendustel on juurdepääs teie fotodele ja videotele.",
-    "description": "Message shown before moving all photos and videos stored in the Camera App to the Downloads folder."
-  }
-}
\ No newline at end of file
diff --git a/chrome/browser/resources/chromeos/camera/src/_locales/fa/messages.json b/chrome/browser/resources/chromeos/camera/src/_locales/fa/messages.json
deleted file mode 100644
index bdf35ad..0000000
--- a/chrome/browser/resources/chromeos/camera/src/_locales/fa/messages.json
+++ /dev/null
@@ -1,206 +0,0 @@
-{
-  "name": {
-    "message": "دوربین",
-    "description": "Name of the Camera App."
-  },
-  "description": {
-    "message": "با دوربینتان عکس بگیرید و فیلم‌برداری کنید.",
-    "description": "Short description of the Camera App."
-  },
-  "errorMsgFileSystemFailed": {
-    "message": "خطاهایی در سیستم فایل وجود دارد.",
-    "description": "Error message shown when failing to read or write the file system."
-  },
-  "errorMsgNoCamera": {
-    "message": "درحال‌حاضر دوربینتان دردسترس نیست.\nلطفاً بررسی کنید که دوربین به‌درستی متصل شده است یا نه.",
-    "description": "Error message shown when it was impossible to connect to the camera due to unavailability."
-  },
-  "errorMsgGalleryExportFailed": {
-    "message": "صادر کردن $file$ امکان‌پذیر نیست",
-    "description": "Error message shown when exporting to an external directory failed. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg"
-      }
-    }
-  },
-  "errorMsgSaveFileFailed": {
-    "message": "ذخیره کردن فایل امکان‌پذیر نیست",
-    "description": "Error message shown when saving/adding a image or video to the file system failed."
-  },
-  "errorMsgTakePhotoFailed": {
-    "message": "عکس‌برداری امکان‌پذیر نیست",
-    "description": "Error message shown when failing to take photo."
-  },
-  "errorMsgRecordStartFailed": {
-    "message": "شروع ضبط امکان‌پذیر نیست",
-    "description": "Error message shown when failing to start recording video."
-  },
-  "errorMsgEmptyRecording": {
-    "message": "چیزی ضبط نشد",
-    "description": "Error message shown when no data is recorded for a recording and it won't be added to the gallery."
-  },
-  "statusMsgRecordingStopped": {
-    "message": "ضبط متوقف شد",
-    "description": "Status message for spoken feedback when video recording has been stopped."
-  },
-  "statusMsgCameraSwitched": {
-    "message": "$camera$ فعال است",
-    "description": "Status message for spoken feedback when switching over to another camera.",
-    "placeholders": {
-      "camera": {
-        "content": "$1",
-        "example": "USB WebCam (12ab:5678) User-facing"
-      }
-    }
-  },
-  "galleryButton": {
-    "message": "رفتن به گالری",
-    "description": "Label for the gallery button."
-  },
-  "deleteButton": {
-    "message": "حذف",
-    "description": "Label for the delete button."
-  },
-  "exportButton": {
-    "message": "صادر کردن به دیسک",
-    "description": "Label for the exporting button."
-  },
-  "printButton": {
-    "message": "چاپ",
-    "description": "Label for the printing button."
-  },
-  "backButton": {
-    "message": "برگشت",
-    "description": "Label for the back button."
-  },
-  "galleryImages": {
-    "message": "تصاویر گالری",
-    "description": "Text to speech label for the gallery list."
-  },
-  "settingsButton": {
-    "message": "تنظیمات",
-    "description": "Label for the settings button."
-  },
-  "gridTypeButton": {
-    "message": "نوع شبکه",
-    "description": "Label for the button of grid-type options."
-  },
-  "timerDurationButton": {
-    "message": "مدت تایمر",
-    "description": "Label for the button of timer-duration options."
-  },
-  "feedbackButton": {
-    "message": "ارسال بازخورد",
-    "description": "Label for the feedback button."
-  },
-  "helpButton": {
-    "message": "راهنما",
-    "description": "Label for the help button."
-  },
-  "labelGrid3x3": {
-    "message": "۳ × ۳",
-    "description": "Label for for grid-type: 3x3."
-  },
-  "ariaGrid3x3": {
-    "message": "۳ در ۳",
-    "description": "Label for spoken feedback to read out grid-type: 3x3."
-  },
-  "labelGrid4x4": {
-    "message": "۴ × ۴",
-    "description": "Label for for grid-type: 4x4."
-  },
-  "ariaGrid4x4": {
-    "message": "۴ در ۴",
-    "description": "Label for spoken feedback to read out grid-type: 4x4."
-  },
-  "labelGridGolden": {
-    "message": "نسبت طلایی",
-    "description": "Label for grid-type: golden ratio."
-  },
-  "labelTimer3s": {
-    "message": "۳ ثانیه",
-    "description": "Label for timer-duration: 3 seconds."
-  },
-  "labelTimer10s": {
-    "message": "۱۰ ثانیه",
-    "description": "Label for timer-duration: 10 seconds."
-  },
-  "takePhotoButton": {
-    "message": "عکس گرفتن",
-    "description": "Label for the shutter button to take photo."
-  },
-  "takePhotoCancelButton": {
-    "message": "توقف عکس‌برداری",
-    "description": "Label for the shutter button to cancel countdown timer and stop taking photo."
-  },
-  "recordVideoStartButton": {
-    "message": "شروع ضبط",
-    "description": "Label for the shutter button to start recording."
-  },
-  "recordVideoStopButton": {
-    "message": "توقف ضبط",
-    "description": "Label for the shutter button to stop recording."
-  },
-  "switchCameraButton": {
-    "message": "جابه‌جایی به دوربین بعدی",
-    "description": "Label for the button to switch to next connected camera. Eg. switching from front facing to back facing, or a camera connected via USB. The button is shown only when more than one camera is connected."
-  },
-  "switchRecordVideoButton": {
-    "message": "رفتن به حالت فیلم‌برداری",
-    "description": "Label for the button to switch to record video mode."
-  },
-  "switchTakePhotoButton": {
-    "message": "رفتن به حالت عکس‌برداری",
-    "description": "Label for the button to switch to take photo mode."
-  },
-  "toggleTimerButton": {
-    "message": "تایمر",
-    "description": "Label for the checkbox to toggle the countdown timer."
-  },
-  "toggleMirrorButton": {
-    "message": "نمایش صفحه‌نمایش روی دستگاه دیگر",
-    "description": "Label for the checkbox to toggle the preview mirroring. Eg. if mirroring is toggled on, preview will be flipped horizontally."
-  },
-  "toggleGridButton": {
-    "message": "شطرنجی",
-    "description": "Label for the checkbox to toggle the grid shown on preview."
-  },
-  "toggleMicButton": {
-    "message": "میکروفون",
-    "description": "Label for the checkbox to toggle the microphone for recording video."
-  },
-  "dialogOKButton": {
-    "message": "تأیید",
-    "description": "Label for the accepting button in the dialog."
-  },
-  "dialogCancelButton": {
-    "message": "لغو",
-    "description": "Label for the dismissing button in the dialog."
-  },
-  "deleteConfirmationMsg": {
-    "message": "واقعاً می‌خواهید $file$ حذف شود؟",
-    "description": "Confirmation message before removing a selected item from the gallery. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg."
-      }
-    }
-  },
-  "deleteMultiConfirmationMsg": {
-    "message": "واقعاً می‌خواهید $count$ مورد حذف شود؟",
-    "description": "Confirmation message before removing multiple selected items from the gallery. Expects a file count to be passed in.",
-    "placeholders": {
-      "count": {
-        "content": "$1",
-        "example": "20."
-      }
-    }
-  },
-  "migratePicturesMsg": {
-    "message": "عکس‌ها و ویدیوهایی که با دوربین گرفته شده است، به پوشه «بارگیری‌ها» منتقل خواهد شد. می‌توانید در Files به آن‌ها دسترسی داشته باشید.\n\nبرنامه‌هایی که مجوز فضای ذخیره‌سازی دارند، به عکس‌ها و ویدیوهای شما دسترسی خواهند داشت.",
-    "description": "Message shown before moving all photos and videos stored in the Camera App to the Downloads folder."
-  }
-}
\ No newline at end of file
diff --git a/chrome/browser/resources/chromeos/camera/src/_locales/fi/messages.json b/chrome/browser/resources/chromeos/camera/src/_locales/fi/messages.json
deleted file mode 100644
index 9c43be12..0000000
--- a/chrome/browser/resources/chromeos/camera/src/_locales/fi/messages.json
+++ /dev/null
@@ -1,206 +0,0 @@
-{
-  "name": {
-    "message": "Kamera",
-    "description": "Name of the Camera App."
-  },
-  "description": {
-    "message": "Ota kuvia ja videoita kamerallasi.",
-    "description": "Short description of the Camera App."
-  },
-  "errorMsgFileSystemFailed": {
-    "message": "Tiedostojärjestelmän virheitä",
-    "description": "Error message shown when failing to read or write the file system."
-  },
-  "errorMsgNoCamera": {
-    "message": "Kamerasi ei ole tällä hetkellä käytettävissä.\nTarkista, onko kamera liitetty oikein.",
-    "description": "Error message shown when it was impossible to connect to the camera due to unavailability."
-  },
-  "errorMsgGalleryExportFailed": {
-    "message": "Vieminen epäonnistui: $file$.",
-    "description": "Error message shown when exporting to an external directory failed. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg"
-      }
-    }
-  },
-  "errorMsgSaveFileFailed": {
-    "message": "Tiedoston tallennus epäonnistui.",
-    "description": "Error message shown when saving/adding a image or video to the file system failed."
-  },
-  "errorMsgTakePhotoFailed": {
-    "message": "Kuvan ottaminen epäonnistui.",
-    "description": "Error message shown when failing to take photo."
-  },
-  "errorMsgRecordStartFailed": {
-    "message": "Tallennuksen aloittaminen epäonnistui.",
-    "description": "Error message shown when failing to start recording video."
-  },
-  "errorMsgEmptyRecording": {
-    "message": "Mitään ei kuvattu.",
-    "description": "Error message shown when no data is recorded for a recording and it won't be added to the gallery."
-  },
-  "statusMsgRecordingStopped": {
-    "message": "Tallennus keskeytettiin.",
-    "description": "Status message for spoken feedback when video recording has been stopped."
-  },
-  "statusMsgCameraSwitched": {
-    "message": "$camera$ on aktiivinen.",
-    "description": "Status message for spoken feedback when switching over to another camera.",
-    "placeholders": {
-      "camera": {
-        "content": "$1",
-        "example": "USB WebCam (12ab:5678) User-facing"
-      }
-    }
-  },
-  "galleryButton": {
-    "message": "Siirry galleriaan",
-    "description": "Label for the gallery button."
-  },
-  "deleteButton": {
-    "message": "Poista",
-    "description": "Label for the delete button."
-  },
-  "exportButton": {
-    "message": "Vie paikalliselle levylle",
-    "description": "Label for the exporting button."
-  },
-  "printButton": {
-    "message": "Tulosta",
-    "description": "Label for the printing button."
-  },
-  "backButton": {
-    "message": "Takaisin",
-    "description": "Label for the back button."
-  },
-  "galleryImages": {
-    "message": "Gallerian kuvat",
-    "description": "Text to speech label for the gallery list."
-  },
-  "settingsButton": {
-    "message": "Asetukset",
-    "description": "Label for the settings button."
-  },
-  "gridTypeButton": {
-    "message": "Ruudukkotyyppi",
-    "description": "Label for the button of grid-type options."
-  },
-  "timerDurationButton": {
-    "message": "Ajastimen kesto",
-    "description": "Label for the button of timer-duration options."
-  },
-  "feedbackButton": {
-    "message": "Lähetä palautetta",
-    "description": "Label for the feedback button."
-  },
-  "helpButton": {
-    "message": "Ohje",
-    "description": "Label for the help button."
-  },
-  "labelGrid3x3": {
-    "message": "3x3",
-    "description": "Label for for grid-type: 3x3."
-  },
-  "ariaGrid3x3": {
-    "message": "3x3",
-    "description": "Label for spoken feedback to read out grid-type: 3x3."
-  },
-  "labelGrid4x4": {
-    "message": "4x4",
-    "description": "Label for for grid-type: 4x4."
-  },
-  "ariaGrid4x4": {
-    "message": "4x4",
-    "description": "Label for spoken feedback to read out grid-type: 4x4."
-  },
-  "labelGridGolden": {
-    "message": "Kultainen leikkaus",
-    "description": "Label for grid-type: golden ratio."
-  },
-  "labelTimer3s": {
-    "message": "3 sekuntia",
-    "description": "Label for timer-duration: 3 seconds."
-  },
-  "labelTimer10s": {
-    "message": "10 sekuntia",
-    "description": "Label for timer-duration: 10 seconds."
-  },
-  "takePhotoButton": {
-    "message": "Ota valokuva",
-    "description": "Label for the shutter button to take photo."
-  },
-  "takePhotoCancelButton": {
-    "message": "Lopeta kuvan ottaminen",
-    "description": "Label for the shutter button to cancel countdown timer and stop taking photo."
-  },
-  "recordVideoStartButton": {
-    "message": "Aloita kuvaaminen",
-    "description": "Label for the shutter button to start recording."
-  },
-  "recordVideoStopButton": {
-    "message": "Lopeta kuvaaminen",
-    "description": "Label for the shutter button to stop recording."
-  },
-  "switchCameraButton": {
-    "message": "Vaihda seuraavaan kameraan",
-    "description": "Label for the button to switch to next connected camera. Eg. switching from front facing to back facing, or a camera connected via USB. The button is shown only when more than one camera is connected."
-  },
-  "switchRecordVideoButton": {
-    "message": "Vaihda videon kuvaamiseen",
-    "description": "Label for the button to switch to record video mode."
-  },
-  "switchTakePhotoButton": {
-    "message": "Vaihda kuvan ottamiseen",
-    "description": "Label for the button to switch to take photo mode."
-  },
-  "toggleTimerButton": {
-    "message": "Ajastin",
-    "description": "Label for the checkbox to toggle the countdown timer."
-  },
-  "toggleMirrorButton": {
-    "message": "Peilaus",
-    "description": "Label for the checkbox to toggle the preview mirroring. Eg. if mirroring is toggled on, preview will be flipped horizontally."
-  },
-  "toggleGridButton": {
-    "message": "Ruudukko",
-    "description": "Label for the checkbox to toggle the grid shown on preview."
-  },
-  "toggleMicButton": {
-    "message": "Mikrofoni",
-    "description": "Label for the checkbox to toggle the microphone for recording video."
-  },
-  "dialogOKButton": {
-    "message": "OK",
-    "description": "Label for the accepting button in the dialog."
-  },
-  "dialogCancelButton": {
-    "message": "Peruuta",
-    "description": "Label for the dismissing button in the dialog."
-  },
-  "deleteConfirmationMsg": {
-    "message": "Haluatko varmasti poistaa tiedoston $file$?",
-    "description": "Confirmation message before removing a selected item from the gallery. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg."
-      }
-    }
-  },
-  "deleteMultiConfirmationMsg": {
-    "message": "Haluatko varmasti poistaa $count$ kohdetta?",
-    "description": "Confirmation message before removing multiple selected items from the gallery. Expects a file count to be passed in.",
-    "placeholders": {
-      "count": {
-        "content": "$1",
-        "example": "20."
-      }
-    }
-  },
-  "migratePicturesMsg": {
-    "message": "Kameralla otetut kuvat ja videot siirretään Lataukset-kansioon. Voit käyttää niitä avaamalla Tiedostot.\n\nJos sovelluksella on tallennustilan käyttöoikeus, se voi käyttää kuvia ja videoita.",
-    "description": "Message shown before moving all photos and videos stored in the Camera App to the Downloads folder."
-  }
-}
\ No newline at end of file
diff --git a/chrome/browser/resources/chromeos/camera/src/_locales/fil/messages.json b/chrome/browser/resources/chromeos/camera/src/_locales/fil/messages.json
deleted file mode 100644
index d1dcb4d..0000000
--- a/chrome/browser/resources/chromeos/camera/src/_locales/fil/messages.json
+++ /dev/null
@@ -1,206 +0,0 @@
-{
-  "name": {
-    "message": "Camera",
-    "description": "Name of the Camera App."
-  },
-  "description": {
-    "message": "Kumuha ng mga larawan at mag-record ng mga video gamit ang iyong camera.",
-    "description": "Short description of the Camera App."
-  },
-  "errorMsgFileSystemFailed": {
-    "message": "Mga error sa file system.",
-    "description": "Error message shown when failing to read or write the file system."
-  },
-  "errorMsgNoCamera": {
-    "message": "Kasalukuyang hindi available ang iyong camera.\nPakitingnan kung nakakonekta nang maayos ang camera.",
-    "description": "Error message shown when it was impossible to connect to the camera due to unavailability."
-  },
-  "errorMsgGalleryExportFailed": {
-    "message": "Hindi na-export ang $file$",
-    "description": "Error message shown when exporting to an external directory failed. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg"
-      }
-    }
-  },
-  "errorMsgSaveFileFailed": {
-    "message": "Hindi na-save ang file",
-    "description": "Error message shown when saving/adding a image or video to the file system failed."
-  },
-  "errorMsgTakePhotoFailed": {
-    "message": "Hindi nakakuha ng larawan",
-    "description": "Error message shown when failing to take photo."
-  },
-  "errorMsgRecordStartFailed": {
-    "message": "Hindi nasimulan ang pag-record",
-    "description": "Error message shown when failing to start recording video."
-  },
-  "errorMsgEmptyRecording": {
-    "message": "Walang na-record",
-    "description": "Error message shown when no data is recorded for a recording and it won't be added to the gallery."
-  },
-  "statusMsgRecordingStopped": {
-    "message": "Huminto ang pag-record",
-    "description": "Status message for spoken feedback when video recording has been stopped."
-  },
-  "statusMsgCameraSwitched": {
-    "message": "Aktibo ang $camera$",
-    "description": "Status message for spoken feedback when switching over to another camera.",
-    "placeholders": {
-      "camera": {
-        "content": "$1",
-        "example": "USB WebCam (12ab:5678) User-facing"
-      }
-    }
-  },
-  "galleryButton": {
-    "message": "Pumunta sa gallery",
-    "description": "Label for the gallery button."
-  },
-  "deleteButton": {
-    "message": "I-delete",
-    "description": "Label for the delete button."
-  },
-  "exportButton": {
-    "message": "I-export sa disk",
-    "description": "Label for the exporting button."
-  },
-  "printButton": {
-    "message": "I-print",
-    "description": "Label for the printing button."
-  },
-  "backButton": {
-    "message": "Bumalik",
-    "description": "Label for the back button."
-  },
-  "galleryImages": {
-    "message": "Mga larawan sa gallery",
-    "description": "Text to speech label for the gallery list."
-  },
-  "settingsButton": {
-    "message": "Mga Setting",
-    "description": "Label for the settings button."
-  },
-  "gridTypeButton": {
-    "message": "Uri ng grid",
-    "description": "Label for the button of grid-type options."
-  },
-  "timerDurationButton": {
-    "message": "Tagal ng timer",
-    "description": "Label for the button of timer-duration options."
-  },
-  "feedbackButton": {
-    "message": "Magpadala ng feedback",
-    "description": "Label for the feedback button."
-  },
-  "helpButton": {
-    "message": "Tulong",
-    "description": "Label for the help button."
-  },
-  "labelGrid3x3": {
-    "message": "3 x 3",
-    "description": "Label for for grid-type: 3x3."
-  },
-  "ariaGrid3x3": {
-    "message": "3 by 3",
-    "description": "Label for spoken feedback to read out grid-type: 3x3."
-  },
-  "labelGrid4x4": {
-    "message": "4 x 4",
-    "description": "Label for for grid-type: 4x4."
-  },
-  "ariaGrid4x4": {
-    "message": "4 by 4",
-    "description": "Label for spoken feedback to read out grid-type: 4x4."
-  },
-  "labelGridGolden": {
-    "message": "Golden ratio",
-    "description": "Label for grid-type: golden ratio."
-  },
-  "labelTimer3s": {
-    "message": "3 segundo",
-    "description": "Label for timer-duration: 3 seconds."
-  },
-  "labelTimer10s": {
-    "message": "10 segundo",
-    "description": "Label for timer-duration: 10 seconds."
-  },
-  "takePhotoButton": {
-    "message": "Kumuha ng larawan",
-    "description": "Label for the shutter button to take photo."
-  },
-  "takePhotoCancelButton": {
-    "message": "Ihinto ang pagkuha ng larawan",
-    "description": "Label for the shutter button to cancel countdown timer and stop taking photo."
-  },
-  "recordVideoStartButton": {
-    "message": "Magsimulang mag-record",
-    "description": "Label for the shutter button to start recording."
-  },
-  "recordVideoStopButton": {
-    "message": "Ihinto ang pag-record",
-    "description": "Label for the shutter button to stop recording."
-  },
-  "switchCameraButton": {
-    "message": "Lumipat sa susunod na camera",
-    "description": "Label for the button to switch to next connected camera. Eg. switching from front facing to back facing, or a camera connected via USB. The button is shown only when more than one camera is connected."
-  },
-  "switchRecordVideoButton": {
-    "message": "Lumipat sa pag-record ng video",
-    "description": "Label for the button to switch to record video mode."
-  },
-  "switchTakePhotoButton": {
-    "message": "Lumipat sa pagkuha ng larawan",
-    "description": "Label for the button to switch to take photo mode."
-  },
-  "toggleTimerButton": {
-    "message": "Timer",
-    "description": "Label for the checkbox to toggle the countdown timer."
-  },
-  "toggleMirrorButton": {
-    "message": "Pag-mirror",
-    "description": "Label for the checkbox to toggle the preview mirroring. Eg. if mirroring is toggled on, preview will be flipped horizontally."
-  },
-  "toggleGridButton": {
-    "message": "Grid",
-    "description": "Label for the checkbox to toggle the grid shown on preview."
-  },
-  "toggleMicButton": {
-    "message": "Mikropono",
-    "description": "Label for the checkbox to toggle the microphone for recording video."
-  },
-  "dialogOKButton": {
-    "message": "OK",
-    "description": "Label for the accepting button in the dialog."
-  },
-  "dialogCancelButton": {
-    "message": "Kanselahin",
-    "description": "Label for the dismissing button in the dialog."
-  },
-  "deleteConfirmationMsg": {
-    "message": "Gusto mo ba talagang alisin ang $file$?",
-    "description": "Confirmation message before removing a selected item from the gallery. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg."
-      }
-    }
-  },
-  "deleteMultiConfirmationMsg": {
-    "message": "Gusto mo ba talagang alisin ang $count$ (na) item?",
-    "description": "Confirmation message before removing multiple selected items from the gallery. Expects a file count to be passed in.",
-    "placeholders": {
-      "count": {
-        "content": "$1",
-        "example": "20."
-      }
-    }
-  },
-  "migratePicturesMsg": {
-    "message": "Ang mga larawan at video na nakunan gamit ang camera ay ililipat sa folder na Mga Download. Maa-access mo ang mga ito sa Mga File.\n\nAng mga app na may mga pahintulot sa storage ay magkakaroon ng access sa iyong mga larawan at video.",
-    "description": "Message shown before moving all photos and videos stored in the Camera App to the Downloads folder."
-  }
-}
\ No newline at end of file
diff --git a/chrome/browser/resources/chromeos/camera/src/_locales/fr/messages.json b/chrome/browser/resources/chromeos/camera/src/_locales/fr/messages.json
deleted file mode 100644
index ce31927f..0000000
--- a/chrome/browser/resources/chromeos/camera/src/_locales/fr/messages.json
+++ /dev/null
@@ -1,206 +0,0 @@
-{
-  "name": {
-    "message": "Appareil photo",
-    "description": "Name of the Camera App."
-  },
-  "description": {
-    "message": "Prenez des photos et enregistrez des vidéos avec votre appareil photo.",
-    "description": "Short description of the Camera App."
-  },
-  "errorMsgFileSystemFailed": {
-    "message": "Erreurs du système de fichiers.",
-    "description": "Error message shown when failing to read or write the file system."
-  },
-  "errorMsgNoCamera": {
-    "message": "Votre caméra est actuellement indisponible.\nVérifiez qu'elle est bien connectée.",
-    "description": "Error message shown when it was impossible to connect to the camera due to unavailability."
-  },
-  "errorMsgGalleryExportFailed": {
-    "message": "Impossible d'exporter $file$",
-    "description": "Error message shown when exporting to an external directory failed. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg"
-      }
-    }
-  },
-  "errorMsgSaveFileFailed": {
-    "message": "Impossible d'enregistrer le fichier",
-    "description": "Error message shown when saving/adding a image or video to the file system failed."
-  },
-  "errorMsgTakePhotoFailed": {
-    "message": "Impossible de prendre la photo",
-    "description": "Error message shown when failing to take photo."
-  },
-  "errorMsgRecordStartFailed": {
-    "message": "Impossible de démarrer l'enregistrement",
-    "description": "Error message shown when failing to start recording video."
-  },
-  "errorMsgEmptyRecording": {
-    "message": "Aucune donnée enregistrée",
-    "description": "Error message shown when no data is recorded for a recording and it won't be added to the gallery."
-  },
-  "statusMsgRecordingStopped": {
-    "message": "Enregistrement interrompu",
-    "description": "Status message for spoken feedback when video recording has been stopped."
-  },
-  "statusMsgCameraSwitched": {
-    "message": "$camera$ active",
-    "description": "Status message for spoken feedback when switching over to another camera.",
-    "placeholders": {
-      "camera": {
-        "content": "$1",
-        "example": "USB WebCam (12ab:5678) User-facing"
-      }
-    }
-  },
-  "galleryButton": {
-    "message": "Accéder à la galerie",
-    "description": "Label for the gallery button."
-  },
-  "deleteButton": {
-    "message": "Supprimer",
-    "description": "Label for the delete button."
-  },
-  "exportButton": {
-    "message": "Exporter vers le disque",
-    "description": "Label for the exporting button."
-  },
-  "printButton": {
-    "message": "Imprimer",
-    "description": "Label for the printing button."
-  },
-  "backButton": {
-    "message": "Retour",
-    "description": "Label for the back button."
-  },
-  "galleryImages": {
-    "message": "Images de la galerie",
-    "description": "Text to speech label for the gallery list."
-  },
-  "settingsButton": {
-    "message": "Paramètres",
-    "description": "Label for the settings button."
-  },
-  "gridTypeButton": {
-    "message": "Type de grille",
-    "description": "Label for the button of grid-type options."
-  },
-  "timerDurationButton": {
-    "message": "Durée du minuteur",
-    "description": "Label for the button of timer-duration options."
-  },
-  "feedbackButton": {
-    "message": "Envoyer des commentaires",
-    "description": "Label for the feedback button."
-  },
-  "helpButton": {
-    "message": "Aide",
-    "description": "Label for the help button."
-  },
-  "labelGrid3x3": {
-    "message": "3 x 3",
-    "description": "Label for for grid-type: 3x3."
-  },
-  "ariaGrid3x3": {
-    "message": "3 par 3",
-    "description": "Label for spoken feedback to read out grid-type: 3x3."
-  },
-  "labelGrid4x4": {
-    "message": "4 x 4",
-    "description": "Label for for grid-type: 4x4."
-  },
-  "ariaGrid4x4": {
-    "message": "4 par 4",
-    "description": "Label for spoken feedback to read out grid-type: 4x4."
-  },
-  "labelGridGolden": {
-    "message": "Rectangle d'or",
-    "description": "Label for grid-type: golden ratio."
-  },
-  "labelTimer3s": {
-    "message": "3 secondes",
-    "description": "Label for timer-duration: 3 seconds."
-  },
-  "labelTimer10s": {
-    "message": "10 secondes",
-    "description": "Label for timer-duration: 10 seconds."
-  },
-  "takePhotoButton": {
-    "message": "Prendre une photo",
-    "description": "Label for the shutter button to take photo."
-  },
-  "takePhotoCancelButton": {
-    "message": "Arrêter de prendre la photo",
-    "description": "Label for the shutter button to cancel countdown timer and stop taking photo."
-  },
-  "recordVideoStartButton": {
-    "message": "Commencer l'enregistrement",
-    "description": "Label for the shutter button to start recording."
-  },
-  "recordVideoStopButton": {
-    "message": "Arrêter l'enregistrement",
-    "description": "Label for the shutter button to stop recording."
-  },
-  "switchCameraButton": {
-    "message": "Passer à la caméra suivante",
-    "description": "Label for the button to switch to next connected camera. Eg. switching from front facing to back facing, or a camera connected via USB. The button is shown only when more than one camera is connected."
-  },
-  "switchRecordVideoButton": {
-    "message": "Passer à l'enregistrement de vidéo",
-    "description": "Label for the button to switch to record video mode."
-  },
-  "switchTakePhotoButton": {
-    "message": "Passer à la prise de photo",
-    "description": "Label for the button to switch to take photo mode."
-  },
-  "toggleTimerButton": {
-    "message": "Minuteur",
-    "description": "Label for the checkbox to toggle the countdown timer."
-  },
-  "toggleMirrorButton": {
-    "message": "Duplication d'écran",
-    "description": "Label for the checkbox to toggle the preview mirroring. Eg. if mirroring is toggled on, preview will be flipped horizontally."
-  },
-  "toggleGridButton": {
-    "message": "Grille",
-    "description": "Label for the checkbox to toggle the grid shown on preview."
-  },
-  "toggleMicButton": {
-    "message": "Micro",
-    "description": "Label for the checkbox to toggle the microphone for recording video."
-  },
-  "dialogOKButton": {
-    "message": "OK",
-    "description": "Label for the accepting button in the dialog."
-  },
-  "dialogCancelButton": {
-    "message": "Annuler",
-    "description": "Label for the dismissing button in the dialog."
-  },
-  "deleteConfirmationMsg": {
-    "message": "Voulez-vous vraiment supprimer $file$ ?",
-    "description": "Confirmation message before removing a selected item from the gallery. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg."
-      }
-    }
-  },
-  "deleteMultiConfirmationMsg": {
-    "message": "Voulez-vous vraiment supprimer $count$ éléments ?",
-    "description": "Confirmation message before removing multiple selected items from the gallery. Expects a file count to be passed in.",
-    "placeholders": {
-      "count": {
-        "content": "$1",
-        "example": "20."
-      }
-    }
-  },
-  "migratePicturesMsg": {
-    "message": "Les photos et vidéos prises avec l'appareil photo seront déplacées vers le dossier \"Téléchargements\". Vous pouvez y accéder via l'application Fichiers.\n\nLes applications disposant d'autorisations d'accès à l'espace de stockage pourront accéder à vos photos et vidéos.",
-    "description": "Message shown before moving all photos and videos stored in the Camera App to the Downloads folder."
-  }
-}
\ No newline at end of file
diff --git a/chrome/browser/resources/chromeos/camera/src/_locales/gu/messages.json b/chrome/browser/resources/chromeos/camera/src/_locales/gu/messages.json
deleted file mode 100644
index a583dd8..0000000
--- a/chrome/browser/resources/chromeos/camera/src/_locales/gu/messages.json
+++ /dev/null
@@ -1,206 +0,0 @@
-{
-  "name": {
-    "message": "કૅમેરા",
-    "description": "Name of the Camera App."
-  },
-  "description": {
-    "message": "તમારા કૅમેરા વડે ફોટા લો અને વીડિઓ રેકોર્ડ કરો.",
-    "description": "Short description of the Camera App."
-  },
-  "errorMsgFileSystemFailed": {
-    "message": "ફાઇલ સિસ્ટમની ભૂલો.",
-    "description": "Error message shown when failing to read or write the file system."
-  },
-  "errorMsgNoCamera": {
-    "message": "તમારો કૅમેરા હાલમાં અનુપલબ્ધ છે.\nકૃપા કરીને ચેક કરો કે કૅમેરા યોગ્ય રીતે કનેક્ટ થયેલો છે.",
-    "description": "Error message shown when it was impossible to connect to the camera due to unavailability."
-  },
-  "errorMsgGalleryExportFailed": {
-    "message": "$file$ને નિકાસ કરવામાં નિષ્ફળ રહ્યાં",
-    "description": "Error message shown when exporting to an external directory failed. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg"
-      }
-    }
-  },
-  "errorMsgSaveFileFailed": {
-    "message": "ફાઇલ સાચવવામાં નિષ્ફળ રહ્યાં",
-    "description": "Error message shown when saving/adding a image or video to the file system failed."
-  },
-  "errorMsgTakePhotoFailed": {
-    "message": "ફોટો લેવામાં નિષ્ફળ રહ્યાં",
-    "description": "Error message shown when failing to take photo."
-  },
-  "errorMsgRecordStartFailed": {
-    "message": "રેકોર્ડિંગ શરૂ કરવામાં નિષ્ફળ રહ્યાં",
-    "description": "Error message shown when failing to start recording video."
-  },
-  "errorMsgEmptyRecording": {
-    "message": "કંઈ રેકોર્ડ થયું નથી",
-    "description": "Error message shown when no data is recorded for a recording and it won't be added to the gallery."
-  },
-  "statusMsgRecordingStopped": {
-    "message": "રેકોર્ડિંગ બંધ કર્યું",
-    "description": "Status message for spoken feedback when video recording has been stopped."
-  },
-  "statusMsgCameraSwitched": {
-    "message": "$camera$ સક્રિય",
-    "description": "Status message for spoken feedback when switching over to another camera.",
-    "placeholders": {
-      "camera": {
-        "content": "$1",
-        "example": "USB WebCam (12ab:5678) User-facing"
-      }
-    }
-  },
-  "galleryButton": {
-    "message": "ગૅલેરી પર જાઓ",
-    "description": "Label for the gallery button."
-  },
-  "deleteButton": {
-    "message": "ડિલીટ કરો",
-    "description": "Label for the delete button."
-  },
-  "exportButton": {
-    "message": "ડિસ્કમાં નિકાસ કરો",
-    "description": "Label for the exporting button."
-  },
-  "printButton": {
-    "message": "પ્રિન્ટ કરો",
-    "description": "Label for the printing button."
-  },
-  "backButton": {
-    "message": "પાછા જાઓ",
-    "description": "Label for the back button."
-  },
-  "galleryImages": {
-    "message": "ગૅલેરી છબીઓ",
-    "description": "Text to speech label for the gallery list."
-  },
-  "settingsButton": {
-    "message": "સેટિંગ",
-    "description": "Label for the settings button."
-  },
-  "gridTypeButton": {
-    "message": "ગ્રિડનો પ્રકાર",
-    "description": "Label for the button of grid-type options."
-  },
-  "timerDurationButton": {
-    "message": "ટાઇમરનો અવધિ",
-    "description": "Label for the button of timer-duration options."
-  },
-  "feedbackButton": {
-    "message": "પ્રતિસાદ મોકલો",
-    "description": "Label for the feedback button."
-  },
-  "helpButton": {
-    "message": "સહાય",
-    "description": "Label for the help button."
-  },
-  "labelGrid3x3": {
-    "message": "3 x 3",
-    "description": "Label for for grid-type: 3x3."
-  },
-  "ariaGrid3x3": {
-    "message": "3 બાય 3",
-    "description": "Label for spoken feedback to read out grid-type: 3x3."
-  },
-  "labelGrid4x4": {
-    "message": "4 x 4",
-    "description": "Label for for grid-type: 4x4."
-  },
-  "ariaGrid4x4": {
-    "message": "4 બાય 4",
-    "description": "Label for spoken feedback to read out grid-type: 4x4."
-  },
-  "labelGridGolden": {
-    "message": "ગોલ્ડન રેશિયો",
-    "description": "Label for grid-type: golden ratio."
-  },
-  "labelTimer3s": {
-    "message": "3 સેકન્ડ",
-    "description": "Label for timer-duration: 3 seconds."
-  },
-  "labelTimer10s": {
-    "message": "10 સેકન્ડ",
-    "description": "Label for timer-duration: 10 seconds."
-  },
-  "takePhotoButton": {
-    "message": "ફોટો લો",
-    "description": "Label for the shutter button to take photo."
-  },
-  "takePhotoCancelButton": {
-    "message": "ફોટા લેવાનું બંધ કરો",
-    "description": "Label for the shutter button to cancel countdown timer and stop taking photo."
-  },
-  "recordVideoStartButton": {
-    "message": "રેકોર્ડિંગ શરૂ કરો",
-    "description": "Label for the shutter button to start recording."
-  },
-  "recordVideoStopButton": {
-    "message": "રેકોર્ડિંગ રોકો",
-    "description": "Label for the shutter button to stop recording."
-  },
-  "switchCameraButton": {
-    "message": "આગલા કૅમેરા પર સ્વિચ કરો",
-    "description": "Label for the button to switch to next connected camera. Eg. switching from front facing to back facing, or a camera connected via USB. The button is shown only when more than one camera is connected."
-  },
-  "switchRecordVideoButton": {
-    "message": "વીડિયો રેકોર્ડ કરવા માટે સ્વિચ કરો",
-    "description": "Label for the button to switch to record video mode."
-  },
-  "switchTakePhotoButton": {
-    "message": "ફોટો લેવા માટે સ્વિચ કરો",
-    "description": "Label for the button to switch to take photo mode."
-  },
-  "toggleTimerButton": {
-    "message": "ટાઇમર",
-    "description": "Label for the checkbox to toggle the countdown timer."
-  },
-  "toggleMirrorButton": {
-    "message": "મીરરીંગ",
-    "description": "Label for the checkbox to toggle the preview mirroring. Eg. if mirroring is toggled on, preview will be flipped horizontally."
-  },
-  "toggleGridButton": {
-    "message": "ગ્રિડ",
-    "description": "Label for the checkbox to toggle the grid shown on preview."
-  },
-  "toggleMicButton": {
-    "message": "માઇક્રોફોન",
-    "description": "Label for the checkbox to toggle the microphone for recording video."
-  },
-  "dialogOKButton": {
-    "message": "ઓકે",
-    "description": "Label for the accepting button in the dialog."
-  },
-  "dialogCancelButton": {
-    "message": "રદ કરો",
-    "description": "Label for the dismissing button in the dialog."
-  },
-  "deleteConfirmationMsg": {
-    "message": "શું તમે ખરેખર $file$ને કાઢી નાખવા માગો છો?",
-    "description": "Confirmation message before removing a selected item from the gallery. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg."
-      }
-    }
-  },
-  "deleteMultiConfirmationMsg": {
-    "message": "શું તમે ખરેખર $count$ આઇટમ કાઢી નાખવા માગો છો?",
-    "description": "Confirmation message before removing multiple selected items from the gallery. Expects a file count to be passed in.",
-    "placeholders": {
-      "count": {
-        "content": "$1",
-        "example": "20."
-      }
-    }
-  },
-  "migratePicturesMsg": {
-    "message": "કૅમેરા વડે લીધેલા ફોટા અને વીડિઓ ડાઉનલોડ ફોલ્ડરમાં ખસેડવામાં આવશે. તમે તેઓને ફાઇલોમાં ઍક્સેસ કરી શકશો.\n\nસ્ટોરેજ માટે પરવાનગી ધરાવતી ઍપ તમારા ફોટા તથા વીડિઓને ઍક્સેસ કરી શકશે.",
-    "description": "Message shown before moving all photos and videos stored in the Camera App to the Downloads folder."
-  }
-}
\ No newline at end of file
diff --git a/chrome/browser/resources/chromeos/camera/src/_locales/he/messages.json b/chrome/browser/resources/chromeos/camera/src/_locales/he/messages.json
deleted file mode 100644
index eb27e03..0000000
--- a/chrome/browser/resources/chromeos/camera/src/_locales/he/messages.json
+++ /dev/null
@@ -1,206 +0,0 @@
-{
-  "name": {
-    "message": "מצלמה",
-    "description": "Name of the Camera App."
-  },
-  "description": {
-    "message": "צילום תמונות וסרטונים באמצעות המצלמה.",
-    "description": "Short description of the Camera App."
-  },
-  "errorMsgFileSystemFailed": {
-    "message": "שגיאות במערכת הקבצים.",
-    "description": "Error message shown when failing to read or write the file system."
-  },
-  "errorMsgNoCamera": {
-    "message": "המצלמה לא זמינה כרגע.\nיש לבדוק אם היא מחוברת כראוי.",
-    "description": "Error message shown when it was impossible to connect to the camera due to unavailability."
-  },
-  "errorMsgGalleryExportFailed": {
-    "message": "לא ניתן לייצא את $file$",
-    "description": "Error message shown when exporting to an external directory failed. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg"
-      }
-    }
-  },
-  "errorMsgSaveFileFailed": {
-    "message": "לא ניתן לשמור את הקובץ",
-    "description": "Error message shown when saving/adding a image or video to the file system failed."
-  },
-  "errorMsgTakePhotoFailed": {
-    "message": "לא ניתן לצלם את התמונה",
-    "description": "Error message shown when failing to take photo."
-  },
-  "errorMsgRecordStartFailed": {
-    "message": "לא ניתן להתחיל בצילום סרטון",
-    "description": "Error message shown when failing to start recording video."
-  },
-  "errorMsgEmptyRecording": {
-    "message": "לא צולם סרטון",
-    "description": "Error message shown when no data is recorded for a recording and it won't be added to the gallery."
-  },
-  "statusMsgRecordingStopped": {
-    "message": "צילום הסרטון הופסק",
-    "description": "Status message for spoken feedback when video recording has been stopped."
-  },
-  "statusMsgCameraSwitched": {
-    "message": "$camera$ פעילה",
-    "description": "Status message for spoken feedback when switching over to another camera.",
-    "placeholders": {
-      "camera": {
-        "content": "$1",
-        "example": "USB WebCam (12ab:5678) User-facing"
-      }
-    }
-  },
-  "galleryButton": {
-    "message": "מעבר אל הגלריה",
-    "description": "Label for the gallery button."
-  },
-  "deleteButton": {
-    "message": "מחיקה",
-    "description": "Label for the delete button."
-  },
-  "exportButton": {
-    "message": "ייצוא לדיסק",
-    "description": "Label for the exporting button."
-  },
-  "printButton": {
-    "message": "הדפסה",
-    "description": "Label for the printing button."
-  },
-  "backButton": {
-    "message": "חזרה",
-    "description": "Label for the back button."
-  },
-  "galleryImages": {
-    "message": "תמונות בגלריה",
-    "description": "Text to speech label for the gallery list."
-  },
-  "settingsButton": {
-    "message": "הגדרות",
-    "description": "Label for the settings button."
-  },
-  "gridTypeButton": {
-    "message": "סוג הרשת",
-    "description": "Label for the button of grid-type options."
-  },
-  "timerDurationButton": {
-    "message": "משך זמן בטיימר",
-    "description": "Label for the button of timer-duration options."
-  },
-  "feedbackButton": {
-    "message": "שליחת משוב",
-    "description": "Label for the feedback button."
-  },
-  "helpButton": {
-    "message": "עזרה",
-    "description": "Label for the help button."
-  },
-  "labelGrid3x3": {
-    "message": "‎3 x 3",
-    "description": "Label for for grid-type: 3x3."
-  },
-  "ariaGrid3x3": {
-    "message": "3 על 3",
-    "description": "Label for spoken feedback to read out grid-type: 3x3."
-  },
-  "labelGrid4x4": {
-    "message": "‎4 x 4",
-    "description": "Label for for grid-type: 4x4."
-  },
-  "ariaGrid4x4": {
-    "message": "4 על 4",
-    "description": "Label for spoken feedback to read out grid-type: 4x4."
-  },
-  "labelGridGolden": {
-    "message": "יחס הזהב",
-    "description": "Label for grid-type: golden ratio."
-  },
-  "labelTimer3s": {
-    "message": "3 שניות",
-    "description": "Label for timer-duration: 3 seconds."
-  },
-  "labelTimer10s": {
-    "message": "10 שניות",
-    "description": "Label for timer-duration: 10 seconds."
-  },
-  "takePhotoButton": {
-    "message": "צילום התמונה",
-    "description": "Label for the shutter button to take photo."
-  },
-  "takePhotoCancelButton": {
-    "message": "הפסקת הצילום",
-    "description": "Label for the shutter button to cancel countdown timer and stop taking photo."
-  },
-  "recordVideoStartButton": {
-    "message": "התחלת צילום סרטון",
-    "description": "Label for the shutter button to start recording."
-  },
-  "recordVideoStopButton": {
-    "message": "הפסקת צילום הסרטון",
-    "description": "Label for the shutter button to stop recording."
-  },
-  "switchCameraButton": {
-    "message": "מעבר למצלמה הבאה",
-    "description": "Label for the button to switch to next connected camera. Eg. switching from front facing to back facing, or a camera connected via USB. The button is shown only when more than one camera is connected."
-  },
-  "switchRecordVideoButton": {
-    "message": "מעבר לצילום סרטון",
-    "description": "Label for the button to switch to record video mode."
-  },
-  "switchTakePhotoButton": {
-    "message": "מעבר לצילום תמונה",
-    "description": "Label for the button to switch to take photo mode."
-  },
-  "toggleTimerButton": {
-    "message": "טיימר",
-    "description": "Label for the checkbox to toggle the countdown timer."
-  },
-  "toggleMirrorButton": {
-    "message": "שיקוף",
-    "description": "Label for the checkbox to toggle the preview mirroring. Eg. if mirroring is toggled on, preview will be flipped horizontally."
-  },
-  "toggleGridButton": {
-    "message": "רשת",
-    "description": "Label for the checkbox to toggle the grid shown on preview."
-  },
-  "toggleMicButton": {
-    "message": "מיקרופון",
-    "description": "Label for the checkbox to toggle the microphone for recording video."
-  },
-  "dialogOKButton": {
-    "message": "אישור",
-    "description": "Label for the accepting button in the dialog."
-  },
-  "dialogCancelButton": {
-    "message": "ביטול",
-    "description": "Label for the dismissing button in the dialog."
-  },
-  "deleteConfirmationMsg": {
-    "message": "להסיר את $file$?",
-    "description": "Confirmation message before removing a selected item from the gallery. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg."
-      }
-    }
-  },
-  "deleteMultiConfirmationMsg": {
-    "message": "להסיר את $count$ הפריטים?",
-    "description": "Confirmation message before removing multiple selected items from the gallery. Expects a file count to be passed in.",
-    "placeholders": {
-      "count": {
-        "content": "$1",
-        "example": "20."
-      }
-    }
-  },
-  "migratePicturesMsg": {
-    "message": "תמונות וסרטונים שצולמו באמצעות המצלמה יועברו אל התיקייה 'הורדות'. אפשר לגשת אליהם דרך 'קבצים'.\n\nאפליקציות עם הרשאות אחסון יקבלו גישה אל התמונות והסרטונים.",
-    "description": "Message shown before moving all photos and videos stored in the Camera App to the Downloads folder."
-  }
-}
\ No newline at end of file
diff --git a/chrome/browser/resources/chromeos/camera/src/_locales/hi/messages.json b/chrome/browser/resources/chromeos/camera/src/_locales/hi/messages.json
deleted file mode 100644
index 29909b1..0000000
--- a/chrome/browser/resources/chromeos/camera/src/_locales/hi/messages.json
+++ /dev/null
@@ -1,206 +0,0 @@
-{
-  "name": {
-    "message": "कैमरा",
-    "description": "Name of the Camera App."
-  },
-  "description": {
-    "message": "अपने कैमरे से फ़ोटो खींचें और वीडियो रिकॉर्ड करें.",
-    "description": "Short description of the Camera App."
-  },
-  "errorMsgFileSystemFailed": {
-    "message": "फ़ाइल सिस्टम की गड़बड़ियां.",
-    "description": "Error message shown when failing to read or write the file system."
-  },
-  "errorMsgNoCamera": {
-    "message": "आपका कैमरा फ़िलहाल उपलब्ध नहीं है.\nकृपया देखें कि कैमरा ठीक तरह से कनेक्ट है या नहीं.",
-    "description": "Error message shown when it was impossible to connect to the camera due to unavailability."
-  },
-  "errorMsgGalleryExportFailed": {
-    "message": "$file$ एक्सपोर्ट नहीं की जा सकती",
-    "description": "Error message shown when exporting to an external directory failed. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg"
-      }
-    }
-  },
-  "errorMsgSaveFileFailed": {
-    "message": "फ़ाइल सेव नहीं की जा सकी",
-    "description": "Error message shown when saving/adding a image or video to the file system failed."
-  },
-  "errorMsgTakePhotoFailed": {
-    "message": "फ़ोटो नहीं खींची जा सकी",
-    "description": "Error message shown when failing to take photo."
-  },
-  "errorMsgRecordStartFailed": {
-    "message": "रिकॉर्डिंग शुरू नहीं की जा सकी",
-    "description": "Error message shown when failing to start recording video."
-  },
-  "errorMsgEmptyRecording": {
-    "message": "कुछ भी रिकॉर्ड नहीं हुआ",
-    "description": "Error message shown when no data is recorded for a recording and it won't be added to the gallery."
-  },
-  "statusMsgRecordingStopped": {
-    "message": "रिकॉर्डिंग रूक गई है",
-    "description": "Status message for spoken feedback when video recording has been stopped."
-  },
-  "statusMsgCameraSwitched": {
-    "message": "$camera$ चालू है",
-    "description": "Status message for spoken feedback when switching over to another camera.",
-    "placeholders": {
-      "camera": {
-        "content": "$1",
-        "example": "USB WebCam (12ab:5678) User-facing"
-      }
-    }
-  },
-  "galleryButton": {
-    "message": "गैलरी में जाएं",
-    "description": "Label for the gallery button."
-  },
-  "deleteButton": {
-    "message": "मिटाएं",
-    "description": "Label for the delete button."
-  },
-  "exportButton": {
-    "message": "डिस्क में ले जाएं",
-    "description": "Label for the exporting button."
-  },
-  "printButton": {
-    "message": "प्रिंट करें",
-    "description": "Label for the printing button."
-  },
-  "backButton": {
-    "message": "वापस जाएं",
-    "description": "Label for the back button."
-  },
-  "galleryImages": {
-    "message": "गैलरी की इमेज",
-    "description": "Text to speech label for the gallery list."
-  },
-  "settingsButton": {
-    "message": "सेटिंग",
-    "description": "Label for the settings button."
-  },
-  "gridTypeButton": {
-    "message": "ग्रिड प्रकार",
-    "description": "Label for the button of grid-type options."
-  },
-  "timerDurationButton": {
-    "message": "टाइमर का कुल समय",
-    "description": "Label for the button of timer-duration options."
-  },
-  "feedbackButton": {
-    "message": "फ़ीडबैक भेजें",
-    "description": "Label for the feedback button."
-  },
-  "helpButton": {
-    "message": "सहायता",
-    "description": "Label for the help button."
-  },
-  "labelGrid3x3": {
-    "message": "3 x 3",
-    "description": "Label for for grid-type: 3x3."
-  },
-  "ariaGrid3x3": {
-    "message": "3 गुणा 3",
-    "description": "Label for spoken feedback to read out grid-type: 3x3."
-  },
-  "labelGrid4x4": {
-    "message": "4 x 4",
-    "description": "Label for for grid-type: 4x4."
-  },
-  "ariaGrid4x4": {
-    "message": "4 गुणा 4",
-    "description": "Label for spoken feedback to read out grid-type: 4x4."
-  },
-  "labelGridGolden": {
-    "message": "स्वर्ण अनुपात",
-    "description": "Label for grid-type: golden ratio."
-  },
-  "labelTimer3s": {
-    "message": "तीन सेकंड",
-    "description": "Label for timer-duration: 3 seconds."
-  },
-  "labelTimer10s": {
-    "message": "10 सेकंड",
-    "description": "Label for timer-duration: 10 seconds."
-  },
-  "takePhotoButton": {
-    "message": "फ़ोटो लें",
-    "description": "Label for the shutter button to take photo."
-  },
-  "takePhotoCancelButton": {
-    "message": "फ़ोटो न खींचें",
-    "description": "Label for the shutter button to cancel countdown timer and stop taking photo."
-  },
-  "recordVideoStartButton": {
-    "message": "रिकॉर्ड करना शुरू करें",
-    "description": "Label for the shutter button to start recording."
-  },
-  "recordVideoStopButton": {
-    "message": "रिकॉर्ड करना बंद करें",
-    "description": "Label for the shutter button to stop recording."
-  },
-  "switchCameraButton": {
-    "message": "अगले कैमरे का इस्तेमाल करें",
-    "description": "Label for the button to switch to next connected camera. Eg. switching from front facing to back facing, or a camera connected via USB. The button is shown only when more than one camera is connected."
-  },
-  "switchRecordVideoButton": {
-    "message": "वीडियो रिकॉर्डिंग मोड पर जाएं",
-    "description": "Label for the button to switch to record video mode."
-  },
-  "switchTakePhotoButton": {
-    "message": "फ़ोटो खींचने वाले मोड पर जाएं",
-    "description": "Label for the button to switch to take photo mode."
-  },
-  "toggleTimerButton": {
-    "message": "टाइमर",
-    "description": "Label for the checkbox to toggle the countdown timer."
-  },
-  "toggleMirrorButton": {
-    "message": "मिररिंग",
-    "description": "Label for the checkbox to toggle the preview mirroring. Eg. if mirroring is toggled on, preview will be flipped horizontally."
-  },
-  "toggleGridButton": {
-    "message": "ग्रिड",
-    "description": "Label for the checkbox to toggle the grid shown on preview."
-  },
-  "toggleMicButton": {
-    "message": "माइक्रोफ़ोन",
-    "description": "Label for the checkbox to toggle the microphone for recording video."
-  },
-  "dialogOKButton": {
-    "message": "ठीक",
-    "description": "Label for the accepting button in the dialog."
-  },
-  "dialogCancelButton": {
-    "message": "अभी नहीं",
-    "description": "Label for the dismissing button in the dialog."
-  },
-  "deleteConfirmationMsg": {
-    "message": "क्या आप वाकई $file$ को हटाना चाहते हैं?",
-    "description": "Confirmation message before removing a selected item from the gallery. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg."
-      }
-    }
-  },
-  "deleteMultiConfirmationMsg": {
-    "message": "क्या आप वाकई $count$ आइटम हटाना चाहते हैं?",
-    "description": "Confirmation message before removing multiple selected items from the gallery. Expects a file count to be passed in.",
-    "placeholders": {
-      "count": {
-        "content": "$1",
-        "example": "20."
-      }
-    }
-  },
-  "migratePicturesMsg": {
-    "message": "कैमरे से ली गईं फ़ोटो और वीडियो 'डाउनलोड' फ़ोल्डर में ले जाए जाएंगे. आप 'फ़ाइल' में जाकर उन्हें एक्सेस कर सकते हैं.\n\nमेमोरी की अनुमतियों वाले ऐप्लिकेशन आपकी फ़ोटो और वीडियो एक्सेस कर पाएंगे.",
-    "description": "Message shown before moving all photos and videos stored in the Camera App to the Downloads folder."
-  }
-}
\ No newline at end of file
diff --git a/chrome/browser/resources/chromeos/camera/src/_locales/hr/messages.json b/chrome/browser/resources/chromeos/camera/src/_locales/hr/messages.json
deleted file mode 100644
index e5b4620..0000000
--- a/chrome/browser/resources/chromeos/camera/src/_locales/hr/messages.json
+++ /dev/null
@@ -1,206 +0,0 @@
-{
-  "name": {
-    "message": "Fotoaparat",
-    "description": "Name of the Camera App."
-  },
-  "description": {
-    "message": "Snimajte fotografije i videozapise svojim fotoaparatom.",
-    "description": "Short description of the Camera App."
-  },
-  "errorMsgFileSystemFailed": {
-    "message": "Pogreške datotečnog sustava.",
-    "description": "Error message shown when failing to read or write the file system."
-  },
-  "errorMsgNoCamera": {
-    "message": "Fotoaparat trenutačno nije dostupan.\nProvjerite je li fotoaparat pravilno povezan.",
-    "description": "Error message shown when it was impossible to connect to the camera due to unavailability."
-  },
-  "errorMsgGalleryExportFailed": {
-    "message": "Izvoz datoteke $file$ nije uspio",
-    "description": "Error message shown when exporting to an external directory failed. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg"
-      }
-    }
-  },
-  "errorMsgSaveFileFailed": {
-    "message": "Spremanje datoteke nije uspjelo",
-    "description": "Error message shown when saving/adding a image or video to the file system failed."
-  },
-  "errorMsgTakePhotoFailed": {
-    "message": "Snimanje fotografije nije uspjelo",
-    "description": "Error message shown when failing to take photo."
-  },
-  "errorMsgRecordStartFailed": {
-    "message": "Pokretanje snimanja nije uspjelo",
-    "description": "Error message shown when failing to start recording video."
-  },
-  "errorMsgEmptyRecording": {
-    "message": "Nije snimljeno ništa",
-    "description": "Error message shown when no data is recorded for a recording and it won't be added to the gallery."
-  },
-  "statusMsgRecordingStopped": {
-    "message": "Snimanje je zaustavljeno",
-    "description": "Status message for spoken feedback when video recording has been stopped."
-  },
-  "statusMsgCameraSwitched": {
-    "message": "Aktivno: $camera$",
-    "description": "Status message for spoken feedback when switching over to another camera.",
-    "placeholders": {
-      "camera": {
-        "content": "$1",
-        "example": "USB WebCam (12ab:5678) User-facing"
-      }
-    }
-  },
-  "galleryButton": {
-    "message": "Otvori galeriju",
-    "description": "Label for the gallery button."
-  },
-  "deleteButton": {
-    "message": "Izbriši",
-    "description": "Label for the delete button."
-  },
-  "exportButton": {
-    "message": "Izvezi na disk",
-    "description": "Label for the exporting button."
-  },
-  "printButton": {
-    "message": "Ispiši",
-    "description": "Label for the printing button."
-  },
-  "backButton": {
-    "message": "Natrag",
-    "description": "Label for the back button."
-  },
-  "galleryImages": {
-    "message": "Slike iz galerije",
-    "description": "Text to speech label for the gallery list."
-  },
-  "settingsButton": {
-    "message": "Postavke",
-    "description": "Label for the settings button."
-  },
-  "gridTypeButton": {
-    "message": "Vrsta rešetke",
-    "description": "Label for the button of grid-type options."
-  },
-  "timerDurationButton": {
-    "message": "Trajanje odbrojavanja",
-    "description": "Label for the button of timer-duration options."
-  },
-  "feedbackButton": {
-    "message": "Pošaljite povratne informacije",
-    "description": "Label for the feedback button."
-  },
-  "helpButton": {
-    "message": "Pomoć",
-    "description": "Label for the help button."
-  },
-  "labelGrid3x3": {
-    "message": "3 x 3",
-    "description": "Label for for grid-type: 3x3."
-  },
-  "ariaGrid3x3": {
-    "message": "Tri puta tri",
-    "description": "Label for spoken feedback to read out grid-type: 3x3."
-  },
-  "labelGrid4x4": {
-    "message": "4 x 4",
-    "description": "Label for for grid-type: 4x4."
-  },
-  "ariaGrid4x4": {
-    "message": "Četiri puta četiri",
-    "description": "Label for spoken feedback to read out grid-type: 4x4."
-  },
-  "labelGridGolden": {
-    "message": "Zlatni rez",
-    "description": "Label for grid-type: golden ratio."
-  },
-  "labelTimer3s": {
-    "message": "3 sekunde",
-    "description": "Label for timer-duration: 3 seconds."
-  },
-  "labelTimer10s": {
-    "message": "10 sekundi",
-    "description": "Label for timer-duration: 10 seconds."
-  },
-  "takePhotoButton": {
-    "message": "Snimi fotografiju",
-    "description": "Label for the shutter button to take photo."
-  },
-  "takePhotoCancelButton": {
-    "message": "Zaustavi snimanje fotografije",
-    "description": "Label for the shutter button to cancel countdown timer and stop taking photo."
-  },
-  "recordVideoStartButton": {
-    "message": "Započni snimanje",
-    "description": "Label for the shutter button to start recording."
-  },
-  "recordVideoStopButton": {
-    "message": "Zaustavi snimanje",
-    "description": "Label for the shutter button to stop recording."
-  },
-  "switchCameraButton": {
-    "message": "Prijeđi na sljedeći fotoaparat",
-    "description": "Label for the button to switch to next connected camera. Eg. switching from front facing to back facing, or a camera connected via USB. The button is shown only when more than one camera is connected."
-  },
-  "switchRecordVideoButton": {
-    "message": "Prijeđi na snimanje videozapisa",
-    "description": "Label for the button to switch to record video mode."
-  },
-  "switchTakePhotoButton": {
-    "message": "Prijeđi na snimanje fotografije",
-    "description": "Label for the button to switch to take photo mode."
-  },
-  "toggleTimerButton": {
-    "message": "Odbrojavanje",
-    "description": "Label for the checkbox to toggle the countdown timer."
-  },
-  "toggleMirrorButton": {
-    "message": "Zrcaljenje",
-    "description": "Label for the checkbox to toggle the preview mirroring. Eg. if mirroring is toggled on, preview will be flipped horizontally."
-  },
-  "toggleGridButton": {
-    "message": "Rešetka",
-    "description": "Label for the checkbox to toggle the grid shown on preview."
-  },
-  "toggleMicButton": {
-    "message": "Mikrofon",
-    "description": "Label for the checkbox to toggle the microphone for recording video."
-  },
-  "dialogOKButton": {
-    "message": "U redu",
-    "description": "Label for the accepting button in the dialog."
-  },
-  "dialogCancelButton": {
-    "message": "Odustani",
-    "description": "Label for the dismissing button in the dialog."
-  },
-  "deleteConfirmationMsg": {
-    "message": "Želite li doista ukloniti datoteku $file$?",
-    "description": "Confirmation message before removing a selected item from the gallery. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg."
-      }
-    }
-  },
-  "deleteMultiConfirmationMsg": {
-    "message": "Želite li doista ukloniti te stavke (ukupno $count$)?",
-    "description": "Confirmation message before removing multiple selected items from the gallery. Expects a file count to be passed in.",
-    "placeholders": {
-      "count": {
-        "content": "$1",
-        "example": "20."
-      }
-    }
-  },
-  "migratePicturesMsg": {
-    "message": "Fotografije i videozapisi snimljeni fotoaparatom premjestit će se u mapu Preuzimanja. Možete im pristupiti u Datotekama.\n\nAplikacije s dopuštenjima za pohranu imat će pristup vašim fotografijama i videozapisima.",
-    "description": "Message shown before moving all photos and videos stored in the Camera App to the Downloads folder."
-  }
-}
\ No newline at end of file
diff --git a/chrome/browser/resources/chromeos/camera/src/_locales/hu/messages.json b/chrome/browser/resources/chromeos/camera/src/_locales/hu/messages.json
deleted file mode 100644
index 16cf3b6..0000000
--- a/chrome/browser/resources/chromeos/camera/src/_locales/hu/messages.json
+++ /dev/null
@@ -1,206 +0,0 @@
-{
-  "name": {
-    "message": "Kamera",
-    "description": "Name of the Camera App."
-  },
-  "description": {
-    "message": "Fotókat és videókat készíthet a kamerával.",
-    "description": "Short description of the Camera App."
-  },
-  "errorMsgFileSystemFailed": {
-    "message": "Fájlrendszerbeli hibák.",
-    "description": "Error message shown when failing to read or write the file system."
-  },
-  "errorMsgNoCamera": {
-    "message": "A kamera jelenleg nem áll rendelkezésre.\nEllenőrizze, hogy megfelelően van-e csatlakoztatva.",
-    "description": "Error message shown when it was impossible to connect to the camera due to unavailability."
-  },
-  "errorMsgGalleryExportFailed": {
-    "message": "Nem sikerült exportálni a fájlt ($file$).",
-    "description": "Error message shown when exporting to an external directory failed. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg"
-      }
-    }
-  },
-  "errorMsgSaveFileFailed": {
-    "message": "Nem sikerült menteni a fájlt.",
-    "description": "Error message shown when saving/adding a image or video to the file system failed."
-  },
-  "errorMsgTakePhotoFailed": {
-    "message": "Nem sikerült elkészíteni a fotót.",
-    "description": "Error message shown when failing to take photo."
-  },
-  "errorMsgRecordStartFailed": {
-    "message": "Nem sikerült elindítani a rögzítést.",
-    "description": "Error message shown when failing to start recording video."
-  },
-  "errorMsgEmptyRecording": {
-    "message": "A rendszer semmit sem rögzített.",
-    "description": "Error message shown when no data is recorded for a recording and it won't be added to the gallery."
-  },
-  "statusMsgRecordingStopped": {
-    "message": "A rögzítés leállt",
-    "description": "Status message for spoken feedback when video recording has been stopped."
-  },
-  "statusMsgCameraSwitched": {
-    "message": "$camera$ aktív",
-    "description": "Status message for spoken feedback when switching over to another camera.",
-    "placeholders": {
-      "camera": {
-        "content": "$1",
-        "example": "USB WebCam (12ab:5678) User-facing"
-      }
-    }
-  },
-  "galleryButton": {
-    "message": "Ugrás a galériába",
-    "description": "Label for the gallery button."
-  },
-  "deleteButton": {
-    "message": "Törlés",
-    "description": "Label for the delete button."
-  },
-  "exportButton": {
-    "message": "Exportálás lemezre",
-    "description": "Label for the exporting button."
-  },
-  "printButton": {
-    "message": "Nyomtatás",
-    "description": "Label for the printing button."
-  },
-  "backButton": {
-    "message": "Vissza",
-    "description": "Label for the back button."
-  },
-  "galleryImages": {
-    "message": "Galériaképek",
-    "description": "Text to speech label for the gallery list."
-  },
-  "settingsButton": {
-    "message": "Beállítások",
-    "description": "Label for the settings button."
-  },
-  "gridTypeButton": {
-    "message": "Rács típusa",
-    "description": "Label for the button of grid-type options."
-  },
-  "timerDurationButton": {
-    "message": "Időzítés hossza",
-    "description": "Label for the button of timer-duration options."
-  },
-  "feedbackButton": {
-    "message": "Visszajelzés küldése",
-    "description": "Label for the feedback button."
-  },
-  "helpButton": {
-    "message": "Súgó",
-    "description": "Label for the help button."
-  },
-  "labelGrid3x3": {
-    "message": "3 × 3",
-    "description": "Label for for grid-type: 3x3."
-  },
-  "ariaGrid3x3": {
-    "message": "Háromszor hármas",
-    "description": "Label for spoken feedback to read out grid-type: 3x3."
-  },
-  "labelGrid4x4": {
-    "message": "4 × 4",
-    "description": "Label for for grid-type: 4x4."
-  },
-  "ariaGrid4x4": {
-    "message": "Négyszer négyes",
-    "description": "Label for spoken feedback to read out grid-type: 4x4."
-  },
-  "labelGridGolden": {
-    "message": "Aranymetszés",
-    "description": "Label for grid-type: golden ratio."
-  },
-  "labelTimer3s": {
-    "message": "3 másodperc",
-    "description": "Label for timer-duration: 3 seconds."
-  },
-  "labelTimer10s": {
-    "message": "10 másodperc",
-    "description": "Label for timer-duration: 10 seconds."
-  },
-  "takePhotoButton": {
-    "message": "Fotókészítés",
-    "description": "Label for the shutter button to take photo."
-  },
-  "takePhotoCancelButton": {
-    "message": "Fotókészítés leállítása",
-    "description": "Label for the shutter button to cancel countdown timer and stop taking photo."
-  },
-  "recordVideoStartButton": {
-    "message": "Rögzítés megkezdése",
-    "description": "Label for the shutter button to start recording."
-  },
-  "recordVideoStopButton": {
-    "message": "Rögzítés leállítása",
-    "description": "Label for the shutter button to stop recording."
-  },
-  "switchCameraButton": {
-    "message": "Váltás a következő kamerára",
-    "description": "Label for the button to switch to next connected camera. Eg. switching from front facing to back facing, or a camera connected via USB. The button is shown only when more than one camera is connected."
-  },
-  "switchRecordVideoButton": {
-    "message": "Váltás videórögzítésre",
-    "description": "Label for the button to switch to record video mode."
-  },
-  "switchTakePhotoButton": {
-    "message": "Váltás fotókészítésre",
-    "description": "Label for the button to switch to take photo mode."
-  },
-  "toggleTimerButton": {
-    "message": "Időzítő",
-    "description": "Label for the checkbox to toggle the countdown timer."
-  },
-  "toggleMirrorButton": {
-    "message": "Tükrözés",
-    "description": "Label for the checkbox to toggle the preview mirroring. Eg. if mirroring is toggled on, preview will be flipped horizontally."
-  },
-  "toggleGridButton": {
-    "message": "Rács",
-    "description": "Label for the checkbox to toggle the grid shown on preview."
-  },
-  "toggleMicButton": {
-    "message": "Mikrofon",
-    "description": "Label for the checkbox to toggle the microphone for recording video."
-  },
-  "dialogOKButton": {
-    "message": "OK",
-    "description": "Label for the accepting button in the dialog."
-  },
-  "dialogCancelButton": {
-    "message": "Mégse",
-    "description": "Label for the dismissing button in the dialog."
-  },
-  "deleteConfirmationMsg": {
-    "message": "Biztosan eltávolítja a következő fájlt: $file$?",
-    "description": "Confirmation message before removing a selected item from the gallery. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg."
-      }
-    }
-  },
-  "deleteMultiConfirmationMsg": {
-    "message": "Biztosan eltávolít $count$ elemet?",
-    "description": "Confirmation message before removing multiple selected items from the gallery. Expects a file count to be passed in.",
-    "placeholders": {
-      "count": {
-        "content": "$1",
-        "example": "20."
-      }
-    }
-  },
-  "migratePicturesMsg": {
-    "message": "A kamerával készített fotók és videók a Letöltések mappába kerülnek. A Fájlok alkalmazásban érheti el őket.\n\nA tárhelyengedéllyel rendelkező alkalmazások hozzáférnek fotóihoz és videóihoz.",
-    "description": "Message shown before moving all photos and videos stored in the Camera App to the Downloads folder."
-  }
-}
\ No newline at end of file
diff --git a/chrome/browser/resources/chromeos/camera/src/_locales/id/messages.json b/chrome/browser/resources/chromeos/camera/src/_locales/id/messages.json
deleted file mode 100644
index 994c6c56..0000000
--- a/chrome/browser/resources/chromeos/camera/src/_locales/id/messages.json
+++ /dev/null
@@ -1,206 +0,0 @@
-{
-  "name": {
-    "message": "Kamera",
-    "description": "Name of the Camera App."
-  },
-  "description": {
-    "message": "Ambil foto dan rekam video dengan kamera Anda.",
-    "description": "Short description of the Camera App."
-  },
-  "errorMsgFileSystemFailed": {
-    "message": "Error sistem file.",
-    "description": "Error message shown when failing to read or write the file system."
-  },
-  "errorMsgNoCamera": {
-    "message": "Kamera Anda saat ini tidak tersedia.\nHarap periksa apakah kamera terhubung dengan benar.",
-    "description": "Error message shown when it was impossible to connect to the camera due to unavailability."
-  },
-  "errorMsgGalleryExportFailed": {
-    "message": "Tidak dapat mengekspor $file$",
-    "description": "Error message shown when exporting to an external directory failed. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg"
-      }
-    }
-  },
-  "errorMsgSaveFileFailed": {
-    "message": "Tidak dapat menyimpan file",
-    "description": "Error message shown when saving/adding a image or video to the file system failed."
-  },
-  "errorMsgTakePhotoFailed": {
-    "message": "Tidak dapat mengambil foto",
-    "description": "Error message shown when failing to take photo."
-  },
-  "errorMsgRecordStartFailed": {
-    "message": "Tidak dapat memulai rekaman",
-    "description": "Error message shown when failing to start recording video."
-  },
-  "errorMsgEmptyRecording": {
-    "message": "Tidak ada yang direkam",
-    "description": "Error message shown when no data is recorded for a recording and it won't be added to the gallery."
-  },
-  "statusMsgRecordingStopped": {
-    "message": "Rekaman dihentikan",
-    "description": "Status message for spoken feedback when video recording has been stopped."
-  },
-  "statusMsgCameraSwitched": {
-    "message": "$camera$ aktif",
-    "description": "Status message for spoken feedback when switching over to another camera.",
-    "placeholders": {
-      "camera": {
-        "content": "$1",
-        "example": "USB WebCam (12ab:5678) User-facing"
-      }
-    }
-  },
-  "galleryButton": {
-    "message": "Buka galeri",
-    "description": "Label for the gallery button."
-  },
-  "deleteButton": {
-    "message": "Hapus",
-    "description": "Label for the delete button."
-  },
-  "exportButton": {
-    "message": "Ekspor ke disk",
-    "description": "Label for the exporting button."
-  },
-  "printButton": {
-    "message": "Cetak",
-    "description": "Label for the printing button."
-  },
-  "backButton": {
-    "message": "Kembali",
-    "description": "Label for the back button."
-  },
-  "galleryImages": {
-    "message": "Foto galeri",
-    "description": "Text to speech label for the gallery list."
-  },
-  "settingsButton": {
-    "message": "Setelan",
-    "description": "Label for the settings button."
-  },
-  "gridTypeButton": {
-    "message": "Jenis petak",
-    "description": "Label for the button of grid-type options."
-  },
-  "timerDurationButton": {
-    "message": "Durasi timer",
-    "description": "Label for the button of timer-duration options."
-  },
-  "feedbackButton": {
-    "message": "Kirim masukan",
-    "description": "Label for the feedback button."
-  },
-  "helpButton": {
-    "message": "Bantuan",
-    "description": "Label for the help button."
-  },
-  "labelGrid3x3": {
-    "message": "3 x 3",
-    "description": "Label for for grid-type: 3x3."
-  },
-  "ariaGrid3x3": {
-    "message": "3 kali 3",
-    "description": "Label for spoken feedback to read out grid-type: 3x3."
-  },
-  "labelGrid4x4": {
-    "message": "4 x 4",
-    "description": "Label for for grid-type: 4x4."
-  },
-  "ariaGrid4x4": {
-    "message": "4 kali 4",
-    "description": "Label for spoken feedback to read out grid-type: 4x4."
-  },
-  "labelGridGolden": {
-    "message": "Rasio emas",
-    "description": "Label for grid-type: golden ratio."
-  },
-  "labelTimer3s": {
-    "message": "3 detik",
-    "description": "Label for timer-duration: 3 seconds."
-  },
-  "labelTimer10s": {
-    "message": "10 detik",
-    "description": "Label for timer-duration: 10 seconds."
-  },
-  "takePhotoButton": {
-    "message": "Ambil foto",
-    "description": "Label for the shutter button to take photo."
-  },
-  "takePhotoCancelButton": {
-    "message": "Berhenti mengambil foto",
-    "description": "Label for the shutter button to cancel countdown timer and stop taking photo."
-  },
-  "recordVideoStartButton": {
-    "message": "Mulai merekam",
-    "description": "Label for the shutter button to start recording."
-  },
-  "recordVideoStopButton": {
-    "message": "Hentikan rekaman",
-    "description": "Label for the shutter button to stop recording."
-  },
-  "switchCameraButton": {
-    "message": "Beralih ke kamera berikutnya",
-    "description": "Label for the button to switch to next connected camera. Eg. switching from front facing to back facing, or a camera connected via USB. The button is shown only when more than one camera is connected."
-  },
-  "switchRecordVideoButton": {
-    "message": "Beralih ke mode rekam video",
-    "description": "Label for the button to switch to record video mode."
-  },
-  "switchTakePhotoButton": {
-    "message": "Beralih ke mode ambil foto",
-    "description": "Label for the button to switch to take photo mode."
-  },
-  "toggleTimerButton": {
-    "message": "Timer",
-    "description": "Label for the checkbox to toggle the countdown timer."
-  },
-  "toggleMirrorButton": {
-    "message": "Pencerminan",
-    "description": "Label for the checkbox to toggle the preview mirroring. Eg. if mirroring is toggled on, preview will be flipped horizontally."
-  },
-  "toggleGridButton": {
-    "message": "Petak",
-    "description": "Label for the checkbox to toggle the grid shown on preview."
-  },
-  "toggleMicButton": {
-    "message": "Mikrofon",
-    "description": "Label for the checkbox to toggle the microphone for recording video."
-  },
-  "dialogOKButton": {
-    "message": "Oke",
-    "description": "Label for the accepting button in the dialog."
-  },
-  "dialogCancelButton": {
-    "message": "Batal",
-    "description": "Label for the dismissing button in the dialog."
-  },
-  "deleteConfirmationMsg": {
-    "message": "Yakin ingin menghapus $file$?",
-    "description": "Confirmation message before removing a selected item from the gallery. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg."
-      }
-    }
-  },
-  "deleteMultiConfirmationMsg": {
-    "message": "Yakin ingin menghapus $count$?",
-    "description": "Confirmation message before removing multiple selected items from the gallery. Expects a file count to be passed in.",
-    "placeholders": {
-      "count": {
-        "content": "$1",
-        "example": "20."
-      }
-    }
-  },
-  "migratePicturesMsg": {
-    "message": "Foto dan video yang diambil dengan kamera akan dipindahkan ke folder Download. Anda dapat mengaksesnya di File.\n\nAplikasi yang memiliki izin penyimpanan dapat mengakses foto dan video.",
-    "description": "Message shown before moving all photos and videos stored in the Camera App to the Downloads folder."
-  }
-}
\ No newline at end of file
diff --git a/chrome/browser/resources/chromeos/camera/src/_locales/it/messages.json b/chrome/browser/resources/chromeos/camera/src/_locales/it/messages.json
deleted file mode 100644
index 47c9cff..0000000
--- a/chrome/browser/resources/chromeos/camera/src/_locales/it/messages.json
+++ /dev/null
@@ -1,206 +0,0 @@
-{
-  "name": {
-    "message": "Fotocamera",
-    "description": "Name of the Camera App."
-  },
-  "description": {
-    "message": "Realizza foto e video con la tua fotocamera.",
-    "description": "Short description of the Camera App."
-  },
-  "errorMsgFileSystemFailed": {
-    "message": "Errori del file system.",
-    "description": "Error message shown when failing to read or write the file system."
-  },
-  "errorMsgNoCamera": {
-    "message": "La fotocamera non è al momento disponibile.\nControlla se è collegata correttamente.",
-    "description": "Error message shown when it was impossible to connect to the camera due to unavailability."
-  },
-  "errorMsgGalleryExportFailed": {
-    "message": "Impossibile esportare $file$",
-    "description": "Error message shown when exporting to an external directory failed. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg"
-      }
-    }
-  },
-  "errorMsgSaveFileFailed": {
-    "message": "Impossibile salvare il file",
-    "description": "Error message shown when saving/adding a image or video to the file system failed."
-  },
-  "errorMsgTakePhotoFailed": {
-    "message": "Impossibile scattare una foto",
-    "description": "Error message shown when failing to take photo."
-  },
-  "errorMsgRecordStartFailed": {
-    "message": "Impossibile avviare la registrazione",
-    "description": "Error message shown when failing to start recording video."
-  },
-  "errorMsgEmptyRecording": {
-    "message": "Nessun dato registrato",
-    "description": "Error message shown when no data is recorded for a recording and it won't be added to the gallery."
-  },
-  "statusMsgRecordingStopped": {
-    "message": "Registrazione interrotta",
-    "description": "Status message for spoken feedback when video recording has been stopped."
-  },
-  "statusMsgCameraSwitched": {
-    "message": "$camera$ attiva",
-    "description": "Status message for spoken feedback when switching over to another camera.",
-    "placeholders": {
-      "camera": {
-        "content": "$1",
-        "example": "USB WebCam (12ab:5678) User-facing"
-      }
-    }
-  },
-  "galleryButton": {
-    "message": "Vai alla galleria",
-    "description": "Label for the gallery button."
-  },
-  "deleteButton": {
-    "message": "Elimina",
-    "description": "Label for the delete button."
-  },
-  "exportButton": {
-    "message": "Esporta su disco",
-    "description": "Label for the exporting button."
-  },
-  "printButton": {
-    "message": "Stampa",
-    "description": "Label for the printing button."
-  },
-  "backButton": {
-    "message": "Indietro",
-    "description": "Label for the back button."
-  },
-  "galleryImages": {
-    "message": "Immagini della galleria",
-    "description": "Text to speech label for the gallery list."
-  },
-  "settingsButton": {
-    "message": "Impostazioni",
-    "description": "Label for the settings button."
-  },
-  "gridTypeButton": {
-    "message": "Tipo di griglia",
-    "description": "Label for the button of grid-type options."
-  },
-  "timerDurationButton": {
-    "message": "Durata del timer",
-    "description": "Label for the button of timer-duration options."
-  },
-  "feedbackButton": {
-    "message": "Invia feedback",
-    "description": "Label for the feedback button."
-  },
-  "helpButton": {
-    "message": "Guida",
-    "description": "Label for the help button."
-  },
-  "labelGrid3x3": {
-    "message": "3 x 3",
-    "description": "Label for for grid-type: 3x3."
-  },
-  "ariaGrid3x3": {
-    "message": "3 x 3",
-    "description": "Label for spoken feedback to read out grid-type: 3x3."
-  },
-  "labelGrid4x4": {
-    "message": "4 x 4",
-    "description": "Label for for grid-type: 4x4."
-  },
-  "ariaGrid4x4": {
-    "message": "4 x 4",
-    "description": "Label for spoken feedback to read out grid-type: 4x4."
-  },
-  "labelGridGolden": {
-    "message": "Sezione aurea",
-    "description": "Label for grid-type: golden ratio."
-  },
-  "labelTimer3s": {
-    "message": "3 secondi",
-    "description": "Label for timer-duration: 3 seconds."
-  },
-  "labelTimer10s": {
-    "message": "10 secondi",
-    "description": "Label for timer-duration: 10 seconds."
-  },
-  "takePhotoButton": {
-    "message": "Scatta una foto",
-    "description": "Label for the shutter button to take photo."
-  },
-  "takePhotoCancelButton": {
-    "message": "Interrompi acquisizione foto",
-    "description": "Label for the shutter button to cancel countdown timer and stop taking photo."
-  },
-  "recordVideoStartButton": {
-    "message": "Avvia registrazione",
-    "description": "Label for the shutter button to start recording."
-  },
-  "recordVideoStopButton": {
-    "message": "Interrompi la registrazione",
-    "description": "Label for the shutter button to stop recording."
-  },
-  "switchCameraButton": {
-    "message": "Passa alla fotocamera successiva",
-    "description": "Label for the button to switch to next connected camera. Eg. switching from front facing to back facing, or a camera connected via USB. The button is shown only when more than one camera is connected."
-  },
-  "switchRecordVideoButton": {
-    "message": "Passa alla modalità video",
-    "description": "Label for the button to switch to record video mode."
-  },
-  "switchTakePhotoButton": {
-    "message": "Passa alla modalità foto",
-    "description": "Label for the button to switch to take photo mode."
-  },
-  "toggleTimerButton": {
-    "message": "Timer",
-    "description": "Label for the checkbox to toggle the countdown timer."
-  },
-  "toggleMirrorButton": {
-    "message": "Mirroring",
-    "description": "Label for the checkbox to toggle the preview mirroring. Eg. if mirroring is toggled on, preview will be flipped horizontally."
-  },
-  "toggleGridButton": {
-    "message": "Griglia",
-    "description": "Label for the checkbox to toggle the grid shown on preview."
-  },
-  "toggleMicButton": {
-    "message": "Microfono",
-    "description": "Label for the checkbox to toggle the microphone for recording video."
-  },
-  "dialogOKButton": {
-    "message": "OK",
-    "description": "Label for the accepting button in the dialog."
-  },
-  "dialogCancelButton": {
-    "message": "Annulla",
-    "description": "Label for the dismissing button in the dialog."
-  },
-  "deleteConfirmationMsg": {
-    "message": "Vuoi rimuovere il file $file$?",
-    "description": "Confirmation message before removing a selected item from the gallery. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg."
-      }
-    }
-  },
-  "deleteMultiConfirmationMsg": {
-    "message": "Vuoi rimuovere $count$ elementi?",
-    "description": "Confirmation message before removing multiple selected items from the gallery. Expects a file count to be passed in.",
-    "placeholders": {
-      "count": {
-        "content": "$1",
-        "example": "20."
-      }
-    }
-  },
-  "migratePicturesMsg": {
-    "message": "Le foto e i video acquisiti con la fotocamera verranno spostati nella cartella Download e potrai accedervi dall'app File.\n\nLe app con autorizzazioni di accesso allo spazio di archiviazione potranno accedere alle foto e ai video.",
-    "description": "Message shown before moving all photos and videos stored in the Camera App to the Downloads folder."
-  }
-}
\ No newline at end of file
diff --git a/chrome/browser/resources/chromeos/camera/src/_locales/ja/messages.json b/chrome/browser/resources/chromeos/camera/src/_locales/ja/messages.json
deleted file mode 100644
index 7b7945b..0000000
--- a/chrome/browser/resources/chromeos/camera/src/_locales/ja/messages.json
+++ /dev/null
@@ -1,206 +0,0 @@
-{
-  "name": {
-    "message": "カメラ",
-    "description": "Name of the Camera App."
-  },
-  "description": {
-    "message": "カメラを使って写真や動画を撮影できます。",
-    "description": "Short description of the Camera App."
-  },
-  "errorMsgFileSystemFailed": {
-    "message": "ファイル システム エラー。",
-    "description": "Error message shown when failing to read or write the file system."
-  },
-  "errorMsgNoCamera": {
-    "message": "カメラは現在ご利用いただけません。\n正しく接続されているか確認してください。",
-    "description": "Error message shown when it was impossible to connect to the camera due to unavailability."
-  },
-  "errorMsgGalleryExportFailed": {
-    "message": "$file$ をエクスポートできません",
-    "description": "Error message shown when exporting to an external directory failed. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg"
-      }
-    }
-  },
-  "errorMsgSaveFileFailed": {
-    "message": "ファイルを保存できません",
-    "description": "Error message shown when saving/adding a image or video to the file system failed."
-  },
-  "errorMsgTakePhotoFailed": {
-    "message": "写真を撮影できません",
-    "description": "Error message shown when failing to take photo."
-  },
-  "errorMsgRecordStartFailed": {
-    "message": "録画を開始できません",
-    "description": "Error message shown when failing to start recording video."
-  },
-  "errorMsgEmptyRecording": {
-    "message": "何も記録されていません",
-    "description": "Error message shown when no data is recorded for a recording and it won't be added to the gallery."
-  },
-  "statusMsgRecordingStopped": {
-    "message": "録画を停止しました",
-    "description": "Status message for spoken feedback when video recording has been stopped."
-  },
-  "statusMsgCameraSwitched": {
-    "message": "$camera$ に切り替えました",
-    "description": "Status message for spoken feedback when switching over to another camera.",
-    "placeholders": {
-      "camera": {
-        "content": "$1",
-        "example": "USB WebCam (12ab:5678) User-facing"
-      }
-    }
-  },
-  "galleryButton": {
-    "message": "ギャラリーに移動",
-    "description": "Label for the gallery button."
-  },
-  "deleteButton": {
-    "message": "削除",
-    "description": "Label for the delete button."
-  },
-  "exportButton": {
-    "message": "ディスクにエクスポート",
-    "description": "Label for the exporting button."
-  },
-  "printButton": {
-    "message": "印刷",
-    "description": "Label for the printing button."
-  },
-  "backButton": {
-    "message": "戻る",
-    "description": "Label for the back button."
-  },
-  "galleryImages": {
-    "message": "ギャラリーの画像",
-    "description": "Text to speech label for the gallery list."
-  },
-  "settingsButton": {
-    "message": "設定",
-    "description": "Label for the settings button."
-  },
-  "gridTypeButton": {
-    "message": "グリッドの種類",
-    "description": "Label for the button of grid-type options."
-  },
-  "timerDurationButton": {
-    "message": "タイマーの時間",
-    "description": "Label for the button of timer-duration options."
-  },
-  "feedbackButton": {
-    "message": "フィードバックを送信",
-    "description": "Label for the feedback button."
-  },
-  "helpButton": {
-    "message": "ヘルプ",
-    "description": "Label for the help button."
-  },
-  "labelGrid3x3": {
-    "message": "3 x 3",
-    "description": "Label for for grid-type: 3x3."
-  },
-  "ariaGrid3x3": {
-    "message": "3 x 3",
-    "description": "Label for spoken feedback to read out grid-type: 3x3."
-  },
-  "labelGrid4x4": {
-    "message": "4 x 4",
-    "description": "Label for for grid-type: 4x4."
-  },
-  "ariaGrid4x4": {
-    "message": "4 x 4",
-    "description": "Label for spoken feedback to read out grid-type: 4x4."
-  },
-  "labelGridGolden": {
-    "message": "黄金比",
-    "description": "Label for grid-type: golden ratio."
-  },
-  "labelTimer3s": {
-    "message": "3 秒",
-    "description": "Label for timer-duration: 3 seconds."
-  },
-  "labelTimer10s": {
-    "message": "10 秒",
-    "description": "Label for timer-duration: 10 seconds."
-  },
-  "takePhotoButton": {
-    "message": "写真を撮影",
-    "description": "Label for the shutter button to take photo."
-  },
-  "takePhotoCancelButton": {
-    "message": "写真の撮影を停止",
-    "description": "Label for the shutter button to cancel countdown timer and stop taking photo."
-  },
-  "recordVideoStartButton": {
-    "message": "録画を開始",
-    "description": "Label for the shutter button to start recording."
-  },
-  "recordVideoStopButton": {
-    "message": "録画を停止",
-    "description": "Label for the shutter button to stop recording."
-  },
-  "switchCameraButton": {
-    "message": "次のカメラに切り替える",
-    "description": "Label for the button to switch to next connected camera. Eg. switching from front facing to back facing, or a camera connected via USB. The button is shown only when more than one camera is connected."
-  },
-  "switchRecordVideoButton": {
-    "message": "動画の撮影に切り替える",
-    "description": "Label for the button to switch to record video mode."
-  },
-  "switchTakePhotoButton": {
-    "message": "写真の撮影に切り替える",
-    "description": "Label for the button to switch to take photo mode."
-  },
-  "toggleTimerButton": {
-    "message": "タイマー",
-    "description": "Label for the checkbox to toggle the countdown timer."
-  },
-  "toggleMirrorButton": {
-    "message": "ミラーリング",
-    "description": "Label for the checkbox to toggle the preview mirroring. Eg. if mirroring is toggled on, preview will be flipped horizontally."
-  },
-  "toggleGridButton": {
-    "message": "グリッド",
-    "description": "Label for the checkbox to toggle the grid shown on preview."
-  },
-  "toggleMicButton": {
-    "message": "マイク",
-    "description": "Label for the checkbox to toggle the microphone for recording video."
-  },
-  "dialogOKButton": {
-    "message": "OK",
-    "description": "Label for the accepting button in the dialog."
-  },
-  "dialogCancelButton": {
-    "message": "キャンセル",
-    "description": "Label for the dismissing button in the dialog."
-  },
-  "deleteConfirmationMsg": {
-    "message": "$file$ を削除してもよろしいですか?",
-    "description": "Confirmation message before removing a selected item from the gallery. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg."
-      }
-    }
-  },
-  "deleteMultiConfirmationMsg": {
-    "message": "$count$ 個のアイテムを削除してもよろしいですか?",
-    "description": "Confirmation message before removing multiple selected items from the gallery. Expects a file count to be passed in.",
-    "placeholders": {
-      "count": {
-        "content": "$1",
-        "example": "20."
-      }
-    }
-  },
-  "migratePicturesMsg": {
-    "message": "カメラで撮影した写真と動画を [ダウンロード] フォルダに移動します。これらの写真や動画には、[ファイル] からアクセスできます。\n\nまた、ストレージへのアクセスが許可されているアプリからも、これらの写真や動画にアクセスできます。",
-    "description": "Message shown before moving all photos and videos stored in the Camera App to the Downloads folder."
-  }
-}
\ No newline at end of file
diff --git a/chrome/browser/resources/chromeos/camera/src/_locales/kn/messages.json b/chrome/browser/resources/chromeos/camera/src/_locales/kn/messages.json
deleted file mode 100644
index 681df34..0000000
--- a/chrome/browser/resources/chromeos/camera/src/_locales/kn/messages.json
+++ /dev/null
@@ -1,206 +0,0 @@
-{
-  "name": {
-    "message": "ಕ್ಯಾಮರಾ",
-    "description": "Name of the Camera App."
-  },
-  "description": {
-    "message": "ನಿಮ್ಮ ಕ್ಯಾಮರಾದ ಮೂಲಕ ಚಿತ್ರಗಳನ್ನು ತೆಗೆಯಿರಿ ಮತ್ತು ವೀಡಿಯೊಗಳನ್ನು ರೆಕಾರ್ಡ್ ಮಾಡಿ.",
-    "description": "Short description of the Camera App."
-  },
-  "errorMsgFileSystemFailed": {
-    "message": "ಫೈಲ್ ಸಿಸ್ಟಮ್ ದೋಷಗಳು.",
-    "description": "Error message shown when failing to read or write the file system."
-  },
-  "errorMsgNoCamera": {
-    "message": "ನಿಮ್ಮ ಕ್ಯಾಮರಾ ಪ್ರಸ್ತುತ ಲಭ್ಯವಿಲ್ಲ.\nದಯವಿಟ್ಟು ಕ್ಯಾಮರಾ ಸರಿಯಾಗಿ ಸಂಪರ್ಕಗೊಂಡಿದೆಯೇ ಎಂಬುದನ್ನು ಪರೀಕ್ಷಿಸಿ.",
-    "description": "Error message shown when it was impossible to connect to the camera due to unavailability."
-  },
-  "errorMsgGalleryExportFailed": {
-    "message": "$file$ ಅನ್ನು ರಫ್ತು ಮಾಡಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ",
-    "description": "Error message shown when exporting to an external directory failed. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg"
-      }
-    }
-  },
-  "errorMsgSaveFileFailed": {
-    "message": "ಫೈಲ್ ಉಳಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ",
-    "description": "Error message shown when saving/adding a image or video to the file system failed."
-  },
-  "errorMsgTakePhotoFailed": {
-    "message": "ಫೋಟೋವನ್ನು ತೆಗೆದುಕೊಳ್ಳಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ",
-    "description": "Error message shown when failing to take photo."
-  },
-  "errorMsgRecordStartFailed": {
-    "message": "ರೆಕಾರ್ಡ್ ಮಾಡುವುದನ್ನು ಪ್ರಾರಂಭಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ",
-    "description": "Error message shown when failing to start recording video."
-  },
-  "errorMsgEmptyRecording": {
-    "message": "ಏನನ್ನೂ ರೆಕಾರ್ಡ್ ಮಾಡಲಾಗಿಲ್ಲ",
-    "description": "Error message shown when no data is recorded for a recording and it won't be added to the gallery."
-  },
-  "statusMsgRecordingStopped": {
-    "message": "ರೆಕಾರ್ಡ್ ಮಾಡುವುದನ್ನು ನಿಲ್ಲಿಸಲಾಗಿದೆ",
-    "description": "Status message for spoken feedback when video recording has been stopped."
-  },
-  "statusMsgCameraSwitched": {
-    "message": "$camera$ ಸಕ್ರಿಯವಾಗಿದೆ",
-    "description": "Status message for spoken feedback when switching over to another camera.",
-    "placeholders": {
-      "camera": {
-        "content": "$1",
-        "example": "USB WebCam (12ab:5678) User-facing"
-      }
-    }
-  },
-  "galleryButton": {
-    "message": "ಗ್ಯಾಲರಿಗೆ ಹೋಗಿ",
-    "description": "Label for the gallery button."
-  },
-  "deleteButton": {
-    "message": "ಅಳಿಸಿ",
-    "description": "Label for the delete button."
-  },
-  "exportButton": {
-    "message": "ಡಿಸ್ಕ್‌ಗೆ ರಫ್ತು ಮಾಡಿ",
-    "description": "Label for the exporting button."
-  },
-  "printButton": {
-    "message": "ಮುದ್ರಿಸಿ",
-    "description": "Label for the printing button."
-  },
-  "backButton": {
-    "message": "ಹಿಂದಿರುಗಿ",
-    "description": "Label for the back button."
-  },
-  "galleryImages": {
-    "message": "ಗ್ಯಾಲರಿ ಚಿತ್ರಗಳು",
-    "description": "Text to speech label for the gallery list."
-  },
-  "settingsButton": {
-    "message": "ಸೆಟ್ಟಿಂಗ್‌ಗಳು",
-    "description": "Label for the settings button."
-  },
-  "gridTypeButton": {
-    "message": "ಗ್ರಿಡ್ ಪ್ರಕಾರ",
-    "description": "Label for the button of grid-type options."
-  },
-  "timerDurationButton": {
-    "message": "ಟೈಮರ್ ಅವಧಿ",
-    "description": "Label for the button of timer-duration options."
-  },
-  "feedbackButton": {
-    "message": "ಪ್ರತಿಕ್ರಿಯೆ ಕಳುಹಿಸಿ",
-    "description": "Label for the feedback button."
-  },
-  "helpButton": {
-    "message": "ಸಹಾಯ",
-    "description": "Label for the help button."
-  },
-  "labelGrid3x3": {
-    "message": "3 x 3",
-    "description": "Label for for grid-type: 3x3."
-  },
-  "ariaGrid3x3": {
-    "message": "3 x 3",
-    "description": "Label for spoken feedback to read out grid-type: 3x3."
-  },
-  "labelGrid4x4": {
-    "message": "4 x 4",
-    "description": "Label for for grid-type: 4x4."
-  },
-  "ariaGrid4x4": {
-    "message": "4 x 4",
-    "description": "Label for spoken feedback to read out grid-type: 4x4."
-  },
-  "labelGridGolden": {
-    "message": "ಗೋಲ್ಡನ್ ಅನುಪಾತ",
-    "description": "Label for grid-type: golden ratio."
-  },
-  "labelTimer3s": {
-    "message": "3 ಸೆಕೆಂಡುಗಳು",
-    "description": "Label for timer-duration: 3 seconds."
-  },
-  "labelTimer10s": {
-    "message": "10 ಸೆಕೆಂಡುಗಳು",
-    "description": "Label for timer-duration: 10 seconds."
-  },
-  "takePhotoButton": {
-    "message": "ಫೋಟೋ ತೆಗೆಯಿರಿ",
-    "description": "Label for the shutter button to take photo."
-  },
-  "takePhotoCancelButton": {
-    "message": "ಫೋಟೋ ತೆಗೆಯುವುದನ್ನು ನಿಲ್ಲಿಸಿ",
-    "description": "Label for the shutter button to cancel countdown timer and stop taking photo."
-  },
-  "recordVideoStartButton": {
-    "message": "ರೆಕಾರ್ಡ್‌ ಮಾಡಲು ಪ್ರಾರಂಭಿಸಿ",
-    "description": "Label for the shutter button to start recording."
-  },
-  "recordVideoStopButton": {
-    "message": "ರೆಕಾರ್ಡ್ ಮಾಡುವುದನ್ನು ನಿಲ್ಲಿಸಿ",
-    "description": "Label for the shutter button to stop recording."
-  },
-  "switchCameraButton": {
-    "message": "ಮುಂದಿನ ಸಂಪರ್ಕಗೊಂಡಿರುವ ಕ್ಯಾಮೆರಾಗೆ ಬದಲಿಸಿ",
-    "description": "Label for the button to switch to next connected camera. Eg. switching from front facing to back facing, or a camera connected via USB. The button is shown only when more than one camera is connected."
-  },
-  "switchRecordVideoButton": {
-    "message": "ವೀಡಿಯೊ ರೆಕಾರ್ಡ್ ಮಾಡಿಗೆ ಬದಲಿಸಿ",
-    "description": "Label for the button to switch to record video mode."
-  },
-  "switchTakePhotoButton": {
-    "message": "ಫೋಟೋ ತೆಗೆದುಕೊಳ್ಳಿಗೆ ಬದಲಿಸಿ",
-    "description": "Label for the button to switch to take photo mode."
-  },
-  "toggleTimerButton": {
-    "message": "ಟೈಮರ್",
-    "description": "Label for the checkbox to toggle the countdown timer."
-  },
-  "toggleMirrorButton": {
-    "message": "ಪ್ರತಿಬಿಂಬಿಸುವಿಕೆ",
-    "description": "Label for the checkbox to toggle the preview mirroring. Eg. if mirroring is toggled on, preview will be flipped horizontally."
-  },
-  "toggleGridButton": {
-    "message": "ಗ್ರಿಡ್",
-    "description": "Label for the checkbox to toggle the grid shown on preview."
-  },
-  "toggleMicButton": {
-    "message": "ಮೈಕ್ರೊಫೋನ್",
-    "description": "Label for the checkbox to toggle the microphone for recording video."
-  },
-  "dialogOKButton": {
-    "message": "ಸರಿ",
-    "description": "Label for the accepting button in the dialog."
-  },
-  "dialogCancelButton": {
-    "message": "ರದ್ದುಮಾಡಿ",
-    "description": "Label for the dismissing button in the dialog."
-  },
-  "deleteConfirmationMsg": {
-    "message": "ನೀವು ನಿಜವಾಗಿಯೂ $file$ ಅನ್ನು ತೆಗೆದುಹಾಕಲು ಬಯಸುತ್ತೀರಾ?",
-    "description": "Confirmation message before removing a selected item from the gallery. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg."
-      }
-    }
-  },
-  "deleteMultiConfirmationMsg": {
-    "message": "ನೀವು ನಿಜವಾಗಿಯೂ $count$ ಐಟಂಗಳನ್ನು ತೆಗೆದುಹಾಕಲು ಬಯಸುತ್ತೀರಾ?",
-    "description": "Confirmation message before removing multiple selected items from the gallery. Expects a file count to be passed in.",
-    "placeholders": {
-      "count": {
-        "content": "$1",
-        "example": "20."
-      }
-    }
-  },
-  "migratePicturesMsg": {
-    "message": "ಕ್ಯಾಮರಾದಿಂದ ಸೆರೆಹಿಡಿದ ಫೋಟೋಗಳು ಮತ್ತು ವೀಡಿಯೊಗಳನ್ನು ಡೌನ್‌ಲೋಡ್‌ಗಳ ಫೋಲ್ಡರ್‌ಗೆ ವರ್ಗಾಯಿಸಲಾಗುತ್ತದೆ. ನೀವು ಅವುಗಳನ್ನು ಫೈಲ್‌ಗಳಲ್ಲಿ ಪ್ರವೇಶಿಸಬಹುದು.\n\nಸಂಗ್ರಹಣೆ ಅನುಮತಿಗಳನ್ನು ಹೊಂದಿರುವ ಆ್ಯಪ್‌ಗಳು ನಿಮ್ಮ ಫೋಟೋಗಳು ಮತ್ತು ವೀಡಿಯೊಗಳಿಗೆ ಪ್ರವೇಶವನ್ನು ಹೊಂದಿರುತ್ತವೆ.",
-    "description": "Message shown before moving all photos and videos stored in the Camera App to the Downloads folder."
-  }
-}
\ No newline at end of file
diff --git a/chrome/browser/resources/chromeos/camera/src/_locales/ko/messages.json b/chrome/browser/resources/chromeos/camera/src/_locales/ko/messages.json
deleted file mode 100644
index 01c3455..0000000
--- a/chrome/browser/resources/chromeos/camera/src/_locales/ko/messages.json
+++ /dev/null
@@ -1,206 +0,0 @@
-{
-  "name": {
-    "message": "카메라",
-    "description": "Name of the Camera App."
-  },
-  "description": {
-    "message": "카메라로 사진을 찍고 동영상을 녹화합니다.",
-    "description": "Short description of the Camera App."
-  },
-  "errorMsgFileSystemFailed": {
-    "message": "파일 시스템 오류가 발생했습니다.",
-    "description": "Error message shown when failing to read or write the file system."
-  },
-  "errorMsgNoCamera": {
-    "message": "현재 카메라를 사용할 수 없습니다.\n카메라가 제대로 연결되어 있는지 확인하세요.",
-    "description": "Error message shown when it was impossible to connect to the camera due to unavailability."
-  },
-  "errorMsgGalleryExportFailed": {
-    "message": "$file$ 파일을 내보낼 수 없습니다.",
-    "description": "Error message shown when exporting to an external directory failed. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg"
-      }
-    }
-  },
-  "errorMsgSaveFileFailed": {
-    "message": "파일을 저장할 수 없습니다.",
-    "description": "Error message shown when saving/adding a image or video to the file system failed."
-  },
-  "errorMsgTakePhotoFailed": {
-    "message": "사진을 찍을 수 없습니다.",
-    "description": "Error message shown when failing to take photo."
-  },
-  "errorMsgRecordStartFailed": {
-    "message": "녹화를 시작할 수 없습니다.",
-    "description": "Error message shown when failing to start recording video."
-  },
-  "errorMsgEmptyRecording": {
-    "message": "녹화된 동영상이 없습니다.",
-    "description": "Error message shown when no data is recorded for a recording and it won't be added to the gallery."
-  },
-  "statusMsgRecordingStopped": {
-    "message": "녹화가 중지되었습니다.",
-    "description": "Status message for spoken feedback when video recording has been stopped."
-  },
-  "statusMsgCameraSwitched": {
-    "message": "$camera$ 활성화",
-    "description": "Status message for spoken feedback when switching over to another camera.",
-    "placeholders": {
-      "camera": {
-        "content": "$1",
-        "example": "USB WebCam (12ab:5678) User-facing"
-      }
-    }
-  },
-  "galleryButton": {
-    "message": "갤러리로 이동",
-    "description": "Label for the gallery button."
-  },
-  "deleteButton": {
-    "message": "삭제",
-    "description": "Label for the delete button."
-  },
-  "exportButton": {
-    "message": "디스크로 내보내기",
-    "description": "Label for the exporting button."
-  },
-  "printButton": {
-    "message": "인쇄",
-    "description": "Label for the printing button."
-  },
-  "backButton": {
-    "message": "뒤로",
-    "description": "Label for the back button."
-  },
-  "galleryImages": {
-    "message": "갤러리 이미지",
-    "description": "Text to speech label for the gallery list."
-  },
-  "settingsButton": {
-    "message": "설정",
-    "description": "Label for the settings button."
-  },
-  "gridTypeButton": {
-    "message": "그리드 유형",
-    "description": "Label for the button of grid-type options."
-  },
-  "timerDurationButton": {
-    "message": "타이머 시간",
-    "description": "Label for the button of timer-duration options."
-  },
-  "feedbackButton": {
-    "message": "의견 보내기",
-    "description": "Label for the feedback button."
-  },
-  "helpButton": {
-    "message": "도움말",
-    "description": "Label for the help button."
-  },
-  "labelGrid3x3": {
-    "message": "3x3",
-    "description": "Label for for grid-type: 3x3."
-  },
-  "ariaGrid3x3": {
-    "message": "3x3",
-    "description": "Label for spoken feedback to read out grid-type: 3x3."
-  },
-  "labelGrid4x4": {
-    "message": "4x4",
-    "description": "Label for for grid-type: 4x4."
-  },
-  "ariaGrid4x4": {
-    "message": "4x4",
-    "description": "Label for spoken feedback to read out grid-type: 4x4."
-  },
-  "labelGridGolden": {
-    "message": "황금 비율",
-    "description": "Label for grid-type: golden ratio."
-  },
-  "labelTimer3s": {
-    "message": "3초",
-    "description": "Label for timer-duration: 3 seconds."
-  },
-  "labelTimer10s": {
-    "message": "10초",
-    "description": "Label for timer-duration: 10 seconds."
-  },
-  "takePhotoButton": {
-    "message": "사진 촬영",
-    "description": "Label for the shutter button to take photo."
-  },
-  "takePhotoCancelButton": {
-    "message": "사진 촬영 중지",
-    "description": "Label for the shutter button to cancel countdown timer and stop taking photo."
-  },
-  "recordVideoStartButton": {
-    "message": "녹화 시작",
-    "description": "Label for the shutter button to start recording."
-  },
-  "recordVideoStopButton": {
-    "message": "녹화 중지",
-    "description": "Label for the shutter button to stop recording."
-  },
-  "switchCameraButton": {
-    "message": "다음 카메라로 전환",
-    "description": "Label for the button to switch to next connected camera. Eg. switching from front facing to back facing, or a camera connected via USB. The button is shown only when more than one camera is connected."
-  },
-  "switchRecordVideoButton": {
-    "message": "동영상 녹화 모드로 전환",
-    "description": "Label for the button to switch to record video mode."
-  },
-  "switchTakePhotoButton": {
-    "message": "사진 촬영 모드로 전환",
-    "description": "Label for the button to switch to take photo mode."
-  },
-  "toggleTimerButton": {
-    "message": "타이머",
-    "description": "Label for the checkbox to toggle the countdown timer."
-  },
-  "toggleMirrorButton": {
-    "message": "미러링",
-    "description": "Label for the checkbox to toggle the preview mirroring. Eg. if mirroring is toggled on, preview will be flipped horizontally."
-  },
-  "toggleGridButton": {
-    "message": "그리드",
-    "description": "Label for the checkbox to toggle the grid shown on preview."
-  },
-  "toggleMicButton": {
-    "message": "마이크",
-    "description": "Label for the checkbox to toggle the microphone for recording video."
-  },
-  "dialogOKButton": {
-    "message": "확인",
-    "description": "Label for the accepting button in the dialog."
-  },
-  "dialogCancelButton": {
-    "message": "취소",
-    "description": "Label for the dismissing button in the dialog."
-  },
-  "deleteConfirmationMsg": {
-    "message": "$file$ 파일을 삭제하시겠습니까?",
-    "description": "Confirmation message before removing a selected item from the gallery. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg."
-      }
-    }
-  },
-  "deleteMultiConfirmationMsg": {
-    "message": "항목 $count$개를 삭제하시겠습니까?",
-    "description": "Confirmation message before removing multiple selected items from the gallery. Expects a file count to be passed in.",
-    "placeholders": {
-      "count": {
-        "content": "$1",
-        "example": "20."
-      }
-    }
-  },
-  "migratePicturesMsg": {
-    "message": "카메라로 촬영된 사진 및 동영상은 다운로드 폴더로 이동되며, 파일 앱에서 액세스할 수 있습니다.\n\n저장용량 사용 권한이 있는 앱은 사진 및 동영상에 액세스할 수 있습니다.",
-    "description": "Message shown before moving all photos and videos stored in the Camera App to the Downloads folder."
-  }
-}
\ No newline at end of file
diff --git a/chrome/browser/resources/chromeos/camera/src/_locales/lt/messages.json b/chrome/browser/resources/chromeos/camera/src/_locales/lt/messages.json
deleted file mode 100644
index 41d5fcc4..0000000
--- a/chrome/browser/resources/chromeos/camera/src/_locales/lt/messages.json
+++ /dev/null
@@ -1,206 +0,0 @@
-{
-  "name": {
-    "message": "Žiniatinklio kamera",
-    "description": "Name of the Camera App."
-  },
-  "description": {
-    "message": "Fotografuokite ir filmuokite naudodami žiniatinklio kamerą.",
-    "description": "Short description of the Camera App."
-  },
-  "errorMsgFileSystemFailed": {
-    "message": "Failų sistemos klaidos.",
-    "description": "Error message shown when failing to read or write the file system."
-  },
-  "errorMsgNoCamera": {
-    "message": "Jūsų kamera šiuo metu nepasiekiama.\nPatikrinkite, ar kamera tinkamai prijungta.",
-    "description": "Error message shown when it was impossible to connect to the camera due to unavailability."
-  },
-  "errorMsgGalleryExportFailed": {
-    "message": "Nepavyko eksportuoti failo $file$",
-    "description": "Error message shown when exporting to an external directory failed. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg"
-      }
-    }
-  },
-  "errorMsgSaveFileFailed": {
-    "message": "Nepavyko išsaugoti failo",
-    "description": "Error message shown when saving/adding a image or video to the file system failed."
-  },
-  "errorMsgTakePhotoFailed": {
-    "message": "Nepavyko nufotografuoti",
-    "description": "Error message shown when failing to take photo."
-  },
-  "errorMsgRecordStartFailed": {
-    "message": "Nepavyko pradėti įrašymo",
-    "description": "Error message shown when failing to start recording video."
-  },
-  "errorMsgEmptyRecording": {
-    "message": "Nieko neįrašyta",
-    "description": "Error message shown when no data is recorded for a recording and it won't be added to the gallery."
-  },
-  "statusMsgRecordingStopped": {
-    "message": "Įrašymas sustabdytas",
-    "description": "Status message for spoken feedback when video recording has been stopped."
-  },
-  "statusMsgCameraSwitched": {
-    "message": "$camera$ veikia",
-    "description": "Status message for spoken feedback when switching over to another camera.",
-    "placeholders": {
-      "camera": {
-        "content": "$1",
-        "example": "USB WebCam (12ab:5678) User-facing"
-      }
-    }
-  },
-  "galleryButton": {
-    "message": "Eiti į galeriją",
-    "description": "Label for the gallery button."
-  },
-  "deleteButton": {
-    "message": "Ištrinti",
-    "description": "Label for the delete button."
-  },
-  "exportButton": {
-    "message": "Eksportuoti į diską",
-    "description": "Label for the exporting button."
-  },
-  "printButton": {
-    "message": "Spausdinti",
-    "description": "Label for the printing button."
-  },
-  "backButton": {
-    "message": "Grįžti atgal",
-    "description": "Label for the back button."
-  },
-  "galleryImages": {
-    "message": "Galerijos vaizdai",
-    "description": "Text to speech label for the gallery list."
-  },
-  "settingsButton": {
-    "message": "Nustatymai",
-    "description": "Label for the settings button."
-  },
-  "gridTypeButton": {
-    "message": "Tinklelio tipas",
-    "description": "Label for the button of grid-type options."
-  },
-  "timerDurationButton": {
-    "message": "Laikmačio trukmė",
-    "description": "Label for the button of timer-duration options."
-  },
-  "feedbackButton": {
-    "message": "Siųsti atsiliepimą",
-    "description": "Label for the feedback button."
-  },
-  "helpButton": {
-    "message": "Pagalba",
-    "description": "Label for the help button."
-  },
-  "labelGrid3x3": {
-    "message": "3 ir 3",
-    "description": "Label for for grid-type: 3x3."
-  },
-  "ariaGrid3x3": {
-    "message": "3 iš 3",
-    "description": "Label for spoken feedback to read out grid-type: 3x3."
-  },
-  "labelGrid4x4": {
-    "message": "4 ir 4",
-    "description": "Label for for grid-type: 4x4."
-  },
-  "ariaGrid4x4": {
-    "message": "4 iš 4",
-    "description": "Label for spoken feedback to read out grid-type: 4x4."
-  },
-  "labelGridGolden": {
-    "message": "Geriausias įvertinimas",
-    "description": "Label for grid-type: golden ratio."
-  },
-  "labelTimer3s": {
-    "message": "3 sekundės",
-    "description": "Label for timer-duration: 3 seconds."
-  },
-  "labelTimer10s": {
-    "message": "10 sekundžių",
-    "description": "Label for timer-duration: 10 seconds."
-  },
-  "takePhotoButton": {
-    "message": "Fotografuoti",
-    "description": "Label for the shutter button to take photo."
-  },
-  "takePhotoCancelButton": {
-    "message": "Sustabdyti fotografavimą",
-    "description": "Label for the shutter button to cancel countdown timer and stop taking photo."
-  },
-  "recordVideoStartButton": {
-    "message": "Pradėti įrašymą",
-    "description": "Label for the shutter button to start recording."
-  },
-  "recordVideoStopButton": {
-    "message": "Sustabdyti įrašymą",
-    "description": "Label for the shutter button to stop recording."
-  },
-  "switchCameraButton": {
-    "message": "Perjungti į kitą kamerą",
-    "description": "Label for the button to switch to next connected camera. Eg. switching from front facing to back facing, or a camera connected via USB. The button is shown only when more than one camera is connected."
-  },
-  "switchRecordVideoButton": {
-    "message": "Perjungti į vaizdo įrašymo režimą",
-    "description": "Label for the button to switch to record video mode."
-  },
-  "switchTakePhotoButton": {
-    "message": "Perjungti į fotografavimo režimą",
-    "description": "Label for the button to switch to take photo mode."
-  },
-  "toggleTimerButton": {
-    "message": "Laikmatis",
-    "description": "Label for the checkbox to toggle the countdown timer."
-  },
-  "toggleMirrorButton": {
-    "message": "Atspindėjimas",
-    "description": "Label for the checkbox to toggle the preview mirroring. Eg. if mirroring is toggled on, preview will be flipped horizontally."
-  },
-  "toggleGridButton": {
-    "message": "Tinklelis",
-    "description": "Label for the checkbox to toggle the grid shown on preview."
-  },
-  "toggleMicButton": {
-    "message": "Mikrofonas",
-    "description": "Label for the checkbox to toggle the microphone for recording video."
-  },
-  "dialogOKButton": {
-    "message": "Gerai",
-    "description": "Label for the accepting button in the dialog."
-  },
-  "dialogCancelButton": {
-    "message": "Atšaukti",
-    "description": "Label for the dismissing button in the dialog."
-  },
-  "deleteConfirmationMsg": {
-    "message": "Ar tikrai norite pašalinti failą $file$?",
-    "description": "Confirmation message before removing a selected item from the gallery. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg."
-      }
-    }
-  },
-  "deleteMultiConfirmationMsg": {
-    "message": "Ar tikrai norite pašalinti elementus ($count$)?",
-    "description": "Confirmation message before removing multiple selected items from the gallery. Expects a file count to be passed in.",
-    "placeholders": {
-      "count": {
-        "content": "$1",
-        "example": "20."
-      }
-    }
-  },
-  "migratePicturesMsg": {
-    "message": "Nuotraukos ir vaizdo įrašai, sukurti naudojant fotoaparatą, bus perkelti į aplanką „Atsisiuntimai“. Juos galite pasiekti Failų programoje.\n\nProgramos su saugyklos leidimais turės prieigą prie nuotraukų ir vaizdo įrašų.",
-    "description": "Message shown before moving all photos and videos stored in the Camera App to the Downloads folder."
-  }
-}
\ No newline at end of file
diff --git a/chrome/browser/resources/chromeos/camera/src/_locales/lv/messages.json b/chrome/browser/resources/chromeos/camera/src/_locales/lv/messages.json
deleted file mode 100644
index db357ab..0000000
--- a/chrome/browser/resources/chromeos/camera/src/_locales/lv/messages.json
+++ /dev/null
@@ -1,206 +0,0 @@
-{
-  "name": {
-    "message": "Kamera",
-    "description": "Name of the Camera App."
-  },
-  "description": {
-    "message": "Uzņemiet fotoattēlus un ierakstiet videoklipus, izmantojot savu kameru.",
-    "description": "Short description of the Camera App."
-  },
-  "errorMsgFileSystemFailed": {
-    "message": "Failu sistēmas kļūdas.",
-    "description": "Error message shown when failing to read or write the file system."
-  },
-  "errorMsgNoCamera": {
-    "message": "Jūsu kamera pašlaik nav pieejama.\nPārbaudiet, vai ir pareizi izveidots savienojums ar kameru.",
-    "description": "Error message shown when it was impossible to connect to the camera due to unavailability."
-  },
-  "errorMsgGalleryExportFailed": {
-    "message": "Nevar eksportēt failu $file$.",
-    "description": "Error message shown when exporting to an external directory failed. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg"
-      }
-    }
-  },
-  "errorMsgSaveFileFailed": {
-    "message": "Nevar saglabāt failu.",
-    "description": "Error message shown when saving/adding a image or video to the file system failed."
-  },
-  "errorMsgTakePhotoFailed": {
-    "message": "Nevar uzņemt fotoattēlu.",
-    "description": "Error message shown when failing to take photo."
-  },
-  "errorMsgRecordStartFailed": {
-    "message": "Nevar sākt ierakstīšanu.",
-    "description": "Error message shown when failing to start recording video."
-  },
-  "errorMsgEmptyRecording": {
-    "message": "Nekas nav ierakstīts.",
-    "description": "Error message shown when no data is recorded for a recording and it won't be added to the gallery."
-  },
-  "statusMsgRecordingStopped": {
-    "message": "Ierakstīšana apturēta",
-    "description": "Status message for spoken feedback when video recording has been stopped."
-  },
-  "statusMsgCameraSwitched": {
-    "message": "$camera$ aktīva",
-    "description": "Status message for spoken feedback when switching over to another camera.",
-    "placeholders": {
-      "camera": {
-        "content": "$1",
-        "example": "USB WebCam (12ab:5678) User-facing"
-      }
-    }
-  },
-  "galleryButton": {
-    "message": "Doties uz galeriju",
-    "description": "Label for the gallery button."
-  },
-  "deleteButton": {
-    "message": "Dzēst",
-    "description": "Label for the delete button."
-  },
-  "exportButton": {
-    "message": "Eksportēt diskā",
-    "description": "Label for the exporting button."
-  },
-  "printButton": {
-    "message": "Drukāt",
-    "description": "Label for the printing button."
-  },
-  "backButton": {
-    "message": "Atpakaļ",
-    "description": "Label for the back button."
-  },
-  "galleryImages": {
-    "message": "Galerijas attēli",
-    "description": "Text to speech label for the gallery list."
-  },
-  "settingsButton": {
-    "message": "Iestatījumi",
-    "description": "Label for the settings button."
-  },
-  "gridTypeButton": {
-    "message": "Režģa veids",
-    "description": "Label for the button of grid-type options."
-  },
-  "timerDurationButton": {
-    "message": "Taimera ilgums",
-    "description": "Label for the button of timer-duration options."
-  },
-  "feedbackButton": {
-    "message": "Sūtīt atsauksmes",
-    "description": "Label for the feedback button."
-  },
-  "helpButton": {
-    "message": "Palīdzība",
-    "description": "Label for the help button."
-  },
-  "labelGrid3x3": {
-    "message": "3 x 3",
-    "description": "Label for for grid-type: 3x3."
-  },
-  "ariaGrid3x3": {
-    "message": "3 reiz 3",
-    "description": "Label for spoken feedback to read out grid-type: 3x3."
-  },
-  "labelGrid4x4": {
-    "message": "4 x 4",
-    "description": "Label for for grid-type: 4x4."
-  },
-  "ariaGrid4x4": {
-    "message": "4 reiz 4",
-    "description": "Label for spoken feedback to read out grid-type: 4x4."
-  },
-  "labelGridGolden": {
-    "message": "Zelta griezums",
-    "description": "Label for grid-type: golden ratio."
-  },
-  "labelTimer3s": {
-    "message": "3 sekundes",
-    "description": "Label for timer-duration: 3 seconds."
-  },
-  "labelTimer10s": {
-    "message": "10 sekundes",
-    "description": "Label for timer-duration: 10 seconds."
-  },
-  "takePhotoButton": {
-    "message": "Uzņemt fotoattēlu",
-    "description": "Label for the shutter button to take photo."
-  },
-  "takePhotoCancelButton": {
-    "message": "Apturēt fotoattēla uzņemšanu",
-    "description": "Label for the shutter button to cancel countdown timer and stop taking photo."
-  },
-  "recordVideoStartButton": {
-    "message": "Sākt ierakstīšanu",
-    "description": "Label for the shutter button to start recording."
-  },
-  "recordVideoStopButton": {
-    "message": "Apturēt ierakstīšanu",
-    "description": "Label for the shutter button to stop recording."
-  },
-  "switchCameraButton": {
-    "message": "Pārslēgties uz nākamo kameru",
-    "description": "Label for the button to switch to next connected camera. Eg. switching from front facing to back facing, or a camera connected via USB. The button is shown only when more than one camera is connected."
-  },
-  "switchRecordVideoButton": {
-    "message": "Pārslēgties uz videoklipa ierakstīšanu",
-    "description": "Label for the button to switch to record video mode."
-  },
-  "switchTakePhotoButton": {
-    "message": "Pārslēgties uz fotoattēla uzņemšanu",
-    "description": "Label for the button to switch to take photo mode."
-  },
-  "toggleTimerButton": {
-    "message": "Taimeris",
-    "description": "Label for the checkbox to toggle the countdown timer."
-  },
-  "toggleMirrorButton": {
-    "message": "Spoguļošana",
-    "description": "Label for the checkbox to toggle the preview mirroring. Eg. if mirroring is toggled on, preview will be flipped horizontally."
-  },
-  "toggleGridButton": {
-    "message": "Režģis",
-    "description": "Label for the checkbox to toggle the grid shown on preview."
-  },
-  "toggleMicButton": {
-    "message": "Mikrofons",
-    "description": "Label for the checkbox to toggle the microphone for recording video."
-  },
-  "dialogOKButton": {
-    "message": "Labi",
-    "description": "Label for the accepting button in the dialog."
-  },
-  "dialogCancelButton": {
-    "message": "Atcelt",
-    "description": "Label for the dismissing button in the dialog."
-  },
-  "deleteConfirmationMsg": {
-    "message": "Vai tiešām vēlaties noņemt failu $file$?",
-    "description": "Confirmation message before removing a selected item from the gallery. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg."
-      }
-    }
-  },
-  "deleteMultiConfirmationMsg": {
-    "message": "Vai tiešām vēlaties noņemt $count$ failu(-us)?",
-    "description": "Confirmation message before removing multiple selected items from the gallery. Expects a file count to be passed in.",
-    "placeholders": {
-      "count": {
-        "content": "$1",
-        "example": "20."
-      }
-    }
-  },
-  "migratePicturesMsg": {
-    "message": "Ar kameru uzņemtie fotoattēli un videoklipi tiks ievietoti mapē Lejupielādes. Varat tiem piekļūt lietotnē Faili.\n\nJūsu fotoattēliem un videoklipiem varēs piekļūt lietotnes, kam ir krātuves atļaujas.",
-    "description": "Message shown before moving all photos and videos stored in the Camera App to the Downloads folder."
-  }
-}
\ No newline at end of file
diff --git a/chrome/browser/resources/chromeos/camera/src/_locales/ml/messages.json b/chrome/browser/resources/chromeos/camera/src/_locales/ml/messages.json
deleted file mode 100644
index 4e8f3a0..0000000
--- a/chrome/browser/resources/chromeos/camera/src/_locales/ml/messages.json
+++ /dev/null
@@ -1,206 +0,0 @@
-{
-  "name": {
-    "message": "ക്യാമറ",
-    "description": "Name of the Camera App."
-  },
-  "description": {
-    "message": "നിങ്ങളുടെ ക്യാമറ ഉപയോഗിച്ച് ചിത്രങ്ങൾ എടുക്കുക, വീഡിയോകൾ റെക്കോർഡ് ചെയ്യുക.",
-    "description": "Short description of the Camera App."
-  },
-  "errorMsgFileSystemFailed": {
-    "message": "ഫയൽ സിസ്‌റ്റം പിശകുകൾ.",
-    "description": "Error message shown when failing to read or write the file system."
-  },
-  "errorMsgNoCamera": {
-    "message": "ക്യാമറ നിലവിൽ ലഭ്യമല്ല.\nക്യാമറ ശരിയായി കണക്റ്റ് ചെയ്‌തിട്ടുണ്ടോ എന്ന് പരിശോധിക്കുക.",
-    "description": "Error message shown when it was impossible to connect to the camera due to unavailability."
-  },
-  "errorMsgGalleryExportFailed": {
-    "message": "$file$ എക്‌സ്‌പോർട്ട് ചെയ്യാനായില്ല",
-    "description": "Error message shown when exporting to an external directory failed. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg"
-      }
-    }
-  },
-  "errorMsgSaveFileFailed": {
-    "message": "ഫയൽ സംരക്ഷിക്കാനായില്ല",
-    "description": "Error message shown when saving/adding a image or video to the file system failed."
-  },
-  "errorMsgTakePhotoFailed": {
-    "message": "ഫോട്ടോ എടുക്കാനായില്ല",
-    "description": "Error message shown when failing to take photo."
-  },
-  "errorMsgRecordStartFailed": {
-    "message": "റെക്കോർഡിംഗ് ആരംഭിക്കാനായില്ല",
-    "description": "Error message shown when failing to start recording video."
-  },
-  "errorMsgEmptyRecording": {
-    "message": "ഒന്നും റെക്കോർഡ് ചെയ്‌തില്ല",
-    "description": "Error message shown when no data is recorded for a recording and it won't be added to the gallery."
-  },
-  "statusMsgRecordingStopped": {
-    "message": "റെക്കോർഡ് ചെയ്യൽ നിർത്തി",
-    "description": "Status message for spoken feedback when video recording has been stopped."
-  },
-  "statusMsgCameraSwitched": {
-    "message": "$camera$ സജീവമാണ്",
-    "description": "Status message for spoken feedback when switching over to another camera.",
-    "placeholders": {
-      "camera": {
-        "content": "$1",
-        "example": "USB WebCam (12ab:5678) User-facing"
-      }
-    }
-  },
-  "galleryButton": {
-    "message": "ഗാലറിയിലേക്ക് പോവുക",
-    "description": "Label for the gallery button."
-  },
-  "deleteButton": {
-    "message": "ഇല്ലാതാക്കുക",
-    "description": "Label for the delete button."
-  },
-  "exportButton": {
-    "message": "ഡിസ്‌ക്കിലേക്ക് എക്‌സ്‌പോർട്ട് ചെയ്യുക",
-    "description": "Label for the exporting button."
-  },
-  "printButton": {
-    "message": "പ്രിന്‍റ് ചെയ്യുക",
-    "description": "Label for the printing button."
-  },
-  "backButton": {
-    "message": "തിരികെ പോവുക",
-    "description": "Label for the back button."
-  },
-  "galleryImages": {
-    "message": "ഗാലറി ചിത്രങ്ങൾ",
-    "description": "Text to speech label for the gallery list."
-  },
-  "settingsButton": {
-    "message": "ക്രമീകരണം",
-    "description": "Label for the settings button."
-  },
-  "gridTypeButton": {
-    "message": "ഗ്രിഡ് തരം",
-    "description": "Label for the button of grid-type options."
-  },
-  "timerDurationButton": {
-    "message": "ടൈമർ ദൈർഘ്യം",
-    "description": "Label for the button of timer-duration options."
-  },
-  "feedbackButton": {
-    "message": "ഫീഡ്‍ബാക്ക് അയയ്ക്കുക",
-    "description": "Label for the feedback button."
-  },
-  "helpButton": {
-    "message": "സഹായം",
-    "description": "Label for the help button."
-  },
-  "labelGrid3x3": {
-    "message": "3 x 3",
-    "description": "Label for for grid-type: 3x3."
-  },
-  "ariaGrid3x3": {
-    "message": "3 ബൈ 3",
-    "description": "Label for spoken feedback to read out grid-type: 3x3."
-  },
-  "labelGrid4x4": {
-    "message": "4 x 4",
-    "description": "Label for for grid-type: 4x4."
-  },
-  "ariaGrid4x4": {
-    "message": "4 ബൈ 4",
-    "description": "Label for spoken feedback to read out grid-type: 4x4."
-  },
-  "labelGridGolden": {
-    "message": "ഗോൾഡൻ റേഷ്യോ",
-    "description": "Label for grid-type: golden ratio."
-  },
-  "labelTimer3s": {
-    "message": "3 സെക്കൻഡ്",
-    "description": "Label for timer-duration: 3 seconds."
-  },
-  "labelTimer10s": {
-    "message": "10 സെക്കൻഡ്",
-    "description": "Label for timer-duration: 10 seconds."
-  },
-  "takePhotoButton": {
-    "message": "ഫോട്ടോ എടുക്കുക",
-    "description": "Label for the shutter button to take photo."
-  },
-  "takePhotoCancelButton": {
-    "message": "ഫോട്ടോ എടുക്കുന്നത് നിർത്തുക",
-    "description": "Label for the shutter button to cancel countdown timer and stop taking photo."
-  },
-  "recordVideoStartButton": {
-    "message": "റെക്കോര്‍ഡിംഗ് ആരംഭിക്കുക",
-    "description": "Label for the shutter button to start recording."
-  },
-  "recordVideoStopButton": {
-    "message": "റെക്കോർഡിംഗ് നിർത്തുക",
-    "description": "Label for the shutter button to stop recording."
-  },
-  "switchCameraButton": {
-    "message": "അടുത്ത ക്യാമറയിലേക്ക് മാറുക",
-    "description": "Label for the button to switch to next connected camera. Eg. switching from front facing to back facing, or a camera connected via USB. The button is shown only when more than one camera is connected."
-  },
-  "switchRecordVideoButton": {
-    "message": "വീഡിയോ റെക്കോർഡ് ചെയ്യുന്നതിലേക്ക് മാറുക",
-    "description": "Label for the button to switch to record video mode."
-  },
-  "switchTakePhotoButton": {
-    "message": "ഫോട്ടോ എടുക്കുന്നതിലേക്ക് മാറുക",
-    "description": "Label for the button to switch to take photo mode."
-  },
-  "toggleTimerButton": {
-    "message": "ടൈമർ",
-    "description": "Label for the checkbox to toggle the countdown timer."
-  },
-  "toggleMirrorButton": {
-    "message": "മിററിംഗ്",
-    "description": "Label for the checkbox to toggle the preview mirroring. Eg. if mirroring is toggled on, preview will be flipped horizontally."
-  },
-  "toggleGridButton": {
-    "message": "ഗ്രിഡ്",
-    "description": "Label for the checkbox to toggle the grid shown on preview."
-  },
-  "toggleMicButton": {
-    "message": "മൈക്രോഫോൺ",
-    "description": "Label for the checkbox to toggle the microphone for recording video."
-  },
-  "dialogOKButton": {
-    "message": "ശരി",
-    "description": "Label for the accepting button in the dialog."
-  },
-  "dialogCancelButton": {
-    "message": "റദ്ദാക്കുക",
-    "description": "Label for the dismissing button in the dialog."
-  },
-  "deleteConfirmationMsg": {
-    "message": "നിങ്ങൾക്ക് ശരിക്കും $file$ നീക്കം ചെയ്യണോ?",
-    "description": "Confirmation message before removing a selected item from the gallery. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg."
-      }
-    }
-  },
-  "deleteMultiConfirmationMsg": {
-    "message": "നിങ്ങൾക്ക് ശരിക്കും $count$ ഇനങ്ങൾ നീക്കം ചെയ്യണോ?",
-    "description": "Confirmation message before removing multiple selected items from the gallery. Expects a file count to be passed in.",
-    "placeholders": {
-      "count": {
-        "content": "$1",
-        "example": "20."
-      }
-    }
-  },
-  "migratePicturesMsg": {
-    "message": "ക്യാമറ ഉപയോഗിച്ചെടുത്ത ഫോട്ടോകളും വീഡിയോകളും 'ഡൗൺലോഡുകൾ' ഫോൾഡറിലേക്ക് നീക്കും. നിങ്ങൾക്ക് അവ ഫയലുകളിൽ ആക്‌സസ് ചെയ്യാനാവും.\n\nസ്‌റ്റോറേജ് അനുമതികളുള്ള ആപ്പുകൾക്ക് നിങ്ങളുടെ ഫോട്ടോകളിലേക്കും വീഡിയോകളിലേക്കും ആക്‌സസ് ഉണ്ടായിരിക്കും.",
-    "description": "Message shown before moving all photos and videos stored in the Camera App to the Downloads folder."
-  }
-}
\ No newline at end of file
diff --git a/chrome/browser/resources/chromeos/camera/src/_locales/mr/messages.json b/chrome/browser/resources/chromeos/camera/src/_locales/mr/messages.json
deleted file mode 100644
index a1007dce..0000000
--- a/chrome/browser/resources/chromeos/camera/src/_locales/mr/messages.json
+++ /dev/null
@@ -1,206 +0,0 @@
-{
-  "name": {
-    "message": "कॅमेरा",
-    "description": "Name of the Camera App."
-  },
-  "description": {
-    "message": "तुमच्‍या कॅमेर्‍याने फोटो काढा आणि व्हिडिओ रेकॉर्ड करा.",
-    "description": "Short description of the Camera App."
-  },
-  "errorMsgFileSystemFailed": {
-    "message": "फाइल सिस्टम एरर.",
-    "description": "Error message shown when failing to read or write the file system."
-  },
-  "errorMsgNoCamera": {
-    "message": "तुमचा कॅमेरा सध्या उपलब्ध नाही.\nकृपया कॅमेरा योग्यरीत्‍या कनेक्ट केला असल्याचे तपासा.",
-    "description": "Error message shown when it was impossible to connect to the camera due to unavailability."
-  },
-  "errorMsgGalleryExportFailed": {
-    "message": "$file$ एक्सपोर्ट करता आली नाही",
-    "description": "Error message shown when exporting to an external directory failed. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg"
-      }
-    }
-  },
-  "errorMsgSaveFileFailed": {
-    "message": "फाइल सेव्‍ह करता आली नाही",
-    "description": "Error message shown when saving/adding a image or video to the file system failed."
-  },
-  "errorMsgTakePhotoFailed": {
-    "message": "फोटो काढता आला नाही",
-    "description": "Error message shown when failing to take photo."
-  },
-  "errorMsgRecordStartFailed": {
-    "message": "रेकॉर्डिंग सुरू करता आले नाही",
-    "description": "Error message shown when failing to start recording video."
-  },
-  "errorMsgEmptyRecording": {
-    "message": "काहीही रेकॉर्ड केले नाही",
-    "description": "Error message shown when no data is recorded for a recording and it won't be added to the gallery."
-  },
-  "statusMsgRecordingStopped": {
-    "message": "रेकॉर्डिंग थांबले आहे",
-    "description": "Status message for spoken feedback when video recording has been stopped."
-  },
-  "statusMsgCameraSwitched": {
-    "message": "$camera$ अ‍ॅक्टिव्ह आहे",
-    "description": "Status message for spoken feedback when switching over to another camera.",
-    "placeholders": {
-      "camera": {
-        "content": "$1",
-        "example": "USB WebCam (12ab:5678) User-facing"
-      }
-    }
-  },
-  "galleryButton": {
-    "message": "गॅलरीवर जा",
-    "description": "Label for the gallery button."
-  },
-  "deleteButton": {
-    "message": "हटवा",
-    "description": "Label for the delete button."
-  },
-  "exportButton": {
-    "message": "डिस्कवर निर्यात करा",
-    "description": "Label for the exporting button."
-  },
-  "printButton": {
-    "message": "प्रिंट करा",
-    "description": "Label for the printing button."
-  },
-  "backButton": {
-    "message": "परत जा",
-    "description": "Label for the back button."
-  },
-  "galleryImages": {
-    "message": "गॅलरीमधील इमेज",
-    "description": "Text to speech label for the gallery list."
-  },
-  "settingsButton": {
-    "message": "सेटिंग्ज",
-    "description": "Label for the settings button."
-  },
-  "gridTypeButton": {
-    "message": "ग्रिडचा प्रकार",
-    "description": "Label for the button of grid-type options."
-  },
-  "timerDurationButton": {
-    "message": "टायमरचा कालावधी",
-    "description": "Label for the button of timer-duration options."
-  },
-  "feedbackButton": {
-    "message": "फीडबॅक पाठवा",
-    "description": "Label for the feedback button."
-  },
-  "helpButton": {
-    "message": "मदत",
-    "description": "Label for the help button."
-  },
-  "labelGrid3x3": {
-    "message": "३ x ३",
-    "description": "Label for for grid-type: 3x3."
-  },
-  "ariaGrid3x3": {
-    "message": "३ बाय ३",
-    "description": "Label for spoken feedback to read out grid-type: 3x3."
-  },
-  "labelGrid4x4": {
-    "message": "४ x ४",
-    "description": "Label for for grid-type: 4x4."
-  },
-  "ariaGrid4x4": {
-    "message": "४ बाय ४",
-    "description": "Label for spoken feedback to read out grid-type: 4x4."
-  },
-  "labelGridGolden": {
-    "message": "गोल्डन रेशो",
-    "description": "Label for grid-type: golden ratio."
-  },
-  "labelTimer3s": {
-    "message": "तीन सेकंद",
-    "description": "Label for timer-duration: 3 seconds."
-  },
-  "labelTimer10s": {
-    "message": "१० सेकंद",
-    "description": "Label for timer-duration: 10 seconds."
-  },
-  "takePhotoButton": {
-    "message": "फोटो काढा",
-    "description": "Label for the shutter button to take photo."
-  },
-  "takePhotoCancelButton": {
-    "message": "फोटो काढणे थांबवा",
-    "description": "Label for the shutter button to cancel countdown timer and stop taking photo."
-  },
-  "recordVideoStartButton": {
-    "message": "रेकॉर्डिंग सुरू करा",
-    "description": "Label for the shutter button to start recording."
-  },
-  "recordVideoStopButton": {
-    "message": "रेकॉर्डिंग थांबवा",
-    "description": "Label for the shutter button to stop recording."
-  },
-  "switchCameraButton": {
-    "message": "पुढील कॅमेर्‍यावर स्विच करा",
-    "description": "Label for the button to switch to next connected camera. Eg. switching from front facing to back facing, or a camera connected via USB. The button is shown only when more than one camera is connected."
-  },
-  "switchRecordVideoButton": {
-    "message": "व्हिडिओ रेकॉर्ड करण्‍यासाठी स्विच करा",
-    "description": "Label for the button to switch to record video mode."
-  },
-  "switchTakePhotoButton": {
-    "message": "फोटो काढण्यासाठी स्विच करा",
-    "description": "Label for the button to switch to take photo mode."
-  },
-  "toggleTimerButton": {
-    "message": "टायमर",
-    "description": "Label for the checkbox to toggle the countdown timer."
-  },
-  "toggleMirrorButton": {
-    "message": "मिररिंग",
-    "description": "Label for the checkbox to toggle the preview mirroring. Eg. if mirroring is toggled on, preview will be flipped horizontally."
-  },
-  "toggleGridButton": {
-    "message": "ग्रिड",
-    "description": "Label for the checkbox to toggle the grid shown on preview."
-  },
-  "toggleMicButton": {
-    "message": "मायक्रोफोन",
-    "description": "Label for the checkbox to toggle the microphone for recording video."
-  },
-  "dialogOKButton": {
-    "message": "ओके",
-    "description": "Label for the accepting button in the dialog."
-  },
-  "dialogCancelButton": {
-    "message": "रद्द करा",
-    "description": "Label for the dismissing button in the dialog."
-  },
-  "deleteConfirmationMsg": {
-    "message": "तुम्‍हाला $file$ खरोखर काढून टाकायची आहे?",
-    "description": "Confirmation message before removing a selected item from the gallery. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg."
-      }
-    }
-  },
-  "deleteMultiConfirmationMsg": {
-    "message": "तुम्‍हाला $count$ आयटम खरोखर काढून टाकायचे आहेत?",
-    "description": "Confirmation message before removing multiple selected items from the gallery. Expects a file count to be passed in.",
-    "placeholders": {
-      "count": {
-        "content": "$1",
-        "example": "20."
-      }
-    }
-  },
-  "migratePicturesMsg": {
-    "message": "कॅमेर्‍याने काढलेले फोटो आणि व्हिडिओ डाउनलोड फोल्डरवर हलवले जातील. तुम्ही ते फायलींमध्ये अ‍ॅक्सेस करू शकता.\n\nस्टोरेज परवानग्या असलेल्या अ‍ॅप्सना तुमच्या फोटोचा आणि व्हिडिओचा अ‍ॅक्सेस असेल.",
-    "description": "Message shown before moving all photos and videos stored in the Camera App to the Downloads folder."
-  }
-}
\ No newline at end of file
diff --git a/chrome/browser/resources/chromeos/camera/src/_locales/ms/messages.json b/chrome/browser/resources/chromeos/camera/src/_locales/ms/messages.json
deleted file mode 100644
index 73e96b9..0000000
--- a/chrome/browser/resources/chromeos/camera/src/_locales/ms/messages.json
+++ /dev/null
@@ -1,206 +0,0 @@
-{
-  "name": {
-    "message": "Kamera",
-    "description": "Name of the Camera App."
-  },
-  "description": {
-    "message": "Ambil foto dan rakam video dengan kamera anda.",
-    "description": "Short description of the Camera App."
-  },
-  "errorMsgFileSystemFailed": {
-    "message": "Ralat sistem fail.",
-    "description": "Error message shown when failing to read or write the file system."
-  },
-  "errorMsgNoCamera": {
-    "message": "Kamera anda tidak tersedia pada masa ini.\nSila periksa sama ada kamera disambungkan dengan betul.",
-    "description": "Error message shown when it was impossible to connect to the camera due to unavailability."
-  },
-  "errorMsgGalleryExportFailed": {
-    "message": "Tidak dapat mengeksport $file$",
-    "description": "Error message shown when exporting to an external directory failed. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg"
-      }
-    }
-  },
-  "errorMsgSaveFileFailed": {
-    "message": "Tidak dapat menyimpan fail",
-    "description": "Error message shown when saving/adding a image or video to the file system failed."
-  },
-  "errorMsgTakePhotoFailed": {
-    "message": "Tidak dapat mengambil foto",
-    "description": "Error message shown when failing to take photo."
-  },
-  "errorMsgRecordStartFailed": {
-    "message": "Tidak dapat memulakan rakaman",
-    "description": "Error message shown when failing to start recording video."
-  },
-  "errorMsgEmptyRecording": {
-    "message": "Tiada apa-apa yang dirakamkan",
-    "description": "Error message shown when no data is recorded for a recording and it won't be added to the gallery."
-  },
-  "statusMsgRecordingStopped": {
-    "message": "Rakaman dihentikan",
-    "description": "Status message for spoken feedback when video recording has been stopped."
-  },
-  "statusMsgCameraSwitched": {
-    "message": "$camera$ aktif",
-    "description": "Status message for spoken feedback when switching over to another camera.",
-    "placeholders": {
-      "camera": {
-        "content": "$1",
-        "example": "USB WebCam (12ab:5678) User-facing"
-      }
-    }
-  },
-  "galleryButton": {
-    "message": "Pergi ke galeri",
-    "description": "Label for the gallery button."
-  },
-  "deleteButton": {
-    "message": "Padam",
-    "description": "Label for the delete button."
-  },
-  "exportButton": {
-    "message": "Eksport ke cakera",
-    "description": "Label for the exporting button."
-  },
-  "printButton": {
-    "message": "Cetak",
-    "description": "Label for the printing button."
-  },
-  "backButton": {
-    "message": "Kembali",
-    "description": "Label for the back button."
-  },
-  "galleryImages": {
-    "message": "Imej galeri",
-    "description": "Text to speech label for the gallery list."
-  },
-  "settingsButton": {
-    "message": "Tetapan",
-    "description": "Label for the settings button."
-  },
-  "gridTypeButton": {
-    "message": "Jenis grid",
-    "description": "Label for the button of grid-type options."
-  },
-  "timerDurationButton": {
-    "message": "Tempoh pemasa",
-    "description": "Label for the button of timer-duration options."
-  },
-  "feedbackButton": {
-    "message": "Hantar maklum balas",
-    "description": "Label for the feedback button."
-  },
-  "helpButton": {
-    "message": "Bantuan",
-    "description": "Label for the help button."
-  },
-  "labelGrid3x3": {
-    "message": "3 x 3",
-    "description": "Label for for grid-type: 3x3."
-  },
-  "ariaGrid3x3": {
-    "message": "3 kali 3",
-    "description": "Label for spoken feedback to read out grid-type: 3x3."
-  },
-  "labelGrid4x4": {
-    "message": "4 x 4",
-    "description": "Label for for grid-type: 4x4."
-  },
-  "ariaGrid4x4": {
-    "message": "4 kali 4",
-    "description": "Label for spoken feedback to read out grid-type: 4x4."
-  },
-  "labelGridGolden": {
-    "message": "Nisbah keemasan",
-    "description": "Label for grid-type: golden ratio."
-  },
-  "labelTimer3s": {
-    "message": "3 saat",
-    "description": "Label for timer-duration: 3 seconds."
-  },
-  "labelTimer10s": {
-    "message": "10 saat",
-    "description": "Label for timer-duration: 10 seconds."
-  },
-  "takePhotoButton": {
-    "message": "Ambil foto",
-    "description": "Label for the shutter button to take photo."
-  },
-  "takePhotoCancelButton": {
-    "message": "Berhenti mengambil foto",
-    "description": "Label for the shutter button to cancel countdown timer and stop taking photo."
-  },
-  "recordVideoStartButton": {
-    "message": "Mulakan rakaman",
-    "description": "Label for the shutter button to start recording."
-  },
-  "recordVideoStopButton": {
-    "message": "Hentikan rakaman",
-    "description": "Label for the shutter button to stop recording."
-  },
-  "switchCameraButton": {
-    "message": "Beralih kepada kamera seterusnya",
-    "description": "Label for the button to switch to next connected camera. Eg. switching from front facing to back facing, or a camera connected via USB. The button is shown only when more than one camera is connected."
-  },
-  "switchRecordVideoButton": {
-    "message": "Beralih kepada merakam video",
-    "description": "Label for the button to switch to record video mode."
-  },
-  "switchTakePhotoButton": {
-    "message": "Beralih kepada mengambil foto",
-    "description": "Label for the button to switch to take photo mode."
-  },
-  "toggleTimerButton": {
-    "message": "Pemasa",
-    "description": "Label for the checkbox to toggle the countdown timer."
-  },
-  "toggleMirrorButton": {
-    "message": "Pencerminan",
-    "description": "Label for the checkbox to toggle the preview mirroring. Eg. if mirroring is toggled on, preview will be flipped horizontally."
-  },
-  "toggleGridButton": {
-    "message": "Grid",
-    "description": "Label for the checkbox to toggle the grid shown on preview."
-  },
-  "toggleMicButton": {
-    "message": "Mikrofon",
-    "description": "Label for the checkbox to toggle the microphone for recording video."
-  },
-  "dialogOKButton": {
-    "message": "OK",
-    "description": "Label for the accepting button in the dialog."
-  },
-  "dialogCancelButton": {
-    "message": "Batal",
-    "description": "Label for the dismissing button in the dialog."
-  },
-  "deleteConfirmationMsg": {
-    "message": "Adakah anda benar-benar mahu mengalih keluar $file$?",
-    "description": "Confirmation message before removing a selected item from the gallery. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg."
-      }
-    }
-  },
-  "deleteMultiConfirmationMsg": {
-    "message": "Adakah anda benar-benar mahu mengalih keluar $count$ item?",
-    "description": "Confirmation message before removing multiple selected items from the gallery. Expects a file count to be passed in.",
-    "placeholders": {
-      "count": {
-        "content": "$1",
-        "example": "20."
-      }
-    }
-  },
-  "migratePicturesMsg": {
-    "message": "Foto dan video yang diambil dengan kamera akan dialihkan ke folder Muat turun. Anda boleh mengakses item ini dalam Fail.\n\nApl dengan kebenaran storan akan boleh mengakses foto dan video anda.",
-    "description": "Message shown before moving all photos and videos stored in the Camera App to the Downloads folder."
-  }
-}
\ No newline at end of file
diff --git a/chrome/browser/resources/chromeos/camera/src/_locales/nl/messages.json b/chrome/browser/resources/chromeos/camera/src/_locales/nl/messages.json
deleted file mode 100644
index 543b7888..0000000
--- a/chrome/browser/resources/chromeos/camera/src/_locales/nl/messages.json
+++ /dev/null
@@ -1,206 +0,0 @@
-{
-  "name": {
-    "message": "Camera",
-    "description": "Name of the Camera App."
-  },
-  "description": {
-    "message": "Maak foto's en neem video's op met je camera.",
-    "description": "Short description of the Camera App."
-  },
-  "errorMsgFileSystemFailed": {
-    "message": "Bestandssysteemfouten.",
-    "description": "Error message shown when failing to read or write the file system."
-  },
-  "errorMsgNoCamera": {
-    "message": "Je camera is momenteel niet beschikbaar.\nControleer of de camera correct is aangesloten.",
-    "description": "Error message shown when it was impossible to connect to the camera due to unavailability."
-  },
-  "errorMsgGalleryExportFailed": {
-    "message": "Kan $file$ niet exporteren",
-    "description": "Error message shown when exporting to an external directory failed. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg"
-      }
-    }
-  },
-  "errorMsgSaveFileFailed": {
-    "message": "Kan het bestand niet opslaan",
-    "description": "Error message shown when saving/adding a image or video to the file system failed."
-  },
-  "errorMsgTakePhotoFailed": {
-    "message": "Kan geen foto maken",
-    "description": "Error message shown when failing to take photo."
-  },
-  "errorMsgRecordStartFailed": {
-    "message": "Kan opname niet starten",
-    "description": "Error message shown when failing to start recording video."
-  },
-  "errorMsgEmptyRecording": {
-    "message": "Niets opgenomen",
-    "description": "Error message shown when no data is recorded for a recording and it won't be added to the gallery."
-  },
-  "statusMsgRecordingStopped": {
-    "message": "Opname gestopt",
-    "description": "Status message for spoken feedback when video recording has been stopped."
-  },
-  "statusMsgCameraSwitched": {
-    "message": "$camera$ actief",
-    "description": "Status message for spoken feedback when switching over to another camera.",
-    "placeholders": {
-      "camera": {
-        "content": "$1",
-        "example": "USB WebCam (12ab:5678) User-facing"
-      }
-    }
-  },
-  "galleryButton": {
-    "message": "Ga naar galerij",
-    "description": "Label for the gallery button."
-  },
-  "deleteButton": {
-    "message": "Verwijderen",
-    "description": "Label for the delete button."
-  },
-  "exportButton": {
-    "message": "Exporteren naar schijf",
-    "description": "Label for the exporting button."
-  },
-  "printButton": {
-    "message": "Afdrukken",
-    "description": "Label for the printing button."
-  },
-  "backButton": {
-    "message": "Terug",
-    "description": "Label for the back button."
-  },
-  "galleryImages": {
-    "message": "Galerij-afbeeldingen",
-    "description": "Text to speech label for the gallery list."
-  },
-  "settingsButton": {
-    "message": "Instellingen",
-    "description": "Label for the settings button."
-  },
-  "gridTypeButton": {
-    "message": "Rastertype",
-    "description": "Label for the button of grid-type options."
-  },
-  "timerDurationButton": {
-    "message": "Timerduur",
-    "description": "Label for the button of timer-duration options."
-  },
-  "feedbackButton": {
-    "message": "Feedback verzenden",
-    "description": "Label for the feedback button."
-  },
-  "helpButton": {
-    "message": "Help",
-    "description": "Label for the help button."
-  },
-  "labelGrid3x3": {
-    "message": "3 x 3",
-    "description": "Label for for grid-type: 3x3."
-  },
-  "ariaGrid3x3": {
-    "message": "3 bij 3",
-    "description": "Label for spoken feedback to read out grid-type: 3x3."
-  },
-  "labelGrid4x4": {
-    "message": "4 x 4",
-    "description": "Label for for grid-type: 4x4."
-  },
-  "ariaGrid4x4": {
-    "message": "4 bij 4",
-    "description": "Label for spoken feedback to read out grid-type: 4x4."
-  },
-  "labelGridGolden": {
-    "message": "Gulden snede",
-    "description": "Label for grid-type: golden ratio."
-  },
-  "labelTimer3s": {
-    "message": "3 seconden",
-    "description": "Label for timer-duration: 3 seconds."
-  },
-  "labelTimer10s": {
-    "message": "10 seconden",
-    "description": "Label for timer-duration: 10 seconds."
-  },
-  "takePhotoButton": {
-    "message": "Foto maken",
-    "description": "Label for the shutter button to take photo."
-  },
-  "takePhotoCancelButton": {
-    "message": "Foto maken stoppen",
-    "description": "Label for the shutter button to cancel countdown timer and stop taking photo."
-  },
-  "recordVideoStartButton": {
-    "message": "Opname starten",
-    "description": "Label for the shutter button to start recording."
-  },
-  "recordVideoStopButton": {
-    "message": "Opname stoppen",
-    "description": "Label for the shutter button to stop recording."
-  },
-  "switchCameraButton": {
-    "message": "Naar volgende camera",
-    "description": "Label for the button to switch to next connected camera. Eg. switching from front facing to back facing, or a camera connected via USB. The button is shown only when more than one camera is connected."
-  },
-  "switchRecordVideoButton": {
-    "message": "Naar video opnemen",
-    "description": "Label for the button to switch to record video mode."
-  },
-  "switchTakePhotoButton": {
-    "message": "Naar foto maken",
-    "description": "Label for the button to switch to take photo mode."
-  },
-  "toggleTimerButton": {
-    "message": "Timer",
-    "description": "Label for the checkbox to toggle the countdown timer."
-  },
-  "toggleMirrorButton": {
-    "message": "Mirroring",
-    "description": "Label for the checkbox to toggle the preview mirroring. Eg. if mirroring is toggled on, preview will be flipped horizontally."
-  },
-  "toggleGridButton": {
-    "message": "Raster",
-    "description": "Label for the checkbox to toggle the grid shown on preview."
-  },
-  "toggleMicButton": {
-    "message": "Microfoon",
-    "description": "Label for the checkbox to toggle the microphone for recording video."
-  },
-  "dialogOKButton": {
-    "message": "OK",
-    "description": "Label for the accepting button in the dialog."
-  },
-  "dialogCancelButton": {
-    "message": "Annuleren",
-    "description": "Label for the dismissing button in the dialog."
-  },
-  "deleteConfirmationMsg": {
-    "message": "Weet je zeker dat je $file$ wilt verwijderen?",
-    "description": "Confirmation message before removing a selected item from the gallery. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg."
-      }
-    }
-  },
-  "deleteMultiConfirmationMsg": {
-    "message": "Weet je zeker dat je $count$ items wilt verwijderen?",
-    "description": "Confirmation message before removing multiple selected items from the gallery. Expects a file count to be passed in.",
-    "placeholders": {
-      "count": {
-        "content": "$1",
-        "example": "20."
-      }
-    }
-  },
-  "migratePicturesMsg": {
-    "message": "Foto's en video's die met de camera zijn gemaakt, worden verplaatst naar de map Downloads. Je kunt ze vinden via Bestanden.\n\nApps met opslagmachtiging hebben toegang tot je foto's en video's.",
-    "description": "Message shown before moving all photos and videos stored in the Camera App to the Downloads folder."
-  }
-}
\ No newline at end of file
diff --git a/chrome/browser/resources/chromeos/camera/src/_locales/no/messages.json b/chrome/browser/resources/chromeos/camera/src/_locales/no/messages.json
deleted file mode 100644
index c7b5fe9..0000000
--- a/chrome/browser/resources/chromeos/camera/src/_locales/no/messages.json
+++ /dev/null
@@ -1,206 +0,0 @@
-{
-  "name": {
-    "message": "Kamera",
-    "description": "Name of the Camera App."
-  },
-  "description": {
-    "message": "Ta bilder og ta opp video med kameraet ditt.",
-    "description": "Short description of the Camera App."
-  },
-  "errorMsgFileSystemFailed": {
-    "message": "Filsystemfeil.",
-    "description": "Error message shown when failing to read or write the file system."
-  },
-  "errorMsgNoCamera": {
-    "message": "Kameraet ditt er utilgjengelig for øyeblikket.\nSjekk om kameraet er koblet til riktig.",
-    "description": "Error message shown when it was impossible to connect to the camera due to unavailability."
-  },
-  "errorMsgGalleryExportFailed": {
-    "message": "Kan ikke eksportere $file$",
-    "description": "Error message shown when exporting to an external directory failed. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg"
-      }
-    }
-  },
-  "errorMsgSaveFileFailed": {
-    "message": "Kan ikke lagre filen",
-    "description": "Error message shown when saving/adding a image or video to the file system failed."
-  },
-  "errorMsgTakePhotoFailed": {
-    "message": "Kan ikke ta bilde",
-    "description": "Error message shown when failing to take photo."
-  },
-  "errorMsgRecordStartFailed": {
-    "message": "Kan ikke starte opptak",
-    "description": "Error message shown when failing to start recording video."
-  },
-  "errorMsgEmptyRecording": {
-    "message": "Ingenting er spilt inn",
-    "description": "Error message shown when no data is recorded for a recording and it won't be added to the gallery."
-  },
-  "statusMsgRecordingStopped": {
-    "message": "Opptaket er stoppet",
-    "description": "Status message for spoken feedback when video recording has been stopped."
-  },
-  "statusMsgCameraSwitched": {
-    "message": "$camera$ er aktivt",
-    "description": "Status message for spoken feedback when switching over to another camera.",
-    "placeholders": {
-      "camera": {
-        "content": "$1",
-        "example": "USB WebCam (12ab:5678) User-facing"
-      }
-    }
-  },
-  "galleryButton": {
-    "message": "Gå til galleriet",
-    "description": "Label for the gallery button."
-  },
-  "deleteButton": {
-    "message": "Slett",
-    "description": "Label for the delete button."
-  },
-  "exportButton": {
-    "message": "Eksportér til disk",
-    "description": "Label for the exporting button."
-  },
-  "printButton": {
-    "message": "Skriv ut",
-    "description": "Label for the printing button."
-  },
-  "backButton": {
-    "message": "Gå tilbake",
-    "description": "Label for the back button."
-  },
-  "galleryImages": {
-    "message": "Galleribilder",
-    "description": "Text to speech label for the gallery list."
-  },
-  "settingsButton": {
-    "message": "Innstillinger",
-    "description": "Label for the settings button."
-  },
-  "gridTypeButton": {
-    "message": "Rutenettype",
-    "description": "Label for the button of grid-type options."
-  },
-  "timerDurationButton": {
-    "message": "Nedtellervarighet",
-    "description": "Label for the button of timer-duration options."
-  },
-  "feedbackButton": {
-    "message": "Send tilbakemelding",
-    "description": "Label for the feedback button."
-  },
-  "helpButton": {
-    "message": "Hjelp",
-    "description": "Label for the help button."
-  },
-  "labelGrid3x3": {
-    "message": "3 x 3",
-    "description": "Label for for grid-type: 3x3."
-  },
-  "ariaGrid3x3": {
-    "message": "3 ganger 3",
-    "description": "Label for spoken feedback to read out grid-type: 3x3."
-  },
-  "labelGrid4x4": {
-    "message": "4 x 4",
-    "description": "Label for for grid-type: 4x4."
-  },
-  "ariaGrid4x4": {
-    "message": "4 ganger 4",
-    "description": "Label for spoken feedback to read out grid-type: 4x4."
-  },
-  "labelGridGolden": {
-    "message": "Det gylne snitt",
-    "description": "Label for grid-type: golden ratio."
-  },
-  "labelTimer3s": {
-    "message": "3 sekunder",
-    "description": "Label for timer-duration: 3 seconds."
-  },
-  "labelTimer10s": {
-    "message": "10 sekunder",
-    "description": "Label for timer-duration: 10 seconds."
-  },
-  "takePhotoButton": {
-    "message": "Ta bilde",
-    "description": "Label for the shutter button to take photo."
-  },
-  "takePhotoCancelButton": {
-    "message": "Slutt å ta bilde",
-    "description": "Label for the shutter button to cancel countdown timer and stop taking photo."
-  },
-  "recordVideoStartButton": {
-    "message": "Start opptak",
-    "description": "Label for the shutter button to start recording."
-  },
-  "recordVideoStopButton": {
-    "message": "Stopp opptak",
-    "description": "Label for the shutter button to stop recording."
-  },
-  "switchCameraButton": {
-    "message": "Bytt til neste kamera",
-    "description": "Label for the button to switch to next connected camera. Eg. switching from front facing to back facing, or a camera connected via USB. The button is shown only when more than one camera is connected."
-  },
-  "switchRecordVideoButton": {
-    "message": "Bytt til video",
-    "description": "Label for the button to switch to record video mode."
-  },
-  "switchTakePhotoButton": {
-    "message": "Bytt til foto",
-    "description": "Label for the button to switch to take photo mode."
-  },
-  "toggleTimerButton": {
-    "message": "Nedtelling",
-    "description": "Label for the checkbox to toggle the countdown timer."
-  },
-  "toggleMirrorButton": {
-    "message": "Speiling",
-    "description": "Label for the checkbox to toggle the preview mirroring. Eg. if mirroring is toggled on, preview will be flipped horizontally."
-  },
-  "toggleGridButton": {
-    "message": "Rutenett",
-    "description": "Label for the checkbox to toggle the grid shown on preview."
-  },
-  "toggleMicButton": {
-    "message": "Mikrofon",
-    "description": "Label for the checkbox to toggle the microphone for recording video."
-  },
-  "dialogOKButton": {
-    "message": "OK",
-    "description": "Label for the accepting button in the dialog."
-  },
-  "dialogCancelButton": {
-    "message": "Avbryt",
-    "description": "Label for the dismissing button in the dialog."
-  },
-  "deleteConfirmationMsg": {
-    "message": "Vil du fjerne $file$?",
-    "description": "Confirmation message before removing a selected item from the gallery. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg."
-      }
-    }
-  },
-  "deleteMultiConfirmationMsg": {
-    "message": "Vil du fjerne $count$ elementer?",
-    "description": "Confirmation message before removing multiple selected items from the gallery. Expects a file count to be passed in.",
-    "placeholders": {
-      "count": {
-        "content": "$1",
-        "example": "20."
-      }
-    }
-  },
-  "migratePicturesMsg": {
-    "message": "Bilder og videoer som er tatt med kameraet, flyttes til mappen Nedlastinger. Du har tilgang til dem i Filer.\n\nApper med lagringstillatelser har tilgang til bildene og videoene dine.",
-    "description": "Message shown before moving all photos and videos stored in the Camera App to the Downloads folder."
-  }
-}
\ No newline at end of file
diff --git a/chrome/browser/resources/chromeos/camera/src/_locales/pl/messages.json b/chrome/browser/resources/chromeos/camera/src/_locales/pl/messages.json
deleted file mode 100644
index 2e1e9a2..0000000
--- a/chrome/browser/resources/chromeos/camera/src/_locales/pl/messages.json
+++ /dev/null
@@ -1,206 +0,0 @@
-{
-  "name": {
-    "message": "Aparat",
-    "description": "Name of the Camera App."
-  },
-  "description": {
-    "message": "Aparatem możesz robić zdjęcia i nagrywać filmy.",
-    "description": "Short description of the Camera App."
-  },
-  "errorMsgFileSystemFailed": {
-    "message": "Błędy systemu plików.",
-    "description": "Error message shown when failing to read or write the file system."
-  },
-  "errorMsgNoCamera": {
-    "message": "Kamera jest teraz niedostępna.\nSprawdź, czy jest prawidłowo podłączona.",
-    "description": "Error message shown when it was impossible to connect to the camera due to unavailability."
-  },
-  "errorMsgGalleryExportFailed": {
-    "message": "Nie udało się wyeksportować pliku $file$",
-    "description": "Error message shown when exporting to an external directory failed. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg"
-      }
-    }
-  },
-  "errorMsgSaveFileFailed": {
-    "message": "Nie udało się zapisać pliku",
-    "description": "Error message shown when saving/adding a image or video to the file system failed."
-  },
-  "errorMsgTakePhotoFailed": {
-    "message": "Nie udało się zrobić zdjęcia",
-    "description": "Error message shown when failing to take photo."
-  },
-  "errorMsgRecordStartFailed": {
-    "message": "Nie udało się rozpocząć nagrywania",
-    "description": "Error message shown when failing to start recording video."
-  },
-  "errorMsgEmptyRecording": {
-    "message": "Nic nie zostało nagrane",
-    "description": "Error message shown when no data is recorded for a recording and it won't be added to the gallery."
-  },
-  "statusMsgRecordingStopped": {
-    "message": "Nagrywanie zatrzymane",
-    "description": "Status message for spoken feedback when video recording has been stopped."
-  },
-  "statusMsgCameraSwitched": {
-    "message": "Aktywna kamera: $camera$",
-    "description": "Status message for spoken feedback when switching over to another camera.",
-    "placeholders": {
-      "camera": {
-        "content": "$1",
-        "example": "USB WebCam (12ab:5678) User-facing"
-      }
-    }
-  },
-  "galleryButton": {
-    "message": "Otwórz galerię",
-    "description": "Label for the gallery button."
-  },
-  "deleteButton": {
-    "message": "Usuń",
-    "description": "Label for the delete button."
-  },
-  "exportButton": {
-    "message": "Eksportuj na dysk",
-    "description": "Label for the exporting button."
-  },
-  "printButton": {
-    "message": "Drukuj",
-    "description": "Label for the printing button."
-  },
-  "backButton": {
-    "message": "Wróć",
-    "description": "Label for the back button."
-  },
-  "galleryImages": {
-    "message": "Zdjęcia z galerii",
-    "description": "Text to speech label for the gallery list."
-  },
-  "settingsButton": {
-    "message": "Ustawienia",
-    "description": "Label for the settings button."
-  },
-  "gridTypeButton": {
-    "message": "Typ siatki",
-    "description": "Label for the button of grid-type options."
-  },
-  "timerDurationButton": {
-    "message": "Czas samowyzwalacza",
-    "description": "Label for the button of timer-duration options."
-  },
-  "feedbackButton": {
-    "message": "Prześlij opinię",
-    "description": "Label for the feedback button."
-  },
-  "helpButton": {
-    "message": "Pomoc",
-    "description": "Label for the help button."
-  },
-  "labelGrid3x3": {
-    "message": "3 x 3",
-    "description": "Label for for grid-type: 3x3."
-  },
-  "ariaGrid3x3": {
-    "message": "3 na 3",
-    "description": "Label for spoken feedback to read out grid-type: 3x3."
-  },
-  "labelGrid4x4": {
-    "message": "4 x 4",
-    "description": "Label for for grid-type: 4x4."
-  },
-  "ariaGrid4x4": {
-    "message": "4 na 4",
-    "description": "Label for spoken feedback to read out grid-type: 4x4."
-  },
-  "labelGridGolden": {
-    "message": "Złote proporcje",
-    "description": "Label for grid-type: golden ratio."
-  },
-  "labelTimer3s": {
-    "message": "3 sekundy",
-    "description": "Label for timer-duration: 3 seconds."
-  },
-  "labelTimer10s": {
-    "message": "10 sekund",
-    "description": "Label for timer-duration: 10 seconds."
-  },
-  "takePhotoButton": {
-    "message": "Zrób zdjęcie",
-    "description": "Label for the shutter button to take photo."
-  },
-  "takePhotoCancelButton": {
-    "message": "Nie rób zdjęcia",
-    "description": "Label for the shutter button to cancel countdown timer and stop taking photo."
-  },
-  "recordVideoStartButton": {
-    "message": "Rozpocznij nagrywanie",
-    "description": "Label for the shutter button to start recording."
-  },
-  "recordVideoStopButton": {
-    "message": "Zatrzymaj nagrywanie",
-    "description": "Label for the shutter button to stop recording."
-  },
-  "switchCameraButton": {
-    "message": "Przełącz na następną kamerę",
-    "description": "Label for the button to switch to next connected camera. Eg. switching from front facing to back facing, or a camera connected via USB. The button is shown only when more than one camera is connected."
-  },
-  "switchRecordVideoButton": {
-    "message": "Przełącz, by nagrać film",
-    "description": "Label for the button to switch to record video mode."
-  },
-  "switchTakePhotoButton": {
-    "message": "Przełącz, by zrobić zdjęcie",
-    "description": "Label for the button to switch to take photo mode."
-  },
-  "toggleTimerButton": {
-    "message": "Samowyzwalacz",
-    "description": "Label for the checkbox to toggle the countdown timer."
-  },
-  "toggleMirrorButton": {
-    "message": "Odbicie lustrzane",
-    "description": "Label for the checkbox to toggle the preview mirroring. Eg. if mirroring is toggled on, preview will be flipped horizontally."
-  },
-  "toggleGridButton": {
-    "message": "Siatka",
-    "description": "Label for the checkbox to toggle the grid shown on preview."
-  },
-  "toggleMicButton": {
-    "message": "Mikrofon",
-    "description": "Label for the checkbox to toggle the microphone for recording video."
-  },
-  "dialogOKButton": {
-    "message": "OK",
-    "description": "Label for the accepting button in the dialog."
-  },
-  "dialogCancelButton": {
-    "message": "Anuluj",
-    "description": "Label for the dismissing button in the dialog."
-  },
-  "deleteConfirmationMsg": {
-    "message": "Czy na pewno chcesz usunąć plik $file$?",
-    "description": "Confirmation message before removing a selected item from the gallery. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg."
-      }
-    }
-  },
-  "deleteMultiConfirmationMsg": {
-    "message": "Czy na pewno chcesz usunąć te elementy ($count$)?",
-    "description": "Confirmation message before removing multiple selected items from the gallery. Expects a file count to be passed in.",
-    "placeholders": {
-      "count": {
-        "content": "$1",
-        "example": "20."
-      }
-    }
-  },
-  "migratePicturesMsg": {
-    "message": "Zdjęcia i filmy pochodzące z aparatu zostaną przeniesione do folderu Pobrane pliki. Będziesz mieć do nich dostęp w aplikacji Pliki.\n\nZ Twoich zdjęć i filmów będą mogły korzystać aplikacje z uprawnieniami dostępu do pamięci.",
-    "description": "Message shown before moving all photos and videos stored in the Camera App to the Downloads folder."
-  }
-}
\ No newline at end of file
diff --git a/chrome/browser/resources/chromeos/camera/src/_locales/pt_BR/messages.json b/chrome/browser/resources/chromeos/camera/src/_locales/pt_BR/messages.json
deleted file mode 100644
index 9d8cd63..0000000
--- a/chrome/browser/resources/chromeos/camera/src/_locales/pt_BR/messages.json
+++ /dev/null
@@ -1,206 +0,0 @@
-{
-  "name": {
-    "message": "Câmera",
-    "description": "Name of the Camera App."
-  },
-  "description": {
-    "message": "Tire fotos e grave vídeos com sua câmera.",
-    "description": "Short description of the Camera App."
-  },
-  "errorMsgFileSystemFailed": {
-    "message": "Erros no sistema de arquivos.",
-    "description": "Error message shown when failing to read or write the file system."
-  },
-  "errorMsgNoCamera": {
-    "message": "Sua câmera está indisponível no momento.\nVerifique se a câmera está conectada corretamente.",
-    "description": "Error message shown when it was impossible to connect to the camera due to unavailability."
-  },
-  "errorMsgGalleryExportFailed": {
-    "message": "Não foi possível exportar $file$",
-    "description": "Error message shown when exporting to an external directory failed. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg"
-      }
-    }
-  },
-  "errorMsgSaveFileFailed": {
-    "message": "Não foi possível salvar o arquivo",
-    "description": "Error message shown when saving/adding a image or video to the file system failed."
-  },
-  "errorMsgTakePhotoFailed": {
-    "message": "Não foi possível tirar a foto",
-    "description": "Error message shown when failing to take photo."
-  },
-  "errorMsgRecordStartFailed": {
-    "message": "Não foi possível começar a gravação",
-    "description": "Error message shown when failing to start recording video."
-  },
-  "errorMsgEmptyRecording": {
-    "message": "Nenhum dado gravado",
-    "description": "Error message shown when no data is recorded for a recording and it won't be added to the gallery."
-  },
-  "statusMsgRecordingStopped": {
-    "message": "A gravação foi interrompida",
-    "description": "Status message for spoken feedback when video recording has been stopped."
-  },
-  "statusMsgCameraSwitched": {
-    "message": "$camera$ ativa",
-    "description": "Status message for spoken feedback when switching over to another camera.",
-    "placeholders": {
-      "camera": {
-        "content": "$1",
-        "example": "USB WebCam (12ab:5678) User-facing"
-      }
-    }
-  },
-  "galleryButton": {
-    "message": "Ir para a galeria",
-    "description": "Label for the gallery button."
-  },
-  "deleteButton": {
-    "message": "Excluir",
-    "description": "Label for the delete button."
-  },
-  "exportButton": {
-    "message": "Exportar para o disco",
-    "description": "Label for the exporting button."
-  },
-  "printButton": {
-    "message": "Imprimir",
-    "description": "Label for the printing button."
-  },
-  "backButton": {
-    "message": "Voltar",
-    "description": "Label for the back button."
-  },
-  "galleryImages": {
-    "message": "Imagens da galeria",
-    "description": "Text to speech label for the gallery list."
-  },
-  "settingsButton": {
-    "message": "Configurações",
-    "description": "Label for the settings button."
-  },
-  "gridTypeButton": {
-    "message": "Tipo de grade",
-    "description": "Label for the button of grid-type options."
-  },
-  "timerDurationButton": {
-    "message": "Duração do timer",
-    "description": "Label for the button of timer-duration options."
-  },
-  "feedbackButton": {
-    "message": "Enviar feedback",
-    "description": "Label for the feedback button."
-  },
-  "helpButton": {
-    "message": "Ajuda",
-    "description": "Label for the help button."
-  },
-  "labelGrid3x3": {
-    "message": "3 x 3",
-    "description": "Label for for grid-type: 3x3."
-  },
-  "ariaGrid3x3": {
-    "message": "3 por 3",
-    "description": "Label for spoken feedback to read out grid-type: 3x3."
-  },
-  "labelGrid4x4": {
-    "message": "4 x 4",
-    "description": "Label for for grid-type: 4x4."
-  },
-  "ariaGrid4x4": {
-    "message": "4 por 4",
-    "description": "Label for spoken feedback to read out grid-type: 4x4."
-  },
-  "labelGridGolden": {
-    "message": "Proporção de ouro",
-    "description": "Label for grid-type: golden ratio."
-  },
-  "labelTimer3s": {
-    "message": "3 segundos",
-    "description": "Label for timer-duration: 3 seconds."
-  },
-  "labelTimer10s": {
-    "message": "10 segundos",
-    "description": "Label for timer-duration: 10 seconds."
-  },
-  "takePhotoButton": {
-    "message": "Tirar foto",
-    "description": "Label for the shutter button to take photo."
-  },
-  "takePhotoCancelButton": {
-    "message": "Parar de tirar foto",
-    "description": "Label for the shutter button to cancel countdown timer and stop taking photo."
-  },
-  "recordVideoStartButton": {
-    "message": "Começar a gravar",
-    "description": "Label for the shutter button to start recording."
-  },
-  "recordVideoStopButton": {
-    "message": "Interromper gravação",
-    "description": "Label for the shutter button to stop recording."
-  },
-  "switchCameraButton": {
-    "message": "Alternar para a próxima câmera",
-    "description": "Label for the button to switch to next connected camera. Eg. switching from front facing to back facing, or a camera connected via USB. The button is shown only when more than one camera is connected."
-  },
-  "switchRecordVideoButton": {
-    "message": "Alternar para gravar vídeo",
-    "description": "Label for the button to switch to record video mode."
-  },
-  "switchTakePhotoButton": {
-    "message": "Alternar para tirar foto",
-    "description": "Label for the button to switch to take photo mode."
-  },
-  "toggleTimerButton": {
-    "message": "Timer",
-    "description": "Label for the checkbox to toggle the countdown timer."
-  },
-  "toggleMirrorButton": {
-    "message": "Espelhamento",
-    "description": "Label for the checkbox to toggle the preview mirroring. Eg. if mirroring is toggled on, preview will be flipped horizontally."
-  },
-  "toggleGridButton": {
-    "message": "Grade",
-    "description": "Label for the checkbox to toggle the grid shown on preview."
-  },
-  "toggleMicButton": {
-    "message": "Microfone",
-    "description": "Label for the checkbox to toggle the microphone for recording video."
-  },
-  "dialogOKButton": {
-    "message": "OK",
-    "description": "Label for the accepting button in the dialog."
-  },
-  "dialogCancelButton": {
-    "message": "Cancelar",
-    "description": "Label for the dismissing button in the dialog."
-  },
-  "deleteConfirmationMsg": {
-    "message": "Tem certeza de que quer remover o arquivo $file$?",
-    "description": "Confirmation message before removing a selected item from the gallery. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg."
-      }
-    }
-  },
-  "deleteMultiConfirmationMsg": {
-    "message": "Tem certeza de que quer remover $count$ itens?",
-    "description": "Confirmation message before removing multiple selected items from the gallery. Expects a file count to be passed in.",
-    "placeholders": {
-      "count": {
-        "content": "$1",
-        "example": "20."
-      }
-    }
-  },
-  "migratePicturesMsg": {
-    "message": "As fotos e os vídeos capturados com a câmera serão movidos para a pasta \"Downloads\". Você pode acessá-los no app Arquivos.\n\nOs apps com permissões de armazenamento terão acesso às suas fotos e aos seus vídeos.",
-    "description": "Message shown before moving all photos and videos stored in the Camera App to the Downloads folder."
-  }
-}
\ No newline at end of file
diff --git a/chrome/browser/resources/chromeos/camera/src/_locales/pt_PT/messages.json b/chrome/browser/resources/chromeos/camera/src/_locales/pt_PT/messages.json
deleted file mode 100644
index e857a8a3..0000000
--- a/chrome/browser/resources/chromeos/camera/src/_locales/pt_PT/messages.json
+++ /dev/null
@@ -1,206 +0,0 @@
-{
-  "name": {
-    "message": "Câmara",
-    "description": "Name of the Camera App."
-  },
-  "description": {
-    "message": "Tire fotos e grave vídeos com a sua câmara.",
-    "description": "Short description of the Camera App."
-  },
-  "errorMsgFileSystemFailed": {
-    "message": "Erros do sistema de ficheiros.",
-    "description": "Error message shown when failing to read or write the file system."
-  },
-  "errorMsgNoCamera": {
-    "message": "De momento, a câmara não está disponível.\nVerifique se a câmara está ligada corretamente.",
-    "description": "Error message shown when it was impossible to connect to the camera due to unavailability."
-  },
-  "errorMsgGalleryExportFailed": {
-    "message": "Não foi possível exportar o ficheiro $file$.",
-    "description": "Error message shown when exporting to an external directory failed. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg"
-      }
-    }
-  },
-  "errorMsgSaveFileFailed": {
-    "message": "Não foi possível guardar o ficheiro.",
-    "description": "Error message shown when saving/adding a image or video to the file system failed."
-  },
-  "errorMsgTakePhotoFailed": {
-    "message": "Não é possível tirar a foto.",
-    "description": "Error message shown when failing to take photo."
-  },
-  "errorMsgRecordStartFailed": {
-    "message": "Não é possível iniciar a gravação.",
-    "description": "Error message shown when failing to start recording video."
-  },
-  "errorMsgEmptyRecording": {
-    "message": "Nada foi gravado.",
-    "description": "Error message shown when no data is recorded for a recording and it won't be added to the gallery."
-  },
-  "statusMsgRecordingStopped": {
-    "message": "Gravação interrompida",
-    "description": "Status message for spoken feedback when video recording has been stopped."
-  },
-  "statusMsgCameraSwitched": {
-    "message": "$camera$ ativa",
-    "description": "Status message for spoken feedback when switching over to another camera.",
-    "placeholders": {
-      "camera": {
-        "content": "$1",
-        "example": "USB WebCam (12ab:5678) User-facing"
-      }
-    }
-  },
-  "galleryButton": {
-    "message": "Ir para a galeria",
-    "description": "Label for the gallery button."
-  },
-  "deleteButton": {
-    "message": "Eliminar",
-    "description": "Label for the delete button."
-  },
-  "exportButton": {
-    "message": "Exportar para o disco",
-    "description": "Label for the exporting button."
-  },
-  "printButton": {
-    "message": "Imprimir",
-    "description": "Label for the printing button."
-  },
-  "backButton": {
-    "message": "Voltar",
-    "description": "Label for the back button."
-  },
-  "galleryImages": {
-    "message": "Imagens da galeria",
-    "description": "Text to speech label for the gallery list."
-  },
-  "settingsButton": {
-    "message": "Definições",
-    "description": "Label for the settings button."
-  },
-  "gridTypeButton": {
-    "message": "Tipo de grelha",
-    "description": "Label for the button of grid-type options."
-  },
-  "timerDurationButton": {
-    "message": "Duração do temporizador",
-    "description": "Label for the button of timer-duration options."
-  },
-  "feedbackButton": {
-    "message": "Enviar comentários",
-    "description": "Label for the feedback button."
-  },
-  "helpButton": {
-    "message": "Ajuda",
-    "description": "Label for the help button."
-  },
-  "labelGrid3x3": {
-    "message": "3 x 3",
-    "description": "Label for for grid-type: 3x3."
-  },
-  "ariaGrid3x3": {
-    "message": "3 por 3",
-    "description": "Label for spoken feedback to read out grid-type: 3x3."
-  },
-  "labelGrid4x4": {
-    "message": "4 x 4",
-    "description": "Label for for grid-type: 4x4."
-  },
-  "ariaGrid4x4": {
-    "message": "4 por 4",
-    "description": "Label for spoken feedback to read out grid-type: 4x4."
-  },
-  "labelGridGolden": {
-    "message": "Número de Ouro",
-    "description": "Label for grid-type: golden ratio."
-  },
-  "labelTimer3s": {
-    "message": "3 segundos",
-    "description": "Label for timer-duration: 3 seconds."
-  },
-  "labelTimer10s": {
-    "message": "10 segundos",
-    "description": "Label for timer-duration: 10 seconds."
-  },
-  "takePhotoButton": {
-    "message": "Tirar foto",
-    "description": "Label for the shutter button to take photo."
-  },
-  "takePhotoCancelButton": {
-    "message": "Parar de tirar foto",
-    "description": "Label for the shutter button to cancel countdown timer and stop taking photo."
-  },
-  "recordVideoStartButton": {
-    "message": "Começar a gravar",
-    "description": "Label for the shutter button to start recording."
-  },
-  "recordVideoStopButton": {
-    "message": "Parar de gravar",
-    "description": "Label for the shutter button to stop recording."
-  },
-  "switchCameraButton": {
-    "message": "Mudar para a câmara seguinte",
-    "description": "Label for the button to switch to next connected camera. Eg. switching from front facing to back facing, or a camera connected via USB. The button is shown only when more than one camera is connected."
-  },
-  "switchRecordVideoButton": {
-    "message": "Mudar para gravar vídeo",
-    "description": "Label for the button to switch to record video mode."
-  },
-  "switchTakePhotoButton": {
-    "message": "Mudar para tirar foto",
-    "description": "Label for the button to switch to take photo mode."
-  },
-  "toggleTimerButton": {
-    "message": "Temporizador",
-    "description": "Label for the checkbox to toggle the countdown timer."
-  },
-  "toggleMirrorButton": {
-    "message": "Espelhamento",
-    "description": "Label for the checkbox to toggle the preview mirroring. Eg. if mirroring is toggled on, preview will be flipped horizontally."
-  },
-  "toggleGridButton": {
-    "message": "Grelha",
-    "description": "Label for the checkbox to toggle the grid shown on preview."
-  },
-  "toggleMicButton": {
-    "message": "Microfone",
-    "description": "Label for the checkbox to toggle the microphone for recording video."
-  },
-  "dialogOKButton": {
-    "message": "OK",
-    "description": "Label for the accepting button in the dialog."
-  },
-  "dialogCancelButton": {
-    "message": "Cancelar",
-    "description": "Label for the dismissing button in the dialog."
-  },
-  "deleteConfirmationMsg": {
-    "message": "Pretende realmente remover o ficheiro $file$?",
-    "description": "Confirmation message before removing a selected item from the gallery. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg."
-      }
-    }
-  },
-  "deleteMultiConfirmationMsg": {
-    "message": "Pretende realmente remover $count$ itens?",
-    "description": "Confirmation message before removing multiple selected items from the gallery. Expects a file count to be passed in.",
-    "placeholders": {
-      "count": {
-        "content": "$1",
-        "example": "20."
-      }
-    }
-  },
-  "migratePicturesMsg": {
-    "message": "As fotos e os vídeos registados com a câmara serão transferidos para a pasta Transferências. Pode aceder aos mesmos em Ficheiros.\n\nAs aplicações com autorizações de armazenamento terão acesso aos seus vídeos e fotos.",
-    "description": "Message shown before moving all photos and videos stored in the Camera App to the Downloads folder."
-  }
-}
\ No newline at end of file
diff --git a/chrome/browser/resources/chromeos/camera/src/_locales/ro/messages.json b/chrome/browser/resources/chromeos/camera/src/_locales/ro/messages.json
deleted file mode 100644
index 9caa1a3..0000000
--- a/chrome/browser/resources/chromeos/camera/src/_locales/ro/messages.json
+++ /dev/null
@@ -1,206 +0,0 @@
-{
-  "name": {
-    "message": "Cameră foto",
-    "description": "Name of the Camera App."
-  },
-  "description": {
-    "message": "Fotografiați și înregistrați videoclipuri cu camera foto.",
-    "description": "Short description of the Camera App."
-  },
-  "errorMsgFileSystemFailed": {
-    "message": "Erori în sistemul de fișiere.",
-    "description": "Error message shown when failing to read or write the file system."
-  },
-  "errorMsgNoCamera": {
-    "message": "Camera dvs. foto este indisponibilă momentan.\nVerificați dacă este conectată corespunzător.",
-    "description": "Error message shown when it was impossible to connect to the camera due to unavailability."
-  },
-  "errorMsgGalleryExportFailed": {
-    "message": "Nu se poate exporta $file$.",
-    "description": "Error message shown when exporting to an external directory failed. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg"
-      }
-    }
-  },
-  "errorMsgSaveFileFailed": {
-    "message": "Fișierul nu poate fi salvat.",
-    "description": "Error message shown when saving/adding a image or video to the file system failed."
-  },
-  "errorMsgTakePhotoFailed": {
-    "message": "Nu se pot face fotografii.",
-    "description": "Error message shown when failing to take photo."
-  },
-  "errorMsgRecordStartFailed": {
-    "message": "Nu se poate porni înregistrarea.",
-    "description": "Error message shown when failing to start recording video."
-  },
-  "errorMsgEmptyRecording": {
-    "message": "Nu s-a înregistrat nimic.",
-    "description": "Error message shown when no data is recorded for a recording and it won't be added to the gallery."
-  },
-  "statusMsgRecordingStopped": {
-    "message": "Înregistrarea s-a oprit.",
-    "description": "Status message for spoken feedback when video recording has been stopped."
-  },
-  "statusMsgCameraSwitched": {
-    "message": "$camera$ activă",
-    "description": "Status message for spoken feedback when switching over to another camera.",
-    "placeholders": {
-      "camera": {
-        "content": "$1",
-        "example": "USB WebCam (12ab:5678) User-facing"
-      }
-    }
-  },
-  "galleryButton": {
-    "message": "Accesați galeria",
-    "description": "Label for the gallery button."
-  },
-  "deleteButton": {
-    "message": "Ștergeți",
-    "description": "Label for the delete button."
-  },
-  "exportButton": {
-    "message": "Exportați pe disc",
-    "description": "Label for the exporting button."
-  },
-  "printButton": {
-    "message": "Printați",
-    "description": "Label for the printing button."
-  },
-  "backButton": {
-    "message": "Înapoi",
-    "description": "Label for the back button."
-  },
-  "galleryImages": {
-    "message": "Imagini din galerie",
-    "description": "Text to speech label for the gallery list."
-  },
-  "settingsButton": {
-    "message": "Setări",
-    "description": "Label for the settings button."
-  },
-  "gridTypeButton": {
-    "message": "Tipul grilei",
-    "description": "Label for the button of grid-type options."
-  },
-  "timerDurationButton": {
-    "message": "Durata temporizatorului",
-    "description": "Label for the button of timer-duration options."
-  },
-  "feedbackButton": {
-    "message": "Trimiteți feedback",
-    "description": "Label for the feedback button."
-  },
-  "helpButton": {
-    "message": "Ajutor",
-    "description": "Label for the help button."
-  },
-  "labelGrid3x3": {
-    "message": "3 x 3",
-    "description": "Label for for grid-type: 3x3."
-  },
-  "ariaGrid3x3": {
-    "message": "3 x 3",
-    "description": "Label for spoken feedback to read out grid-type: 3x3."
-  },
-  "labelGrid4x4": {
-    "message": "4 x 4",
-    "description": "Label for for grid-type: 4x4."
-  },
-  "ariaGrid4x4": {
-    "message": "4 pe 4",
-    "description": "Label for spoken feedback to read out grid-type: 4x4."
-  },
-  "labelGridGolden": {
-    "message": "Raportul de aur",
-    "description": "Label for grid-type: golden ratio."
-  },
-  "labelTimer3s": {
-    "message": "3 secunde",
-    "description": "Label for timer-duration: 3 seconds."
-  },
-  "labelTimer10s": {
-    "message": "10 secunde",
-    "description": "Label for timer-duration: 10 seconds."
-  },
-  "takePhotoButton": {
-    "message": "Fotografiați",
-    "description": "Label for the shutter button to take photo."
-  },
-  "takePhotoCancelButton": {
-    "message": "Nu mai fotografiați",
-    "description": "Label for the shutter button to cancel countdown timer and stop taking photo."
-  },
-  "recordVideoStartButton": {
-    "message": "Porniți înregistrarea",
-    "description": "Label for the shutter button to start recording."
-  },
-  "recordVideoStopButton": {
-    "message": "Opriți înregistrarea",
-    "description": "Label for the shutter button to stop recording."
-  },
-  "switchCameraButton": {
-    "message": "Comutați la următoarea cameră foto",
-    "description": "Label for the button to switch to next connected camera. Eg. switching from front facing to back facing, or a camera connected via USB. The button is shown only when more than one camera is connected."
-  },
-  "switchRecordVideoButton": {
-    "message": "Comutați pentru a înregistra un videoclip",
-    "description": "Label for the button to switch to record video mode."
-  },
-  "switchTakePhotoButton": {
-    "message": "Comutați pentru a fotografia",
-    "description": "Label for the button to switch to take photo mode."
-  },
-  "toggleTimerButton": {
-    "message": "Temporizator",
-    "description": "Label for the checkbox to toggle the countdown timer."
-  },
-  "toggleMirrorButton": {
-    "message": "Oglindire",
-    "description": "Label for the checkbox to toggle the preview mirroring. Eg. if mirroring is toggled on, preview will be flipped horizontally."
-  },
-  "toggleGridButton": {
-    "message": "Grilă",
-    "description": "Label for the checkbox to toggle the grid shown on preview."
-  },
-  "toggleMicButton": {
-    "message": "Microfon",
-    "description": "Label for the checkbox to toggle the microphone for recording video."
-  },
-  "dialogOKButton": {
-    "message": "OK",
-    "description": "Label for the accepting button in the dialog."
-  },
-  "dialogCancelButton": {
-    "message": "Anulați",
-    "description": "Label for the dismissing button in the dialog."
-  },
-  "deleteConfirmationMsg": {
-    "message": "Sigur doriți să eliminați $file$?",
-    "description": "Confirmation message before removing a selected item from the gallery. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg."
-      }
-    }
-  },
-  "deleteMultiConfirmationMsg": {
-    "message": "Sigur doriți să eliminați $count$ elemente?",
-    "description": "Confirmation message before removing multiple selected items from the gallery. Expects a file count to be passed in.",
-    "placeholders": {
-      "count": {
-        "content": "$1",
-        "example": "20."
-      }
-    }
-  },
-  "migratePicturesMsg": {
-    "message": "Fotografiile și videoclipurile făcute cu camera foto vor fi mutate în dosarul Descărcări. Le puteți accesa în Fișiere.\n\nAplicațiile cu permisiuni de stocare vor avea acces la fotografiile și videoclipurile dvs.",
-    "description": "Message shown before moving all photos and videos stored in the Camera App to the Downloads folder."
-  }
-}
\ No newline at end of file
diff --git a/chrome/browser/resources/chromeos/camera/src/_locales/ru/messages.json b/chrome/browser/resources/chromeos/camera/src/_locales/ru/messages.json
deleted file mode 100644
index d40c2c6..0000000
--- a/chrome/browser/resources/chromeos/camera/src/_locales/ru/messages.json
+++ /dev/null
@@ -1,206 +0,0 @@
-{
-  "name": {
-    "message": "Камера",
-    "description": "Name of the Camera App."
-  },
-  "description": {
-    "message": "Съемка фото и видео при помощи камеры.",
-    "description": "Short description of the Camera App."
-  },
-  "errorMsgFileSystemFailed": {
-    "message": "Ошибки файловой системы",
-    "description": "Error message shown when failing to read or write the file system."
-  },
-  "errorMsgNoCamera": {
-    "message": "Камера недоступна.\nПроверьте, правильно ли она подключена.",
-    "description": "Error message shown when it was impossible to connect to the camera due to unavailability."
-  },
-  "errorMsgGalleryExportFailed": {
-    "message": "Не удалось экспортировать файл $file$",
-    "description": "Error message shown when exporting to an external directory failed. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg"
-      }
-    }
-  },
-  "errorMsgSaveFileFailed": {
-    "message": "Не удалось сохранить файл",
-    "description": "Error message shown when saving/adding a image or video to the file system failed."
-  },
-  "errorMsgTakePhotoFailed": {
-    "message": "Не удалось сделать снимок",
-    "description": "Error message shown when failing to take photo."
-  },
-  "errorMsgRecordStartFailed": {
-    "message": "Не удалось начать запись",
-    "description": "Error message shown when failing to start recording video."
-  },
-  "errorMsgEmptyRecording": {
-    "message": "Ничего не записано",
-    "description": "Error message shown when no data is recorded for a recording and it won't be added to the gallery."
-  },
-  "statusMsgRecordingStopped": {
-    "message": "Запись прекращена",
-    "description": "Status message for spoken feedback when video recording has been stopped."
-  },
-  "statusMsgCameraSwitched": {
-    "message": "Выбрана $camera$",
-    "description": "Status message for spoken feedback when switching over to another camera.",
-    "placeholders": {
-      "camera": {
-        "content": "$1",
-        "example": "USB WebCam (12ab:5678) User-facing"
-      }
-    }
-  },
-  "galleryButton": {
-    "message": "Перейти в галерею",
-    "description": "Label for the gallery button."
-  },
-  "deleteButton": {
-    "message": "Удалить",
-    "description": "Label for the delete button."
-  },
-  "exportButton": {
-    "message": "Экспортировать на диск",
-    "description": "Label for the exporting button."
-  },
-  "printButton": {
-    "message": "Печать",
-    "description": "Label for the printing button."
-  },
-  "backButton": {
-    "message": "Назад",
-    "description": "Label for the back button."
-  },
-  "galleryImages": {
-    "message": "Изображения в галерее",
-    "description": "Text to speech label for the gallery list."
-  },
-  "settingsButton": {
-    "message": "Настройки",
-    "description": "Label for the settings button."
-  },
-  "gridTypeButton": {
-    "message": "Тип сетки",
-    "description": "Label for the button of grid-type options."
-  },
-  "timerDurationButton": {
-    "message": "Длительность таймера",
-    "description": "Label for the button of timer-duration options."
-  },
-  "feedbackButton": {
-    "message": "Оставить отзыв",
-    "description": "Label for the feedback button."
-  },
-  "helpButton": {
-    "message": "Справка",
-    "description": "Label for the help button."
-  },
-  "labelGrid3x3": {
-    "message": "3 x 3",
-    "description": "Label for for grid-type: 3x3."
-  },
-  "ariaGrid3x3": {
-    "message": "3 на 3",
-    "description": "Label for spoken feedback to read out grid-type: 3x3."
-  },
-  "labelGrid4x4": {
-    "message": "4 x 4",
-    "description": "Label for for grid-type: 4x4."
-  },
-  "ariaGrid4x4": {
-    "message": "4 на 4",
-    "description": "Label for spoken feedback to read out grid-type: 4x4."
-  },
-  "labelGridGolden": {
-    "message": "Золотое сечение",
-    "description": "Label for grid-type: golden ratio."
-  },
-  "labelTimer3s": {
-    "message": "3 секунды",
-    "description": "Label for timer-duration: 3 seconds."
-  },
-  "labelTimer10s": {
-    "message": "10 секунд",
-    "description": "Label for timer-duration: 10 seconds."
-  },
-  "takePhotoButton": {
-    "message": "Сделать снимок",
-    "description": "Label for the shutter button to take photo."
-  },
-  "takePhotoCancelButton": {
-    "message": "Остановить съемку",
-    "description": "Label for the shutter button to cancel countdown timer and stop taking photo."
-  },
-  "recordVideoStartButton": {
-    "message": "Начать запись",
-    "description": "Label for the shutter button to start recording."
-  },
-  "recordVideoStopButton": {
-    "message": "Остановить запись",
-    "description": "Label for the shutter button to stop recording."
-  },
-  "switchCameraButton": {
-    "message": "Переключиться на следующую камеру",
-    "description": "Label for the button to switch to next connected camera. Eg. switching from front facing to back facing, or a camera connected via USB. The button is shown only when more than one camera is connected."
-  },
-  "switchRecordVideoButton": {
-    "message": "Переключиться на видеосъемку",
-    "description": "Label for the button to switch to record video mode."
-  },
-  "switchTakePhotoButton": {
-    "message": "Переключиться на фотосъемку",
-    "description": "Label for the button to switch to take photo mode."
-  },
-  "toggleTimerButton": {
-    "message": "Таймер",
-    "description": "Label for the checkbox to toggle the countdown timer."
-  },
-  "toggleMirrorButton": {
-    "message": "Зеркалирование",
-    "description": "Label for the checkbox to toggle the preview mirroring. Eg. if mirroring is toggled on, preview will be flipped horizontally."
-  },
-  "toggleGridButton": {
-    "message": "Сетка",
-    "description": "Label for the checkbox to toggle the grid shown on preview."
-  },
-  "toggleMicButton": {
-    "message": "Микрофон",
-    "description": "Label for the checkbox to toggle the microphone for recording video."
-  },
-  "dialogOKButton": {
-    "message": "ОК",
-    "description": "Label for the accepting button in the dialog."
-  },
-  "dialogCancelButton": {
-    "message": "Отмена",
-    "description": "Label for the dismissing button in the dialog."
-  },
-  "deleteConfirmationMsg": {
-    "message": "Удалить файл $file$?",
-    "description": "Confirmation message before removing a selected item from the gallery. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg."
-      }
-    }
-  },
-  "deleteMultiConfirmationMsg": {
-    "message": "Удалить файлы ($count$)?",
-    "description": "Confirmation message before removing multiple selected items from the gallery. Expects a file count to be passed in.",
-    "placeholders": {
-      "count": {
-        "content": "$1",
-        "example": "20."
-      }
-    }
-  },
-  "migratePicturesMsg": {
-    "message": "Фотографии и видео, полученные с камеры, будут перемещены в папку \"Загрузки\". Вы также сможете найти их в папке \"Файлы\".\n\nПриложения, у которых есть доступ к хранилищу, смогут работать с вашими фотографиями и видео.",
-    "description": "Message shown before moving all photos and videos stored in the Camera App to the Downloads folder."
-  }
-}
\ No newline at end of file
diff --git a/chrome/browser/resources/chromeos/camera/src/_locales/sk/messages.json b/chrome/browser/resources/chromeos/camera/src/_locales/sk/messages.json
deleted file mode 100644
index cdf3ba23..0000000
--- a/chrome/browser/resources/chromeos/camera/src/_locales/sk/messages.json
+++ /dev/null
@@ -1,206 +0,0 @@
-{
-  "name": {
-    "message": "Fotoaparát",
-    "description": "Name of the Camera App."
-  },
-  "description": {
-    "message": "Foťte a nahrávajte videá pomocou fotoaparátu.",
-    "description": "Short description of the Camera App."
-  },
-  "errorMsgFileSystemFailed": {
-    "message": "Chyby systému súborov.",
-    "description": "Error message shown when failing to read or write the file system."
-  },
-  "errorMsgNoCamera": {
-    "message": "Váš fotoaparát je momentálne nedostupný.\nSkontrolujte, či je fotoaparát správne pripojený.",
-    "description": "Error message shown when it was impossible to connect to the camera due to unavailability."
-  },
-  "errorMsgGalleryExportFailed": {
-    "message": "Súbor $file$ sa nepodarilo exportovať",
-    "description": "Error message shown when exporting to an external directory failed. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg"
-      }
-    }
-  },
-  "errorMsgSaveFileFailed": {
-    "message": "Súbor sa nepodarilo uložiť",
-    "description": "Error message shown when saving/adding a image or video to the file system failed."
-  },
-  "errorMsgTakePhotoFailed": {
-    "message": "Fotku sa nepodarilo nasnímať",
-    "description": "Error message shown when failing to take photo."
-  },
-  "errorMsgRecordStartFailed": {
-    "message": "Nahrávanie sa nepodarilo spustiť",
-    "description": "Error message shown when failing to start recording video."
-  },
-  "errorMsgEmptyRecording": {
-    "message": "Nič sa nenahralo",
-    "description": "Error message shown when no data is recorded for a recording and it won't be added to the gallery."
-  },
-  "statusMsgRecordingStopped": {
-    "message": "Nahrávanie bolo zastavené",
-    "description": "Status message for spoken feedback when video recording has been stopped."
-  },
-  "statusMsgCameraSwitched": {
-    "message": "Kamera $camera$ je aktívna",
-    "description": "Status message for spoken feedback when switching over to another camera.",
-    "placeholders": {
-      "camera": {
-        "content": "$1",
-        "example": "USB WebCam (12ab:5678) User-facing"
-      }
-    }
-  },
-  "galleryButton": {
-    "message": "Prejsť do galérie",
-    "description": "Label for the gallery button."
-  },
-  "deleteButton": {
-    "message": "Odstrániť",
-    "description": "Label for the delete button."
-  },
-  "exportButton": {
-    "message": "Exportovať na disk",
-    "description": "Label for the exporting button."
-  },
-  "printButton": {
-    "message": "Tlačiť",
-    "description": "Label for the printing button."
-  },
-  "backButton": {
-    "message": "Späť",
-    "description": "Label for the back button."
-  },
-  "galleryImages": {
-    "message": "Obrázky galérie",
-    "description": "Text to speech label for the gallery list."
-  },
-  "settingsButton": {
-    "message": "Nastavenia",
-    "description": "Label for the settings button."
-  },
-  "gridTypeButton": {
-    "message": "Typ mriežky",
-    "description": "Label for the button of grid-type options."
-  },
-  "timerDurationButton": {
-    "message": "Trvanie časovača",
-    "description": "Label for the button of timer-duration options."
-  },
-  "feedbackButton": {
-    "message": "Spätná väzba",
-    "description": "Label for the feedback button."
-  },
-  "helpButton": {
-    "message": "Pomocník",
-    "description": "Label for the help button."
-  },
-  "labelGrid3x3": {
-    "message": "3 x 3",
-    "description": "Label for for grid-type: 3x3."
-  },
-  "ariaGrid3x3": {
-    "message": "3 na 3",
-    "description": "Label for spoken feedback to read out grid-type: 3x3."
-  },
-  "labelGrid4x4": {
-    "message": "4 x 4",
-    "description": "Label for for grid-type: 4x4."
-  },
-  "ariaGrid4x4": {
-    "message": "4 na 4",
-    "description": "Label for spoken feedback to read out grid-type: 4x4."
-  },
-  "labelGridGolden": {
-    "message": "Zlatý pomer",
-    "description": "Label for grid-type: golden ratio."
-  },
-  "labelTimer3s": {
-    "message": "3 sekundy",
-    "description": "Label for timer-duration: 3 seconds."
-  },
-  "labelTimer10s": {
-    "message": "10 sekúnd",
-    "description": "Label for timer-duration: 10 seconds."
-  },
-  "takePhotoButton": {
-    "message": "Odfotiť",
-    "description": "Label for the shutter button to take photo."
-  },
-  "takePhotoCancelButton": {
-    "message": "Zastaviť fotenie",
-    "description": "Label for the shutter button to cancel countdown timer and stop taking photo."
-  },
-  "recordVideoStartButton": {
-    "message": "Spustiť nahrávanie",
-    "description": "Label for the shutter button to start recording."
-  },
-  "recordVideoStopButton": {
-    "message": "Zastaviť nahrávanie",
-    "description": "Label for the shutter button to stop recording."
-  },
-  "switchCameraButton": {
-    "message": "Prepnúť na ďalší fotoaparát",
-    "description": "Label for the button to switch to next connected camera. Eg. switching from front facing to back facing, or a camera connected via USB. The button is shown only when more than one camera is connected."
-  },
-  "switchRecordVideoButton": {
-    "message": "Prepnúť na nahrávanie videa",
-    "description": "Label for the button to switch to record video mode."
-  },
-  "switchTakePhotoButton": {
-    "message": "Prepnúť na fotenie",
-    "description": "Label for the button to switch to take photo mode."
-  },
-  "toggleTimerButton": {
-    "message": "Časovač",
-    "description": "Label for the checkbox to toggle the countdown timer."
-  },
-  "toggleMirrorButton": {
-    "message": "Zrkadlenie",
-    "description": "Label for the checkbox to toggle the preview mirroring. Eg. if mirroring is toggled on, preview will be flipped horizontally."
-  },
-  "toggleGridButton": {
-    "message": "Mriežka",
-    "description": "Label for the checkbox to toggle the grid shown on preview."
-  },
-  "toggleMicButton": {
-    "message": "Mikrofón",
-    "description": "Label for the checkbox to toggle the microphone for recording video."
-  },
-  "dialogOKButton": {
-    "message": "OK",
-    "description": "Label for the accepting button in the dialog."
-  },
-  "dialogCancelButton": {
-    "message": "Zrušiť",
-    "description": "Label for the dismissing button in the dialog."
-  },
-  "deleteConfirmationMsg": {
-    "message": "Naozaj chcete súbor $file$ odstrániť?",
-    "description": "Confirmation message before removing a selected item from the gallery. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg."
-      }
-    }
-  },
-  "deleteMultiConfirmationMsg": {
-    "message": "Naozaj chcete tieto položky ($count$) odstrániť?",
-    "description": "Confirmation message before removing multiple selected items from the gallery. Expects a file count to be passed in.",
-    "placeholders": {
-      "count": {
-        "content": "$1",
-        "example": "20."
-      }
-    }
-  },
-  "migratePicturesMsg": {
-    "message": "Fotky a videá nasnímané fotoaparátom budú presunuté do priečinka stiahnutých súborov. Prístup k nim získate v priečinku Súbory.\nK fotkám a videám budú mať prístup aplikácie s povoleniami pre úložisko.",
-    "description": "Message shown before moving all photos and videos stored in the Camera App to the Downloads folder."
-  }
-}
\ No newline at end of file
diff --git a/chrome/browser/resources/chromeos/camera/src/_locales/sl/messages.json b/chrome/browser/resources/chromeos/camera/src/_locales/sl/messages.json
deleted file mode 100644
index d76e3fe..0000000
--- a/chrome/browser/resources/chromeos/camera/src/_locales/sl/messages.json
+++ /dev/null
@@ -1,206 +0,0 @@
-{
-  "name": {
-    "message": "Fotoaparat",
-    "description": "Name of the Camera App."
-  },
-  "description": {
-    "message": "Fotografirajte in snemajte videoposnetke s fotoaparatom.",
-    "description": "Short description of the Camera App."
-  },
-  "errorMsgFileSystemFailed": {
-    "message": "Napake datotečnega sistema.",
-    "description": "Error message shown when failing to read or write the file system."
-  },
-  "errorMsgNoCamera": {
-    "message": "Fotoaparat trenutno ni na voljo.\nPreverite, ali je fotoaparat ustrezno povezan.",
-    "description": "Error message shown when it was impossible to connect to the camera due to unavailability."
-  },
-  "errorMsgGalleryExportFailed": {
-    "message": "Datoteke $file$ ni mogoče izvoziti",
-    "description": "Error message shown when exporting to an external directory failed. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg"
-      }
-    }
-  },
-  "errorMsgSaveFileFailed": {
-    "message": "Datoteke ni mogoče shraniti",
-    "description": "Error message shown when saving/adding a image or video to the file system failed."
-  },
-  "errorMsgTakePhotoFailed": {
-    "message": "Fotografije ni mogoče posneti",
-    "description": "Error message shown when failing to take photo."
-  },
-  "errorMsgRecordStartFailed": {
-    "message": "Snemanja ni mogoče začeti",
-    "description": "Error message shown when failing to start recording video."
-  },
-  "errorMsgEmptyRecording": {
-    "message": "Nič ni posneto",
-    "description": "Error message shown when no data is recorded for a recording and it won't be added to the gallery."
-  },
-  "statusMsgRecordingStopped": {
-    "message": "Snemanje je ustavljeno",
-    "description": "Status message for spoken feedback when video recording has been stopped."
-  },
-  "statusMsgCameraSwitched": {
-    "message": "Fotoaparat $camera$ je aktiven",
-    "description": "Status message for spoken feedback when switching over to another camera.",
-    "placeholders": {
-      "camera": {
-        "content": "$1",
-        "example": "USB WebCam (12ab:5678) User-facing"
-      }
-    }
-  },
-  "galleryButton": {
-    "message": "V galerijo",
-    "description": "Label for the gallery button."
-  },
-  "deleteButton": {
-    "message": "Izbris",
-    "description": "Label for the delete button."
-  },
-  "exportButton": {
-    "message": "Izvoz na disk",
-    "description": "Label for the exporting button."
-  },
-  "printButton": {
-    "message": "Tiskanje",
-    "description": "Label for the printing button."
-  },
-  "backButton": {
-    "message": "Nazaj",
-    "description": "Label for the back button."
-  },
-  "galleryImages": {
-    "message": "Slike v galeriji",
-    "description": "Text to speech label for the gallery list."
-  },
-  "settingsButton": {
-    "message": "Nastavitve",
-    "description": "Label for the settings button."
-  },
-  "gridTypeButton": {
-    "message": "Vrsta mreže",
-    "description": "Label for the button of grid-type options."
-  },
-  "timerDurationButton": {
-    "message": "Trajanje časovnika",
-    "description": "Label for the button of timer-duration options."
-  },
-  "feedbackButton": {
-    "message": "Pošlji povratne informacije",
-    "description": "Label for the feedback button."
-  },
-  "helpButton": {
-    "message": "Pomoč",
-    "description": "Label for the help button."
-  },
-  "labelGrid3x3": {
-    "message": "3 x 3",
-    "description": "Label for for grid-type: 3x3."
-  },
-  "ariaGrid3x3": {
-    "message": "3 x 3",
-    "description": "Label for spoken feedback to read out grid-type: 3x3."
-  },
-  "labelGrid4x4": {
-    "message": "4 x 4",
-    "description": "Label for for grid-type: 4x4."
-  },
-  "ariaGrid4x4": {
-    "message": "4 x 4",
-    "description": "Label for spoken feedback to read out grid-type: 4x4."
-  },
-  "labelGridGolden": {
-    "message": "Zlato razmerje",
-    "description": "Label for grid-type: golden ratio."
-  },
-  "labelTimer3s": {
-    "message": "3 sekunde",
-    "description": "Label for timer-duration: 3 seconds."
-  },
-  "labelTimer10s": {
-    "message": "10 sekund",
-    "description": "Label for timer-duration: 10 seconds."
-  },
-  "takePhotoButton": {
-    "message": "Fotografiranje",
-    "description": "Label for the shutter button to take photo."
-  },
-  "takePhotoCancelButton": {
-    "message": "Ustavitev fotografiranja",
-    "description": "Label for the shutter button to cancel countdown timer and stop taking photo."
-  },
-  "recordVideoStartButton": {
-    "message": "Začetek snemanja",
-    "description": "Label for the shutter button to start recording."
-  },
-  "recordVideoStopButton": {
-    "message": "Ustavitev snemanja",
-    "description": "Label for the shutter button to stop recording."
-  },
-  "switchCameraButton": {
-    "message": "Preklop na naslednji fotoaparat",
-    "description": "Label for the button to switch to next connected camera. Eg. switching from front facing to back facing, or a camera connected via USB. The button is shown only when more than one camera is connected."
-  },
-  "switchRecordVideoButton": {
-    "message": "Preklop na snemanje videa",
-    "description": "Label for the button to switch to record video mode."
-  },
-  "switchTakePhotoButton": {
-    "message": "Preklop na fotografiranje",
-    "description": "Label for the button to switch to take photo mode."
-  },
-  "toggleTimerButton": {
-    "message": "Časovnik",
-    "description": "Label for the checkbox to toggle the countdown timer."
-  },
-  "toggleMirrorButton": {
-    "message": "Zrcaljenje",
-    "description": "Label for the checkbox to toggle the preview mirroring. Eg. if mirroring is toggled on, preview will be flipped horizontally."
-  },
-  "toggleGridButton": {
-    "message": "Mreža",
-    "description": "Label for the checkbox to toggle the grid shown on preview."
-  },
-  "toggleMicButton": {
-    "message": "Mikrofon",
-    "description": "Label for the checkbox to toggle the microphone for recording video."
-  },
-  "dialogOKButton": {
-    "message": "V redu",
-    "description": "Label for the accepting button in the dialog."
-  },
-  "dialogCancelButton": {
-    "message": "Prekliči",
-    "description": "Label for the dismissing button in the dialog."
-  },
-  "deleteConfirmationMsg": {
-    "message": "Ali res želite odstraniti datoteko $file$?",
-    "description": "Confirmation message before removing a selected item from the gallery. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg."
-      }
-    }
-  },
-  "deleteMultiConfirmationMsg": {
-    "message": "Ali res želite odstraniti toliko elementov: $count$?",
-    "description": "Confirmation message before removing multiple selected items from the gallery. Expects a file count to be passed in.",
-    "placeholders": {
-      "count": {
-        "content": "$1",
-        "example": "20."
-      }
-    }
-  },
-  "migratePicturesMsg": {
-    "message": "Fotografije in videoposnetki, ki ste jih posneli s fotoaparatom, bodo premaknjeni v mapo Prenosi. Do njih lahko dostopate v aplikaciji Datoteke.\n\nAplikacije z dovoljenji za shrambo bodo imele dostop do fotografij in videoposnetkov.",
-    "description": "Message shown before moving all photos and videos stored in the Camera App to the Downloads folder."
-  }
-}
\ No newline at end of file
diff --git a/chrome/browser/resources/chromeos/camera/src/_locales/sr/messages.json b/chrome/browser/resources/chromeos/camera/src/_locales/sr/messages.json
deleted file mode 100644
index ad1790b..0000000
--- a/chrome/browser/resources/chromeos/camera/src/_locales/sr/messages.json
+++ /dev/null
@@ -1,206 +0,0 @@
-{
-  "name": {
-    "message": "Камера",
-    "description": "Name of the Camera App."
-  },
-  "description": {
-    "message": "Снимајте слике и видео снимке помоћу камере.",
-    "description": "Short description of the Camera App."
-  },
-  "errorMsgFileSystemFailed": {
-    "message": "Грешке система датотека.",
-    "description": "Error message shown when failing to read or write the file system."
-  },
-  "errorMsgNoCamera": {
-    "message": "Камера тренутно није доступна.\nПроверите да ли је камера исправно повезана.",
-    "description": "Error message shown when it was impossible to connect to the camera due to unavailability."
-  },
-  "errorMsgGalleryExportFailed": {
-    "message": "Извоз датотеке $file$ није успео",
-    "description": "Error message shown when exporting to an external directory failed. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg"
-      }
-    }
-  },
-  "errorMsgSaveFileFailed": {
-    "message": "Чување датотеке није успело",
-    "description": "Error message shown when saving/adding a image or video to the file system failed."
-  },
-  "errorMsgTakePhotoFailed": {
-    "message": "Снимање слике није успело",
-    "description": "Error message shown when failing to take photo."
-  },
-  "errorMsgRecordStartFailed": {
-    "message": "Нисмо успели да започнемо снимање",
-    "description": "Error message shown when failing to start recording video."
-  },
-  "errorMsgEmptyRecording": {
-    "message": "Ништа није снимљено",
-    "description": "Error message shown when no data is recorded for a recording and it won't be added to the gallery."
-  },
-  "statusMsgRecordingStopped": {
-    "message": "Снимање је заустављено",
-    "description": "Status message for spoken feedback when video recording has been stopped."
-  },
-  "statusMsgCameraSwitched": {
-    "message": "Активна је камера $camera$",
-    "description": "Status message for spoken feedback when switching over to another camera.",
-    "placeholders": {
-      "camera": {
-        "content": "$1",
-        "example": "USB WebCam (12ab:5678) User-facing"
-      }
-    }
-  },
-  "galleryButton": {
-    "message": "Иди у галерију",
-    "description": "Label for the gallery button."
-  },
-  "deleteButton": {
-    "message": "Избриши",
-    "description": "Label for the delete button."
-  },
-  "exportButton": {
-    "message": "Извези на диск",
-    "description": "Label for the exporting button."
-  },
-  "printButton": {
-    "message": "Штампај",
-    "description": "Label for the printing button."
-  },
-  "backButton": {
-    "message": "Назад",
-    "description": "Label for the back button."
-  },
-  "galleryImages": {
-    "message": "Слике у галерији",
-    "description": "Text to speech label for the gallery list."
-  },
-  "settingsButton": {
-    "message": "Подешавања",
-    "description": "Label for the settings button."
-  },
-  "gridTypeButton": {
-    "message": "Тип мреже",
-    "description": "Label for the button of grid-type options."
-  },
-  "timerDurationButton": {
-    "message": "Трајање тајмера",
-    "description": "Label for the button of timer-duration options."
-  },
-  "feedbackButton": {
-    "message": "Пошаљи повратне информације",
-    "description": "Label for the feedback button."
-  },
-  "helpButton": {
-    "message": "Помоћ",
-    "description": "Label for the help button."
-  },
-  "labelGrid3x3": {
-    "message": "3×3",
-    "description": "Label for for grid-type: 3x3."
-  },
-  "ariaGrid3x3": {
-    "message": "3 са 3",
-    "description": "Label for spoken feedback to read out grid-type: 3x3."
-  },
-  "labelGrid4x4": {
-    "message": "4×4",
-    "description": "Label for for grid-type: 4x4."
-  },
-  "ariaGrid4x4": {
-    "message": "4 са 4",
-    "description": "Label for spoken feedback to read out grid-type: 4x4."
-  },
-  "labelGridGolden": {
-    "message": "Златни пресек",
-    "description": "Label for grid-type: golden ratio."
-  },
-  "labelTimer3s": {
-    "message": "3 секунде",
-    "description": "Label for timer-duration: 3 seconds."
-  },
-  "labelTimer10s": {
-    "message": "10 секунди",
-    "description": "Label for timer-duration: 10 seconds."
-  },
-  "takePhotoButton": {
-    "message": "Сликај",
-    "description": "Label for the shutter button to take photo."
-  },
-  "takePhotoCancelButton": {
-    "message": "Заустави снимање слике",
-    "description": "Label for the shutter button to cancel countdown timer and stop taking photo."
-  },
-  "recordVideoStartButton": {
-    "message": "Започни снимање",
-    "description": "Label for the shutter button to start recording."
-  },
-  "recordVideoStopButton": {
-    "message": "Заустави снимање",
-    "description": "Label for the shutter button to stop recording."
-  },
-  "switchCameraButton": {
-    "message": "Пређи на следећу камеру",
-    "description": "Label for the button to switch to next connected camera. Eg. switching from front facing to back facing, or a camera connected via USB. The button is shown only when more than one camera is connected."
-  },
-  "switchRecordVideoButton": {
-    "message": "Пређи на режим за снимање видеа",
-    "description": "Label for the button to switch to record video mode."
-  },
-  "switchTakePhotoButton": {
-    "message": "Пређи на режим за снимање слика",
-    "description": "Label for the button to switch to take photo mode."
-  },
-  "toggleTimerButton": {
-    "message": "Тајмер",
-    "description": "Label for the checkbox to toggle the countdown timer."
-  },
-  "toggleMirrorButton": {
-    "message": "Пресликавање",
-    "description": "Label for the checkbox to toggle the preview mirroring. Eg. if mirroring is toggled on, preview will be flipped horizontally."
-  },
-  "toggleGridButton": {
-    "message": "Мрежа",
-    "description": "Label for the checkbox to toggle the grid shown on preview."
-  },
-  "toggleMicButton": {
-    "message": "Микрофон",
-    "description": "Label for the checkbox to toggle the microphone for recording video."
-  },
-  "dialogOKButton": {
-    "message": "Потврди",
-    "description": "Label for the accepting button in the dialog."
-  },
-  "dialogCancelButton": {
-    "message": "Откажи",
-    "description": "Label for the dismissing button in the dialog."
-  },
-  "deleteConfirmationMsg": {
-    "message": "Желите ли стварно да уклоните датотеку $file$?",
-    "description": "Confirmation message before removing a selected item from the gallery. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg."
-      }
-    }
-  },
-  "deleteMultiConfirmationMsg": {
-    "message": "Желите ли стварно да уклоните ове ставке ($count$)?",
-    "description": "Confirmation message before removing multiple selected items from the gallery. Expects a file count to be passed in.",
-    "placeholders": {
-      "count": {
-        "content": "$1",
-        "example": "20."
-      }
-    }
-  },
-  "migratePicturesMsg": {
-    "message": "Слике и видео снимци који су снимљени помоћу камере ће се преместити у директоријум Преузимања. Можете да им приступите у Датотекама.\n\nАпликације са дозволама за приступ меморијском простору ће имати приступ сликама и видео снимцима.",
-    "description": "Message shown before moving all photos and videos stored in the Camera App to the Downloads folder."
-  }
-}
\ No newline at end of file
diff --git a/chrome/browser/resources/chromeos/camera/src/_locales/sv/messages.json b/chrome/browser/resources/chromeos/camera/src/_locales/sv/messages.json
deleted file mode 100644
index f753f70..0000000
--- a/chrome/browser/resources/chromeos/camera/src/_locales/sv/messages.json
+++ /dev/null
@@ -1,206 +0,0 @@
-{
-  "name": {
-    "message": "Kamera",
-    "description": "Name of the Camera App."
-  },
-  "description": {
-    "message": "Ta foton och spela in video med kameran.",
-    "description": "Short description of the Camera App."
-  },
-  "errorMsgFileSystemFailed": {
-    "message": "Fel i filsystemet.",
-    "description": "Error message shown when failing to read or write the file system."
-  },
-  "errorMsgNoCamera": {
-    "message": "Kameran är inte tillgänglig.\nKontrollera kameraanslutningen.",
-    "description": "Error message shown when it was impossible to connect to the camera due to unavailability."
-  },
-  "errorMsgGalleryExportFailed": {
-    "message": "Det gick inte att exportera $file$",
-    "description": "Error message shown when exporting to an external directory failed. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg"
-      }
-    }
-  },
-  "errorMsgSaveFileFailed": {
-    "message": "Det gick inte att spara filen",
-    "description": "Error message shown when saving/adding a image or video to the file system failed."
-  },
-  "errorMsgTakePhotoFailed": {
-    "message": "Det gick inte att ta ett foto",
-    "description": "Error message shown when failing to take photo."
-  },
-  "errorMsgRecordStartFailed": {
-    "message": "Det gick inte att starta inspelningen",
-    "description": "Error message shown when failing to start recording video."
-  },
-  "errorMsgEmptyRecording": {
-    "message": "Inget har spelats in",
-    "description": "Error message shown when no data is recorded for a recording and it won't be added to the gallery."
-  },
-  "statusMsgRecordingStopped": {
-    "message": "Inspelningen stoppad",
-    "description": "Status message for spoken feedback when video recording has been stopped."
-  },
-  "statusMsgCameraSwitched": {
-    "message": "$camera$ är aktiv",
-    "description": "Status message for spoken feedback when switching over to another camera.",
-    "placeholders": {
-      "camera": {
-        "content": "$1",
-        "example": "USB WebCam (12ab:5678) User-facing"
-      }
-    }
-  },
-  "galleryButton": {
-    "message": "Besök galleriet",
-    "description": "Label for the gallery button."
-  },
-  "deleteButton": {
-    "message": "Radera",
-    "description": "Label for the delete button."
-  },
-  "exportButton": {
-    "message": "Exportera till disk",
-    "description": "Label for the exporting button."
-  },
-  "printButton": {
-    "message": "Skriv ut",
-    "description": "Label for the printing button."
-  },
-  "backButton": {
-    "message": "Föregående",
-    "description": "Label for the back button."
-  },
-  "galleryImages": {
-    "message": "Bilder i galleriet",
-    "description": "Text to speech label for the gallery list."
-  },
-  "settingsButton": {
-    "message": "Inställningar",
-    "description": "Label for the settings button."
-  },
-  "gridTypeButton": {
-    "message": "Typ av rutnät",
-    "description": "Label for the button of grid-type options."
-  },
-  "timerDurationButton": {
-    "message": "Timerns längd",
-    "description": "Label for the button of timer-duration options."
-  },
-  "feedbackButton": {
-    "message": "Skicka feedback",
-    "description": "Label for the feedback button."
-  },
-  "helpButton": {
-    "message": "Hjälp",
-    "description": "Label for the help button."
-  },
-  "labelGrid3x3": {
-    "message": "3 × 3",
-    "description": "Label for for grid-type: 3x3."
-  },
-  "ariaGrid3x3": {
-    "message": "Tre gånger tre",
-    "description": "Label for spoken feedback to read out grid-type: 3x3."
-  },
-  "labelGrid4x4": {
-    "message": "4 × 4",
-    "description": "Label for for grid-type: 4x4."
-  },
-  "ariaGrid4x4": {
-    "message": "Fyra gånger fyra",
-    "description": "Label for spoken feedback to read out grid-type: 4x4."
-  },
-  "labelGridGolden": {
-    "message": "Gyllene snittet",
-    "description": "Label for grid-type: golden ratio."
-  },
-  "labelTimer3s": {
-    "message": "Tre sekunder",
-    "description": "Label for timer-duration: 3 seconds."
-  },
-  "labelTimer10s": {
-    "message": "Tio sekunder",
-    "description": "Label for timer-duration: 10 seconds."
-  },
-  "takePhotoButton": {
-    "message": "Ta foto",
-    "description": "Label for the shutter button to take photo."
-  },
-  "takePhotoCancelButton": {
-    "message": "Sluta ta foton",
-    "description": "Label for the shutter button to cancel countdown timer and stop taking photo."
-  },
-  "recordVideoStartButton": {
-    "message": "Börja spela in",
-    "description": "Label for the shutter button to start recording."
-  },
-  "recordVideoStopButton": {
-    "message": "Sluta spela in",
-    "description": "Label for the shutter button to stop recording."
-  },
-  "switchCameraButton": {
-    "message": "Byt till nästa kamera",
-    "description": "Label for the button to switch to next connected camera. Eg. switching from front facing to back facing, or a camera connected via USB. The button is shown only when more than one camera is connected."
-  },
-  "switchRecordVideoButton": {
-    "message": "Byt till videoinspelning",
-    "description": "Label for the button to switch to record video mode."
-  },
-  "switchTakePhotoButton": {
-    "message": "Byt till fotoläge",
-    "description": "Label for the button to switch to take photo mode."
-  },
-  "toggleTimerButton": {
-    "message": "Timer",
-    "description": "Label for the checkbox to toggle the countdown timer."
-  },
-  "toggleMirrorButton": {
-    "message": "Spegling",
-    "description": "Label for the checkbox to toggle the preview mirroring. Eg. if mirroring is toggled on, preview will be flipped horizontally."
-  },
-  "toggleGridButton": {
-    "message": "Rutnät",
-    "description": "Label for the checkbox to toggle the grid shown on preview."
-  },
-  "toggleMicButton": {
-    "message": "Mikrofon",
-    "description": "Label for the checkbox to toggle the microphone for recording video."
-  },
-  "dialogOKButton": {
-    "message": "OK",
-    "description": "Label for the accepting button in the dialog."
-  },
-  "dialogCancelButton": {
-    "message": "Avbryt",
-    "description": "Label for the dismissing button in the dialog."
-  },
-  "deleteConfirmationMsg": {
-    "message": "Vill du ta bort $file$?",
-    "description": "Confirmation message before removing a selected item from the gallery. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg."
-      }
-    }
-  },
-  "deleteMultiConfirmationMsg": {
-    "message": "Vill du ta bort $count$ objekt?",
-    "description": "Confirmation message before removing multiple selected items from the gallery. Expects a file count to be passed in.",
-    "placeholders": {
-      "count": {
-        "content": "$1",
-        "example": "20."
-      }
-    }
-  },
-  "migratePicturesMsg": {
-    "message": "Videor och foton du tagit med kameran flyttas till mappen Nedladdningar. Du kan öppna dem i Filer.\n\nFotona och videorna blir tillgängliga för appar som har åtkomstbehörighet till lagringsutrymmet.",
-    "description": "Message shown before moving all photos and videos stored in the Camera App to the Downloads folder."
-  }
-}
\ No newline at end of file
diff --git a/chrome/browser/resources/chromeos/camera/src/_locales/sw/messages.json b/chrome/browser/resources/chromeos/camera/src/_locales/sw/messages.json
deleted file mode 100644
index 651c2b0..0000000
--- a/chrome/browser/resources/chromeos/camera/src/_locales/sw/messages.json
+++ /dev/null
@@ -1,206 +0,0 @@
-{
-  "name": {
-    "message": "Kamera",
-    "description": "Name of the Camera App."
-  },
-  "description": {
-    "message": "Piga picha na urekodi video ukitumia kamera yako.",
-    "description": "Short description of the Camera App."
-  },
-  "errorMsgFileSystemFailed": {
-    "message": "Hitilafu za mfumo wa faili.",
-    "description": "Error message shown when failing to read or write the file system."
-  },
-  "errorMsgNoCamera": {
-    "message": "Kamera yako haipatikani kwa sasa.\nTafadhali angalia ikiwa umeunganisha kamera vizuri.",
-    "description": "Error message shown when it was impossible to connect to the camera due to unavailability."
-  },
-  "errorMsgGalleryExportFailed": {
-    "message": "Imeshindwa kutuma $file$",
-    "description": "Error message shown when exporting to an external directory failed. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg"
-      }
-    }
-  },
-  "errorMsgSaveFileFailed": {
-    "message": "Imeshindwa kuhifadhi faili",
-    "description": "Error message shown when saving/adding a image or video to the file system failed."
-  },
-  "errorMsgTakePhotoFailed": {
-    "message": "Imeshindwa kupiga picha",
-    "description": "Error message shown when failing to take photo."
-  },
-  "errorMsgRecordStartFailed": {
-    "message": "Imeshindwa kuanza kurekodi",
-    "description": "Error message shown when failing to start recording video."
-  },
-  "errorMsgEmptyRecording": {
-    "message": "Haijarekodi chochote",
-    "description": "Error message shown when no data is recorded for a recording and it won't be added to the gallery."
-  },
-  "statusMsgRecordingStopped": {
-    "message": "Imeacha kurekodi",
-    "description": "Status message for spoken feedback when video recording has been stopped."
-  },
-  "statusMsgCameraSwitched": {
-    "message": "$camera$ inatumika",
-    "description": "Status message for spoken feedback when switching over to another camera.",
-    "placeholders": {
-      "camera": {
-        "content": "$1",
-        "example": "USB WebCam (12ab:5678) User-facing"
-      }
-    }
-  },
-  "galleryButton": {
-    "message": "Nenda kwenye matunzio",
-    "description": "Label for the gallery button."
-  },
-  "deleteButton": {
-    "message": "Futa",
-    "description": "Label for the delete button."
-  },
-  "exportButton": {
-    "message": "Hamishia kwenye diski",
-    "description": "Label for the exporting button."
-  },
-  "printButton": {
-    "message": "Chapisha",
-    "description": "Label for the printing button."
-  },
-  "backButton": {
-    "message": "Rudi nyuma",
-    "description": "Label for the back button."
-  },
-  "galleryImages": {
-    "message": "Picha za matunzio",
-    "description": "Text to speech label for the gallery list."
-  },
-  "settingsButton": {
-    "message": "Mipangilio",
-    "description": "Label for the settings button."
-  },
-  "gridTypeButton": {
-    "message": "Aina ya gridi",
-    "description": "Label for the button of grid-type options."
-  },
-  "timerDurationButton": {
-    "message": "Urefu wa kipima muda",
-    "description": "Label for the button of timer-duration options."
-  },
-  "feedbackButton": {
-    "message": "Tuma maoni",
-    "description": "Label for the feedback button."
-  },
-  "helpButton": {
-    "message": "Usaidizi",
-    "description": "Label for the help button."
-  },
-  "labelGrid3x3": {
-    "message": "3 x 3",
-    "description": "Label for for grid-type: 3x3."
-  },
-  "ariaGrid3x3": {
-    "message": "3 kwa 3",
-    "description": "Label for spoken feedback to read out grid-type: 3x3."
-  },
-  "labelGrid4x4": {
-    "message": "4 x 4",
-    "description": "Label for for grid-type: 4x4."
-  },
-  "ariaGrid4x4": {
-    "message": "4 kwa 4",
-    "description": "Label for spoken feedback to read out grid-type: 4x4."
-  },
-  "labelGridGolden": {
-    "message": "Uwiano mkuu",
-    "description": "Label for grid-type: golden ratio."
-  },
-  "labelTimer3s": {
-    "message": "Sekunde 3",
-    "description": "Label for timer-duration: 3 seconds."
-  },
-  "labelTimer10s": {
-    "message": "Sekunde 10",
-    "description": "Label for timer-duration: 10 seconds."
-  },
-  "takePhotoButton": {
-    "message": "Piga picha",
-    "description": "Label for the shutter button to take photo."
-  },
-  "takePhotoCancelButton": {
-    "message": "Acha kupiga picha",
-    "description": "Label for the shutter button to cancel countdown timer and stop taking photo."
-  },
-  "recordVideoStartButton": {
-    "message": "Anza kurekodi",
-    "description": "Label for the shutter button to start recording."
-  },
-  "recordVideoStopButton": {
-    "message": "Acha kurekodi",
-    "description": "Label for the shutter button to stop recording."
-  },
-  "switchCameraButton": {
-    "message": "Tumia kamera inayofuata",
-    "description": "Label for the button to switch to next connected camera. Eg. switching from front facing to back facing, or a camera connected via USB. The button is shown only when more than one camera is connected."
-  },
-  "switchRecordVideoButton": {
-    "message": "Rekodi video",
-    "description": "Label for the button to switch to record video mode."
-  },
-  "switchTakePhotoButton": {
-    "message": "Piga picha",
-    "description": "Label for the button to switch to take photo mode."
-  },
-  "toggleTimerButton": {
-    "message": "Kipima muda",
-    "description": "Label for the checkbox to toggle the countdown timer."
-  },
-  "toggleMirrorButton": {
-    "message": "Uakisi",
-    "description": "Label for the checkbox to toggle the preview mirroring. Eg. if mirroring is toggled on, preview will be flipped horizontally."
-  },
-  "toggleGridButton": {
-    "message": "Gridi",
-    "description": "Label for the checkbox to toggle the grid shown on preview."
-  },
-  "toggleMicButton": {
-    "message": "Maikrofoni",
-    "description": "Label for the checkbox to toggle the microphone for recording video."
-  },
-  "dialogOKButton": {
-    "message": "Sawa",
-    "description": "Label for the accepting button in the dialog."
-  },
-  "dialogCancelButton": {
-    "message": "Ghairi",
-    "description": "Label for the dismissing button in the dialog."
-  },
-  "deleteConfirmationMsg": {
-    "message": "Una uhakika ungependa kuondoa $file$ kwenye matunzio?",
-    "description": "Confirmation message before removing a selected item from the gallery. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg."
-      }
-    }
-  },
-  "deleteMultiConfirmationMsg": {
-    "message": "Una uhakika ungependa kuondoa vipengee $count$?",
-    "description": "Confirmation message before removing multiple selected items from the gallery. Expects a file count to be passed in.",
-    "placeholders": {
-      "count": {
-        "content": "$1",
-        "example": "20."
-      }
-    }
-  },
-  "migratePicturesMsg": {
-    "message": "Picha na video zinazopigwa kwa kamera zitahamishiwa kwenye folda ya Vipakuliwa. Unaweza kuzifikia kwenye Faili.\n\nProgramu zilizo na ruhusa za hifadhi zitaweza kufikia picha na video zako.",
-    "description": "Message shown before moving all photos and videos stored in the Camera App to the Downloads folder."
-  }
-}
\ No newline at end of file
diff --git a/chrome/browser/resources/chromeos/camera/src/_locales/ta/messages.json b/chrome/browser/resources/chromeos/camera/src/_locales/ta/messages.json
deleted file mode 100644
index da7a9f0..0000000
--- a/chrome/browser/resources/chromeos/camera/src/_locales/ta/messages.json
+++ /dev/null
@@ -1,206 +0,0 @@
-{
-  "name": {
-    "message": "கேமரா",
-    "description": "Name of the Camera App."
-  },
-  "description": {
-    "message": "உங்கள் கேமராவைப் பயன்படுத்தி, படங்களை எடுக்கலாம், வீடியோக்களை ரெக்கார்டு செய்யலாம்.",
-    "description": "Short description of the Camera App."
-  },
-  "errorMsgFileSystemFailed": {
-    "message": "கோப்பு அமைப்புப் பிழைகள்.",
-    "description": "Error message shown when failing to read or write the file system."
-  },
-  "errorMsgNoCamera": {
-    "message": "உங்கள் கேமரா தற்போது கிடைக்கவில்லை.\nஅது சரியாக இணைக்கப்பட்டுள்ளதா எனச் சரிபார்க்கவும்.",
-    "description": "Error message shown when it was impossible to connect to the camera due to unavailability."
-  },
-  "errorMsgGalleryExportFailed": {
-    "message": "$file$ஐ இடமாற்ற முடியவில்லை",
-    "description": "Error message shown when exporting to an external directory failed. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg"
-      }
-    }
-  },
-  "errorMsgSaveFileFailed": {
-    "message": "கோப்பைச் சேமிக்க முடியவில்லை",
-    "description": "Error message shown when saving/adding a image or video to the file system failed."
-  },
-  "errorMsgTakePhotoFailed": {
-    "message": "படம் எடுக்க முடியவில்லை",
-    "description": "Error message shown when failing to take photo."
-  },
-  "errorMsgRecordStartFailed": {
-    "message": "ரெக்கார்டு செய்ய முடியவில்லை",
-    "description": "Error message shown when failing to start recording video."
-  },
-  "errorMsgEmptyRecording": {
-    "message": "எதுவும் ரெக்கார்டு செய்யப்படவில்லை",
-    "description": "Error message shown when no data is recorded for a recording and it won't be added to the gallery."
-  },
-  "statusMsgRecordingStopped": {
-    "message": "ரெக்கார்டு செய்வது நிறுத்தப்பட்டது",
-    "description": "Status message for spoken feedback when video recording has been stopped."
-  },
-  "statusMsgCameraSwitched": {
-    "message": "$camera$ செயலிலுள்ளது",
-    "description": "Status message for spoken feedback when switching over to another camera.",
-    "placeholders": {
-      "camera": {
-        "content": "$1",
-        "example": "USB WebCam (12ab:5678) User-facing"
-      }
-    }
-  },
-  "galleryButton": {
-    "message": "கேலரிக்குச் செல்",
-    "description": "Label for the gallery button."
-  },
-  "deleteButton": {
-    "message": "நீக்கு",
-    "description": "Label for the delete button."
-  },
-  "exportButton": {
-    "message": "வட்டுக்கு இடமாற்று",
-    "description": "Label for the exporting button."
-  },
-  "printButton": {
-    "message": "அச்சிடு",
-    "description": "Label for the printing button."
-  },
-  "backButton": {
-    "message": "பின்செல்",
-    "description": "Label for the back button."
-  },
-  "galleryImages": {
-    "message": "கேலரியிலுள்ள படங்கள்",
-    "description": "Text to speech label for the gallery list."
-  },
-  "settingsButton": {
-    "message": "அமைப்புகள்",
-    "description": "Label for the settings button."
-  },
-  "gridTypeButton": {
-    "message": "கட்ட வகை",
-    "description": "Label for the button of grid-type options."
-  },
-  "timerDurationButton": {
-    "message": "டைமர் காலஅளவு",
-    "description": "Label for the button of timer-duration options."
-  },
-  "feedbackButton": {
-    "message": "கருத்து அனுப்புக",
-    "description": "Label for the feedback button."
-  },
-  "helpButton": {
-    "message": "உதவி",
-    "description": "Label for the help button."
-  },
-  "labelGrid3x3": {
-    "message": "3 x 3",
-    "description": "Label for for grid-type: 3x3."
-  },
-  "ariaGrid3x3": {
-    "message": "3 x 3",
-    "description": "Label for spoken feedback to read out grid-type: 3x3."
-  },
-  "labelGrid4x4": {
-    "message": "4 x 4",
-    "description": "Label for for grid-type: 4x4."
-  },
-  "ariaGrid4x4": {
-    "message": "4 x 4",
-    "description": "Label for spoken feedback to read out grid-type: 4x4."
-  },
-  "labelGridGolden": {
-    "message": "கோல்டன் ரேஷியோ",
-    "description": "Label for grid-type: golden ratio."
-  },
-  "labelTimer3s": {
-    "message": "3 வினாடிகள்",
-    "description": "Label for timer-duration: 3 seconds."
-  },
-  "labelTimer10s": {
-    "message": "10 வினாடிகள்",
-    "description": "Label for timer-duration: 10 seconds."
-  },
-  "takePhotoButton": {
-    "message": "படமெடு",
-    "description": "Label for the shutter button to take photo."
-  },
-  "takePhotoCancelButton": {
-    "message": "படமெடுப்பதை நிறுத்து",
-    "description": "Label for the shutter button to cancel countdown timer and stop taking photo."
-  },
-  "recordVideoStartButton": {
-    "message": "ரெக்கார்டு செய்யத் தொடங்கு",
-    "description": "Label for the shutter button to start recording."
-  },
-  "recordVideoStopButton": {
-    "message": "ரெக்கார்டு செய்வதை நிறுத்து",
-    "description": "Label for the shutter button to stop recording."
-  },
-  "switchCameraButton": {
-    "message": "அடுத்த கேமராவுக்கு மாறு",
-    "description": "Label for the button to switch to next connected camera. Eg. switching from front facing to back facing, or a camera connected via USB. The button is shown only when more than one camera is connected."
-  },
-  "switchRecordVideoButton": {
-    "message": "வீடியோவை ரெக்கார்டு செய்யும் பயன்முறைக்கு மாறு",
-    "description": "Label for the button to switch to record video mode."
-  },
-  "switchTakePhotoButton": {
-    "message": "படமெடுக்கும் பயன்முறைக்கு மாறு",
-    "description": "Label for the button to switch to take photo mode."
-  },
-  "toggleTimerButton": {
-    "message": "டைமர்",
-    "description": "Label for the checkbox to toggle the countdown timer."
-  },
-  "toggleMirrorButton": {
-    "message": "பிரதிபலித்தல்",
-    "description": "Label for the checkbox to toggle the preview mirroring. Eg. if mirroring is toggled on, preview will be flipped horizontally."
-  },
-  "toggleGridButton": {
-    "message": "கட்டம்",
-    "description": "Label for the checkbox to toggle the grid shown on preview."
-  },
-  "toggleMicButton": {
-    "message": "மைக்ரோஃபோன்",
-    "description": "Label for the checkbox to toggle the microphone for recording video."
-  },
-  "dialogOKButton": {
-    "message": "சரி",
-    "description": "Label for the accepting button in the dialog."
-  },
-  "dialogCancelButton": {
-    "message": "ரத்துசெய்",
-    "description": "Label for the dismissing button in the dialog."
-  },
-  "deleteConfirmationMsg": {
-    "message": "$file$ஐ நிச்சயமாக அகற்ற விரும்புகிறீர்களா?",
-    "description": "Confirmation message before removing a selected item from the gallery. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg."
-      }
-    }
-  },
-  "deleteMultiConfirmationMsg": {
-    "message": "$count$ உருப்படிகளை நிச்சயமாக அகற்ற விரும்புகிறீர்களா?",
-    "description": "Confirmation message before removing multiple selected items from the gallery. Expects a file count to be passed in.",
-    "placeholders": {
-      "count": {
-        "content": "$1",
-        "example": "20."
-      }
-    }
-  },
-  "migratePicturesMsg": {
-    "message": "கேமராவில் எடுக்கப்படும் படங்களும் வீடியோக்களும் ‘பதிவிறக்கங்கள்’ கோப்புறைக்கு நகர்த்தப்படும். அவற்றை ‘Files’ என்பதில் பார்க்கலாம்.\n\nசேமிப்பக அனுமதிகள் உள்ள ஆப்ஸால் உங்கள் படங்களையும் வீடியோக்களையும் அணுக முடியும்.",
-    "description": "Message shown before moving all photos and videos stored in the Camera App to the Downloads folder."
-  }
-}
\ No newline at end of file
diff --git a/chrome/browser/resources/chromeos/camera/src/_locales/te/messages.json b/chrome/browser/resources/chromeos/camera/src/_locales/te/messages.json
deleted file mode 100644
index 8930130..0000000
--- a/chrome/browser/resources/chromeos/camera/src/_locales/te/messages.json
+++ /dev/null
@@ -1,206 +0,0 @@
-{
-  "name": {
-    "message": "కెమెరా",
-    "description": "Name of the Camera App."
-  },
-  "description": {
-    "message": "మీ కెమెరాతో ఫోటోలను తీయండి, వీడియోలను రికార్డ్ చేయండి.",
-    "description": "Short description of the Camera App."
-  },
-  "errorMsgFileSystemFailed": {
-    "message": "ఫైల్ సిస్టమ్ ఎర్రర్‌లు.",
-    "description": "Error message shown when failing to read or write the file system."
-  },
-  "errorMsgNoCamera": {
-    "message": "మీ కెమెరా ప్రస్తుతం అందుబాటులో లేదు.\nకెమెరా సరిగ్గా కనెక్ట్ చేయబడిందో లేదో తనిఖీ చేయండి.",
-    "description": "Error message shown when it was impossible to connect to the camera due to unavailability."
-  },
-  "errorMsgGalleryExportFailed": {
-    "message": "$file$ను ఎగుమతి చేయడం సాధ్యం కాలేదు",
-    "description": "Error message shown when exporting to an external directory failed. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg"
-      }
-    }
-  },
-  "errorMsgSaveFileFailed": {
-    "message": "ఫైల్‌ను సేవ్ చేయడం సాధ్యం కాలేదు",
-    "description": "Error message shown when saving/adding a image or video to the file system failed."
-  },
-  "errorMsgTakePhotoFailed": {
-    "message": "ఫోటోను తీయడం సాధ్యం కాలేదు",
-    "description": "Error message shown when failing to take photo."
-  },
-  "errorMsgRecordStartFailed": {
-    "message": "రికార్డింగ్‌ను ప్రారంభించడం సాధ్యం కాలేదు",
-    "description": "Error message shown when failing to start recording video."
-  },
-  "errorMsgEmptyRecording": {
-    "message": "ఏదీ రికార్డ్ చేయబడలేదు",
-    "description": "Error message shown when no data is recorded for a recording and it won't be added to the gallery."
-  },
-  "statusMsgRecordingStopped": {
-    "message": "రికార్డింగ్ ఆపివేయబడింది",
-    "description": "Status message for spoken feedback when video recording has been stopped."
-  },
-  "statusMsgCameraSwitched": {
-    "message": "$camera$ యాక్టివ్‌గా ఉంది",
-    "description": "Status message for spoken feedback when switching over to another camera.",
-    "placeholders": {
-      "camera": {
-        "content": "$1",
-        "example": "USB WebCam (12ab:5678) User-facing"
-      }
-    }
-  },
-  "galleryButton": {
-    "message": "గ్యాలరీకి వెళ్లు",
-    "description": "Label for the gallery button."
-  },
-  "deleteButton": {
-    "message": "తొలగించు",
-    "description": "Label for the delete button."
-  },
-  "exportButton": {
-    "message": "డిస్క్‌కి ఎగుమతి చేయి",
-    "description": "Label for the exporting button."
-  },
-  "printButton": {
-    "message": "ముద్రించు",
-    "description": "Label for the printing button."
-  },
-  "backButton": {
-    "message": "వెనుకకు వెళ్లు",
-    "description": "Label for the back button."
-  },
-  "galleryImages": {
-    "message": "గ్యాలరీ చిత్రాలు",
-    "description": "Text to speech label for the gallery list."
-  },
-  "settingsButton": {
-    "message": "సెట్టింగ్‌లు",
-    "description": "Label for the settings button."
-  },
-  "gridTypeButton": {
-    "message": "గ్రిడ్ రకం",
-    "description": "Label for the button of grid-type options."
-  },
-  "timerDurationButton": {
-    "message": "టైమర్ వ్యవధి",
-    "description": "Label for the button of timer-duration options."
-  },
-  "feedbackButton": {
-    "message": "అభిప్రాయాన్ని పంపు",
-    "description": "Label for the feedback button."
-  },
-  "helpButton": {
-    "message": "సహాయం",
-    "description": "Label for the help button."
-  },
-  "labelGrid3x3": {
-    "message": "3 x 3",
-    "description": "Label for for grid-type: 3x3."
-  },
-  "ariaGrid3x3": {
-    "message": "3 x 3",
-    "description": "Label for spoken feedback to read out grid-type: 3x3."
-  },
-  "labelGrid4x4": {
-    "message": "4 x 4",
-    "description": "Label for for grid-type: 4x4."
-  },
-  "ariaGrid4x4": {
-    "message": "4 x 4",
-    "description": "Label for spoken feedback to read out grid-type: 4x4."
-  },
-  "labelGridGolden": {
-    "message": "గోల్డెన్ రేషియో‌",
-    "description": "Label for grid-type: golden ratio."
-  },
-  "labelTimer3s": {
-    "message": "3 సెకన్లు",
-    "description": "Label for timer-duration: 3 seconds."
-  },
-  "labelTimer10s": {
-    "message": "10 సెకన్లు",
-    "description": "Label for timer-duration: 10 seconds."
-  },
-  "takePhotoButton": {
-    "message": "ఫోటోను తీయి",
-    "description": "Label for the shutter button to take photo."
-  },
-  "takePhotoCancelButton": {
-    "message": "ఫోటోను తీయడం ఆపివేయి",
-    "description": "Label for the shutter button to cancel countdown timer and stop taking photo."
-  },
-  "recordVideoStartButton": {
-    "message": "రికార్డింగ్‌ను ప్రారంభించు",
-    "description": "Label for the shutter button to start recording."
-  },
-  "recordVideoStopButton": {
-    "message": "రికార్డ్ చేయడం ఆపివేయి",
-    "description": "Label for the shutter button to stop recording."
-  },
-  "switchCameraButton": {
-    "message": "తర్వాతి కెమెరాకు మారండి",
-    "description": "Label for the button to switch to next connected camera. Eg. switching from front facing to back facing, or a camera connected via USB. The button is shown only when more than one camera is connected."
-  },
-  "switchRecordVideoButton": {
-    "message": "వీడియో రికార్డింగ్ మోడ్‌కు మారండి",
-    "description": "Label for the button to switch to record video mode."
-  },
-  "switchTakePhotoButton": {
-    "message": "ఫోటో మోడ్‌కు మారండి",
-    "description": "Label for the button to switch to take photo mode."
-  },
-  "toggleTimerButton": {
-    "message": "టైమర్",
-    "description": "Label for the checkbox to toggle the countdown timer."
-  },
-  "toggleMirrorButton": {
-    "message": "మిర్రరింగ్",
-    "description": "Label for the checkbox to toggle the preview mirroring. Eg. if mirroring is toggled on, preview will be flipped horizontally."
-  },
-  "toggleGridButton": {
-    "message": "గ్రిడ్",
-    "description": "Label for the checkbox to toggle the grid shown on preview."
-  },
-  "toggleMicButton": {
-    "message": "మైక్రోఫోన్",
-    "description": "Label for the checkbox to toggle the microphone for recording video."
-  },
-  "dialogOKButton": {
-    "message": "సరే",
-    "description": "Label for the accepting button in the dialog."
-  },
-  "dialogCancelButton": {
-    "message": "రద్దు చేయి",
-    "description": "Label for the dismissing button in the dialog."
-  },
-  "deleteConfirmationMsg": {
-    "message": "మీరు $file$ని నిజంగా తీసివేయాలనుకుంటున్నారా?",
-    "description": "Confirmation message before removing a selected item from the gallery. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg."
-      }
-    }
-  },
-  "deleteMultiConfirmationMsg": {
-    "message": "మీరు $count$ అంశాలను నిజంగా తీసివేయాలనుకుంటున్నారా?",
-    "description": "Confirmation message before removing multiple selected items from the gallery. Expects a file count to be passed in.",
-    "placeholders": {
-      "count": {
-        "content": "$1",
-        "example": "20."
-      }
-    }
-  },
-  "migratePicturesMsg": {
-    "message": "కెమెరాతో తీసిన ఫోటోలు మరియు వీడియోలు, డౌన్‌లోడ్‌లు ఫోల్డర్‌కు తరలించబడతాయి. మీరు వాటిని ఫైల్స్‌లో యాక్సెస్ చేయవచ్చు. నిల్వ అనుమతులు కలిగిన యాప్‌లు మీ ఫోటోలు మరియు వీడియోలను యాక్సెస్ చేయగలుగుతాయి.",
-    "description": "Message shown before moving all photos and videos stored in the Camera App to the Downloads folder."
-  }
-}
\ No newline at end of file
diff --git a/chrome/browser/resources/chromeos/camera/src/_locales/th/messages.json b/chrome/browser/resources/chromeos/camera/src/_locales/th/messages.json
deleted file mode 100644
index 87e4017..0000000
--- a/chrome/browser/resources/chromeos/camera/src/_locales/th/messages.json
+++ /dev/null
@@ -1,206 +0,0 @@
-{
-  "name": {
-    "message": "กล้อง",
-    "description": "Name of the Camera App."
-  },
-  "description": {
-    "message": "ถ่ายภาพและบันทึกวิดีโอด้วยกล้อง",
-    "description": "Short description of the Camera App."
-  },
-  "errorMsgFileSystemFailed": {
-    "message": "ข้อผิดพลาดเกี่ยวกับระบบไฟล์",
-    "description": "Error message shown when failing to read or write the file system."
-  },
-  "errorMsgNoCamera": {
-    "message": "ขณะนี้กล้องไม่พร้อมใช้งาน\nโปรดตรวจสอบว่ากล้องเชื่อมต่ออย่างถูกต้อง",
-    "description": "Error message shown when it was impossible to connect to the camera due to unavailability."
-  },
-  "errorMsgGalleryExportFailed": {
-    "message": "ส่งออก $file$ ไม่ได้",
-    "description": "Error message shown when exporting to an external directory failed. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg"
-      }
-    }
-  },
-  "errorMsgSaveFileFailed": {
-    "message": "บันทึกไฟล์ไม่ได้",
-    "description": "Error message shown when saving/adding a image or video to the file system failed."
-  },
-  "errorMsgTakePhotoFailed": {
-    "message": "ถ่ายภาพไม่ได้",
-    "description": "Error message shown when failing to take photo."
-  },
-  "errorMsgRecordStartFailed": {
-    "message": "เริ่มบันทึกวิดีโอไม่ได้",
-    "description": "Error message shown when failing to start recording video."
-  },
-  "errorMsgEmptyRecording": {
-    "message": "ไม่ได้บันทึกข้อมูลใด",
-    "description": "Error message shown when no data is recorded for a recording and it won't be added to the gallery."
-  },
-  "statusMsgRecordingStopped": {
-    "message": "หยุดบันทึกวิดีโอแล้ว",
-    "description": "Status message for spoken feedback when video recording has been stopped."
-  },
-  "statusMsgCameraSwitched": {
-    "message": "$camera$ ทำงาน",
-    "description": "Status message for spoken feedback when switching over to another camera.",
-    "placeholders": {
-      "camera": {
-        "content": "$1",
-        "example": "USB WebCam (12ab:5678) User-facing"
-      }
-    }
-  },
-  "galleryButton": {
-    "message": "ไปที่แกลเลอรี",
-    "description": "Label for the gallery button."
-  },
-  "deleteButton": {
-    "message": "ลบ",
-    "description": "Label for the delete button."
-  },
-  "exportButton": {
-    "message": "ส่งออกไปยังดิสก์",
-    "description": "Label for the exporting button."
-  },
-  "printButton": {
-    "message": "พิมพ์",
-    "description": "Label for the printing button."
-  },
-  "backButton": {
-    "message": "กลับ",
-    "description": "Label for the back button."
-  },
-  "galleryImages": {
-    "message": "รูปภาพในแกลเลอรี",
-    "description": "Text to speech label for the gallery list."
-  },
-  "settingsButton": {
-    "message": "การตั้งค่า",
-    "description": "Label for the settings button."
-  },
-  "gridTypeButton": {
-    "message": "ประเภทตารางกริด",
-    "description": "Label for the button of grid-type options."
-  },
-  "timerDurationButton": {
-    "message": "ระยะเวลาของตัวจับเวลา",
-    "description": "Label for the button of timer-duration options."
-  },
-  "feedbackButton": {
-    "message": "ส่งความคิดเห็น",
-    "description": "Label for the feedback button."
-  },
-  "helpButton": {
-    "message": "ความช่วยเหลือ",
-    "description": "Label for the help button."
-  },
-  "labelGrid3x3": {
-    "message": "3 x 3",
-    "description": "Label for for grid-type: 3x3."
-  },
-  "ariaGrid3x3": {
-    "message": "3 x 3",
-    "description": "Label for spoken feedback to read out grid-type: 3x3."
-  },
-  "labelGrid4x4": {
-    "message": "4 x 4",
-    "description": "Label for for grid-type: 4x4."
-  },
-  "ariaGrid4x4": {
-    "message": "4 x 4",
-    "description": "Label for spoken feedback to read out grid-type: 4x4."
-  },
-  "labelGridGolden": {
-    "message": "อัตราส่วนทองคำ",
-    "description": "Label for grid-type: golden ratio."
-  },
-  "labelTimer3s": {
-    "message": "3 วินาที",
-    "description": "Label for timer-duration: 3 seconds."
-  },
-  "labelTimer10s": {
-    "message": "10 วินาที",
-    "description": "Label for timer-duration: 10 seconds."
-  },
-  "takePhotoButton": {
-    "message": "ถ่ายภาพ",
-    "description": "Label for the shutter button to take photo."
-  },
-  "takePhotoCancelButton": {
-    "message": "หยุดถ่ายภาพ",
-    "description": "Label for the shutter button to cancel countdown timer and stop taking photo."
-  },
-  "recordVideoStartButton": {
-    "message": "เริ่มบันทึก",
-    "description": "Label for the shutter button to start recording."
-  },
-  "recordVideoStopButton": {
-    "message": "หยุดบันทึก",
-    "description": "Label for the shutter button to stop recording."
-  },
-  "switchCameraButton": {
-    "message": "เปลี่ยนไปใช้กล้องถัดไป",
-    "description": "Label for the button to switch to next connected camera. Eg. switching from front facing to back facing, or a camera connected via USB. The button is shown only when more than one camera is connected."
-  },
-  "switchRecordVideoButton": {
-    "message": "เปลี่ยนเป็นโหมดบันทึกวิดีโอ",
-    "description": "Label for the button to switch to record video mode."
-  },
-  "switchTakePhotoButton": {
-    "message": "เปลี่ยนเป็นโหมดถ่ายภาพ",
-    "description": "Label for the button to switch to take photo mode."
-  },
-  "toggleTimerButton": {
-    "message": "ตัวจับเวลา",
-    "description": "Label for the checkbox to toggle the countdown timer."
-  },
-  "toggleMirrorButton": {
-    "message": "การมิเรอร์",
-    "description": "Label for the checkbox to toggle the preview mirroring. Eg. if mirroring is toggled on, preview will be flipped horizontally."
-  },
-  "toggleGridButton": {
-    "message": "ตารางกริด",
-    "description": "Label for the checkbox to toggle the grid shown on preview."
-  },
-  "toggleMicButton": {
-    "message": "ไมโครโฟน",
-    "description": "Label for the checkbox to toggle the microphone for recording video."
-  },
-  "dialogOKButton": {
-    "message": "ตกลง",
-    "description": "Label for the accepting button in the dialog."
-  },
-  "dialogCancelButton": {
-    "message": "ยกเลิก",
-    "description": "Label for the dismissing button in the dialog."
-  },
-  "deleteConfirmationMsg": {
-    "message": "คุณต้องการนำ $file$ ออกจริงๆ ใช่ไหม",
-    "description": "Confirmation message before removing a selected item from the gallery. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg."
-      }
-    }
-  },
-  "deleteMultiConfirmationMsg": {
-    "message": "คุณต้องการนำ $count$ รายการออกจริงๆ ใช่ไหม",
-    "description": "Confirmation message before removing multiple selected items from the gallery. Expects a file count to be passed in.",
-    "placeholders": {
-      "count": {
-        "content": "$1",
-        "example": "20."
-      }
-    }
-  },
-  "migratePicturesMsg": {
-    "message": "รูปภาพและวิดีโอที่ถ่ายจากกล้องจะย้ายไปยังโฟลเดอร์ \"ดาวน์โหลด\" คุณจะเข้าถึงรายการเหล่านี้ได้ในแอป Files\n\nแอปที่มีสิทธิ์ในพื้นที่เก็บข้อมูลจะเข้าถึงรูปภาพและวิดีโอของคุณได้",
-    "description": "Message shown before moving all photos and videos stored in the Camera App to the Downloads folder."
-  }
-}
\ No newline at end of file
diff --git a/chrome/browser/resources/chromeos/camera/src/_locales/tr/messages.json b/chrome/browser/resources/chromeos/camera/src/_locales/tr/messages.json
deleted file mode 100644
index fc93ecc..0000000
--- a/chrome/browser/resources/chromeos/camera/src/_locales/tr/messages.json
+++ /dev/null
@@ -1,206 +0,0 @@
-{
-  "name": {
-    "message": "Kamera",
-    "description": "Name of the Camera App."
-  },
-  "description": {
-    "message": "Kameranızla fotoğraf çekin ve video kaydedin.",
-    "description": "Short description of the Camera App."
-  },
-  "errorMsgFileSystemFailed": {
-    "message": "Dosya sistemi hataları.",
-    "description": "Error message shown when failing to read or write the file system."
-  },
-  "errorMsgNoCamera": {
-    "message": "Kameranız şu anda kullanılamıyor.\nLütfen kameranın bağlı olup olmadığını kontrol edin.",
-    "description": "Error message shown when it was impossible to connect to the camera due to unavailability."
-  },
-  "errorMsgGalleryExportFailed": {
-    "message": "$file$ dışa aktarılamıyor.",
-    "description": "Error message shown when exporting to an external directory failed. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg"
-      }
-    }
-  },
-  "errorMsgSaveFileFailed": {
-    "message": "Dosya kaydedilemiyor",
-    "description": "Error message shown when saving/adding a image or video to the file system failed."
-  },
-  "errorMsgTakePhotoFailed": {
-    "message": "Fotoğraf çekilemiyor",
-    "description": "Error message shown when failing to take photo."
-  },
-  "errorMsgRecordStartFailed": {
-    "message": "Kayıt başlatılamıyor",
-    "description": "Error message shown when failing to start recording video."
-  },
-  "errorMsgEmptyRecording": {
-    "message": "Hiçbir şey kaydedilmedi",
-    "description": "Error message shown when no data is recorded for a recording and it won't be added to the gallery."
-  },
-  "statusMsgRecordingStopped": {
-    "message": "Kayıt durduruldu",
-    "description": "Status message for spoken feedback when video recording has been stopped."
-  },
-  "statusMsgCameraSwitched": {
-    "message": "$camera$ etkin",
-    "description": "Status message for spoken feedback when switching over to another camera.",
-    "placeholders": {
-      "camera": {
-        "content": "$1",
-        "example": "USB WebCam (12ab:5678) User-facing"
-      }
-    }
-  },
-  "galleryButton": {
-    "message": "Galeriye git",
-    "description": "Label for the gallery button."
-  },
-  "deleteButton": {
-    "message": "Sil",
-    "description": "Label for the delete button."
-  },
-  "exportButton": {
-    "message": "Diske aktar",
-    "description": "Label for the exporting button."
-  },
-  "printButton": {
-    "message": "Yazdır",
-    "description": "Label for the printing button."
-  },
-  "backButton": {
-    "message": "Geri dön",
-    "description": "Label for the back button."
-  },
-  "galleryImages": {
-    "message": "Galeri resimleri",
-    "description": "Text to speech label for the gallery list."
-  },
-  "settingsButton": {
-    "message": "Ayarlar",
-    "description": "Label for the settings button."
-  },
-  "gridTypeButton": {
-    "message": "Kılavuz türü",
-    "description": "Label for the button of grid-type options."
-  },
-  "timerDurationButton": {
-    "message": "Zamanlayıcı süresi",
-    "description": "Label for the button of timer-duration options."
-  },
-  "feedbackButton": {
-    "message": "Geri bildirim gönder",
-    "description": "Label for the feedback button."
-  },
-  "helpButton": {
-    "message": "Yardım",
-    "description": "Label for the help button."
-  },
-  "labelGrid3x3": {
-    "message": "3 x 3",
-    "description": "Label for for grid-type: 3x3."
-  },
-  "ariaGrid3x3": {
-    "message": "3'e 3",
-    "description": "Label for spoken feedback to read out grid-type: 3x3."
-  },
-  "labelGrid4x4": {
-    "message": "4 x 4",
-    "description": "Label for for grid-type: 4x4."
-  },
-  "ariaGrid4x4": {
-    "message": "4'e 4",
-    "description": "Label for spoken feedback to read out grid-type: 4x4."
-  },
-  "labelGridGolden": {
-    "message": "Altın oran",
-    "description": "Label for grid-type: golden ratio."
-  },
-  "labelTimer3s": {
-    "message": "3 saniye",
-    "description": "Label for timer-duration: 3 seconds."
-  },
-  "labelTimer10s": {
-    "message": "10 saniye",
-    "description": "Label for timer-duration: 10 seconds."
-  },
-  "takePhotoButton": {
-    "message": "Fotoğraf çek",
-    "description": "Label for the shutter button to take photo."
-  },
-  "takePhotoCancelButton": {
-    "message": "Fotoğraf çekmeyi durdur",
-    "description": "Label for the shutter button to cancel countdown timer and stop taking photo."
-  },
-  "recordVideoStartButton": {
-    "message": "Kaydı başlat",
-    "description": "Label for the shutter button to start recording."
-  },
-  "recordVideoStopButton": {
-    "message": "Kaydı durdur",
-    "description": "Label for the shutter button to stop recording."
-  },
-  "switchCameraButton": {
-    "message": "Sonraki kameraya geç",
-    "description": "Label for the button to switch to next connected camera. Eg. switching from front facing to back facing, or a camera connected via USB. The button is shown only when more than one camera is connected."
-  },
-  "switchRecordVideoButton": {
-    "message": "Video kaydetmeye geç",
-    "description": "Label for the button to switch to record video mode."
-  },
-  "switchTakePhotoButton": {
-    "message": "Fotoğraf çekmeye geç",
-    "description": "Label for the button to switch to take photo mode."
-  },
-  "toggleTimerButton": {
-    "message": "Zamanlayıcı",
-    "description": "Label for the checkbox to toggle the countdown timer."
-  },
-  "toggleMirrorButton": {
-    "message": "Yansıtma",
-    "description": "Label for the checkbox to toggle the preview mirroring. Eg. if mirroring is toggled on, preview will be flipped horizontally."
-  },
-  "toggleGridButton": {
-    "message": "Kılavuz",
-    "description": "Label for the checkbox to toggle the grid shown on preview."
-  },
-  "toggleMicButton": {
-    "message": "Mikrofon",
-    "description": "Label for the checkbox to toggle the microphone for recording video."
-  },
-  "dialogOKButton": {
-    "message": "Tamam",
-    "description": "Label for the accepting button in the dialog."
-  },
-  "dialogCancelButton": {
-    "message": "İptal",
-    "description": "Label for the dismissing button in the dialog."
-  },
-  "deleteConfirmationMsg": {
-    "message": "$file$ adlı dosyayı gerçekten kaldırmak istiyor musunuz?",
-    "description": "Confirmation message before removing a selected item from the gallery. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg."
-      }
-    }
-  },
-  "deleteMultiConfirmationMsg": {
-    "message": "$count$ öğeyi gerçekten kaldırmak istiyor musunuz?",
-    "description": "Confirmation message before removing multiple selected items from the gallery. Expects a file count to be passed in.",
-    "placeholders": {
-      "count": {
-        "content": "$1",
-        "example": "20."
-      }
-    }
-  },
-  "migratePicturesMsg": {
-    "message": "Kamerayla çekilen fotoğraflar ve videolar, İndirilenler klasörüne taşınacaktır. Bunlara Dosyalar uygulamasından erişebilirsiniz.\n\nDepolama iznine sahip uygulamalar fotoğraflarınıza ve videolarınıza erişebilecektir.",
-    "description": "Message shown before moving all photos and videos stored in the Camera App to the Downloads folder."
-  }
-}
\ No newline at end of file
diff --git a/chrome/browser/resources/chromeos/camera/src/_locales/uk/messages.json b/chrome/browser/resources/chromeos/camera/src/_locales/uk/messages.json
deleted file mode 100644
index 5b527fe..0000000
--- a/chrome/browser/resources/chromeos/camera/src/_locales/uk/messages.json
+++ /dev/null
@@ -1,206 +0,0 @@
-{
-  "name": {
-    "message": "Камера",
-    "description": "Name of the Camera App."
-  },
-  "description": {
-    "message": "Фотографуйте й записуйте відео камерою.",
-    "description": "Short description of the Camera App."
-  },
-  "errorMsgFileSystemFailed": {
-    "message": "Помилки файлової системи.",
-    "description": "Error message shown when failing to read or write the file system."
-  },
-  "errorMsgNoCamera": {
-    "message": "Камера недоступна.\nПеревірте, чи її правильно під’єднано.",
-    "description": "Error message shown when it was impossible to connect to the camera due to unavailability."
-  },
-  "errorMsgGalleryExportFailed": {
-    "message": "Не вдалось експортувати файл $file$",
-    "description": "Error message shown when exporting to an external directory failed. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg"
-      }
-    }
-  },
-  "errorMsgSaveFileFailed": {
-    "message": "Не вдалося зберегти файл",
-    "description": "Error message shown when saving/adding a image or video to the file system failed."
-  },
-  "errorMsgTakePhotoFailed": {
-    "message": "Не вдалося сфотографувати",
-    "description": "Error message shown when failing to take photo."
-  },
-  "errorMsgRecordStartFailed": {
-    "message": "Не вдалося почати запис",
-    "description": "Error message shown when failing to start recording video."
-  },
-  "errorMsgEmptyRecording": {
-    "message": "Нічого не записано",
-    "description": "Error message shown when no data is recorded for a recording and it won't be added to the gallery."
-  },
-  "statusMsgRecordingStopped": {
-    "message": "Запис припинено",
-    "description": "Status message for spoken feedback when video recording has been stopped."
-  },
-  "statusMsgCameraSwitched": {
-    "message": "Камера $camera$ активна",
-    "description": "Status message for spoken feedback when switching over to another camera.",
-    "placeholders": {
-      "camera": {
-        "content": "$1",
-        "example": "USB WebCam (12ab:5678) User-facing"
-      }
-    }
-  },
-  "galleryButton": {
-    "message": "Перейти в галерею",
-    "description": "Label for the gallery button."
-  },
-  "deleteButton": {
-    "message": "Видалити",
-    "description": "Label for the delete button."
-  },
-  "exportButton": {
-    "message": "Експортувати на диск",
-    "description": "Label for the exporting button."
-  },
-  "printButton": {
-    "message": "Друкувати",
-    "description": "Label for the printing button."
-  },
-  "backButton": {
-    "message": "Назад",
-    "description": "Label for the back button."
-  },
-  "galleryImages": {
-    "message": "Зображення в галереї",
-    "description": "Text to speech label for the gallery list."
-  },
-  "settingsButton": {
-    "message": "Налаштування",
-    "description": "Label for the settings button."
-  },
-  "gridTypeButton": {
-    "message": "Тип сітки",
-    "description": "Label for the button of grid-type options."
-  },
-  "timerDurationButton": {
-    "message": "Тривалість таймера",
-    "description": "Label for the button of timer-duration options."
-  },
-  "feedbackButton": {
-    "message": "Надіслати відгук",
-    "description": "Label for the feedback button."
-  },
-  "helpButton": {
-    "message": "Довідка",
-    "description": "Label for the help button."
-  },
-  "labelGrid3x3": {
-    "message": "3 x 3",
-    "description": "Label for for grid-type: 3x3."
-  },
-  "ariaGrid3x3": {
-    "message": "3 на 3",
-    "description": "Label for spoken feedback to read out grid-type: 3x3."
-  },
-  "labelGrid4x4": {
-    "message": "4 x 4",
-    "description": "Label for for grid-type: 4x4."
-  },
-  "ariaGrid4x4": {
-    "message": "4 на 4",
-    "description": "Label for spoken feedback to read out grid-type: 4x4."
-  },
-  "labelGridGolden": {
-    "message": "Золотий перетин",
-    "description": "Label for grid-type: golden ratio."
-  },
-  "labelTimer3s": {
-    "message": "3 секунди",
-    "description": "Label for timer-duration: 3 seconds."
-  },
-  "labelTimer10s": {
-    "message": "10 секунд",
-    "description": "Label for timer-duration: 10 seconds."
-  },
-  "takePhotoButton": {
-    "message": "Сфотографувати",
-    "description": "Label for the shutter button to take photo."
-  },
-  "takePhotoCancelButton": {
-    "message": "Припинити фотографувати",
-    "description": "Label for the shutter button to cancel countdown timer and stop taking photo."
-  },
-  "recordVideoStartButton": {
-    "message": "Почати запис",
-    "description": "Label for the shutter button to start recording."
-  },
-  "recordVideoStopButton": {
-    "message": "Припинити запис",
-    "description": "Label for the shutter button to stop recording."
-  },
-  "switchCameraButton": {
-    "message": "Перемкнутися на наступну камеру",
-    "description": "Label for the button to switch to next connected camera. Eg. switching from front facing to back facing, or a camera connected via USB. The button is shown only when more than one camera is connected."
-  },
-  "switchRecordVideoButton": {
-    "message": "Перейти в режим запису відео",
-    "description": "Label for the button to switch to record video mode."
-  },
-  "switchTakePhotoButton": {
-    "message": "Перейти в режим фотозйомки",
-    "description": "Label for the button to switch to take photo mode."
-  },
-  "toggleTimerButton": {
-    "message": "Таймер",
-    "description": "Label for the checkbox to toggle the countdown timer."
-  },
-  "toggleMirrorButton": {
-    "message": "Дзеркальне відображення",
-    "description": "Label for the checkbox to toggle the preview mirroring. Eg. if mirroring is toggled on, preview will be flipped horizontally."
-  },
-  "toggleGridButton": {
-    "message": "Сітка",
-    "description": "Label for the checkbox to toggle the grid shown on preview."
-  },
-  "toggleMicButton": {
-    "message": "Мікрофон",
-    "description": "Label for the checkbox to toggle the microphone for recording video."
-  },
-  "dialogOKButton": {
-    "message": "OK",
-    "description": "Label for the accepting button in the dialog."
-  },
-  "dialogCancelButton": {
-    "message": "Скасувати",
-    "description": "Label for the dismissing button in the dialog."
-  },
-  "deleteConfirmationMsg": {
-    "message": "Видалити файл $file$?",
-    "description": "Confirmation message before removing a selected item from the gallery. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg."
-      }
-    }
-  },
-  "deleteMultiConfirmationMsg": {
-    "message": "Видалити елементи ($count$)?",
-    "description": "Confirmation message before removing multiple selected items from the gallery. Expects a file count to be passed in.",
-    "placeholders": {
-      "count": {
-        "content": "$1",
-        "example": "20."
-      }
-    }
-  },
-  "migratePicturesMsg": {
-    "message": "Фото й відео з камери перенесуться в папку \"Завантаження\", і ви зможете відкрити їх у Файлах.\n\nТакож до них матимуть доступ додатки, яким дозволено використовувати пам’ять пристрою.",
-    "description": "Message shown before moving all photos and videos stored in the Camera App to the Downloads folder."
-  }
-}
\ No newline at end of file
diff --git a/chrome/browser/resources/chromeos/camera/src/_locales/vi/messages.json b/chrome/browser/resources/chromeos/camera/src/_locales/vi/messages.json
deleted file mode 100644
index 66743d0..0000000
--- a/chrome/browser/resources/chromeos/camera/src/_locales/vi/messages.json
+++ /dev/null
@@ -1,206 +0,0 @@
-{
-  "name": {
-    "message": "Máy ảnh",
-    "description": "Name of the Camera App."
-  },
-  "description": {
-    "message": "Chụp ảnh và quay video bằng máy ảnh của bạn.",
-    "description": "Short description of the Camera App."
-  },
-  "errorMsgFileSystemFailed": {
-    "message": "Lỗi hệ thống tệp.",
-    "description": "Error message shown when failing to read or write the file system."
-  },
-  "errorMsgNoCamera": {
-    "message": "Máy ảnh của bạn hiện không sử dụng được.\nVui lòng kiểm tra xem máy ảnh có được kết nối đúng cách không.",
-    "description": "Error message shown when it was impossible to connect to the camera due to unavailability."
-  },
-  "errorMsgGalleryExportFailed": {
-    "message": "Không thể xuất $file$",
-    "description": "Error message shown when exporting to an external directory failed. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg"
-      }
-    }
-  },
-  "errorMsgSaveFileFailed": {
-    "message": "Không thể lưu tệp",
-    "description": "Error message shown when saving/adding a image or video to the file system failed."
-  },
-  "errorMsgTakePhotoFailed": {
-    "message": "Không thể chụp ảnh",
-    "description": "Error message shown when failing to take photo."
-  },
-  "errorMsgRecordStartFailed": {
-    "message": "Không thể bắt đầu quay video",
-    "description": "Error message shown when failing to start recording video."
-  },
-  "errorMsgEmptyRecording": {
-    "message": "Chưa ghi dữ liệu nào",
-    "description": "Error message shown when no data is recorded for a recording and it won't be added to the gallery."
-  },
-  "statusMsgRecordingStopped": {
-    "message": "Đã dừng quay video",
-    "description": "Status message for spoken feedback when video recording has been stopped."
-  },
-  "statusMsgCameraSwitched": {
-    "message": "$camera$ đang hoạt động",
-    "description": "Status message for spoken feedback when switching over to another camera.",
-    "placeholders": {
-      "camera": {
-        "content": "$1",
-        "example": "USB WebCam (12ab:5678) User-facing"
-      }
-    }
-  },
-  "galleryButton": {
-    "message": "Chuyển đến thư viện",
-    "description": "Label for the gallery button."
-  },
-  "deleteButton": {
-    "message": "Xóa",
-    "description": "Label for the delete button."
-  },
-  "exportButton": {
-    "message": "Xuất ra đĩa",
-    "description": "Label for the exporting button."
-  },
-  "printButton": {
-    "message": "In",
-    "description": "Label for the printing button."
-  },
-  "backButton": {
-    "message": "Quay lại",
-    "description": "Label for the back button."
-  },
-  "galleryImages": {
-    "message": "Ảnh trong thư viện",
-    "description": "Text to speech label for the gallery list."
-  },
-  "settingsButton": {
-    "message": "Cài đặt",
-    "description": "Label for the settings button."
-  },
-  "gridTypeButton": {
-    "message": "Loại lưới",
-    "description": "Label for the button of grid-type options."
-  },
-  "timerDurationButton": {
-    "message": "Thời lượng bộ hẹn giờ",
-    "description": "Label for the button of timer-duration options."
-  },
-  "feedbackButton": {
-    "message": "Gửi phản hồi",
-    "description": "Label for the feedback button."
-  },
-  "helpButton": {
-    "message": "Trợ giúp",
-    "description": "Label for the help button."
-  },
-  "labelGrid3x3": {
-    "message": "3 x 3",
-    "description": "Label for for grid-type: 3x3."
-  },
-  "ariaGrid3x3": {
-    "message": "3 x 3",
-    "description": "Label for spoken feedback to read out grid-type: 3x3."
-  },
-  "labelGrid4x4": {
-    "message": "4 x 4",
-    "description": "Label for for grid-type: 4x4."
-  },
-  "ariaGrid4x4": {
-    "message": "4 x 4",
-    "description": "Label for spoken feedback to read out grid-type: 4x4."
-  },
-  "labelGridGolden": {
-    "message": "Tỷ lệ vàng",
-    "description": "Label for grid-type: golden ratio."
-  },
-  "labelTimer3s": {
-    "message": "3 giây",
-    "description": "Label for timer-duration: 3 seconds."
-  },
-  "labelTimer10s": {
-    "message": "10 giây",
-    "description": "Label for timer-duration: 10 seconds."
-  },
-  "takePhotoButton": {
-    "message": "Chụp ảnh",
-    "description": "Label for the shutter button to take photo."
-  },
-  "takePhotoCancelButton": {
-    "message": "Dừng chụp ảnh",
-    "description": "Label for the shutter button to cancel countdown timer and stop taking photo."
-  },
-  "recordVideoStartButton": {
-    "message": "Bắt đầu quay video",
-    "description": "Label for the shutter button to start recording."
-  },
-  "recordVideoStopButton": {
-    "message": "Dừng quay video",
-    "description": "Label for the shutter button to stop recording."
-  },
-  "switchCameraButton": {
-    "message": "Chuyển sang máy ảnh tiếp theo",
-    "description": "Label for the button to switch to next connected camera. Eg. switching from front facing to back facing, or a camera connected via USB. The button is shown only when more than one camera is connected."
-  },
-  "switchRecordVideoButton": {
-    "message": "Chuyển sang quay video",
-    "description": "Label for the button to switch to record video mode."
-  },
-  "switchTakePhotoButton": {
-    "message": "Chuyển sang chụp ảnh",
-    "description": "Label for the button to switch to take photo mode."
-  },
-  "toggleTimerButton": {
-    "message": "Bộ hẹn giờ",
-    "description": "Label for the checkbox to toggle the countdown timer."
-  },
-  "toggleMirrorButton": {
-    "message": "Phản chiếu",
-    "description": "Label for the checkbox to toggle the preview mirroring. Eg. if mirroring is toggled on, preview will be flipped horizontally."
-  },
-  "toggleGridButton": {
-    "message": "Lưới",
-    "description": "Label for the checkbox to toggle the grid shown on preview."
-  },
-  "toggleMicButton": {
-    "message": "Micrô",
-    "description": "Label for the checkbox to toggle the microphone for recording video."
-  },
-  "dialogOKButton": {
-    "message": "OK",
-    "description": "Label for the accepting button in the dialog."
-  },
-  "dialogCancelButton": {
-    "message": "Hủy",
-    "description": "Label for the dismissing button in the dialog."
-  },
-  "deleteConfirmationMsg": {
-    "message": "Bạn có thực sự muốn xóa $file$ không?",
-    "description": "Confirmation message before removing a selected item from the gallery. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg."
-      }
-    }
-  },
-  "deleteMultiConfirmationMsg": {
-    "message": "Bạn có thực sự muốn xóa $count$ mục không?",
-    "description": "Confirmation message before removing multiple selected items from the gallery. Expects a file count to be passed in.",
-    "placeholders": {
-      "count": {
-        "content": "$1",
-        "example": "20."
-      }
-    }
-  },
-  "migratePicturesMsg": {
-    "message": "Ảnh và video mà bạn chụp và quay bằng máy ảnh sẽ được chuyển đến thư mục Tài nguyên đã tải xuống. Bạn có thể truy cập vào những nội dung này trong ứng dụng Files.\n\nỨng dụng có quyền truy cập vào bộ nhớ sẽ có quyền truy cập vào ảnh và video của bạn.",
-    "description": "Message shown before moving all photos and videos stored in the Camera App to the Downloads folder."
-  }
-}
\ No newline at end of file
diff --git a/chrome/browser/resources/chromeos/camera/src/_locales/zh_CN/messages.json b/chrome/browser/resources/chromeos/camera/src/_locales/zh_CN/messages.json
deleted file mode 100644
index ad6c6ea..0000000
--- a/chrome/browser/resources/chromeos/camera/src/_locales/zh_CN/messages.json
+++ /dev/null
@@ -1,206 +0,0 @@
-{
-  "name": {
-    "message": "相机",
-    "description": "Name of the Camera App."
-  },
-  "description": {
-    "message": "使用相机拍照和录制视频。",
-    "description": "Short description of the Camera App."
-  },
-  "errorMsgFileSystemFailed": {
-    "message": "文件系统出错。",
-    "description": "Error message shown when failing to read or write the file system."
-  },
-  "errorMsgNoCamera": {
-    "message": "您的相机目前不可用。\n请检查此相机是否连接正确。",
-    "description": "Error message shown when it was impossible to connect to the camera due to unavailability."
-  },
-  "errorMsgGalleryExportFailed": {
-    "message": "无法导出 $file$",
-    "description": "Error message shown when exporting to an external directory failed. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg"
-      }
-    }
-  },
-  "errorMsgSaveFileFailed": {
-    "message": "无法保存文件",
-    "description": "Error message shown when saving/adding a image or video to the file system failed."
-  },
-  "errorMsgTakePhotoFailed": {
-    "message": "无法拍照",
-    "description": "Error message shown when failing to take photo."
-  },
-  "errorMsgRecordStartFailed": {
-    "message": "无法开始录制",
-    "description": "Error message shown when failing to start recording video."
-  },
-  "errorMsgEmptyRecording": {
-    "message": "未记录任何数据",
-    "description": "Error message shown when no data is recorded for a recording and it won't be added to the gallery."
-  },
-  "statusMsgRecordingStopped": {
-    "message": "已停止录制",
-    "description": "Status message for spoken feedback when video recording has been stopped."
-  },
-  "statusMsgCameraSwitched": {
-    "message": "已切换到$camera$",
-    "description": "Status message for spoken feedback when switching over to another camera.",
-    "placeholders": {
-      "camera": {
-        "content": "$1",
-        "example": "USB WebCam (12ab:5678) User-facing"
-      }
-    }
-  },
-  "galleryButton": {
-    "message": "打开图库",
-    "description": "Label for the gallery button."
-  },
-  "deleteButton": {
-    "message": "删除",
-    "description": "Label for the delete button."
-  },
-  "exportButton": {
-    "message": "导出到磁盘",
-    "description": "Label for the exporting button."
-  },
-  "printButton": {
-    "message": "打印",
-    "description": "Label for the printing button."
-  },
-  "backButton": {
-    "message": "返回",
-    "description": "Label for the back button."
-  },
-  "galleryImages": {
-    "message": "图库图片",
-    "description": "Text to speech label for the gallery list."
-  },
-  "settingsButton": {
-    "message": "设置",
-    "description": "Label for the settings button."
-  },
-  "gridTypeButton": {
-    "message": "网格类型",
-    "description": "Label for the button of grid-type options."
-  },
-  "timerDurationButton": {
-    "message": "定时器时长",
-    "description": "Label for the button of timer-duration options."
-  },
-  "feedbackButton": {
-    "message": "发送反馈",
-    "description": "Label for the feedback button."
-  },
-  "helpButton": {
-    "message": "帮助",
-    "description": "Label for the help button."
-  },
-  "labelGrid3x3": {
-    "message": "3 x 3",
-    "description": "Label for for grid-type: 3x3."
-  },
-  "ariaGrid3x3": {
-    "message": "3 x 3",
-    "description": "Label for spoken feedback to read out grid-type: 3x3."
-  },
-  "labelGrid4x4": {
-    "message": "4 x 4",
-    "description": "Label for for grid-type: 4x4."
-  },
-  "ariaGrid4x4": {
-    "message": "4 x 4",
-    "description": "Label for spoken feedback to read out grid-type: 4x4."
-  },
-  "labelGridGolden": {
-    "message": "黄金比例",
-    "description": "Label for grid-type: golden ratio."
-  },
-  "labelTimer3s": {
-    "message": "3 秒",
-    "description": "Label for timer-duration: 3 seconds."
-  },
-  "labelTimer10s": {
-    "message": "10 秒",
-    "description": "Label for timer-duration: 10 seconds."
-  },
-  "takePhotoButton": {
-    "message": "拍照",
-    "description": "Label for the shutter button to take photo."
-  },
-  "takePhotoCancelButton": {
-    "message": "停止拍照",
-    "description": "Label for the shutter button to cancel countdown timer and stop taking photo."
-  },
-  "recordVideoStartButton": {
-    "message": "开始录制",
-    "description": "Label for the shutter button to start recording."
-  },
-  "recordVideoStopButton": {
-    "message": "停止录制",
-    "description": "Label for the shutter button to stop recording."
-  },
-  "switchCameraButton": {
-    "message": "切换到下一个相机",
-    "description": "Label for the button to switch to next connected camera. Eg. switching from front facing to back facing, or a camera connected via USB. The button is shown only when more than one camera is connected."
-  },
-  "switchRecordVideoButton": {
-    "message": "切换到录制视频模式",
-    "description": "Label for the button to switch to record video mode."
-  },
-  "switchTakePhotoButton": {
-    "message": "切换到拍照模式",
-    "description": "Label for the button to switch to take photo mode."
-  },
-  "toggleTimerButton": {
-    "message": "定时器",
-    "description": "Label for the checkbox to toggle the countdown timer."
-  },
-  "toggleMirrorButton": {
-    "message": "镜像",
-    "description": "Label for the checkbox to toggle the preview mirroring. Eg. if mirroring is toggled on, preview will be flipped horizontally."
-  },
-  "toggleGridButton": {
-    "message": "网格",
-    "description": "Label for the checkbox to toggle the grid shown on preview."
-  },
-  "toggleMicButton": {
-    "message": "麦克风",
-    "description": "Label for the checkbox to toggle the microphone for recording video."
-  },
-  "dialogOKButton": {
-    "message": "确定",
-    "description": "Label for the accepting button in the dialog."
-  },
-  "dialogCancelButton": {
-    "message": "取消",
-    "description": "Label for the dismissing button in the dialog."
-  },
-  "deleteConfirmationMsg": {
-    "message": "确定要移除 $file$ 吗?",
-    "description": "Confirmation message before removing a selected item from the gallery. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg."
-      }
-    }
-  },
-  "deleteMultiConfirmationMsg": {
-    "message": "确定要移除这 $count$ 个文件吗?",
-    "description": "Confirmation message before removing multiple selected items from the gallery. Expects a file count to be passed in.",
-    "placeholders": {
-      "count": {
-        "content": "$1",
-        "example": "20."
-      }
-    }
-  },
-  "migratePicturesMsg": {
-    "message": "使用此相机拍摄的照片和视频将被移至“下载内容”文件夹。您可在“文件”中访问它们。\n\n具有存储权限的应用将有权访问您的照片和视频。",
-    "description": "Message shown before moving all photos and videos stored in the Camera App to the Downloads folder."
-  }
-}
\ No newline at end of file
diff --git a/chrome/browser/resources/chromeos/camera/src/_locales/zh_TW/messages.json b/chrome/browser/resources/chromeos/camera/src/_locales/zh_TW/messages.json
deleted file mode 100644
index ed48b24..0000000
--- a/chrome/browser/resources/chromeos/camera/src/_locales/zh_TW/messages.json
+++ /dev/null
@@ -1,206 +0,0 @@
-{
-  "name": {
-    "message": "相機",
-    "description": "Name of the Camera App."
-  },
-  "description": {
-    "message": "使用相機拍攝相片及錄製影片。",
-    "description": "Short description of the Camera App."
-  },
-  "errorMsgFileSystemFailed": {
-    "message": "檔案系統發生錯誤。",
-    "description": "Error message shown when failing to read or write the file system."
-  },
-  "errorMsgNoCamera": {
-    "message": "目前無法使用相機。\n請檢查相機是否已正確連接。",
-    "description": "Error message shown when it was impossible to connect to the camera due to unavailability."
-  },
-  "errorMsgGalleryExportFailed": {
-    "message": "無法匯出「$file$」",
-    "description": "Error message shown when exporting to an external directory failed. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg"
-      }
-    }
-  },
-  "errorMsgSaveFileFailed": {
-    "message": "無法儲存檔案",
-    "description": "Error message shown when saving/adding a image or video to the file system failed."
-  },
-  "errorMsgTakePhotoFailed": {
-    "message": "無法拍照",
-    "description": "Error message shown when failing to take photo."
-  },
-  "errorMsgRecordStartFailed": {
-    "message": "無法開始錄影",
-    "description": "Error message shown when failing to start recording video."
-  },
-  "errorMsgEmptyRecording": {
-    "message": "未錄製任何內容",
-    "description": "Error message shown when no data is recorded for a recording and it won't be added to the gallery."
-  },
-  "statusMsgRecordingStopped": {
-    "message": "已停止錄影",
-    "description": "Status message for spoken feedback when video recording has been stopped."
-  },
-  "statusMsgCameraSwitched": {
-    "message": "已切換至 $camera$",
-    "description": "Status message for spoken feedback when switching over to another camera.",
-    "placeholders": {
-      "camera": {
-        "content": "$1",
-        "example": "USB WebCam (12ab:5678) User-facing"
-      }
-    }
-  },
-  "galleryButton": {
-    "message": "前往圖片庫",
-    "description": "Label for the gallery button."
-  },
-  "deleteButton": {
-    "message": "刪除",
-    "description": "Label for the delete button."
-  },
-  "exportButton": {
-    "message": "匯出至磁碟",
-    "description": "Label for the exporting button."
-  },
-  "printButton": {
-    "message": "列印",
-    "description": "Label for the printing button."
-  },
-  "backButton": {
-    "message": "返回",
-    "description": "Label for the back button."
-  },
-  "galleryImages": {
-    "message": "圖片庫圖片",
-    "description": "Text to speech label for the gallery list."
-  },
-  "settingsButton": {
-    "message": "設定",
-    "description": "Label for the settings button."
-  },
-  "gridTypeButton": {
-    "message": "格線類型",
-    "description": "Label for the button of grid-type options."
-  },
-  "timerDurationButton": {
-    "message": "計時器倒數時間",
-    "description": "Label for the button of timer-duration options."
-  },
-  "feedbackButton": {
-    "message": "提供意見",
-    "description": "Label for the feedback button."
-  },
-  "helpButton": {
-    "message": "說明",
-    "description": "Label for the help button."
-  },
-  "labelGrid3x3": {
-    "message": "3 x 3",
-    "description": "Label for for grid-type: 3x3."
-  },
-  "ariaGrid3x3": {
-    "message": "3 乘 3",
-    "description": "Label for spoken feedback to read out grid-type: 3x3."
-  },
-  "labelGrid4x4": {
-    "message": "4 x 4",
-    "description": "Label for for grid-type: 4x4."
-  },
-  "ariaGrid4x4": {
-    "message": "4 乘 4",
-    "description": "Label for spoken feedback to read out grid-type: 4x4."
-  },
-  "labelGridGolden": {
-    "message": "黃金比例",
-    "description": "Label for grid-type: golden ratio."
-  },
-  "labelTimer3s": {
-    "message": "3 秒",
-    "description": "Label for timer-duration: 3 seconds."
-  },
-  "labelTimer10s": {
-    "message": "10 秒",
-    "description": "Label for timer-duration: 10 seconds."
-  },
-  "takePhotoButton": {
-    "message": "拍照",
-    "description": "Label for the shutter button to take photo."
-  },
-  "takePhotoCancelButton": {
-    "message": "停止拍照",
-    "description": "Label for the shutter button to cancel countdown timer and stop taking photo."
-  },
-  "recordVideoStartButton": {
-    "message": "開始錄製",
-    "description": "Label for the shutter button to start recording."
-  },
-  "recordVideoStopButton": {
-    "message": "停止錄影",
-    "description": "Label for the shutter button to stop recording."
-  },
-  "switchCameraButton": {
-    "message": "切換至下一個相機",
-    "description": "Label for the button to switch to next connected camera. Eg. switching from front facing to back facing, or a camera connected via USB. The button is shown only when more than one camera is connected."
-  },
-  "switchRecordVideoButton": {
-    "message": "切換為錄影模式",
-    "description": "Label for the button to switch to record video mode."
-  },
-  "switchTakePhotoButton": {
-    "message": "切換為拍照模式",
-    "description": "Label for the button to switch to take photo mode."
-  },
-  "toggleTimerButton": {
-    "message": "計時器",
-    "description": "Label for the checkbox to toggle the countdown timer."
-  },
-  "toggleMirrorButton": {
-    "message": "鏡像功能",
-    "description": "Label for the checkbox to toggle the preview mirroring. Eg. if mirroring is toggled on, preview will be flipped horizontally."
-  },
-  "toggleGridButton": {
-    "message": "格線",
-    "description": "Label for the checkbox to toggle the grid shown on preview."
-  },
-  "toggleMicButton": {
-    "message": "麥克風",
-    "description": "Label for the checkbox to toggle the microphone for recording video."
-  },
-  "dialogOKButton": {
-    "message": "確定",
-    "description": "Label for the accepting button in the dialog."
-  },
-  "dialogCancelButton": {
-    "message": "取消",
-    "description": "Label for the dismissing button in the dialog."
-  },
-  "deleteConfirmationMsg": {
-    "message": "確定要移除「$file$」嗎?",
-    "description": "Confirmation message before removing a selected item from the gallery. Expects a file name to be passed in.",
-    "placeholders": {
-      "file": {
-        "content": "$1",
-        "example": "IMG_20160520_000000.jpg."
-      }
-    }
-  },
-  "deleteMultiConfirmationMsg": {
-    "message": "確定要移除這 $count$ 個項目嗎?",
-    "description": "Confirmation message before removing multiple selected items from the gallery. Expects a file count to be passed in.",
-    "placeholders": {
-      "count": {
-        "content": "$1",
-        "example": "20."
-      }
-    }
-  },
-  "migratePicturesMsg": {
-    "message": "使用相機拍攝的相片和影片將移至「下載內容」資料夾,你可以在「檔案」應用程式中找到這些內容。\n\n具備儲存空間權限的應用程式將可存取你的相片和影片。",
-    "description": "Message shown before moving all photos and videos stored in the Camera App to the Downloads folder."
-  }
-}
\ No newline at end of file
diff --git a/chrome/browser/resources/chromeos/camera/src/css/main.css b/chrome/browser/resources/chromeos/camera/src/css/main.css
deleted file mode 100644
index f41277bf..0000000
--- a/chrome/browser/resources/chromeos/camera/src/css/main.css
+++ /dev/null
@@ -1,1048 +0,0 @@
-html {
-  height: 100%;  /* Required for printing. */
-}
-
-body {
-  background: black;
-  bottom: 0;
-  height: 100%;
-  left: 0;
-  margin: 0;
-  overflow: hidden;
-  position: absolute;
-  top: 0;
-  width: 100%;
-}
-
-.scrollbar-track {
-  padding: 2px;
-  position: fixed;
-}
-
-.scrollbar-track-horizontal {
-  bottom: 0;
-  left: 0;
-  right: 0;
-}
-
-.scrollbar-track-vertical {
-  bottom: 0;
-  right: 0;
-  top: 0;
-}
-
-.scrollbar-thumb {
-  background: white;
-  border: 1px solid #555;
-  border-radius: 3px;
-  box-sizing: border-box;
-  opacity: 0.4;
-  position: absolute;
-  transition: opacity 100ms;
-}
-
-.scrollbar-track .scrollbar-thumb:hover {
-  opacity: 0.6;
-}
-
-.scrollbar-track .scrollbar-thumb:active {
-  opacity: 0.8;
-}
-
-.scrollbar-track-horizontal,
-.scrollbar-track-horizontal .scrollbar-thumb {
-  height: 8px;
-}
-
-.scrollbar-track-vertical,
-.scrollbar-track-vertical .scrollbar-thumb {
-  width: 8px;
-}
-
-button,
-input {
-  background-color: transparent;
-  position: relative;
-  pointer-events: auto;
-  margin: 0;
-  padding: 0;
-  border-radius: 4px;
-  border-style: none;
-  outline: none;
-}
-
-input {
-  -webkit-appearance: none;
-}
-
-button[disabled],
-input[disabled] {
-  opacity: 0.75;
-  pointer-events: none;
-}
-
-button:focus:after,
-input:focus:after {
-  position: absolute;
-  border: 2px solid rgba(37, 129, 223, 0.7);
-  border-radius: 4px;
-  top: -3px;
-  left: -3px;
-  bottom: -3px;
-  right: -3px;
-  content: '';
-}
-
-#browser .media-wrapper:focus {
-  /* Make elements have the same focus style. */
-  outline: 2px solid rgba(37, 129, 223, 0.7);
-}
-
-.circle button,
-.circle button:focus:after,
-.circle input:focus:after {
-  border-radius: 50%;
-}
-
-.buttons {
-  align-items: center;
-  display: flex;
-  justify-content: center;
-  pointer-events: none;
-}
-
-.buttons button:active,
-.buttons input:active {
-  -webkit-transform: scale(1.07);
-}
-
-.buttons button,
-.buttons input,
-.menu-header .icon,
-.menu-item .icon {
-  flex-shrink: 0;
-  width: 40px;
-  height: 40px;
-  background-position: center;
-  background-repeat: no-repeat;
-}
-
-#browser-print {
-  background-image: url(../images/browser_button_print.svg);
-}
-
-#browser-export {
-  background-image: url(../images/browser_button_export.svg);
-}
-
-#browser-back {
-  background-image: url(../images/browser_button_back.svg);
-}
-
-#browser-delete {
-  background-image: url(../images/browser_button_delete.svg);
-}
-
-::-webkit-scrollbar {
-  width: 0;
-  height: 0;
-}
-
-::-webkit-scrollbar-track {
-  background: transparent;
-}
-
-::-webkit-scrollbar-thumb {
-  background: transparent;
-  width: 0;
-  height: 0;
-}
-
-.top-stripe {
-  position: absolute;
-  top: 48px;
-  -webkit-transform: translateY(-50%);
-}
-
-body.shift-top-stripe .top-stripe {
-  top: 0;  /* Calculate at runtime. */
-}
-
-.bottom-stripe,
-body:not(.tablet-landscape) .actions-group {
-  position: absolute;
-  bottom: 56px;
-  -webkit-transform: translateY(50%);
-}
-
-body.tablet-landscape .bottom-stripe {
-  bottom: 48px;
-}
-
-body.shift-bottom-stripe .bottom-stripe,
-body.shift-bottom-stripe:not(.tablet-landscape) .actions-group {
-  bottom: 0;  /* Calculate at runtime. */
-}
-
-.left-stripe {
-  position: absolute;
-  left: 48px;
-  -webkit-transform: translateX(-50%);
-}
-
-body.shift-left-stripe .left-stripe {
-  left: 0;  /* Calculate at runtime. */
-}
-
-.right-stripe,
-body.tablet-landscape .actions-group {
-  position: absolute;
-  right: 56px;
-  -webkit-transform: translateX(50%);
-}
-
-body:not(.tablet-landscape) .right-stripe {
-  right: 48px;
-}
-
-body.shift-right-stripe .right-stripe,
-body.shift-right-stripe.tablet-landscape .actions-group {
-  right: 0;  /* Calculate at runtime. */
-}
-
-.top-stripe.right-stripe {
-  -webkit-transform: translate(50%, -50%);
-}
-
-.top-stripe.left-stripe {
-  -webkit-transform: translate(-50%, -50%);
-}
-
-.bottom-stripe.right-stripe {
-  -webkit-transform: translate(50%, 50%);
-}
-
-.bottom-stripe.left-stripe {
-  -webkit-transform: translate(-50%, 50%);
-}
-
-.actions-group button {
-  margin: 0 8px;
-}
-
-body.tablet-landscape .actions-group {
-  flex-direction: column-reverse;
-}
-
-body.tablet-landscape .actions-group button {
-  margin: 8px 0;
-}
-
-#shutter {
-  background-image: url(../images/camera_shutter_photo_start.svg);
-  width: 72px;
-  height: 72px;
-  z-index: 1;  /* On top of transforming switch-mode buttons. */
-}
-
-#shutter:hover {
-  background-image: url(../images/camera_shutter_photo_start_hover.svg);
-}
-
-#shutter:active {
-  background-image: url(../images/camera_shutter_photo_start_active.svg);
-}
-
-body.taking.timer #shutter {
-  background-image: url(../images/camera_shutter_photo_stop.svg);
-}
-
-body.taking.timer #shutter:hover {
-  background-image: url(../images/camera_shutter_photo_stop_hover.svg);
-}
-
-body.record-mode #shutter {
-  background-image: url(../images/camera_shutter_recording_start.svg);
-}
-
-body.record-mode #shutter:hover {
-  background-image: url(../images/camera_shutter_recording_start_hover.svg);
-}
-
-body.record-mode.taking #shutter {
-  background-image: url(../images/camera_shutter_recording_stop.svg);
-}
-
-body.record-mode.taking #shutter:hover {
-  background-image: url(../images/camera_shutter_recording_stop_hover.svg);
-}
-
-#switch-recordvideo,
-#switch-takephoto {
-  width: 56px;
-  height: 56px;
-}
-
-#switch-recordvideo {
-  background-image: url(../images/camera_button_switch_video.svg);
-  transition: transform 50ms;
-}
-
-#switch-takephoto {
-  background-image: url(../images/camera_button_switch_photo.svg);
-  transition: transform 50ms;
-}
-
-body.record-mode #switch-recordvideo {
-  -webkit-transform: translateX(-160px);
-}
-
-body.tablet-landscape.record-mode #switch-recordvideo {
-  -webkit-transform: translateY(160px);
-}
-
-body:not(.record-mode) #switch-takephoto {
-  -webkit-transform: translateX(160px);
-}
-
-body.tablet-landscape:not(.record-mode) #switch-takephoto {
-  -webkit-transform: translateY(-160px);
-}
-
-body.record-mode #switch-recordvideo,
-body:not(.record-mode) #switch-takephoto,
-body:not(.record-mode) #toggle-mic,
-body:not(.multi-camera) #switch-device {
-  visibility: hidden;
-}
-
-#camera-mode {
-  background-image: url(../images/camera_mode_photo.svg);
-  width: 40px;
-  height: 40px;
-  visibility: hidden;
-}
-
-body.record-mode #camera-mode {
-  background-image: url(../images/camera_mode_recording.svg);
-}
-
-body.mode-switching:not(.capturing) #camera-mode {
-  visibility: visible;
-}
-
-#timer-tick-msg {
-  color: white;
-  font-size: 72px;
-  font-family: 'Roboto', sans-serif;
-  visibility: hidden;
-}
-
-#timer-tick-msg.animate {
-  transform: scale(1.8, 1.8);
-  opacity: 0.2;
-  transition: transform 500ms ease-out, opacity 500ms ease-out;
-  visibility: visible;
-}
-
-#switch-device {
-  background-image: url(../images/camera_button_switch_device.svg);
-  width: 48px;
-  height: 48px;
-}
-
-#switch-device.animate {
-  animation: switch-device-rotate 350ms ease-out;
-}
-
-@keyframes switch-device-rotate {
-  0% {
-    transform: rotate(0deg);
-  }
-  100% {
-    transform: rotate(-180deg);
-  }
-}
-
-#gallery-enter {
-  position: relative;
-  width: 48px;
-  height: 48px;
-  background-size: cover;
-  background-color: rgba(24, 24, 24, 1);
-}
-
-.centered-overlay {
-  position: absolute;
-  left: 50%;
-  top: 50%;
-  -webkit-transform: translate(-50%, -50%);
-}
-
-.options-group {
-  flex-direction: column;
-}
-
-.options-group input {
-  margin: 18px 0;
-}
-
-body._3sec #toggle-timer:checked {
-  background-image: url(../images/camera_button_timer_on_3s.svg);
-}
-
-body._10sec #toggle-timer:checked {
-  background-image: url(../images/camera_button_timer_on_10s.svg);
-}
-
-#toggle-timer {
-  background-image: url(../images/camera_button_timer_off.svg);
-}
-
-#toggle-grid:checked {
-  background-image: url(../images/camera_button_grid_on.svg);
-}
-
-#toggle-grid {
-  background-image: url(../images/camera_button_grid_off.svg);
-}
-
-#toggle-mirror:checked {
-  background-image: url(../images/camera_button_mirror_on.svg);
-}
-
-#toggle-mirror {
-  background-image: url(../images/camera_button_mirror_off.svg);
-}
-
-#toggle-mic:checked {
-  background-image: url(../images/camera_button_mic_on.svg);
-}
-
-#toggle-mic {
-  background-image: url(../images/camera_button_mic_off.svg);
-}
-
-#open-settings {
-  background-image: url(../images/camera_button_settings.svg);
-}
-
-#camera,
-#settings,
-#gridsettings,
-#timersettings,
-#browser,
-#dialog,
-#warning {
-  bottom: 0;
-  left: 0;
-  opacity: 0;
-  overflow: auto;
-  position: absolute;
-  right: 0;
-  top: 0;
-  visibility: hidden;
-}
-
-body.camera #camera,
-body.settings #settings,
-body.gridsettings #gridsettings,
-body.timersettings #timersettings,
-body.browser #browser,
-body.dialog #dialog,
-body.warning #warning {
-  opacity: 1;
-  visibility: visible;
-  transition: opacity 100ms;
-}
-
-body.gridsettings #gridsettings,
-body.timersettings #timersettings,
-body.settings #settings {
-  /* Avoid flicking for transition between settings. */
-  transition: opacity 0ms;
-}
-
-body.settings .left-stripe,
-body.gridsettings .left-stripe,
-body.gridsettings #settings,
-body.timersettings .left-stripe,
-body.timersettings #settings {
-  opacity: 0;
-}
-
-#camera,
-#preview-wrapper {
-  align-items: center;
-  display: flex;
-  justify-content: center;
-  overflow: hidden;
-}
-
-body.shift-preview-top #preview-wrapper {
-  position: absolute;
-  top: 0;
-}
-
-body.shift-preview-left #preview-wrapper {
-  position: absolute;
-  left: 0;
-}
-
-#preview-wrapper,
-#preview-video {
-  flex-shrink: 0;
-  pointer-events: none;
-  position: relative;
-}
-
-body.capturing #preview-video {
-  pointer-events: auto;
-}
-
-body.mirror #preview-video,
-body.mirror #preview-focus {
-  -webkit-transform: scaleX(-1);
-}
-
-#preview-focus {
-  position: absolute;
-  left: 0;
-  top: 0;
-  right: 0;
-  bottom: 0;
-}
-
-#preview-focus-aim {
-  position: absolute;
-  transform: translate(-50%, -50%);
-}
-
-body:not(.capturing) #preview-video {
-  filter: blur(10px);
-  /* Scale up to hide blurred edges. */
-  -webkit-transform: scale(1.03, 1.03);
-}
-
-body.mirror:not(.capturing) #preview-video {
-  -webkit-transform: scale(-1.03, 1.03);
-}
-
-#preview-grid {
-  position: absolute;
-  bottom: 0;
-  left: 0;
-  right: 0;
-  top: 0;
-  opacity: 0.5;
-}
-
-body:not(.grid):not(.gridsettings) #preview-grid {
-  visibility: hidden;
-  /* Delay invisibility for grid animating-out. */
-  transition: visibility 500ms;
-}
-
-body:not(.capturing) #preview-grid,
-body:not(.capturing) #preview-focus,
-body:not(.capturing) #open-settings,
-body:not(.capturing) #toggle-mic,
-body:not(.capturing) .options-group {
-  visibility: hidden;
-}
-
-#preview-grid-horizontal {
-  border-bottom: 1px solid white;
-  border-top: 1px solid white;
-  position: absolute;
-  left: 0;
-  right: 0;
-  top: 50%;
-  height: 100%;
-  -webkit-transform: translateY(-50%);
-}
-
-body._4x4 #preview-grid-horizontal:before {
-  border-bottom: 1px solid white;
-  position: absolute;
-  left: 0;
-  right: 0;
-  top: 0;
-  height: 0;
-  content: '';
-}
-
-body.grid._3x3 #preview-grid-horizontal,
-body.gridsettings._3x3 #preview-grid-horizontal {
-  height: 33.333%;
-}
-
-body.grid.golden #preview-grid-horizontal,
-body.gridsettings.golden #preview-grid-horizontal {
-  height: 23.607%;
-}
-
-body.grid._4x4 #preview-grid-horizontal,
-body.grid._4x4 #preview-grid-horizontal:before,
-body.gridsettings._4x4 #preview-grid-horizontal,
-body.gridsettings._4x4 #preview-grid-horizontal:before {
-  height: 50%;
-}
-
-#preview-grid-vertical {
-  border-left: 1px solid white;
-  border-right: 1px solid white;
-  position: absolute;
-  bottom: 0;
-  top: 0;
-  left: 50%;
-  width: 100%;
-  -webkit-transform: translateX(-50%);
-}
-
-body._4x4 #preview-grid-vertical:before {
-  border-right: 1px solid white;
-  position: absolute;
-  bottom: 0;
-  top: 0;
-  left: 0;
-  width: 0;
-  content: '';
-}
-
-body.grid._3x3 #preview-grid-vertical,
-body.gridsettings._3x3 #preview-grid-vertical {
-  width: 33.333%;
-}
-
-body.grid.golden #preview-grid-vertical,
-body.gridsettings.golden #preview-grid-vertical {
-  width: 23.607%;
-}
-
-body.grid._4x4 #preview-grid-vertical,
-body.grid._4x4 #preview-grid-vertical:before,
-body.gridsettings._4x4 #preview-grid-vertical,
-body.gridsettings._4x4 #preview-grid-vertical:before {
-  width: 50%;
-}
-
-#preview-grid-horizontal.animate,
-#preview-grid-horizontal.animate:before {
-  transition: height 500ms;
-}
-
-#preview-grid-vertical.animate,
-#preview-grid-vertical.animate:before {
-  transition: width 500ms;
-}
-
-#record-time {
-  align-items: center;
-  display: flex;
-  justify-content: flex-start;
-  pointer-events: none;
-  background-color: rgba(0, 0, 0, 0.2);
-  border-radius: 4px;
-  height: 32px;
-  padding: 0 12px;
-}
-
-#record-time[hidden],
-.menu-item[hidden] {
-  display: none;  /* Required for flexbox hidden. */
-}
-
-#record-time .icon {
-  flex-shrink: 0;
-  background-color: #ea4335;
-  width: 6px;
-  height: 6px;
-  border-radius: 50%;
-}
-
-#record-time #record-time-msg {
-  flex-shrink: 0;
-  color: white;
-  font-size: 13px;
-  font-family: 'Roboto', sans-serif;
-  margin-left: 8px;
-}
-
-#browser .buttons {
-  position: fixed;
-  top: 10px;
-  left: 10px;
-}
-
-#browser .buttons button {
-  margin: 0 8px;
-}
-
-#browser .buttons button[disabled],
-body.ext-fs #browser-export {
-  display: none;
-}
-
-#browser {
-  background: black;
-}
-
-#browser .padder {
-  align-items: center;
-  display: flex;
-  height: 100%;
-}
-
-#browser div.media-wrapper {
-  align-items: center;
-  justify-content: center;
-  display: flex;
-  flex-shrink: 0;
-  margin: 4%;
-  pointer-events: auto;
-}
-
-#browser div.bounds-padder {
-  display: flex;
-  flex-shrink: 0;
-  height: 1px;  /* Required to make the element visible. */
-  width: 50%;
-}
-
-@media print {
-  html {
-    height: 100%;  /* Required for printing. */
-  }
-
-  body {
-    height: auto;
-    overflow: visible;
-    position: static;
-    width: 100%;
-  }
-
-  /* Reset background colors. */
-  body,
-  #browser {
-    background: transparent;
-  }
-
-  /* Hide the buttons and scroll bars. */
-  .buttons,
-  .scrollbar-track {
-    display: none;
-  }
-
-  /* Hide all root elements, except the printed view. */
-  body.browser > :not(#browser) {
-    display: none;
-  }
-
-  /* Hide everything from the browser view, but the selected one(s). */
-  #browser .padder > :not(.selected) {
-    display: none;
-  }
-
-  #browser .padder {
-    align-items: flex-start;
-  }
-
-  /* Set default styles and max-dimensions for printing the browser view. */
-  #browser div.media-wrapper.selected {
-    display: block;  /* Allows to keep aspect ratio of children. */
-    border: none;
-    box-shadow: none;
-    margin: auto;
-    position: absolute;
-  }
-
-  #browser div.media-wrapper.selected img,
-  #browser div.media-wrapper.selected video {
-    height: auto;
-    max-height: 100%;
-    max-width: 100%;
-    width: auto;
-  }
-
-  #browser video::-webkit-media-controls {
-    display: none;
-  }
-}
-
-#tooltip {
-  background: rgba(241, 243, 244, 0.8);
-  border-radius: 2px;
-  color: #202124;
-  font-size: 12px;
-  font-family: 'Roboto', sans-serif;
-  line-height: 22px;
-  white-space: nowrap;
-  padding: 0 8px;
-  left: 0;
-  pointer-events: none;
-  position: absolute;
-  top: 0;
-  opacity: 0;
-  z-index: 100;
-}
-
-#tooltip.visible {
-  opacity: 1;
-  transition: opacity 350ms ease-out 1500ms;
-}
-
-#toast {
-  background: #1e1e23;
-  border-radius: 16px;
-  color: white;
-  font-size: 16px;
-  font-family: 'Roboto', sans-serif;
-  line-height: 32px;
-  padding: 0 16px;
-  pointer-events: none;
-  opacity: 0;
-  z-index: 100;
-}
-
-#toast.animate.spoken {
-  animation: toast-spoken 3000ms ease-out;
-}
-
-#toast.animate:not(.spoken) {
-  animation: toast-shown 3000ms ease-out;
-}
-
-@keyframes toast-spoken {
-  0%, 100% {
-    opacity: 0;
-  }
-}
-
-@keyframes toast-shown {
-  0% {
-    opacity: 0;
-  }
-  10%, 90% {
-    opacity: 0.9;
-  }
-  100% {
-    opacity: 0;
-  }
-}
-
-.menu {
-  background: rgba(0, 0, 0, 0.75);
-  display: flex;
-  flex-direction: column;
-  position: absolute;
-  top: 0px;
-  left: 0px;
-  height: 100%;
-  min-width: 360px;
-  opacity: 0.9;
-}
-
-.menu-header,
-.menu-item {
-  align-items: center;
-  display: flex;
-  flex-shrink: 0;
-  justify-content: flex-start;
-  text-align: left;
-  padding: 0 20px 0 24px;
-  height: 64px;
-  color: #f1f3f4;
-  font-size: 13px;
-  font-family: 'Roboto', sans-serif;
-}
-
-.menu-header {
-  height: 88px;
-  color: white;
-  font-size: 20px;
-}
-
-.menu-header .icon,
-.menu-item .icon {
-  margin-right: 6px;
-}
-
-.menu-item .end {
-  margin-left: auto;
-}
-
-.menu-item .description {
-  margin-top: 5px;
-  color: #bdc1c6;
-}
-
-.menu-item .description span {
-  display: none;
-}
-
-body._3x3 .description span[i18n-content=labelGrid3x3],
-body._4x4 .description span[i18n-content=labelGrid4x4],
-body.golden .description span[i18n-content=labelGridGolden],
-body._3sec .description span[i18n-content=labelTimer3s],
-body._10sec .description span[i18n-content=labelTimer10s] {
-  display: inline;
-}
-
-.menu-item input:before {
-  position: absolute;
-  top: 13px;
-  left: 13px;
-  bottom: 13px;
-  right: 13px;
-  box-shadow: 0px 0px 0px 2px #f1f3f4;
-  border-radius: 50%;
-  content: '';
-}
-
-.menu-item input:checked:before {
-  top: 12px;
-  left: 12px;
-  bottom: 12px;
-  right: 12px;
-  box-shadow: 0px 0px 0px 1px #f1f3f4;
-  background-color: #f1f3f4;
-  background-clip: padding-box;
-  border: 4px solid transparent;
-  transition: border-width 100ms ease-in;
-}
-
-.menu-item:focus:after {
-  left: 2px;
-  right: 2px;
-}
-
-.menu-header .icon {
-  background-image: url(../images/settings_button_back.svg);
-}
-
-#settings-gridtype .icon {
-  background-image: url(../images/settings_grid_type.svg);
-}
-
-#settings-timerdur .icon {
-  background-image: url(../images/settings_timer_duration.svg);
-}
-
-#settings-feedback .icon {
-  background-image: url(../images/settings_feedback.svg);
-}
-
-#settings-help .icon {
-  background-image: url(../images/settings_help.svg);
-}
-
-#settings-gridtype .icon.end,
-#settings-timerdur .icon.end {
-  background-image: url(../images/settings_button_expand.svg);
-}
-
-#warning,
-#dialog {
-  align-items: center;
-  display: flex;
-  justify-content: center;
-  z-index: 1;
-}
-
-#warning {
-  background: black;
-  color: white;
-}
-
-#warning #error-msg {
-  text-align: center;
-  font-size: 18px;
-  font-family: 'Roboto', sans-serif;
-  line-height: 32px;
-  white-space: pre-wrap;
-}
-
-#dialog {
-  background: rgba(0, 0, 0, 0.8);
-}
-
-#dialog-popup {
-  -webkit-transform: translateY(20px);
-  background: white;
-  display: flex;
-  flex-direction: column;
-  padding: 20px;
-  border-radius: 4px;
-  transition: -webkit-transform 200ms;
-}
-
-body.dialog #dialog #dialog-popup {
-  -webkit-transform: translateY(0);
-}
-
-#dialog #dialog-msg {
-  user-select: text;  /* Allow copying the message. */
-  cursor: text;
-  color: #202124;
-  font-size: 14px;
-  font-family: 'Roboto', sans-serif;
-  max-height: 320px;
-  max-width: 472px;
-  overflow: auto;
-  padding: 20px 0;
-  white-space: pre-wrap;
-}
-
-#dialog #dialog-msg::-webkit-scrollbar {
-  width: 6px;
-  height: 6px;
-}
-
-#dialog #dialog-msg::-webkit-scrollbar-track {
-  background: transparent;
-}
-
-#dialog #dialog-msg::-webkit-scrollbar-thumb {
-  background: gray;
-  width: 6px;
-  height: 6px;
-}
-
-#dialog-buttons {
-  align-items: center;
-  display: flex;
-  justify-content: flex-end;
-  margin: 0 -2px;
-}
-
-#dialog-buttons button {
-  background-color: white;
-  color: #2581df;
-  font-size: 12px;
-  font-family: 'Roboto', sans-serif;
-  border-style: solid;
-  padding: 6px 18px;
-  margin: 4px;
-}
-
-#dialog-buttons button:focus {
-  background-color: #2581df;
-  color: white;
-}
-
-#dialog-buttons button:focus:after {
-  border: none;
-}
-
-#spinner {
-  background-image: url(../images/spinner.svg);
-  width: 32px;
-  height: 32px;
-  z-index: 1;
-  visibility: hidden;
-}
-
-body:not(.mode-switching):not(.capturing) #spinner {
-  visibility: visible;
-}
diff --git a/chrome/browser/resources/chromeos/camera/src/images/browser_button_back.svg b/chrome/browser/resources/chromeos/camera/src/images/browser_button_back.svg
deleted file mode 100644
index e726470b..0000000
--- a/chrome/browser/resources/chromeos/camera/src/images/browser_button_back.svg
+++ /dev/null
@@ -1,14 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20px" height="20px" viewBox="0 0 20 20">
-    <defs>
-        <polygon id="path-1" points="16.6666667 9.16666667 6.525 9.16666667 11.1833333 4.50833333 10 3.33333333 3.33333333 10 10 16.6666667 11.175 15.4916667 6.525 10.8333333 16.6666667 10.8333333"></polygon>
-    </defs>
-    <g fill="none" fill-rule="evenodd">
-        <g>
-            <mask fill="white">
-                <use xlink:href="#path-1"></use>
-            </mask>
-            <use fill="#FFFFFF" fill-rule="nonzero" xlink:href="#path-1"></use>
-            <rect x="0" y="0" width="20" height="20"></rect>
-        </g>
-    </g>
-</svg>
diff --git a/chrome/browser/resources/chromeos/camera/src/images/browser_button_delete.svg b/chrome/browser/resources/chromeos/camera/src/images/browser_button_delete.svg
deleted file mode 100644
index cb176394..0000000
--- a/chrome/browser/resources/chromeos/camera/src/images/browser_button_delete.svg
+++ /dev/null
@@ -1,14 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20px" height="20px" viewBox="0 0 20 20">
-    <defs>
-        <path d="M12.5,3.33333333 L12.5,2.5 L7.5,2.5 L7.5,3.33333333 L3.33333333,3.33333333 L3.33333333,5 L4.16666667,5 L4.16666667,15.8333333 C4.16666667,16.75 4.91666667,17.5 5.83333333,17.5 L14.1666667,17.5 C15.0833333,17.5 15.8333333,16.75 15.8333333,15.8333333 L15.8333333,5 L16.6666667,5 L16.6666667,3.33333333 L12.5,3.33333333 Z M14.1666667,15.8333333 L5.83333333,15.8333333 L5.83333333,5 L14.1666667,5 L14.1666667,15.8333333 Z M7.5,6.66666667 L9.16666667,6.66666667 L9.16666667,14.1666667 L7.5,14.1666667 L7.5,6.66666667 Z M10.8333333,6.66666667 L12.5,6.66666667 L12.5,14.1666667 L10.8333333,14.1666667 L10.8333333,6.66666667 Z" id="path-1"></path>
-    </defs>
-    <g fill="none" fill-rule="evenodd">
-        <g>
-            <mask fill="white">
-                <use xlink:href="#path-1"></use>
-            </mask>
-            <use fill="#FFFFFF" fill-rule="nonzero" xlink:href="#path-1"></use>
-            <rect x="0" y="0" width="20" height="20"></rect>
-        </g>
-    </g>
-</svg>
diff --git a/chrome/browser/resources/chromeos/camera/src/images/browser_button_export.svg b/chrome/browser/resources/chromeos/camera/src/images/browser_button_export.svg
deleted file mode 100644
index 5343abf6..0000000
--- a/chrome/browser/resources/chromeos/camera/src/images/browser_button_export.svg
+++ /dev/null
@@ -1,14 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20px" height="20px" viewBox="0 0 20 20">
-    <defs>
-        <path d="M16.6666667,14.1666667 L15.4916667,12.9916667 L13.3333333,15.1416667 L13.3333333,9.16666667 L11.6666667,9.16666667 L11.6666667,15.1416667 L9.50833333,12.9916667 L8.33333333,14.1666667 L12.5,18.3333333 L16.6666667,14.1666667 Z M4.16666667,5.83333333 L5.34166667,7.00833333 L7.5,4.85833333 L7.5,10.8333333 L9.16666667,10.8333333 L9.16666667,4.85833333 L11.325,7.00833333 L12.5,5.83333333 L8.33333333,1.66666667 L4.16666667,5.83333333 Z" id="path-1"></path>
-    </defs>
-    <g fill="none" fill-rule="evenodd">
-        <g>
-            <mask fill="white">
-                <use xlink:href="#path-1"></use>
-            </mask>
-            <use fill="#FFFFFF" fill-rule="nonzero" xlink:href="#path-1"></use>
-            <rect x="0" y="0" width="20" height="20"></rect>
-        </g>
-    </g>
-</svg>
diff --git a/chrome/browser/resources/chromeos/camera/src/images/browser_button_print.svg b/chrome/browser/resources/chromeos/camera/src/images/browser_button_print.svg
deleted file mode 100644
index 7b721cf..0000000
--- a/chrome/browser/resources/chromeos/camera/src/images/browser_button_print.svg
+++ /dev/null
@@ -1,14 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20px" height="20px" viewBox="0 0 20 20">
-    <defs>
-        <path d="M15.8333333,6.66666667 L15,6.66666667 L15,2.5 L5,2.5 L5,6.66666667 L4.16666667,6.66666667 C2.78333333,6.66666667 1.66666667,7.78333333 1.66666667,9.16666667 L1.66666667,14.1666667 L5,14.1666667 L5,17.5 L15,17.5 L15,14.1666667 L18.3333333,14.1666667 L18.3333333,9.16666667 C18.3333333,7.78333333 17.2166667,6.66666667 15.8333333,6.66666667 Z M13.3333333,15.8333333 L6.66666667,15.8333333 L6.66666667,12.5 L13.3333333,12.5 L13.3333333,15.8333333 Z M13.3333333,6.66666667 L6.66666667,6.66666667 L6.66666667,4.16666667 L13.3333333,4.16666667 L13.3333333,6.66666667 Z M15,10.4166667 C14.5416667,10.4166667 14.1666667,10.0416667 14.1666667,9.58333333 C14.1666667,9.125 14.5416667,8.75 15,8.75 C15.4583333,8.75 15.8333333,9.125 15.8333333,9.58333333 C15.8333333,10.0416667 15.4583333,10.4166667 15,10.4166667 Z" id="path-1"></path>
-    </defs>
-    <g fill="none" fill-rule="evenodd">
-        <g>
-            <mask fill="white">
-                <use xlink:href="#path-1"></use>
-            </mask>
-            <use fill="#FFFFFF" fill-rule="nonzero" xlink:href="#path-1"></use>
-            <rect x="0" y="0" width="20" height="20"></rect>
-        </g>
-    </g>
-</svg>
diff --git a/chrome/browser/resources/chromeos/camera/src/images/camera_app_icons_128.png b/chrome/browser/resources/chromeos/camera/src/images/camera_app_icons_128.png
deleted file mode 100644
index 4841b83..0000000
--- a/chrome/browser/resources/chromeos/camera/src/images/camera_app_icons_128.png
+++ /dev/null
Binary files differ
diff --git a/chrome/browser/resources/chromeos/camera/src/images/camera_app_icons_48.png b/chrome/browser/resources/chromeos/camera/src/images/camera_app_icons_48.png
deleted file mode 100644
index 92538b0..0000000
--- a/chrome/browser/resources/chromeos/camera/src/images/camera_app_icons_48.png
+++ /dev/null
Binary files differ
diff --git a/chrome/browser/resources/chromeos/camera/src/images/camera_button_grid_off.svg b/chrome/browser/resources/chromeos/camera/src/images/camera_button_grid_off.svg
deleted file mode 100644
index 097499f..0000000
--- a/chrome/browser/resources/chromeos/camera/src/images/camera_button_grid_off.svg
+++ /dev/null
@@ -1,20 +0,0 @@
-<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-    <defs>
-        <filter x="-31.0%" y="-31.0%" width="161.9%" height="161.9%" filterUnits="objectBoundingBox" id="filter-1">
-            <feOffset dx="0" dy="0" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
-            <feGaussianBlur stdDeviation="1.5" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
-            <feColorMatrix values="0 0 0 0 0.125490196   0 0 0 0 0.129411765   0 0 0 0 0.141176471  0 0 0 0.3 0" type="matrix" in="shadowBlurOuter1" result="shadowMatrixOuter1"></feColorMatrix>
-            <feMerge>
-                <feMergeNode in="shadowMatrixOuter1"></feMergeNode>
-                <feMergeNode in="SourceGraphic"></feMergeNode>
-            </feMerge>
-        </filter>
-    </defs>
-    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
-        <g id="Page-1" filter="url(#filter-1)" transform="translate(2.000000, 2.000000)">
-            <path d="M13.725,6.999875 L17.0583333,6.999875 L17.0583333,3.66654167 L13.725,3.66654167 L13.725,6.999875 Z M7.05833333,3.66654167 L7.05833333,5.137375 L8.725,6.80404167 L8.725,3.66654167 L12.0583333,3.66654167 L12.0583333,6.999875 L8.92125,6.999875 L10.5879167,8.66654167 L12.0583333,8.66654167 L12.0583333,10.137375 L12.49375,10.5727917 L13.725,11.8040417 L13.725,8.66654167 L17.0583333,8.66654167 L17.0583333,11.999875 L13.92125,11.999875 L15.5879167,13.6665417 L17.0583333,13.6665417 L17.0583333,15.137375 L18.725,16.8040417 L18.725,3.66654167 C18.725,2.749875 17.975,1.999875 17.0583333,1.999875 L3.92125,1.999875 L5.58791667,3.66654167 L7.05833333,3.66654167 Z" id="Fill-1" fill="#FFFFFF"></path>
-            <path d="M13.725,17 L13.725,15.975 L14.75,17 L13.725,17 Z M8.725,17 L8.725,13.6666667 L11.4166667,13.6666667 L12.0583333,14.3083333 L12.0583333,17 L8.725,17 Z M3.725,12 L3.725,8.66666667 L6.41666667,8.66666667 L7.05833333,9.30833333 L7.05833333,12 L3.725,12 Z M3.725,17 L7.05833333,17 L7.05833333,13.6666667 L3.725,13.6666667 L3.725,17 Z M4.75,7 L3.725,7 L3.725,5.975 L4.75,7 Z M8.725,10.975 L9.75,12 L8.725,12 L8.725,10.975 Z M18.4420833,18.5754167 L11.4666667,11.6 L2.05833333,2.19166667 L1,3.25 L2.05833333,4.30833333 L2.05833333,17 C2.05833333,17.9166667 2.80833333,18.6666667 3.725,18.6666667 L16.4166667,18.6666667 L17.38375,19.63375 L18.4420833,18.5754167 Z" id="Fill-3" fill="#FFFFFF"></path>
-            <rect id="Rectangle" x="0.395833313" y="0.333333333" width="20" height="20"></rect>
-        </g>
-    </g>
-</svg>
diff --git a/chrome/browser/resources/chromeos/camera/src/images/camera_button_grid_on.svg b/chrome/browser/resources/chromeos/camera/src/images/camera_button_grid_on.svg
deleted file mode 100644
index cf581ff..0000000
--- a/chrome/browser/resources/chromeos/camera/src/images/camera_button_grid_on.svg
+++ /dev/null
@@ -1,19 +0,0 @@
-<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-    <defs>
-        <path d="M19.3,4 L5.7,4 C4.765,4 4,4.765 4,5.7 L4,19.3 C4,20.235 4.765,21 5.7,21 L19.3,21 C20.235,21 21,20.235 21,19.3 L21,5.7 C21,4.765 20.235,4 19.3,4 Z M9.1,19.3 L5.7,19.3 L5.7,15.9 L9.1,15.9 L9.1,19.3 Z M9.1,14.2 L5.7,14.2 L5.7,10.8 L9.1,10.8 L9.1,14.2 Z M9.1,9.1 L5.7,9.1 L5.7,5.7 L9.1,5.7 L9.1,9.1 Z M14.2,19.3 L10.8,19.3 L10.8,15.9 L14.2,15.9 L14.2,19.3 Z M14.2,14.2 L10.8,14.2 L10.8,10.8 L14.2,10.8 L14.2,14.2 Z M14.2,9.1 L10.8,9.1 L10.8,5.7 L14.2,5.7 L14.2,9.1 Z M19.3,19.3 L15.9,19.3 L15.9,15.9 L19.3,15.9 L19.3,19.3 Z M19.3,14.2 L15.9,14.2 L15.9,10.8 L19.3,10.8 L19.3,14.2 Z M19.3,9.1 L15.9,9.1 L15.9,5.7 L19.3,5.7 L19.3,9.1 Z" id="path-1"></path>
-        <filter x="-26.5%" y="-26.5%" width="152.9%" height="152.9%" filterUnits="objectBoundingBox" id="filter-3">
-            <feOffset dx="0" dy="0" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
-            <feGaussianBlur stdDeviation="1.5" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
-            <feColorMatrix values="0 0 0 0 0.125490196   0 0 0 0 0.129411765   0 0 0 0 0.141176471  0 0 0 0.3 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix>
-        </filter>
-    </defs>
-    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
-        <mask id="mask-2" fill="white">
-            <use xlink:href="#path-1"></use>
-        </mask>
-        <g id="ic_grid_on_24px" fill-rule="nonzero">
-            <use fill="black" fill-opacity="1" filter="url(#filter-3)" xlink:href="#path-1"></use>
-            <use fill="#FFFFFF" xlink:href="#path-1"></use>
-        </g>
-    </g>
-</svg>
diff --git a/chrome/browser/resources/chromeos/camera/src/images/camera_button_mic_off.svg b/chrome/browser/resources/chromeos/camera/src/images/camera_button_mic_off.svg
deleted file mode 100644
index 12ad5c68..0000000
--- a/chrome/browser/resources/chromeos/camera/src/images/camera_button_mic_off.svg
+++ /dev/null
@@ -1,19 +0,0 @@
-<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-    <defs>
-        <path d="M11.0083333,6.9 C11.0083333,6.44166667 11.3833333,6.06666667 11.8416667,6.06666667 C12.3,6.06666667 12.675,6.44166667 12.675,6.9 L12.675,11.2083333 L14.1916667,12.725 C14.2833333,12.4666667 14.3416667,12.1916667 14.3416667,11.9 L14.3416667,6.9 C14.3416667,5.51666667 13.225,4.4 11.8416667,4.4 C10.4583333,4.4 9.34166667,5.51666667 9.34166667,6.9 L9.34166667,7.875 L11.0083333,9.54166667 L11.0083333,6.9 Z M4.18333333,5.075 L3,6.25 L12.7083333,15.9583333 C12.4333333,16.025 12.1416667,16.0666667 11.8416667,16.0666667 C9.54166667,16.0666667 7.675,14.2 7.675,11.9 L6.00833333,11.9 C6.00833333,14.8416667 8.18333333,17.2583333 11.0083333,17.6666667 L11.0083333,20.2333333 L12.675,20.2333333 L12.675,17.6666667 C13.15,17.6 13.6083333,17.4666667 14.0416667,17.2833333 L18.325,21.5666667 L19.5,20.3916667 L4.18333333,5.075 Z M17.675,11.9 L16.0083333,11.9 C16.0083333,12.6583333 15.7916667,13.3583333 15.4333333,13.9666667 L16.65,15.1833333 C17.2916667,14.25 17.675,13.125 17.675,11.9 Z" id="path-1"></path>
-        <filter x="-27.3%" y="-26.2%" width="154.5%" height="152.4%" filterUnits="objectBoundingBox" id="filter-3">
-            <feOffset dx="0" dy="0" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
-            <feGaussianBlur stdDeviation="1.5" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
-            <feColorMatrix values="0 0 0 0 0.125490196   0 0 0 0 0.129411765   0 0 0 0 0.141176471  0 0 0 0.3 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix>
-        </filter>
-    </defs>
-    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
-        <mask id="mask-2" fill="white">
-            <use xlink:href="#path-1"></use>
-        </mask>
-        <g id="ic_mic_off_24px" fill-rule="nonzero">
-            <use fill="black" fill-opacity="1" filter="url(#filter-3)" xlink:href="#path-1"></use>
-            <use fill="#FFFFFF" xlink:href="#path-1"></use>
-        </g>
-    </g>
-</svg>
diff --git a/chrome/browser/resources/chromeos/camera/src/images/camera_button_mic_on.svg b/chrome/browser/resources/chromeos/camera/src/images/camera_button_mic_on.svg
deleted file mode 100644
index f9632e9..0000000
--- a/chrome/browser/resources/chromeos/camera/src/images/camera_button_mic_on.svg
+++ /dev/null
@@ -1,22 +0,0 @@
-<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-    <defs>
-        <filter x="-54.2%" y="-40.6%" width="208.3%" height="181.2%" filterUnits="objectBoundingBox" id="filter-1">
-            <feOffset dx="0" dy="0" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
-            <feGaussianBlur stdDeviation="1.5" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
-            <feColorMatrix values="0 0 0 0 0.125490196   0 0 0 0 0.129411765   0 0 0 0 0.141176471  0 0 0 0.3 0" type="matrix" in="shadowBlurOuter1" result="shadowMatrixOuter1"></feColorMatrix>
-            <feMerge>
-                <feMergeNode in="shadowMatrixOuter1"></feMergeNode>
-                <feMergeNode in="SourceGraphic"></feMergeNode>
-            </feMerge>
-        </filter>
-        <path d="M5.83333333,10 C7.21666667,10 8.33333333,8.88333333 8.33333333,7.5 L8.33333333,2.5 C8.33333333,1.11666667 7.21666667,0 5.83333333,0 C4.45,0 3.33333333,1.11666667 3.33333333,2.5 L3.33333333,7.5 C3.33333333,8.88333333 4.45,10 5.83333333,10 Z M10,7.5 C10,9.8 8.13333333,11.6666667 5.83333333,11.6666667 C3.53333333,11.6666667 1.66666667,9.8 1.66666667,7.5 L0,7.5 C0,10.4416667 2.175,12.8583333 5,13.2666667 L5,15.8333333 L6.66666667,15.8333333 L6.66666667,13.2666667 C9.49166667,12.8583333 11.6666667,10.4416667 11.6666667,7.5 L10,7.5 Z" id="path-2"></path>
-    </defs>
-    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
-        <g id="Group" filter="url(#filter-1)" transform="translate(6.166667, 4.500000)">
-            <mask id="mask-3" fill="white">
-                <use xlink:href="#path-2"></use>
-            </mask>
-            <use id="ic_mic_24px" fill="#FFFFFF" fill-rule="nonzero" xlink:href="#path-2"></use>
-        </g>
-    </g>
-</svg>
diff --git a/chrome/browser/resources/chromeos/camera/src/images/camera_button_mirror_off.svg b/chrome/browser/resources/chromeos/camera/src/images/camera_button_mirror_off.svg
deleted file mode 100644
index 53d070f0..0000000
--- a/chrome/browser/resources/chromeos/camera/src/images/camera_button_mirror_off.svg
+++ /dev/null
@@ -1,32 +0,0 @@
-<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-    <defs>
-        <filter x="-32.5%" y="-32.5%" width="165.0%" height="165.0%" filterUnits="objectBoundingBox" id="filter-1">
-            <feOffset dx="0" dy="0" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
-            <feGaussianBlur stdDeviation="1.5" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
-            <feColorMatrix values="0 0 0 0 0.125490196   0 0 0 0 0.129411765   0 0 0 0 0.141176471  0 0 0 0.3 0" type="matrix" in="shadowBlurOuter1" result="shadowMatrixOuter1"></feColorMatrix>
-            <feMerge>
-                <feMergeNode in="shadowMatrixOuter1"></feMergeNode>
-                <feMergeNode in="SourceGraphic"></feMergeNode>
-            </feMerge>
-        </filter>
-        <polygon id="path-2" points="0 20 20 20 20 0 0 0"></polygon>
-    </defs>
-    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
-        <g id="Group-13" filter="url(#filter-1)" transform="translate(2.000000, 2.100000)">
-            <path d="M16,16 L16,18 C16.8215,18 17.5305,17.4975 17.8375,16.7855 L17.0515,16 L16,16 Z" id="Fill-1" fill="#FFFFFF"></path>
-            <mask id="mask-3" fill="white">
-                <use xlink:href="#path-2"></use>
-            </mask>
-            <g id="Clip-4"></g>
-            <polygon id="Fill-3" fill="#FFFFFF" mask="url(#mask-3)" points="12.5 17.9 14.5 17.9 14.5 15.9 12.5 15.9"></polygon>
-            <polygon id="Fill-5" fill="#FFFFFF" mask="url(#mask-3)" points="11 1 9 1 9 5.598 11 7.598"></polygon>
-            <polygon id="Fill-6" fill="#FFFFFF" mask="url(#mask-3)" points="6.599 2 5 2 6.599 3.5995"></polygon>
-            <polygon id="Fill-7" fill="#FFFFFF" mask="url(#mask-3)" points="12 4 14 4 14 2 12 2"></polygon>
-            <path d="M16,2 L16,4 L18,4 C18,2.9 17.1,2 16,2" id="Fill-8" fill="#FFFFFF" mask="url(#mask-3)"></path>
-            <path d="M18.683,17.8898895 L2.183,2 L1,3.175 C1.78866667,3.97597656 2.183,4.37646484 2.183,4.37646484 L2.183,16.2894766 C2.183,17.2144766 2.75,17.9709766 3.6665,17.9709766 L7.00479126,17.9709766 L7.00479126,15.9634766 L4.0022583,15.9634766 L4.0022583,6.14196777 L9,11.0465088 L9,19.0653895 L11.183,19.0653895 L11.183,12.9332275 L17.508,19.0653895 L18.683,17.8898895 Z" id="Fill-9" fill="#FFFFFF" mask="url(#mask-3)"></path>
-            <polygon id="Fill-10" fill="#FFFFFF" mask="url(#mask-3)" points="16 8 18 8 18 6 16 6"></polygon>
-            <polygon id="Fill-11" fill="#FFFFFF" mask="url(#mask-3)" points="16 11 18 11 18 9 16 9"></polygon>
-            <polygon id="Fill-12" fill="#FFFFFF" mask="url(#mask-3)" points="18 14.5 18 12.5 16 12.5 16 12.5975 17.9025 14.5"></polygon>
-        </g>
-    </g>
-</svg>
diff --git a/chrome/browser/resources/chromeos/camera/src/images/camera_button_mirror_on.svg b/chrome/browser/resources/chromeos/camera/src/images/camera_button_mirror_on.svg
deleted file mode 100644
index 58af6b6..0000000
--- a/chrome/browser/resources/chromeos/camera/src/images/camera_button_mirror_on.svg
+++ /dev/null
@@ -1,22 +0,0 @@
-<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-    <defs>
-        <filter x="-38.2%" y="-36.1%" width="176.5%" height="172.2%" filterUnits="objectBoundingBox" id="filter-1">
-            <feOffset dx="0" dy="0" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
-            <feGaussianBlur stdDeviation="1.5" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
-            <feColorMatrix values="0 0 0 0 0.125490196   0 0 0 0 0.129411765   0 0 0 0 0.141176471  0 0 0 0.3 0" type="matrix" in="shadowBlurOuter1" result="shadowMatrixOuter1"></feColorMatrix>
-            <feMerge>
-                <feMergeNode in="shadowMatrixOuter1"></feMergeNode>
-                <feMergeNode in="SourceGraphic"></feMergeNode>
-            </feMerge>
-        </filter>
-        <path d="M10,17 L12,17 L12,15 L10,15 L10,17 Z M14,7 L16,7 L16,5 L14,5 L14,7 Z M0,2.72727273 L0,15.3054421 C0,16.2554421 0.773999977,17 1.71999995,17 L5,17 L5,15 L2,15 L2,3.05543312 L5,3.05543312 L5,1 L1.71999995,1 C0.773999977,1 0,1.77727273 0,2.72727273 Z M14,1 L14,3 L16,3 C16,1.9 15.1,1 14,1 Z M7,18 L9,18 L9,0 L7,0 L7,18 Z M14,13 L16,13 L16,11 L14,11 L14,13 Z M10,3 L12,3 L12,1 L10,1 L10,3 Z M14,10 L16,10 L16,8 L14,8 L14,10 Z M14,17.0540541 C15.1354839,17.0540541 16.0645161,16.1297297 16.0645161,15 L14,15 L14,17.0540541 Z" id="path-2"></path>
-    </defs>
-    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
-        <g id="Group" filter="url(#filter-1)" transform="translate(4.000000, 3.000000)">
-            <mask id="mask-3" fill="white">
-                <use xlink:href="#path-2"></use>
-            </mask>
-            <use id="ic_flip_24px" fill="#FFFFFF" fill-rule="nonzero" xlink:href="#path-2"></use>
-        </g>
-    </g>
-</svg>
diff --git a/chrome/browser/resources/chromeos/camera/src/images/camera_button_settings.svg b/chrome/browser/resources/chromeos/camera/src/images/camera_button_settings.svg
deleted file mode 100644
index 37c3b579..0000000
--- a/chrome/browser/resources/chromeos/camera/src/images/camera_button_settings.svg
+++ /dev/null
@@ -1,27 +0,0 @@
-<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-    <defs>
-        <filter x="-52.5%" y="-52.5%" width="205.0%" height="205.0%" filterUnits="objectBoundingBox" id="filter-1">
-            <feOffset dx="0" dy="2" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
-            <feGaussianBlur stdDeviation="1.5" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
-            <feColorMatrix values="0 0 0 0 0.125490196   0 0 0 0 0.129411765   0 0 0 0 0.141176471  0 0 0 0.3 0" type="matrix" in="shadowBlurOuter1" result="shadowMatrixOuter1"></feColorMatrix>
-            <feMerge>
-                <feMergeNode in="shadowMatrixOuter1"></feMergeNode>
-                <feMergeNode in="SourceGraphic"></feMergeNode>
-            </feMerge>
-        </filter>
-        <path d="M11.6628542,19 L8.33386438,19 C7.66806642,19 7.11023569,18.5256223 7.02926026,17.8843338 L6.78633397,16.2240117 C6.54340769,16.1010249 6.30947867,15.9692533 6.07554965,15.8199122 L4.45604108,16.4524158 C3.82623219,16.6808199 3.13344241,16.4260615 2.82753524,15.8814056 L1.18103486,13.0966325 C0.866130414,12.5168375 1.00108946,11.8316252 1.50493657,11.4450952 L2.88151886,10.3997072 C2.87252159,10.2679356 2.86352432,10.136164 2.86352432,9.99560761 C2.86352432,9.86383602 2.87252159,9.72327965 2.88151886,9.59150805 L1.51393384,8.54612006 C0.983094922,8.15080527 0.848135875,7.43923865 1.18103486,6.89458272 L2.84552978,4.09224012 C3.15143695,3.54758419 3.84422673,3.30161054 4.45604108,3.53879941 L6.08454692,4.18008785 C6.31847594,4.03074671 6.55240496,3.89897511 6.78633397,3.77598829 L7.02926026,2.09809663 C7.11023569,1.48316252 7.66806642,1 8.32486711,1 L11.653857,1 C12.3196549,1 12.8774857,1.47437775 12.9584611,2.11566618 L13.2013874,3.77598829 C13.4443137,3.89897511 13.6782427,4.03074671 13.9121717,4.18008785 L15.5316803,3.54758419 C16.1704864,3.31918009 16.8632762,3.57393851 17.1691834,4.11859444 L18.824681,6.91215227 C19.1485827,7.49194729 19.0046264,8.17715959 18.5007793,8.5636896 L17.1331943,9.6090776 C17.1421916,9.74084919 17.1511888,9.87262079 17.1511888,10.0131772 C17.1511888,10.1537335 17.1421916,10.2855051 17.1331943,10.4172767 L18.5007793,11.4626647 C19.0046264,11.8579795 19.1485827,12.5431918 18.8336783,13.0966325 L17.1601861,15.9253294 C16.8542789,16.4699854 16.1614891,16.715959 15.5406775,16.4787701 L13.921169,15.8462665 C13.6872399,15.9956076 13.4533109,16.1273792 13.2193819,16.250366 L12.9764556,17.9282577 C12.8864829,18.5256223 12.3286522,19 11.6628542,19 Z M11.1859989,17.6559297 L11.1859989,17.6734993 L11.1859989,17.6559297 Z M8.81071969,17.6383602 L8.81071969,17.6559297 C8.81971696,17.6559297 8.81971696,17.6471449 8.81071969,17.6383602 Z M8.75673607,17.2430454 L11.2399825,17.2430454 L11.5728815,15.0029283 L12.0497368,14.8096633 C12.4456167,14.6515373 12.8414966,14.4231332 13.255371,14.124451 L13.6602481,13.8257687 L15.8015984,14.6691069 L17.0432216,12.5607613 L15.2167758,11.1727672 L15.2797567,10.6808199 C15.3067485,10.4524158 15.3337403,10.2327965 15.3337403,9.99560761 C15.3337403,9.75841874 15.3067485,9.53001464 15.2797567,9.31039531 L15.2167758,8.81844802 L17.0432216,7.43045388 L15.7926011,5.32210835 L13.6422536,6.16544656 L13.2373764,5.8579795 C12.8594911,5.57686676 12.454614,5.34846266 12.0407396,5.18155198 L11.5728815,4.98828697 L11.2399825,2.74816984 L8.75673607,2.74816984 L8.42383708,4.98828697 L7.94698178,5.1727672 C7.55110191,5.33967789 7.15522203,5.55929722 6.74134762,5.86676428 L6.33647048,6.15666179 L4.19512026,5.32210835 L2.94449975,7.42166911 L4.77094553,8.80966325 L4.70796464,9.30161054 C4.68097283,9.53001464 4.65398102,9.76720351 4.65398102,9.99560761 C4.65398102,10.2240117 4.67197556,10.4612006 4.70796464,10.6808199 L4.77094553,11.1727672 L2.94449975,12.5607613 L4.18612299,14.6691069 L6.33647048,13.8257687 L6.74134762,14.1332357 C7.12823023,14.4231332 7.51511283,14.6427526 7.93798451,14.8096633 L8.41483981,15.0029283 L8.75673607,17.2430454 Z M15.5946611,15.0204978 C15.5946611,15.0292826 15.5856639,15.0380673 15.5856639,15.0468521 L15.5946611,15.0204978 Z M4.39306019,15.011713 L4.40205746,15.0292826 C4.40205746,15.0204978 4.39306019,15.011713 4.39306019,15.011713 Z M15.5946611,4.96193265 C15.5946611,4.97071742 15.6036584,4.9795022 15.6036584,4.9795022 L15.5946611,4.96193265 Z M4.41105473,4.9443631 L4.40205746,4.96193265 C4.40205746,4.96193265 4.41105473,4.95314788 4.41105473,4.9443631 Z M11.1770017,2.33528551 L11.1770017,2.35285505 L11.1770017,2.33528551 Z M9.99835931,6.92093704 C8.87331407,6.92093702 7.83372939,7.50696591 7.27120676,8.45827231 C6.70868414,9.4095787 6.70868414,10.5816365 7.27120676,11.5329429 C7.83372939,12.4842493 8.87331407,13.0702782 9.99835931,13.0702782 C11.7375285,13.0702782 13.1474038,11.6937013 13.1474038,9.99560761 C13.1474038,8.29751395 11.7375285,6.92093704 9.99835931,6.92093704 Z" id="path-2"></path>
-    </defs>
-    <g id="Mocks" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
-        <g id="camera_grid_3:3-copy" transform="translate(-24.000000, -35.000000)">
-            <g id="Left-bar" transform="translate(26.000000, 35.000000)">
-                <g id="ic_settings" filter="url(#filter-1)">
-                    <polygon id="Shape" points="0 0 20 0 20 20 0 20"></polygon>
-                    <mask id="mask-3" fill="white">
-                        <use xlink:href="#path-2"></use>
-                    </mask>
-                    <use id="ic_settings_24px" fill="#FFFFFF" fill-rule="nonzero" xlink:href="#path-2"></use>
-                </g>
-            </g>
-        </g>
-    </g>
-</svg>
diff --git a/chrome/browser/resources/chromeos/camera/src/images/camera_button_switch_device.svg b/chrome/browser/resources/chromeos/camera/src/images/camera_button_switch_device.svg
deleted file mode 100644
index 3b4bef1..0000000
--- a/chrome/browser/resources/chromeos/camera/src/images/camera_button_switch_device.svg
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<svg width="48px" height="48px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-    <!-- Generator: Sketch 51.1 (57501) - http://www.bohemiancoding.com/sketch -->
-    <title>btn_switch_1x</title>
-    <desc>Created with Sketch.</desc>
-    <defs></defs>
-    <g id="btn_switch_1x" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
-        <g id="component/switchcamera" fill="#FEFEFE">
-            <g id="Group" transform="translate(4.000000, 4.000000)">
-                <circle id="Oval-2" cx="20" cy="20" r="6"></circle>
-                <g id="Group-2">
-                    <path d="M36.0014647,32 C32.3526394,36.8577868 26.5432713,40 20,40 C8.954305,40 0,31.045695 0,20 L3,20 C3,29.3888407 10.6111593,37 20,37 C24.704999,37 28.9635724,35.0886249 32.0415948,32 L36.0014647,32 Z M40,20 L37,20 C37,10.6111593 29.3888407,3 20,3 C15.295001,3 11.0364276,4.91137512 7.9584052,8 L3.99853525,8 C7.64736057,3.14221319 13.4567287,0 20,0 C31.045695,0 40,8.954305 40,20 Z" id="Combined-Shape"></path>
-                </g>
-                <polygon id="Rectangle-2" points="3 2 13 12 3 12"></polygon>
-                <polygon id="Rectangle-2" transform="translate(32.000000, 33.000000) rotate(180.000000) translate(-32.000000, -33.000000) " points="27 28 37 38 27 38"></polygon>
-            </g>
-        </g>
-    </g>
-</svg>
\ No newline at end of file
diff --git a/chrome/browser/resources/chromeos/camera/src/images/camera_button_switch_photo.svg b/chrome/browser/resources/chromeos/camera/src/images/camera_button_switch_photo.svg
deleted file mode 100644
index 339624e..0000000
--- a/chrome/browser/resources/chromeos/camera/src/images/camera_button_switch_photo.svg
+++ /dev/null
@@ -1,10 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="56" height="56" viewBox="0 0 56 56">
-  <g fill="none" fill-rule="evenodd" transform="translate(4 4)">
-    <circle cx="24" cy="24" r="24" stroke="#FFF" stroke-width="1.5" opacity=".9"/>
-    <g transform="translate(10 10)">
-      <path fill="#FFF" fill-rule="nonzero" d="M10.5,2.33333333 L8.365,4.66666667 L4.66666667,4.66666667 C3.38333333,4.66666667 2.33333333,5.71666667 2.33333333,7 L2.33333333,21 C2.33333333,22.2833333 3.38333333,23.3333333 4.66666667,23.3333333 L23.3333333,23.3333333 C24.6166667,23.3333333 25.6666667,22.2833333 25.6666667,21 L25.6666667,7 C25.6666667,5.71666667 24.6166667,4.66666667 23.3333333,4.66666667 L19.635,4.66666667 L17.5,2.33333333 L10.5,2.33333333 Z M14,19.8333333 C10.78,19.8333333 8.16666667,17.22 8.16666667,14 C8.16666667,10.78 10.78,8.16666667 14,8.16666667 C17.22,8.16666667 19.8333333,10.78 19.8333333,14 C19.8333333,17.22 17.22,19.8333333 14,19.8333333 Z"/>
-      <polygon points="0 0 28 0 28 28 0 28"/>
-      <circle cx="14" cy="14" r="3.733" fill="#FFF" fill-rule="nonzero"/>
-    </g>
-  </g>
-</svg>
diff --git a/chrome/browser/resources/chromeos/camera/src/images/camera_button_switch_video.svg b/chrome/browser/resources/chromeos/camera/src/images/camera_button_switch_video.svg
deleted file mode 100644
index 8219f20..0000000
--- a/chrome/browser/resources/chromeos/camera/src/images/camera_button_switch_video.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="56" height="56" viewBox="0 0 56 56">
-  <g fill="none" fill-rule="evenodd" transform="translate(4 4)">
-    <circle cx="24" cy="24" r="24" stroke="#FFF" stroke-width="1.5" opacity=".9"/>
-    <path fill="#FFF" fill-rule="nonzero" d="M30,22.48 L30,18 C30,16.9 29.1,16 28,16 L16,16 C14.9,16 14,16.9 14,18 L14,30 C14,31.1 14.9,32 16,32 L28,32 C29.1,32 30,31.1 30,30 L30,25.52 L34,29.5 L34,18.5 L30,22.48 Z M28,21.69 L28,30 L16,30 L16,18 L28,18 L28,21.69 Z"/>
-  </g>
-</svg>
diff --git a/chrome/browser/resources/chromeos/camera/src/images/camera_button_timer_off.svg b/chrome/browser/resources/chromeos/camera/src/images/camera_button_timer_off.svg
deleted file mode 100644
index bdbd257..0000000
--- a/chrome/browser/resources/chromeos/camera/src/images/camera_button_timer_off.svg
+++ /dev/null
@@ -1,19 +0,0 @@
-<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-    <defs>
-        <path d="M18.4083333,5.95833333 L17.225,7.14166667 C15.9333333,6.11666667 14.3083333,5.5 12.5416667,5.5 C11.0166667,5.5 9.6,5.95833333 8.41666667,6.73333333 L9.63333333,7.95 C10.4833333,7.45833333 11.4833333,7.16666667 12.5416667,7.16666667 C15.7666667,7.16666667 18.375,9.775 18.375,13 C18.375,14.0583333 18.0833333,15.0583333 17.5916667,15.9083333 L18.8,17.1166667 C19.5833333,15.9416667 20.0416667,14.525 20.0416667,13 C20.0416667,11.2333333 19.425,9.60833333 18.4,8.325 L19.5833333,7.14166667 L18.4083333,5.95833333 Z M15.0416667,3 L10.0416667,3 L10.0416667,4.66666667 L15.0416667,4.66666667 L15.0416667,3 Z M11.7083333,10.0333333 L13.375,11.7 L13.375,8.83333333 L11.7083333,8.83333333 L11.7083333,10.0333333 Z M5.05833333,5.5 L4,6.55833333 L6.29166667,8.85833333 C5.5,10.0416667 5.04166667,11.4666667 5.04166667,13 C5.04166667,17.1416667 8.39166667,20.5 12.5416667,20.5 C14.075,20.5 15.5,20.0416667 16.6916667,19.25 L18.775,21.3333333 L19.8333333,20.275 L13.4083333,13.85 L5.05833333,5.5 Z M12.5416667,18.8333333 C9.31666667,18.8333333 6.70833333,16.225 6.70833333,13 C6.70833333,11.9333333 7,10.9333333 7.5,10.0666667 L15.4666667,18.0333333 C14.6083333,18.5416667 13.6083333,18.8333333 12.5416667,18.8333333 Z" id="path-1"></path>
-        <filter x="-28.1%" y="-24.5%" width="156.1%" height="149.1%" filterUnits="objectBoundingBox" id="filter-3">
-            <feOffset dx="0" dy="0" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
-            <feGaussianBlur stdDeviation="1.5" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
-            <feColorMatrix values="0 0 0 0 0.125490196   0 0 0 0 0.129411765   0 0 0 0 0.141176471  0 0 0 0.3 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix>
-        </filter>
-    </defs>
-    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
-        <mask id="mask-2" fill="white">
-            <use xlink:href="#path-1"></use>
-        </mask>
-        <g id="Shape" fill-rule="nonzero">
-            <use fill="black" fill-opacity="1" filter="url(#filter-3)" xlink:href="#path-1"></use>
-            <use fill="#FFFFFF" xlink:href="#path-1"></use>
-        </g>
-    </g>
-</svg>
diff --git a/chrome/browser/resources/chromeos/camera/src/images/camera_button_timer_on_10s.svg b/chrome/browser/resources/chromeos/camera/src/images/camera_button_timer_on_10s.svg
deleted file mode 100644
index 11e667f..0000000
--- a/chrome/browser/resources/chromeos/camera/src/images/camera_button_timer_on_10s.svg
+++ /dev/null
@@ -1,19 +0,0 @@
-<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-    <defs>
-        <path d="M15,3 L10,3 L10,4.66666667 L15,4.66666667 L15,3 Z M18.3583333,8.325 L19.5416667,7.14166667 C19.1833333,6.71666667 18.7916667,6.31666667 18.3666667,5.96666667 L17.1833333,7.15 C15.8916667,6.11666667 14.2666667,5.5 12.5,5.5 C8.35833333,5.5 5,8.85833333 5,13 C5,17.1416667 8.35,20.5 12.5,20.5 C16.65,20.5 20,17.1416667 20,13 C20,11.2333333 19.3833333,9.60833333 18.3583333,8.325 Z M12.5,18.8333333 C9.275,18.8333333 6.66666667,16.225 6.66666667,13 C6.66666667,9.775 9.275,7.16666667 12.5,7.16666667 C15.725,7.16666667 18.3333333,9.775 18.3333333,13 C18.3333333,16.225 15.725,18.8333333 12.5,18.8333333 Z M8.33333333,11.0952381 L9.28571429,11.0952381 L9.28571429,16.3333333 L10.7142857,16.3333333 L10.7142857,9.66666667 L8.33333333,9.66666667 L8.33333333,11.0952381 Z M15.8333333,11.0952381 L15.8333333,14.9047619 C15.8333333,15.6952381 15.1952381,16.3333333 14.4047619,16.3333333 L13.452381,16.3333333 C12.6619048,16.3333333 12.0238095,15.6952381 12.0238095,14.9047619 L12.0238095,11.0952381 C12.0238095,10.3047619 12.6619048,9.66666667 13.452381,9.66666667 L14.4047619,9.66666667 C15.1952381,9.66666667 15.8333333,10.3047619 15.8333333,11.0952381 Z M14.4047619,11.0952381 L13.452381,11.0952381 L13.452381,14.9047619 L14.4047619,14.9047619 L14.4047619,11.0952381 Z" id="path-1"></path>
-        <filter x="-30.0%" y="-25.7%" width="160.0%" height="151.4%" filterUnits="objectBoundingBox" id="filter-3">
-            <feOffset dx="0" dy="0" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
-            <feGaussianBlur stdDeviation="1.5" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
-            <feColorMatrix values="0 0 0 0 0.125490196   0 0 0 0 0.129411765   0 0 0 0 0.141176471  0 0 0 0.3 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix>
-        </filter>
-    </defs>
-    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
-        <mask id="mask-2" fill="white">
-            <use xlink:href="#path-1"></use>
-        </mask>
-        <g id="Shape" fill-rule="nonzero">
-            <use fill="black" fill-opacity="1" filter="url(#filter-3)" xlink:href="#path-1"></use>
-            <use fill="#FFFFFF" xlink:href="#path-1"></use>
-        </g>
-    </g>
-</svg>
diff --git a/chrome/browser/resources/chromeos/camera/src/images/camera_button_timer_on_3s.svg b/chrome/browser/resources/chromeos/camera/src/images/camera_button_timer_on_3s.svg
deleted file mode 100644
index efbd281..0000000
--- a/chrome/browser/resources/chromeos/camera/src/images/camera_button_timer_on_3s.svg
+++ /dev/null
@@ -1,19 +0,0 @@
-<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-    <defs>
-        <path d="M15,3 L10,3 L10,4.66666667 L15,4.66666667 L15,3 Z M18.3583333,8.325 L19.5416667,7.14166667 C19.1833333,6.71666667 18.7916667,6.31666667 18.3666667,5.96666667 L17.1833333,7.15 C15.8916667,6.11666667 14.2666667,5.5 12.5,5.5 C8.35833333,5.5 5,8.85833333 5,13 C5,17.1416667 8.35,20.5 12.5,20.5 C16.65,20.5 20,17.1416667 20,13 C20,11.2333333 19.3833333,9.60833333 18.3583333,8.325 Z M12.5,18.8333333 C9.275,18.8333333 6.66666667,16.225 6.66666667,13 C6.66666667,9.775 9.275,7.16666667 12.5,7.16666667 C15.725,7.16666667 18.3333333,9.775 18.3333333,13 C18.3333333,16.225 15.725,18.8333333 12.5,18.8333333 Z M15,14.9047619 L15,13.8333333 C15,13.2428571 14.4388889,12.7619048 13.75,12.7619048 C14.4388889,12.7619048 15,12.2809524 15,11.6904762 L15,11.0952381 C15,10.3047619 14.25,9.66666667 13.3333333,9.66666667 L10,9.66666667 L10,11.0952381 L13.3333333,11.0952381 L13.3333333,12.047619 L11.6666667,12.047619 L11.6666667,13.4761905 L13.3333333,13.4761905 L13.3333333,14.9047619 L10,14.9047619 L10,16.3333333 L13.3333333,16.3333333 C14.25,16.3333333 15,15.6952381 15,14.9047619 Z" id="path-1"></path>
-        <filter x="-30.0%" y="-25.7%" width="160.0%" height="151.4%" filterUnits="objectBoundingBox" id="filter-3">
-            <feOffset dx="0" dy="0" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
-            <feGaussianBlur stdDeviation="1.5" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
-            <feColorMatrix values="0 0 0 0 0.125490196   0 0 0 0 0.129411765   0 0 0 0 0.141176471  0 0 0 0.3 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix>
-        </filter>
-    </defs>
-    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
-        <mask id="mask-2" fill="white">
-            <use xlink:href="#path-1"></use>
-        </mask>
-        <g id="Shape" fill-rule="nonzero">
-            <use fill="black" fill-opacity="1" filter="url(#filter-3)" xlink:href="#path-1"></use>
-            <use fill="#FFFFFF" xlink:href="#path-1"></use>
-        </g>
-    </g>
-</svg>
diff --git a/chrome/browser/resources/chromeos/camera/src/images/camera_focus_aim.svg b/chrome/browser/resources/chromeos/camera/src/images/camera_focus_aim.svg
deleted file mode 100644
index 758b23a..0000000
--- a/chrome/browser/resources/chromeos/camera/src/images/camera_focus_aim.svg
+++ /dev/null
@@ -1,126 +0,0 @@
-<svg id="inner_circle_focus" xmlns="http://www.w3.org/2000/svg" width="120px" height="120px" transform="scale(0.6)" >
-    <g id="outer_circle_focus_outlines_position" transform="translate(60,60)" >
-        <g id="outer_circle_focus_outlines_rotation" transform="rotate(0)" >
-            <g id="outer_circle_focus_outlines_scale_x" transform="scale(1.42353, 1)" >
-                <g id="outer_circle_focus_outlines_scale_y" transform="scale(1, 1.42353)" >
-                    <g id="outer_circle_focus_outlines_pivot" transform="translate(-42.5,-42.5)" >
-                        <g id="outer_circle_focus_outlines" opacity="0" >
-                            <g id="group_1_transform" transform="translate(42.5,42.5)" >
-                                <g id="group_1" >
-                                    <path id="path_1" d="M 0.0,40.0 c 22.091003418,0.0 40.0,-17.908996582 40.0,-40.0 c 0.0,-22.091003418 -17.908996582,-40.0 -40.0,-40.0 c -22.091003418,0.0 -40.0,17.908996582 -40.0,40.0 c 0.0,22.091003418 17.908996582,40.0 40.0,40.0 Z" stroke="#FFFFFF" stroke-width="1" fill="none" />
-                                </g>
-                            </g>
-                        </g>
-                    </g>
-                </g>
-            </g>
-        </g>
-    </g>
-    <g id="inner_circle_focus_outlines_position" transform="translate(60,60)" >
-        <g id="inner_circle_focus_outlines_rotation" transform="rotate(0)" >
-            <g id="inner_circle_focus_outlines_scale_x" transform="scale(0.37324, 1)" >
-                <g id="inner_circle_focus_outlines_scale_y" transform="scale(1, 0.35973)" >
-                    <g id="inner_circle_focus_outlines_pivot" transform="translate(-37,-37)" >
-                        <g id="inner_circle_focus_outlines" opacity="0" >
-                            <g id="group_1_transform_0" transform="translate(37.5,37.5)" >
-                                <g id="group_2" >
-                                    <path id="path_2" d="M -32.5,-0.5 c 0.0,17.6730041504 14.3269958496,32.0 32.0,32.0 c 17.6730041504,0.0 32.0,-14.3269958496 32.0,-32.0 c 0.0,-17.6730041504 -14.3269958496,-32.0 -32.0,-32.0 c -17.6730041504,0.0 -32.0,14.3269958496 -32.0,32.0 Z" fill="#FFFFFF" />
-                                </g>
-                            </g>
-                        </g>
-                    </g>
-                </g>
-            </g>
-        </g>
-    </g>
-    <style>
-      @keyframes outer_circle_focus_outlines_scale_x_animation {
-        0% {
-          transform: scale(1.42353, 1);
-          animation-timing-function: cubic-bezier(0.174606606667, 0.0997861131319, 0.593112952494, 0.780748340468);
-        }
-        60% {
-          transform: scale(0.97887, 1);
-          animation-timing-function: cubic-bezier(0.351379547454, 2.65658848267, 0.698426429671, 1.0);
-        }
-        100% {
-          transform: scale(1.0, 1);
-        }
-      }
-      #outer_circle_focus_outlines_scale_x {
-        animation: 1.001s forwards outer_circle_focus_outlines_scale_x_animation;
-      }
-      @keyframes outer_circle_focus_outlines_scale_y_animation {
-        0% {
-          transform: scale(1, 1.42353);
-          animation-timing-function: cubic-bezier(0.174606606667, 0.0997861131319, 0.593112952494, 0.780748340468);
-        }
-        60% {
-          transform: scale(1, 0.97887);
-          animation-timing-function: cubic-bezier(0.351379547454, 2.65658848267, 0.698426429671, 1.0);
-        }
-        100% {
-          transform: scale(1, 1.0);
-        }
-      }
-      #outer_circle_focus_outlines_scale_y {
-        animation: 1.001s forwards outer_circle_focus_outlines_scale_y_animation;
-      }
-      @keyframes outer_circle_focus_outlines_animation {
-        0% {
-          opacity: 0;
-          animation-timing-function: cubic-bezier(0.0, 0.0, 0.66666667, 1.0);
-        }
-        54.54545454550001% {
-          opacity: 1;
-          animation-timing-function: cubic-bezier(0.0, 0.0, 0.66666667, 1.0);
-        }
-        100% {
-          opacity: 0;
-        }
-      }
-      #outer_circle_focus_outlines {
-        animation: 3.67s forwards outer_circle_focus_outlines_animation;
-      }
-      @keyframes inner_circle_focus_outlines_scale_x_animation {
-        0% {
-          transform: scale(0.37324, 1);
-          animation-timing-function: cubic-bezier(0.0, 0.0, 0.66666667, 1.0);
-        }
-        100% {
-          transform: scale(1.22973, 1);
-        }
-      }
-      #inner_circle_focus_outlines_scale_x {
-        animation: 1.001s forwards inner_circle_focus_outlines_scale_x_animation;
-      }
-      @keyframes inner_circle_focus_outlines_scale_y_animation {
-        0% {
-          transform: scale(1, 0.35973);
-          animation-timing-function: cubic-bezier(0.0, 0.0, 0.66666667, 1.0);
-        }
-        100% {
-          transform: scale(1, 1.22973);
-        }
-      }
-      #inner_circle_focus_outlines_scale_y {
-        animation: 1.001s forwards inner_circle_focus_outlines_scale_y_animation;
-      }
-      @keyframes inner_circle_focus_outlines_animation {
-        0% {
-          opacity: 0;
-          animation-timing-function: cubic-bezier(0.0, 0.0, 0.66666667, 1.0);
-        }
-        50% {
-          opacity: 0.8;
-          animation-timing-function: cubic-bezier(0.0, 0.0, 0.66666667, 1.0);
-        }
-        100% {
-          opacity: 0;
-        }
-      }
-      #inner_circle_focus_outlines {
-        animation: 2.002s forwards inner_circle_focus_outlines_animation;
-      }
-    </style>
-</svg>
diff --git a/chrome/browser/resources/chromeos/camera/src/images/camera_mode_photo.svg b/chrome/browser/resources/chromeos/camera/src/images/camera_mode_photo.svg
deleted file mode 100644
index 5f77e83..0000000
--- a/chrome/browser/resources/chromeos/camera/src/images/camera_mode_photo.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="40" height="40" viewBox="0 0 40 40">
-  <defs>
-    <path id="mode_video_1x-a" d="M32.8,9.22222222 L27.728,9.22222222 L24.8,6 L15.2,6 L12.272,9.22222222 L7.2,9.22222222 C5.44,9.22222222 4,10.6722222 4,12.4444444 L4,31.7777778 C4,33.55 5.44,35 7.2,35 L32.8,35 C34.56,35 36,33.55 36,31.7777778 L36,12.4444444 C36,10.6722222 34.56,9.22222222 32.8,9.22222222 Z M33,32 L7,32 L7,12 L33,12 L33,32 Z M20,15.6666667 C16.464,15.6666667 13.6,18.5505556 13.6,22.1111111 C13.6,25.6716667 16.464,28.5555556 20,28.5555556 C23.536,28.5555556 26.4,25.6716667 26.4,22.1111111 C26.4,18.5505556 23.536,15.6666667 20,15.6666667 Z"/>
-  </defs>
-  <g fill="none" fill-rule="evenodd">
-    <polygon points="0 0 40 0 40 40 0 40"/>
-    <use fill="#FFF" fill-rule="nonzero" xlink:href="#mode_video_1x-a"/>
-  </g>
-</svg>
diff --git a/chrome/browser/resources/chromeos/camera/src/images/camera_mode_recording.svg b/chrome/browser/resources/chromeos/camera/src/images/camera_mode_recording.svg
deleted file mode 100644
index 2c5aa6a2..0000000
--- a/chrome/browser/resources/chromeos/camera/src/images/camera_mode_recording.svg
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<svg width="40px" height="40px" viewBox="0 0 40 40" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-    <!-- Generator: Sketch 51.1 (57501) - http://www.bohemiancoding.com/sketch -->
-    <title>mode_video_1x</title>
-    <desc>Created with Sketch.</desc>
-    <defs>
-        <path d="M30,17.4666667 L30,10 C30,8.16666667 28.5,6.66666667 26.6666667,6.66666667 L6.66666667,6.66666667 C4.83333333,6.66666667 3.33333333,8.16666667 3.33333333,10 L3.33333333,30 C3.33333333,31.8333333 4.83333333,33.3333333 6.66666667,33.3333333 L26.6666667,33.3333333 C28.5,33.3333333 30,31.8333333 30,30 L30,22.5333333 L36.6666667,29.1666667 L36.6666667,10.8333333 L30,17.4666667 Z M26.6666667,16.15 L26.6666667,30 L6.66666667,30 L6.66666667,10 L26.6666667,10 L26.6666667,16.15 Z" id="path-1"></path>
-    </defs>
-    <g id="mode_video_1x" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
-        <g id="ic_video_24dp">
-            <rect id="swatch" x="0" y="0" width="40" height="40"></rect>
-            <mask id="mask-2" fill="white">
-                <use xlink:href="#path-1"></use>
-            </mask>
-            <use id="ic_videocam_24px" fill="#FFFFFF" fill-rule="nonzero" xlink:href="#path-1"></use>
-        </g>
-    </g>
-</svg>
\ No newline at end of file
diff --git a/chrome/browser/resources/chromeos/camera/src/images/camera_shutter_photo_start.svg b/chrome/browser/resources/chromeos/camera/src/images/camera_shutter_photo_start.svg
deleted file mode 100644
index 60d3e7a..0000000
--- a/chrome/browser/resources/chromeos/camera/src/images/camera_shutter_photo_start.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="72" height="72" viewBox="0 0 72 72">
-  <g fill="none" fill-rule="evenodd">
-    <circle cx="36" cy="36" r="30" fill="#FFF" opacity=".9"/>
-    <circle cx="36" cy="36" r="24" fill="#D2DADE"/>
-  </g>
-</svg>
diff --git a/chrome/browser/resources/chromeos/camera/src/images/camera_shutter_photo_start_active.svg b/chrome/browser/resources/chromeos/camera/src/images/camera_shutter_photo_start_active.svg
deleted file mode 100644
index 758ae6e7..0000000
--- a/chrome/browser/resources/chromeos/camera/src/images/camera_shutter_photo_start_active.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="72" height="72" viewBox="0 0 72 72">
-  <g fill="none" fill-rule="evenodd">
-    <circle fill="#FFF" opacity=".9" cx="36" cy="36" r="30"></circle>
-    <circle fill="#4285F4" cx="36" cy="36" r="24"></circle>
-  </g>
-</svg>
diff --git a/chrome/browser/resources/chromeos/camera/src/images/camera_shutter_photo_start_hover.svg b/chrome/browser/resources/chromeos/camera/src/images/camera_shutter_photo_start_hover.svg
deleted file mode 100644
index a130d73..0000000
--- a/chrome/browser/resources/chromeos/camera/src/images/camera_shutter_photo_start_hover.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="72" height="72" viewBox="0 0 72 72">
-  <g fill="none" fill-rule="evenodd">
-    <circle cx="36" cy="36" r="30" fill="#FFF" opacity=".9"/>
-    <circle cx="36" cy="36" r="24" fill="#C3D0DF"/>
-  </g>
-</svg>
diff --git a/chrome/browser/resources/chromeos/camera/src/images/camera_shutter_photo_stop.svg b/chrome/browser/resources/chromeos/camera/src/images/camera_shutter_photo_stop.svg
deleted file mode 100644
index cbda368f..0000000
--- a/chrome/browser/resources/chromeos/camera/src/images/camera_shutter_photo_stop.svg
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<svg width="72px" height="72px" viewBox="0 0 72 72" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-    <!-- Generator: Sketch 51.1 (57501) - http://www.bohemiancoding.com/sketch -->
-    <title>btn_stop_timer_1x</title>
-    <desc>Created with Sketch.</desc>
-    <defs>
-        <polygon id="path-1" points="44 29.6114286 42.3885714 28 36 34.3885714 29.6114286 28 28 29.6114286 34.3885714 36 28 42.3885714 29.6114286 44 36 37.6114286 42.3885714 44 44 42.3885714 37.6114286 36"></polygon>
-    </defs>
-    <g id="btn_stop_timer_1x" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
-        <circle id="Oval-3" fill="#BDC1C6" opacity="0.9" cx="36" cy="36" r="30"></circle>
-        <mask id="mask-2" fill="white">
-            <use xlink:href="#path-1"></use>
-        </mask>
-        <use id="ic_close_24px" fill="#FFFFFF" fill-rule="nonzero" xlink:href="#path-1"></use>
-    </g>
-</svg>
\ No newline at end of file
diff --git a/chrome/browser/resources/chromeos/camera/src/images/camera_shutter_photo_stop_hover.svg b/chrome/browser/resources/chromeos/camera/src/images/camera_shutter_photo_stop_hover.svg
deleted file mode 100644
index 1bec4ad..0000000
--- a/chrome/browser/resources/chromeos/camera/src/images/camera_shutter_photo_stop_hover.svg
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<svg width="72px" height="72px" viewBox="0 0 72 72" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-    <!-- Generator: Sketch 51.1 (57501) - http://www.bohemiancoding.com/sketch -->
-    <title>btn_stop_timer_hover_1x</title>
-    <desc>Created with Sketch.</desc>
-    <defs>
-        <polygon id="path-1" points="44 29.6114286 42.3885714 28 36 34.3885714 29.6114286 28 28 29.6114286 34.3885714 36 28 42.3885714 29.6114286 44 36 37.6114286 42.3885714 44 44 42.3885714 37.6114286 36"></polygon>
-    </defs>
-    <g id="btn_stop_timer_hover_1x" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
-        <circle id="Oval-3" fill="#BDC1C6" opacity="0.9" cx="36" cy="36" r="30"></circle>
-        <circle id="Oval-3" fill-opacity="0.1" fill="#5F6368" opacity="0.9" cx="36" cy="36" r="30"></circle>
-        <mask id="mask-2" fill="white">
-            <use xlink:href="#path-1"></use>
-        </mask>
-        <use id="ic_close_24px" fill="#FFFFFF" fill-rule="nonzero" xlink:href="#path-1"></use>
-    </g>
-</svg>
\ No newline at end of file
diff --git a/chrome/browser/resources/chromeos/camera/src/images/camera_shutter_recording_start.svg b/chrome/browser/resources/chromeos/camera/src/images/camera_shutter_recording_start.svg
deleted file mode 100644
index 9fea291f..0000000
--- a/chrome/browser/resources/chromeos/camera/src/images/camera_shutter_recording_start.svg
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<svg width="72px" height="72px" viewBox="0 0 72 72" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-    <!-- Generator: Sketch 51.1 (57501) - http://www.bohemiancoding.com/sketch -->
-    <title>btn_start_recording_1x</title>
-    <desc>Created with Sketch.</desc>
-    <defs></defs>
-    <g id="btn_start_recording_1x" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
-        <g id="camera-button" transform="translate(6.000000, 6.000000)">
-            <circle id="Oval-3" fill="#FFFFFF" opacity="0.9" cx="30" cy="30" r="30"></circle>
-            <circle id="Oval-3" fill="#D93025" cx="30" cy="30" r="8"></circle>
-        </g>
-    </g>
-</svg>
\ No newline at end of file
diff --git a/chrome/browser/resources/chromeos/camera/src/images/camera_shutter_recording_start_hover.svg b/chrome/browser/resources/chromeos/camera/src/images/camera_shutter_recording_start_hover.svg
deleted file mode 100644
index b9274ac..0000000
--- a/chrome/browser/resources/chromeos/camera/src/images/camera_shutter_recording_start_hover.svg
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<svg width="72px" height="72px" viewBox="0 0 72 72" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-    <!-- Generator: Sketch 51.1 (57501) - http://www.bohemiancoding.com/sketch -->
-    <title>btn_start_recording_hover_1x</title>
-    <desc>Created with Sketch.</desc>
-    <defs></defs>
-    <g id="btn_start_recording_hover_1x" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
-        <g id="camera-button" transform="translate(6.000000, 6.000000)">
-            <circle id="Oval-3" fill="#FFFFFF" opacity="0.9" cx="30" cy="30" r="30"></circle>
-            <circle id="Oval-3" fill-opacity="0.1" fill="#5F6368" opacity="0.9" cx="30" cy="30" r="30"></circle>
-            <circle id="Oval-3" fill="#D93025" cx="30" cy="30" r="8"></circle>
-        </g>
-    </g>
-</svg>
\ No newline at end of file
diff --git a/chrome/browser/resources/chromeos/camera/src/images/camera_shutter_recording_stop.svg b/chrome/browser/resources/chromeos/camera/src/images/camera_shutter_recording_stop.svg
deleted file mode 100644
index f353f25..0000000
--- a/chrome/browser/resources/chromeos/camera/src/images/camera_shutter_recording_stop.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="72" height="72" viewBox="0 0 72 72">
-  <g fill="none" fill-rule="evenodd" transform="translate(6 6)">
-    <circle cx="30" cy="30" r="30" fill="#F44336" opacity=".9"/>
-    <rect width="20" height="20" x="20" y="20" fill="#F2F2F2" rx="2"/>
-  </g>
-</svg>
diff --git a/chrome/browser/resources/chromeos/camera/src/images/camera_shutter_recording_stop_hover.svg b/chrome/browser/resources/chromeos/camera/src/images/camera_shutter_recording_stop_hover.svg
deleted file mode 100644
index 8dcda1a..0000000
--- a/chrome/browser/resources/chromeos/camera/src/images/camera_shutter_recording_stop_hover.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="72" height="72" viewBox="0 0 72 72">
-  <g fill="none" fill-rule="evenodd" transform="translate(6 6)">
-    <g opacity=".9">
-      <circle cx="30" cy="30" r="30" fill="#F44336"/>
-      <circle cx="30" cy="30" r="30" fill="#5F6368" fill-opacity=".1"/>
-    </g>
-    <rect width="20" height="20" x="20" y="20" fill="#F2F2F2" rx="2"/>
-  </g>
-</svg>
diff --git a/chrome/browser/resources/chromeos/camera/src/images/settings_button_back.svg b/chrome/browser/resources/chromeos/camera/src/images/settings_button_back.svg
deleted file mode 100644
index d07e063a..0000000
--- a/chrome/browser/resources/chromeos/camera/src/images/settings_button_back.svg
+++ /dev/null
@@ -1,14 +0,0 @@
-<svg width="20px" height="20px" viewBox="0 0 20 20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-    <defs>
-        <polygon id="path-1" points="16.6666667 9.16666667 6.525 9.16666667 11.1833333 4.50833333 10 3.33333333 3.33333333 10 10 16.6666667 11.175 15.4916667 6.525 10.8333333 16.6666667 10.8333333"></polygon>
-    </defs>
-    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
-        <g id="Group">
-            <mask id="mask-2" fill="white">
-                <use xlink:href="#path-1"></use>
-            </mask>
-            <use id="ic_arrow_back_24px" fill="#FFFFFF" fill-rule="nonzero" xlink:href="#path-1"></use>
-            <rect id="Rectangle" x="0" y="0" width="20" height="20"></rect>
-        </g>
-    </g>
-</svg>
diff --git a/chrome/browser/resources/chromeos/camera/src/images/settings_button_expand.svg b/chrome/browser/resources/chromeos/camera/src/images/settings_button_expand.svg
deleted file mode 100644
index f6698d8..0000000
--- a/chrome/browser/resources/chromeos/camera/src/images/settings_button_expand.svg
+++ /dev/null
@@ -1,8 +0,0 @@
-<svg width="20px" height="20px" viewBox="0 0 20 20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
-        <g id="ic_arrow_right_white_24dp">
-            <polygon id="Path" fill="#FFFFFF" points="8.33333333 14.1666667 12.5 10 8.33333333 5.83333333"></polygon>
-            <polygon id="Path" points="0 20 0 0 20 0 20 20"></polygon>
-        </g>
-    </g>
-</svg>
diff --git a/chrome/browser/resources/chromeos/camera/src/images/settings_feedback.svg b/chrome/browser/resources/chromeos/camera/src/images/settings_feedback.svg
deleted file mode 100644
index 8f7643d6..0000000
--- a/chrome/browser/resources/chromeos/camera/src/images/settings_feedback.svg
+++ /dev/null
@@ -1,14 +0,0 @@
-<svg width="20px" height="20px" viewBox="0 0 20 20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-    <defs>
-        <path d="M16.6666667,1.66666667 L3.33333333,1.66666667 C2.41666667,1.66666667 1.675,2.41666667 1.675,3.33333333 L1.66666667,18.3333333 L5,15 L16.6666667,15 C17.5833333,15 18.3333333,14.25 18.3333333,13.3333333 L18.3333333,3.33333333 C18.3333333,2.41666667 17.5833333,1.66666667 16.6666667,1.66666667 Z M16.6666667,13.3333333 L5,13.3333333 L4.30833333,13.3333333 L3.81666667,13.825 L3.33333333,14.3083333 L3.33333333,3.33333333 L16.6666667,3.33333333 L16.6666667,13.3333333 Z M9.16666667,10 L10.8333333,10 L10.8333333,11.6666667 L9.16666667,11.6666667 L9.16666667,10 Z M9.16666667,5 L10.8333333,5 L10.8333333,8.33333333 L9.16666667,8.33333333 L9.16666667,5 Z" id="path-1"></path>
-    </defs>
-    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
-        <g id="Group">
-            <mask id="mask-2" fill="white">
-                <use xlink:href="#path-1"></use>
-            </mask>
-            <use id="ic_feedback_24px" fill="#FFFFFF" fill-rule="nonzero" xlink:href="#path-1"></use>
-            <rect id="Rectangle" x="0" y="0" width="20" height="20"></rect>
-        </g>
-    </g>
-</svg>
diff --git a/chrome/browser/resources/chromeos/camera/src/images/settings_grid_type.svg b/chrome/browser/resources/chromeos/camera/src/images/settings_grid_type.svg
deleted file mode 100644
index 8e60cb81..0000000
--- a/chrome/browser/resources/chromeos/camera/src/images/settings_grid_type.svg
+++ /dev/null
@@ -1,14 +0,0 @@
-<svg width="20px" height="20px" viewBox="0 0 20 20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-    <defs>
-        <path d="M16.6666667,1.66666667 L3.33333333,1.66666667 C2.41666667,1.66666667 1.66666667,2.41666667 1.66666667,3.33333333 L1.66666667,16.6666667 C1.66666667,17.5833333 2.41666667,18.3333333 3.33333333,18.3333333 L16.6666667,18.3333333 C17.5833333,18.3333333 18.3333333,17.5833333 18.3333333,16.6666667 L18.3333333,3.33333333 C18.3333333,2.41666667 17.5833333,1.66666667 16.6666667,1.66666667 Z M6.66666667,16.6666667 L3.33333333,16.6666667 L3.33333333,13.3333333 L6.66666667,13.3333333 L6.66666667,16.6666667 Z M6.66666667,11.6666667 L3.33333333,11.6666667 L3.33333333,8.33333333 L6.66666667,8.33333333 L6.66666667,11.6666667 Z M6.66666667,6.66666667 L3.33333333,6.66666667 L3.33333333,3.33333333 L6.66666667,3.33333333 L6.66666667,6.66666667 Z M11.6666667,16.6666667 L8.33333333,16.6666667 L8.33333333,13.3333333 L11.6666667,13.3333333 L11.6666667,16.6666667 Z M11.6666667,11.6666667 L8.33333333,11.6666667 L8.33333333,8.33333333 L11.6666667,8.33333333 L11.6666667,11.6666667 Z M11.6666667,6.66666667 L8.33333333,6.66666667 L8.33333333,3.33333333 L11.6666667,3.33333333 L11.6666667,6.66666667 Z M16.6666667,16.6666667 L13.3333333,16.6666667 L13.3333333,13.3333333 L16.6666667,13.3333333 L16.6666667,16.6666667 Z M16.6666667,11.6666667 L13.3333333,11.6666667 L13.3333333,8.33333333 L16.6666667,8.33333333 L16.6666667,11.6666667 Z M16.6666667,6.66666667 L13.3333333,6.66666667 L13.3333333,3.33333333 L16.6666667,3.33333333 L16.6666667,6.66666667 Z" id="path-1"></path>
-    </defs>
-    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
-        <g id="Group">
-            <mask id="mask-2" fill="white">
-                <use xlink:href="#path-1"></use>
-            </mask>
-            <use id="ic_grid_on_24px" fill="#FFFFFF" fill-rule="nonzero" xlink:href="#path-1"></use>
-            <rect id="Rectangle" x="0" y="0" width="20" height="20"></rect>
-        </g>
-    </g>
-</svg>
diff --git a/chrome/browser/resources/chromeos/camera/src/images/settings_help.svg b/chrome/browser/resources/chromeos/camera/src/images/settings_help.svg
deleted file mode 100644
index 5695291b..0000000
--- a/chrome/browser/resources/chromeos/camera/src/images/settings_help.svg
+++ /dev/null
@@ -1,14 +0,0 @@
-<svg width="20px" height="20px" viewBox="0 0 20 20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-    <defs>
-        <path d="M9.16666667,15 L10.8333333,15 L10.8333333,13.3333333 L9.16666667,13.3333333 L9.16666667,15 Z M10,1.66666667 C5.4,1.66666667 1.66666667,5.4 1.66666667,10 C1.66666667,14.6 5.4,18.3333333 10,18.3333333 C14.6,18.3333333 18.3333333,14.6 18.3333333,10 C18.3333333,5.4 14.6,1.66666667 10,1.66666667 Z M10,16.6666667 C6.325,16.6666667 3.33333333,13.675 3.33333333,10 C3.33333333,6.325 6.325,3.33333333 10,3.33333333 C13.675,3.33333333 16.6666667,6.325 16.6666667,10 C16.6666667,13.675 13.675,16.6666667 10,16.6666667 Z M10,5 C8.15833333,5 6.66666667,6.49166667 6.66666667,8.33333333 L8.33333333,8.33333333 C8.33333333,7.41666667 9.08333333,6.66666667 10,6.66666667 C10.9166667,6.66666667 11.6666667,7.41666667 11.6666667,8.33333333 C11.6666667,10 9.16666667,9.79166667 9.16666667,12.5 L10.8333333,12.5 C10.8333333,10.625 13.3333333,10.4166667 13.3333333,8.33333333 C13.3333333,6.49166667 11.8416667,5 10,5 Z" id="path-1"></path>
-    </defs>
-    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
-        <g id="Group">
-            <mask id="mask-2" fill="white">
-                <use xlink:href="#path-1"></use>
-            </mask>
-            <use id="ic_help_outline_24px" fill="#FFFFFF" fill-rule="nonzero" xlink:href="#path-1"></use>
-            <rect id="Rectangle" x="0" y="0" width="20" height="20"></rect>
-        </g>
-    </g>
-</svg>
diff --git a/chrome/browser/resources/chromeos/camera/src/images/settings_timer_duration.svg b/chrome/browser/resources/chromeos/camera/src/images/settings_timer_duration.svg
deleted file mode 100644
index dee2e1a..0000000
--- a/chrome/browser/resources/chromeos/camera/src/images/settings_timer_duration.svg
+++ /dev/null
@@ -1,14 +0,0 @@
-<svg width="20px" height="20px" viewBox="0 0 20 20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-    <defs>
-        <path d="M13,2.66666667 L8,2.66666667 L8,1 L13,1 L13,2.66666667 Z M9.66666667,11.8333333 L11.3333333,11.8333333 L11.3333333,6.83333333 L9.66666667,6.83333333 L9.66666667,11.8333333 Z M18,11.0083333 C18,15.15 14.65,18.5083333 10.5,18.5083333 C6.35,18.5083333 3,15.15 3,11.0083333 C3,6.86666667 6.35833333,3.50833333 10.5,3.50833333 C12.2666667,3.50833333 13.8916667,4.125 15.1833333,5.15833333 L16.3666667,3.975 C16.7916667,4.325 17.1833333,4.725 17.5416667,5.15 L16.3583333,6.33333333 C17.3833333,7.60833333 18,9.24166667 18,11.0083333 Z M16.3333333,11.0083333 C16.3333333,7.78333333 13.725,5.175 10.5,5.175 C7.275,5.175 4.66666667,7.78333333 4.66666667,11.0083333 C4.66666667,14.2333333 7.275,16.8416667 10.5,16.8416667 C13.725,16.8416667 16.3333333,14.2333333 16.3333333,11.0083333 Z" id="path-1"></path>
-    </defs>
-    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
-        <g id="Group">
-            <mask id="mask-2" fill="white">
-                <use xlink:href="#path-1"></use>
-            </mask>
-            <use id="ic_timer_24px" fill="#FFFFFF" fill-rule="nonzero" xlink:href="#path-1"></use>
-            <rect id="Rectangle" x="0" y="0" width="20" height="20"></rect>
-        </g>
-    </g>
-</svg>
diff --git a/chrome/browser/resources/chromeos/camera/src/images/spinner.svg b/chrome/browser/resources/chromeos/camera/src/images/spinner.svg
deleted file mode 100644
index 936309cda..0000000
--- a/chrome/browser/resources/chromeos/camera/src/images/spinner.svg
+++ /dev/null
@@ -1,99 +0,0 @@
-<!-- This version of the throbber is good for size 28x28dp or more. -->
-<svg version="1" xmlns="http://www.w3.org/2000/svg"
-                 xmlns:xlink="http://www.w3.org/1999/xlink"
-     viewBox="0 0 28 28">
-  <!-- 28= RADIUS*2 + STROKEWIDTH -->
-  <title>Material design circular activity spinner with CSS3 animation</title>
-  <style type="text/css">
-      /**************************/
-      /* STYLES FOR THE SPINNER */
-      /**************************/
-      /*
-       * Constants:
-       *      RADIUS      = 12.5
-       *      STROKEWIDTH = 3
-       *      ARCSIZE     = 270 degrees (amount of circle the arc takes up)
-       *      ARCTIME     = 1333ms (time it takes to expand and contract arc)
-       *      ARCSTARTROT = 216 degrees (how much the start location of the arc
-       *                                should rotate each time, 216 gives us a
-       *                                5 pointed star shape (it's 360/5 * 2).
-       *                                For a 7 pointed star, we might do
-       *                                360/7 * 3 = 154.286)
-       *
-       *      SHRINK_TIME = 400ms
-       */
-      .qp-circular-loader {
-        width:28px;  /* 2*RADIUS + STROKEWIDTH */
-        height:28px; /* 2*RADIUS + STROKEWIDTH */
-      }
-      .qp-circular-loader-path {
-        stroke-dasharray: 58.9;  /* 2*RADIUS*PI * ARCSIZE/360 */
-        stroke-dashoffset: 58.9; /* 2*RADIUS*PI * ARCSIZE/360 */
-                                 /* hides things initially */
-      }
-      /* SVG elements seem to have a different default origin */
-      .qp-circular-loader, .qp-circular-loader * {
-        transform-origin: 50% 50%;
-      }
-      /* Rotating the whole thing */
-      @keyframes rotate {
-        from {transform: rotate(0deg);}
-        to {transform: rotate(360deg);}
-      }
-      .qp-circular-loader {
-        animation-duration: 1568.63ms; /* 360 * ARCTIME / (ARCSTARTROT + (360-ARCSIZE)) */
-        animation-iteration-count: infinite;
-        animation-name: rotate;
-        animation-timing-function: linear;
-      }
-      /* Filling and unfilling the arc */
-      @keyframes fillunfill {
-        from {
-          stroke-dashoffset: 58.8 /* 2*RADIUS*PI * ARCSIZE/360 - 0.1 */
-                                  /* 0.1 a bit of a magic constant here */
-        }
-        50% {
-          stroke-dashoffset: 0;
-        }
-        to {
-          stroke-dashoffset: -58.4 /* -(2*RADIUS*PI * ARCSIZE/360 - 0.5) */
-                                   /* 0.5 a bit of a magic constant here */
-        }
-      }
-      @keyframes rot {
-        from {
-          transform: rotate(0deg);
-        }
-        to {
-          transform: rotate(-360deg);
-        }
-      }
-      @keyframes colors {
-        from {
-          stroke: #4285f4;
-        }
-        to {
-          stroke: #4285f4;
-        }
-      }
-      .qp-circular-loader-path {
-        animation-duration: 1333ms, 5332ms, 5332ms; /* ARCTIME, 4*ARCTIME, 4*ARCTIME */
-        animation-fill-mode: forwards;
-        animation-iteration-count: infinite, infinite, infinite;
-        animation-name: fillunfill, rot, colors;
-        animation-play-state: running, running, running;
-        animation-timing-function: cubic-bezier(0.4, 0.0, 0.2, 1), steps(4), linear;
-      }
-  </style>
-  <!-- 3= STROKEWIDTH -->
-  <!-- 14= RADIUS + STROKEWIDTH/2 -->
-  <!-- 12.5= RADIUS -->
-  <!-- 1.5=  STROKEWIDTH/2 -->
-  <!-- ARCSIZE would affect the 1.5,14 part of this... 1.5,14 is specific to
-       270 degress -->
-  <g class="qp-circular-loader">
-    <path class="qp-circular-loader-path" fill="none" 
-          d="M 14,1.5 A 12.5,12.5 0 1 1 1.5,14" stroke-width="3"
-          stroke-linecap="round"></path>
-  </g>
-</svg>
diff --git a/chrome/browser/resources/chromeos/camera/src/js/background.js b/chrome/browser/resources/chromeos/camera/src/js/background.js
deleted file mode 100644
index f85641a..0000000
--- a/chrome/browser/resources/chromeos/camera/src/js/background.js
+++ /dev/null
@@ -1,80 +0,0 @@
-// Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-'use strict';
-
-/**
- * Namespace for the Camera app.
- */
-var cca = cca || {};
-
-/**
- * Namespace for the background page.
- */
-cca.bg = {};
-
-/**
- * Fixed minimum width of the window inner-bounds in pixels.
- * @type {number}
- * @const
- */
-cca.bg.MIN_WIDTH = 768;
-
-/**
- * Initial apsect ratio of the window inner-bounds.
- * @type {number}
- * @const
- */
-cca.bg.INITIAL_ASPECT_RATIO = 1.3333333333;
-
-/**
- * Top bar color of the window.
- * @type {string}
- * @const
- */
-cca.bg.TOPBAR_COLOR = '#000000';
-
-/**
- * Creates the window. Note, that only one window at once is supported.
- */
-cca.bg.create = function() {
-  new Promise((resolve) => {
-    chrome.storage.local.get(
-        {maximized: false, fullscreen: false}, (values) => {
-          resolve(values.maximized || values.fullscreen);
-        });
-  }).then((maximized) => {
-    // The height will be later calculated to match video aspect ratio once the
-    // stream is available.
-    var initialHeight = Math.round(
-        cca.bg.MIN_WIDTH / cca.bg.INITIAL_ASPECT_RATIO);
-
-    chrome.app.window.create('views/main.html', {
-      id: 'main',
-      frame: {color: cca.bg.TOPBAR_COLOR},
-      hidden: true, // Will be shown from main.js once loaded.
-      innerBounds: {
-        width: cca.bg.MIN_WIDTH,
-        height: initialHeight,
-        minWidth: cca.bg.MIN_WIDTH,
-        left: Math.round((window.screen.availWidth - cca.bg.MIN_WIDTH) / 2),
-        top: Math.round((window.screen.availHeight - initialHeight) / 2),
-      },
-    }, (inAppWindow) => {
-      // Temporary workaround for crbug.com/452737.
-      // 'state' option in CreateWindowOptions is ignored when a window is
-      // launched with 'hidden' option, so we restore window state here.
-      // Don't launch in fullscreen as the topbar might not work as expected.
-      if (maximized) {
-        inAppWindow.maximize();
-      }
-      inAppWindow.onClosed.addListener(() => {
-        chrome.storage.local.set({maximized: inAppWindow.isMaximized()});
-        chrome.storage.local.set({fullscreen: inAppWindow.isFullscreen()});
-      });
-    });
-  });
-};
-
-chrome.app.runtime.onLaunched.addListener(cca.bg.create);
diff --git a/chrome/browser/resources/chromeos/camera/src/js/main.js b/chrome/browser/resources/chromeos/camera/src/js/main.js
deleted file mode 100644
index d01ac16..0000000
--- a/chrome/browser/resources/chromeos/camera/src/js/main.js
+++ /dev/null
@@ -1,279 +0,0 @@
-// Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-'use strict';
-
-/**
- * Namespace for the Camera app.
- */
-var cca = cca || {};
-
-/**
- * Creates the Camera App main object.
- * @param {number} aspectRatio Aspect ratio of app window when launched.
- * @constructor
- */
-cca.App = function(aspectRatio) {
-  /**
-   * @type {cca.models.Gallery}
-   * @private
-   */
-  this.model_ = new cca.models.Gallery();
-
-  /**
-   * @type {cca.views.Camera}
-   * @private
-   */
-  this.cameraView_ = new cca.views.Camera(
-      this.model_, this.onWindowResize_.bind(this));
-
-  /**
-   * @type {cca.views.MasterSettings}
-   * @private
-   */
-  this.settingsView_ = new cca.views.MasterSettings();
-
-  /**
-   * @type {cca.views.GridSettings}
-   * @private
-   */
-  this.gridsettingsView_ = new cca.views.GridSettings();
-
-  /**
-   * @type {cca.views.TimerSettings}
-   * @private
-   */
-  this.timersettingsView_ = new cca.views.TimerSettings();
-
-  /**
-   * @type {cca.views.Browser}
-   * @private
-   */
-  this.browserView_ = new cca.views.Browser(this.model_);
-
-  /**
-   * @type {cca.views.Warning}
-   * @private
-   */
-  this.warningView_ = new cca.views.Warning();
-
-  /**
-   * @type {cca.views.Dialog}
-   * @private
-   */
-  this.dialogView_ = new cca.views.Dialog();
-
-  /**
-   * @type {?number}
-   * @private
-   */
-  this.resizeWindowTimeout_ = null;
-
-  /**
-   * @type {number}
-   * @private
-   */
-  this.aspectRatio_ = aspectRatio;
-
-  // End of properties. Seal the object.
-  Object.seal(this);
-
-  document.body.addEventListener('keydown', this.onKeyPressed_.bind(this));
-  window.addEventListener('resize', this.onWindowResize_.bind(this, null));
-
-  document.title = chrome.i18n.getMessage('name');
-  this.setupI18nElements_();
-  this.setupToggles_();
-};
-
-/*
- * Checks if it is applicable to use CrOS gallery app.
- * @return {boolean} Whether applicable or not.
- */
-cca.App.useGalleryApp = function() {
-  return chrome.fileManagerPrivate &&
-      document.body.classList.contains('ext-fs');
-};
-
-/**
- * Sets up i18n messages on elements by i18n attributes.
- * @private
- */
-cca.App.prototype.setupI18nElements_ = function() {
-  var getElements = (attr) => document.querySelectorAll('[' + attr + ']');
-  var getMessage = (element, attr) => chrome.i18n.getMessage(
-      element.getAttribute(attr));
-  var setAriaLabel = (element, attr) => element.setAttribute(
-      'aria-label', getMessage(element, attr));
-
-  getElements('i18n-content').forEach(
-      (element) => element.textContent = getMessage(element, 'i18n-content'));
-  getElements('i18n-aria').forEach(
-      (element) => setAriaLabel(element, 'i18n-aria'));
-  cca.tooltip.setup(getElements('i18n-label')).forEach(
-      (element) => setAriaLabel(element, 'i18n-label'));
-};
-
-/**
- * Sets up toggles (checkbox and radio) by data attributes.
- * @private
- */
-cca.App.prototype.setupToggles_ = function() {
-  document.querySelectorAll('input').forEach((element) => {
-    element.addEventListener('keypress', (event) =>
-        cca.util.getShortcutIdentifier(event) == 'Enter' && element.click());
-
-    var css = element.getAttribute('data-css');
-    var key = element.getAttribute('data-key');
-    var payload = () => {
-      var keys = {};
-      keys[key] = element.checked;
-      return keys;
-    };
-    element.addEventListener('change', (event) => {
-      if (css) {
-        document.body.classList.toggle(css, element.checked);
-      }
-      if (event.isTrusted) {
-        element.save();
-        if (element.type == 'radio' && element.checked) {
-          // Handle unchecked grouped sibling radios.
-          var grouped = `input[type=radio][name=${element.name}]:not(:checked)`;
-          document.querySelectorAll(grouped).forEach((radio) =>
-              radio.dispatchEvent(new Event('change')) && radio.save());
-        }
-      }
-    });
-    element.toggleChecked = (checked) => {
-      element.checked = checked;
-      element.dispatchEvent(new Event('change')); // Trigger toggling css.
-    };
-    element.save = () => {
-      return key && chrome.storage.local.set(payload());
-    };
-    if (key) {
-      // Restore the previously saved state on startup.
-      chrome.storage.local.get(payload(),
-          (values) => element.toggleChecked(values[key]));
-    }
-  });
-};
-
-/**
- * Starts the app by preparing views/model and opening the camera-view.
- */
-cca.App.prototype.start = function() {
-  cca.nav.setup([
-    this.cameraView_,
-    this.settingsView_,
-    this.gridsettingsView_,
-    this.timersettingsView_,
-    this.browserView_,
-    this.warningView_,
-    this.dialogView_,
-  ]);
-  cca.models.FileSystem.initialize(() => {
-    // Prompt to migrate pictures if needed.
-    var message = chrome.i18n.getMessage('migratePicturesMsg');
-    return cca.nav.open('dialog', message, false).then((acked) => {
-      if (!acked) {
-        throw new Error('no-migrate');
-      }
-    });
-  }).then((external) => {
-    document.body.classList.toggle('ext-fs', external);
-    // Prepare the views/model and open camera-view.
-    this.cameraView_.prepare();
-    this.model_.addObserver(this.cameraView_.galleryButton);
-    if (!cca.App.useGalleryApp()) {
-      this.model_.addObserver(this.browserView_);
-    }
-    this.model_.load();
-    cca.nav.open('camera');
-  }).catch((error) => {
-    console.error(error);
-    if (error && error.message == 'no-migrate') {
-      chrome.app.window.current().close();
-      return;
-    }
-    cca.nav.open('warning', 'filesystem-failure');
-  });
-};
-
-/**
- * Resizes the window to match the last known aspect ratio if applicable.
- * @private
- */
-cca.App.prototype.resizeByAspectRatio_ = function() {
-  // Don't update window size if it's maximized or fullscreen.
-  if (cca.util.isWindowFullSize()) {
-    return;
-  }
-
-  // Keep the width fixed and calculate the height by the aspect ratio.
-  // TODO(yuli): Update min-width for resizing at portrait orientation.
-  var inner = chrome.app.window.current().innerBounds;
-  var innerW = inner.minWidth;
-  var innerH = Math.round(innerW / this.aspectRatio_);
-
-  // Limit window resizing capability by setting min-height. Don't limit
-  // max-height here as it may disable maximize/fullscreen capabilities.
-  inner.minHeight = innerH;
-
-  inner.width = innerW;
-  inner.height = innerH;
-};
-
-/**
- * Handles resizing window/views for size or aspect ratio changes.
- * @param {number=} aspectRatio Aspect ratio changed.
- * @private
- */
-cca.App.prototype.onWindowResize_ = function(aspectRatio) {
-  if (this.resizeWindowTimeout_) {
-    clearTimeout(this.resizeWindowTimeout_);
-    this.resizeWindowTimeout_ = null;
-  }
-  if (aspectRatio) {
-    // Update window size immediately for changed aspect ratio.
-    this.aspectRatio_ = aspectRatio;
-    this.resizeByAspectRatio_();
-  } else {
-    // Don't further resize window during resizing for smooth UX.
-    this.resizeWindowTimeout_ = setTimeout(() => {
-      this.resizeWindowTimeout_ = null;
-      this.resizeByAspectRatio_();
-    }, 500);
-  }
-  cca.nav.onWindowResized();
-};
-
-/**
- * Handles pressed keys.
- * @param {Event} event Key press event.
- * @private
- */
-cca.App.prototype.onKeyPressed_ = function(event) {
-  cca.tooltip.hide(); // Hide shown tooltip on any keypress.
-  cca.nav.onKeyPressed(event);
-};
-
-/**
- * @type {cca.App} Singleton of the App object.
- * @private
- */
-cca.App.instance_ = null;
-
-/**
- * Creates the Camera object and starts screen capturing.
- */
-document.addEventListener('DOMContentLoaded', () => {
-  var appWindow = chrome.app.window.current();
-  if (!cca.App.instance_) {
-    var inner = appWindow.innerBounds;
-    cca.App.instance_ = new cca.App(inner.width / inner.height);
-  }
-  cca.App.instance_.start();
-  appWindow.show();
-});
diff --git a/chrome/browser/resources/chromeos/camera/src/js/models/file_system.js b/chrome/browser/resources/chromeos/camera/src/js/models/file_system.js
deleted file mode 100644
index bc769a2..0000000
--- a/chrome/browser/resources/chromeos/camera/src/js/models/file_system.js
+++ /dev/null
@@ -1,541 +0,0 @@
-// Copyright 2018 The Chromium OS Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-'use strict';
-
-/**
- * Namespace for the Camera app.
- */
-var cca = cca || {};
-
-/**
- * Namespace for models.
- */
-cca.models = cca.models || {};
-
-/**
- * Creates the file system controller.
- * @constructor
- */
-cca.models.FileSystem = function() {
-  // End of properties, seal the object.
-  Object.seal(this);
-};
-
-/**
- * The prefix of image files.
- * @type {string}
- * @const
- */
-cca.models.FileSystem.IMAGE_PREFIX = 'IMG_';
-
-/**
- * The prefix of video files.
- * @type {string}
- * @const
- */
-cca.models.FileSystem.VIDEO_PREFIX = 'VID_';
-
-/**
- * The prefix of thumbnail files.
- * @type {string}
- * @const
- */
-cca.models.FileSystem.THUMBNAIL_PREFIX = 'thumb-';
-
-/**
- * Directory in the internal file system.
- * @type {DirectoryEntry}
- */
-cca.models.FileSystem.internalDir = null;
-
-/**
- * Directory in the external file system.
- * @type {DirectoryEntry}
- */
-cca.models.FileSystem.externalDir = null;
-
-/**
- * Initializes the directory in the internal file system.
- * @return {!Promise<DirectoryEntry>} Promise for the directory result.
- * @private
- */
-cca.models.FileSystem.initInternalDir_ = function() {
-  return new Promise((resolve, reject) => {
-    webkitRequestFileSystem(window.PERSISTENT, 768 * 1024 * 1024 /* 768MB */,
-        (fs) => resolve(fs.root), reject);
-  });
-};
-
-/**
- * Initializes the directory in the external file system.
- * @return {!Promise<?DirectoryEntry>} Promise for the directory result.
- * @private
- */
-cca.models.FileSystem.initExternalDir_ = function() {
-  return new Promise((resolve) => {
-    if (!cca.util.isChromeOS()) {
-      resolve([null, null]);
-      return;
-    }
-    chrome.fileSystem.getVolumeList((volumes) => {
-      if (volumes) {
-        for (var i = 0; i < volumes.length; i++) {
-          var volumeId = volumes[i].volumeId;
-          if (volumeId.indexOf('downloads:Downloads') !== -1 ||
-              volumeId.indexOf('downloads:MyFiles') !== -1) {
-            chrome.fileSystem.requestFileSystem(volumes[i],
-                (fs) => resolve([fs && fs.root, volumeId]));
-            return;
-          }
-        }
-      }
-      resolve([null, null]);
-    });
-  }).then(([dir, volumeId]) => {
-    if (volumeId && volumeId.indexOf('downloads:MyFiles') !== -1) {
-      return cca.models.FileSystem.readDir_(dir).then((entries) => {
-        return entries.find(
-            (entry) => entry.name == 'Downloads' && entry.isDirectory);
-      });
-    }
-    return dir;
-  });
-};
-
-/**
- * Initializes file systems, migrating pictures if needed. This function
- * should be called only once in the beginning of the app.
- * @param {function()} promptMigrate Callback to instantiate a promise that
-       prompts users to migrate pictures if no acknowledgement yet.
- * @return {!Promise<boolean>} Promise for the external-fs result.
- */
-cca.models.FileSystem.initialize = function(promptMigrate) {
-  var checkAcked = new Promise((resolve) => {
-    // ack 0: User has not yet acknowledged to migrate pictures.
-    // ack 1: User acknowledges to migrate pictures to Downloads.
-    chrome.storage.local.get({ackMigratePictures: 0},
-        (values) => resolve(values.ackMigratePictures >= 1));
-  });
-  var checkMigrated = new Promise((resolve) => {
-    if (chrome.chromeosInfoPrivate) {
-      chrome.chromeosInfoPrivate.get(['cameraMediaConsolidated'],
-          (values) => resolve(values['cameraMediaConsolidated']));
-    } else {
-      resolve(false);
-    }
-  });
-  var ackMigrate = () => chrome.storage.local.set({ackMigratePictures: 1});
-  var doneMigrate = () => chrome.chromeosInfoPrivate &&
-      chrome.chromeosInfoPrivate.set('cameraMediaConsolidated', true);
-
-  return Promise.all([
-    cca.models.FileSystem.initInternalDir_(),
-    cca.models.FileSystem.initExternalDir_(),
-    checkAcked,
-    checkMigrated,
-  ]).then(([internalDir, externalDir, acked, migrated]) => {
-    cca.models.FileSystem.internalDir = internalDir;
-    cca.models.FileSystem.externalDir = externalDir;
-    if (migrated && !externalDir) {
-      throw new Error('External file system should be available.');
-    }
-    // Check if acknowledge-prompt and migrate-pictures are needed.
-    if (migrated || !cca.models.FileSystem.externalDir) {
-      return [false, false];
-    }
-    // Check if any internal picture other than thumbnail needs migration.
-    // Pictures taken by old Camera App may not have IMG_ or VID_ prefix.
-    var dir = cca.models.FileSystem.internalDir;
-    return cca.models.FileSystem.readDir_(dir).then((entries) => {
-      return entries.some(
-          (entry) => !cca.models.FileSystem.hasThumbnailPrefix_(entry));
-    }).then((migrateNeeded) => {
-      if (migrateNeeded) {
-        return [!acked, true];
-      }
-      // If the external file system is supported and there is already no
-      // picture in the internal file system, it implies done migration and
-      // then doesn't need acknowledge-prompt.
-      ackMigrate();
-      doneMigrate();
-      return [false, false];
-    });
-  }).then(([promptNeeded, migrateNeeded]) => { // Prompt to migrate if needed.
-    return !promptNeeded ? migrateNeeded : promptMigrate().then(() => {
-      ackMigrate();
-      return migrateNeeded;
-    });
-  }).then((migrateNeeded) => { // Migrate pictures if needed.
-    const external = cca.models.FileSystem.externalDir != null;
-    return !migrateNeeded ? external : cca.models.FileSystem.migratePictures()
-        .then(doneMigrate).then(() => external);
-  });
-};
-
-/**
- * Reads file entries from the directory.
- * @param {DirectoryEntry} dir Directory entry to be read.
- * @return {!Promise<!Array<FileEntry>>} Promise for the read file entries.
- * @private
- */
-cca.models.FileSystem.readDir_ = function(dir) {
-  return !dir ? Promise.resolve([]) : new Promise((resolve, reject) => {
-    var dirReader = dir.createReader();
-    var entries = [];
-    var readEntries = () => {
-      dirReader.readEntries((inEntries) => {
-        if (inEntries.length == 0) {
-          resolve(entries);
-          return;
-        }
-        entries = entries.concat(inEntries);
-        readEntries();
-      }, reject);
-    };
-    readEntries();
-  });
-};
-
-/**
- * Migrates all picture-files from internal storage to external storage.
- * @return {!Promise} Promise for the operation.
- */
-cca.models.FileSystem.migratePictures = function() {
-  var internalDir = cca.models.FileSystem.internalDir;
-  var externalDir = cca.models.FileSystem.externalDir;
-
-  var migratePicture = (pictureEntry, thumbnailEntry) => {
-    var name = cca.models.FileSystem.regulatePictureName(pictureEntry);
-    return cca.models.FileSystem.getFile(
-        externalDir, name, true).then((entry) => {
-      return new Promise((resolve, reject) => {
-        pictureEntry.copyTo(externalDir, entry.name, (result) => {
-          if (result.name != pictureEntry.name && thumbnailEntry) {
-            // Thumbnails can be recreated later if failing to rename them here.
-            thumbnailEntry.moveTo(internalDir,
-                cca.models.FileSystem.getThumbnailName(result));
-          }
-          pictureEntry.remove(() => {});
-          resolve();
-        }, reject);
-      });
-    });
-  };
-
-  return cca.models.FileSystem.readDir_(internalDir).then((internalEntries) => {
-    var pictureEntries = [];
-    var thumbnailEntriesByName = {};
-    cca.models.FileSystem.parseInternalEntries_(
-        internalEntries, thumbnailEntriesByName, pictureEntries);
-
-    var migrated = [];
-    for (var index = 0; index < pictureEntries.length; index++) {
-      var entry = pictureEntries[index];
-      var thumbnailName = cca.models.FileSystem.getThumbnailName(entry);
-      var thumbnailEntry = thumbnailEntriesByName[thumbnailName];
-      migrated.push(migratePicture(entry, thumbnailEntry));
-    }
-    return Promise.all(migrated);
-  });
-};
-
-/**
- * Generates a file name for the picture.
- * @param {boolean} isVideo Picture is a video.
- * @param {number} time Timestamp of the picture in millisecond.
- * @return {string} Picture's file name.
- * @private
- */
-cca.models.FileSystem.generatePictureName_ = function(isVideo, time) {
-  const pad = (n) => (n < 10 ? '0' : '') + n;
-
-  // File name base will be formatted as IMG/VID_yyyyMMdd_HHmmss.
-  var prefix = isVideo ? cca.models.FileSystem.VIDEO_PREFIX :
-      cca.models.FileSystem.IMAGE_PREFIX;
-  var date = new Date(time);
-  var result = prefix + date.getFullYear() + pad(date.getMonth() + 1) +
-      pad(date.getDate()) + '_' + pad(date.getHours()) +
-      pad(date.getMinutes()) + pad(date.getSeconds());
-
-  return result + (isVideo ? '.mkv' : '.jpg');
-};
-
-/**
- * Regulates the picture name to the desired format if it's in legacy formats.
- * @param {FileEntry} entry Picture entry whose name to be regulated.
- * @return {string} Name in the desired format.
- */
-cca.models.FileSystem.regulatePictureName = function(entry) {
-  if (cca.models.FileSystem.hasVideoPrefix(entry) ||
-      cca.models.FileSystem.hasImagePrefix_(entry)) {
-    var match = entry.name.match(/(\w{3}_\d{8}_\d{6})(?:_(\d+))?(\..+)?$/);
-    if (match) {
-      var idx = match[2] ? ' (' + match[2] + ')' : '';
-      var ext = match[3] ? match[3].replace(/\.webm$/, '.mkv') : '';
-      return match[1] + idx + ext;
-    }
-  } else {
-    // Early pictures are in legacy file name format (crrev.com/c/310064).
-    var match = entry.name.match(/(\d+).(?:\d+)/);
-    if (match) {
-      return cca.models.FileSystem.generatePictureName_(
-          false, parseInt(match[1], 10));
-    }
-  }
-  return entry.name;
-};
-
-/**
- * Saves the blob to the given file name. Name of the actually saved file
- * might be different from the given file name if the file already exists.
- * @param {DirectoryEntry} dir Directory to be written into.
- * @param {string} name Name of the file.
- * @param {Blob} blob Data of the file to be saved.
- * @return {!Promise<FileEntry>} Promise for the result.
- * @private
- */
-cca.models.FileSystem.saveToFile_ = function(dir, name, blob) {
-  return cca.models.FileSystem.getFile(dir, name, true).then((entry) => {
-    return new Promise((resolve, reject) => {
-      entry.createWriter((fileWriter) => {
-        fileWriter.onwriteend = () => resolve(entry);
-        fileWriter.onerror = reject;
-        fileWriter.write(blob);
-      }, reject);
-    });
-  });
-};
-
-/**
- * Saves the picture into the external or internal file system.
- * @param {boolean} isVideo Picture is a video.
- * @param {Blob} blob Data of the picture to be saved.
- * @return {!Promise<FileEntry>} Promise for the result.
- */
-cca.models.FileSystem.savePicture = function(isVideo, blob) {
-  var dir =
-      cca.models.FileSystem.externalDir || cca.models.FileSystem.internalDir;
-  var name = cca.models.FileSystem.generatePictureName_(isVideo, Date.now());
-  return cca.models.FileSystem.saveToFile_(dir, name, blob);
-};
-
-/**
- * Creates a thumbnail from the picture.
- * @param {boolean} isVideo Picture is a video.
- * @param {string} url Picture as an URL.
- * @return {!Promise<Blob>} Promise for the result.
- * @private
- */
-cca.models.FileSystem.createThumbnail_ = function(isVideo, url) {
-  const thumbnailWidth = 480;
-  var element = document.createElement(isVideo ? 'video' : 'img');
-  return new Promise((resolve, reject) => {
-    if (isVideo) {
-      element.onloadeddata = resolve;
-    } else {
-      element.onload = resolve;
-    }
-    element.onerror = reject;
-    element.src = url;
-  }).then(() => {
-    var canvas = document.createElement('canvas');
-    var context = canvas.getContext('2d');
-    var ratio = isVideo ?
-        element.videoHeight / element.videoWidth :
-        element.height / element.width;
-    var thumbnailHeight = Math.round(thumbnailWidth * ratio);
-    canvas.width = thumbnailWidth;
-    canvas.height = thumbnailHeight;
-    context.drawImage(element, 0, 0, thumbnailWidth, thumbnailHeight);
-    return new Promise((resolve, reject) => {
-      canvas.toBlob((blob) => {
-        if (blob) {
-          resolve(blob);
-        } else {
-          reject(new Error('Failed to create thumbnail.'));
-        }
-      }, 'image/jpeg');
-    });
-  });
-};
-
-/**
- * Gets the thumbnail name of the given picture.
- * @param {FileEntry} entry Picture's file entry.
- * @return {string} Thumbnail name.
- */
-cca.models.FileSystem.getThumbnailName = function(entry) {
-  var thumbnailName = cca.models.FileSystem.THUMBNAIL_PREFIX + entry.name;
-  return (thumbnailName.substr(0, thumbnailName.lastIndexOf('.')) ||
-      thumbnailName) + '.jpg';
-};
-
-/**
- * Creates and saves the thumbnail of the given picture.
- * @param {boolean} isVideo Picture is a video.
- * @param {FileEntry} entry Picture's file entry whose thumbnail to be saved.
- * @return {!Promise<FileEntry>} Promise for the result.
- */
-cca.models.FileSystem.saveThumbnail = function(isVideo, entry) {
-  return cca.models.FileSystem.pictureURL(entry).then((url) => {
-    return cca.models.FileSystem.createThumbnail_(isVideo, url);
-  }).then((blob) => {
-    var thumbnailName = cca.models.FileSystem.getThumbnailName(entry);
-    return cca.models.FileSystem.saveToFile_(
-        cca.models.FileSystem.internalDir, thumbnailName, blob);
-  });
-};
-
-/**
- * Checks if the entry's name has the video prefix.
- * @param {FileEntry} entry File entry.
- * @return {boolean} Has the video prefix or not.
- * @private
- */
-cca.models.FileSystem.hasVideoPrefix = function(entry) {
-  return entry.name.startsWith(cca.models.FileSystem.VIDEO_PREFIX);
-};
-
-/**
- * Checks if the entry's name has the image prefix.
- * @param {FileEntry} entry File entry.
- * @return {boolean} Has the image prefix or not.
- * @private
- */
-cca.models.FileSystem.hasImagePrefix_ = function(entry) {
-  return entry.name.startsWith(cca.models.FileSystem.IMAGE_PREFIX);
-};
-
-/**
- * Checks if the entry's name has the thumbnail prefix.
- * @param {FileEntry} entry File entry.
- * @return {boolean} Has the thumbnail prefix or not.
- * @private
- */
-cca.models.FileSystem.hasThumbnailPrefix_ = function(entry) {
-  return entry.name.startsWith(cca.models.FileSystem.THUMBNAIL_PREFIX);
-};
-
-/**
- * Parses and filters the internal entries to thumbnail and picture entries.
- * @param {Array<FileEntry>} internalEntries Internal file entries.
- * @param {Object<string, FileEntry>} thumbnailEntriesByName Result thumbanil
- *     entries mapped by thumbnail names, initially empty.
- * @param {Array<FileEntry>=} pictureEntries Result picture entries, initially
- *     empty.
- * @private
- */
-cca.models.FileSystem.parseInternalEntries_ = function(
-    internalEntries, thumbnailEntriesByName, pictureEntries) {
-  var isThumbnail = cca.models.FileSystem.hasThumbnailPrefix_;
-  var thumbnailEntries = [];
-  if (pictureEntries) {
-    for (var index = 0; index < internalEntries.length; index++) {
-      if (isThumbnail(internalEntries[index])) {
-        thumbnailEntries.push(internalEntries[index]);
-      } else {
-        pictureEntries.push(internalEntries[index]);
-      }
-    }
-  } else {
-    thumbnailEntries = internalEntries.filter(isThumbnail);
-  }
-  for (var index = 0; index < thumbnailEntries.length; index++) {
-    var thumbnailEntry = thumbnailEntries[index];
-    thumbnailEntriesByName[thumbnailEntry.name] = thumbnailEntry;
-  }
-};
-
-/**
- * Gets the picture and thumbnail entries.
- * @return {!Promise<!Array<!Array<FileEntry>|!Object<string, FileEntry>>>}
- *     Promise for the picture entries and the thumbnail entries mapped by
- *     thumbnail names.
- */
-cca.models.FileSystem.getEntries = function() {
-  return Promise.all([
-    cca.models.FileSystem.readDir_(cca.models.FileSystem.internalDir),
-    cca.models.FileSystem.readDir_(cca.models.FileSystem.externalDir),
-  ]).then(([internalEntries, externalEntries]) => {
-    var pictureEntries = [];
-    var thumbnailEntriesByName = {};
-
-    if (cca.models.FileSystem.externalDir) {
-      pictureEntries = externalEntries.filter((entry) => {
-        if (!cca.models.FileSystem.hasVideoPrefix(entry) &&
-            !cca.models.FileSystem.hasImagePrefix_(entry)) {
-          return false;
-        }
-        return entry.name.match(/_(\d{8})_(\d{6})(?: \((\d+)\))?/);
-      });
-      cca.models.FileSystem.parseInternalEntries_(
-          internalEntries, thumbnailEntriesByName);
-    } else {
-      cca.models.FileSystem.parseInternalEntries_(
-          internalEntries, thumbnailEntriesByName, pictureEntries);
-    }
-    return [pictureEntries, thumbnailEntriesByName];
-  });
-};
-
-/**
- * Returns an URL for a picture.
- * @param {FileEntry} entry File entry.
- * @return {!Promise<string>} Promise for the result.
- */
-cca.models.FileSystem.pictureURL = function(entry) {
-  return new Promise((resolve) => {
-    if (cca.models.FileSystem.externalDir) {
-      entry.file((file) => resolve(URL.createObjectURL(file)));
-    } else {
-      resolve(entry.toURL());
-    }
-  });
-};
-
-/**
- * Gets the file by the given name, avoiding name conflicts if necessary.
- * @param {DirectoryEntry} dir Directory to get the file from.
- * @param {string} name File name. Result file may have a different name.
- * @param {boolean} create True to create file, false otherwise.
- * @return {!Promise<?FileEntry>} Promise for the result.
- */
-cca.models.FileSystem.getFile = function(dir, name, create) {
-  return new Promise((resolve, reject) => {
-    var options = create ? {create: true, exclusive: true} : {create: false};
-    dir.getFile(name, options, resolve, reject);
-  }).catch((error) => {
-    if (create && error.name == 'InvalidModificationError') {
-      // Avoid name conflicts for creating files.
-      return cca.models.FileSystem.getFile(dir,
-          cca.models.FileSystem.incrementFileName_(name), create);
-    } else if (!create && error.name == 'NotFoundError') {
-      return null;
-    }
-    throw error;
-  });
-};
-
-/**
- * Increments the file index of a given file name to avoid name conflicts.
- * @param {string} name File name.
- * @return {string} File name with incremented index.
- * @private
- */
-cca.models.FileSystem.incrementFileName_ = function(name) {
-  var [base, ext] = ['', ''];
-  var idx = 0;
-  var match = name.match(/^([^.]+)(\..+)?$/);
-  if (match) {
-    base = match[1];
-    ext = match[2];
-    match = base.match(/ \((\d+)\)$/);
-    if (match) {
-      base = base.substring(0, match.index);
-      idx = parseInt(match[1], 10);
-    }
-  }
-  return base + ' (' + (idx + 1) + ')' + ext;
-};
diff --git a/chrome/browser/resources/chromeos/camera/src/js/models/gallery.js b/chrome/browser/resources/chromeos/camera/src/js/models/gallery.js
deleted file mode 100644
index b56927d..0000000
--- a/chrome/browser/resources/chromeos/camera/src/js/models/gallery.js
+++ /dev/null
@@ -1,320 +0,0 @@
-// Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-'use strict';
-
-/**
- * Namespace for the Camera app.
- */
-var cca = cca || {};
-
-/**
- * Namespace for models.
- */
-cca.models = cca.models || {};
-
-/**
- * Creates the gallery model controller.
- * @constructor
- */
-cca.models.Gallery = function() {
-  /**
-   * @type {Array<cca.models.Gallery.Observer>}
-   * @private
-   */
-  this.observers_ = [];
-
-  /**
-   * @type {Promise<Array<cca.models.Gallery.Picture>>}
-   * @private
-   */
-  this.loaded_ = null;
-
-  // End of properties, seal the object.
-  Object.seal(this);
-};
-
-/**
- * Wraps an image/video and its thumbnail as a picture in the model.
- * @param {FileEntry} thumbnailEntry Thumbnail file entry.
- * @param {FileEntry} pictureEntry Picture file entry.
- * @param {boolean} isMotionPicture True if it's a motion picture (video),
- *     false it's a still picture (image).
- * @constructor
- */
-cca.models.Gallery.Picture = function(
-    thumbnailEntry, pictureEntry, isMotionPicture) {
-  /**
-   * @type {?FileEntry}
-   * @private
-   */
-  this.thumbnailEntry_ = thumbnailEntry;
-
-  /**
-   * @type {FileEntry}
-   * @private
-   */
-  this.pictureEntry_ = pictureEntry;
-
-  /**
-   * @type {boolean}
-   * @private
-   */
-  this.isMotionPicture_ = isMotionPicture;
-
-  /**
-   * @type {Date}
-   * @private
-   */
-  this.timestamp_ = cca.models.Gallery.Picture.parseTimestamp_(pictureEntry);
-
-  // End of properties. Freeze the object.
-  Object.freeze(this);
-};
-
-/**
- * Gets a picture's timestamp from its name.
- * @param {FileEntry} pictureEntry Picture file entry.
- * @return {Date} Picture timestamp.
- * @private
- */
-cca.models.Gallery.Picture.parseTimestamp_ = function(pictureEntry) {
-  var num = function(str) {
-    return parseInt(str, 10);
-  };
-
-  var name = cca.models.FileSystem.regulatePictureName(pictureEntry);
-  // Match numeric parts from filenames, e.g. IMG_'yyyyMMdd_HHmmss (n)'.jpg.
-  // Assume no more than one picture taken within one millisecond.
-  var match = name.match(
-      /_(\d{4})(\d{2})(\d{2})_(\d{2})(\d{2})(\d{2})(?: \((\d+)\))?/);
-  return match ? new Date(num(match[1]), num(match[2]) - 1, num(match[3]),
-      num(match[4]), num(match[5]), num(match[6]),
-      match[7] ? num(match[7]) : 0) : new Date(0);
-};
-
-cca.models.Gallery.Picture.prototype = {
-  // Assume pictures always have different names as URL API may still point to
-  // the deleted file for new files created with the same name.
-  get thumbnailURL() {
-    return this.thumbnailEntry_ && this.thumbnailEntry_.toURL();
-  },
-  get pictureEntry() {
-    return this.pictureEntry_;
-  },
-  get isMotionPicture() {
-    return this.isMotionPicture_;
-  },
-  get timestamp() {
-    return this.timestamp_;
-  },
-};
-
-/**
- * Creates and returns an URL for a picture.
- * @return {!Promise<string>} Promise for the result.
- */
-cca.models.Gallery.Picture.prototype.pictureURL = function() {
-  return cca.models.FileSystem.pictureURL(this.pictureEntry_);
-};
-
-/**
- * Observer interface for the pictures' model changes.
- * @constructor
- */
-cca.models.Gallery.Observer = function() {
-};
-
-/**
- * Notifies about a deleted picture.
- * @param {cca.models.Gallery.Picture} picture Picture deleted.
- */
-cca.models.Gallery.Observer.prototype.onPictureDeleted = function(picture) {
-};
-
-/**
- * Notifies about an added picture.
- * @param {cca.models.Gallery.Picture} picture Picture added.
- */
-cca.models.Gallery.Observer.prototype.onPictureAdded = function(picture) {
-};
-
-/**
- * Adds an observer.
- * @param {cca.models.Gallery.Observer} observer Observer to be added.
- */
-cca.models.Gallery.prototype.addObserver = function(observer) {
-  this.observers_.push(observer);
-};
-
-/**
- * Notifies observers about the added or deleted picture.
- * @param {string} fn Observers' callback function name.
- * @param {cca.models.Gallery.Picture} picture Picture added or deleted.
- * @private
- */
-cca.models.Gallery.prototype.notifyObservers_ = function(fn, picture) {
-  this.observers_.forEach((observer) => observer[fn](picture));
-};
-
-/**
- * Loads the pictures from the storages and adds them to the pictures model.
- */
-cca.models.Gallery.prototype.load = function() {
-  this.loaded_ = cca.models.FileSystem.getEntries().then(
-      ([pictureEntries, thumbnailEntriesByName]) => {
-        var wrapped =
-            pictureEntries.filter((entry) => entry.name).map((entry) => {
-              var name = cca.models.FileSystem.getThumbnailName(entry);
-              return this.wrapPicture_(entry, thumbnailEntriesByName[name]);
-            });
-        // Sort pictures by timestamps to make most recent picture at the end.
-        // TODO(yuli): Remove unused thumbnails.
-        return Promise.all(wrapped).then((pictures) => {
-          return pictures.sort((a, b) => {
-            if (a.timestamp == null) {
-              return -1;
-            }
-            if (b.timestamp == null) {
-              return 1;
-            }
-            return a.timestamp - b.timestamp;
-          });
-        });
-      });
-
-  this.loaded_.then((pictures) => {
-    pictures.forEach((picture) =>
-        this.notifyObservers_('onPictureAdded', picture));
-  }).catch(console.warn);
-};
-
-/**
- * Gets the last picture of the loaded pictures' model.
- * @return {!Promise<cca.models.Gallery.Picture>} Promise for the result.
- */
-cca.models.Gallery.prototype.lastPicture = function() {
-  return this.loaded_.then((pictures) => pictures[pictures.length - 1]);
-};
-
-/**
- * Checks and updates the last picture of the loaded pictures' model.
- * @return {!Promise<cca.models.Gallery.Picture>} Promise for the result.
- */
-cca.models.Gallery.prototype.checkLastPicture = function() {
-  return this.lastPicture().then((picture) => {
-    // Assume only external pictures were removed without updating the model.
-    var dir = cca.models.FileSystem.externalDir;
-    if (dir && picture) {
-      var name = picture.pictureEntry.name;
-      return cca.models.FileSystem.getFile(dir, name, false).then(
-          (entry) => [picture, (entry != null)]);
-    }
-    return [picture, (picture != null)];
-  }).then(([picture, pictureEntryExist]) => {
-    if (pictureEntryExist || !picture) {
-      return picture;
-    }
-    return this.deletePicture(picture, true).then(
-        this.checkLastPicture.bind(this));
-  });
-};
-
-/**
- * Deletes the picture in the pictures' model.
- * @param {cca.models.Gallery.Picture} picture Picture to be deleted.
- * @param {boolean=} pictureEntryDeleted Whether the picture-entry was deleted.
- * @return {!Promise} Promise for the operation.
- */
-cca.models.Gallery.prototype.deletePicture = function(
-    picture, pictureEntryDeleted) {
-  var removed = new Promise((resolve, reject) => {
-    if (pictureEntryDeleted) {
-      resolve();
-    } else {
-      picture.pictureEntry.remove(resolve, reject);
-    }
-  });
-  return Promise.all([this.loaded_, removed]).then(([pictures, _]) => {
-    var removal = pictures.indexOf(picture);
-    if (removal != -1) {
-      pictures.splice(removal, 1);
-    }
-    this.notifyObservers_('onPictureDeleted', picture);
-    if (picture.thumbnailEntry_) {
-      picture.thumbnailEntry_.remove(() => {});
-    }
-  });
-};
-
-/**
- * Exports the picture to the external storage.
- * @param {cca.models.Gallery.Picture} picture Picture to be exported.
- * @param {FileEntry} entry Target file entry.
- * @return {!Promise} Promise for the operation.
- */
-cca.models.Gallery.prototype.exportPicture = function(picture, entry) {
-  return new Promise((resolve, reject) => {
-    entry.getParent((directory) => {
-      picture.pictureEntry.copyTo(directory, entry.name, resolve, reject);
-    }, reject);
-  });
-};
-
-/**
- * Wraps file entries as a picture for the pictures' model.
- * @param {FileEntry} pictureEntry Picture file entry.
- * @param {FileEntry=} thumbnailEntry Thumbnail file entry.
- * @return {!Promise<cca.models.Gallery.Picture>} Promise for the picture.
- * @private
- */
-cca.models.Gallery.prototype.wrapPicture_ = function(
-    pictureEntry, thumbnailEntry) {
-  // Create the thumbnail if it's not cached yet. Ignore errors and proceed to
-  // wrap the picture even if unable to save its thumbnail.
-  var isMotionPicture = cca.models.FileSystem.hasVideoPrefix(pictureEntry);
-  var saved = () => {
-    return cca.models.FileSystem.saveThumbnail(
-        isMotionPicture, pictureEntry).catch(() => null);
-  };
-  return Promise.resolve(thumbnailEntry || saved()).then((thumbnailEntry) => {
-    return new cca.models.Gallery.Picture(
-        thumbnailEntry, pictureEntry, isMotionPicture);
-  });
-};
-
-/**
- * Saves a picture that will also be added to the pictures' model.
- * @param {Blob} blob Data of the picture to be added.
- * @param {boolean} isMotionPicture Picture to be added is a video.
- * @return {!Promise} Promise for the operation.
- */
-cca.models.Gallery.prototype.savePicture = function(blob, isMotionPicture) {
-  // TODO(yuli): models.Gallery listens to models.FileSystem's file-added event
-  // and then add a new picture into the model.
-  var saved = new Promise((resolve) => {
-    if (isMotionPicture) {
-      resolve(blob);
-    } else {
-      // Ignore errors since it is better to save something than nothing.
-      // TODO(yuli): Support showing images by EXIF orientation instead.
-      cca.util.orientPhoto(blob, resolve, () => resolve(blob));
-    }
-  }).then((blob) => {
-    return cca.models.FileSystem.savePicture(isMotionPicture, blob);
-  }).then((pictureEntry) => {
-    return this.wrapPicture_(pictureEntry);
-  });
-
-  return Promise.all([this.loaded_, saved]).then(([pictures, picture]) => {
-    // Insert the picture into the sorted pictures' model.
-    for (var index = pictures.length - 1; index >= 0; index--) {
-      if (picture.timestamp >= pictures[index].timestamp) {
-        break;
-      }
-    }
-    pictures.splice(index + 1, 0, picture);
-    this.notifyObservers_('onPictureAdded', picture);
-  });
-};
diff --git a/chrome/browser/resources/chromeos/camera/src/js/nav.js b/chrome/browser/resources/chromeos/camera/src/js/nav.js
deleted file mode 100644
index 52ca621..0000000
--- a/chrome/browser/resources/chromeos/camera/src/js/nav.js
+++ /dev/null
@@ -1,214 +0,0 @@
-// Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-'use strict';
-
-/**
- * Namespace for the Camera app.
- */
-var cca = cca || {};
-
-/**
- * Namespace for navigation of views.
- */
-cca.nav = cca.nav || {};
-
-/**
- * All views stacked in ascending z-order (DOM order) for navigation, and only
- * the topmost visible view is active (clickable/focusable).
- * @type {Array<cca.views.View>}
- */
-cca.nav.views_ = [];
-
-/**
- * Index of the current topmost visible view in the stacked views.
- * @type {number}
- */
-cca.nav.topmostIndex_ = -1;
-
-/**
- * Sets up navigation for all views, e.g. camera-view, dialog-view, etc.
- * @param {Array<cca.views.View>} views All views in ascending z-order.
- */
-cca.nav.setup = function(views) {
-  cca.nav.views_ = views;
-  // Manage all tabindex usages in cca.nav for navigation.
-  document.querySelectorAll('[tabindex]').forEach(
-      (element) => cca.util.makeUnfocusableByMouse(element));
-};
-
-/**
- * Finds the view by its id in the stacked views.
- * @param {string} id View identifier.
- * @return {number} Index of the view found; otherwise, -1.
- * @private
- */
-cca.nav.findIndex_ = function(id) {
-  return cca.nav.views_.findIndex((view) => view.root.id == id);
-};
-
-/**
- * Finds the next topmost visible view in the stacked views.
- * @return {number} Index of the view found; otherwise, -1.
- * @private
- */
-cca.nav.findNextTopmostIndex_ = function() {
-  for (var i = cca.nav.topmostIndex_ - 1; i >= 0; i--) {
-    if (cca.nav.isShown_(i)) {
-      return i;
-    }
-  }
-  return -1;
-};
-
-/**
- * Checks if the view is already shown.
- * @param {number} index Index of the view.
- * @return {boolean} Whether the view is shown or not.
- * @private
- */
-cca.nav.isShown_ = function(index) {
-  return document.body.classList.contains(cca.nav.views_[index].root.id);
-};
-
-/**
- * Shows the view indexed in the stacked views and activates the view only if
- * it becomes the topmost visible view.
- * @param {number} index Index of the view.
- * @return {cca.views.View} View shown.
- * @private
- */
-cca.nav.show_ = function(index) {
-  var view = cca.nav.views_[index];
-  if (!cca.nav.isShown_(index)) {
-    document.body.classList.add(view.root.id);
-    view.layout();
-    if (index > cca.nav.topmostIndex_) {
-      if (cca.nav.topmostIndex_ >= 0) {
-        cca.nav.inactivate_(cca.nav.topmostIndex_);
-      }
-      cca.nav.activate_(index);
-      cca.nav.topmostIndex_ = index;
-    }
-  }
-  return view;
-};
-
-/**
- * Hides the view indexed in the stacked views and inactivate the view if it was
- * the topmost visible view.
- * @param {number} index Index of the view.
- * @private
- */
-cca.nav.hide_ = function(index) {
-  if (index == cca.nav.topmostIndex_) {
-    cca.nav.inactivate_(index);
-    var next = cca.nav.findNextTopmostIndex_();
-    if (next >= 0) {
-      cca.nav.activate_(next);
-    }
-    cca.nav.topmostIndex_ = next;
-  }
-  document.body.classList.remove(cca.nav.views_[index].root.id);
-};
-
-/**
- * Activates the view to be focusable.
- * @param {number} index Index of the view.
- */
-cca.nav.activate_ = function(index) {
-  // Restore the view's child elements' tabindex and then focus the view.
-  var view = cca.nav.views_[index];
-  view.root.setAttribute('aria-hidden', 'false');
-  view.root.querySelectorAll('[data-tabindex]').forEach((element) => {
-    element.setAttribute('tabindex', element.dataset.tabindex);
-    element.removeAttribute('data-tabindex');
-  });
-  view.focus();
-};
-
-/**
- * Inactivates the view to be unfocusable.
- * @param {number} index Index of the view.
- */
-cca.nav.inactivate_ = function(index) {
-  var view = cca.nav.views_[index];
-  view.root.setAttribute('aria-hidden', 'true');
-  view.root.querySelectorAll('[tabindex]').forEach((element) => {
-    element.dataset.tabindex = element.getAttribute('tabindex');
-    element.setAttribute('tabindex', '-1');
-  });
-  document.activeElement.blur();
-};
-
-/**
- * Sets the element's tabindex on the view.
- * @param {cca.views.View} view View that the element is on.
- * @param {HTMLElement} element Element whose tabindex to be set.
- * @param {number} tabIndex Tab-index of the element.
- */
-cca.nav.setTabIndex = function(view, element, tabIndex) {
-  if ((cca.nav.topmostIndex_ >= 0) &&
-      (cca.nav.views_[cca.nav.topmostIndex_] == view)) {
-    element.tabIndex = tabIndex;
-  } else {
-    // Remember tabindex by data attribute if the view isn't active.
-    element.tabIndex = -1;
-    element.dataset.tabindex = tabIndex + '';
-  }
-};
-
-/**
- * Opens a navigation session of the view; shows the view before entering it and
- * hides the view after leaving it for the ended session.
- * @param {string} id View identifier.
- * @param {...*} args Optional rest parameters for entering the view.
- * @return {!Promise<*>} Promise for the operation or result.
- */
-cca.nav.open = function(id, ...args) {
-  var index = cca.nav.findIndex_(id);
-  return cca.nav.show_(index).enter(...args).finally(() => {
-    cca.nav.hide_(index);
-  });
-};
-
-/**
- * Closes the current navigation session of the view by leaving it.
- * @param {string} id View identifier.
- * @param {*=} condition Optional condition for leaving the view.
- * @return {boolean} Whether successfully leaving the view or not.
- */
-cca.nav.close = function(id, condition) {
-  var index = cca.nav.findIndex_(id);
-  return cca.nav.views_[index].leave(condition);
-};
-
-/**
- * Handles key pressed event.
- * @param {Event} event Key press event.
- */
-cca.nav.onKeyPressed = function(event) {
-  var key = cca.util.getShortcutIdentifier(event);
-  if (key == 'BrowserBack') {
-    chrome.app.window.current().minimize();
-    return;
-  }
-  // Make the topmost visible view handle the pressed key.
-  if (cca.nav.topmostIndex_ >= 0 &&
-      cca.nav.views_[cca.nav.topmostIndex_].onKeyPressed(key)) {
-    event.preventDefault();
-  }
-};
-
-/**
- * Handles resized window on current all visible views.
- */
-cca.nav.onWindowResized = function() {
-  // All visible views need being relayout after window is resized.
-  for (var i = cca.nav.views_.length - 1; i >= 0; i--) {
-    if (cca.nav.isShown_(i)) {
-      cca.nav.views_[i].layout();
-    }
-  }
-};
diff --git a/chrome/browser/resources/chromeos/camera/src/js/scrollbar.js b/chrome/browser/resources/chromeos/camera/src/js/scrollbar.js
deleted file mode 100644
index a0441e2f8..0000000
--- a/chrome/browser/resources/chromeos/camera/src/js/scrollbar.js
+++ /dev/null
@@ -1,315 +0,0 @@
-// Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-'use strict';
-
-/**
- * Namespace for the Camera app.
- */
-var cca = cca || {};
-
-/**
- * Creates a scroll bar for a scrollable area.
- * @param {cca.util.SmoothScroller} scroller Scroller for the scrollable
- *     element.
- * @constructor
- */
-cca.ScrollBar = function(scroller) {
-  /**
-   * @type {cca.util.SmoothScroller}
-   * @protected
-   */
-  this.scroller = scroller;
-
-  /**
-   * @type {?number}
-   * @private
-   */
-  this.thumbLastScreenPosition_ = null;
-
-  /**
-   * @type {?number}
-   * @private
-   */
-  this.domChangedTimer_ = null;
-
-  /**
-   * The scroll bar's track.
-   * @type {HTMLElement}
-   * @protected
-   */
-  this.track = document.createElement('div');
-
-  /**
-   * The scroll bar's thumb.
-   * @type {HTMLElement}
-   * @protected
-   */
-  this.thumb = document.createElement('div');
-
-  /**
-   * @type {boolean}
-   * @private
-   */
-  this.thumbHidden_ = false;
-
-  /**
-   * @type {MutationObserver}
-   * @private
-   */
-  this.domObserver_ = null;
-
-  // End of properties. Seal the object.
-  Object.seal(this);
-
-  // Initialize the scroll bar's elements.
-  this.track.classList.add('scrollbar-track');
-  this.thumb.classList.add('scrollbar-thumb');
-
-  this.scroller.element.appendChild(this.track);
-  this.track.appendChild(this.thumb);
-
-  // Add event handlers.
-  this.thumb.addEventListener('mousedown', this.onThumbPressed_.bind(this));
-  window.addEventListener('mouseup', this.onMouseUp_.bind(this));
-  window.addEventListener('mousemove', this.onMouseMove_.bind(this));
-
-  this.scroller.element.addEventListener('scroll', this.redraw.bind(this));
-  this.domObserver_ = new MutationObserver(this.onDomChanged_.bind(this));
-  this.domObserver_.observe(
-      this.scroller.element, {subtree: true, attributes: true});
-
-  this.redraw();
-};
-
-/**
- * Sets the scrollbar thumb hidden even for a scrollable area.
- * @param {boolean} hidden True if hides the thumb, false otherwise.
- */
-cca.ScrollBar.prototype.setThumbHidden = function(hidden) {
-  this.thumbHidden_ = hidden;
-  this.redraw();
-};
-
-/**
- * Pressing on the scroll bar's button handler.
- * @param {Event} event Pressing event.
- * @private
- */
-cca.ScrollBar.prototype.onThumbPressed_ = function(event) {
-  this.thumbLastScreenPosition_ = this.getScreenPosition(event);
-  this.thumb.classList.add('pressed');
-
-  event.stopPropagation();
-  event.preventDefault();
-};
-
-/**
- * Releasing the button handler. Note, that it may not be called when releasing
- * outside of the window. Therefore this is also called from onMouseMove_.
- *
- * @param {Event} event Mouse event.
- * @private
- */
-cca.ScrollBar.prototype.onMouseUp_ = function(event) {
-  this.thumbLastScreenPosition_ = null;
-  this.thumb.classList.remove('pressed');
-};
-
-/**
- * @abstract
- * @return {number} Total client size in pixels.
- * @protected
- */
-cca.ScrollBar.prototype.getClientTotal = function() {
-  throw new Error('Not implemented');
-};
-
-/**
- * @abstract
- * @return {number} Total scroll size in pixels.
- * @protected
- */
-cca.ScrollBar.prototype.getScrollTotal = function() {
-  throw new Error('Not implemented');
-};
-
-/**
- * @abstract
- * @param {Event} event Event.
- * @return {number} Total client position for the event in pixels.
- * @protected
- */
-cca.ScrollBar.prototype.getClientPosition = function(event) {
-  throw new Error('Not implemented');
-};
-
-/**
- * @abstract
- * @param {Event} event Event.
- * @return {number} Total screen position for the event in pixels.
- * @protected
- */
-cca.ScrollBar.prototype.getScreenPosition = function(event) {
-  throw new Error('Not implemented');
-};
-
-/**
- * @abstract
- * @return {number} Scroll position in pixels.
- * @protected
- */
-cca.ScrollBar.prototype.getScrollPosition = function() {
-  throw new Error('Not implemented');
-};
-
-/**
- * Sets the scroll position.
- * @abstract
- * @param {number} value Position in pixels.
- * @protected
- */
-cca.ScrollBar.prototype.setScrollPosition = function(value) {
-  throw new Error('Not implemented');
-};
-
-/**
- * Sets geometry of the scroll bar's thumb.
- * @abstract
- * @param {number} position Position of the thumb in pixels.
- * @param {number} size Size of the thumb in pixels.
- * @protected
- */
-cca.ScrollBar.prototype.setThumbGeometry = function(position, size) {
-  throw new Error('Not implemented');
-};
-
-/**
- * Mouse move handler. Updates the scroll position.
- * @param {Event} event Mouse event.
- * @private
- */
-cca.ScrollBar.prototype.onMouseMove_ = function(event) {
-  if (!this.thumbLastScreenPosition_) {
-    return;
-  }
-
-  if (!event.which) {
-    this.onMouseUp_(event);
-    return;
-  }
-
-  var clientTotal = this.getClientTotal();
-  var scrollTotal = this.getScrollTotal();
-
-  var scrollPosition = this.getScrollPosition() +
-      (this.getScreenPosition(event) -
-       this.thumbLastScreenPosition_) * (scrollTotal / clientTotal);
-
-  this.setScrollPosition(scrollPosition);
-  this.redraw();
-
-  this.thumbLastScreenPosition_ = this.getScreenPosition(event);
-};
-
-/**
- * Handles changed in Dom by redrawing the scroll bar. Ignores consecutive
- * calls.
- * @private
- */
-cca.ScrollBar.prototype.onDomChanged_ = function() {
-  if (this.domChangedTimer_) {
-    clearTimeout(this.domChangedTimer_);
-    this.domChangedTimer_ = null;
-  }
-  this.domChangedTimer_ = setTimeout(function() {
-    this.redraw();
-    this.domChangedTimer_ = null;
-  }.bind(this), 50);
-};
-
-/**
- * Redraws the scroll bar.
- */
-cca.ScrollBar.prototype.redraw = function() {
-  var clientTotal = this.getClientTotal();
-  var scrollTotal = this.getScrollTotal();
-
-  this.thumb.hidden = this.thumbHidden_ || scrollTotal <= clientTotal;
-
-  var thumbSize = Math.max(50, clientTotal / scrollTotal * clientTotal);
-  var thumbPosition = this.getScrollPosition() / (scrollTotal - clientTotal) *
-      (clientTotal - thumbSize);
-
-  this.setThumbGeometry(thumbPosition, thumbSize);
-};
-
-/**
- * Creates a horizontal scroll bar.
- * @param {cca.util.SmoothScroller} scroller Scroller for the scrollable
- *     element.
- * @constructor
- * @extends {cca.ScrollBar}
- */
-cca.HorizontalScrollBar = function(scroller) {
-  cca.ScrollBar.call(this, scroller);
-  this.track.classList.add('scrollbar-track-horizontal');
-};
-
-cca.HorizontalScrollBar.prototype = {
-  __proto__: cca.ScrollBar.prototype,
-};
-
-/**
- * @override
- */
-cca.HorizontalScrollBar.prototype.getClientTotal = function() {
-  return this.scroller.clientWidth;
-};
-
-/**
- * @override
- */
-cca.HorizontalScrollBar.prototype.getScrollTotal = function() {
-  return this.scroller.scrollWidth;
-};
-
-/**
- * @override
- */
-cca.HorizontalScrollBar.prototype.getClientPosition = function(event) {
-  return event.clientX;
-};
-
-/**
- * @override
- */
-cca.HorizontalScrollBar.prototype.getScreenPosition = function(event) {
-  return event.screenX;
-};
-
-/**
- * @override
- */
-cca.HorizontalScrollBar.prototype.getScrollPosition = function() {
-  return this.scroller.scrollLeft;
-};
-
-/**
- * @override
- */
-cca.HorizontalScrollBar.prototype.setScrollPosition = function(value) {
-  this.scroller.scrollTo(
-      value, this.scroller.element.scrollTop,
-      cca.util.SmoothScroller.Mode.INSTANT);
-};
-
-/**
- * @override
- */
-cca.HorizontalScrollBar.prototype.setThumbGeometry = function(
-    position, size) {
-  this.thumb.style.left = position + 'px';
-  this.thumb.style.width = size + 'px';
-};
diff --git a/chrome/browser/resources/chromeos/camera/src/js/toast.js b/chrome/browser/resources/chromeos/camera/src/js/toast.js
deleted file mode 100644
index feb751d..0000000
--- a/chrome/browser/resources/chromeos/camera/src/js/toast.js
+++ /dev/null
@@ -1,49 +0,0 @@
-// Copyright 2018 The Chromium OS Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-'use strict';
-
-/**
- * Namespace for the Camera app.
- */
-var cca = cca || {};
-
-/**
- * Namespace for toast.
- */
-cca.toast = cca.toast || {};
-
-/**
- * Shows a toast message.
- * @param {string} message Message to be shown.
- */
-cca.toast.show = function(message) {
-  cca.toast.update_(message, false);
-};
-
-/**
- * Speaks a toast message.
- * @param {string} message Message to be spoken.
- */
-cca.toast.speak = function(message) {
-  cca.toast.update_(message, true);
-};
-
-/**
- * Updates the toast message.
- * @param {string} message Message to be updated.
- * @param {boolean} spoken Whether the toast is spoken only.
- * @private
- */
-cca.toast.update_ = function(message, spoken) {
-  // TTS speaks changes of on-screen aria-live elements. Force content changes
-  // and clear content once inactive to avoid stale content being read out.
-  var element = document.querySelector('#toast');
-  cca.util.animateCancel(element); // Cancel the active toast if any.
-  element.textContent = ''; // Force to reiterate repeated messages.
-  element.textContent = chrome.i18n.getMessage(message) || message;
-
-  element.classList.toggle('spoken', spoken);
-  cca.util.animateOnce(element, () => element.textContent = '');
-};
diff --git a/chrome/browser/resources/chromeos/camera/src/js/tooltip.js b/chrome/browser/resources/chromeos/camera/src/js/tooltip.js
deleted file mode 100644
index b0803338b..0000000
--- a/chrome/browser/resources/chromeos/camera/src/js/tooltip.js
+++ /dev/null
@@ -1,96 +0,0 @@
-// Copyright 2018 The Chromium OS Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-'use strict';
-
-/**
- * Namespace for the Camera app.
- */
-var cca = cca || {};
-
-/**
- * Namespace for tooltip.
- */
-cca.tooltip = cca.tooltip || {};
-
-/**
- * Wrapper element that shows tooltip.
- * @type {HTMLElement}
- */
-cca.tooltip.wrapper_ = null;
-
-/**
- * Hovered element whose tooltip to be shown.
- * @type {HTMLElement}
- */
-cca.tooltip.hovered_ = null;
-
-/**
- * Sets up tooltips for elements.
- * @param {NodeList<Element>} elements Elements whose tooltips to be shown.
- * @return {NodeList<Element>} Elements whose tooltips have been set up.
- */
-cca.tooltip.setup = function(elements) {
-  cca.tooltip.wrapper_ = document.querySelector('#tooltip');
-  elements.forEach((element) => {
-    var handler = () => {
-      // Handler hides tooltip only when it's for the element.
-      if (element == cca.tooltip.hovered_) {
-        cca.tooltip.hide();
-      }
-    };
-    element.addEventListener('mouseout', handler);
-    element.addEventListener('click', handler);
-    element.addEventListener('mouseover',
-        cca.tooltip.show_.bind(undefined, element));
-  });
-  return elements;
-};
-
-/**
- * Positions the tooltip wrapper over the hovered element.
- * @private
- */
-cca.tooltip.position_ = function() {
-  const [edgeMargin, elementMargin] = [5, 8];
-  var wrapper = cca.tooltip.wrapper_;
-  var hovered = cca.tooltip.hovered_;
-  var rect = hovered.getBoundingClientRect();
-  var tooltipTop = rect.top - wrapper.offsetHeight - elementMargin;
-  if (tooltipTop < edgeMargin) {
-    tooltipTop = rect.bottom + elementMargin;
-  }
-  wrapper.style.top = tooltipTop + 'px';
-
-  // Center over the hovered element but avoid touching edges.
-  var hoveredCenter = rect.left + hovered.offsetWidth / 2;
-  var left = Math.min(
-      Math.max(hoveredCenter - wrapper.clientWidth / 2, edgeMargin),
-      document.body.offsetWidth - wrapper.offsetWidth - edgeMargin);
-  wrapper.style.left = Math.round(left) + 'px';
-};
-
-/**
- * Shows a tooltip over the hovered element.
- * @param {HTMLElement} element Hovered element whose tooltip to be shown.
- * @private
- */
-cca.tooltip.show_ = function(element) {
-  cca.tooltip.hide();
-  cca.tooltip.wrapper_.textContent = element.getAttribute('aria-label');
-  cca.tooltip.hovered_ = element;
-  cca.tooltip.position_();
-  cca.tooltip.wrapper_.classList.add('visible');
-};
-
-/**
- * Hides the shown tooltip if any.
- */
-cca.tooltip.hide = function() {
-  if (cca.tooltip.hovered_) {
-    cca.tooltip.hovered_ = null;
-    cca.tooltip.wrapper_.textContent = '';
-    cca.tooltip.wrapper_.classList.remove('visible');
-  }
-};
diff --git a/chrome/browser/resources/chromeos/camera/src/js/util.js b/chrome/browser/resources/chromeos/camera/src/js/util.js
deleted file mode 100644
index 69d133a..0000000
--- a/chrome/browser/resources/chromeos/camera/src/js/util.js
+++ /dev/null
@@ -1,880 +0,0 @@
-// Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-'use strict';
-
-/**
- * Namespace for the Camera app.
- */
-var cca = cca || {};
-
-/**
- * Namespace for utilities.
- */
-cca.util = cca.util || {};
-
-/**
- * Gets the clockwise rotation and flip that can orient a photo to its upright
- * position.
- * @param {Blob} blob JPEG blob that might contain EXIF orientation field.
- * @return {Promise<Object<number, boolean>>}
- */
-cca.util.getPhotoOrientation = function(blob) {
-  let getOrientation = new Promise((resolve, reject) => {
-    let reader = new FileReader();
-    reader.onload = function(event) {
-      let view = new DataView(event.target.result);
-      if (view.getUint16(0, false) != 0xFFD8) {
-        resolve(1);
-        return;
-      }
-      let length = view.byteLength;
-      let offset = 2;
-      while (offset < length) {
-        if (view.getUint16(offset + 2, false) <= 8) {
-          break;
-        }
-        let marker = view.getUint16(offset, false);
-        offset += 2;
-        if (marker == 0xFFE1) {
-          if (view.getUint32(offset += 2, false) != 0x45786966) {
-            break;
-          }
-
-          let little = view.getUint16(offset += 6, false) == 0x4949;
-          offset += view.getUint32(offset + 4, little);
-          let tags = view.getUint16(offset, little);
-          offset += 2;
-          for (let i = 0; i < tags; i++) {
-            if (view.getUint16(offset + (i * 12), little) == 0x0112) {
-              resolve(view.getUint16(offset + (i * 12) + 8, little));
-              return;
-            }
-          }
-        } else if ((marker & 0xFF00) != 0xFF00) {
-          break;
-        } else {
-          offset += view.getUint16(offset, false);
-        }
-      }
-      resolve(1);
-    };
-    reader.readAsArrayBuffer(blob);
-  });
-
-  return getOrientation.then((orientation) => {
-    switch (orientation) {
-      case 1:
-        return {rotation: 0, flip: false};
-      case 2:
-        return {rotation: 0, flip: true};
-      case 3:
-        return {rotation: 180, flip: false};
-      case 4:
-        return {rotation: 180, flip: true};
-      case 5:
-        return {rotation: 90, flip: true};
-      case 6:
-        return {rotation: 90, flip: false};
-      case 7:
-        return {rotation: 270, flip: true};
-      case 8:
-        return {rotation: 270, flip: false};
-      default:
-        return {rotation: 0, flip: false};
-    }
-  });
-};
-
-/**
- * Orients a photo to the upright orientation.
- * @param {Blob} blob Photo as a blob.
- * @param {function(Blob)} onSuccess Success callback with the result photo as
- *     a blob.
- * @param {function()} onFailure Failure callback.
- */
-cca.util.orientPhoto = function(blob, onSuccess, onFailure) {
-  // TODO(shenghao): Revise or remove this function if it's no longer
-  // applicable.
-  let drawPhoto = function(original, orientation, onSuccess, onFailure) {
-    let canvas = document.createElement('canvas');
-    let context = canvas.getContext('2d');
-    let canvasSquareLength = Math.max(original.width, original.height);
-    canvas.width = canvasSquareLength;
-    canvas.height = canvasSquareLength;
-
-    let [centerX, centerY] = [canvas.width / 2, canvas.height / 2];
-    context.translate(centerX, centerY);
-    context.rotate(orientation.rotation * Math.PI / 180);
-    if (orientation.flip) {
-      context.scale(-1, 1);
-    }
-    context.drawImage(original, -original.width / 2, -original.height / 2,
-        original.width, original.height);
-    if (orientation.flip) {
-      context.scale(-1, 1);
-    }
-    context.rotate(-orientation.rotation * Math.PI / 180);
-    context.translate(-centerX, -centerY);
-
-    let outputCanvas = document.createElement('canvas');
-    if (orientation.rotation == 90 || orientation.rotation == 270) {
-      outputCanvas.width = original.height;
-      outputCanvas.height = original.width;
-    } else {
-      outputCanvas.width = original.width;
-      outputCanvas.height = original.height;
-    }
-    let imageData = context.getImageData(
-        (canvasSquareLength - outputCanvas.width) / 2,
-        (canvasSquareLength - outputCanvas.height) / 2,
-        outputCanvas.width, outputCanvas.height);
-    let outputContext = outputCanvas.getContext('2d');
-    outputContext.putImageData(imageData, 0, 0);
-
-    outputCanvas.toBlob(function(blob) {
-      if (blob) {
-        onSuccess(blob);
-      } else {
-        onFailure();
-      }
-    }, 'image/jpeg');
-  };
-
-  cca.util.getPhotoOrientation(blob).then((orientation) => {
-    if (orientation.rotation == 0 && !orientation.flip) {
-      onSuccess(blob);
-    } else {
-      let original = document.createElement('img');
-      original.onload = function() {
-        drawPhoto(original, orientation, onSuccess, onFailure);
-      };
-      original.onerror = onFailure;
-      original.src = URL.createObjectURL(blob);
-    }
-  });
-};
-
-/**
- * Checks if the current device is in the given device list.
- * @param {Array<string>} ids Device ids.
- * @return {!Promise<boolean>} Promise for the result.
- */
-cca.util.isChromeOSDevice = function(ids) {
-  return new Promise((resolve) => {
-    if (!chrome.chromeosInfoPrivate) {
-      resolve(false);
-      return;
-    }
-    chrome.chromeosInfoPrivate.get(['customizationId'], (values) => {
-      var device = values['customizationId'];
-      resolve(device && ids.indexOf(device) >= 0);
-    });
-  });
-};
-
-/**
- * Returns true if current installed Chrome version is larger than or equal to
- * the given version.
- * @param {number} minVersion the version to be compared with.
- * @return {boolean}
- */
-cca.util.isChromeVersionAbove = function(minVersion) {
-  var match = navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./);
-  return (match ? parseInt(match[2], 10) : 0) >= minVersion;
-};
-
-/*
- * Checks if the user is using a Chrome OS device.
- * @return {boolean} Whether it is a Chrome OS device or not.
- */
-cca.util.isChromeOS = function() {
-  return navigator.appVersion.indexOf('CrOS') !== -1;
-};
-
-/**
- * Animates the element once by applying 'animate' class.
- * @param {HTMLElement} element Element to be animated.
- * @param {function()=} callback Callback called on completion.
- */
-cca.util.animateOnce = function(element, callback) {
-  element.classList.remove('animate');
-  element.offsetWidth; // Force calculation to re-apply animation.
-  element.classList.add('animate');
-  cca.util.waitAnimationCompleted(element, () => {
-    element.classList.remove('animate');
-    if (callback) {
-      callback();
-    }
-  });
-};
-
-/**
- * Cancels animating the element by removing 'animate' class.
- * @param {HTMLElement} element Element for canceling animation.
- */
-cca.util.animateCancel = function(element) {
-  element.classList.remove('animate');
-};
-
-/**
- * Waits for animation completed and calls the callback.
- * @param {HTMLElement} element Element to be animated.
- * @param {function()} callback Callback called on completion.
- */
-cca.util.waitAnimationCompleted = function(element, callback) {
-  var completed = false;
-  var onCompleted = (event) => {
-    if (completed || (event && event.target != element)) {
-      return;
-    }
-    completed = true;
-    element.removeEventListener('transitionend', onCompleted);
-    element.removeEventListener('animationend', onCompleted);
-    callback();
-  };
-  // Assume only either 'transition' or 'animation' is applied on the element.
-  // Listen to both end-events for its completion.
-  element.addEventListener('transitionend', onCompleted);
-  element.addEventListener('animationend', onCompleted);
-};
-
-/**
- * Scrolls the parent of the element so the element is centered.
- * @param {HTMLElement} element Element to be visible.
- * @param {cca.util.SmoothScroller} scroller Scroller to be used.
- * @param {cca.util.SmoothScroller.Mode} mode Scrolling mode.
- */
-cca.util.scrollToCenter = function(element, scroller, mode) {
-  var scrollLeft = Math.round(element.offsetLeft + element.offsetWidth / 2 -
-    scroller.clientWidth / 2);
-  var scrollTop = Math.round(element.offsetTop + element.offsetHeight / 2 -
-    scroller.clientHeight / 2);
-
-  scroller.scrollTo(scrollLeft, scrollTop, mode);
-};
-
-/**
- * Performs smooth scrolling of a scrollable DOM element using a accelerated
- * CSS3 transform and transition for smooth animation.
- * @param {HTMLElement} element Element to be scrolled.
- * @param {HTMLElement} padder Element holding contents within the scrollable
- *     element.
- * @constructor
- */
-cca.util.SmoothScroller = function(element, padder) {
-  /**
-   * @type {HTMLElement}
-   * @private
-   */
-  this.element_ = element;
-
-  /**
-   * @type {HTMLElement}
-   * @private
-   */
-  this.padder_ = padder;
-
-  /**
-   * @type {boolean}
-   * @private
-   */
-  this.animating_ = false;
-
-  /**
-   * @type {number}
-   * @private
-   */
-  this.animationId_ = 0;
-
-  // End of properties. Seal the object.
-  Object.seal(this);
-};
-
-/**
- * Smooth scrolling animation duration in milliseconds.
- * @type {number}
- * @const
- */
-cca.util.SmoothScroller.DURATION = 500;
-
-/**
- * Mode of scrolling.
- * @enum {number}
- */
-cca.util.SmoothScroller.Mode = {
-  SMOOTH: 0,
-  INSTANT: 1,
-};
-
-cca.util.SmoothScroller.prototype = {
-  get element() {
-    return this.element_;
-  },
-  get animating() {
-    return this.animating_;
-  },
-  get scrollLeft() {
-    // TODO(mtomasz): This does not reflect paddings nor margins.
-    return -this.padder_.getBoundingClientRect().left;
-  },
-  get scrollTop() {
-    // TODO(mtomasz): This does not reflect paddings nor margins.
-    return -this.padder_.getBoundingClientRect().top;
-  },
-  get scrollWidth() {
-    // TODO(mtomasz): This does not reflect paddings nor margins.
-    return this.padder_.scrollWidth;
-  },
-  get scrollHeight() {
-    // TODO(mtomasz): This does not reflect paddings nor margins.
-    return this.padder_.scrollHeight;
-  },
-  get clientWidth() {
-    // TODO(mtomasz): This does not reflect paddings nor margins.
-    return this.element_.clientWidth;
-  },
-  get clientHeight() {
-    // TODO(mtomasz): This does not reflect paddings nor margins.
-    return this.element_.clientHeight;
-  },
-};
-
-/**
- * Flushes the CSS3 transition scroll to real scrollLeft/scrollTop attributes.
- * @private
- */
-cca.util.SmoothScroller.prototype.flushScroll_ = function() {
-  var scrollLeft = this.scrollLeft;
-  var scrollTop = this.scrollTop;
-
-  this.padder_.style.transition = '';
-  this.padder_.style.webkitTransform = '';
-
-  this.element_.scrollLeft = scrollLeft;
-  this.element_.scrollTop = scrollTop;
-
-  this.animationId_++; // Invalidate the animation by increasing the id.
-  this.animating_ = false;
-};
-
-/**
- * Scrolls smoothly to specified position.
- * @param {number} x X Target scrollLeft value.
- * @param {number} y Y Target scrollTop value.
- * @param {cca.util.SmoothScroller.Mode} mode Scrolling mode.
- */
-cca.util.SmoothScroller.prototype.scrollTo = function(x, y, mode) {
-  // Limit to the allowed values.
-  var x = Math.max(0, Math.min(x, this.scrollWidth - this.clientWidth));
-  var y = Math.max(0, Math.min(y, this.scrollHeight - this.clientHeight));
-
-  switch (mode) {
-    case cca.util.SmoothScroller.Mode.INSTANT:
-      // Cancel any current animations.
-      if (this.animating_) {
-        this.flushScroll_();
-      }
-      this.element_.scrollLeft = x;
-      this.element_.scrollTop = y;
-      break;
-
-    case cca.util.SmoothScroller.Mode.SMOOTH:
-      // Calculate translating offset using the accelerated CSS3 transform.
-      var dx = Math.round(x - this.element_.scrollLeft);
-      var dy = Math.round(y - this.element_.scrollTop);
-
-      var transformString =
-          'translate(' + -dx + 'px, ' + -dy + 'px)';
-
-      // If nothing to change, then return.
-      if (this.padder_.style.webkitTransform == transformString ||
-          (dx == 0 && dy == 0 && !this.padder_.style.webkitTransform)) {
-        return;
-      }
-
-      // Invalidate previous invocations.
-      var currentAnimationId = ++this.animationId_;
-
-      // Start the accelerated animation.
-      this.animating_ = true;
-      this.padder_.style.transition = '-webkit-transform ' +
-          cca.util.SmoothScroller.DURATION + 'ms ease-out';
-      this.padder_.style.webkitTransform = transformString;
-
-      // Remove translation, and switch to scrollLeft/scrollTop when the
-      // animation is finished.
-      cca.util.waitAnimationCompleted(this.padder_, () => {
-        // Check if the animation got invalidated by a later scroll.
-        if (currentAnimationId == this.animationId_) {
-          this.flushScroll_();
-        }
-      });
-      break;
-  }
-};
-
-/**
- * Tracks the mouse for click and move, and the touch screen for touches. If
- * any of these are detected, then the callback is called.
- * @param {HTMLElement} element Element to be monitored.
- * @param {function(Event)} callback Callback triggered on events detected.
- * @constructor
- */
-cca.util.PointerTracker = function(element, callback) {
-  /**
-   * @type {HTMLElement}
-   * @private
-   */
-  this.element_ = element;
-
-  /**
-   * @type {function(Event)}
-   * @private
-   */
-  this.callback_ = callback;
-
-  /**
-   * @type {Array<number>}
-   * @private
-   */
-  this.lastMousePosition_ = null;
-
-  // End of properties. Seal the object.
-  Object.seal(this);
-
-  // Add the event listeners.
-  this.element_.addEventListener('mousedown', this.onMouseDown_.bind(this));
-  this.element_.addEventListener('mousemove', this.onMouseMove_.bind(this));
-  this.element_.addEventListener('touchstart', this.onTouchStart_.bind(this));
-  this.element_.addEventListener('touchmove', this.onTouchMove_.bind(this));
-};
-
-/**
- * Handles the mouse down event.
- * @param {Event} event Mouse down event.
- * @private
- */
-cca.util.PointerTracker.prototype.onMouseDown_ = function(event) {
-  this.callback_(event);
-  this.lastMousePosition_ = [event.screenX, event.screenY];
-};
-
-/**
- * Handles the mouse move event.
- * @param {Event} event Mouse move event.
- * @private
- */
-cca.util.PointerTracker.prototype.onMouseMove_ = function(event) {
-  // Ignore mouse events, which are invoked on the same position, but with
-  // changed client coordinates. This will happen eg. when scrolling. We should
-  // ignore them, since they are not invoked by an actual mouse move.
-  if (this.lastMousePosition_ && this.lastMousePosition_[0] == event.screenX &&
-      this.lastMousePosition_[1] == event.screenY) {
-    return;
-  }
-
-  this.callback_(event);
-  this.lastMousePosition_ = [event.screenX, event.screenY];
-};
-
-/**
- * Handles the touch start event.
- * @param {Event} event Touch start event.
- * @private
- */
-cca.util.PointerTracker.prototype.onTouchStart_ = function(event) {
-  this.callback_(event);
-};
-
-/**
- * Handles the touch move event.
- * @param {Event} event Touch move event.
- * @private
- */
-cca.util.PointerTracker.prototype.onTouchMove_ = function(event) {
-  this.callback_(event);
-};
-
-/**
- * Tracks scrolling and calls a callback, when scrolling is started and ended
- * by either the scroller or the user.
- * @param {cca.util.SmoothScroller} scroller Scroller object to be tracked.
- * @param {function()} onScrollStarted Callback called when scrolling is
- *     started.
- * @param {function()} onScrollEnded Callback called when scrolling is ended.
- * @constructor
- */
-cca.util.ScrollTracker = function(scroller, onScrollStarted, onScrollEnded) {
-  /**
-   * @type {cca.util.SmoothScroller}
-   * @private
-   */
-  this.scroller_ = scroller;
-
-  /**
-   * @type {function()}
-   * @private
-   */
-  this.onScrollStarted_ = onScrollStarted;
-
-  /**
-   * @type {function()}
-   * @private
-   */
-  this.onScrollEnded_ = onScrollEnded;
-
-  /**
-   * Timer to probe for scroll changes, every 100 ms.
-   * @type {?number}
-   * @private
-   */
-  this.timer_ = null;
-
-  /**
-   * Workaround for: crbug.com/135780.
-   * @type {?number}
-   * @private
-   */
-  this.noChangeTimer_ = null;
-
-  /**
-   * @type {boolean}
-   * @private
-   */
-  this.scrolling_ = false;
-
-  /**
-   * @type {Array<number>}
-   * @private
-   */
-  this.startScrollPosition_ = [0, 0];
-
-  /**
-   * @type {Array<number>}
-   * @private
-   */
-  this.lastScrollPosition_ = [0, 0];
-
-  /**
-   * Whether the touch screen is currently touched.
-   * @type {boolean}
-   * @private
-   */
-  this.touchPressed_ = false;
-
-  /**
-   * Whether the touch screen is currently touched.
-   * @type {boolean}
-   * @private
-   */
-  this.mousePressed_ = false;
-
-  // End of properties. Seal the object.
-  Object.seal(this);
-
-  // Register event handlers.
-  this.scroller_.element.addEventListener(
-      'mousedown', this.onMouseDown_.bind(this));
-  this.scroller_.element.addEventListener(
-      'touchstart', this.onTouchStart_.bind(this));
-  window.addEventListener('mouseup', this.onMouseUp_.bind(this));
-  window.addEventListener('touchend', this.onTouchEnd_.bind(this));
-};
-
-cca.util.ScrollTracker.prototype = {
-  /**
-   * @return {boolean} Whether scrolling is being performed or not.
-   */
-  get scrolling() {
-    return this.scrolling_;
-  },
-
-  /**
-   * @return {Array<number>} Returns distance of the last detected scroll.
-   */
-  get delta() {
-    return [
-      this.startScrollPosition_[0] - this.lastScrollPosition_[0],
-      this.startScrollPosition_[1] - this.lastScrollPosition_[1],
-    ];
-  },
-};
-
-/**
- * Handles pressing the mouse button.
- * @param {Event} event Mouse down event.
- * @private
- */
-cca.util.ScrollTracker.prototype.onMouseDown_ = function(event) {
-  this.mousePressed_ = true;
-};
-
-/**
- * Handles releasing the mouse button.
- * @param {Event} event Mouse up event.
- * @private
- */
-cca.util.ScrollTracker.prototype.onMouseUp_ = function(event) {
-  this.mousePressed_ = false;
-};
-
-/**
- * Handles touching the screen.
- * @param {Event} event Mouse down event.
- * @private
- */
-cca.util.ScrollTracker.prototype.onTouchStart_ = function(event) {
-  this.touchPressed_ = true;
-};
-
-/**
- * Handles releasing touching of the screen.
- * @param {Event} event Mouse up event.
- * @private
- */
-cca.util.ScrollTracker.prototype.onTouchEnd_ = function(event) {
-  this.touchPressed_ = false;
-};
-
-/**
- * Starts monitoring.
- */
-cca.util.ScrollTracker.prototype.start = function() {
-  if (this.timer_ === null) {
-    this.timer_ = setInterval(this.probe_.bind(this), 100);
-  }
-};
-
-/**
- * Stops monitoring.
- */
-cca.util.ScrollTracker.prototype.stop = function() {
-  if (this.timer_ !== null) {
-    clearTimeout(this.timer_);
-    this.timer_ = null;
-  }
-};
-
-/**
- * Probes for scrolling changes.
- * @private
- */
-cca.util.ScrollTracker.prototype.probe_ = function() {
-  var scrollLeft = this.scroller_.scrollLeft;
-  var scrollTop = this.scroller_.scrollTop;
-
-  var scrollChanged =
-      scrollLeft != this.lastScrollPosition_[0] ||
-      scrollTop != this.lastScrollPosition_[1] ||
-      this.scroller_.animating;
-
-  if (scrollChanged) {
-    if (!this.scrolling_) {
-      this.startScrollPosition_ = [scrollLeft, scrollTop];
-      this.onScrollStarted_();
-    }
-    this.scrolling_ = true;
-  } else {
-    if (!this.mousePressed_ && !this.touchPressed_ && this.scrolling_) {
-      this.onScrollEnded_();
-      this.scrolling_ = false;
-    }
-  }
-
-  // Workaround for: crbug.com/135780.
-  // When scrolling by touch screen, the touchend event is not emitted. So, a
-  // timer has to be used as a fallback to detect the end of scrolling.
-  if (this.touchPressed_) {
-    if (scrollChanged) {
-      // Scrolling changed, cancel the timer.
-      if (this.noChangeTimer_) {
-        clearTimeout(this.noChangeTimer_);
-        this.noChangeTimer_ = null;
-      }
-    } else {
-      // Scrolling previously, but now no change is detected, so set a timer.
-      if (this.scrolling_ && !this.noChangeTimer_) {
-        this.noChangeTimer_ = setTimeout(function() {
-          this.onScrollEnded_();
-          this.scrolling_ = false;
-          this.touchPressed_ = false;
-          this.noChangeTimer_ = null;
-        }.bind(this), 200);
-      }
-    }
-  }
-
-  this.lastScrollPosition_ = [scrollLeft, scrollTop];
-};
-
-/**
- * Makes an element scrollable by dragging with a mouse.
- * @param {cca.util.Scroller} scroller Scroller for the element.
- * @constructor
- */
-cca.util.MouseScroller = function(scroller) {
-  /**
-   * @type {cca.util.Scroller}
-   * @private
-   */
-  this.scroller_ = scroller;
-
-  /**
-   * @type {Array<number>}
-   * @private
-   */
-  this.startPosition_ = null;
-
-  /**
-   * @type {Array<number>}
-   * @private
-   */
-  this.startScrollPosition_ = null;
-
-  // End of properties. Seal the object.
-  Object.seal(this);
-
-  // Register mouse handlers.
-  this.scroller_.element.addEventListener(
-      'mousedown', this.onMouseDown_.bind(this));
-  window.addEventListener('mousemove', this.onMouseMove_.bind(this));
-  window.addEventListener('mouseup', this.onMouseUp_.bind(this));
-};
-
-/**
- * Handles the mouse down event on the tracked element.
- * @param {Event} event Mouse down event.
- * @private
- */
-cca.util.MouseScroller.prototype.onMouseDown_ = function(event) {
-  if (event.which != 1) {
-    return;
-  }
-  this.startPosition_ = [event.screenX, event.screenY];
-  this.startScrollPosition_ = [
-    this.scroller_.scrollLeft,
-    this.scroller_.scrollTop,
-  ];
-};
-
-/**
- * Handles moving a mouse over the tracker element.
- * @param {Event} event Mouse move event.
- * @private
- */
-cca.util.MouseScroller.prototype.onMouseMove_ = function(event) {
-  if (!this.startPosition_) {
-    return;
-  }
-
-  // It may happen that we won't receive the mouseup event, when clicking on
-  // the -webkit-app-region: drag area.
-  if (event.which != 1) {
-    this.startPosition_ = null;
-    this.startScrollPosition_ = null;
-    return;
-  }
-
-  var scrollLeft =
-      this.startScrollPosition_[0] - (event.screenX - this.startPosition_[0]);
-  var scrollTop =
-      this.startScrollPosition_[1] - (event.screenY - this.startPosition_[1]);
-
-  this.scroller_.scrollTo(
-      scrollLeft, scrollTop, cca.util.SmoothScroller.Mode.INSTANT);
-};
-
-/**
- * Handles the mouse up event on the tracked element.
- * @param {Event} event Mouse down event.
- * @private
- */
-cca.util.MouseScroller.prototype.onMouseUp_ = function(event) {
-  this.startPosition_ = null;
-  this.startScrollPosition_ = null;
-};
-
-/**
- * Returns a shortcut string, such as Ctrl-Alt-A.
- * @param {Event} event Keyboard event.
- * @return {string} Shortcut identifier.
- */
-cca.util.getShortcutIdentifier = function(event) {
-  var identifier = (event.ctrlKey ? 'Ctrl-' : '') +
-                   (event.altKey ? 'Alt-' : '') +
-                   (event.shiftKey ? 'Shift-' : '') +
-                   (event.metaKey ? 'Meta-' : '');
-  if (event.key) {
-    switch (event.key) {
-      case 'ArrowLeft':
-        identifier += 'Left';
-        break;
-      case 'ArrowRight':
-        identifier += 'Right';
-        break;
-      case 'ArrowDown':
-        identifier += 'Down';
-        break;
-      case 'ArrowUp':
-        identifier += 'Up';
-        break;
-      case 'a':
-      case 'p':
-      case 's':
-      case 'v':
-      case 'r':
-        identifier += event.key.toUpperCase();
-        break;
-      default:
-        identifier += event.key;
-    }
-  }
-  return identifier;
-};
-
-/**
- * Makes the element unfocusable by mouse.
- * @param {HTMLElement} element Element to be unfocusable.
- */
-cca.util.makeUnfocusableByMouse = function(element) {
-  element.addEventListener('mousedown', (event) => event.preventDefault());
-};
-
-/**
- * Updates the wrapped element size according to the given bounds. The wrapped
- * content (either img or video child element) should keep the aspect ratio and
- * is either filled up or letterboxed inside the wrapper element.
- * @param {HTMLElement} wrapper Element whose wrapped child to be updated.
- * @param {number} boundWidth Bound width in pixels.
- * @param {number} boundHeight Bound height in pixels.
- * @param {boolean} fill True to fill up and crop the content to the bounds,
- *     false to letterbox the content within the bounds.
- */
-cca.util.updateElementSize = function(
-    wrapper, boundWidth, boundHeight, fill) {
-  // Assume the wrapped child is either img or video element.
-  var child = wrapper.firstElementChild;
-  var srcWidth = child.naturalWidth || child.videoWidth;
-  var srcHeight = child.naturalHeight || child.videoHeight;
-  var f = fill ? Math.max : Math.min;
-  var scale = f(boundHeight / srcHeight, boundWidth / srcWidth);
-
-  // Corresponding CSS should handle the adjusted sizes for proper display.
-  child.width = Math.round(scale * srcWidth);
-  child.height = Math.round(scale * srcHeight);
-};
-
-/*
- * Checks if the window is maximized or fullscreen.
- * @return {boolean} True if maximized or fullscreen, false otherwise.
- */
-cca.util.isWindowFullSize = function() {
-  // App-window's isFullscreen state and window's outer-size may not be updated
-  // immediately during resizing. Use app-window's isMaximized state and
-  // window's inner-size here as workarounds.
-  var fullscreen = window.innerWidth >= screen.width &&
-      window.innerHeight >= screen.height;
-  return chrome.app.window.current().isMaximized() || fullscreen;
-};
diff --git a/chrome/browser/resources/chromeos/camera/src/js/views/browser.js b/chrome/browser/resources/chromeos/camera/src/js/views/browser.js
deleted file mode 100644
index 82f814d..0000000
--- a/chrome/browser/resources/chromeos/camera/src/js/views/browser.js
+++ /dev/null
@@ -1,446 +0,0 @@
-// Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-'use strict';
-
-/**
- * Namespace for the Camera app.
- */
-var cca = cca || {};
-
-/**
- * Namespace for views.
- */
-cca.views = cca.views || {};
-
-/**
- * Creates the Browser view controller.
- * TODO(yuli): Merge GalleryBase into Browser.
- * @param {cca.models.Gallery} model Model object.
- * @extends {camera.view.GalleryBase}
- * @constructor
- */
-cca.views.Browser = function(model) {
-  cca.views.GalleryBase.call(this, '#browser', model);
-
-  /**
-   * @type {cca.util.SmoothScroller}
-   * @private
-   */
-  this.scroller_ = new cca.util.SmoothScroller(
-      document.querySelector('#browser'),
-      document.querySelector('#browser .padder'));
-
-  /**
-   * @type {cca.HorizontalScrollBar}
-   * @private
-   */
-  this.scrollBar_ = new cca.HorizontalScrollBar(this.scroller_);
-
-  /**
-   * Makes the browser scrollable by dragging with mouse.
-   * @type {cca.util.MouseScroller}
-   * @private
-   */
-  this.mouseScroller_ = new cca.util.MouseScroller(this.scroller_);
-
-  /**
-   * Monitores when scrolling is ended.
-   * @type {cca.util.ScrollTracker}
-   * @private
-   */
-  this.scrollTracker_ = new cca.util.ScrollTracker(
-      this.scroller_,
-      function() {}, // onScrollStarted
-      this.onScrollEnded_.bind(this));
-
-  /**
-   * Sequential index of the last inserted picture. Used to generate unique
-   * identifiers.
-   * @type {number}
-   * @private
-   */
-  this.lastPictureIndex_ = 0;
-
-  // End of properties, seal the object.
-  Object.seal(this);
-
-  // Listen for clicking on the browser buttons.
-  document.querySelector('#browser-print').addEventListener(
-      'click', this.onPrintButtonClicked_.bind(this));
-  document.querySelector('#browser-export').addEventListener(
-      'click', this.onExportButtonClicked_.bind(this));
-  document.querySelector('#browser-delete').addEventListener(
-      'click', this.onDeleteButtonClicked_.bind(this));
-  document.querySelector('#browser-back').addEventListener(
-      'click', this.leave.bind(this));
-};
-
-cca.views.Browser.prototype = {
-  __proto__: cca.views.GalleryBase.prototype,
-};
-
-/**
- * @param {cca.models.Gallery.Picture} picture Picture to be selected.
- * @override
- */
-cca.views.Browser.prototype.entering = function(picture) {
-  var index = this.pictureIndex(picture);
-  if (index == null && this.pictures.length) {
-    // Select the latest picture if the given picture isn't found.
-    index = this.pictures.length - 1;
-  }
-  this.setSelectedIndex(index);
-  this.scrollTracker_.start();
-};
-
-/**
- * @override
- */
-cca.views.Browser.prototype.leaving = function() {
-  this.scrollTracker_.stop();
-  this.setSelectedIndex(null);
-  return true;
-};
-
-/**
- * @override
- */
-cca.views.Browser.prototype.focus = function() {
-  if (!this.scroller_.animating) {
-    this.synchronizeFocus();
-  }
-};
-
-/**
- * @override
- */
-cca.views.Browser.prototype.layout = function() {
-  this.pictures.forEach(function(picture) {
-    cca.views.Browser.updateElementSize_(picture.element);
-  });
-
-  this.scrollBar_.redraw();
-  var selectedPicture = this.lastSelectedPicture();
-  if (selectedPicture) {
-    cca.util.scrollToCenter(selectedPicture.element, this.scroller_,
-        cca.util.SmoothScroller.Mode.INSTANT);
-  }
-};
-
-/**
- * Handles clicking on the print button.
- * @param {Event} event Click event.
- * @private
- */
-cca.views.Browser.prototype.onPrintButtonClicked_ = function(event) {
-  window.matchMedia('print').addListener(function(media) {
-    if (!media.matches) {
-      for (var index = 0; index < this.pictures.length; index++) {
-        // Force the div wrappers to redraw by accessing their display and
-        // offsetWidth property. Otherwise, they may not have the same width as
-        // their child image or video element after printing.
-        var wrapper = this.pictures[index].element;
-        wrapper.style.display = 'none';
-        wrapper.offsetWidth; // Reference forces width recalculation.
-        wrapper.style.display = '';
-      }
-    }
-  }.bind(this));
-  window.print();
-};
-
-/**
- * Handles clicking on the export button.
- * @param {Event} event Click event.
- * @private
- */
-cca.views.Browser.prototype.onExportButtonClicked_ = function(event) {
-  this.exportSelection();
-};
-
-/**
- * Handles clicking on the delete button.
- * @param {Event} event Click event.
- * @private
- */
-cca.views.Browser.prototype.onDeleteButtonClicked_ = function(event) {
-  this.deleteSelection();
-};
-
-/**
- * Handles ending of scrolling.
- * @private
- */
-cca.views.Browser.prototype.onScrollEnded_ = function() {
-  var center = this.scroller_.scrollLeft + this.scroller_.clientWidth / 2;
-
-  // Find the closest picture.
-  var minDistance = -1;
-  var minIndex = -1;
-  for (var index = 0; index < this.pictures.length; index++) {
-    var element = this.pictures[index].element;
-    var distance = Math.abs(
-        element.offsetLeft + element.offsetWidth / 2 - center);
-    if (minIndex == -1 || distance < minDistance) {
-      minDistance = distance;
-      minIndex = index;
-    }
-  }
-
-  // Select the closest picture to the center of the window.
-  // This may invoke scrolling, to center the currently selected picture.
-  if (minIndex != -1) {
-    this.setSelectedIndex(minIndex);
-  }
-};
-
-/**
- * Updates visibility of the browser buttons.
- * @private
- */
-cca.views.Browser.prototype.updateButtons_ = function() {
-  if (this.selectedIndexes.length) {
-    document.querySelector('#browser-print').removeAttribute('disabled');
-    document.querySelector('#browser-export').removeAttribute('disabled');
-    document.querySelector('#browser-delete').removeAttribute('disabled');
-  } else {
-    document.querySelector('#browser-print').setAttribute('disabled', '');
-    document.querySelector('#browser-export').setAttribute('disabled', '');
-    document.querySelector('#browser-delete').setAttribute('disabled', '');
-  }
-};
-
-/**
- * Updates visibility of the scrollbar thumb.
- * @private
- */
-cca.views.Browser.prototype.updateScrollbarThumb_ = function() {
-  // Hide the scrollbar thumb if there is only one picture.
-  this.scrollBar_.setThumbHidden(this.pictures.length < 2);
-};
-
-/**
- * Updates resolutions of the pictures. The selected picture will be high
- * resolution, and all the rest low. This method waits until CSS transitions
- * are finished (if any). Element sizes would also be updated here after
- * updating resolutions.
- * @private
- */
-cca.views.Browser.prototype.updatePicturesResolutions_ = function() {
-  var wrappedElement = function(wrapper, tagName) {
-    var wrapped = wrapper.firstElementChild;
-    return (wrapped.tagName == tagName) ? wrapped : null;
-  };
-
-  var replaceElement = function(wrapper, element) {
-    wrapper.replaceChild(element, wrapper.firstElementChild);
-    cca.nav.setTabIndex(this, element, -1);
-    cca.views.Browser.updateElementSize_(wrapper);
-  }.bind(this);
-
-  var updateImage = function(wrapper, url) {
-    var img = wrappedElement(wrapper, 'IMG');
-    if (!img) {
-      img = document.createElement('img');
-      img.onload = function() {
-        replaceElement(wrapper, img);
-      };
-      img.src = url;
-    } else if (img.src != url) {
-      img.onload = function() {
-        cca.views.Browser.updateElementSize_(wrapper);
-      };
-      img.src = url;
-    }
-  };
-
-  var updateVideo = function(wrapper, url) {
-    var video = document.createElement('video');
-    video.controls = true;
-    video.setAttribute('controlsList', 'nodownload nofullscreen');
-    video.onloadeddata = function() {
-      // Add the video element only if the selection has not been changed and
-      // there is still no video element after loading video.
-      var domPicture = this.lastSelectedPicture();
-      if (domPicture && wrapper == domPicture.element &&
-          !wrappedElement(wrapper, 'VIDEO')) {
-        replaceElement(wrapper, video);
-      }
-    }.bind(this);
-    video.src = url;
-  }.bind(this);
-
-  // Update resolutions immediately if no selection; otherwise, wait for pending
-  // selection changes before updating the current selection's resolution.
-  setTimeout(function() {
-    var selectedPicture = this.lastSelectedPicture();
-    this.pictures.forEach(function(domPicture) {
-      var wrapper = domPicture.element;
-      var picture = domPicture.picture;
-      var thumbnailURL = picture.thumbnailURL;
-      if (domPicture == selectedPicture || !thumbnailURL) {
-        picture.pictureURL().then((url) => {
-          if (picture.isMotionPicture) {
-            updateVideo(wrapper, url);
-          } else {
-            updateImage(wrapper, url);
-          }
-        });
-      } else {
-        // Show cached thumbnails for unselected pictures.
-        updateImage(wrapper, thumbnailURL);
-      }
-    });
-  }.bind(this), (this.lastSelectedIndex() !== null) ? 75 : 0);
-};
-
-/**
- * @override
- */
-cca.views.Browser.prototype.setSelectedIndex = function(index) {
-  var scrollMode = (this.lastSelectedIndex() === null) ?
-      cca.util.SmoothScroller.Mode.INSTANT :
-      cca.util.SmoothScroller.Mode.SMOOTH;
-  cca.views.GalleryBase.prototype.setSelectedIndex.apply(this, arguments);
-
-  var selectedPicture = this.lastSelectedPicture();
-  if (selectedPicture) {
-    cca.util.scrollToCenter(
-        selectedPicture.element, this.scroller_, scrollMode);
-  }
-  this.updateButtons_();
-
-  // Update resolutions only if updating the selected index didn't cause any
-  // scrolling.
-  setTimeout(function() {
-    // If animating, then onScrollEnded() will be called again after it is
-    // finished. Therefore, we can ignore this call.
-    if (!this.scroller_.animating) {
-      this.updatePicturesResolutions_();
-      this.synchronizeFocus();
-    }
-  }.bind(this), 0);
-};
-
-/**
- * @override
- */
-cca.views.Browser.prototype.handlingKey = function(key) {
-  switch (key) {
-    case 'Right':
-      if (this.pictures.length) {
-        var leadIndex = this.lastSelectedIndex();
-        if (leadIndex === null) {
-          this.setSelectedIndex(this.pictures.length - 1);
-        } else {
-          this.setSelectedIndex(Math.max(0, leadIndex - 1));
-        }
-      }
-      return true;
-    case 'Left':
-      if (this.pictures.length) {
-        var leadIndex = this.lastSelectedIndex();
-        if (leadIndex === null) {
-          this.setSelectedIndex(0);
-        } else {
-          this.setSelectedIndex(
-              Math.min(this.pictures.length - 1, leadIndex + 1));
-        }
-      }
-      return true;
-    case 'End':
-      if (this.pictures.length) {
-        this.setSelectedIndex(0);
-      }
-      return true;
-    case 'Home':
-      if (this.pictures.length) {
-        this.setSelectedIndex(this.pictures.length - 1);
-      }
-      return true;
-  }
-  // Call the gallery-base view for unhandled keys.
-  return cca.views.GalleryBase.prototype.handlingKey.apply(this, arguments);
-};
-
-/**
- * @override
- */
-cca.views.Browser.prototype.onPictureDeleted = function(picture) {
-  cca.views.GalleryBase.prototype.onPictureDeleted.apply(this, arguments);
-  this.updateScrollbarThumb_();
-};
-
-/**
- * @override
- */
-cca.views.Browser.prototype.addPictureToDOM = function(picture) {
-  // Display high-res picture if no cached thumbnail.
-  // TODO(yuli): Fix wrappers' size to avoid scrolling for changed elements.
-  var thumbnailURL = picture.thumbnailURL;
-  Promise.resolve(thumbnailURL || picture.pictureURL()).then((url) => {
-    var wrapper = document.createElement('div');
-    cca.nav.setTabIndex(this, wrapper, -1);
-    cca.util.makeUnfocusableByMouse(wrapper);
-    wrapper.className = 'media-wrapper';
-    wrapper.id = 'browser-picture-' + (this.lastPictureIndex_++);
-    wrapper.setAttribute('role', 'option');
-    wrapper.setAttribute('aria-selected', 'false');
-
-    var isVideo = !thumbnailURL && picture.isMotionPicture;
-    var element = wrapper.appendChild(document.createElement(
-        isVideo ? 'video' : 'img'));
-    cca.nav.setTabIndex(this, element, -1);
-    var updateElementSize = () => {
-      cca.views.Browser.updateElementSize_(wrapper);
-    };
-    if (isVideo) {
-      element.controls = true;
-      element.setAttribute('controlsList', 'nodownload nofullscreen');
-      element.onloadeddata = updateElementSize;
-    } else {
-      element.onload = updateElementSize;
-    }
-    element.src = url;
-
-    // Insert the picture's DOM element in a sorted timestamp order.
-    for (var index = this.pictures.length - 1; index >= 0; index--) {
-      if (picture.timestamp >= this.pictures[index].picture.timestamp) {
-        break;
-      }
-    }
-    var browserPadder = document.querySelector('#browser .padder');
-    var nextSibling = (index >= 0) ? this.pictures[index].element :
-        browserPadder.lastElementChild;
-    browserPadder.insertBefore(wrapper, nextSibling);
-    this.updateScrollbarThumb_();
-
-    var domPicture = new cca.views.GalleryBase.DOMPicture(picture, wrapper);
-    this.pictures.splice(index + 1, 0, domPicture);
-
-    wrapper.addEventListener('click', (event) => {
-      // If scrolled while clicking, then discard this selection, since another
-      // one will be choosen in the onScrollEnded handler.
-      if (this.scrollTracker_.scrolling &&
-          Math.abs(this.scrollTracker_.delta[0]) > 16) {
-        return;
-      }
-      this.setSelectedIndex(this.pictures.indexOf(domPicture));
-    });
-  });
-};
-
-/**
- * Updates the picture element's size.
- * @param {HTMLElement} wrapper Element to be updated.
- * @private
- */
-cca.views.Browser.updateElementSize_ = function(wrapper) {
-  // Make the picture element not too large to overlap the buttons.
-  var browserPadder = document.querySelector('#browser .padder');
-  var maxWidth = browserPadder.clientWidth * 0.7;
-  var maxHeight = browserPadder.clientHeight * 0.7;
-  cca.util.updateElementSize(wrapper, maxWidth, maxHeight, false);
-};
diff --git a/chrome/browser/resources/chromeos/camera/src/js/views/camera.js b/chrome/browser/resources/chromeos/camera/src/js/views/camera.js
deleted file mode 100644
index 43d0795d..0000000
--- a/chrome/browser/resources/chromeos/camera/src/js/views/camera.js
+++ /dev/null
@@ -1,538 +0,0 @@
-// Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-'use strict';
-
-/**
- * Namespace for the Camera app.
- */
-var cca = cca || {};
-
-/**
- * Namespace for views.
- */
-cca.views = cca.views || {};
-
-/**
- * Creates the camera-view controller.
- * @param {cca.models.Gallery} model Model object.
- * @param {function(number)} onAspectRatio Callback to report aspect ratio.
- * @constructor
- */
-cca.views.Camera = function(model, onAspectRatio) {
-  cca.views.View.call(this, '#camera');
-
-  /**
-   * Gallery model used to save taken pictures.
-   * @type {cca.models.Gallery}
-   * @private
-   */
-  this.model_ = model;
-
-  /**
-   * MediaRecorder object to record motion pictures.
-   * @type {MediaRecorder}
-   * @private
-   */
-  this.mediaRecorder_ = null;
-
-  /**
-   * ImageCapture object to capture still photos.
-   * @type {ImageCapture}
-   * @private
-   */
-  this.imageCapture_ = null;
-
-  /**
-   * Promise that gets the photo capabilities of the current image-capture.
-   * @type {Promise<PhotoCapabilities>}
-   * @private
-   */
-  this.photoCapabilities_ = null;
-
-  /**
-   * Layout handler for the camera view.
-   * @type {cca.views.camera.Layout}
-   * @private
-   */
-  this.layout_ = new cca.views.camera.Layout();
-
-  /**
-   * Video preview for the camera.
-   * @type {cca.views.camera.Preview}
-   * @private
-   */
-  this.preview_ = new cca.views.camera.Preview(
-      this.stop_.bind(this), onAspectRatio);
-
-  /**
-   * Options for the camera.
-   * @type {cca.views.camera.Options}
-   * @private
-   */
-  this.options_ = new cca.views.camera.Options(this.stop_.bind(this));
-
-  /**
-   * Record-time for the elapsed recording time.
-   * @type {cca.views.camera.RecordTime}
-   * @private
-   */
-  this.recordTime_ = new cca.views.camera.RecordTime();
-
-  /**
-   * Button for going to the gallery.
-   * @type {cca.views.camera.GalleryButton}
-   * @private
-   */
-  this.galleryButton_ = new cca.views.camera.GalleryButton(model);
-
-  /**
-   * Button for taking photos and recording videos.
-   * @type {HTMLButtonElement}
-   * @private
-   */
-  this.shutterButton_ = document.querySelector('#shutter');
-
-  /**
-   * @type {boolean}
-   * @private
-   */
-  this.locked_ = false;
-
-  /**
-   * @type {?number}
-   * @private
-   */
-  this.retryStartTimeout_ = null;
-
-  /**
-   * Promise for the operation that starts camera.
-   * @type {Promise}
-   * @private
-   */
-  this.started_ = null;
-
-  /**
-   * Promise for the current timer ticks.
-   * @type {Promise}
-   * @private
-   */
-  this.ticks_ = null;
-
-  /**
-   * Timeout for a take of photo or recording.
-   * @type {?number}
-   * @private
-   */
-  this.takeTimeout_ = null;
-
-  /**
-   * Promise for the current take of photo or recording.
-   * @type {Promise<Blob>}
-   * @private
-   */
-  this.take_ = null;
-
-  // End of properties, seal the object.
-  Object.seal(this);
-
-  this.shutterButton_.addEventListener('click',
-      this.onShutterButtonClicked_.bind(this));
-};
-
-/**
- * Video recording MIME type. Mkv with AVC1 is the only preferred format.
- * @type {string}
- * @const
- */
-cca.views.Camera.RECORD_MIMETYPE = 'video/x-matroska;codecs=avc1';
-
-cca.views.Camera.prototype = {
-  __proto__: cca.views.View.prototype,
-  get capturing() {
-    return document.body.classList.contains('capturing');
-  },
-  get taking() {
-    return document.body.classList.contains('taking');
-  },
-  get recordMode() {
-    return document.body.classList.contains('record-mode');
-  },
-  get galleryButton() {
-    return this.galleryButton_;
-  },
-};
-
-/**
- * Prepares the view.
- */
-cca.views.Camera.prototype.prepare = function() {
-  // Monitor the states to stop camera when locked/minimized.
-  chrome.idle.onStateChanged.addListener((newState) => {
-    this.locked_ = (newState == 'locked');
-    if (this.locked_) {
-      this.stop_();
-    }
-  });
-  chrome.app.window.current().onMinimized.addListener(() => this.stop_());
-
-  // Start the camera after preparing the options (device ids).
-  this.options_.prepare();
-  this.start_();
-};
-
-/**
- * @override
- */
-cca.views.Camera.prototype.focus = function() {
-  this.shutterButton_.focus();
-};
-
-/**
- * Handles clicking on the shutter button.
- * @param {Event} event Mouse event
- * @private
- */
-cca.views.Camera.prototype.onShutterButtonClicked_ = function(event) {
-  if (this.taking) {
-    // End the prior ongoing take if any; a new take shouldn't be started
-    // until the prior one is ended.
-    this.endTake_();
-    return;
-  }
-  try {
-    if (this.recordMode) {
-      this.prepareMediaRecorder_();
-    } else {
-      this.prepareImageCapture_();
-    }
-    this.beginTake_();
-  } catch (e) {
-    console.error(e);
-    cca.toast.show(this.recordMode ?
-        'errorMsgRecordStartFailed' : 'errorMsgTakePhotoFailed');
-  }
-};
-
-/**
- * Updates UI controls for capturing/taking state changes.
- * @private
- */
-cca.views.Camera.prototype.updateControls_ = function() {
-  // Update the shutter's label before enabling or disabling it.
-  var [capturing, taking] = [this.capturing, this.taking];
-  this.updateShutterLabel_();
-  // TODO(yuli): Use no-op instead of disabling buttions.
-  this.shutterButton_.disabled = !capturing;
-  this.options_.updateControls(capturing, taking);
-  this.galleryButton_.disabled = !capturing || taking;
-};
-
-/**
- * Updates the shutter button's label.
- * @private
- */
-cca.views.Camera.prototype.updateShutterLabel_ = function() {
-  var label;
-  if (this.recordMode) {
-    label = this.taking ? 'recordVideoStopButton' : 'recordVideoStartButton';
-  } else {
-    label = (this.taking && this.ticks_) ?
-        'takePhotoCancelButton' : 'takePhotoButton';
-  }
-  this.shutterButton_.setAttribute('aria-label', chrome.i18n.getMessage(label));
-};
-
-/**
- * @override
- */
-cca.views.Camera.prototype.layout = function() {
-  this.layout_.update();
-};
-
-/**
- * @override
- */
-cca.views.Camera.prototype.handlingKey = function(key) {
-  if (key == 'Ctrl-R') {
-    cca.toast.show(this.preview_.toString());
-    return true;
-  }
-  return false;
-};
-
-/**
- * Begins to take photo or recording with the current options, e.g. timer.
- * @private
- */
-cca.views.Camera.prototype.beginTake_ = function() {
-  document.body.classList.add('taking');
-  this.ticks_ = this.options_.timerTicks();
-  this.updateControls_();
-
-  Promise.resolve(this.ticks_).then(() => {
-    // Play a sound before starting to record and delay the take to avoid the
-    // sound being recorded if necessary.
-    var delay = (this.recordMode && this.options_.playSound(
-        cca.views.camera.Options.Sound.RECORDSTART)) ? 250 : 0;
-    this.takeTimeout_ = setTimeout(() => {
-      if (this.recordMode) {
-        // Take of recording will be ended by another shutter click.
-        this.take_ = this.createRecordingBlob_().catch((error) => {
-          cca.toast.show('errorMsgEmptyRecording');
-          throw error;
-        });
-      } else {
-        this.take_ = this.createPhotoBlob_().catch((error) => {
-          cca.toast.show('errorMsgTakePhotoFailed');
-          throw error;
-        });
-        this.endTake_();
-      }
-    }, delay);
-  }).catch(() => {});
-};
-
-/**
- * Ends the current take (or clears scheduled further takes if any.)
- * @return {!Promise} Promise for the operation.
- * @private
- */
-cca.views.Camera.prototype.endTake_ = function() {
-  if (this.ticks_) {
-    this.ticks_.cancel();
-    this.ticks_ = null;
-  }
-  if (this.takeTimeout_) {
-    clearTimeout(this.takeTimeout_);
-    this.takeTimeout_ = null;
-  }
-  if (this.mediaRecorder_ && this.mediaRecorder_.state == 'recording') {
-    this.mediaRecorder_.stop();
-  }
-
-  return Promise.resolve(this.take_).then((blob) => {
-    if (blob && !blob.handled) {
-      // Play a sound and save the result after a successful take.
-      blob.handled = true;
-      var recordMode = this.recordMode;
-      this.options_.playSound(recordMode ?
-          cca.views.camera.Options.Sound.RECORDEND :
-          cca.views.camera.Options.Sound.SHUTTER);
-      return this.model_.savePicture(blob, recordMode).catch((error) => {
-        cca.toast.show('errorMsgSaveFileFailed');
-        throw error;
-      });
-    }
-  }).catch(console.error).finally(() => {
-    // Re-enable UI controls after finishing the take.
-    this.take_ = null;
-    document.body.classList.remove('taking');
-    this.updateControls_();
-  });
-};
-
-/**
- * Starts a recording to create a blob of it after the recorder is stopped.
- * @return {!Promise<Blob>} Promise for the result.
- * @private
- */
-cca.views.Camera.prototype.createRecordingBlob_ = function() {
-  return new Promise((resolve, reject) => {
-    var recordedChunks = [];
-    var ondataavailable = (event) => {
-      // TODO(yuli): Handle insufficient storage.
-      if (event.data && event.data.size > 0) {
-        recordedChunks.push(event.data);
-      }
-    };
-    var onstop = (event) => {
-      this.mediaRecorder_.removeEventListener('dataavailable', ondataavailable);
-      this.mediaRecorder_.removeEventListener('stop', onstop);
-      this.recordTime_.stop();
-
-      var recordedBlob = new Blob(
-          recordedChunks, {type: cca.views.Camera.RECORD_MIMETYPE});
-      recordedChunks = [];
-      if (recordedBlob.size) {
-        resolve(recordedBlob);
-      } else {
-        reject(new Error('Recording blob error.'));
-      }
-    };
-    this.mediaRecorder_.addEventListener('dataavailable', ondataavailable);
-    this.mediaRecorder_.addEventListener('stop', onstop);
-
-    // Start recording and update the UI for the ongoing recording.
-    // TODO(yuli): Don't re-enable audio after crbug.com/878255 fixed in M73.
-    var track = this.preview_.stream.getAudioTracks()[0];
-    var enableAudio = (enabled) => {
-      if (track) {
-        track.enabled = enabled;
-      }
-    };
-    enableAudio(true);
-    this.mediaRecorder_.start();
-    enableAudio(document.body.classList.contains('mic'));
-    this.recordTime_.start();
-  });
-};
-
-/**
- * Takes a photo to create a blob of it.
- * @return {!Promise<Blob>} Promise for the result.
- * @private
- */
-cca.views.Camera.prototype.createPhotoBlob_ = function() {
-  // Enable using image-capture to take photo only on ChromeOS after M68.
-  // TODO(yuli): Remove this restriction if no longer applicable.
-  if (cca.util.isChromeOS() && cca.util.isChromeVersionAbove(68)) {
-    var getPhotoCapabilities = () => {
-      if (this.photoCapabilities_ == null) {
-        this.photoCapabilities_ = this.imageCapture_.getPhotoCapabilities();
-      }
-      return this.photoCapabilities_;
-    };
-    return getPhotoCapabilities().then((photoCapabilities) => {
-      // Set to take the highest resolution, but the photo to be taken will
-      // still have the same aspect ratio with the preview.
-      var photoSettings = {
-        imageWidth: photoCapabilities.imageWidth.max,
-        imageHeight: photoCapabilities.imageHeight.max,
-      };
-      return this.imageCapture_.takePhoto(photoSettings);
-    });
-  } else {
-    return this.preview_.toImage();
-  }
-};
-
-/**
- * Prepares the media-recorder for the current stream.
- * @private
- */
-cca.views.Camera.prototype.prepareMediaRecorder_ = function() {
-  if (this.mediaRecorder_ == null) {
-    if (!MediaRecorder.isTypeSupported(cca.views.Camera.RECORD_MIMETYPE)) {
-      throw new Error('The preferred mimeType is not supported.');
-    }
-    this.mediaRecorder_ = new MediaRecorder(
-        this.preview_.stream, {mimeType: cca.views.Camera.RECORD_MIMETYPE});
-  }
-};
-
-/**
- * Prepares the image-capture for the current stream.
- * @private
- */
-cca.views.Camera.prototype.prepareImageCapture_ = function() {
-  if (this.imageCapture_ == null) {
-    this.imageCapture_ = new ImageCapture(
-        this.preview_.stream.getVideoTracks()[0]);
-  }
-};
-
-/**
- * Returns constraints-candidates for all available video-devices.
- * @return {!Promise<Array<Object>>} Promise for the result.
- * @private
- */
-cca.views.Camera.prototype.constraintsCandidates_ = function() {
-  var deviceConstraints = (deviceId, recordMode) => {
-    // Constraints are ordered by priority.
-    return [
-      {
-        aspectRatio: {ideal: recordMode ? 1.7777777778 : 1.3333333333},
-        width: {min: 1280},
-        frameRate: {min: 24},
-      },
-      {
-        width: {min: 640},
-        frameRate: {min: 24},
-      },
-    ].map((constraint) => {
-      // Each passed-in video-constraint will be modified here.
-      if (deviceId) {
-        constraint.deviceId = {exact: deviceId};
-      } else {
-        // As a default camera use the one which is facing the user.
-        constraint.facingMode = {exact: 'user'};
-      }
-      return {audio: recordMode, video: constraint};
-    });
-  };
-
-  return this.options_.videoDeviceIds().then((deviceIds) => {
-    var recordMode = this.recordMode;
-    var candidates = [];
-    deviceIds.forEach((deviceId) => {
-      candidates = candidates.concat(deviceConstraints(deviceId, recordMode));
-    });
-    return candidates;
-  });
-};
-
-/**
- * Stops camera and tries to start camera stream again if possible.
- * @return {!Promise} Promise for the start-camera operation.
- * @private
- */
-cca.views.Camera.prototype.stop_ = function() {
-  // Wait for ongoing 'start' and 'take' done before restarting camera.
-  return Promise.all([
-    this.started_,
-    Promise.resolve(!this.taking || this.endTake_()),
-  ]).finally(() => {
-    this.preview_.stop();
-    this.mediaRecorder_ = null;
-    this.imageCapture_ = null;
-    this.photoCapabilities_ = null;
-    document.body.classList.remove('capturing');
-    this.updateControls_();
-    this.start_();
-    return this.started_;
-  });
-};
-
-/**
- * Starts camera if the camera stream was stopped.
- * @private
- */
-cca.views.Camera.prototype.start_ = function() {
-  var suspend = this.locked_ || chrome.app.window.current().isMinimized();
-  this.started_ = (suspend ? Promise.reject(new Error('suspend')) :
-      this.constraintsCandidates_()).then((candidates) => {
-    var tryStartWithCandidate = (index) => {
-      if (index >= candidates.length) {
-        return Promise.reject(new Error('out-of-candidates'));
-      }
-      var constraints = candidates[index];
-      return navigator.mediaDevices.getUserMedia(constraints).then(
-          this.preview_.start.bind(this.preview_)).then(() => {
-        this.options_.updateValues(constraints, this.preview_.stream);
-        document.body.classList.add('capturing');
-        this.updateControls_();
-        cca.nav.close('warning', 'no-camera');
-      }).catch((error) => {
-        console.error(error);
-        return new Promise((resolve) => {
-          // TODO(mtomasz): Workaround for crbug.com/383241.
-          setTimeout(() => resolve(tryStartWithCandidate(index + 1)), 0);
-        });
-      });
-    };
-    return tryStartWithCandidate(0);
-  }).catch((error) => {
-    if (error && error.message != 'suspend') {
-      console.error(error);
-      cca.nav.open('warning', 'no-camera');
-    }
-    // Schedule to retry.
-    if (this.retryStartTimeout_) {
-      clearTimeout(this.retryStartTimeout_);
-      this.retryStartTimeout_ = null;
-    }
-    this.retryStartTimeout_ = setTimeout(this.start_.bind(this), 100);
-  });
-};
diff --git a/chrome/browser/resources/chromeos/camera/src/js/views/camera/gallerybutton.js b/chrome/browser/resources/chromeos/camera/src/js/views/camera/gallerybutton.js
deleted file mode 100644
index c752b48..0000000
--- a/chrome/browser/resources/chromeos/camera/src/js/views/camera/gallerybutton.js
+++ /dev/null
@@ -1,123 +0,0 @@
-// Copyright 2018 The Chromium OS Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-'use strict';
-
-/**
- * Namespace for the Camera app.
- */
-var cca = cca || {};
-
-/**
- * Namespace for views.
- */
-cca.views = cca.views || {};
-
-/**
- * Namespace for Camera view.
- */
-cca.views.camera = cca.views.camera || {};
-
-/**
- * Creates a controller for the gallery-button of Camera view.
- * @param {cca.models.Gallery} model Model object.
- * @implements {cca.models.Gallery.Observer}
- * @constructor
- */
-cca.views.camera.GalleryButton = function(model) {
-  /**
-   * @type {cca.models.Gallery}
-   * @private
-   */
-  this.model_ = model;
-
-  /**
-   * @type {cca.models.Gallery.Picture}
-   * @private
-   */
-  this.lastPicture_ = null;
-
-  /**
-   * @type {HTMLButtonElement}
-   * @private
-   */
-  this.button_ = document.querySelector('#gallery-enter');
-
-  // End of properties, seal the object.
-  Object.seal(this);
-
-  this.button_.addEventListener('click', (event) => {
-    // Check if the last picture still exists before opening it in the gallery.
-    // TODO(yuli): Remove this workaround for unable watching changed-files.
-    this.model_.checkLastPicture().then((picture) => {
-      if (picture) {
-        this.openGallery_(picture);
-      }
-    });
-  });
-};
-
-cca.views.camera.GalleryButton.prototype = {
-  set disabled(value) {
-    this.button_.disabled = value;
-  },
-};
-
-/**
- * Updates the button for the model changes.
- * @private
- */
-cca.views.camera.GalleryButton.prototype.updateButton_ = function() {
-  this.model_.lastPicture().then((picture) => {
-    if (picture != this.lastPicture_) {
-      this.lastPicture_ = picture;
-      return true;
-    }
-    return false;
-  }).then((changed) => {
-    if (!changed) {
-      return;
-    }
-    this.button_.hidden = !this.lastPicture_;
-    var url = this.lastPicture_ && this.lastPicture_.thumbnailURL;
-    this.button_.style.backgroundImage = url ? ('url("' + url + '")') : 'none';
-  });
-};
-
-/**
- * Opens the gallery to browse the picture.
- * @param {cca.models.Gallery.Picture} picture Picture to be browsed.
- * @private
- */
-cca.views.camera.GalleryButton.prototype.openGallery_ = function(picture) {
-  if (cca.App.useGalleryApp()) {
-    const id = 'nlkncpkkdoccmpiclbokaimcnedabhhm|app|open';
-    const entry = picture.pictureEntry;
-    chrome.fileManagerPrivate.executeTask(id, [entry], (result) => {
-      if (result != 'opened' && result != 'message_sent') {
-        console.warn('Unable to open picture: ' + result);
-      }
-    });
-  } else {
-    cca.nav.open('browser', picture);
-  }
-};
-
-/**
- * @override
- */
-cca.views.camera.GalleryButton.prototype.onPictureDeleted = function(picture) {
-  if (this.lastPicture_ == picture) {
-    this.updateButton_();
-  }
-};
-
-/**
- * @override
- */
-cca.views.camera.GalleryButton.prototype.onPictureAdded = function(picture) {
-  if (!this.lastPicture_ || this.lastPicture_.timestamp <= picture.timestamp) {
-    this.updateButton_();
-  }
-};
diff --git a/chrome/browser/resources/chromeos/camera/src/js/views/camera/layout.js b/chrome/browser/resources/chromeos/camera/src/js/views/camera/layout.js
deleted file mode 100644
index d27d241..0000000
--- a/chrome/browser/resources/chromeos/camera/src/js/views/camera/layout.js
+++ /dev/null
@@ -1,174 +0,0 @@
-// Copyright 2018 The Chromium OS Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-'use strict';
-
-/**
- * Namespace for the Camera app.
- */
-var cca = cca || {};
-
-/**
- * Namespace for views.
- */
-cca.views = cca.views || {};
-
-/**
- * Namespace for Camera view.
- */
-cca.views.camera = cca.views.camera || {};
-
-/**
- * Creates a controller to handle layouts of Camera view.
- * @constructor
- */
-cca.views.camera.Layout = function() {
-  /**
-   * CSS sylte of the shifted right-stripe.
-   * @type {CSSStyleDeclaration}
-   * @private
-   */
-  this.rightStripe_ = cca.views.camera.Layout.cssStyle_(
-      'body.shift-right-stripe .right-stripe, ' +
-      'body.shift-right-stripe.tablet-landscape .actions-group');
-
-  /**
-   * CSS sylte of the shifted bottom-stripe.
-   * @type {CSSStyleDeclaration}
-   * @private
-   */
-  this.bottomStripe_ = cca.views.camera.Layout.cssStyle_(
-      'body.shift-bottom-stripe .bottom-stripe, ' +
-      'body.shift-bottom-stripe:not(.tablet-landscape) .actions-group');
-
-  /**
-   * CSS sylte of the shifted left-stripe.
-   * @type {CSSStyleDeclaration}
-   * @private
-   */
-  this.leftStripe_ = cca.views.camera.Layout.cssStyle_(
-      'body.shift-left-stripe .left-stripe');
-
-  /**
-   * CSS sylte of the shifted top-stripe.
-   * @type {CSSStyleDeclaration}
-   * @private
-   */
-  this.topStripe_ = cca.views.camera.Layout.cssStyle_(
-      'body.shift-top-stripe .top-stripe');
-
-  // End of properties, seal the object.
-  Object.seal(this);
-};
-
-/**
- * CSS rules.
- * @type {Array<CSSRule>}
- * @private
- */
-cca.views.camera.Layout.cssRules_ =
-    [].slice.call(document.styleSheets[0].cssRules);
-
-/**
- * Gets the CSS style by the given selector.
- * @param {string} selector Selector text.
- * @return {CSSStyleDeclaration}
- * @private
- */
-cca.views.camera.Layout.cssStyle_ = function(selector) {
-  return cca.views.camera.Layout.cssRules_.find(
-      (rule) => rule.selectorText == selector).style;
-};
-
-/**
- * Updates the video element size for previewing in the window.
- * @return {Array<number>} Letterbox size in [width, height].
- * @private
- */
-cca.views.camera.Layout.prototype.updatePreviewSize_ = function() {
-  // Make video content keeps its aspect ratio inside the window's inner-bounds;
-  // it may fill up the window or be letterboxed when fullscreen/maximized.
-  // Don't use app-window.innerBounds' width/height properties during resizing
-  // as they are not updated immediately.
-  var video = document.querySelector('#preview-video');
-  if (video.videoHeight) {
-    var f = cca.util.isWindowFullSize() ? Math.min : Math.max;
-    var scale = f(window.innerHeight / video.videoHeight,
-        window.innerWidth / video.videoWidth);
-    video.width = scale * video.videoWidth;
-    video.height = scale * video.videoHeight;
-  }
-  return [window.innerWidth - video.width, window.innerHeight - video.height];
-};
-
-/**
- * Updates the layout for video-size or window-size changes.
- */
-cca.views.camera.Layout.prototype.update = function() {
-  // TODO(yuli): Check if the app runs on a tablet display.
-  var fullWindow = cca.util.isWindowFullSize();
-  var tabletLandscape = fullWindow && (window.innerWidth > window.innerHeight);
-  document.body.classList.toggle('tablet-landscape', tabletLandscape);
-
-  var [letterboxW, letterboxH] = this.updatePreviewSize_();
-  var [halfW, halfH] = [letterboxW / 2, letterboxH / 2];
-  var [rightBox, bottomBox, leftBox, topBox] = [halfW, halfH, halfW, halfH];
-
-  // Shift preview to accommodate the shutter in letterbox if applicable.
-  var dimens = (shutter) => {
-    // These following constants need kept in sync with relevant values in css.
-    // preset: button-size + preset-margin + min-margin
-    // least: button-size + 2 * min-margin
-    // gap: preset-margin - min-margin
-    // baseline: preset-baseline
-    return shutter ? [100, 88, 12, 56] : [76, 56, 20, 48];
-  };
-  var accommodate = (measure) => {
-    var [, leastShutter] = dimens(true);
-    return (measure > leastShutter) && (measure < leastShutter * 2);
-  };
-  if (document.body.classList.toggle('shift-preview-left',
-      fullWindow && tabletLandscape && accommodate(letterboxW))) {
-    [rightBox, leftBox] = [letterboxW, 0];
-  }
-  if (document.body.classList.toggle('shift-preview-top',
-      fullWindow && !tabletLandscape && accommodate(letterboxH))) {
-    [bottomBox, topBox] = [letterboxH, 0];
-  }
-
-  // Shift buttons' stripes if necessary. Buttons are either fully on letterbox
-  // or preview while the shutter/options keep minimum margin to either edges.
-  var calc = (measure, least) => {
-    return (measure >= least) ?
-        Math.round(measure / 2) : // Centered in letterbox.
-        Math.round(measure + least / 2); // Inset in preview.
-  };
-  var shift = (stripe, name, measure, shutter) => {
-    var [preset, least, gap, baseline] = dimens(shutter);
-    if (document.body.classList.toggle('shift-' + name + '-stripe',
-        measure > gap && measure < preset)) {
-      baseline = calc(measure, least);
-      stripe.setProperty(name, baseline + 'px');
-    }
-    // Return shutter's baseline in letterbox if applicable.
-    return (shutter && baseline < measure) ? baseline : 0;
-  };
-  var symm = (stripe, name, measure, shutterBaseline) => {
-    if (measure && shutterBaseline) {
-      document.body.classList.add('shift-' + name + '-stripe');
-      stripe.setProperty(name, shutterBaseline + 'px');
-      return true;
-    }
-    return false;
-  };
-  // Make both letterbox look symmetric if shutter is in either letterbox.
-  if (!symm(this.leftStripe_, 'left', leftBox,
-      shift(this.rightStripe_, 'right', rightBox, tabletLandscape))) {
-    shift(this.leftStripe_, 'left', leftBox, false);
-  }
-  if (!symm(this.topStripe_, 'top', topBox,
-      shift(this.bottomStripe_, 'bottom', bottomBox, !tabletLandscape))) {
-    shift(this.topStripe_, 'top', topBox, false);
-  }
-};
diff --git a/chrome/browser/resources/chromeos/camera/src/js/views/camera/options.js b/chrome/browser/resources/chromeos/camera/src/js/views/camera/options.js
deleted file mode 100644
index 37acfdbd4e..0000000
--- a/chrome/browser/resources/chromeos/camera/src/js/views/camera/options.js
+++ /dev/null
@@ -1,405 +0,0 @@
-// Copyright 2018 The Chromium OS Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-'use strict';
-
-/**
- * Namespace for the Camera app.
- */
-var cca = cca || {};
-
-/**
- * Namespace for views.
- */
-cca.views = cca.views || {};
-
-/**
- * Namespace for Camera view.
- */
-cca.views.camera = cca.views.camera || {};
-
-/**
- * Creates a controller for the options of Camera view.
- * @param {function()} onNewStreamNeeded Callback to request new stream.
- * @constructor
- */
-cca.views.camera.Options = function(onNewStreamNeeded) {
-  /**
-   * @type {function()}
-   * @private
-   */
-  this.onNewStreamNeeded_ = onNewStreamNeeded;
-
-  /**
-   * @type {HTMLInputElement}
-   * @private
-   */
-  this.toggleMic_ = document.querySelector('#toggle-mic');
-
-  /**
-   * @type {HTMLInputElement}
-   * @private
-   */
-  this.toggleMirror_ = document.querySelector('#toggle-mirror');
-
-  /**
-   * @type {Audio}
-   * @private
-   */
-  this.shutterSound_ = document.createElement('audio');
-
-  /**
-   * @type {Audio}
-   * @private
-   */
-  this.tickSound_ = document.createElement('audio');
-
-  /**
-   * @type {Audio}
-   * @private
-   */
-  this.recordStartSound_ = document.createElement('audio');
-
-  /**
-   * @type {Audio}
-   * @private
-   */
-  this.recordEndSound_ = document.createElement('audio');
-
-  /**
-   * Device id of the camera device currently used or selected.
-   * @type {?string}
-   * @private
-   */
-  this.videoDeviceId_ = null;
-
-  /**
-   * Whether list of video devices is being refreshed now.
-   * @type {boolean}
-   * @private
-   */
-  this.refreshingVideoDeviceIds_ = false;
-
-  /**
-   * List of available video devices.
-   * @type {Promise<!Array<MediaDeviceInfo>>}
-   * @private
-   */
-  this.videoDevices_ = null;
-
-  /**
-   * Mirroring set per device.
-   * @type {Object}
-   * @private
-   */
-  this.mirroringToggles_ = {};
-
-  /**
-   * Current audio track in use.
-   * @type {MediaStreamTrack}
-   * @private
-   */
-  this.audioTrack_ = null;
-
-  // End of properties, seal the object.
-  Object.seal(this);
-
-  [
-    ['#switch-device', () => this.switchDevice_()],
-    ['#switch-recordvideo', () => this.switchMode_(true)],
-    ['#switch-takephoto', () => this.switchMode_(false)],
-    ['#toggle-grid', () => this.animatePreviewGrid_()],
-    ['#open-settings', () => cca.nav.open('settings')],
-  ].forEach(([selector, fn]) =>
-      document.querySelector(selector).addEventListener('click', fn));
-
-  this.toggleMic_.addEventListener('click', () => this.updateAudioByMic_());
-  this.toggleMirror_.addEventListener('click', () => this.saveMirroring_());
-
-  // Load the shutter, tick, and recording sound.
-  this.shutterSound_.src = '../sounds/shutter.ogg';
-  this.tickSound_.src = '../sounds/tick.ogg';
-  this.recordStartSound_.src = '../sounds/record_start.ogg';
-  this.recordEndSound_.src = '../sounds/record_end.ogg';
-};
-
-/**
- * Sounds.
- * @enum {number}
- */
-cca.views.camera.Options.Sound = Object.freeze({
-  SHUTTER: 0,
-  TICK: 1,
-  RECORDSTART: 2,
-  RECORDEND: 3,
-});
-
-/**
- * Prepares the options.
- */
-cca.views.camera.Options.prototype.prepare = function() {
-  // Restore saved mirroring states per video device.
-  chrome.storage.local.get({mirroringToggles: {}},
-      (values) => this.mirroringToggles_ = values.mirroringToggles);
-  // Remove the deprecated values.
-  chrome.storage.local.remove(['effectIndex', 'toggleMulti', 'toggleMirror']);
-
-  // TODO(yuli): Replace with devicechanged event.
-  this.maybeRefreshVideoDeviceIds_();
-  setInterval(this.maybeRefreshVideoDeviceIds_.bind(this), 1000);
-};
-
-/**
- * Switches mode to either video-recording or photo-taking.
- * @param {boolean} record True for record-mode, false otherwise.
- * @private
- */
-cca.views.camera.Options.prototype.switchMode_ = function(record) {
-  document.body.classList.toggle('record-mode', record);
-  document.body.classList.add('mode-switching');
-  this.onNewStreamNeeded_().then(
-      () => document.body.classList.remove('mode-switching'));
-};
-
-/**
- * Switches to the next available camera device.
- * @private
- */
-cca.views.camera.Options.prototype.switchDevice_ = function() {
-  this.videoDevices_.then((devices) => {
-    cca.util.animateOnce(document.querySelector('#switch-device'));
-    var index = devices.findIndex(
-        (entry) => entry.deviceId == this.videoDeviceId_);
-    if (index == -1) {
-      index = 0;
-    }
-    if (devices.length > 0) {
-      index = (index + 1) % devices.length;
-      this.videoDeviceId_ = devices[index].deviceId;
-    }
-    return this.onNewStreamNeeded_();
-  }).then(() => this.videoDevices_).then((devices) => {
-    // Make the active camera announced by screen reader.
-    var found = devices.find((entry) => entry.deviceId == this.videoDeviceId_);
-    if (found) {
-      cca.toast.speak(chrome.i18n.getMessage(
-          'statusMsgCameraSwitched', found.label));
-    }
-  });
-};
-
-/**
- * Animates the preview grid.
- * @private
- */
-cca.views.camera.Options.prototype.animatePreviewGrid_ = function() {
-  Array.from(document.querySelector('#preview-grid').children).forEach(
-      (grid) => cca.util.animateOnce(grid));
-};
-
-/**
- * Handles playing the sound by the speaker option.
- * @param {cca.views.camera.Options.Sound} sound Sound to be played.
- * @return {boolean} Whether the sound being played.
- * TODO(yuli): Move this function into sounds.js.
- */
-cca.views.camera.Options.prototype.playSound = function(sound) {
-  // TODO(yuli): Don't play sounds if the speaker settings is muted.
-  var play = (element) => {
-    element.currentTime = 0;
-    element.play();
-    return true;
-  };
-  switch (sound) {
-    case cca.views.camera.Options.Sound.SHUTTER:
-      return play(this.shutterSound_);
-    case cca.views.camera.Options.Sound.TICK:
-      return play(this.tickSound_);
-    case cca.views.camera.Options.Sound.RECORDSTART:
-      return play(this.recordStartSound_);
-    case cca.views.camera.Options.Sound.RECORDEND:
-      return play(this.recordEndSound_);
-  }
-};
-
-/**
- * Schedules ticks by the timer option if any.
- * @return {?Promise} Promise for the operation.
- * TODO(yuli): Move this function into timerticks.js.
- */
-cca.views.camera.Options.prototype.timerTicks = function() {
-  if (!document.body.classList.contains('timer')) {
-    return null;
-  }
-  var cancel;
-  var tickTimeout = null;
-  var tickMsg = document.querySelector('#timer-tick-msg');
-  var ticks = new Promise((resolve, reject) => {
-    var tickCounter = document.body.classList.contains('_10sec') ? 10 : 3;
-    var onTimerTick = () => {
-      if (tickCounter == 0) {
-        resolve();
-      } else {
-        this.playSound(cca.views.camera.Options.Sound.TICK);
-        tickMsg.textContent = tickCounter + '';
-        cca.util.animateOnce(tickMsg);
-        tickTimeout = setTimeout(onTimerTick, 1000);
-        tickCounter--;
-      }
-    };
-    // First tick immediately in the next message loop cycle.
-    tickTimeout = setTimeout(onTimerTick, 0);
-    cancel = reject;
-  });
-
-  ticks.cancel = () => {
-    if (tickTimeout) {
-      clearTimeout(tickTimeout);
-      tickTimeout = null;
-    }
-    cca.util.animateCancel(tickMsg);
-    cancel();
-  };
-  return ticks;
-};
-
-/**
- * Updates UI controls' disabled status for capturing/taking state changes.
- * @param {boolean} capturing Whether camera is capturing.
- * @param {boolean} taking Whether camera is taking.
- */
-cca.views.camera.Options.prototype.updateControls = function(
-    capturing, taking) {
-  var disabled = !capturing || taking;
-  var selector = '#switch-device, #switch-recordvideo, #switch-takephoto';
-  document.querySelectorAll(selector).forEach(
-      (element) => element.disabled = disabled);
-};
-
-/**
- * Updates the options' values for the current constraints and stream.
- * @param {Object} constraints Current stream constraints in use.
- * @param {MediaStream} stream Current Stream in use.
- */
-cca.views.camera.Options.prototype.updateValues = function(
-    constraints, stream) {
-  var track = stream.getVideoTracks()[0];
-  var trackSettings = track.getSettings && track.getSettings();
-  this.updateVideoDeviceId_(constraints, trackSettings);
-  this.updateMirroring_(trackSettings);
-  this.audioTrack_ = stream.getAudioTracks()[0];
-  this.updateAudioByMic_();
-};
-
-/**
- * Updates the video device id by the new stream.
- * @param {Object} constraints Stream constraints in use.
- * @param {MediaTrackSettings} trackSettings Video track settings in use.
- * @private
- */
-cca.views.camera.Options.prototype.updateVideoDeviceId_ = function(
-    constraints, trackSettings) {
-  if (constraints.video.deviceId) {
-    // For non-default cameras fetch the deviceId from constraints.
-    // Works on all supported Chrome versions.
-    this.videoDeviceId_ = constraints.video.deviceId.exact;
-  } else {
-    // For default camera, obtain the deviceId from settings, which is
-    // a feature available only from 59. For older Chrome versions,
-    // it's impossible to detect the device id. As a result, if the
-    // default camera was changed to rear in chrome://settings, then
-    // toggling the camera may not work when pressed for the first time
-    // (the same camera would be opened).
-    this.videoDeviceId_ = trackSettings && trackSettings.deviceId || null;
-  }
-};
-
-/**
- * Updates mirroring for a new stream.
- * @param {MediaTrackSettings} trackSettings Video track settings in use.
- * @private
- */
-cca.views.camera.Options.prototype.updateMirroring_ = function(trackSettings) {
-  // Update mirroring by detected facing-mode. Enable mirroring by default if
-  // facing-mode isn't available.
-  var facingMode = trackSettings && trackSettings.facingMode;
-  var enabled = facingMode ? facingMode == 'user' : true;
-
-  // Override mirroring only if mirroring was toggled manually.
-  if (this.videoDeviceId_ in this.mirroringToggles_) {
-    enabled = this.mirroringToggles_[this.videoDeviceId_];
-  }
-  this.toggleMirror_.toggleChecked(enabled);
-};
-
-/**
- * Saves the toggled mirror state for the current video device.
- * @private
- */
-cca.views.camera.Options.prototype.saveMirroring_ = function() {
-  this.mirroringToggles_[this.videoDeviceId_] = this.toggleMirror_.checked;
-  chrome.storage.local.set({mirroringToggles: this.mirroringToggles_});
-};
-
-/**
- * Enables/disables the current audio track by the microphone option.
- * @private
- */
-cca.views.camera.Options.prototype.updateAudioByMic_ = function() {
-  if (this.audioTrack_) {
-    this.audioTrack_.enabled = this.toggleMic_.checked;
-  }
-};
-
-/**
- * Updates list of available video devices when changed, including the UI.
- * Does nothing if refreshing is already in progress.
- * @private
- */
-cca.views.camera.Options.prototype.maybeRefreshVideoDeviceIds_ = function() {
-  if (this.refreshingVideoDeviceIds_) {
-    return;
-  }
-  this.refreshingVideoDeviceIds_ = true;
-
-  this.videoDevices_ = navigator.mediaDevices.enumerateDevices().then(
-      (devices) => devices.filter((device) => device.kind == 'videoinput'));
-
-  // Show switch-device button only when more than one camera.
-  var multi = false;
-  this.videoDevices_.then((devices) => {
-    multi = devices.length >= 2;
-  }).catch(console.error).finally(() => {
-    document.body.classList.toggle('multi-camera', multi);
-    this.refreshingVideoDeviceIds_ = false;
-  });
-};
-
-/**
- * Gets the video device ids sorted by preference.
- * @return {!Promise<!Array<string>>}
- */
-cca.views.camera.Options.prototype.videoDeviceIds = function() {
-  return this.videoDevices_.then((devices) => {
-    if (devices.length == 0) {
-      throw new Error('Device list empty.');
-    }
-    // Put the selected video device id first.
-    var sorted = devices.map((device) => device.deviceId).sort((a, b) => {
-      if (a == b) {
-        return 0;
-      }
-      if (a == this.videoDeviceId_) {
-        return -1;
-      }
-      return 1;
-    });
-    // Prepended 'null' deviceId means the system default camera. Add it only
-    // when the app is launched (no video-device-id set).
-    if (this.videoDeviceId_ == null) {
-      sorted.unshift(null);
-    }
-    return sorted;
-  });
-};
diff --git a/chrome/browser/resources/chromeos/camera/src/js/views/camera/preview.js b/chrome/browser/resources/chromeos/camera/src/js/views/camera/preview.js
deleted file mode 100644
index 95c4bfa..0000000
--- a/chrome/browser/resources/chromeos/camera/src/js/views/camera/preview.js
+++ /dev/null
@@ -1,223 +0,0 @@
-// Copyright 2018 The Chromium OS Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-'use strict';
-
-/**
- * Namespace for the Camera app.
- */
-var cca = cca || {};
-
-/**
- * Namespace for views.
- */
-cca.views = cca.views || {};
-
-/**
- * Namespace for Camera view.
- */
-cca.views.camera = cca.views.camera || {};
-
-/**
- * Creates a controller for the video preview of Camera view.
- * @param {function()} onNewStreamNeeded Callback to request new stream.
- * @param {function(number)} onAspectRatio Callback to report aspect ratio.
- * @constructor
- */
-cca.views.camera.Preview = function(onNewStreamNeeded, onAspectRatio) {
-  /**
-   * @type {function()}
-   * @private
-   */
-  this.onNewStreamNeeded_ = onNewStreamNeeded;
-
-  /**
-   * @type {function(number)}
-   * @private
-   */
-  this.onAspectRatio_ = onAspectRatio;
-
-  /**
-   * Video element to capture the stream.
-   * @type {Video}
-   * @private
-   */
-  this.video_ = document.querySelector('#preview-video');
-
-  /**
-   * Current active stream.
-   * @type {MediaStream}
-   * @private
-   */
-  this.stream_ = null;
-
-  /**
-   * Watchdog for stream-end.
-   * @type {?number}
-   * @private
-   */
-  this.watchdog_ = null;
-
-  /**
-   * Promise for the current applying focus.
-   * @type {?Promise}
-   * @private
-   */
-  this.focus_ = null;
-
-  // End of properties, seal the object.
-  Object.seal(this);
-
-  this.video_.cleanup = () => {};
-};
-
-cca.views.camera.Preview.prototype = {
-  get stream() {
-    return this.stream_;
-  },
-};
-
-/**
- * @override
- */
-cca.views.camera.Preview.prototype.toString = function() {
-  return this.video_.videoHeight ?
-      (this.video_.videoWidth + ' x ' + this.video_.videoHeight) : '';
-};
-
-/**
- * Sets video element's source.
- * @param {MediaStream} stream Stream to be the source.
- * @return {!Promise} Promise for the operation.
- */
-cca.views.camera.Preview.prototype.setSource_ = function(stream) {
-  var video = document.createElement('video');
-  video.id = 'preview-video';
-  video.muted = true; // Mute to avoid echo from the captured audio.
-  return new Promise((resolve) => {
-    var handler = () => {
-      video.removeEventListener('canplay', handler);
-      resolve();
-    };
-    video.addEventListener('canplay', handler);
-    video.srcObject = stream;
-  }).then(() => video.play()).then(() => {
-    video.cleanup = () => {
-      video.removeAttribute('srcObject');
-      video.load();
-    };
-    this.video_.parentElement.replaceChild(video, this.video_).cleanup();
-    this.video_ = video;
-    this.onIntrinsicSizeChanged_();
-    video.addEventListener('resize', () => this.onIntrinsicSizeChanged_());
-    video.addEventListener('click', () => this.onFocusClicked_());
-  });
-};
-
-/**
- * Starts the preview with the source stream.
- * @param {MediaStream} stream Stream to be the source.
- * @return {!Promise} Promise for the operation.
- */
-cca.views.camera.Preview.prototype.start = function(stream) {
-  return this.setSource_(stream).then(() => {
-    // Use a watchdog since the stream.onended event is unreliable in the
-    // recent version of Chrome. As of 55, the event is still broken.
-    this.watchdog_ = setInterval(() => {
-      // Check if video stream is ended (audio stream may still be live).
-      if (!stream.getVideoTracks().length ||
-          stream.getVideoTracks()[0].readyState == 'ended') {
-        clearInterval(this.watchdog_);
-        this.watchdog_ = null;
-        this.stream_ = null;
-        this.onNewStreamNeeded_();
-      }
-    }, 100);
-    this.stream_ = stream;
-  });
-};
-
-/**
- * Stops the preview.
- */
-cca.views.camera.Preview.prototype.stop = function() {
-  if (this.watchdog_) {
-    clearInterval(this.watchdog_);
-    this.watchdog_ = null;
-  }
-  // Pause video element to avoid black frames during transition.
-  this.video_.pause();
-  if (this.stream_) {
-    this.stream_.getVideoTracks()[0].stop();
-    this.stream_ = null;
-  }
-};
-
-/**
- * Creates an image blob of the current frame.
- * @return {!Promise<Blob>} Promise for the result.
- */
-cca.views.camera.Preview.prototype.toImage = function() {
-  var canvas = document.createElement('canvas');
-  var ctx = canvas.getContext('2d');
-  canvas.width = this.video_.videoWidth;
-  canvas.height = this.video_.videoHeight;
-  ctx.drawImage(this.video_, 0, 0);
-  return new Promise((resolve, reject) => {
-    canvas.toBlob((blob) => {
-      if (blob) {
-        resolve(blob);
-      } else {
-        reject(new Error('Photo blob error.'));
-      }
-    }, 'image/jpeg');
-  });
-};
-
-/**
- * Handles changed intrinsic size (first loaded or orientation changes).
- * @private
- */
-cca.views.camera.Preview.prototype.onIntrinsicSizeChanged_ = function() {
-  if (this.video_.videoWidth && this.video_.videoHeight) {
-    this.onAspectRatio_(this.video_.videoWidth / this.video_.videoHeight);
-  }
-  this.cancelFocus_();
-};
-
-/**
- * Handles clicking for focus.
- * @param {Event} event Click event.
- * @private
- */
-cca.views.camera.Preview.prototype.onFocusClicked_ = function(event) {
-  this.cancelFocus_();
-
-  // Normalize to square space coordinates by W3C spec.
-  var x = event.offsetX / this.video_.width;
-  var y = event.offsetY / this.video_.height;
-  var constraints = {advanced: [{pointsOfInterest: [{x, y}]}]};
-  var track = this.video_.srcObject.getVideoTracks()[0];
-  var focus = track.applyConstraints(constraints).then(() => {
-    if (focus != this.focus_) {
-      return; // Focus was cancelled.
-    }
-    var aim = document.querySelector('#preview-focus-aim');
-    var clone = aim.cloneNode(true);
-    clone.style.left = `${x * 100}%`;
-    clone.style.top = `${y * 100}%`;
-    clone.hidden = false;
-    aim.parentElement.replaceChild(clone, aim);
-  }).catch(console.error);
-  this.focus_ = focus;
-};
-
-/**
- * Cancels the current applying focus.
- * @private
- */
-cca.views.camera.Preview.prototype.cancelFocus_ = function() {
-  this.focus_ = null;
-  document.querySelector('#preview-focus-aim').hidden = true;
-};
diff --git a/chrome/browser/resources/chromeos/camera/src/js/views/camera/recordtime.js b/chrome/browser/resources/chromeos/camera/src/js/views/camera/recordtime.js
deleted file mode 100644
index d178b966..0000000
--- a/chrome/browser/resources/chromeos/camera/src/js/views/camera/recordtime.js
+++ /dev/null
@@ -1,88 +0,0 @@
-// Copyright 2018 The Chhomium OS Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-'use strict';
-
-/**
- * Namespace for the Camera app.
- */
-var cca = cca || {};
-
-/**
- * Namespace for views.
- */
-cca.views = cca.views || {};
-
-/**
- * Namespace for Camera view.
- */
-cca.views.camera = cca.views.camera || {};
-
-/**
- * Creates a controller for the record-time of Camera view.
- * @constructor
- */
-cca.views.camera.RecordTime = function() {
-  /**
-   * @type {HTMLElement}
-   * @private
-   */
-  this.recordTime_ = document.querySelector('#record-time');
-
-  /**
-   * Timeout to count every tick of elapsed recording time.
-   * @type {?number}
-   * @private
-   */
-  this.tickTimeout_ = null;
-
-  // End of properties, seal the object.
-  Object.seal(this);
-};
-
-/**
- * Updates UI by the elapsed recording time.
- * @param {number} time Time in seconds.
- * @private
- */
-cca.views.camera.RecordTime.prototype.update_ = function(time) {
-  // Format time into HH:MM:SS or MM:SS.
-  var pad = (n) => {
-    return (n < 10 ? '0' : '') + n;
-  };
-  var hh = '';
-  if (time >= 3600) {
-    hh = pad(Math.floor(time / 3600)) + ':';
-  }
-  var mm = pad(Math.floor(time / 60) % 60) + ':';
-  document.querySelector('#record-time-msg').textContent =
-      hh + mm + pad(time % 60);
-};
-
-/**
- * Starts to count and show the elapsed recording time.
- */
-cca.views.camera.RecordTime.prototype.start = function() {
-  this.update_(0);
-  this.recordTime_.hidden = false;
-
-  var ticks = 0;
-  this.tickTimeout_ = setInterval(() => {
-    ticks++;
-    this.update_(ticks);
-  }, 1000);
-};
-
-/**
- * Stops counting and showing the elapsed recording time.
- */
-cca.views.camera.RecordTime.prototype.stop = function() {
-  cca.toast.speak('statusMsgRecordingStopped');
-  if (this.tickTimeout_) {
-    clearInterval(this.tickTimeout_);
-    this.tickTimeout_ = null;
-  }
-  this.recordTime_.hidden = true;
-  this.update_(0);
-};
diff --git a/chrome/browser/resources/chromeos/camera/src/js/views/dialog.js b/chrome/browser/resources/chromeos/camera/src/js/views/dialog.js
deleted file mode 100644
index 679cab7..0000000
--- a/chrome/browser/resources/chromeos/camera/src/js/views/dialog.js
+++ /dev/null
@@ -1,69 +0,0 @@
-// Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-'use strict';
-
-/**
- * Namespace for the Camera app.
- */
-var cca = cca || {};
-
-/**
- * Namespace for views.
- */
-cca.views = cca.views || {};
-
-/**
- * Creates the Dialog view controller.
- * @extends {cca.views.View}
- * @constructor
- */
-cca.views.Dialog = function() {
-  cca.views.View.call(this, '#dialog', true);
-
-  /**
-   * @type {HTMLButtonElement}
-   * @private
-   */
-  this.positiveButton_ = document.querySelector('#dialog-positive-button');
-
-  /**
-   * @type {HTMLButtonElement}
-   * @private
-   */
-  this.negativeButton_ = document.querySelector('#dialog-negative-button');
-
-  /**
-   * @type {HTMLElement}
-   * @private
-   */
-  this.messageElement_ = document.querySelector('#dialog-msg');
-
-  // End of properties, seal the object.
-  Object.seal(this);
-
-  this.positiveButton_.addEventListener('click', () => this.leave(true));
-  this.negativeButton_.addEventListener('click', () => this.leave());
-};
-
-cca.views.Dialog.prototype = {
-  __proto__: cca.views.View.prototype,
-};
-
-/**
- * @param {string} message Message of the dialog.
- * @param {boolean} cancellable Whether the dialog is cancellable.
- * @override
- */
-cca.views.Dialog.prototype.entering = function(message, cancellable) {
-  this.messageElement_.textContent = message;
-  this.negativeButton_.hidden = !cancellable;
-};
-
-/**
- * @override
- */
-cca.views.Dialog.prototype.focus = function() {
-  this.positiveButton_.focus();
-};
diff --git a/chrome/browser/resources/chromeos/camera/src/js/views/gallery_base.js b/chrome/browser/resources/chromeos/camera/src/js/views/gallery_base.js
deleted file mode 100644
index 6503cbe..0000000
--- a/chrome/browser/resources/chromeos/camera/src/js/views/gallery_base.js
+++ /dev/null
@@ -1,303 +0,0 @@
-// Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-'use strict';
-
-/**
- * Namespace for the Camera app.
- */
-var cca = cca || {};
-
-/**
- * Namespace for views.
- */
-cca.views = cca.views || {};
-
-/**
- * Creates the Gallery Base view controller.
- * @param {string} selector Selector text of the view's root element.
- * @param {cca.models.Gallery} model Model object.
- * @extends {cca.views.View}
- * @implements {cca.models.Gallery.Observer}
- * @constructor
- */
-cca.views.GalleryBase = function(selector, model) {
-  cca.views.View.call(this, selector, true);
-
-  /**
-   * @type {cca.models.Gallery}
-   * @private
-   */
-  this.model_ = model;
-
-  /**
-   * Contains pictures' views.
-   * @type {Array<cca.views.GalleryBase.DOMPicture>}
-   * @protected
-   */
-  this.pictures = [];
-
-  /**
-   * Contains selected pictures' indexes sorted in the selection order.
-   * @type {Array<number>}
-   * @protected
-   */
-  this.selectedIndexes = [];
-};
-
-/**
- * Represents a picture attached to the DOM by combining the picture data
- * object with the DOM element.
- * @param {cca.models.Gallery.Picture} picture Picture data.
- * @param {HTMLImageElement} element DOM element holding the picture.
- * @constructor
- */
-cca.views.GalleryBase.DOMPicture = function(picture, element) {
-  /**
-   * @type {cca.models.Gallery.Picture}
-   * @private
-   */
-  this.picture_ = picture;
-
-  /**
-   * @type {HTMLElement}
-   * @private
-   */
-  this.element_ = element;
-
-  // End of properties. Seal the object.
-  Object.seal(this);
-};
-
-cca.views.GalleryBase.DOMPicture.prototype = {
-  get picture() {
-    return this.picture_;
-  },
-  get element() {
-    return this.element_;
-  },
-};
-
-cca.views.GalleryBase.prototype = {
-  __proto__: cca.views.View.prototype,
-};
-
-/**
- * Exports the selected pictures. If nothing selected, then nothing happens.
- * @protected
- */
-cca.views.GalleryBase.prototype.exportSelection = function() {
-  var selectedIndexes = this.selectedIndexes;
-  if (!selectedIndexes.length) {
-    return;
-  }
-  chrome.fileSystem.chooseEntry({type: 'openDirectory'}, (dirEntry) => {
-    if (!dirEntry) {
-      return;
-    }
-    this.selectedPictures().forEach((domPicture) => {
-      var picture = domPicture.picture;
-      // TODO(yuli): Use FileSystem.getFile_ to handle name conflicts.
-      dirEntry.getFile(
-          cca.models.FileSystem.regulatePictureName(picture.pictureEntry),
-          {create: true, exclusive: false}, (entry) => {
-            this.model_.exportPicture(picture, entry).catch((error) => {
-              console.error(error);
-              cca.toast.show(chrome.i18n.getMessage(
-                  'errorMsgGalleryExportFailed', entry.name));
-            });
-          });
-    });
-  });
-};
-
-/**
- * Deletes the currently selected pictures. If nothing selected, then nothing
- * happens.
- * @protected
- */
-cca.views.GalleryBase.prototype.deleteSelection = function() {
-  var selectedIndexes = this.selectedIndexes;
-  if (!selectedIndexes.length) {
-    return;
-  }
-  var multi = selectedIndexes.length > 1;
-  var param = multi ? selectedIndexes.length.toString() :
-      this.lastSelectedPicture().picture.pictureEntry.name;
-  var message = chrome.i18n.getMessage(
-      multi ? 'deleteMultiConfirmationMsg' : 'deleteConfirmationMsg', param);
-  cca.nav.open('dialog', message, true).then((confirmed) => {
-    if (!confirmed) {
-      return;
-    }
-    var selectedPictures = this.selectedPictures();
-    for (var i = selectedPictures.length - 1; i >= 0; i--) {
-      this.model_.deletePicture(selectedPictures[i].picture).catch((error) => {
-        console.error(error);
-        // TODO(yuli): Show a toast message here.
-      });
-    }
-  });
-};
-
-/**
- * Returns the last selected picture index from the current selections.
- * @return {?number}
- * @protected
- */
-cca.views.GalleryBase.prototype.lastSelectedIndex = function() {
-  var selectedIndexes = this.selectedIndexes;
-  if (!selectedIndexes.length) {
-    return null;
-  }
-  return selectedIndexes[selectedIndexes.length - 1];
-};
-
-/**
- * Returns the last selected picture from the current selections.
- * @return {cca.views.GalleryBase.DOMPicture}
- * @protected
- */
-cca.views.GalleryBase.prototype.lastSelectedPicture = function() {
-  var leadIndex = this.lastSelectedIndex();
-  return (leadIndex !== null) ? this.pictures[leadIndex] : null;
-};
-
-/**
- * Returns the currently selected picture views sorted in the added order.
- * @return {Array<cca.views.GalleryBase.DOMPicture>}
- * @protected
- */
-cca.views.GalleryBase.prototype.selectedPictures = function() {
-  var indexes = this.selectedIndexes.slice();
-  indexes.sort((a, b) => a - b);
-  return indexes.map((i) => this.pictures[i]);
-};
-
-/**
- * Returns the picture's index in the picture views.
- * @param {cca.models.Gallery.Picture} picture Picture to be indexed.
- * @return {?number}
- * @protected
- */
-cca.views.GalleryBase.prototype.pictureIndex = function(picture) {
-  for (var index = 0; index < this.pictures.length; index++) {
-    if (this.pictures[index].picture == picture) {
-      return index;
-    }
-  }
-  return null;
-};
-
-/**
- * Sets the selected index.
- * @param {number} index Index of the picture to be selected.
- * @protected
- */
-cca.views.GalleryBase.prototype.setSelectedIndex = function(index) {
-  var updateSelection = (element, select) => {
-    cca.nav.setTabIndex(this, element, select ? 0 : -1);
-    element.classList.toggle('selected', select);
-    element.setAttribute('aria-selected', select ? 'true' : 'false');
-  };
-  // Unselect selected pictures and select a new picture by the given index.
-  var selectedIndexes = this.selectedIndexes;
-  selectedIndexes.forEach((selectedIndex) => {
-    updateSelection(this.pictures[selectedIndex].element, false);
-  });
-  selectedIndexes.splice(0, selectedIndexes.length);
-
-  if (index !== null) {
-    updateSelection(this.pictures[index].element, true);
-    selectedIndexes.push(index);
-  }
-};
-
-/**
- * @override
- */
-cca.views.GalleryBase.prototype.onPictureDeleted = function(picture) {
-  var index = this.pictureIndex(picture);
-  if (index == null) {
-    return;
-  }
-
-  // Hack to restore focus after removing an element. Note, that we restore
-  // focus only if there was something focused before. However, if the focus
-  // was on the selected element, then after removing it from DOM, there will
-  // be nothing focused, while we still want to restore the focus.
-  var element = this.pictures[index].element;
-  element.parentNode.removeChild(element);
-  this.pictures.splice(index, 1);
-
-  // Update the selection if the deleted picture is selected.
-  var removal = this.selectedIndexes.indexOf(index);
-  if (removal != -1) {
-    this.selectedIndexes.splice(removal, 1);
-    for (var i = 0; i < this.selectedIndexes.length; i++) {
-      if (this.selectedIndexes[i] > index) {
-        this.selectedIndexes[i]--;
-      }
-    }
-  }
-  if (!this.selectedIndexes.length) {
-    if (this.pictures.length > 0) {
-      this.setSelectedIndex(Math.max(0, index - 1));
-    } else {
-      this.setSelectedIndex(null);
-      // Assume browser-view's picture-deletion only occurs when browser-view is
-      // active and don't need to handle inactive empty browser-view for now.
-      this.leave();
-    }
-  }
-};
-
-/**
- * @override
- */
-cca.views.GalleryBase.prototype.handlingKey = function(key) {
-  switch (key) {
-    case 'Delete':
-    case 'Meta-Backspace':
-      this.deleteSelection();
-      return true;
-    case 'Ctrl-S': // Ctrl+S for saving.
-      this.exportSelection();
-      return true;
-    case 'Ctrl-P': // Ctrl+P for printing.
-      window.print();
-      return true;
-  }
-  return false;
-};
-
-/**
- * @override
- */
-cca.views.GalleryBase.prototype.onPictureAdded = function(picture) {
-  this.addPictureToDOM(picture);
-};
-
-/**
- * Adds the picture to DOM.
- * @abstract
- * @param {cca.models.Gallery.Picture} picture Model's picture to be added.
- * @protected
- */
-cca.views.GalleryBase.prototype.addPictureToDOM = function(picture) {
-  throw new Error('Not implemented.');
-};
-
-/**
- * Synchronizes focus with the selection if the view is active.
- * @protected
- */
-cca.views.GalleryBase.prototype.synchronizeFocus = function() {
-  // Synchronize focus on the last selected picture.
-  var selectedPicture = this.lastSelectedPicture();
-  var element = selectedPicture && selectedPicture.element;
-  if (element && element.tabIndex >= 0) {
-    element.focus();
-  }
-};
diff --git a/chrome/browser/resources/chromeos/camera/src/js/views/settings.js b/chrome/browser/resources/chromeos/camera/src/js/views/settings.js
deleted file mode 100644
index 17e215a3..0000000
--- a/chrome/browser/resources/chromeos/camera/src/js/views/settings.js
+++ /dev/null
@@ -1,137 +0,0 @@
-// Copyright 2018 The Chromium OS Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-'use strict';
-
-/**
- * Namespace for the Camera app.
- */
-var cca = cca || {};
-
-/**
- * Namespace for views.
- */
-cca.views = cca.views || {};
-
-/**
- * Creates the base controller of settings view.
- * @param {string} selector Selector text of the view's root element.
- * @param {Object<string|function(Event=)>} itemHandlers Click-handlers
- *     mapped by element ids.
- * @extends {cca.views.View}
- * @constructor
- */
-cca.views.BaseSettings = function(selector, itemHandlers) {
-  cca.views.View.call(this, selector, true, true);
-
-  // End of properties, seal the object.
-  Object.seal(this);
-
-  this.root.querySelector('.menu-header button').addEventListener(
-      'click', () => this.leave());
-  this.root.querySelectorAll('.menu-item').forEach((element) => {
-    var handler = itemHandlers[element.id];
-    if (handler) {
-      element.addEventListener('click', handler);
-    }
-  });
-};
-
-cca.views.BaseSettings.prototype = {
-  __proto__: cca.views.View.prototype,
-};
-
-/**
- * Creates the controller of grid settings view.
- * @extends {cca.views.BaseSettings}
- * @constructor
- */
-cca.views.GridSettings = function() {
-  cca.views.BaseSettings.call(this, '#gridsettings', {});
-
-  // End of properties, seal the object.
-  Object.seal(this);
-};
-
-cca.views.GridSettings.prototype = {
-  __proto__: cca.views.BaseSettings.prototype,
-};
-
-/**
- * Creates the controller of timer settings view.
- * @extends {cca.views.BaseSettings}
- * @constructor
- */
-cca.views.TimerSettings = function() {
-  cca.views.BaseSettings.call(this, '#timersettings', {});
-
-  // End of properties, seal the object.
-  Object.seal(this);
-};
-
-cca.views.TimerSettings.prototype = {
-  __proto__: cca.views.BaseSettings.prototype,
-};
-
-/**
- * Creates the controller of master settings view.
- * @extends {cca.views.BaseSettings}
- * @constructor
- */
-cca.views.MasterSettings = function() {
-  cca.views.BaseSettings.call(this, '#settings', {
-    'settings-gridtype': () => this.openSubSettings('gridsettings'),
-    'settings-timerdur': () => this.openSubSettings('timersettings'),
-    'settings-feedback': () => this.openFeedback(),
-    'settings-help': () => this.openHelp_(),
-  });
-
-  // End of properties, seal the object.
-  Object.seal(this);
-
-  document.querySelector('#settings-feedback').hidden =
-      !cca.util.isChromeVersionAbove(72); // Feedback available since M72.
-};
-
-cca.views.MasterSettings.prototype = {
-  __proto__: cca.views.BaseSettings.prototype,
-};
-
-/**
- * Opens sub-settings.
- * @param {string} id Settings identifier.
- * @private
- */
-cca.views.MasterSettings.prototype.openSubSettings = function(id) {
-  // Dismiss master-settings if sub-settings was dimissed by background click.
-  cca.nav.open(id).then((cond) => cond && cond.bkgnd && this.leave());
-};
-
-/**
- * Opens feedback.
- * @private
- */
-cca.views.MasterSettings.prototype.openFeedback = function() {
-  var data = {
-    'categoryTag': 'chromeos-camera-app',
-    'requestFeedback': true,
-    'feedbackInfo': {
-      'description': '',
-      'systemInformation': [
-        {key: 'APP ID', value: chrome.runtime.id},
-        {key: 'APP VERSION', value: chrome.runtime.getManifest().version},
-      ],
-    },
-  };
-  const id = 'gfdkimpbcpahaombhbimeihdjnejgicl'; // Feedback extension id.
-  chrome.runtime.sendMessage(id, data);
-};
-
-/**
- * Opens help.
- * @private
- */
-cca.views.MasterSettings.prototype.openHelp_ = function() {
-  window.open('https://support.google.com/chromebook/answer/4487486');
-};
diff --git a/chrome/browser/resources/chromeos/camera/src/js/views/view.js b/chrome/browser/resources/chromeos/camera/src/js/views/view.js
deleted file mode 100644
index 0669eec5..0000000
--- a/chrome/browser/resources/chromeos/camera/src/js/views/view.js
+++ /dev/null
@@ -1,143 +0,0 @@
-// Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-'use strict';
-
-/**
- * Namespace for the Camera app.
- */
-var cca = cca || {};
-
-/**
- * Namespace for views.
- */
-cca.views = cca.views || {};
-
-/**
- * Base controller of a view for views' navigation sessions (cca.nav).
- * @param {string} selector Selector text of the view's root element.
- * @param {boolean=} dismissByEsc Enable dismissible by Esc-key.
- * @param {boolean=} dismissByBkgndClick Enable dismissible by background-click.
- * @constructor
- */
-cca.views.View = function(selector, dismissByEsc, dismissByBkgndClick) {
-  /**
-   * @type {HTMLElement}
-   * @private
-   */
-  this.rootElement_ = document.querySelector(selector);
-
-  /**
-   * @type {Promise<*>}
-   * @private
-   */
-  this.session_ = null;
-
-  /**
-   * @type {boolean}
-   * @private
-   */
-  this.dismissByEsc_ = dismissByEsc;
-
-  if (dismissByBkgndClick) {
-    this.rootElement_.addEventListener('click', (event) =>
-        event.target == this.rootElement_ && this.leave({bkgnd: true}));
-  }
-};
-
-cca.views.View.prototype = {
-  get root() {
-    return this.rootElement_;
-  },
-};
-
-/**
- * Hook of the subclass for handling the key.
- * @param {string} key Key to be handled.
- * @return {boolean} Whether the key has been handled or not.
- */
-cca.views.View.prototype.handlingKey = function(key) {
-  return false;
-};
-
-/**
- * Handles the pressed key.
- * @param {string} key Key to be handled.
- * @return {boolean} Whether the key has been handled or not.
- */
-cca.views.View.prototype.onKeyPressed = function(key) {
-  if (this.handlingKey(key)) {
-    return true;
-  } else if (key == 'Ctrl-V') {
-    cca.toast.show(chrome.runtime.getManifest().version);
-    return true;
-  } else if (this.dismissByEsc_ && key == 'Escape') {
-    this.leave();
-    return true;
-  }
-  return false;
-};
-
-/**
- * Focuses the default element on the view if applicable.
- */
-cca.views.View.prototype.focus = function() {
-};
-
-/**
- * Layouts the view.
- */
-cca.views.View.prototype.layout = function() {
-};
-
-/**
- * Hook of the subclass for entering the view.
- * @param {...*} args Optional rest parameters for entering the view.
- */
-cca.views.View.prototype.entering = function(...args) {
-};
-
-/**
- * Enters the view.
- * @param {...*} args Optional rest parameters for entering the view.
- * @return {!Promise<*>} Promise for the navigation session.
- */
-cca.views.View.prototype.enter = function(...args) {
-  // The session is started by entering the view and ended by leaving the view.
-  if (!this.session_) {
-    var end;
-    this.session_ = new Promise((resolve) => {
-      end = resolve;
-    });
-    this.session_.end = (result) => {
-      end(result);
-    };
-  }
-  this.entering(...args);
-  return this.session_;
-};
-
-/**
- * Hook of the subclass for leaving the view.
- * @param {*=} condition Optional condition for leaving the view.
- * @return {boolean} Whether able to leaving the view or not.
- */
-cca.views.View.prototype.leaving = function(condition) {
-  return true;
-};
-
-/**
- * Leaves the view.
- * @param {*=} condition Optional condition for leaving the view and also as the
- *     result for the ended session.
- * @return {boolean} Whether able to leaving the view or not.
- */
-cca.views.View.prototype.leave = function(condition) {
-  if (this.session_ && this.leaving(condition)) {
-    this.session_.end(condition);
-    this.session_ = null;
-    return true;
-  }
-  return false;
-};
diff --git a/chrome/browser/resources/chromeos/camera/src/js/views/warning.js b/chrome/browser/resources/chromeos/camera/src/js/views/warning.js
deleted file mode 100644
index 7eb2ee8..0000000
--- a/chrome/browser/resources/chromeos/camera/src/js/views/warning.js
+++ /dev/null
@@ -1,89 +0,0 @@
-// Copyright 2018 The Chromium OS Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-'use strict';
-
-/**
- * Namespace for the Camera app.
- */
-var cca = cca || {};
-
-/**
- * Namespace for views.
- */
-cca.views = cca.views || {};
-
-/**
- * Creates the warning-view controller.
- * @extends {cca.views.View}
- * @constructor
- */
-cca.views.Warning = function() {
-  cca.views.View.call(this, '#warning');
-
-  /**
-   * @type {Array<string>}
-   * @private
-   */
-  this.errorNames_ = [];
-
-  // End of properties, seal the object.
-  Object.seal(this);
-};
-
-cca.views.Warning.prototype = {
-  __proto__: cca.views.View.prototype,
-};
-
-/**
- * Updates the error message for the latest error-name in the stack.
- * @private
- */
-cca.views.Warning.prototype.updateMessage_ = function() {
-  var message = '';
-  switch (this.errorNames_[this.errorNames_.length - 1]) {
-    case 'no-camera':
-      message = 'errorMsgNoCamera';
-      break;
-    case 'filesystem-failure':
-      message = 'errorMsgFileSystemFailed';
-      break;
-  }
-  document.querySelector('#error-msg').textContent =
-      chrome.i18n.getMessage(message);
-};
-
-/**
- * @param {string} name Name of the error.
- * @override
- */
-cca.views.Warning.prototype.entering = function(name) {
-  // Remove the error-name from the stack to avoid duplication. Then make the
-  // error-name the latest one to show its message.
-  var index = this.errorNames_.indexOf(name);
-  if (index != -1) {
-    this.errorNames_.splice(index, 1);
-  }
-  this.errorNames_.push(name);
-  this.updateMessage_();
-};
-
-/**
- * @param {string} name Recovered error-name for leaving the view.
- * @override
- */
-cca.views.Warning.prototype.leaving = function(name) {
-  // Remove the recovered error from the stack but don't leave the view until
-  // there is no error left in the stack.
-  var index = this.errorNames_.indexOf(name);
-  if (index != -1) {
-    this.errorNames_.splice(index, 1);
-  }
-  if (this.errorNames_.length) {
-    this.updateMessage_();
-    return false;
-  }
-  document.querySelector('#error-msg').textContent = '';
-  return true;
-};
diff --git a/chrome/browser/resources/chromeos/camera/src/manifest.json b/chrome/browser/resources/chromeos/camera/src/manifest.json
deleted file mode 100644
index 221569f..0000000
--- a/chrome/browser/resources/chromeos/camera/src/manifest.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
-  "manifest_version": 2,
-  "name": "__MSG_name__",
-  "description": "__MSG_description__",
-  "version": "5.2.6",
-  "default_locale": "en",
-  "minimum_chrome_version": "60.0.0.0",
-  "icons": {
-    "48": "images/camera_app_icons_48.png",
-    "128": "images/camera_app_icons_128.png"
-  },
-  "permissions": [
-    "videoCapture",
-    "audioCapture",
-    "storage",
-    "unlimitedStorage",
-    "idle",
-    "chromeosInfoPrivate",
-    "fileManagerPrivate",
-    "fileSystem.requestDownloads",
-    {"fileSystem": ["write", "directory"]}
-  ],
-  "app": {
-    "background": {
-      "scripts": ["js/background.js"]
-    }
-  }
-}
diff --git a/chrome/browser/resources/chromeos/camera/src/sounds/record_end.ogg b/chrome/browser/resources/chromeos/camera/src/sounds/record_end.ogg
deleted file mode 100644
index ba904c0c..0000000
--- a/chrome/browser/resources/chromeos/camera/src/sounds/record_end.ogg
+++ /dev/null
Binary files differ
diff --git a/chrome/browser/resources/chromeos/camera/src/sounds/record_start.ogg b/chrome/browser/resources/chromeos/camera/src/sounds/record_start.ogg
deleted file mode 100644
index d67f4fd..0000000
--- a/chrome/browser/resources/chromeos/camera/src/sounds/record_start.ogg
+++ /dev/null
Binary files differ
diff --git a/chrome/browser/resources/chromeos/camera/src/sounds/shutter.ogg b/chrome/browser/resources/chromeos/camera/src/sounds/shutter.ogg
deleted file mode 100644
index 9980bf5e..0000000
--- a/chrome/browser/resources/chromeos/camera/src/sounds/shutter.ogg
+++ /dev/null
Binary files differ
diff --git a/chrome/browser/resources/chromeos/camera/src/sounds/tick.ogg b/chrome/browser/resources/chromeos/camera/src/sounds/tick.ogg
deleted file mode 100644
index 2f1f63a..0000000
--- a/chrome/browser/resources/chromeos/camera/src/sounds/tick.ogg
+++ /dev/null
Binary files differ
diff --git a/chrome/browser/resources/chromeos/camera/src/views/main.html b/chrome/browser/resources/chromeos/camera/src/views/main.html
deleted file mode 100644
index af4dd2f3..0000000
--- a/chrome/browser/resources/chromeos/camera/src/views/main.html
+++ /dev/null
@@ -1,204 +0,0 @@
-<!doctype html>
-<html>
-  <head>
-    <!-- Set the title to an empty value, which will be replaced by a localized
-         name by JavaScript -->
-    <title>&#xfeff;</title>
-    <meta charset="utf-8">
-    <link rel="stylesheet" href="../css/main.css">
-    <script src="../js/util.js"></script>
-    <script src="../js/toast.js"></script>
-    <script src="../js/tooltip.js"></script>
-    <script src="../js/scrollbar.js"></script>
-    <script src="../js/models/gallery.js"></script>
-    <script src="../js/models/file_system.js"></script>
-    <script src="../js/views/view.js"></script>
-    <script src="../js/views/gallery_base.js"></script>
-    <script src="../js/views/camera.js"></script>
-    <script src="../js/views/camera/gallerybutton.js"></script>
-    <script src="../js/views/camera/layout.js"></script>
-    <script src="../js/views/camera/options.js"></script>
-    <script src="../js/views/camera/preview.js"></script>
-    <script src="../js/views/camera/recordtime.js"></script>
-    <script src="../js/views/dialog.js"></script>
-    <script src="../js/views/browser.js"></script>
-    <script src="../js/views/settings.js"></script>
-    <script src="../js/views/warning.js"></script>
-    <script src="../js/nav.js"></script>
-    <script src="../js/main.js"></script>
-  </head>
-  <body class="mirror mic _3x3">
-    <div id="camera">
-      <div id="preview-wrapper" aria-hidden="true">
-        <video id="preview-video"></video>
-        <div id="preview-grid">
-          <div id="preview-grid-horizontal"></div>
-          <div id="preview-grid-vertical"></div>
-        </div>
-        <div id="preview-focus">
-          <object id="preview-focus-aim" type="image/svg+xml"
-                  data="../images/camera_focus_aim.svg"
-                  tabindex="-1" hidden></object>
-        </div>
-      </div>
-      <div class="actions-group buttons circle">
-        <button id="switch-takephoto" disabled tabindex="0"
-                i18n-label="switchTakePhotoButton"></button>
-        <button id="shutter" disabled tabindex="0"
-                i18n-label="takePhotoButton"></button>
-        <button id="switch-recordvideo" disabled tabindex="0"
-                i18n-label="switchRecordVideoButton"></button>
-      </div>
-      <div class="top-stripe right-stripe buttons">
-        <input type="checkbox" id="toggle-mic" tabindex="0"
-               i18n-label="toggleMicButton" data-css="mic" data-key="toggleMic"
-               checked>
-      </div>
-      <div class="top-stripe left-stripe buttons">
-        <button id="open-settings" tabindex="0"
-                i18n-label="settingsButton" aria-haspopup="true"></button>
-      </div>
-      <div class="left-stripe options-group buttons">
-        <input type="checkbox" id="toggle-mirror" tabindex="0"
-               i18n-label="toggleMirrorButton" data-css="mirror" checked>
-        <input type="checkbox" id="toggle-grid" tabindex="0"
-               i18n-label="toggleGridButton" data-css="grid"
-               data-key="toggleGrid">
-        <input type="checkbox" id="toggle-timer" tabindex="0"
-               i18n-label="toggleTimerButton" data-css="timer"
-               data-key="toggleTimer">
-      </div>
-      <div class="bottom-stripe left-stripe buttons circle">
-        <button id="switch-device" disabled tabindex="0"
-                i18n-label="switchCameraButton"></button>
-      </div>
-      <div class="bottom-stripe right-stripe buttons circle">
-        <button id="gallery-enter" disabled tabindex="0"
-                i18n-label="galleryButton" hidden></button>
-      </div>
-      <div class="top-stripe" id="record-time" hidden>
-        <div class="icon"></div>
-        <div id="record-time-msg"></div>
-      </div>
-      <div class="centered-overlay">
-        <div id="timer-tick-msg"></div>
-      </div>
-      <div class="centered-overlay" id="camera-mode"></div>
-    </div>
-    <div id="settings">
-      <div class="menu">
-        <div class="menu-header circle">
-          <button class="icon" tabindex="0" i18n-aria="backButton"></button>
-          <div role="menu" i18n-content="settingsButton"></div>
-        </div>
-        <button class="menu-item circle" id="settings-gridtype" tabindex="0"
-                aria-describedby="gridtype-desc">
-          <div class="icon"></div>
-          <div>
-            <div i18n-content="gridTypeButton"></div>
-            <div class="description" id="gridtype-desc" aria-hidden="true">
-              <span i18n-content="labelGrid3x3" i18n-aria="ariaGrid3x3"></span>
-              <span i18n-content="labelGrid4x4" i18n-aria="ariaGrid4x4"></span>
-              <span i18n-content="labelGridGolden"></span>
-            </div>
-          </div>
-          <div class="icon end"></div>
-        </button>
-        <button class="menu-item circle" id="settings-timerdur" tabindex="0"
-                aria-describedby="timerdur-desc">
-          <div class="icon"></div>
-          <div>
-            <div i18n-content="timerDurationButton"></div>
-            <div class="description" id="timerdur-desc" aria-hidden="true">
-              <span i18n-content="labelTimer3s"></span>
-              <span i18n-content="labelTimer10s"></span>
-            </div>
-          </div>
-          <div class="icon end"></div>
-        </button>
-        <button class="menu-item circle" id="settings-feedback" tabindex="0">
-          <div class="icon"></div>
-          <div i18n-content="feedbackButton"></div>
-        </button>
-        <button class="menu-item circle" id="settings-help" tabindex="0">
-          <div class="icon"></div>
-          <div i18n-content="helpButton"></div>
-        </button>
-      </div>
-    </div>
-    <div id="gridsettings">
-      <div class="menu">
-        <div class="menu-header circle">
-          <button class="icon" tabindex="0" i18n-aria="backButton"></button>
-          <div role="menu" i18n-content="gridTypeButton"></div>
-        </div>
-        <label class="menu-item circle" for="grid-3x3">
-          <input class="icon" id="grid-3x3" type="radio" tabindex="0"
-                 name="gridtype" data-css="_3x3" data-key="toggle3x3" checked>
-          <span i18n-content="labelGrid3x3" i18n-aria="ariaGrid3x3"></span>
-        </label>
-        <label class="menu-item circle" for="grid-4x4">
-          <input class="icon" id="grid-4x4" type="radio" tabindex="0"
-                 name="gridtype" data-css="_4x4" data-key="toggle4x4">
-          <span i18n-content="labelGrid4x4" i18n-aria="ariaGrid4x4"></span>
-        </label>
-        <label class="menu-item circle" for="grid-golden">
-          <input class="icon" id="grid-golden" type="radio" tabindex="0"
-                 name="gridtype" data-css="golden" data-key="toggleGolden">
-          <span i18n-content="labelGridGolden"></span>
-        </label>
-      </div>
-    </div>
-    <div id="timersettings">
-      <div class="menu">
-        <div class="menu-header circle">
-          <button class="icon" tabindex="0" i18n-aria="backButton"></button>
-          <div role="menu" i18n-content="timerDurationButton"></div>
-        </div>
-        <label class="menu-item circle" for="timer-3s">
-          <input class="icon" id="timer-3s" type="radio" tabindex="0"
-                 name="timerdur" data-css="_3sec" data-key="toggle3sec" checked>
-          <span i18n-content="labelTimer3s"></span>
-        </label>
-        <label class="menu-item circle" for="timer-10s">
-          <input class="icon" id="timer-10s" type="radio" tabindex="0"
-                 name="timerdur" data-css="_10sec" data-key="toggle10sec">
-          <span i18n-content="labelTimer10s"></span>
-        </label>
-      </div>
-    </div>
-    <div class="centered-overlay" id="spinner"></div>
-    <div id="browser" role="listbox" i18n-aria="galleryImages">
-      <div class="padder">
-        <div class="bounds-padder"></div>
-        <div class="bounds-padder"></div>
-      </div>
-      <div class="buttons">
-        <button id="browser-back" tabindex="0"
-                i18n-label="backButton"></button>
-        <button id="browser-print" disabled tabindex="0"
-                i18n-label="printButton"></button>
-        <button id="browser-export" disabled tabindex="0"
-                i18n-label="exportButton"></button>
-        <button id="browser-delete" disabled tabindex="0"
-                i18n-label="deleteButton"></button>
-      </div>
-    </div>
-    <div id="warning">
-      <div id="error-msg" aria-live="polite"></div>
-    </div>
-    <div id="dialog">
-      <div id="dialog-popup" role="dialog" aria-labelledby="dialog-msg">
-        <div id="dialog-msg"></div>
-        <div id="dialog-buttons">
-          <button id="dialog-negative-button" tabindex="0"
-                  i18n-content="dialogCancelButton"></button>
-          <button id="dialog-positive-button" tabindex="0"
-                  i18n-content="dialogOKButton"></button>
-        </div>
-      </div>
-    </div>
-    <div class="centered-overlay" id="toast" aria-live="polite"></div>
-    <div id="tooltip" aria-hidden="true"></div>
-  </body>
-</html>
diff --git a/chrome/browser/resources/chromeos/camera/utils/canary/images/camera_app_icons_128.png b/chrome/browser/resources/chromeos/camera/utils/canary/images/camera_app_icons_128.png
deleted file mode 100644
index 0a77ed0..0000000
--- a/chrome/browser/resources/chromeos/camera/utils/canary/images/camera_app_icons_128.png
+++ /dev/null
Binary files differ
diff --git a/chrome/browser/resources/chromeos/camera/utils/canary/images/camera_app_icons_48.png b/chrome/browser/resources/chromeos/camera/utils/canary/images/camera_app_icons_48.png
deleted file mode 100644
index fdf5e25..0000000
--- a/chrome/browser/resources/chromeos/camera/utils/canary/images/camera_app_icons_48.png
+++ /dev/null
Binary files differ
diff --git a/chrome/browser/resources/chromeos/camera/utils/dev/images/camera_app_icons_128.png b/chrome/browser/resources/chromeos/camera/utils/dev/images/camera_app_icons_128.png
deleted file mode 100644
index 97557c6..0000000
--- a/chrome/browser/resources/chromeos/camera/utils/dev/images/camera_app_icons_128.png
+++ /dev/null
Binary files differ
diff --git a/chrome/browser/resources/chromeos/camera/utils/dev/images/camera_app_icons_48.png b/chrome/browser/resources/chromeos/camera/utils/dev/images/camera_app_icons_48.png
deleted file mode 100644
index 04d1dcfb..0000000
--- a/chrome/browser/resources/chromeos/camera/utils/dev/images/camera_app_icons_48.png
+++ /dev/null
Binary files differ
diff --git a/chrome/browser/resources/chromeos/camera/utils/generate_manifest.py b/chrome/browser/resources/chromeos/camera/utils/generate_manifest.py
deleted file mode 100755
index 771c1b55..0000000
--- a/chrome/browser/resources/chromeos/camera/utils/generate_manifest.py
+++ /dev/null
@@ -1,58 +0,0 @@
-#!/usr/bin/env python
-# Copyright 2018 The Chromium OS Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-"""Generates a new manifest.json for Canary, Dev builds with postfixed name and
-git hash included.
-
-This script takes a manifest.json file as input and generates a new one with
-postfixed name and git hash included.
-"""
-
-import argparse
-import json
-import os
-import subprocess
-import sys
-
-
-CWD = os.path.dirname(os.path.realpath(__file__))
-
-SRC_MANIFEST = CWD + '/../src/manifest.json'
-CANARY_MANIFEST = CWD + '/../build/camera-canary/manifest.json'
-DEV_MANIFEST = CWD + '/../build/camera-dev/manifest.json'
-
-
-def GetGitHash():
-  return subprocess.check_output(['git', 'rev-parse', 'HEAD'], cwd=CWD).strip()
-
-
-def main(argv):
-  parser = argparse.ArgumentParser()
-  group = parser.add_mutually_exclusive_group(required=True)
-  group.add_argument('--canary',
-                     action='store_true',
-                     help='Generate Canary manifest')
-  group.add_argument('--dev',
-                     action='store_true',
-                     help='Generate Dev manifest')
-  args = parser.parse_args(argv)
-
-  with open(SRC_MANIFEST, 'r') as f:
-    manifest = json.load(f)
-
-  if args.canary:
-    output_manifest = CANARY_MANIFEST
-  elif args.dev:
-    output_manifest = DEV_MANIFEST
-
-  manifest['version_name'] = (manifest['version'] +
-                                ' (' + GetGitHash()[:8] + ')')
-  with open(output_manifest, 'w') as f:
-    f.write(json.dumps(manifest, indent=2))
-  return 0
-
-
-if __name__ == '__main__':
-  sys.exit(main(sys.argv[1:]))
diff --git a/chrome/browser/resources/chromeos/camera/utils/update_locales.py b/chrome/browser/resources/chromeos/camera/utils/update_locales.py
deleted file mode 100644
index 5d20c64..0000000
--- a/chrome/browser/resources/chromeos/camera/utils/update_locales.py
+++ /dev/null
@@ -1,102 +0,0 @@
-"""Generated JSON for translations, and merges translated files.
-
-  Typical usage:
-
-  update_locales --generate > messages.json
-  update_locales --merge dir_with_translations
-"""
-
-import argparse
-from collections import OrderedDict
-import json
-import os
-
-LOCALE_DIR = os.path.relpath('../src/_locales', os.path.dirname(
-    os.path.realpath(__file__)))
-
-
-def load_lang(path, lang):
-  messages = None
-  with open('%s/%s/messages.json' % (path, lang)) as json_file:
-    messages = json.load(json_file, object_pairs_hook=OrderedDict)
-  return messages
-
-
-def save_lang(path, lang, messages):
-  with open('%s/%s/messages.json' % (path, lang), 'w') as json_file:
-    json_file.write(json.dumps(messages, ensure_ascii=False, indent=2,
-                               separators=(',', ': ')).encode('utf8'))
-
-
-def list_locales(path):
-  return os.listdir(path)
-
-
-def generate():
-  """Generates a JSON with untranslated entries to stdout."""
-  locales = list_locales(LOCALE_DIR)
-  reference = load_lang(LOCALE_DIR, 'en')
-  missing = {}
-  for locale in locales:
-    messages = load_lang(LOCALE_DIR, locale)
-    for key in reference:
-      if key not in messages.keys():
-        if key not in missing.keys():
-          missing[key] = reference[key]
-  print json.dumps(missing, indent=4)
-
-
-def to_chrome_locale(locale):
-  """Converts locale codes to Chrome compatible ones."""
-  if locale == 'iw':
-    return 'he'
-  return locale.replace('-', '_')
-
-
-def merge(translation_dir):
-  """Merges translated locales in the passed dir with existing ones."""
-  translated_locales = list_locales(translation_dir)
-  locales = list_locales(LOCALE_DIR)
-  done = []
-
-  for locale in translated_locales:
-    source = load_lang(translation_dir, locale)
-    chrome_locale = to_chrome_locale(locale)
-    try:
-      target = load_lang(LOCALE_DIR, chrome_locale)
-    except IOError:
-      print '"Locale not recognized: %s' % locale
-      continue
-
-    target.update(source)
-    save_lang(LOCALE_DIR, chrome_locale, target)
-    done.append(chrome_locale)
-
-  for locale in locales:
-    if locale not in done:
-      print 'Translations for locale %s not found.' % locale
-
-
-def main():
-  parser = argparse.ArgumentParser(
-      description='Generates and merges translations.')
-  parser.add_argument('--generate', action='store_true',
-                      help='Outputs JSON with missing translations.')
-  parser.add_argument(
-      '--merge', help='Merges translated files with existing translations.')
-  args = parser.parse_args()
-
-  if args.generate:
-    generate()
-    return
-
-  if args.merge is not None:
-    merge(args.merge)
-    return
-
-  parser.print_help()
-
-
-if __name__ == '__main__':
-  main()
-