| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2006, 2007, 2008 Apple Inc. All rights reserved. | 2 * Copyright (C) 2006, 2007, 2008 Apple Inc. All rights reserved. |
| 3 * Copyright (C) 2007 Matt Lilek (pewtermoose@gmail.com). | 3 * Copyright (C) 2007 Matt Lilek (pewtermoose@gmail.com). |
| 4 * Copyright (C) 2009 Joseph Pecoraro | 4 * Copyright (C) 2009 Joseph Pecoraro |
| 5 * | 5 * |
| 6 * Redistribution and use in source and binary forms, with or without | 6 * Redistribution and use in source and binary forms, with or without |
| 7 * modification, are permitted provided that the following conditions | 7 * modification, are permitted provided that the following conditions |
| 8 * are met: | 8 * are met: |
| 9 * | 9 * |
| 10 * 1. Redistributions of source code must retain the above copyright | 10 * 1. Redistributions of source code must retain the above copyright |
| (...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 110 } | 110 } |
| 111 } | 111 } |
| 112 }, | 112 }, |
| 113 | 113 |
| 114 _loaded: function() | 114 _loaded: function() |
| 115 { | 115 { |
| 116 console.timeStamp("Main._loaded"); | 116 console.timeStamp("Main._loaded"); |
| 117 | 117 |
| 118 if (InspectorFrontendHost.isUnderTest()) | 118 if (InspectorFrontendHost.isUnderTest()) |
| 119 self.runtime.useTestBase(); | 119 self.runtime.useTestBase(); |
| 120 InspectorFrontendHost.getPreferences(this._createSettings.bind(this)); | 120 this._createSettings(); |
| 121 }, | |
| 122 | |
| 123 /** | |
| 124 * @param {!Object<string, string>} prefs | |
| 125 */ | |
| 126 _createSettings: function(prefs) | |
| 127 { | |
| 128 // Patch settings from the URL param (for tests). | |
| 129 var settingsParam = Runtime.queryParam("settings"); | |
| 130 if (settingsParam) { | |
| 131 try { | |
| 132 var settings = JSON.parse(window.decodeURI(settingsParam)); | |
| 133 for (var key in settings) | |
| 134 prefs[key] = settings[key]; | |
| 135 } catch(e) { | |
| 136 // Ignore malformed settings. | |
| 137 } | |
| 138 } | |
| 139 | |
| 140 this._initializeExperiments(prefs); | |
| 141 | |
| 142 /** | |
| 143 * @param {!Array<{name: string}>} changes | |
| 144 */ | |
| 145 function trackPrefsObject(changes) | |
| 146 { | |
| 147 if (!Object.keys(prefs).length) { | |
| 148 InspectorFrontendHost.clearPreferences(); | |
| 149 return; | |
| 150 } | |
| 151 | |
| 152 for (var change of changes) { | |
| 153 var name = change.name; | |
| 154 if (name in prefs) | |
| 155 InspectorFrontendHost.setPreference(name, prefs[name]); | |
| 156 else | |
| 157 InspectorFrontendHost.removePreference(name); | |
| 158 } | |
| 159 } | |
| 160 | |
| 161 Object.observe(prefs, trackPrefsObject); | |
| 162 WebInspector.settings = new WebInspector.Settings(prefs); | |
| 163 | |
| 164 if (!InspectorFrontendHost.isUnderTest()) { | |
| 165 // This setting is needed for backwards compatibility with Devtools
CodeSchool extension. DO NOT REMOVE | |
| 166 WebInspector.settings.pauseOnExceptionStateString = new WebInspector
.PauseOnExceptionStateSetting(); | |
| 167 new WebInspector.VersionController().updateVersion(); | |
| 168 } | |
| 169 | |
| 170 this._createAppUI(); | 121 this._createAppUI(); |
| 171 }, | 122 }, |
| 172 | 123 |
| 173 /** | 124 _createSettings: function() |
| 174 * @param {!Object<string, string>} prefs | 125 { |
| 175 */ | 126 this._initializeExperiments(); |
| 176 _initializeExperiments: function(prefs) | 127 WebInspector.settings = new WebInspector.Settings(); |
| 128 |
| 129 // This setting is needed for backwards compatibility with Devtools Code
School extension. DO NOT REMOVE |
| 130 WebInspector.settings.pauseOnExceptionStateString = new WebInspector.Pau
seOnExceptionStateSetting(); |
| 131 new WebInspector.VersionController().updateVersion(); |
| 132 }, |
| 133 |
| 134 _initializeExperiments: function() |
| 177 { | 135 { |
| 178 Runtime.experiments.register("accessibilityInspection", "Accessibility I
nspection", true); | 136 Runtime.experiments.register("accessibilityInspection", "Accessibility I
nspection", true); |
| 179 Runtime.experiments.register("animationInspection", "Animation Inspectio
n"); | 137 Runtime.experiments.register("animationInspection", "Animation Inspectio
n"); |
| 180 Runtime.experiments.register("applyCustomStylesheet", "Allow custom UI t
hemes"); | 138 Runtime.experiments.register("applyCustomStylesheet", "Allow custom UI t
hemes"); |
| 181 Runtime.experiments.register("blackboxJSFramesOnTimeline", "Blackbox Jav
aScript frames on Timeline"); | 139 Runtime.experiments.register("blackboxJSFramesOnTimeline", "Blackbox Jav
aScript frames on Timeline"); |
| 182 Runtime.experiments.register("timelineDetailsChart", "Costly functions v
iew in Timeline details", true); | 140 Runtime.experiments.register("timelineDetailsChart", "Costly functions v
iew in Timeline details", true); |
| 183 Runtime.experiments.register("customObjectFormatters", "Custom object fo
rmatters", true); | 141 Runtime.experiments.register("customObjectFormatters", "Custom object fo
rmatters", true); |
| 184 Runtime.experiments.register("externalDeviceList", "External device list
", true); | 142 Runtime.experiments.register("externalDeviceList", "External device list
", true); |
| 185 Runtime.experiments.register("fileSystemInspection", "FileSystem inspect
ion"); | 143 Runtime.experiments.register("fileSystemInspection", "FileSystem inspect
ion"); |
| 186 Runtime.experiments.register("gpuTimeline", "GPU data on timeline", true
); | 144 Runtime.experiments.register("gpuTimeline", "GPU data on timeline", true
); |
| 187 Runtime.experiments.register("inputEventsOnTimelineOverview", "Input eve
nts on Timeline overview", true) | 145 Runtime.experiments.register("inputEventsOnTimelineOverview", "Input eve
nts on Timeline overview", true) |
| 188 Runtime.experiments.register("layersPanel", "Layers panel"); | 146 Runtime.experiments.register("layersPanel", "Layers panel"); |
| 189 Runtime.experiments.register("networkRequestHeadersFilterInDetailsView",
"Network request headers filter in details view", true); | 147 Runtime.experiments.register("networkRequestHeadersFilterInDetailsView",
"Network request headers filter in details view", true); |
| 190 Runtime.experiments.register("networkRequestsOnTimeline", "Network reque
sts on Timeline"); | 148 Runtime.experiments.register("networkRequestsOnTimeline", "Network reque
sts on Timeline"); |
| 191 Runtime.experiments.register("privateScriptInspection", "Private script
inspection"); | 149 Runtime.experiments.register("privateScriptInspection", "Private script
inspection"); |
| 192 Runtime.experiments.register("promiseTracker", "Promise inspector"); | 150 Runtime.experiments.register("promiseTracker", "Promise inspector"); |
| 193 Runtime.experiments.register("recordFilmStrimInNetworkPanel", "Record Fi
lmstrip in Network Panel", true); | 151 Runtime.experiments.register("recordFilmStrimInNetworkPanel", "Record Fi
lmstrip in Network Panel", true); |
| 194 Runtime.experiments.register("serviceWorkersInPageFrontend", "Service wo
rkers in DevTools for page"); | 152 Runtime.experiments.register("serviceWorkersInPageFrontend", "Service wo
rkers in DevTools for page"); |
| 195 Runtime.experiments.register("serviceWorkersInResources", "Service worke
rs in Resources panel", true); | 153 Runtime.experiments.register("serviceWorkersInResources", "Service worke
rs in Resources panel", true); |
| 196 Runtime.experiments.register("showPrimaryLoadWaterfallInNetworkTimeline"
, "Show primary load waterfall in Network timeline", true); | 154 Runtime.experiments.register("showPrimaryLoadWaterfallInNetworkTimeline"
, "Show primary load waterfall in Network timeline", true); |
| 197 Runtime.experiments.register("stepIntoAsync", "Step into async"); | 155 Runtime.experiments.register("stepIntoAsync", "Step into async"); |
| 198 Runtime.experiments.register("timelineInvalidationTracking", "Timeline i
nvalidation tracking", true); | 156 Runtime.experiments.register("timelineInvalidationTracking", "Timeline i
nvalidation tracking", true); |
| 199 Runtime.experiments.register("timelineTracingJSProfile", "Timeline traci
ng based JS profiler", true); | 157 Runtime.experiments.register("timelineTracingJSProfile", "Timeline traci
ng based JS profiler", true); |
| 200 Runtime.experiments.register("timelineFlowEvents", "Timeline flow events
", true); | 158 Runtime.experiments.register("timelineFlowEvents", "Timeline flow events
", true); |
| 201 Runtime.experiments.register("inlineVariableValues", "Display variable v
alues inline while debugging"); | 159 Runtime.experiments.register("inlineVariableValues", "Display variable v
alues inline while debugging"); |
| 202 | 160 |
| 203 Runtime.experiments.cleanUpStaleExperiments(); | 161 Runtime.experiments.cleanUpStaleExperiments(); |
| 204 | 162 |
| 205 if (InspectorFrontendHost.isUnderTest()) { | 163 if (InspectorFrontendHost.isUnderTest()) { |
| 206 var testPath = JSON.parse(prefs["testPath"] || "\"\""); | |
| 207 // Enable experiments for testing. | 164 // Enable experiments for testing. |
| 165 var testPath = self.localStorage ? self.localStorage["testPath"] ||
"" : ""; |
| 208 if (testPath.indexOf("debugger/promise") !== -1) | 166 if (testPath.indexOf("debugger/promise") !== -1) |
| 209 Runtime.experiments.enableForTest("promiseTracker"); | 167 Runtime.experiments.enableForTest("promiseTracker"); |
| 210 if (testPath.indexOf("elements/") !== -1) | 168 if (testPath.indexOf("elements/") !== -1) |
| 211 Runtime.experiments.enableForTest("animationInspection"); | 169 Runtime.experiments.enableForTest("animationInspection"); |
| 212 if (testPath.indexOf("layers/") !== -1) | 170 if (testPath.indexOf("layers/") !== -1) |
| 213 Runtime.experiments.enableForTest("layersPanel"); | 171 Runtime.experiments.enableForTest("layersPanel"); |
| 214 if (testPath.indexOf("service-workers/") !== -1) | 172 if (testPath.indexOf("service-workers/") !== -1) |
| 215 Runtime.experiments.enableForTest("serviceWorkersInResources"); | 173 Runtime.experiments.enableForTest("serviceWorkersInResources"); |
| 216 if (testPath.indexOf("timeline/") !== -1 || testPath.indexOf("layers
/") !== -1) | 174 if (testPath.indexOf("timeline/") !== -1 || testPath.indexOf("layers
/") !== -1) |
| 217 Runtime.experiments.enableForTest("layersPanel"); | 175 Runtime.experiments.enableForTest("layersPanel"); |
| (...skipping 721 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 939 _settingChanged: function(event) | 897 _settingChanged: function(event) |
| 940 { | 898 { |
| 941 var value = this._setting.get(); | 899 var value = this._setting.get(); |
| 942 var targets = WebInspector.OverridesSupport.targetsSupportingEmulation()
; | 900 var targets = WebInspector.OverridesSupport.targetsSupportingEmulation()
; |
| 943 for (var i = 0; i < targets.length; ++i) | 901 for (var i = 0; i < targets.length; ++i) |
| 944 targets[i].emulationAgent().setScriptExecutionDisabled(value); | 902 targets[i].emulationAgent().setScriptExecutionDisabled(value); |
| 945 } | 903 } |
| 946 } | 904 } |
| 947 | 905 |
| 948 new WebInspector.Main(); | 906 new WebInspector.Main(); |
| OLD | NEW |