├── scripts ├── build.sh └── build.js ├── images ├── check.png ├── 2x │ ├── check.png │ ├── delete.png │ ├── search.png │ ├── select.png │ ├── settings.png │ ├── search_clear.png │ ├── search_clear_active.png │ └── search_clear_hover.png ├── delete.png ├── icon-128.png ├── icon-16.png ├── icon-32.png ├── icon-48.png ├── search.png ├── select.png ├── settings.png ├── arrow_less.png ├── arrow_more.png ├── search_clear.png ├── search_clear_hover.png ├── search_clear_active.png └── chromium │ ├── close_dialog.png │ ├── 2x │ ├── close_dialog.png │ ├── close_dialog_hover.png │ └── close_dialog_pressed.png │ ├── close_dialog_hover.png │ ├── close_dialog_pressed.png │ ├── extension_error_severity_info.png │ ├── extension_error_severity_fatal.png │ └── extension_error_severity_warning.png ├── js ├── main_scripts.js ├── chromium_compatibility.js ├── chromium │ ├── assert.js │ ├── focus_outline_manager.js │ ├── alert_overlay.js │ ├── uber_utils.js │ ├── overlay.js │ ├── i18n_template_no_process.js │ ├── extension_error.js │ ├── tabs.js │ ├── ui.js │ ├── util.js │ ├── cr.js │ └── extension_error_overlay.js ├── main.js ├── activity_group.js ├── activity_group_list.js ├── pack_item_overlay.js ├── items.js └── activity.js ├── css ├── chromium │ ├── alert_overlay.css │ ├── trash.css │ ├── extension_error_overlay.css │ ├── extension_error.css │ ├── chrome_shared.css │ ├── tabs.css │ ├── overlay.css │ ├── uber_shared.css │ └── widgets.css ├── pack_item_overlay.css ├── extension_error.css ├── extension_error_overlay.css ├── behavior_overlay.css └── items.css ├── README.md ├── background.js ├── manifest.json ├── LICENSE └── main.html /scripts/build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | node build.js 3 | -------------------------------------------------------------------------------- /images/check.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/apps-developer-tools/HEAD/images/check.png -------------------------------------------------------------------------------- /images/2x/check.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/apps-developer-tools/HEAD/images/2x/check.png -------------------------------------------------------------------------------- /images/delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/apps-developer-tools/HEAD/images/delete.png -------------------------------------------------------------------------------- /images/icon-128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/apps-developer-tools/HEAD/images/icon-128.png -------------------------------------------------------------------------------- /images/icon-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/apps-developer-tools/HEAD/images/icon-16.png -------------------------------------------------------------------------------- /images/icon-32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/apps-developer-tools/HEAD/images/icon-32.png -------------------------------------------------------------------------------- /images/icon-48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/apps-developer-tools/HEAD/images/icon-48.png -------------------------------------------------------------------------------- /images/search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/apps-developer-tools/HEAD/images/search.png -------------------------------------------------------------------------------- /images/select.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/apps-developer-tools/HEAD/images/select.png -------------------------------------------------------------------------------- /images/settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/apps-developer-tools/HEAD/images/settings.png -------------------------------------------------------------------------------- /images/2x/delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/apps-developer-tools/HEAD/images/2x/delete.png -------------------------------------------------------------------------------- /images/2x/search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/apps-developer-tools/HEAD/images/2x/search.png -------------------------------------------------------------------------------- /images/2x/select.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/apps-developer-tools/HEAD/images/2x/select.png -------------------------------------------------------------------------------- /images/arrow_less.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/apps-developer-tools/HEAD/images/arrow_less.png -------------------------------------------------------------------------------- /images/arrow_more.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/apps-developer-tools/HEAD/images/arrow_more.png -------------------------------------------------------------------------------- /images/2x/settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/apps-developer-tools/HEAD/images/2x/settings.png -------------------------------------------------------------------------------- /images/search_clear.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/apps-developer-tools/HEAD/images/search_clear.png -------------------------------------------------------------------------------- /images/2x/search_clear.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/apps-developer-tools/HEAD/images/2x/search_clear.png -------------------------------------------------------------------------------- /images/search_clear_hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/apps-developer-tools/HEAD/images/search_clear_hover.png -------------------------------------------------------------------------------- /images/search_clear_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/apps-developer-tools/HEAD/images/search_clear_active.png -------------------------------------------------------------------------------- /images/2x/search_clear_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/apps-developer-tools/HEAD/images/2x/search_clear_active.png -------------------------------------------------------------------------------- /images/2x/search_clear_hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/apps-developer-tools/HEAD/images/2x/search_clear_hover.png -------------------------------------------------------------------------------- /images/chromium/close_dialog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/apps-developer-tools/HEAD/images/chromium/close_dialog.png -------------------------------------------------------------------------------- /images/chromium/2x/close_dialog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/apps-developer-tools/HEAD/images/chromium/2x/close_dialog.png -------------------------------------------------------------------------------- /images/chromium/close_dialog_hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/apps-developer-tools/HEAD/images/chromium/close_dialog_hover.png -------------------------------------------------------------------------------- /images/chromium/2x/close_dialog_hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/apps-developer-tools/HEAD/images/chromium/2x/close_dialog_hover.png -------------------------------------------------------------------------------- /images/chromium/close_dialog_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/apps-developer-tools/HEAD/images/chromium/close_dialog_pressed.png -------------------------------------------------------------------------------- /images/chromium/2x/close_dialog_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/apps-developer-tools/HEAD/images/chromium/2x/close_dialog_pressed.png -------------------------------------------------------------------------------- /images/chromium/extension_error_severity_info.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/apps-developer-tools/HEAD/images/chromium/extension_error_severity_info.png -------------------------------------------------------------------------------- /images/chromium/extension_error_severity_fatal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/apps-developer-tools/HEAD/images/chromium/extension_error_severity_fatal.png -------------------------------------------------------------------------------- /images/chromium/extension_error_severity_warning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/apps-developer-tools/HEAD/images/chromium/extension_error_severity_warning.png -------------------------------------------------------------------------------- /js/main_scripts.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | -------------------------------------------------------------------------------- /css/chromium/alert_overlay.css: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2013 The Chromium Authors. All rights reserved. 2 | * Use of this source code is governed by a BSD-style license that can be 3 | * found in the LICENSE file. */ 4 | 5 | #alertOverlay { 6 | width: 500px; 7 | } 8 | 9 | #alertOverlayMessage { 10 | white-space: pre-wrap; 11 | word-wrap: break-word; 12 | } 13 | -------------------------------------------------------------------------------- /css/pack_item_overlay.css: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2014 The Chromium Authors. All rights reserved. 2 | * Use of this source code is governed by a BSD-style license that can be 3 | * found in the LICENSE file. */ 4 | 5 | .pack-item-heading { 6 | padding-bottom: 5px; 7 | width: 520px; 8 | } 9 | 10 | .pack-item-text-boxes { 11 | text-align: end; 12 | } 13 | 14 | .pack-item-text-area { 15 | width: 260px; 16 | } 17 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Chrome Apps & Extensions Developer Tool 2 | ======================================= 3 | 4 | Develop and Debug Chrome Apps & Extensions. 5 | The Chrome Apps & Extensions Developer Tool helps developers build and debug Chrome Apps and Extensions. 6 | 7 | The features include: 8 | 9 | - Separate view for unpacked apps/extensions 10 | - Inspect views for inspecting app/extension pages using dev tools 11 | - Reload an app/extension 12 | - Launch an app/extension 13 | - View permissions 14 | - Pack an app/extension 15 | - Uninstall an app/extension 16 | - Load an unpacked app/extension 17 | - Search for app/extension 18 | -------------------------------------------------------------------------------- /background.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | chrome.app.runtime.onLaunched.addListener(function() { 6 | var screenWidth = screen.availWidth; 7 | var screenHeight = screen.availHeight; 8 | var width = 800; 9 | var height = 600; 10 | 11 | chrome.app.window.create('main.html', { 12 | id: 'apps_devtool', 13 | minWidth: 800, 14 | minHeight: 600, 15 | width: width, 16 | height: height, 17 | left: Math.floor((screenWidth - width) / 2), 18 | top : Math.floor((screenHeight - height) / 2), 19 | }); 20 | }); 21 | -------------------------------------------------------------------------------- /js/chromium_compatibility.js: -------------------------------------------------------------------------------- 1 | // Copyright 2014 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | // This file contains necessary substitutions for chrome tools which are not 6 | // present in the Apps Developer Tools code. For instance, the loadTimeData 7 | // module is used in the chromium .js files to get an internationalized string, 8 | // but here we must use chrome.i18n.getMessage(). Use this as the preferred 9 | // workaround to altering the chromium files, so that we can update the 10 | // chromium resources via a simple copy and paste. 11 | 12 | var loadTimeData = {'getString': function(id) { 13 | return chrome.i18n.getMessage(id); 14 | }}; 15 | -------------------------------------------------------------------------------- /js/chromium/assert.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | /** 6 | * @fileoverview Assertion support. 7 | */ 8 | 9 | /** 10 | * Simple common assertion API 11 | * @param {*} condition The condition to test. Note that this may be used to 12 | * test whether a value is defined or not, and we don't want to force a 13 | * cast to Boolean. 14 | * @param {string=} opt_message A message to use in any error. 15 | */ 16 | function assert(condition, opt_message) { 17 | 'use strict'; 18 | if (!condition) { 19 | var msg = 'Assertion failed'; 20 | if (opt_message) 21 | msg = msg + ': ' + opt_message; 22 | throw new Error(msg); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /css/extension_error.css: -------------------------------------------------------------------------------- 1 | /* Copyright 2014 The Chromium Authors. All rights reserved. 2 | * Use of this source code is governed by a BSD-style license that can be 3 | * found in the LICENSE file. */ 4 | 5 | /* This file is used to override CSS settings from the chromium version of the 6 | * same name (so that the chromium version in this repository can stay in sync 7 | * with the version in chromium). */ 8 | 9 | .extension-error-severity-info .extension-error-icon { 10 | content: url('../images/chromium/extension_error_severity_info.png'); 11 | } 12 | 13 | .extension-error-severity-warning .extension-error-icon { 14 | content: url('../images/chromium/extension_error_severity_warning.png'); 15 | } 16 | 17 | .extension-error-severity-fatal .extension-error-icon { 18 | content: url('../images/chromium/extension_error_severity_fatal.png'); 19 | } 20 | -------------------------------------------------------------------------------- /css/extension_error_overlay.css: -------------------------------------------------------------------------------- 1 | /* Copyright 2014 The Chromium Authors. All rights reserved. 2 | * Use of this source code is governed by a BSD-style license that can be 3 | * found in the LICENSE file. */ 4 | 5 | /* This file is used to override CSS settings from the chromium version of the 6 | * same name (so that the chromium version in this repository can stay in sync 7 | * with the version in chromium). */ 8 | 9 | #extension-error-overlay { 10 | max-width: 90%; 11 | max-height: 90% !important; 12 | } 13 | 14 | #extension-error-overlay .button-strip { 15 | -webkit-box-direction: reverse; 16 | } 17 | 18 | #extension-error-overlay h1 { 19 | font-size: 1.3em !important; 20 | } 21 | 22 | #extension-error-overlay-code { 23 | font-size: 0.9em; 24 | } 25 | 26 | #extension-error-overlay .content-area, 27 | #extension-error-overlay .action-area { 28 | margin-top: 20px !important; 29 | } 30 | -------------------------------------------------------------------------------- /manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Chrome Apps & Extensions Developer Tool", 3 | "description": "Develop and Debug Chrome Apps & Extensions.", 4 | "manifest_version": 2, 5 | "version": "0.1.17", 6 | "app": { 7 | "background": { 8 | "scripts": [ 9 | "background.js" 10 | ] 11 | } 12 | }, 13 | "permissions": [ 14 | "management", 15 | "developerPrivate", 16 | "activityLogPrivate" 17 | ], 18 | "icons": { 19 | "16": "images/icon-16.png", 20 | "32": "images/icon-32.png", 21 | "48": "images/icon-48.png", 22 | "128": "images/icon-128.png" 23 | }, 24 | "default_locale": "en", 25 | "minimum_chrome_version": "31.0.1650.8", 26 | "key": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDdTTWp0WWTp4XU15/xCchl4x4ZvG31cx/VT567UDgMLUL/+8j+3w3C87UJemJ3I5x81XJv8lhK3eIxR05H59UFsW9C70/hZCQeOhi5Uutl1gAlG4xsJAX9EQjFmmKsN88wmfZvxNPlu0WoxtHxjXKogRfk+wujanMyXnmhHaDrvwIDAQAB" 27 | } -------------------------------------------------------------------------------- /js/main.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | /** @const */ var ItemList = apps_dev_tool.ItemsList; 6 | 7 | document.addEventListener('DOMContentLoaded', function() { 8 | apps_dev_tool.AppsDevTool.initStrings(); 9 | $('search').addEventListener('input', ItemList.onSearchInput); 10 | ItemList.loadItemsInfo(); 11 | }); 12 | 13 | var appsDevTool = new apps_dev_tool.AppsDevTool(); 14 | 15 | window.addEventListener('load', function(e) { 16 | appsDevTool.initialize(); 17 | }); 18 | 19 | chrome.management.onInstalled.addListener(function(info) { 20 | ItemList.loadItemsInfo(function() { 21 | ItemList.makeUnpackedExtensionVisible(info.id); 22 | }); 23 | }); 24 | chrome.management.onUninstalled.addListener(function() { 25 | ItemList.loadItemsInfo(); 26 | }); 27 | 28 | chrome.developerPrivate.onItemStateChanged.addListener(function(response) { 29 | ItemList.loadItemsInfo(); 30 | }); 31 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2013 The Chromium Authors. All rights reserved. 2 | 3 | Redistribution and use in source and binary forms, with or without modification, 4 | are permitted provided that the following conditions are met: 5 | 6 | * Redistributions of source code must retain the above copyright notice, this 7 | list of conditions and the following disclaimer. 8 | * Redistributions in binary form must reproduce the above copyright notice, 9 | this list of conditions and the following disclaimer in the documentation 10 | and/or other materials provided with the distribution. 11 | * Neither the name of Google Inc. nor the names of itscontributors may be used 12 | to endorse or promote products derived from this software without specific 13 | prior written permission. 14 | 15 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 16 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 17 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 18 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR 19 | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 20 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 21 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 22 | ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 23 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USEOF THIS 24 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- /css/chromium/trash.css: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2013 The Chromium Authors. All rights reserved. 2 | * Use of this source code is governed by a BSD-style license that can be 3 | * found in the LICENSE file. */ 4 | 5 | .trash { 6 | -webkit-appearance: none; 7 | background: none; 8 | border: none; 9 | cursor: pointer; 10 | display: inline-block; 11 | outline: none; 12 | padding: 0; 13 | position: relative; 14 | width: 30px; 15 | } 16 | 17 | .trash > span { 18 | display: inline-block; 19 | } 20 | 21 | .trash > .can, 22 | .trash > .lid { 23 | background: url('chrome://resources/images/trash.png') 0 0 no-repeat; 24 | left: 8px; 25 | position: absolute; 26 | right: 8px; 27 | top: 2px; 28 | } 29 | 30 | .trash > .lid { 31 | -webkit-transform-origin: -7% 100%; 32 | -webkit-transition: -webkit-transform 150ms; 33 | height: 6px; 34 | width: 14px; 35 | } 36 | 37 | html[dir='rtl'] .trash > .lid { 38 | -webkit-transform-origin: 107% 100%; 39 | } 40 | 41 | .trash:focus > .lid, 42 | .trash:hover > .lid { 43 | -webkit-transform: rotate(-45deg); 44 | -webkit-transition: -webkit-transform 250ms; 45 | } 46 | 47 | html[dir='rtl'] .trash:focus > .lid, 48 | html[dir='rtl'] .trash:hover > .lid { 49 | -webkit-transform: rotate(45deg); 50 | } 51 | 52 | .trash > .can { 53 | background-position: -1px -4px; 54 | height: 12px; 55 | /* The margins match the background position offsets. */ 56 | margin-left: 1px; 57 | /* The right margin is one greater due to a shadow on the trash image. */ 58 | margin-right: 2px; 59 | margin-top: 4px; 60 | width: 11px; 61 | } 62 | -------------------------------------------------------------------------------- /css/chromium/extension_error_overlay.css: -------------------------------------------------------------------------------- 1 | /* Copyright 2013 The Chromium Authors. All rights reserved. 2 | * Use of this source code is governed by a BSD-style license that can be 3 | * found in the LICENSE file. */ 4 | 5 | #extension-error-overlay .content-area { 6 | display: flex; 7 | flex-direction: column; 8 | } 9 | 10 | .extension-error-overlay-runtime-content { 11 | flex: none; 12 | } 13 | 14 | #extension-error-overlay .highlighted-source { 15 | background-color: rgba(255, 195, 200, 255); 16 | } 17 | 18 | #extension-error-overlay-code { 19 | -webkit-margin-after: 10px; 20 | border: 1px solid #ccc; 21 | font-family: monospace; 22 | font-size: 1.2em; 23 | overflow: auto; 24 | padding: 10px; 25 | } 26 | 27 | .extension-error-overlay-context { 28 | -webkit-margin-after: 10px; 29 | font-size: 1.1em; 30 | } 31 | 32 | .extension-error-overlay-stack-trace-list { 33 | list-style-type: none; 34 | padding: 0; 35 | } 36 | 37 | .extension-error-overlay-stack-trace summary { 38 | cursor: pointer; 39 | font-size: 1.1em; 40 | outline: none; 41 | } 42 | 43 | .extension-error-overlay-stack-trace summary::-webkit-details-marker { 44 | font-size: 1em; 45 | } 46 | 47 | .extension-error-overlay-stack-trace-list li { 48 | -webkit-padding-after: 6px; 49 | -webkit-padding-before: 6px; 50 | -webkit-padding-start: 10px; 51 | background-color: white; 52 | cursor: pointer; 53 | } 54 | 55 | .extension-error-overlay-stack-trace-list li:hover { 56 | background-color: #eee; 57 | } 58 | 59 | .extension-error-overlay-stack-trace-list li.extension-error-active { 60 | background-color: rgba(0, 100, 255, 0.1); 61 | } 62 | -------------------------------------------------------------------------------- /css/chromium/extension_error.css: -------------------------------------------------------------------------------- 1 | /* Copyright 2013 The Chromium Authors. All rights reserved. 2 | * Use of this source code is governed by a BSD-style license that can be 3 | * found in the LICENSE file. */ 4 | 5 | .extension-error-list a { 6 | cursor: pointer; 7 | } 8 | 9 | .extension-error-list ul { 10 | list-style-type: none; 11 | } 12 | 13 | .extension-error-list-contents { 14 | -webkit-padding-start: 20px; 15 | } 16 | 17 | .extension-error-list-show-more { 18 | text-align: center; 19 | width: 100%; 20 | } 21 | 22 | .extension-error-metadata { 23 | display: flex; 24 | flex-direction: row; 25 | width: 100%; 26 | } 27 | 28 | .extension-error-icon { 29 | -webkit-margin-end: 3px; 30 | -webkit-margin-start: 3px; 31 | height: 15px; 32 | vertical-align: middle; 33 | width: 15px; 34 | } 35 | 36 | .extension-error-message { 37 | flex: 1; 38 | overflow: hidden; 39 | text-overflow: ellipsis; 40 | vertical-align: middle; 41 | white-space: nowrap; 42 | } 43 | 44 | .extension-error-severity-info .extension-error-message { 45 | color: #333; 46 | } 47 | .extension-error-severity-info .extension-error-icon { 48 | content: url('extension_error_severity_info.png'); 49 | } 50 | 51 | .extension-error-severity-warning .extension-error-message { 52 | color: rgba(250, 145, 0, 255); 53 | } 54 | .extension-error-severity-warning .extension-error-icon { 55 | content: url('extension_error_severity_warning.png'); 56 | } 57 | 58 | .extension-error-severity-fatal .extension-error-message { 59 | color: rgba(200, 50, 50, 255); 60 | } 61 | .extension-error-severity-fatal .extension-error-icon { 62 | content: url('extension_error_severity_fatal.png'); 63 | } 64 | -------------------------------------------------------------------------------- /css/chromium/chrome_shared.css: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2013 The Chromium Authors. All rights reserved. 2 | * Use of this source code is governed by a BSD-style license that can be 3 | * found in the LICENSE file. */ 4 | 5 | /* This file holds CSS that should be shared, in theory, by all user-visible 6 | * chrome:// pages. */ 7 | 8 | @import url("widgets.css"); 9 | /* Prevent CSS from overriding the hidden property. */ 10 | [hidden] { 11 | display: none !important; 12 | } 13 | 14 | html.loading * { 15 | -webkit-transition-delay: 0 !important; 16 | -webkit-transition-duration: 0 !important; 17 | } 18 | 19 | body { 20 | cursor: default; 21 | margin: 0; 22 | } 23 | 24 | p { 25 | line-height: 1.8em; 26 | } 27 | 28 | h1, 29 | h2, 30 | h3 { 31 | -webkit-user-select: none; 32 | font-weight: normal; 33 | /* Makes the vertical size of the text the same for all fonts. */ 34 | line-height: 1; 35 | } 36 | 37 | h1 { 38 | font-size: 1.5em; 39 | } 40 | 41 | h2 { 42 | font-size: 1.3em; 43 | margin-bottom: 0.4em; 44 | } 45 | 46 | h3 { 47 | color: black; 48 | font-size: 1.2em; 49 | margin-bottom: 0.8em; 50 | } 51 | 52 | a { 53 | color: rgb(17, 85, 204); 54 | text-decoration: underline; 55 | } 56 | 57 | a:active { 58 | color: rgb(5, 37, 119); 59 | } 60 | 61 | /* Elements that need to be LTR even in an RTL context, but should align 62 | * right. (Namely, URLs, search engine names, etc.) 63 | */ 64 | html[dir='rtl'] .weakrtl { 65 | direction: ltr; 66 | text-align: right; 67 | } 68 | 69 | /* Input fields in search engine table need to be weak-rtl. Since those input 70 | * fields are generated for all cr.ListItem elements (and we only want weakrtl 71 | * on some), the class needs to be on the enclosing div. 72 | */ 73 | html[dir='rtl'] div.weakrtl input { 74 | direction: ltr; 75 | text-align: right; 76 | } 77 | 78 | html[dir='rtl'] .favicon-cell.weakrtl { 79 | -webkit-padding-end: 22px; 80 | -webkit-padding-start: 0; 81 | } 82 | 83 | /* weakrtl for selection drop downs needs to account for the fact that 84 | * Webkit does not honor the text-align attribute for the select element. 85 | * (See Webkit bug #40216) 86 | */ 87 | html[dir='rtl'] select.weakrtl { 88 | direction: rtl; 89 | } 90 | 91 | html[dir='rtl'] select.weakrtl option { 92 | direction: ltr; 93 | } 94 | 95 | /* WebKit does not honor alignment for text specified via placeholder attribute. 96 | * This CSS is a workaround. Please remove once WebKit bug is fixed. 97 | * https://bugs.webkit.org/show_bug.cgi?id=63367 98 | */ 99 | html[dir='rtl'] input.weakrtl::-webkit-input-placeholder, 100 | html[dir='rtl'] .weakrtl input::-webkit-input-placeholder { 101 | direction: rtl; 102 | } 103 | -------------------------------------------------------------------------------- /js/chromium/focus_outline_manager.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | cr.define('cr.ui', function() { 6 | 7 | /** 8 | * The class name to set on the document element. 9 | * @const 10 | */ 11 | var CLASS_NAME = 'focus-outline-visible'; 12 | 13 | /** 14 | * This class sets a CSS class name on the HTML element of |doc| when the user 15 | * presses the tab key. It removes the class name when the user clicks 16 | * anywhere. 17 | * 18 | * This allows you to write CSS like this: 19 | * 20 | * html.focus-outline-visible my-element:focus { 21 | * outline: 5px auto -webkit-focus-ring-color; 22 | * } 23 | * 24 | * And the outline will only be shown if the user uses the keyboard to get to 25 | * it. 26 | * 27 | * @param {Document} doc The document to attach the focus outline manager to. 28 | * @constructor 29 | */ 30 | function FocusOutlineManager(doc) { 31 | this.classList_ = doc.documentElement.classList; 32 | var self = this; 33 | doc.addEventListener('keydown', function(e) { 34 | if (e.keyCode == 9) // Tab 35 | self.focusByKeyboard_ = true; 36 | }, true); 37 | 38 | doc.addEventListener('mousedown', function(e) { 39 | self.focusByKeyboard_ = false; 40 | }, true); 41 | 42 | doc.addEventListener('focus', function(event) { 43 | // Update visibility only when focus is actually changed. 44 | self.visible = self.focusByKeyboard_; 45 | }, true); 46 | } 47 | 48 | FocusOutlineManager.prototype = { 49 | /** 50 | * Whether focus change is triggered by TAB key. 51 | * @type {boolean} 52 | * @private 53 | */ 54 | focusByKeyboard_: true, 55 | 56 | /** 57 | * Whether the focus outline should be visible. 58 | * @type {boolean} 59 | */ 60 | set visible(visible) { 61 | if (visible) 62 | this.classList_.add(CLASS_NAME); 63 | else 64 | this.classList_.remove(CLASS_NAME); 65 | }, 66 | get visible() { 67 | this.classList_.contains(CLASS_NAME); 68 | } 69 | }; 70 | 71 | /** 72 | * Array of Document and FocusOutlineManager pairs. 73 | * @type {Array} 74 | */ 75 | var docsToManager = []; 76 | 77 | /** 78 | * Gets a per document sigleton focus outline manager. 79 | * @param {Document} doc The document to get the |FocusOutlineManager| for. 80 | * @return {FocusOutlineManager} The per document singleton focus outline 81 | * manager. 82 | */ 83 | FocusOutlineManager.forDocument = function(doc) { 84 | for (var i = 0; i < docsToManager.length; i++) { 85 | if (doc == docsToManager[i][0]) 86 | return docsToManager[i][1]; 87 | } 88 | var manager = new FocusOutlineManager(doc); 89 | docsToManager.push([doc, manager]); 90 | return manager; 91 | }; 92 | 93 | return { 94 | FocusOutlineManager: FocusOutlineManager 95 | }; 96 | }); 97 | -------------------------------------------------------------------------------- /css/chromium/tabs.css: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2013 The Chromium Authors. All rights reserved. 2 | * Use of this source code is governed by a BSD-style license that can be 3 | * found in the LICENSE file. */ 4 | 5 | tabbox { 6 | -webkit-box-orient: vertical; 7 | display: -webkit-box; 8 | } 9 | 10 | tabs { 11 | -webkit-padding-start: 8px; 12 | background: -webkit-linear-gradient(white, rgb(243, 243, 243)); 13 | border-bottom: 1px solid rgb(160, 160, 160); 14 | display: -webkit-box; 15 | margin: 0; 16 | } 17 | 18 | /* New users of tabs.css should add 'new-style-tabs' to the class list of any 19 | * 'tabs' or 'tabpanels' elements. 20 | * 21 | * TODO(rfevang): Remove when all users are converted to the new style. 22 | * (crbug.com/247772). 23 | */ 24 | tabs.new-style-tabs { 25 | -webkit-padding-start: 9px; 26 | background: #fbfbfb; 27 | border-bottom: 1px solid #c8c8c8; 28 | padding-top: 14px; 29 | } 30 | 31 | tabs > * { 32 | -webkit-margin-start: 5px; 33 | background: rgba(160, 160, 160, .3); 34 | border: 1px solid rgba(160, 160, 160, .3); 35 | border-bottom: 0; 36 | border-top-left-radius: 3px; 37 | border-top-right-radius: 3px; 38 | cursor: default; 39 | display: block; 40 | min-width: 4em; 41 | padding: 2px 10px; 42 | text-align: center; 43 | } 44 | 45 | tabs.new-style-tabs > * { 46 | -webkit-margin-start: 0; 47 | -webkit-transition: none; 48 | background: #fbfbfb; 49 | border: 1px solid #fbfbfb; 50 | border-bottom: 0; 51 | border-radius: 0; 52 | min-width: 0; 53 | padding: 4px 9px 4px 10px; 54 | } 55 | 56 | tabs > :not([selected]) { 57 | background: rgba(238, 238, 238, .3); 58 | } 59 | 60 | tabs.new-style-tabs > :not([selected]) { 61 | background: #fbfbfb; 62 | color: #646464; 63 | } 64 | 65 | tabs > :not([selected]):hover { 66 | background: rgba(247, 247, 247, .3); 67 | } 68 | 69 | tabs.new-style-tabs > :not([selected]):hover { 70 | background: #fbfbfb; 71 | color: black; 72 | } 73 | 74 | tabs > [selected] { 75 | -webkit-transition: none; 76 | background: white; 77 | border-color: rgb(160, 160, 160); 78 | margin-bottom: -1px; 79 | position: relative; 80 | z-index: 0; 81 | } 82 | 83 | tabs.new-style-tabs > [selected] { 84 | background: #fbfbfb; 85 | border-color: #c8c8c8; 86 | font-weight: bold; 87 | } 88 | 89 | tabs:focus { 90 | outline: none; 91 | } 92 | 93 | html.focus-outline-visible tabs:focus > [selected] { 94 | outline: 5px auto -webkit-focus-ring-color; 95 | outline-offset: -2px; 96 | } 97 | 98 | tabpanels { 99 | -webkit-box-flex: 1; 100 | background: white; 101 | box-shadow: 2px 2px 5px rgba(0, 0, 0, .2); 102 | display: -webkit-box; 103 | padding: 5px 15px 0 15px; 104 | } 105 | 106 | tabpanels.new-style-tabs { 107 | background: #fbfbfb; 108 | box-shadow: none; 109 | padding: 0 20px; 110 | } 111 | 112 | tabpanels > * { 113 | -webkit-box-flex: 1; 114 | display: none; 115 | } 116 | 117 | tabpanels > [selected] { 118 | display: block; 119 | } 120 | -------------------------------------------------------------------------------- /js/chromium/alert_overlay.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | cr.define('alertOverlay', function() { 6 | /** 7 | * The confirm 91 | 94 | 95 | 96 | 97 | 98 | 99 |
100 |

101 |
102 |
103 |
104 |
105 |
106 | 107 | 108 |
109 |
110 |
111 |
112 |

113 |
114 |
115 | 116 |
117 |
118 | 119 |
120 |
121 | 123 | 125 |
126 |
127 |
128 |
129 |
130 |
131 | 132 | 133 |
134 |
135 |
136 |
137 | 138 |
139 |
140 |
141 | 142 | 143 |
144 | 145 | 146 | 147 | 148 | 149 |
150 |
151 | 152 | 153 |
154 |
155 |
156 |
157 |
158 | 159 | 160 | 161 | 162 |
163 |
164 |
165 | 166 | 167 | 168 | 169 | 170 | 176 | 177 | 184 | 185 | 186 | 187 | 193 | 194 | 195 |
196 |
197 |
198 | 199 |
200 | 201 | 215 | 216 | 217 | 218 |
219 |
220 | 222 | 224 |
225 |
226 |
227 | 229 |
230 |
231 |
232 |
233 | 234 | 235 |
236 | 240 |
241 |
242 |
243 |
244 | 246 |
247 |
248 |
249 | 250 | 251 |
252 |
253 | 254 | 256 |
257 |
258 |
259 | 261 |
262 |
263 |
264 |
265 | 266 | 267 |
268 | 272 |
273 |
274 |
275 |
276 | 278 |
279 |
280 |
281 |
282 |
283 |
284 | 285 |