Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(508)

Unified Diff: ui/file_manager/file_manager/foreground/css/file_types.css

Issue 645853013: Remove some platform specific stuff from views. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ui/file_manager/file_manager/foreground/css/file_types.css
diff --git a/ui/file_manager/file_manager/foreground/css/file_types.css b/ui/file_manager/file_manager/foreground/css/file_types.css
deleted file mode 100644
index b2461c07d4ce81a62a96d4f2ca6bdfdf1b6b71de..0000000000000000000000000000000000000000
--- a/ui/file_manager/file_manager/foreground/css/file_types.css
+++ /dev/null
@@ -1,515 +0,0 @@
-/* Copyright (c) 2012 The Chromium Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file. */
-
-/* Small icons for file types, used in lists and menus. */
-[file-type-icon] {
- background-image: -webkit-image-set(
- url('chrome://theme/IDR_FILETYPE_GENERIC') 1x,
- url('chrome://theme/IDR_FILETYPE_GENERIC@2x') 2x);
- background-position: center;
- background-repeat: no-repeat;
- background-size: 16px 16px;
-}
-
-tree:focus .tree-item[selected] > .tree-row > [file-type-icon],
-list:focus [selected] [file-type-icon],
-list.autocomplete-suggestions [selected] [file-type-icon] {
- background-image: -webkit-image-set(
- url('chrome://theme/IDR_FILETYPE_GENERIC_WHITE') 1x,
- url('chrome://theme/IDR_FILETYPE_GENERIC_WHITE@2x') 2x);
-}
-
-[file-type-icon='archive'] {
- background-image: -webkit-image-set(
- url('chrome://theme/IDR_FILETYPE_ARCHIVE') 1x,
- url('chrome://theme/IDR_FILETYPE_ARCHIVE@2x') 2x);
-}
-
-tree:focus .tree-item[selected] > .tree-row > [file-type-icon='archive'],
-list:focus [selected] [file-type-icon='archive'],
-list.autocomplete-suggestions [selected] [file-type-icon='archive'] {
- background-image: -webkit-image-set(
- url('chrome://theme/IDR_FILETYPE_ARCHIVE_WHITE') 1x,
- url('chrome://theme/IDR_FILETYPE_ARCHIVE_WHITE@2x') 2x);
-}
-
-[file-type-icon='audio'] {
- background-image: -webkit-image-set(
- url('chrome://theme/IDR_FILETYPE_AUDIO') 1x,
- url('chrome://theme/IDR_FILETYPE_AUDIO@2x') 2x);
-}
-
-tree:focus .tree-item[selected] > .tree-row > [file-type-icon='audio'],
-list:focus [selected] [file-type-icon='audio'],
-list.autocomplete-suggestions [selected] [file-type-icon='audio'] {
- background-image: -webkit-image-set(
- url('chrome://theme/IDR_FILETYPE_AUDIO_WHITE') 1x,
- url('chrome://theme/IDR_FILETYPE_AUDIO_WHITE@2x') 2x);
-}
-
-[file-type-icon='excel'] {
- background-image: -webkit-image-set(
- url('chrome://theme/IDR_FILETYPE_EXCEL') 1x,
- url('chrome://theme/IDR_FILETYPE_EXCEL@2x') 2x);
-}
-
-tree:focus .tree-item[selected] > .tree-row > [file-type-icon='excel'],
-list:focus [selected] [file-type-icon='excel'],
-list.autocomplete-suggestions [selected] [file-type-icon='excel'] {
- background-image: -webkit-image-set(
- url('chrome://theme/IDR_FILETYPE_EXCEL_WHITE') 1x,
- url('chrome://theme/IDR_FILETYPE_EXCEL_WHITE@2x') 2x);
-}
-
-[file-type-icon='folder'] {
- background-image: -webkit-image-set(
- url('chrome://theme/IDR_FILETYPE_FOLDER') 1x,
- url('chrome://theme/IDR_FILETYPE_FOLDER@2x') 2x);
-}
-
-.shared[file-type-icon='folder'] {
- background-image: -webkit-image-set(
- url('chrome://theme/IDR_FILETYPE_FOLDER_SHARED') 1x,
- url('chrome://theme/IDR_FILETYPE_FOLDER_SHARED@2x') 2x);
-}
-
-tree:focus .tree-item[selected] > .tree-row > .shared[file-type-icon='folder'],
-list:focus [selected] .shared[file-type-icon='folder'],
-list.autocomplete-suggestions [selected] .shared[file-type-icon='folder'] {
- background-image: -webkit-image-set(
- url('chrome://theme/IDR_FILETYPE_FOLDER_SHARED_WHITE') 1x,
- url('chrome://theme/IDR_FILETYPE_FOLDER_SHARED_WHITE@2x') 2x);
-}
-
-tree:focus .tree-item[selected] > .tree-row > [file-type-icon='folder'],
-list:focus [selected] [file-type-icon='folder'],
-list.autocomplete-suggestions [selected] [file-type-icon='folder'] {
- background-image: -webkit-image-set(
- url('chrome://theme/IDR_FILETYPE_FOLDER_WHITE') 1x,
- url('chrome://theme/IDR_FILETYPE_FOLDER_WHITE@2x') 2x);
-}
-
-[file-type-icon='form'] {
- background-image: -webkit-image-set(
- url('chrome://theme/IDR_FILETYPE_FORM') 1x,
- url('chrome://theme/IDR_FILETYPE_FORM@2x') 2x);
-}
-
-tree:focus .tree-item[selected] > .tree-row > [file-type-icon='form'],
-list:focus [selected] [file-type-icon='form'],
-list.autocomplete-suggestions [selected] [file-type-icon='form'] {
- background-image: -webkit-image-set(
- url('chrome://theme/IDR_FILETYPE_FORM_WHITE') 1x,
- url('chrome://theme/IDR_FILETYPE_FORM_WHITE@2x') 2x);
-}
-
-[file-type-icon='gdoc'] {
- background-image: -webkit-image-set(
- url('chrome://theme/IDR_FILETYPE_GDOC') 1x,
- url('chrome://theme/IDR_FILETYPE_GDOC@2x') 2x);
-}
-
-tree:focus .tree-item[selected] > .tree-row > [file-type-icon='gdoc'],
-list:focus [selected] [file-type-icon='gdoc'],
-list.autocomplete-suggestions [selected] [file-type-icon='gdoc'] {
- background-image: -webkit-image-set(
- url('chrome://theme/IDR_FILETYPE_GDOC_WHITE') 1x,
- url('chrome://theme/IDR_FILETYPE_GDOC_WHITE@2x') 2x);
-}
-
-[file-type-icon='gdraw'] {
- background-image: -webkit-image-set(
- url('chrome://theme/IDR_FILETYPE_GDRAW') 1x,
- url('chrome://theme/IDR_FILETYPE_GDRAW@2x') 2x);
-}
-
-tree:focus .tree-item[selected] > .tree-row > [file-type-icon='gdraw'],
-list:focus [selected] [file-type-icon='gdraw'],
-list.autocomplete-suggestions [selected] [file-type-icon='gdraw'] {
- background-image: -webkit-image-set(
- url('chrome://theme/IDR_FILETYPE_GDRAW_WHITE') 1x,
- url('chrome://theme/IDR_FILETYPE_GDRAW_WHITE@2x') 2x);
-}
-
-[file-type-icon='glink'] {
- background-image: -webkit-image-set(
- url('chrome://theme/IDR_FILETYPE_GLINK') 1x,
- url('chrome://theme/IDR_FILETYPE_GLINK@2x') 2x);
-}
-
-tree:focus .tree-item[selected] > .tree-row > [file-type-icon='glink'],
-list:focus [selected] [file-type-icon='glink'],
-list.autocomplete-suggestions [selected] [file-type-icon='glink'] {
- background-image: -webkit-image-set(
- url('chrome://theme/IDR_FILETYPE_GLINK_WHITE') 1x,
- url('chrome://theme/IDR_FILETYPE_GLINK_WHITE@2x') 2x);
-}
-
-[file-type-icon='gsheet'] {
- background-image: -webkit-image-set(
- url('chrome://theme/IDR_FILETYPE_GSHEET') 1x,
- url('chrome://theme/IDR_FILETYPE_GSHEET@2x') 2x);
-}
-
-tree:focus .tree-item[selected] > .tree-row > [file-type-icon='gsheet'],
-list:focus [selected] [file-type-icon='gsheet'],
-list.autocomplete-suggestions [selected] [file-type-icon='gsheet'] {
- background-image: -webkit-image-set(
- url('chrome://theme/IDR_FILETYPE_GSHEET_WHITE') 1x,
- url('chrome://theme/IDR_FILETYPE_GSHEET_WHITE@2x') 2x);
-}
-
-[file-type-icon='gslides'] {
- background-image: -webkit-image-set(
- url('chrome://theme/IDR_FILETYPE_GSLIDES') 1x,
- url('chrome://theme/IDR_FILETYPE_GSLIDES@2x') 2x);
-}
-
-tree:focus .tree-item[selected] > .tree-row > [file-type-icon='gslides'],
-list:focus [selected] [file-type-icon='gslides'],
-list.autocomplete-suggestions [selected] [file-type-icon='gslides'] {
- background-image: -webkit-image-set(
- url('chrome://theme/IDR_FILETYPE_GSLIDES_WHITE') 1x,
- url('chrome://theme/IDR_FILETYPE_GSLIDES_WHITE@2x') 2x);
-}
-
-[file-type-icon='gtable'] {
- background-image: -webkit-image-set(
- url('chrome://theme/IDR_FILETYPE_GTABLE') 1x,
- url('chrome://theme/IDR_FILETYPE_GTABLE@2x') 2x);
-}
-
-tree:focus .tree-item[selected] > .tree-row > [file-type-icon='gtable'],
-list:focus [selected] [file-type-icon='gtable'],
-list.autocomplete-suggestions [selected] [file-type-icon='gtable'] {
- background-image: -webkit-image-set(
- url('chrome://theme/IDR_FILETYPE_GTABLE_WHITE') 1x,
- url('chrome://theme/IDR_FILETYPE_GTABLE_WHITE@2x') 2x);
-}
-
-[file-type-icon='gform'] {
- background-image: -webkit-image-set(
- url('chrome://theme/IDR_FILETYPE_FORM') 1x,
- url('chrome://theme/IDR_FILETYPE_FORM@2x') 2x);
-}
-
-tree:focus .tree-item[selected] > .tree-row > [file-type-icon='gform'],
-list:focus [selected] [file-type-icon='gform'],
-list.autocomplete-suggestions [selected] [file-type-icon='gform'] {
- background-image: -webkit-image-set(
- url('chrome://theme/IDR_FILETYPE_FORM_WHITE') 1x,
- url('chrome://theme/IDR_FILETYPE_FORM_WHITE@2x') 2x);
-}
-
-[file-type-icon='image'] {
- background-image: -webkit-image-set(
- url('chrome://theme/IDR_FILETYPE_IMAGE') 1x,
- url('chrome://theme/IDR_FILETYPE_IMAGE@2x') 2x);
-}
-
-tree:focus .tree-item[selected] > .tree-row > [file-type-icon='image'],
-list:focus [selected] [file-type-icon='image'],
-list.autocomplete-suggestions [selected] [file-type-icon='image'] {
- background-image: -webkit-image-set(
- url('chrome://theme/IDR_FILETYPE_IMAGE_WHITE') 1x,
- url('chrome://theme/IDR_FILETYPE_IMAGE_WHITE@2x') 2x);
-}
-
-[file-type-icon='pdf'] {
- background-image: -webkit-image-set(
- url('chrome://theme/IDR_FILETYPE_PDF') 1x,
- url('chrome://theme/IDR_FILETYPE_PDF@2x') 2x);
-}
-
-tree:focus .tree-item[selected] > .tree-row > [file-type-icon='pdf'],
-list:focus [selected] [file-type-icon='pdf'],
-list.autocomplete-suggestions [selected] [file-type-icon='pdf'] {
- background-image: -webkit-image-set(
- url('chrome://theme/IDR_FILETYPE_PDF_WHITE') 1x,
- url('chrome://theme/IDR_FILETYPE_PDF_WHITE@2x') 2x);
-}
-
-[file-type-icon='ppt'] {
- background-image: -webkit-image-set(
- url('chrome://theme/IDR_FILETYPE_PPT') 1x,
- url('chrome://theme/IDR_FILETYPE_PPT@2x') 2x);
-}
-
-tree:focus .tree-item[selected] > .tree-row > [file-type-icon='ppt'],
-list:focus [selected] [file-type-icon='ppt'],
-list.autocomplete-suggestions [selected] [file-type-icon='ppt'] {
- background-image: -webkit-image-set(
- url('chrome://theme/IDR_FILETYPE_PPT_WHITE') 1x,
- url('chrome://theme/IDR_FILETYPE_PPT_WHITE@2x') 2x);
-}
-
-[file-type-icon='script'] {
- background-image: -webkit-image-set(
- url('chrome://theme/IDR_FILETYPE_SCRIPT') 1x,
- url('chrome://theme/IDR_FILETYPE_SCRIPT@2x') 2x);
-}
-
-tree:focus .tree-item[selected] > .tree-row > [file-type-icon='script'],
-list:focus [selected] [file-type-icon='script'],
-list.autocomplete-suggestions [selected] [file-type-icon='script'] {
- background-image: -webkit-image-set(
- url('chrome://theme/IDR_FILETYPE_SCRIPT_WHITE') 1x,
- url('chrome://theme/IDR_FILETYPE_SCRIPT_WHITE@2x') 2x);
-}
-
-[file-type-icon='sites'] {
- background-image: -webkit-image-set(
- url('chrome://theme/IDR_FILETYPE_SITES') 1x,
- url('chrome://theme/IDR_FILETYPE_SITES@2x') 2x);
-}
-
-tree:focus .tree-item[selected] > .tree-row > [file-type-icon='sites'],
-list:focus [selected] [file-type-icon='sites'],
-list.autocomplete-suggestions [selected] [file-type-icon='sites'] {
- background-image: -webkit-image-set(
- url('chrome://theme/IDR_FILETYPE_SITES_WHITE') 1x,
- url('chrome://theme/IDR_FILETYPE_SITES_WHITE@2x') 2x);
-}
-
-[file-type-icon='video'] {
- background-image: -webkit-image-set(
- url('chrome://theme/IDR_FILETYPE_VIDEO') 1x,
- url('chrome://theme/IDR_FILETYPE_VIDEO@2x') 2x);
-}
-
-tree:focus .tree-item[selected] > .tree-row > [file-type-icon='video'],
-list:focus [selected] [file-type-icon='video'],
-list.autocomplete-suggestions [selected] [file-type-icon='video'] {
- background-image: -webkit-image-set(
- url('chrome://theme/IDR_FILETYPE_VIDEO_WHITE') 1x,
- url('chrome://theme/IDR_FILETYPE_VIDEO_WHITE@2x') 2x);
-}
-
-[file-type-icon='word'] {
- background-image: -webkit-image-set(
- url('chrome://theme/IDR_FILETYPE_WORD') 1x,
- url('chrome://theme/IDR_FILETYPE_WORD@2x') 2x);
-}
-
-tree:focus .tree-item[selected] > .tree-row > [file-type-icon='word'],
-list:focus [selected] [file-type-icon='word'],
-list.autocomplete-suggestions [selected] [file-type-icon='word'] {
- background-image: -webkit-image-set(
- url('chrome://theme/IDR_FILETYPE_WORD_WHITE') 1x,
- url('chrome://theme/IDR_FILETYPE_WORD_WHITE@2x') 2x);
-}
-
-[file-type-icon='drive'] {
- background-image: -webkit-image-set(
- url('chrome://theme/IDR_FILETYPE_DRIVE') 1x,
- url('chrome://theme/IDR_FILETYPE_DRIVE@2x') 2x);
-}
-
-/* Large generic thumbnails, used when a file does not have a thumbnail. */
-[generic-thumbnail] {
- background-image: -webkit-image-set(
- url('chrome://theme/IDR_FILETYPE_LARGE_GENERIC') 1x,
- url('chrome://theme/IDR_FILETYPE_LARGE_GENERIC@2x') 2x);
- background-position: center center;
- background-repeat: no-repeat;
-}
-
-[generic-thumbnail='audio'] {
- background-image: -webkit-image-set(
- url('chrome://theme/IDR_FILETYPE_LARGE_AUDIO') 1x,
- url('chrome://theme/IDR_FILETYPE_LARGE_AUDIO@2x') 2x);
-}
-
-[generic-thumbnail='folder'] {
- background-image: -webkit-image-set(
- url('chrome://theme/IDR_FILETYPE_LARGE_FOLDER') 1x,
- url('chrome://theme/IDR_FILETYPE_LARGE_FOLDER@2x') 2x);
-}
-
-.shared[generic-thumbnail='folder'] {
- background-image: -webkit-image-set(
- url('chrome://theme/IDR_FILETYPE_LARGE_FOLDER_SHARED') 1x,
- url('chrome://theme/IDR_FILETYPE_LARGE_FOLDER_SHARED@2x') 2x);
-}
-
-[generic-thumbnail='image'] {
- background-image: -webkit-image-set(
- url('chrome://theme/IDR_FILETYPE_LARGE_IMAGE') 1x,
- url('chrome://theme/IDR_FILETYPE_LARGE_IMAGE@2x') 2x);
-}
-
-[generic-thumbnail='video'] {
- background-image: -webkit-image-set(
- url('chrome://theme/IDR_FILETYPE_LARGE_VIDEO') 1x,
- url('chrome://theme/IDR_FILETYPE_LARGE_VIDEO@2x') 2x);
-}
-
-/* Icons for volume types. */
-
-[volume-type-icon='archive'] {
- background-position: center 2px;
- background-image: -webkit-image-set(
- url('../images/volumes/black_archive.png') 1x,
- url('../images/volumes/2x/black_archive.png') 2x);
-}
-
-list:focus li[selected] [volume-type-icon='archive'],
-tree:focus .tree-item[selected] > .tree-row > [volume-type-icon='archive'] {
- background-image: -webkit-image-set(
- url('../images/volumes/white_archive.png') 1x,
- url('../images/volumes/2x/white_archive.png') 2x);
-}
-
-[volume-type-icon='downloads'] {
- background-position: center 2px;
- background-image: -webkit-image-set(
- url('../images/volumes/black_downloads.png') 1x,
- url('../images/volumes/2x/black_downloads.png') 2x);
-}
-
-list:focus li[selected] [volume-type-icon='downloads'],
-tree:focus .tree-item[selected] > .tree-row > [volume-type-icon='downloads'] {
- background-image: -webkit-image-set(
- url('../images/volumes/white_downloads.png') 1x,
- url('../images/volumes/2x/white_downloads.png') 2x);
-}
-
-[volume-type-icon='drive'] {
- background-position: center 2px;
- background-image: -webkit-image-set(
- url('../images/volumes/black_drive.png') 1x,
- url('../images/volumes/2x/black_drive.png') 2x);
-}
-
-list:focus li[selected] [volume-type-icon='drive'],
-tree:focus .tree-item[selected] > .tree-row > [volume-type-icon='drive'] {
- background-image: -webkit-image-set(
- url('../images/volumes/white_drive.png') 1x,
- url('../images/volumes/2x/white_drive.png') 2x);
-}
-
-[volume-type-icon='drive_offline'] {
- background-position: center 2px;
- background-image: -webkit-image-set(
- url('../images/volumes/black_offline.png') 1x,
- url('../images/volumes/2x/black_offline.png') 2x);
-}
-
-list:focus li[selected] [volume-type-icon='drive_offline'],
-tree:focus .tree-item[selected] > .tree-row >
- [volume-type-icon='drive_offline'] {
- background-image: -webkit-image-set(
- url('../images/volumes/white_offline.png') 1x,
- url('../images/volumes/2x/white_offline.png') 2x);
-}
-
-[volume-type-icon='drive_shared_with_me'] {
- background-position: center 2px;
- background-image: -webkit-image-set(
- url('../images/volumes/black_shared.png') 1x,
- url('../images/volumes/2x/black_shared.png') 2x);
-}
-
-list:focus li[selected] [volume-type-icon='drive_shared_with_me'],
-tree:focus .tree-item[selected] > .tree-row >
- [volume-type-icon='drive_shared_with_me'] {
- background-image: -webkit-image-set(
- url('../images/volumes/white_shared.png') 1x,
- url('../images/volumes/2x/white_shared.png') 2x);
-}
-
-[volume-type-icon='drive_recent'] {
- background-position: center 2px;
- background-image: -webkit-image-set(
- url('../images/volumes/black_recent.png') 1x,
- url('../images/volumes/2x/black_recent.png') 2x);
-}
-
-list:focus li[selected] [volume-type-icon='drive_recent'],
-tree:focus .tree-item[selected] > .tree-row >
- [volume-type-icon='drive_recent'] {
- background-image: -webkit-image-set(
- url('../images/volumes/white_recent.png') 1x,
- url('../images/volumes/2x/white_recent.png') 2x);
-}
-
-[volume-type-icon='removable'] {
- background-position: center 2px;
- background-image: -webkit-image-set(
- url('../images/volumes/black_usb.png') 1x,
- url('../images/volumes/2x/black_usb.png') 2x);
-}
-
-list:focus li[selected] [volume-type-icon='removable'],
-tree:focus .tree-item[selected] > .tree-row >
- [volume-type-icon='removable'] {
- background-image: -webkit-image-set(
- url('../images/volumes/white_usb.png') 1x,
- url('../images/volumes/2x/white_usb.png') 2x);
-}
-
-[volume-type-icon='removable'][volume-subtype='sd'] {
- background-position: center 2px;
- background-image: -webkit-image-set(
- url('../images/volumes/black_sd.png') 1x,
- url('../images/volumes/2x/black_sd.png') 2x);
-}
-
-list:focus li[selected] [volume-type-icon='removable'][volume-subtype='sd'],
-tree:focus .tree-item[selected] > .tree-row >
- [volume-type-icon='removable'][volume-subtype='sd'] {
- background-image: -webkit-image-set(
- url('../images/volumes/white_sd.png') 1x,
- url('../images/volumes/2x/white_sd.png') 2x);
-}
-
-[volume-type-icon='removable'][volume-subtype='optical'] {
- background-position: center 2px;
- background-image: -webkit-image-set(
- url('../images/volumes/black_optical.png') 1x,
- url('../images/volumes/2x/black_optical.png') 2x);
-}
-
-list:focus li[selected]
- [volume-type-icon='removable'][volume-subtype='optical'],
-tree:focus .tree-item[selected] > .tree-row >
- [volume-type-icon='removable'][volume-subtype='optical'] {
- background-image: -webkit-image-set(
- url('../images/volumes/white_optical.png') 1x,
- url('../images/volumes/2x/white_optical.png') 2x);
-}
-
-[volume-type-icon='mtp'] {
- background-position: center 2px;
- background-image: -webkit-image-set(
- url('../images/volumes/black_phone.png') 1x,
- url('../images/volumes/2x/black_phone.png') 2x);
-}
-
-list:focus li[selected] [volume-type-icon='mtp'],
-tree:focus .tree-item[selected] > .tree-row > [volume-type-icon='mtp'] {
- background-image: -webkit-image-set(
- url('../images/volumes/white_phone.png') 1x,
- url('../images/volumes/2x/white_phone.png') 2x);
-}
-
-[volume-type-icon='removable'][volume-subtype='unknown'] {
- background-image: -webkit-image-set(
- url('../images/volumes/black_hdd.png') 1x,
- url('../images/volumes/2x/black_hdd.png') 2x);
-}
-
-list:focus li[selected]
- [volume-type-icon='removable'][volume-subtype='unknown'],
-tree:focus .tree-item[selected] > .tree-row >
- [volume-type-icon='removable'][volume-subtype='unknown'] {
- background-image: -webkit-image-set(
- url('../images/volumes/white_hdd.png') 1x,
- url('../images/volumes/2x/white_hdd.png') 2x);
-}
-
-list:focus li[selected] [volume-type-icon='provided'],
-tree:focus .tree-item[selected] > .tree-row > [volume-type-icon='provided']{
- -webkit-filter: invert(100%) grayscale(100%) brightness(200%);
-}
« no previous file with comments | « ui/file_manager/file_manager/foreground/css/file_manager.css ('k') | ui/file_manager/file_manager/foreground/css/list.css » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698