Index: chrome/browser/resources/extensions_ui.html |
diff --git a/chrome/browser/resources/extensions_ui.html b/chrome/browser/resources/extensions_ui.html |
index dc44f946cb6c447167f286d3de45cabc4673963a..f2e13c8afbb75174ba48217b29b6a8df8e8cb161 100644 |
--- a/chrome/browser/resources/extensions_ui.html |
+++ b/chrome/browser/resources/extensions_ui.html |
@@ -74,8 +74,27 @@ div.content { |
-webkit-box-flex: 1; |
} |
+.showInDevMode { |
+ overflow: hidden; |
+} |
+ |
+body.hideDevModeInitial .showInDevMode { |
+ height: 0 !important; |
+ opacity: 0; |
+} |
+ |
+body.hideDevMode .showInDevMode { |
+ height: 0 !important; |
+ opacity: 0; |
+ -webkit-transition: all .5s ease-out; |
+} |
+ |
+body.showDevMode .showInDevMode { |
+ opacity: 1; |
+ -webkit-transition: all .5s ease-in; |
+} |
+ |
.wbox-dev-tools { |
- display: none; |
-webkit-box-align: stretch; |
-webkit-box-flex: 1; |
} |
@@ -111,14 +130,11 @@ div.content { |
} |
.extension-description { |
- color: gray; |
margin-top: 0.4em; |
} |
.extension-details { |
- color: gray; |
margin-top: 0.5em; |
- display: none; |
} |
.extension-actions { |
@@ -224,6 +240,7 @@ button { |
* expects to correctly populate the page. |
*/ |
var extensionDataFormat = { |
+ "developerMode": false, |
"extensions": [ |
{ |
"id": "0000000000000000000000000000000000000000", |
@@ -297,6 +314,15 @@ var extensionDataFormat = { |
var devToolsExpanded = false; |
/** |
+ * Toggles the devToolsExpanded, and notifies the c++ dom_ui to toggle the |
+ * extensions.ui.developer_mode which saved in the preferences. |
+ */ |
+function toggleDevToolsExpanded() { |
+ devToolsExpanded = !devToolsExpanded; |
+ chrome.send('toggleDeveloperMode', []); |
+} |
+ |
+/** |
* Takes the |extensionsData| input argument which represents data about the |
* currently installed/running extensions and populates the html jstemplate with |
* that data. It expects an object structure like the above. |
@@ -331,12 +357,31 @@ window.domui_responded_ = false; |
function returnExtensionsData(extensionsData) { |
window.domui_responded_ = true; |
+ |
+ devToolsExpanded = extensionsData.developerMode; |
+ |
showExtensionsData(extensionsData); |
// We are currently hiding the body because the first call to jstProcess() to |
// insert localized strings happens prior to this call which runs during the |
// body.onload event, causes a flickering. |
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. |
+ var slidables = document.getElementsByClassName('showInDevMode'); |
+ 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) { |
+ document.getElementsByTagName('body')[0].className = "hideDevModeInitial"; |
+ } else { |
+ document.getElementById('collapse').style.display = "inline"; |
+ document.getElementById('expand').style.display = "none"; |
+ } |
} |
/** |
@@ -435,19 +480,15 @@ function hidePackDialog() { |
* Toggles visibility of the developer tools. |
*/ |
function toggleDeveloperTools() { |
- devToolsExpanded = !devToolsExpanded; |
+ toggleDevToolsExpanded(); |
document.getElementById('collapse').style.display = |
devToolsExpanded ? "inline" : "none"; |
document.getElementById('expand').style.display = |
devToolsExpanded ? "none" : "inline"; |
- document.getElementById('developer_tools').style.display = |
- devToolsExpanded ? "-webkit-box" : "none"; |
- // Show/hide extra details for the extension. |
- var details = document.getElementsByClassName('extension-details'); |
- for (var i = 0; i < details.length; ++i) |
- details[i].style.display = devToolsExpanded ? "block" : "none"; |
+ document.getElementsByTagName('body')[0].className = |
+ devToolsExpanded ? "showDevMode" : "hideDevMode"; |
} |
/** |
@@ -534,7 +575,7 @@ function autoUpdate() { |
<div id="extensionTemplate"> |
<div id="container" class="vbox-container"> |
- <div id="top" class="wbox"> |
+ <div id="top" class="wbox" style="padding-right: 10px"> |
<div class="section-header"> |
<table cellpadding="0" cellspacing="0" width="100%"> |
@@ -562,7 +603,7 @@ function autoUpdate() { |
</div> |
</div> |
- <div id="developer_tools" class="wbox-dev-tools"> |
+ <div id="developer_tools" class="wbox-dev-tools showInDevMode"> |
<div class="developer-tools"> |
Developer Tools: |
<button onclick="loadExtension()">Load unpacked Extension...</button> |
@@ -600,18 +641,22 @@ function autoUpdate() { |
</div> |
<div class="extension-description" jscontent="description"></div> |
- <div class="extension-details">ID: <span jscontent="id" ></span> |
- </div> |
- <div class="extension-details"> |
- <span jsdisplay="views.length > 0"> |
- Inspect active views: |
- </span> |
- <ul class="extension-views"> |
- <li jsselect="views"> |
- <a jsvalues=".extensionView:$this" href="#" |
- onclick="sendInspectMessage(this.extensionView); return false;" |
- ><span jscontent="path"></span></a> |
- </ul> |
+ <div class="showInDevMode"> |
+ <div class="extension-details">ID: <span jscontent="id"></span> |
+ </div> |
+ <div class="extension-details"> |
+ <span jsdisplay="views.length > 0"> |
+ Inspect active views: |
+ </span> |
+ <ul class="extension-views"> |
+ <li jsselect="views"> |
+ <a jsvalues=".extensionView:$this" href="#" |
+ onclick="sendInspectMessage(this.extensionView); return false;"> |
+ <span jscontent="path"></span> |
+ </a> |
+ </li> |
+ </ul> |
+ </div> |
</div> |
</td> |
<td width="300"> |