Changeset 103765 in webkit
- Timestamp:
- Dec 28, 2011 7:25:05 AM (12 years ago)
- Location:
- trunk
- Files:
-
- 1 added
- 1 deleted
- 16 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r103762 r103765 1 2011-12-28 Alexander Pavlov <apavlov@chromium.org> 2 3 Web Inspector: Introduce a Profiler launcher view similar to that in the Audits panel 4 https://bugs.webkit.org/show_bug.cgi?id=75228 5 6 Reviewed by Pavel Feldman. 7 8 * inspector/profiler/profiler-test.js: 9 (initialize_ProfilerTest): 10 1 11 2011-12-28 Hans Wennborg <hans@chromium.org> 2 12 -
trunk/LayoutTests/inspector/profiler/profiler-test.js
r81945 r103765 76 76 77 77 var profilesPanel = WebInspector.panels.profiles; 78 if (profilesPanel.visibleView && profilesPanel.visibleView.profile .title === title)78 if (profilesPanel.visibleView && profilesPanel.visibleView.profile && profilesPanel.visibleView.profile.title === title) 79 79 callback(profilesPanel.visibleView); 80 80 else -
trunk/Source/WebCore/ChangeLog
r103764 r103765 1 2011-12-28 Alexander Pavlov <apavlov@chromium.org> 2 3 Web Inspector: Introduce a Profiler launcher view similar to that in the Audits panel 4 https://bugs.webkit.org/show_bug.cgi?id=75228 5 6 Reviewed by Pavel Feldman. 7 8 * English.lproj/localizedStrings.js: 9 * WebCore.gypi: 10 * WebCore.vcproj/WebCore.vcproj: 11 * inspector/front-end/AuditLauncherView.js: 12 (WebInspector.AuditLauncherView): 13 * inspector/front-end/AuditsPanel.js: 14 (WebInspector.AuditsPanel): 15 * inspector/front-end/DetailedHeapshotView.js: 16 (WebInspector.DetailedHeapshotProfileType): 17 (WebInspector.DetailedHeapshotProfileType.prototype.get treeItemTitle): 18 (WebInspector.DetailedHeapshotProfileType.prototype.get description): 19 * inspector/front-end/ProfileLauncherView.js: Added. 20 (WebInspector.ProfileLauncherView): 21 (WebInspector.ProfileLauncherView.prototype.setUpEventListeners): 22 (WebInspector.ProfileLauncherView.prototype.addProfileType): 23 (WebInspector.ProfileLauncherView.prototype._controlButtonClicked): 24 (WebInspector.ProfileLauncherView.prototype._updateControls): 25 (WebInspector.ProfileLauncherView.prototype._profileTypeChanged): 26 (WebInspector.ProfileLauncherView.prototype._onProfileStarted): 27 (WebInspector.ProfileLauncherView.prototype._onProfileFinished): 28 * inspector/front-end/ProfileView.js: 29 (WebInspector.CPUProfileType): 30 (WebInspector.CPUProfileType.prototype.get treeItemTitle): 31 (WebInspector.CPUProfileType.prototype.get description): 32 * inspector/front-end/ProfilesPanel.js: 33 (WebInspector.ProfileType.prototype.get treeItemTitle): 34 (WebInspector.ProfileType.prototype.get description): 35 (WebInspector.ProfilesPanel.prototype.get statusBarItems): 36 (WebInspector.ProfilesPanel.prototype.toggleRecordButton): 37 (WebInspector.ProfilesPanel.prototype._onProfileTypeSelected): 38 (WebInspector.ProfilesPanel.prototype._reset): 39 (WebInspector.ProfilesPanel.prototype._showLauncherView): 40 (WebInspector.ProfilesPanel.prototype._registerProfileType): 41 (WebInspector.ProfilesPanel.prototype._addProfileHeader): 42 (WebInspector.ProfilesPanel.prototype._updateInterface): 43 (WebInspector.ProfileTypeTreeElement): 44 (WebInspector.ProfileTypeTreeElement.prototype.collapse): 45 (WebInspector.ProfilesSidebarTreeElement): 46 (WebInspector.ProfilesSidebarTreeElement.prototype.onattach): 47 (WebInspector.ProfilesSidebarTreeElement.prototype.onselect): 48 (WebInspector.ProfilesSidebarTreeElement.prototype.get selectable): 49 (WebInspector.ProfilesSidebarTreeElement.prototype.refresh): 50 * inspector/front-end/WebKit.qrc: 51 * inspector/front-end/WelcomeView.js: Removed. 52 * inspector/front-end/auditsPanel.css: 53 (.audit-launcher-view .audit-launcher-view-content): 54 (.audit-launcher-view div.button-container): 55 (.panel-enabler-view.audit-launcher-view label): 56 (.panel-enabler-view.audit-launcher-view label.disabled): 57 * inspector/front-end/inspector.html: 58 * inspector/front-end/panelEnablerView.css: 59 (.panel-enabler-view img): 60 (.panel-enabler-view .flexible-space): 61 (.panel-enabler-view button:not(.status-bar-item)): 62 (body.inactive .panel-enabler-view button, .panel-enabler-view button:disabled): 63 (.panel-enabler-view input[type="radio"]): 64 (.panel-enabler-view input[type="radio"]:active:not(:disabled)): 65 (.panel-enabler-view input[type="radio"]:checked): 66 (.panel-enabler-view input[type="radio"]:checked:active): 67 * inspector/front-end/profilesPanel.css: 68 (.profile-launcher-view-tree-item > .icon): 69 (.profile-launcher-view-content): 70 (.profile-launcher-view-content h1): 71 (.panel-enabler-view.profile-launcher-view form): 72 (.panel-enabler-view.profile-launcher-view label): 73 (.profile-launcher-view-content p): 74 (.panel-enabler-view.profile-launcher-view button:not(.status-bar-item)): 75 (.profile-launcher-view-content button.running:not(.status-bar-item)): 76 (body.inactive .profile-launcher-view-content button.running:not(.status-bar-item)): 77 1 78 2011-12-28 Sheriff Bot <webkit.review.bot@gmail.com> 2 79 -
trunk/Source/WebCore/WebCore.gypi
r103742 r103765 6447 6447 'inspector/front-end/Popover.js', 6448 6448 'inspector/front-end/ProfileDataGridTree.js', 6449 'inspector/front-end/ProfileLauncherView.js', 6449 6450 'inspector/front-end/ProfilesPanel.js', 6450 6451 'inspector/front-end/ProfileView.js', … … 6511 6512 'inspector/front-end/View.js', 6512 6513 'inspector/front-end/WatchExpressionsSidebarPane.js', 6513 'inspector/front-end/WelcomeView.js',6514 6514 'inspector/front-end/WorkerManager.js', 6515 6515 'inspector/front-end/WorkersSidebarPane.js', -
trunk/Source/WebCore/WebCore.vcproj/WebCore.vcproj
r103707 r103765 71838 71838 </File> 71839 71839 <File 71840 RelativePath="..\inspector\front-end\ProfileLauncherView.js" 71841 > 71842 </File> 71843 <File 71840 71844 RelativePath="..\inspector\front-end\ProfilesPanel.js" 71841 71845 > … … 72127 72131 <File 72128 72132 RelativePath="..\inspector\front-end\WatchExpressionsSidebarPane.js" 72129 >72130 </File>72131 <File72132 RelativePath="..\inspector\front-end\WelcomeView.js"72133 72133 > 72134 72134 </File> -
trunk/Source/WebCore/inspector/front-end/AuditLauncherView.js
r102109 r103765 36 36 { 37 37 WebInspector.View.call(this); 38 38 39 this._runnerCallback = runnerCallback; 39 40 this._stopCallback = stopCallback; … … 42 43 43 44 this.element.addStyleClass("audit-launcher-view"); 45 this.element.addStyleClass("panel-enabler-view"); 44 46 45 47 this._contentElement = document.createElement("div"); -
trunk/Source/WebCore/inspector/front-end/AuditsPanel.js
r102109 r103765 36 36 { 37 37 WebInspector.Panel.call(this, "audits"); 38 this.registerRequiredCSS("panelEnablerView.css"); 38 39 this.registerRequiredCSS("auditsPanel.css"); 39 40 -
trunk/Source/WebCore/inspector/front-end/DetailedHeapshotView.js
r103176 r103765 1298 1298 WebInspector.DetailedHeapshotProfileType = function() 1299 1299 { 1300 WebInspector.ProfileType.call(this, WebInspector.DetailedHeapshotProfileType.TypeId, WebInspector.UIString(" HEAP SNAPSHOTS"));1300 WebInspector.ProfileType.call(this, WebInspector.DetailedHeapshotProfileType.TypeId, WebInspector.UIString("Take Heap Snapshot")); 1301 1301 } 1302 1302 … … 1319 1319 }, 1320 1320 1321 get welcomeMessage() 1322 { 1323 return WebInspector.UIString("Get a heap snapshot by pressing the %s button on the status bar."); 1321 get treeItemTitle() 1322 { 1323 return WebInspector.UIString("HEAP SNAPSHOTS"); 1324 }, 1325 1326 get description() 1327 { 1328 return WebInspector.UIString("Heap snapshot profiles show memory distribution among your page's JavaScript objects and related DOM nodes."); 1324 1329 }, 1325 1330 -
trunk/Source/WebCore/inspector/front-end/ProfileView.js
r102910 r103765 570 570 WebInspector.CPUProfileType = function() 571 571 { 572 WebInspector.ProfileType.call(this, WebInspector.CPUProfileType.TypeId, WebInspector.UIString("C PU PROFILES"));572 WebInspector.ProfileType.call(this, WebInspector.CPUProfileType.TypeId, WebInspector.UIString("Collect JavaScript CPU Profile")); 573 573 this._recording = false; 574 574 WebInspector.CPUProfileType.instance = this; … … 599 599 }, 600 600 601 get welcomeMessage() 602 { 603 return WebInspector.UIString("Control CPU profiling by pressing the %s button on the status bar."); 601 get treeItemTitle() 602 { 603 return WebInspector.UIString("CPU PROFILES"); 604 }, 605 606 get description() 607 { 608 return WebInspector.UIString("CPU profiles show where the execution time is spent in your page's JavaScript functions."); 604 609 }, 605 610 -
trunk/Source/WebCore/inspector/front-end/ProfilesPanel.js
r102906 r103765 55 55 }, 56 56 57 get treeItemTitle() 58 { 59 return this._name; 60 }, 61 57 62 get name() 58 63 { … … 71 76 }, 72 77 73 get welcomeMessage()78 get description() 74 79 { 75 80 return ""; … … 100 105 { 101 106 WebInspector.Panel.call(this, "profiles"); 107 this.registerRequiredCSS("panelEnablerView.css"); 102 108 this.registerRequiredCSS("heapProfiler.css"); 103 109 this.registerRequiredCSS("profilesPanel.css"); … … 105 111 this.createSplitViewWithSidebarTree(); 106 112 113 this.profilesItemTreeElement = new WebInspector.ProfilesSidebarTreeElement(this); 114 this.sidebarTree.appendChild(this.profilesItemTreeElement); 115 107 116 this._profileTypesByIdMap = {}; 108 this._profileTypeButtonsByIdMap = {};109 117 110 118 var panelEnablerHeading = WebInspector.UIString("You need to enable profiling before you can use the Profiles panel."); … … 123 131 this.enableToggleButton.element.addStyleClass("hidden"); 124 132 133 this.recordButton = new WebInspector.StatusBarButton("", "record-profile-status-bar-item"); 134 this.recordButton.addEventListener("click", this.toggleRecordButton, this); 135 125 136 this.clearResultsButton = new WebInspector.StatusBarButton(WebInspector.UIString("Clear all profiles."), "clear-status-bar-item"); 126 137 this.clearResultsButton.addEventListener("click", this._clearProfiles.bind(this), false); … … 129 140 this.profileViewStatusBarItemsContainer.className = "status-bar-items"; 130 141 131 this.welcomeView = new WebInspector.WelcomeView("profiles", WebInspector.UIString("Welcome to the Profiles panel"));132 133 142 this._profiles = []; 134 143 this._profilerEnabled = !Capabilities.profilerCausesRecompilation; 144 145 this._launcherView = new WebInspector.ProfileLauncherView(this); 146 this._launcherView.addEventListener(WebInspector.ProfileLauncherView.EventTypes.ProfileTypeSelected, this._onProfileTypeSelected, this); 135 147 this._reset(); 148 this._launcherView.setUpEventListeners(); 136 149 137 150 this._registerProfileType(new WebInspector.CPUProfileType()); … … 145 158 } 146 159 160 WebInspector.ProfilesPanel.EventTypes = { 161 ProfileStarted: "profile-started", 162 ProfileFinished: "profile-finished" 163 } 164 147 165 WebInspector.ProfilesPanel.prototype = { 148 166 get toolbarItemLabel() … … 153 171 get statusBarItems() 154 172 { 155 function clickHandler(profileType, button) 156 { 157 var wasProfiling = button.toggled; 158 profileType.buttonClicked.call(profileType); 159 this.updateProfileTypeButtons(!wasProfiling, button); 160 } 161 162 var items = [this.enableToggleButton.element]; 163 // FIXME: Generate a single "combo-button". 164 for (var typeId in this._profileTypesByIdMap) { 165 var profileType = this.getProfileType(typeId); 166 if (profileType.buttonStyle) { 167 var button = new WebInspector.StatusBarButton(profileType.buttonTooltip, profileType.buttonStyle); 168 this._profileTypeButtonsByIdMap[typeId] = button; 169 button.element.addEventListener("click", clickHandler.bind(this, profileType, button), false); 170 items.push(button.element); 171 } 172 } 173 items.push(this.clearResultsButton.element, this.profileViewStatusBarItemsContainer); 174 return items; 173 return [this.enableToggleButton.element, this.recordButton.element, this.clearResultsButton.element, this.profileViewStatusBarItemsContainer]; 174 }, 175 176 toggleRecordButton: function() 177 { 178 this._selectedProfileType.buttonClicked(); 175 179 }, 176 180 … … 200 204 this._profilerEnabled = false; 201 205 this._reset(); 206 }, 207 208 _onProfileTypeSelected: function(event) 209 { 210 this._selectedProfileType = event.data; 211 this.recordButton.title = this._selectedProfileType.buttonTooltip; 202 212 }, 203 213 … … 221 231 this.searchCanceled(); 222 232 233 for (var id in this._profileTypesByIdMap) { 234 var treeElement = this._profileTypesByIdMap[id].treeElement; 235 treeElement.removeChildren(); 236 treeElement.hidden = true; 237 } 238 223 239 this._profiles = []; 224 240 this._profilesIdMap = {}; … … 229 245 this.sidebarTreeElement.removeStyleClass("some-expandable"); 230 246 231 for (var typeId in this._profileTypesByIdMap)232 this.getProfileType(typeId).treeElement.removeChildren();233 234 247 this.profileViews.removeChildren(); 235 236 248 this.profileViewStatusBarItemsContainer.removeChildren(); 237 249 238 250 this.removeAllListeners(); 251 this._launcherView.setUpEventListeners(); 239 252 240 253 this._updateInterface(); 241 this.welcomeView.show(this.splitView.mainElement); 254 this.profilesItemTreeElement.select(); 255 this._showLauncherView(); 256 }, 257 258 _showLauncherView: function() 259 { 260 this.closeVisibleView(); 261 this.profileViewStatusBarItemsContainer.removeChildren(); 262 this._launcherView.show(this.splitView.mainElement); 263 this.visibleView = this._launcherView; 242 264 }, 243 265 … … 251 273 { 252 274 this._profileTypesByIdMap[profileType.id] = profileType; 253 profileType.treeElement = new WebInspector.SidebarSectionTreeElement(profileType.name, null, true); 275 this._launcherView.addProfileType(profileType); 276 profileType.treeElement = new WebInspector.ProfileTypeTreeElement(profileType.treeItemTitle); 277 profileType.treeElement.hidden = true; 254 278 this.sidebarTree.appendChild(profileType.treeElement); 255 profileType.treeElement.expand();256 this._addWelcomeMessage(profileType);257 },258 259 _addWelcomeMessage: function(profileType)260 {261 var message = profileType.welcomeMessage;262 // Message text is supposed to have a '%s' substring as a placeholder263 // for a status bar button. If it is there, we split the message in two264 // parts, and insert the button between them.265 var buttonPos = message.indexOf("%s");266 if (buttonPos > -1) {267 var container = document.createDocumentFragment();268 var part1 = document.createElement("span");269 part1.textContent = message.substr(0, buttonPos);270 container.appendChild(part1);271 272 var button = new WebInspector.StatusBarButton(profileType.buttonTooltip, profileType.buttonStyle, profileType.buttonCaption);273 container.appendChild(button.element);274 275 var part2 = document.createElement("span");276 part2.textContent = message.substr(buttonPos + 2);277 container.appendChild(part2);278 this.welcomeView.addMessage(container);279 } else280 this.welcomeView.addMessage(message);281 279 }, 282 280 … … 294 292 var profileType = this.getProfileType(typeId); 295 293 var sidebarParent = profileType.treeElement; 294 sidebarParent.hidden = false; 296 295 var small = false; 297 296 var alternateTitle; … … 346 345 sidebarParent.appendChild(profileTreeElement); 347 346 if (!profile.isTemporary) { 348 this.welcomeView.detach();349 347 if (!this.visibleView) 350 348 this.showProfile(profile); 351 349 this.dispatchEventToListeners("profile added"); 352 this.updateProfileTypeButtons(false, this._profileTypeButtonsByIdMap[typeId]); 353 } 350 delete this._temporaryRecordingProfile; 351 this.dispatchEventToListeners(WebInspector.ProfilesPanel.EventTypes.ProfileFinished); 352 this.recordButton.toggled = false; 353 } else { 354 this.dispatchEventToListeners(WebInspector.ProfilesPanel.EventTypes.ProfileStarted); 355 this.recordButton.toggled = true; 356 } 357 358 this.recordButton.title = this._selectedProfileType.buttonTooltip; 354 359 }, 355 360 … … 504 509 }, 505 510 506 /**507 * @param {boolean} isProfiling508 * @param {WebInspector.StatusBarButton=} effectButton509 */510 updateProfileTypeButtons: function(isProfiling, effectButton)511 {512 for (var typeId in this._profileTypeButtonsByIdMap) {513 var button = this._profileTypeButtonsByIdMap[typeId];514 var profileType = this.getProfileType(typeId);515 button.element.className = profileType.buttonStyle;516 button.element.title = profileType.buttonTooltip;517 // FIXME: Apply profileType.buttonCaption once captions are added to button controls.518 if (!isProfiling)519 button.disabled = false;520 else {521 if (effectButton && button !== effectButton)522 button.disabled = true;523 }524 }525 },526 527 511 closeVisibleView: function() 528 512 { … … 760 744 this.enableToggleButton.title = WebInspector.UIString("Profiling enabled. Click to disable."); 761 745 this.enableToggleButton.toggled = true; 762 for (var typeId in this._profileTypeButtonsByIdMap) 763 this._profileTypeButtonsByIdMap[typeId].visible = true; 746 this.recordButton.visible = true; 764 747 this.profileViewStatusBarItemsContainer.removeStyleClass("hidden"); 765 748 this.clearResultsButton.element.removeStyleClass("hidden"); … … 768 751 this.enableToggleButton.title = WebInspector.UIString("Profiling disabled. Click to enable."); 769 752 this.enableToggleButton.toggled = false; 770 for (var typeId in this._profileTypeButtonsByIdMap) 771 this._profileTypeButtonsByIdMap[typeId].visible = false; 753 this.recordButton.visible = false; 772 754 this.profileViewStatusBarItemsContainer.addStyleClass("hidden"); 773 755 this.clearResultsButton.element.addStyleClass("hidden"); … … 924 906 } 925 907 908 WebInspector.ProfileTypeTreeElement = function(title) 909 { 910 WebInspector.SidebarSectionTreeElement.call(this, title, null, true); 911 this.expand(); 912 } 913 914 WebInspector.ProfileTypeTreeElement.prototype = { 915 collapse: function() 916 { 917 // Should not collapse. 918 } 919 } 920 921 WebInspector.ProfileTypeTreeElement.prototype.__proto__ = WebInspector.SidebarSectionTreeElement.prototype; 922 926 923 WebInspector.ProfileSidebarTreeElement = function(profile, titleFormat, className) 927 924 { … … 996 993 997 994 WebInspector.ProfileGroupSidebarTreeElement.prototype.__proto__ = WebInspector.SidebarTreeElement.prototype; 995 996 /** 997 * @constructor 998 * @extends {WebInspector.SidebarTreeElement} 999 */ 1000 WebInspector.ProfilesSidebarTreeElement = function(panel) 1001 { 1002 this._panel = panel; 1003 this.small = false; 1004 1005 WebInspector.SidebarTreeElement.call(this, "profile-launcher-view-tree-item", WebInspector.UIString("Profiles"), "", null, false); 1006 } 1007 1008 WebInspector.ProfilesSidebarTreeElement.prototype = { 1009 onselect: function() 1010 { 1011 this._panel._showLauncherView(); 1012 }, 1013 1014 get selectable() 1015 { 1016 return true; 1017 } 1018 } 1019 1020 WebInspector.ProfilesSidebarTreeElement.prototype.__proto__ = WebInspector.SidebarTreeElement.prototype; -
trunk/Source/WebCore/inspector/front-end/WebKit.qrc
r103707 r103765 90 90 <file>Popover.js</file> 91 91 <file>ProfileDataGridTree.js</file> 92 <file>ProfileLauncherView.js</file> 92 93 <file>ProfilesPanel.js</file> 93 94 <file>ProfileView.js</file> … … 154 155 <file>View.js</file> 155 156 <file>WatchExpressionsSidebarPane.js</file> 156 <file>WelcomeView.js</file>157 157 <file>WorkerManager.js</file> 158 158 <file>WorkersSidebarPane.js</file> -
trunk/Source/WebCore/inspector/front-end/auditsPanel.css
r101509 r103765 65 65 white-space: nowrap; 66 66 display: -webkit-box; 67 text-align: left; 67 68 -webkit-box-orient: vertical; 68 69 } 69 70 70 71 .audit-launcher-view h1 { 71 color: rgb(110, 116, 128);72 font-size: 16px;73 line-height: 20px;74 font-weight: normal;75 72 padding-top: 15px; 76 73 } … … 89 86 padding: 16px 0; 90 87 } 91 .audit-launcher-view .flexible-space {92 -webkit-box-flex: 1;93 }94 88 95 89 .audit-launcher-view div.audit-categories-container { … … 102 96 103 97 .audit-launcher-view button { 104 color: rgb(6, 6, 6);105 background-color: transparent;106 border: 1px solid rgb(165, 165, 165);107 background-color: rgb(237, 237, 237);108 background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(252, 252, 252)), to(rgb(223, 223, 223)));109 -webkit-border-radius: 12px;110 -webkit-appearance: none;111 }112 113 .audit-launcher-view button {114 font-size: 13px;115 padding: 3px 20px;116 height: 24px;117 98 margin: 0 5px 0 0; 118 99 } … … 123 104 } 124 105 125 body.inactive .audit-launcher-view button, .audit-launcher-view button:disabled { 126 color: rgb(130, 130, 130); 127 border-color: rgb(212, 212, 212); 128 background-color: rgb(239, 239, 239); 129 background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(250, 250, 250)), to(rgb(235, 235, 235))); 130 } 131 132 .audit-launcher-view label { 133 position: relative; 134 display: block; 135 text-align: left; 136 word-break: break-word; 106 .panel-enabler-view.audit-launcher-view label { 137 107 padding: 0 0 5px 0; 138 } 139 140 .audit-launcher-view label.disabled { 108 margin: 0; 109 } 110 111 .panel-enabler-view.audit-launcher-view label.disabled { 141 112 color: rgb(130, 130, 130); 142 113 } … … 144 115 .audit-launcher-view input[type="checkbox"] { 145 116 margin-left: 0; 146 }147 148 .audit-launcher-view input[type="radio"] {149 height: 17px;150 width: 17px;151 border: 1px solid rgb(165, 165, 165);152 background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(252, 252, 252)), to(rgb(223, 223, 223)));153 -webkit-border-radius: 8px;154 -webkit-appearance: none;155 vertical-align: middle;156 margin: 0 5px 5px 0;157 }158 159 .audit-launcher-view input[type="radio"]:active:not(:disabled) {160 background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(194, 194, 194)), to(rgb(239, 239, 239)));161 }162 163 .audit-launcher-view input[type="radio"]:checked:not(:disabled), .audit-launcher-view input[type="radio"]:checked:disabled {164 background: url(Images/radioDot.png) center no-repeat,165 -webkit-gradient(linear, left top, left bottom, from(rgb(252, 252, 252)), to(rgb(223, 223, 223)));166 117 } 167 118 -
trunk/Source/WebCore/inspector/front-end/inspector.html
r103707 r103765 106 106 <script type="text/javascript" src="StylesSidebarPane.js"></script> 107 107 <script type="text/javascript" src="PanelEnablerView.js"></script> 108 <script type="text/javascript" src="WelcomeView.js"></script>109 108 <script type="text/javascript" src="StatusBarButton.js"></script> 110 109 <script type="text/javascript" src="ElementsPanel.js"></script> … … 154 153 <script type="text/javascript" src="DatabaseTableView.js"></script> 155 154 <script type="text/javascript" src="DatabaseQueryView.js"></script> 155 <script type="text/javascript" src="ProfileLauncherView.js"></script> 156 156 <script type="text/javascript" src="ProfileDataGridTree.js"></script> 157 157 <script type="text/javascript" src="BottomUpProfileDataGridTree.js"></script> -
trunk/Source/WebCore/inspector/front-end/panelEnablerView.css
r98228 r103765 77 77 } 78 78 79 .panel-enabler-view img , div.welcome-instructions-aligner{79 .panel-enabler-view img { 80 80 height: 100%; 81 81 min-height: 200px; … … 91 91 display: initial !important; 92 92 width: 0; 93 } 94 95 .panel-enabler-view .flexible-space { 96 -webkit-box-flex: 1; 93 97 } 94 98 … … 115 119 padding: 3px 20px; 116 120 height: 24px; 121 color: rgb(6, 6, 6); 122 background-color: transparent; 123 border: 1px solid rgb(165, 165, 165); 124 background-color: rgb(237, 237, 237); 125 background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(252, 252, 252)), to(rgb(223, 223, 223))); 126 -webkit-border-radius: 12px; 127 -webkit-appearance: none; 117 128 } 118 129 119 .panel-enabler-view.welcome { 120 z-index: auto; 130 body.inactive .panel-enabler-view button, .panel-enabler-view button:disabled { 131 color: rgb(130, 130, 130); 132 border-color: rgb(212, 212, 212); 133 background-color: rgb(239, 239, 239); 134 background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(250, 250, 250)), to(rgb(235, 235, 235))); 121 135 } 122 136 123 .panel-enabler-view.welcome div.welcome-instructions-aligner { 124 display: inline-block; 125 width: 0; 126 } 127 128 .panel-enabler-view.welcome .instructions { 129 display: inline-block; 130 vertical-align: middle; 131 margin: 0; 132 white-space: normal; 133 line-height: 175%; 134 } 135 136 .panel-enabler-view.welcome .message { 137 margin-bottom: 2ex; 138 } 139 140 .panel-enabler-view.welcome button.status-bar-item { 141 background-image: none; 142 vertical-align: top; 143 } 144 145 .panel-enabler-view input { 137 .panel-enabler-view input[type="radio"] { 146 138 height: 17px; 147 139 width: 17px; … … 154 146 } 155 147 156 .panel-enabler-view input :active{148 .panel-enabler-view input[type="radio"]:active:not(:disabled) { 157 149 background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(194, 194, 194)), to(rgb(239, 239, 239))); 158 150 } 159 151 160 .panel-enabler-view input :checked {152 .panel-enabler-view input[type="radio"]:checked { 161 153 background: url(Images/radioDot.png) center no-repeat, 162 154 -webkit-gradient(linear, left top, left bottom, from(rgb(252, 252, 252)), to(rgb(223, 223, 223))); 155 } 156 157 .panel-enabler-view input[type="radio"]:checked:active { 158 background: url(Images/radioDot.png) center no-repeat, 159 -webkit-gradient(linear, left top, left bottom, from(rgb(194, 194, 194)), to(rgb(239, 239, 239))); 163 160 } 164 161 -
trunk/Source/WebCore/inspector/front-end/profilesPanel.css
r100991 r103765 46 46 border-left: 1px solid rgb(184, 184, 184); 47 47 margin-left: -1px; 48 } 49 50 .profile-launcher-view-tree-item > .icon { 51 padding: 15px; 52 background-image: url(Images/toolbarIcons.png); 53 background-position-x: -160px; 48 54 } 49 55 … … 141 147 -webkit-mask-position: 0 0; 142 148 } 149 150 .profile-launcher-view-content { 151 position: absolute; 152 top: 0; 153 right: 0; 154 bottom: 0; 155 left: 0; 156 padding: 0 0 0 16px; 157 display: -webkit-box; 158 text-align: left; 159 -webkit-box-orient: vertical; 160 } 161 162 .profile-launcher-view-content h1 { 163 padding: 15px 0 10px; 164 } 165 166 .panel-enabler-view.profile-launcher-view form { 167 padding: 0; 168 font-size: 13px; 169 width: 100%; 170 } 171 172 .panel-enabler-view.profile-launcher-view label { 173 margin: 0; 174 } 175 176 .profile-launcher-view-content p { 177 color: grey; 178 margin-top: 1px; 179 margin-left: 22px; 180 } 181 182 .panel-enabler-view.profile-launcher-view button:not(.status-bar-item) { 183 color: rgb(6, 6, 6); 184 margin: 16px 0; 185 } 186 187 .profile-launcher-view-content button.running:not(.status-bar-item) { 188 color: red; 189 } 190 191 body.inactive .profile-launcher-view-content button.running:not(.status-bar-item) { 192 color: rgb(220, 130, 130); 193 }
Note: See TracChangeset
for help on using the changeset viewer.