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 this._createSettings(); | 120 InspectorFrontendHost.getPreferences(this._createSettings.bind(this)); |
121 this._createAppUI(); | |
122 }, | 121 }, |
123 | 122 |
124 _createSettings: function() | 123 /** |
| 124 * @param {!Object<string, string>} prefs |
| 125 */ |
| 126 _createSettings: function(prefs) |
125 { | 127 { |
126 this._initializeExperiments(); | 128 this._initializeExperiments(prefs); |
127 WebInspector.settings = new WebInspector.Settings(); | 129 |
| 130 /** |
| 131 * @param {!Array<{name: string}>} changes |
| 132 */ |
| 133 function trackPrefsObject(changes) |
| 134 { |
| 135 if (!Object.keys(prefs).length) { |
| 136 InspectorFrontendHost.clearPreferences(); |
| 137 return; |
| 138 } |
| 139 |
| 140 for (var change of changes) { |
| 141 var name = change.name; |
| 142 if (name in prefs) |
| 143 InspectorFrontendHost.setPreference(name, prefs[name]); |
| 144 else |
| 145 InspectorFrontendHost.removePreference(name); |
| 146 } |
| 147 } |
| 148 |
| 149 Object.observe(prefs, trackPrefsObject); |
| 150 WebInspector.settings = new WebInspector.Settings(prefs); |
128 | 151 |
129 // This setting is needed for backwards compatibility with Devtools Code
School extension. DO NOT REMOVE | 152 // This setting is needed for backwards compatibility with Devtools Code
School extension. DO NOT REMOVE |
130 WebInspector.settings.pauseOnExceptionStateString = new WebInspector.Pau
seOnExceptionStateSetting(); | 153 WebInspector.settings.pauseOnExceptionStateString = new WebInspector.Pau
seOnExceptionStateSetting(); |
131 new WebInspector.VersionController().updateVersion(); | 154 new WebInspector.VersionController().updateVersion(); |
| 155 |
| 156 this._createAppUI(); |
132 }, | 157 }, |
133 | 158 |
134 _initializeExperiments: function() | 159 /** |
| 160 * @param {!Object<string, string>} prefs |
| 161 */ |
| 162 _initializeExperiments: function(prefs) |
135 { | 163 { |
136 Runtime.experiments.register("accessibilityInspection", "Accessibility I
nspection", true); | 164 Runtime.experiments.register("accessibilityInspection", "Accessibility I
nspection", true); |
137 Runtime.experiments.register("animationInspection", "Animation Inspectio
n"); | 165 Runtime.experiments.register("animationInspection", "Animation Inspectio
n"); |
138 Runtime.experiments.register("applyCustomStylesheet", "Allow custom UI t
hemes"); | 166 Runtime.experiments.register("applyCustomStylesheet", "Allow custom UI t
hemes"); |
139 Runtime.experiments.register("blackboxJSFramesOnTimeline", "Blackbox Jav
aScript frames on Timeline"); | 167 Runtime.experiments.register("blackboxJSFramesOnTimeline", "Blackbox Jav
aScript frames on Timeline"); |
140 Runtime.experiments.register("timelineDetailsChart", "Costly functions v
iew in Timeline details", true); | 168 Runtime.experiments.register("timelineDetailsChart", "Costly functions v
iew in Timeline details", true); |
141 Runtime.experiments.register("customObjectFormatters", "Custom object fo
rmatters", true); | 169 Runtime.experiments.register("customObjectFormatters", "Custom object fo
rmatters", true); |
142 Runtime.experiments.register("externalDeviceList", "External device list
", true); | 170 Runtime.experiments.register("externalDeviceList", "External device list
", true); |
143 Runtime.experiments.register("fileSystemInspection", "FileSystem inspect
ion"); | 171 Runtime.experiments.register("fileSystemInspection", "FileSystem inspect
ion"); |
144 Runtime.experiments.register("gpuTimeline", "GPU data on timeline", true
); | 172 Runtime.experiments.register("gpuTimeline", "GPU data on timeline", true
); |
145 Runtime.experiments.register("inputEventsOnTimelineOverview", "Input eve
nts on Timeline overview", true) | 173 Runtime.experiments.register("inputEventsOnTimelineOverview", "Input eve
nts on Timeline overview", true) |
146 Runtime.experiments.register("layersPanel", "Layers panel"); | 174 Runtime.experiments.register("layersPanel", "Layers panel"); |
147 Runtime.experiments.register("networkRequestHeadersFilterInDetailsView",
"Network request headers filter in details view", true); | 175 Runtime.experiments.register("networkRequestHeadersFilterInDetailsView",
"Network request headers filter in details view", true); |
148 Runtime.experiments.register("networkRequestsOnTimeline", "Network reque
sts on Timeline"); | 176 Runtime.experiments.register("networkRequestsOnTimeline", "Network reque
sts on Timeline"); |
149 Runtime.experiments.register("privateScriptInspection", "Private script
inspection"); | 177 Runtime.experiments.register("privateScriptInspection", "Private script
inspection"); |
150 Runtime.experiments.register("promiseTracker", "Promise inspector"); | 178 Runtime.experiments.register("promiseTracker", "Promise inspector"); |
151 Runtime.experiments.register("recordFilmStrimInNetworkPanel", "Record Fi
lmstrip in Network Panel", true); | 179 Runtime.experiments.register("recordFilmStrimInNetworkPanel", "Record Fi
lmstrip in Network Panel", true); |
152 Runtime.experiments.register("serviceWorkersInPageFrontend", "Service wo
rkers in DevTools for page"); | 180 Runtime.experiments.register("serviceWorkersInPageFrontend", "Service wo
rkers in DevTools for page"); |
153 Runtime.experiments.register("serviceWorkersInResources", "Service worke
rs in Resources panel", true); | 181 Runtime.experiments.register("serviceWorkersInResources", "Service worke
rs in Resources panel", true); |
154 Runtime.experiments.register("showPrimaryLoadWaterfallInNetworkTimeline"
, "Show primary load waterfall in Network timeline", true); | 182 Runtime.experiments.register("showPrimaryLoadWaterfallInNetworkTimeline"
, "Show primary load waterfall in Network timeline", true); |
155 Runtime.experiments.register("stepIntoAsync", "Step into async"); | 183 Runtime.experiments.register("stepIntoAsync", "Step into async"); |
156 Runtime.experiments.register("timelineInvalidationTracking", "Timeline i
nvalidation tracking", true); | 184 Runtime.experiments.register("timelineInvalidationTracking", "Timeline i
nvalidation tracking", true); |
157 Runtime.experiments.register("timelineTracingJSProfile", "Timeline traci
ng based JS profiler", true); | 185 Runtime.experiments.register("timelineTracingJSProfile", "Timeline traci
ng based JS profiler", true); |
158 Runtime.experiments.register("timelineFlowEvents", "Timeline flow events
", true); | 186 Runtime.experiments.register("timelineFlowEvents", "Timeline flow events
", true); |
159 Runtime.experiments.register("inlineVariableValues", "Display variable v
alues inline while debugging"); | 187 Runtime.experiments.register("inlineVariableValues", "Display variable v
alues inline while debugging"); |
160 | 188 |
161 Runtime.experiments.cleanUpStaleExperiments(); | 189 Runtime.experiments.cleanUpStaleExperiments(); |
162 | 190 |
163 if (InspectorFrontendHost.isUnderTest()) { | 191 if (InspectorFrontendHost.isUnderTest()) { |
| 192 var testPath = JSON.parse(prefs["testPath"] || "\"\""); |
164 // Enable experiments for testing. | 193 // Enable experiments for testing. |
165 var testPath = self.localStorage ? self.localStorage["testPath"] ||
"" : ""; | |
166 if (testPath.indexOf("debugger/promise") !== -1) | 194 if (testPath.indexOf("debugger/promise") !== -1) |
167 Runtime.experiments.enableForTest("promiseTracker"); | 195 Runtime.experiments.enableForTest("promiseTracker"); |
168 if (testPath.indexOf("elements/") !== -1) | 196 if (testPath.indexOf("elements/") !== -1) |
169 Runtime.experiments.enableForTest("animationInspection"); | 197 Runtime.experiments.enableForTest("animationInspection"); |
170 if (testPath.indexOf("layers/") !== -1) | 198 if (testPath.indexOf("layers/") !== -1) |
171 Runtime.experiments.enableForTest("layersPanel"); | 199 Runtime.experiments.enableForTest("layersPanel"); |
172 if (testPath.indexOf("service-workers/") !== -1) | 200 if (testPath.indexOf("service-workers/") !== -1) |
173 Runtime.experiments.enableForTest("serviceWorkersInResources"); | 201 Runtime.experiments.enableForTest("serviceWorkersInResources"); |
174 if (testPath.indexOf("timeline/") !== -1 || testPath.indexOf("layers
/") !== -1) | 202 if (testPath.indexOf("timeline/") !== -1 || testPath.indexOf("layers
/") !== -1) |
175 Runtime.experiments.enableForTest("layersPanel"); | 203 Runtime.experiments.enableForTest("layersPanel"); |
(...skipping 721 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
897 _settingChanged: function(event) | 925 _settingChanged: function(event) |
898 { | 926 { |
899 var value = this._setting.get(); | 927 var value = this._setting.get(); |
900 var targets = WebInspector.OverridesSupport.targetsSupportingEmulation()
; | 928 var targets = WebInspector.OverridesSupport.targetsSupportingEmulation()
; |
901 for (var i = 0; i < targets.length; ++i) | 929 for (var i = 0; i < targets.length; ++i) |
902 targets[i].emulationAgent().setScriptExecutionDisabled(value); | 930 targets[i].emulationAgent().setScriptExecutionDisabled(value); |
903 } | 931 } |
904 } | 932 } |
905 | 933 |
906 new WebInspector.Main(); | 934 new WebInspector.Main(); |
OLD | NEW |