Index: Source/devtools/front_end/timeline/TimelinePanel.js |
diff --git a/Source/devtools/front_end/timeline/TimelinePanel.js b/Source/devtools/front_end/timeline/TimelinePanel.js |
index b9d0bd4ac7e2ef645632a1e99ed76af7252990d5..fcc82589163817636ac3ea5337f14d4e56435ada 100644 |
--- a/Source/devtools/front_end/timeline/TimelinePanel.js |
+++ b/Source/devtools/front_end/timeline/TimelinePanel.js |
@@ -324,39 +324,56 @@ WebInspector.TimelinePanel.prototype = { |
this._stackView.detachChildViews(); |
}, |
+ /** |
+ * @param {string} name |
+ * @param {!WebInspector.Setting} setting |
+ * @param {string} tooltip |
+ * @return {!Element} |
+ */ |
+ _createSettingCheckbox: function(name, setting, tooltip) |
+ { |
+ if (!this._recordingOptionUIControls) |
+ this._recordingOptionUIControls = []; |
+ |
+ var checkboxElement = document.createElement("input"); |
+ var labelElement = WebInspector.SettingsUI.createSettingCheckbox(name, setting, true, checkboxElement, tooltip); |
+ this._recordingOptionUIControls.push({ "label": labelElement, "checkbox": checkboxElement }); |
+ return labelElement; |
+ }, |
+ |
_createRecordingOptions: function() |
{ |
var topPaneSidebarElement = this._topPane.sidebarElement(); |
this._captureStacksSetting = WebInspector.settings.createSetting("timelineCaptureStacks", true); |
- topPaneSidebarElement.appendChild(WebInspector.SettingsUI.createSettingCheckbox(WebInspector.UIString("Capture stacks"), |
- this._captureStacksSetting, true, undefined, |
- WebInspector.UIString("Capture JavaScript stack on every timeline event"))); |
+ topPaneSidebarElement.appendChild(this._createSettingCheckbox(WebInspector.UIString("Capture stacks"), |
+ this._captureStacksSetting, |
+ WebInspector.UIString("Capture JavaScript stack on every timeline event"))); |
this._captureMemorySetting = WebInspector.settings.createSetting("timelineCaptureMemory", false); |
- topPaneSidebarElement.appendChild(WebInspector.SettingsUI.createSettingCheckbox(WebInspector.UIString("Capture memory"), |
- this._captureMemorySetting, true, undefined, |
- WebInspector.UIString("Capture memory information on every timeline event"))); |
+ topPaneSidebarElement.appendChild(this._createSettingCheckbox(WebInspector.UIString("Capture memory"), |
+ this._captureMemorySetting, |
+ WebInspector.UIString("Capture memory information on every timeline event"))); |
this._captureMemorySetting.addChangeListener(this._onModeChanged, this); |
if (Capabilities.canProfilePower) { |
this._capturePowerSetting = WebInspector.settings.createSetting("timelineCapturePower", false); |
- topPaneSidebarElement.appendChild(WebInspector.SettingsUI.createSettingCheckbox(WebInspector.UIString("Capture power"), |
- this._capturePowerSetting, true, undefined, |
- WebInspector.UIString("Capture power information"))); |
+ topPaneSidebarElement.appendChild(this._createSettingCheckbox(WebInspector.UIString("Capture power"), |
+ this._capturePowerSetting, |
+ WebInspector.UIString("Capture power information"))); |
this._capturePowerSetting.addChangeListener(this._onModeChanged, this); |
} |
if (WebInspector.experimentsSettings.timelineTracingMode.isEnabled()) { |
this._captureTracingSetting = WebInspector.settings.createSetting("timelineCaptureTracing", false); |
- topPaneSidebarElement.appendChild(WebInspector.SettingsUI.createSettingCheckbox(WebInspector.UIString("Capture tracing"), |
- this._captureTracingSetting, true, undefined, |
- WebInspector.UIString("Capture tracing information"))); |
+ topPaneSidebarElement.appendChild(this._createSettingCheckbox(WebInspector.UIString("Capture tracing"), |
+ this._captureTracingSetting, |
+ WebInspector.UIString("Capture tracing information"))); |
this._captureTracingSetting.addChangeListener(this._onModeChanged, this); |
} else if (WebInspector.experimentsSettings.timelineOnTraceEvents.isEnabled()) { |
this._captureLayersAndPicturesSetting = WebInspector.settings.createSetting("timelineCaptureLayersAndPictures", false); |
- topPaneSidebarElement.appendChild(WebInspector.SettingsUI.createSettingCheckbox(WebInspector.UIString("Capture pictures"), |
- this._captureLayersAndPicturesSetting, true, undefined, |
- WebInspector.UIString("Capture graphics layer positions and painted pictures"))); |
+ topPaneSidebarElement.appendChild(this._createSettingCheckbox(WebInspector.UIString("Capture pictures"), |
+ this._captureLayersAndPicturesSetting, |
+ WebInspector.UIString("Capture graphics layer positions and painted pictures"))); |
} |
}, |
@@ -665,6 +682,19 @@ WebInspector.TimelinePanel.prototype = { |
}, |
/** |
+ * @param {boolean} enabled |
+ */ |
+ _setUIControlsEnabled: function(enabled) { |
+ function handler(uiControl) |
+ { |
+ uiControl.checkbox.disabled = !enabled; |
+ uiControl.label.classList.toggle("dimmed", !enabled); |
+ } |
+ this._recordingOptionUIControls.forEach(handler); |
+ WebInspector.inspectorView.setCurrentPanelLocked(!enabled); |
+ }, |
+ |
+ /** |
* @param {boolean} userInitiated |
*/ |
_startRecording: function(userInitiated) |
@@ -679,7 +709,7 @@ WebInspector.TimelinePanel.prototype = { |
if (userInitiated) |
WebInspector.userMetrics.TimelineStarted.record(); |
- WebInspector.inspectorView.setCurrentPanelLocked(true); |
+ this._setUIControlsEnabled(false); |
}, |
_stopRecording: function() |
@@ -693,7 +723,7 @@ WebInspector.TimelinePanel.prototype = { |
for (var i = 0; i < this._overviewControls.length; ++i) |
this._overviewControls[i].timelineStopped(); |
- WebInspector.inspectorView.setCurrentPanelLocked(false); |
+ this._setUIControlsEnabled(true); |
}, |
_onProfilingStateChanged: function() |