diff options
-rw-r--r-- | chrome/app/generated_resources.grd | 18 | ||||
-rw-r--r-- | chrome/browser/extensions/extensions_ui.cc | 18 | ||||
-rw-r--r-- | chrome/browser/resources/extensions_ui.html | 100 | ||||
-rw-r--r-- | chrome/browser/resources/gray.png | bin | 0 -> 161 bytes |
4 files changed, 85 insertions, 51 deletions
diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd index 3520ec7..c205d5d 100644 --- a/chrome/app/generated_resources.grd +++ b/chrome/app/generated_resources.grd @@ -2590,14 +2590,14 @@ each locale. --> </message> <!-- chrome://extensions page --> - <message name="IDS_EXTENSIONS_DEVELOPER_TOOLS_LINK" desc="Text of the link for developer tools."> - Developer tools + <message name="IDS_EXTENSIONS_DEVELOPER_MODE_LINK" desc="Text of the link for developer mode."> + Developer mode </message> - <message name="IDS_EXTENSIONS_DEVELOPER_TOOLS_PREFIX" desc="Text of the prefix for the developer tools buttons."> - Developer tools: + <message name="IDS_EXTENSIONS_DEVELOPER_MODE_PREFIX" desc="Text of the prefix for the developer mode buttons."> + Developer mode: </message> - <message name="IDS_EXTENSIONS_LOAD_UNPACKED_BUTTON" desc="Text of the 'Load unpacked Extension' button."> - Load unpacked Extension... + <message name="IDS_EXTENSIONS_LOAD_UNPACKED_BUTTON" desc="Text of the 'Load Extension' button."> + Load Extension... </message> <message name="IDS_EXTENSIONS_PACK_BUTTON" desc="Text for the 'Pack Extension' button."> Pack Extension... @@ -2611,6 +2611,9 @@ each locale. --> <message name="IDS_EXTENSIONS_DISABLED_EXTENSION" desc="Text that signifies that the extension is currently disabled."> (Disabled) </message> + <message name="IDS_EXTENSIONS_IN_DEVELOPMENT" desc="Text that signifies that the extension is currently in development."> + (Development Mode) + </message> <message name="IDS_EXTENSIONS_ID" desc="The ID label in front if the extension ID."> ID: </message> @@ -2635,6 +2638,9 @@ each locale. --> <message name="IDS_EXTENSIONS_OPTIONS" desc="The button text for the options button."> Options </message> + <message name="IDS_GET_MORE_EXTENSIONS" desc="The link for getting more extensions."> + Get more extensions >> + </message> <message name="IDS_EXTENSION_LOAD_FROM_DIRECTORY" desc="Title of directory browse dialog when user wants to load an extension from a directory."> Select the extension directory. </message> diff --git a/chrome/browser/extensions/extensions_ui.cc b/chrome/browser/extensions/extensions_ui.cc index 06b9046..e4ef3cf 100644 --- a/chrome/browser/extensions/extensions_ui.cc +++ b/chrome/browser/extensions/extensions_ui.cc @@ -52,10 +52,10 @@ void ExtensionsUIHTMLSource::StartDataRequest(const std::string& path, DictionaryValue localized_strings; localized_strings.SetString(L"title", l10n_util::GetString(IDS_EXTENSIONS_TITLE)); - localized_strings.SetString(L"devToolsLink", - l10n_util::GetString(IDS_EXTENSIONS_DEVELOPER_TOOLS_LINK)); - localized_strings.SetString(L"devToolsPrefix", - l10n_util::GetString(IDS_EXTENSIONS_DEVELOPER_TOOLS_PREFIX)); + localized_strings.SetString(L"devModeLink", + l10n_util::GetString(IDS_EXTENSIONS_DEVELOPER_MODE_LINK)); + localized_strings.SetString(L"devModePrefix", + l10n_util::GetString(IDS_EXTENSIONS_DEVELOPER_MODE_PREFIX)); localized_strings.SetString(L"loadUnpackedButton", l10n_util::GetString(IDS_EXTENSIONS_LOAD_UNPACKED_BUTTON)); localized_strings.SetString(L"packButton", @@ -66,6 +66,8 @@ void ExtensionsUIHTMLSource::StartDataRequest(const std::string& path, l10n_util::GetString(IDS_EXTENSIONS_NONE_INSTALLED)); localized_strings.SetString(L"extensionDisabled", l10n_util::GetString(IDS_EXTENSIONS_DISABLED_EXTENSION)); + localized_strings.SetString(L"inDevelopment", + l10n_util::GetString(IDS_EXTENSIONS_IN_DEVELOPMENT)); localized_strings.SetString(L"extensionId", l10n_util::GetString(IDS_EXTENSIONS_ID)); localized_strings.SetString(L"extensionVersion", @@ -468,6 +470,14 @@ DictionaryValue* ExtensionsDOMHandler::CreateExtensionDetailValue( extension_data->SetString(L"description", extension->description()); extension_data->SetString(L"version", extension->version()->GetString()); extension_data->SetBoolean(L"enabled", enabled); + + // Determine the sort order: Extensions loaded through --load-extensions show + // up at the top. Disabled extensions show up at the bottom. + if (extension->location() == Extension::LOAD) + extension_data->SetInteger(L"order", 1); + else + extension_data->SetInteger(L"order", 2); + if (!extension->options_url().is_empty()) extension_data->SetString(L"options_url", extension->options_url().spec()); diff --git a/chrome/browser/resources/extensions_ui.html b/chrome/browser/resources/extensions_ui.html index b8477c2..4400282 100644 --- a/chrome/browser/resources/extensions_ui.html +++ b/chrome/browser/resources/extensions_ui.html @@ -42,7 +42,7 @@ h1 { div.content { font-size: 84%; - margin-top: 10px; + margin-top: 5px; } .section-header { @@ -90,22 +90,22 @@ body.showDevMode .showInDevMode { -webkit-transition: all .1s ease-in; } -.wbox-dev-tools { +.wbox-dev-mode { -webkit-box-align: stretch; -webkit-box-flex: 1; } -.developer-tools-image { +.developer-mode-image { margin-top: 2px; } -.developer-tools-link { +.developer-mode-link { font-size: 100%; margin-right: 3px; white-space: nowrap; } -.developer-tools { +.developer-mode { background: #f4f6fc; border-bottom: 1px solid #edeff5; font-size: 85%; @@ -115,10 +115,20 @@ body.showDevMode .showInDevMode { width: 100%; } +.extension_disabled td { + background: url('gray.png') 0px 0px; + color: #a0a0a0; + padding-bottom: 4px; + padding-top: 5px; +} + +.extension_enabled td { + padding-bottom: 4px; + padding-top: 5px; +} + .extension { - border-bottom: 1px solid #edeff5; - margin-bottom: 9px; - padding-bottom: 10px; + border-bottom: 1px solid #cdcdcd; } .extension-name { @@ -244,6 +254,7 @@ var extensionDataFormat = { "description": "Extension long format description", "version": "1.0.231", "enabled": "true", + "order": 1, "options_url": "options.html", "icon": "relative-path-to-icon.png", "content_scripts": [ @@ -281,6 +292,7 @@ var extensionDataFormat = { "description": "Extension long format description", "version": "1.0.231", "enabled": "true", + "order": 2, "icon": "", "content_scripts": [ { @@ -305,16 +317,16 @@ var extensionDataFormat = { ] }; -// Keeps track of whether the developer tools subsection has been made visible +// Keeps track of whether the developer mode subsection has been made visible // (expanded) or not. -var devToolsExpanded = false; +var devModeExpanded = false; /** - * Toggles the devToolsExpanded, and notifies the c++ dom_ui to toggle the + * Toggles the devModeExpanded, and notifies the c++ dom_ui to toggle the * extensions.ui.developer_mode which saved in the preferences. */ -function toggleDevToolsExpanded() { - devToolsExpanded = !devToolsExpanded; +function toggleDevModeExpanded() { + devModeExpanded = !devModeExpanded; chrome.send('toggleDeveloperMode', []); } @@ -325,11 +337,16 @@ function toggleDevToolsExpanded() { * @param {Object} extensionsData Detailed info about installed extensions */ function showExtensionsData(extensionsData) { - // Sort by extension name (case-insensitive) + // Sort by order specified in the data or (if equal) then sort by + // extension name (case-insensitive). extensionsData.extensions.sort(function(a, b) { - a = a.name.toLowerCase(); - b = b.name.toLowerCase(); - return a < b ? -1 : (a > b ? 1 : 0); + if (a.order == b.order) { + a = a.name.toLowerCase(); + b = b.name.toLowerCase(); + return a < b ? -1 : (a > b ? 1 : 0); + } else { + return a.order < b.order ? -1 : 1; + } }); // This is the javascript code that processes the template: @@ -354,7 +371,7 @@ window.domui_responded_ = false; function returnExtensionsData(extensionsData) { window.domui_responded_ = true; - devToolsExpanded = extensionsData.developerMode; + devModeExpanded = extensionsData.developerMode; showExtensionsData(extensionsData); @@ -364,15 +381,14 @@ function returnExtensionsData(extensionsData) { document.getElementById('body-container').style.display = "inline"; // Explicitly set the height for each element that wants to be "slid" in and - // out when the devToolsExpanded is toggled. + // out when the devModeExpanded is toggled. var slidables = document.getElementsByClassName('showInDevMode'); - for (var i = 0; i < slidables.length; i++) { + for (var i = 0; i < slidables.length; i++) slidables[i].style.height = slidables[i].offsetHeight + "px"; - } // If not in developer mode, hide the developer mode elements without the // slide/fade transition. - if (!devToolsExpanded) { + if (!devModeExpanded) { document.getElementsByTagName('body')[0].className = "hideDevModeInitial"; } else { document.getElementById('collapse').style.display = "inline"; @@ -473,18 +489,18 @@ function hidePackDialog() { } /* - * Toggles visibility of the developer tools. + * Toggles visibility of the developer mode. */ -function toggleDeveloperTools() { - toggleDevToolsExpanded(); +function toggleDeveloperMode() { + toggleDevModeExpanded(); document.getElementById('collapse').style.display = - devToolsExpanded ? "inline" : "none"; + devModeExpanded ? "inline" : "none"; document.getElementById('expand').style.display = - devToolsExpanded ? "none" : "inline"; + devModeExpanded ? "none" : "inline"; document.getElementsByTagName('body')[0].className = - devToolsExpanded ? "showDevMode" : "hideDevMode"; + devModeExpanded ? "showDevMode" : "hideDevMode"; } /** @@ -586,16 +602,16 @@ function autoUpdate() { jscontent="extensions.length"></span>)</span> </td> <td width="18" padding=""> - <img id="collapse" class="developer-tools-image" - style="display:none" onclick="toggleDeveloperTools();" + <img id="collapse" class="developer-mode-image" + style="display:none" onclick="toggleDeveloperMode();" src="minus.png" /> - <img id="expand" class="developer-tools-image" - onclick="toggleDeveloperTools();" src="plus.png" /> + <img id="expand" class="developer-mode-image" + onclick="toggleDeveloperMode();" src="plus.png" /> </td> <td width="50" align="right"> - <div class="developer-tools-link"> - <a onclick="toggleDeveloperTools();" style="cursor: default" - i18n-content="devToolsLink">DEVTOOLS</a> + <div class="developer-mode-link"> + <a onclick="toggleDeveloperMode();" style="cursor: default" + i18n-content="devModeLink">DEVMODE</a> </div> </td> </tr> @@ -603,9 +619,9 @@ function autoUpdate() { </div> </div> - <div id="developer_tools" class="wbox-dev-tools showInDevMode"> - <div class="developer-tools"> - <span i18n-content="devToolsPrefix">DEVELOPER_TOOLS:</span> + <div id="developer_tools" class="wbox-dev-mode showInDevMode"> + <div class="developer-mode"> + <span i18n-content="devModePrefix">DEVELOPER_MODE:</span> <button onclick="loadExtension()" i18n-content="loadUnpackedButton">LOAD</button> <button onclick="showPackDialog()" @@ -622,9 +638,9 @@ function autoUpdate() { <div jsdisplay="extensions.length > 0"> <div class="extension" jsselect="extensions"> - <table width="100%" cellpadding="0" cellspacing="0"> - <tr> - <td width="62" align="center" valign="top"> + <table width="100%" cellpadding="2" cellspacing="0"> + <tr jsvalues=".className:enabled ? 'extension_enabled' : 'extension_disabled'"> + <td width="62" height="50" align="center" valign="top"> <span jsdisplay="icon" ><img jsvalues=".src:'chrome-extension://' + id + '/' + icon" @@ -643,6 +659,8 @@ function autoUpdate() { <span jscontent="version">x.x.x.x</span> <span jsdisplay="!enabled" i18n-content="extensionDisabled">(DISABLED)</span> + <span jsdisplay="order == 1" + i18n-content="inDevelopment">(IN DEVELOPMENT)</span> </div> <div class="extension-description" jscontent="description"></div> diff --git a/chrome/browser/resources/gray.png b/chrome/browser/resources/gray.png Binary files differnew file mode 100644 index 0000000..13851ad --- /dev/null +++ b/chrome/browser/resources/gray.png |