Changeset 237652 in webkit
- Timestamp:
- Oct 31, 2018, 2:19:11 PM (7 years ago)
- Location:
- trunk/Source/WebInspectorUI
- Files:
-
- 24 edited
-
ChangeLog (modified) (1 diff)
-
UserInterface/Base/Main.js (modified) (6 diffs)
-
UserInterface/Controllers/ApplicationCacheManager.js (modified) (4 diffs)
-
UserInterface/Controllers/CSSManager.js (modified) (3 diffs)
-
UserInterface/Controllers/CanvasManager.js (modified) (2 diffs)
-
UserInterface/Controllers/ConsoleManager.js (modified) (2 diffs)
-
UserInterface/Controllers/DOMManager.js (modified) (3 diffs)
-
UserInterface/Controllers/DOMStorageManager.js (modified) (2 diffs)
-
UserInterface/Controllers/DatabaseManager.js (modified) (2 diffs)
-
UserInterface/Controllers/DebuggerManager.js (modified) (6 diffs)
-
UserInterface/Controllers/HeapManager.js (modified) (1 diff)
-
UserInterface/Controllers/IndexedDBManager.js (modified) (2 diffs)
-
UserInterface/Controllers/LayerTreeManager.js (modified) (1 diff)
-
UserInterface/Controllers/MemoryManager.js (modified) (1 diff)
-
UserInterface/Controllers/NetworkManager.js (modified) (2 diffs)
-
UserInterface/Controllers/RuntimeManager.js (modified) (1 diff)
-
UserInterface/Controllers/TargetManager.js (modified) (2 diffs)
-
UserInterface/Controllers/TimelineManager.js (modified) (6 diffs)
-
UserInterface/Controllers/WorkerManager.js (modified) (2 diffs)
-
UserInterface/Models/CSSCompletions.js (modified) (2 diffs)
-
UserInterface/Protocol/InspectorBackend.js (modified) (1 diff)
-
UserInterface/Protocol/Target.js (modified) (2 diffs)
-
UserInterface/Protocol/WorkerTarget.js (modified) (1 diff)
-
UserInterface/Test/Test.js (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebInspectorUI/ChangeLog
r237644 r237652 1 2018-10-31 Joseph Pecoraro <pecoraro@apple.com> 2 3 Web Inspector: Separate target initialization from frontend initialization 4 https://bugs.webkit.org/show_bug.cgi?id=191052 5 <rdar://problem/45658384> 6 7 Reviewed by Brian Burg. 8 9 * UserInterface/Base/Main.js: 10 (WI.loaded): 11 (WI.performOneTimeFrontendInitializationsUsingTarget): 12 Create the targets after the rest of frontend initialization. This is a step 13 toward a frontend opening and being told about multiple targets instead of 14 knowing in advance a single target it is connected to. All backend 15 messages during frontend initialization now happen with an explicit target. 16 17 * UserInterface/Controllers/ApplicationCacheManager.js: 18 (WI.ApplicationCacheManager): 19 (WI.ApplicationCacheManager.prototype.initializeTarget): 20 (WI.ApplicationCacheManager.prototype.initialize): 21 * UserInterface/Controllers/CSSManager.js: 22 (WI.CSSManager): 23 (WI.CSSManager.prototype.initializeTarget): 24 * UserInterface/Controllers/CanvasManager.js: 25 (WI.CanvasManager): 26 (WI.CanvasManager.prototype.initializeTarget): 27 * UserInterface/Controllers/ConsoleManager.js: 28 (WI.ConsoleManager): 29 (WI.ConsoleManager.prototype.initializeLogChannels): 30 * UserInterface/Controllers/DOMManager.js: 31 (WI.DOMManager): 32 (WI.DOMManager.prototype.initializeTarget): 33 * UserInterface/Controllers/DOMStorageManager.js: 34 (WI.DOMStorageManager): 35 (WI.DOMStorageManager.prototype.initializeTarget): 36 * UserInterface/Controllers/DatabaseManager.js: 37 (WI.DatabaseManager): 38 (WI.DatabaseManager.prototype.initializeTarget): 39 * UserInterface/Controllers/DebuggerManager.js: 40 (WI.DebuggerManager): 41 (WI.DebuggerManager.prototype.initializeTarget): 42 (WI.DebuggerManager.restoreBreakpointsSoon): Deleted. 43 * UserInterface/Controllers/HeapManager.js: 44 (WI.HeapManager.prototype.initializeTarget): 45 * UserInterface/Controllers/IndexedDBManager.js: 46 (WI.IndexedDBManager): 47 (WI.IndexedDBManager.prototype.initializeTarget): 48 * UserInterface/Controllers/LayerTreeManager.js: 49 (WI.LayerTreeManager.prototype.initializeTarget): 50 * UserInterface/Controllers/MemoryManager.js: 51 (WI.MemoryManager.prototype.initializeTarget): 52 * UserInterface/Controllers/NetworkManager.js: 53 (WI.NetworkManager): 54 (WI.NetworkManager.prototype.initializeTarget): 55 * UserInterface/Controllers/RuntimeManager.js: 56 (WI.RuntimeManager): 57 (WI.RuntimeManager.prototype.initializeTarget): 58 * UserInterface/Controllers/TargetManager.js: 59 (WI.TargetManager): 60 (WI.TargetManager.prototype.initializeTargetsWithMainTarget): 61 * UserInterface/Controllers/TimelineManager.js: 62 (WI.TimelineManager): 63 (WI.TimelineManager.prototype.initializeTarget): 64 (WI.TimelineManager.prototype.set enabledTimelineTypes): 65 (WI.TimelineManager.prototype._updateAutoCaptureInstruments): 66 * UserInterface/Controllers/WorkerManager.js: 67 (WI.WorkerManager): 68 (WI.WorkerManager.prototype.initializeTarget): 69 Move Target initialization out of the constructor into a top level 70 `initializeTarget` function. This will be expected to be called 71 by any target that the frontend connects to. 72 73 (WI.DebuggerManager.prototype._pauseForInternalScriptsDidChange): 74 Drive-by fix. Update all targets if the setting changes. 75 76 (WI.WorkerManager.prototype.workerCreated): 77 Call initialize on the new target. 78 79 * UserInterface/Models/CSSCompletions.js: 80 (WI.CSSCompletions.initializeCSSCompletions): 81 (WI.CSSCompletions.requestCSSCompletions): Deleted. 82 Rename requestCSSCompletions to initializeCSSCompletions to try 83 and standardize on "initialize" being used for most frontend one 84 time initialization tasks. This being one such operation that 85 only needs to be performed once on a target that supports it. 86 87 * UserInterface/Protocol/Target.js: 88 (WI.Target): 89 (WI.Target.prototype.initialize): 90 Perform explicit target initialization, such as initializing 91 the state of all backend domains / agents. This is done by asking 92 each of the managers to do initialization work for this target. 93 94 (WI.Target.prototype.get ApplicationCacheAgent): 95 (WI.Target.prototype.get CSSAgent): 96 (WI.Target.prototype.get CanvasAgent): 97 (WI.Target.prototype.get ConsoleAgent): 98 (WI.Target.prototype.get DOMAgent): 99 (WI.Target.prototype.get DOMDebuggerAgent): 100 (WI.Target.prototype.get DOMStorageAgent): 101 (WI.Target.prototype.get DatabaseAgent): 102 (WI.Target.prototype.get DebuggerAgent): 103 (WI.Target.prototype.get HeapAgent): 104 (WI.Target.prototype.get IndexedDBAgent): 105 (WI.Target.prototype.get InspectorAgent): 106 (WI.Target.prototype.get LayerTreeAgent): 107 (WI.Target.prototype.get MemoryAgent): 108 (WI.Target.prototype.get NetworkAgent): 109 (WI.Target.prototype.get PageAgent): 110 (WI.Target.prototype.get RecordingAgent): 111 (WI.Target.prototype.get RuntimeAgent): 112 (WI.Target.prototype.get ScriptProfilerAgent): 113 (WI.Target.prototype.get ServiceWorkerAgent): 114 (WI.Target.prototype.get TargetAgent): 115 (WI.Target.prototype.get TimelineAgent): 116 (WI.Target.prototype.get WorkerAgent): 117 Accessors for all of the agents on a Target. 118 119 * UserInterface/Protocol/WorkerTarget.js: 120 (WI.WorkerTarget): 121 This is now automatically done in the base class. 122 123 * UserInterface/Test/Test.js: 124 (WI.loaded): 125 (WI.performOneTimeFrontendInitializationsUsingTarget): 126 New necessary top level hooks, and initialize more like Main.js. 127 1 128 2018-10-31 Devin Rousso <drousso@apple.com> 2 129 -
trunk/Source/WebInspectorUI/UserInterface/Base/Main.js
r237613 r237652 89 89 InspectorBackend.registerCanvasDispatcher(new WI.CanvasObserver); 90 90 91 // Main backend target.92 WI.mainTarget = new WI.MainTarget;93 WI.pageTarget = WI.sharedApp.debuggableType === WI.DebuggableType.Web ? WI.mainTarget : null;94 95 // Enable agents.96 if (window.InspectorAgent)97 InspectorAgent.enable();98 99 // Perform one-time tasks.100 WI.CSSCompletions.requestCSSCompletions();101 102 91 // Listen for the ProvisionalLoadStarted event before registering for events so our code gets called before any managers or sidebars. 103 92 // This lets us save a state cookie before any managers or sidebars do any resets that would affect state (namely TimelineManager). … … 109 98 // Create the singleton managers next, before the user interface elements, so the user interface can register 110 99 // as event listeners on these managers. 111 this.targetManager = new WI.TargetManager; 112 this.branchManager = new WI.BranchManager; 113 this.networkManager = new WI.NetworkManager; 114 this.domStorageManager = new WI.DOMStorageManager; 115 this.databaseManager = new WI.DatabaseManager; 116 this.indexedDBManager = new WI.IndexedDBManager; 117 this.domManager = new WI.DOMManager; 118 this.cssManager = new WI.CSSManager; 119 this.consoleManager = new WI.ConsoleManager; 120 this.runtimeManager = new WI.RuntimeManager; 121 this.heapManager = new WI.HeapManager; 122 this.memoryManager = new WI.MemoryManager; 123 this.applicationCacheManager = new WI.ApplicationCacheManager; 124 this.timelineManager = new WI.TimelineManager; 125 this.debuggerManager = new WI.DebuggerManager; 126 this.layerTreeManager = new WI.LayerTreeManager; 127 this.workerManager = new WI.WorkerManager; 128 this.domDebuggerManager = new WI.DOMDebuggerManager; 129 this.canvasManager = new WI.CanvasManager; 130 this.auditManager = new WI.AuditManager; 131 132 // Enable the Console Agent after creating the singleton managers. 133 ConsoleAgent.enable(); 134 135 // Tell the backend we are initialized after all our initialization messages have been sent. 136 setTimeout(function() { 137 // COMPATIBILITY (iOS 8): Inspector.initialized did not exist yet. 138 if (window.InspectorAgent && InspectorAgent.initialized) 139 InspectorAgent.initialized(); 140 }, 0); 100 WI.managers = [ 101 WI.targetManager = new WI.TargetManager, 102 WI.branchManager = new WI.BranchManager, 103 WI.networkManager = new WI.NetworkManager, 104 WI.domStorageManager = new WI.DOMStorageManager, 105 WI.databaseManager = new WI.DatabaseManager, 106 WI.indexedDBManager = new WI.IndexedDBManager, 107 WI.domManager = new WI.DOMManager, 108 WI.cssManager = new WI.CSSManager, 109 WI.consoleManager = new WI.ConsoleManager, 110 WI.runtimeManager = new WI.RuntimeManager, 111 WI.heapManager = new WI.HeapManager, 112 WI.memoryManager = new WI.MemoryManager, 113 WI.applicationCacheManager = new WI.ApplicationCacheManager, 114 WI.timelineManager = new WI.TimelineManager, 115 WI.debuggerManager = new WI.DebuggerManager, 116 WI.layerTreeManager = new WI.LayerTreeManager, 117 WI.workerManager = new WI.WorkerManager, 118 WI.domDebuggerManager = new WI.DOMDebuggerManager, 119 WI.canvasManager = new WI.CanvasManager, 120 WI.auditManager = new WI.AuditManager, 121 ]; 141 122 142 123 // Register for events. 143 this.debuggerManager.addEventListener(WI.DebuggerManager.Event.Paused, this._debuggerDidPause, this);144 this.debuggerManager.addEventListener(WI.DebuggerManager.Event.Resumed, this._debuggerDidResume, this);145 this.domManager.addEventListener(WI.DOMManager.Event.InspectModeStateChanged, this._inspectModeStateChanged, this);146 this.domManager.addEventListener(WI.DOMManager.Event.DOMNodeWasInspected, this._domNodeWasInspected, this);147 this.domStorageManager.addEventListener(WI.DOMStorageManager.Event.DOMStorageObjectWasInspected, this._domStorageWasInspected, this);148 this.databaseManager.addEventListener(WI.DatabaseManager.Event.DatabaseWasInspected, this._databaseWasInspected, this);149 this.networkManager.addEventListener(WI.NetworkManager.Event.MainFrameDidChange, this._mainFrameDidChange, this);150 this.networkManager.addEventListener(WI.NetworkManager.Event.FrameWasAdded, this._frameWasAdded, this);124 WI.debuggerManager.addEventListener(WI.DebuggerManager.Event.Paused, this._debuggerDidPause, this); 125 WI.debuggerManager.addEventListener(WI.DebuggerManager.Event.Resumed, this._debuggerDidResume, this); 126 WI.domManager.addEventListener(WI.DOMManager.Event.InspectModeStateChanged, this._inspectModeStateChanged, this); 127 WI.domManager.addEventListener(WI.DOMManager.Event.DOMNodeWasInspected, this._domNodeWasInspected, this); 128 WI.domStorageManager.addEventListener(WI.DOMStorageManager.Event.DOMStorageObjectWasInspected, this._domStorageWasInspected, this); 129 WI.databaseManager.addEventListener(WI.DatabaseManager.Event.DatabaseWasInspected, this._databaseWasInspected, this); 130 WI.networkManager.addEventListener(WI.NetworkManager.Event.MainFrameDidChange, this._mainFrameDidChange, this); 131 WI.networkManager.addEventListener(WI.NetworkManager.Event.FrameWasAdded, this._frameWasAdded, this); 151 132 152 133 WI.Frame.addEventListener(WI.Frame.Event.MainResourceDidChange, this._mainResourceDidChange, this); … … 156 137 // Create settings. 157 138 this._showingSplitConsoleSetting = new WI.Setting("showing-split-console", false); 158 159 139 this._openTabsSetting = new WI.Setting("open-tab-types", ["elements", "network", "debugger", "resources", "timeline", "storage", "canvas", "console"]); 160 140 this._selectedTabIndexSetting = new WI.Setting("selected-tab-index", 0); 161 162 141 this.showShadowDOMSetting = new WI.Setting("show-shadow-dom", false); 163 164 // COMPATIBILITY (iOS 8): Page.enableTypeProfiler did not exist.165 142 this.showJavaScriptTypeInformationSetting = new WI.Setting("show-javascript-type-information", false); 166 143 this.showJavaScriptTypeInformationSetting.addEventListener(WI.Setting.Event.Changed, this._showJavaScriptTypeInformationSettingChanged, this); 167 if (this.showJavaScriptTypeInformationSetting.value && window.RuntimeAgent && RuntimeAgent.enableTypeProfiler)168 RuntimeAgent.enableTypeProfiler();169 170 144 this.enableControlFlowProfilerSetting = new WI.Setting("enable-control-flow-profiler", false); 171 145 this.enableControlFlowProfilerSetting.addEventListener(WI.Setting.Event.Changed, this._enableControlFlowProfilerSettingChanged, this); 172 if (this.enableControlFlowProfilerSetting.value && window.RuntimeAgent && RuntimeAgent.enableControlFlowProfiler)173 RuntimeAgent.enableControlFlowProfiler();174 175 // COMPATIBILITY (iOS 8): Page.setShowPaintRects did not exist.176 146 this.showPaintRectsSetting = new WI.Setting("show-paint-rects", false); 177 if (this.showPaintRectsSetting.value && window.PageAgent && PageAgent.setShowPaintRects) 178 PageAgent.setShowPaintRects(true); 179 147 this.resourceCachingDisabledSetting = new WI.Setting("disable-resource-caching", false); 148 this.resourceCachingDisabledSetting.addEventListener(WI.Setting.Event.Changed, this._resourceCachingDisabledSettingChanged, this); 149 150 // State. 180 151 this.printStylesEnabled = false; 181 182 // COMPATIBILITY (iOS 10.3): Network.setDisableResourceCaching did not exist.183 this.resourceCachingDisabledSetting = new WI.Setting("disable-resource-caching", false);184 if (window.NetworkAgent && NetworkAgent.setResourceCachingDisabled) {185 if (this.resourceCachingDisabledSetting.value)186 NetworkAgent.setResourceCachingDisabled(true);187 this.resourceCachingDisabledSetting.addEventListener(WI.Setting.Event.Changed, this._resourceCachingDisabledSettingChanged, this);188 }189 190 152 this.setZoomFactor(WI.settings.zoomFactor.value); 191 192 this.mouseCoords = { 193 x: 0, 194 y: 0 195 }; 196 153 this.mouseCoords = {x: 0, y: 0}; 197 154 this.visible = false; 198 199 155 this._windowKeydownListeners = []; 156 157 // Targets. 158 WI.mainTarget = new WI.MainTarget; 159 WI.mainTarget.initialize(); 160 WI.pageTarget = WI.sharedApp.debuggableType === WI.DebuggableType.Web ? WI.mainTarget : null; 161 162 // Post-target initialization. 163 WI.targetManager.initializeMainTarget(); 164 WI.runtimeManager.activeExecutionContext = WI.mainTarget.executionContext; 200 165 }; 201 166 … … 520 485 }; 521 486 487 WI.performOneTimeFrontendInitializationsUsingTarget = function(target) 488 { 489 if (!WI.__didPerformConsoleInitialization && target.ConsoleAgent) { 490 WI.__didPerformConsoleInitialization = true; 491 WI.consoleManager.initializeLogChannels(target); 492 } 493 494 if (!WI.__didPerformCSSInitialization && target.CSSAgent) { 495 WI.__didPerformCSSInitialization = true; 496 WI.CSSCompletions.initializeCSSCompletions(target); 497 } 498 }; 499 522 500 WI.isTabTypeAllowed = function(tabType) 523 501 { … … 683 661 this.notifications.dispatchEventToListeners(WI.Notification.ExtraDomainsActivated, {domains}); 684 662 685 WI.CSSCompletions.requestCSSCompletions(); 663 if (WI.mainTarget && WI.mainTarget.CSSAgent) 664 WI.CSSCompletions.initializeCSSCompletions(WI.assumingMainTarget()); 686 665 687 666 this._updateReloadToolbarButton(); … … 2704 2683 Object.defineProperty(WI, "targets", 2705 2684 { 2706 get() { return this.targetManager.targets; }2685 get() { return WI.targetManager.targets; } 2707 2686 }); 2708 2687 -
trunk/Source/WebInspectorUI/UserInterface/Controllers/ApplicationCacheManager.js
r236766 r237652 24 24 */ 25 25 26 // FIXME: ApplicationCacheManager lacks advanced multi-target support. (ApplciationCache objects per-target) 27 26 28 WI.ApplicationCacheManager = class ApplicationCacheManager extends WI.Object 27 29 { … … 30 32 super(); 31 33 32 if (window.ApplicationCacheAgent)33 ApplicationCacheAgent.enable();34 35 34 WI.Frame.addEventListener(WI.Frame.Event.MainResourceDidChange, this._mainResourceDidChange, this); 36 35 WI.Frame.addEventListener(WI.Frame.Event.ChildFrameWasRemoved, this._childFrameWasRemoved, this); … … 41 40 } 42 41 42 // Target 43 44 initializeTarget(target) 45 { 46 if (target.ApplicationCacheAgent) { 47 target.ApplicationCacheAgent.enable(); 48 target.ApplicationCacheAgent.getFramesWithManifests(this._framesWithManifestsLoaded.bind(this)); 49 } 50 } 51 43 52 // Public 44 53 … … 46 55 { 47 56 this._applicationCacheObjects = {}; 48 49 if (window.ApplicationCacheAgent)50 ApplicationCacheAgent.getFramesWithManifests(this._framesWithManifestsLoaded.bind(this));51 57 } 52 58 -
trunk/Source/WebInspectorUI/UserInterface/Controllers/CSSManager.js
r236766 r237652 24 24 */ 25 25 26 // FIXME: CSSManager lacks advanced multi-target support. (Stylesheets per-target) 27 26 28 WI.CSSManager = class CSSManager extends WI.Object 27 29 { … … 29 31 { 30 32 super(); 31 32 if (window.CSSAgent)33 CSSAgent.enable();34 33 35 34 WI.Frame.addEventListener(WI.Frame.Event.MainResourceDidChange, this._mainResourceDidChange, this); … … 51 50 // added/removed events and must be fetched manually. 52 51 this._fetchedInitialStyleSheets = window.CSSAgent && window.CSSAgent.hasEvent("styleSheetAdded"); 52 } 53 54 // Target 55 56 initializeTarget(target) 57 { 58 if (target.CSSAgent) 59 target.CSSAgent.enable(); 53 60 } 54 61 -
trunk/Source/WebInspectorUI/UserInterface/Controllers/CanvasManager.js
r237198 r237652 24 24 */ 25 25 26 // FIXME: CanvasManager lacks advanced multi-target support. (Canvases per-target) 27 26 28 WI.CanvasManager = class CanvasManager extends WI.Object 27 29 { … … 35 37 this._shaderProgramIdentifierMap = new Map; 36 38 this._importedRecordings = new Set; 37 38 if (window.CanvasAgent) 39 CanvasAgent.enable(); 39 } 40 41 // Target 42 43 initializeTarget(target) 44 { 45 if (target.CanvasAgent) 46 target.CanvasAgent.enable(); 40 47 } 41 48 -
trunk/Source/WebInspectorUI/UserInterface/Controllers/ConsoleManager.js
r236776 r237652 40 40 this._customLoggingChannels = []; 41 41 this._loggingChannelSources = []; 42 43 if (WI.ConsoleManager.supportsLogChannels()) {44 this._loggingChannelSources = [WI.ConsoleMessage.MessageSource.Media, WI.ConsoleMessage.MessageSource.WebRTC];45 ConsoleAgent.getLoggingChannels((error, channels) => {46 if (error)47 return;48 49 for (let channel of channels) {50 console.assert(this._loggingChannelSources.includes(channel.source));51 }52 53 this._customLoggingChannels = channels.map(WI.LoggingChannel.fromPayload);54 });55 }56 42 } 57 43 … … 165 151 } 166 152 153 initializeLogChannels(target) 154 { 155 console.assert(target.ConsoleAgent); 156 157 if (!WI.ConsoleManager.supportsLogChannels()) 158 return; 159 160 if (this._loggingChannelSources.length) 161 return; 162 163 this._loggingChannelSources = [WI.ConsoleMessage.MessageSource.Media, WI.ConsoleMessage.MessageSource.WebRTC]; 164 165 target.ConsoleAgent.getLoggingChannels((error, channels) => { 166 if (error) 167 return; 168 169 console.assert(channels.every((channel) => this._loggingChannelSources.includes(channel.source))); 170 171 this._customLoggingChannels = channels.map(WI.LoggingChannel.fromPayload); 172 }); 173 } 174 167 175 // Private 168 176 -
trunk/Source/WebInspectorUI/UserInterface/Controllers/DOMManager.js
r237435 r237652 31 31 */ 32 32 33 // FIXME: DOMManager lacks advanced multi-target support. (DOMNodes per-target) 34 33 35 WI.DOMManager = class DOMManager extends WI.Object 34 36 { … … 47 49 48 50 WI.Frame.addEventListener(WI.Frame.Event.MainResourceDidChange, this._mainResourceDidChange, this); 49 50 this.ensureDocument(); 51 } 52 53 // Target 54 55 initializeTarget(target) 56 { 57 // FIXME: This should be improved when adding better DOM multi-target support since it is really per-target. 58 // This currently uses a setTimeout since it doesn't need to happen immediately, and DOMManager uses the 59 // global DOMAgent to request the document, so we want to make sure we've transitioned the global agents 60 // to this target if necessary. 61 if (target.DOMAgent) { 62 setTimeout(() => { 63 this.ensureDocument(); 64 }); 65 } 51 66 } 52 67 … … 72 87 this._pendingDocumentRequestCallbacks = [callback]; 73 88 74 function onDocumentAvailable(error, root) 75 { 76 if (!error) 77 this._setDocument(root); 78 79 for (let callback of this._pendingDocumentRequestCallbacks) 80 callback(this._document); 81 82 this._pendingDocumentRequestCallbacks = null; 83 } 84 85 if (window.DOMAgent) 86 DOMAgent.getDocument(onDocumentAvailable.bind(this)); 89 if (window.DOMAgent) { 90 DOMAgent.getDocument((error, root) => { 91 if (!error) 92 this._setDocument(root); 93 94 for (let callback of this._pendingDocumentRequestCallbacks) 95 callback(this._document); 96 97 this._pendingDocumentRequestCallbacks = null; 98 }); 99 } 87 100 } 88 101 -
trunk/Source/WebInspectorUI/UserInterface/Controllers/DOMStorageManager.js
r236766 r237652 25 25 */ 26 26 27 // FIXME: DOMStorageManager lacks advanced multi-target support. (DOMStorage per-target) 28 27 29 WI.DOMStorageManager = class DOMStorageManager extends WI.Object 28 30 { … … 31 33 super(); 32 34 33 if (window.DOMStorageAgent)34 DOMStorageAgent.enable();35 36 35 WI.Frame.addEventListener(WI.Frame.Event.MainResourceDidChange, this._mainResourceDidChange, this); 37 36 WI.Frame.addEventListener(WI.Frame.Event.SecurityOriginDidChange, this._securityOriginDidChange, this); 38 37 39 38 this.initialize(); 39 } 40 41 // Target 42 43 initializeTarget(target) 44 { 45 if (target.DOMStorageAgent) 46 target.DOMStorageAgent.enable(); 40 47 } 41 48 -
trunk/Source/WebInspectorUI/UserInterface/Controllers/DatabaseManager.js
r236766 r237652 25 25 */ 26 26 27 // FIXME: DatabaseManager lacks advanced multi-target support. (DataBase per-target) 28 27 29 WI.DatabaseManager = class DatabaseManager extends WI.Object 28 30 { … … 31 33 super(); 32 34 33 if (window.DatabaseAgent)34 DatabaseAgent.enable();35 36 35 WI.Frame.addEventListener(WI.Frame.Event.MainResourceDidChange, this._mainResourceDidChange, this); 37 36 38 37 this.initialize(); 38 } 39 40 // Target 41 42 initializeTarget(target) 43 { 44 if (target.DatabaseAgent) 45 target.DatabaseAgent.enable(); 39 46 } 40 47 -
trunk/Source/WebInspectorUI/UserInterface/Controllers/DebuggerManager.js
r236845 r237652 30 30 super(); 31 31 32 DebuggerAgent.enable();33 34 32 WI.notifications.addEventListener(WI.Notification.DebugUIEnabledDidChange, this._debugUIEnabledDidChange, this); 35 33 … … 46 44 WI.targetManager.addEventListener(WI.TargetManager.Event.TargetRemoved, this._targetRemoved, this); 47 45 46 WI.settings.pauseForInternalScripts.addEventListener(WI.Setting.Event.Changed, this._pauseForInternalScriptsDidChange); 47 48 48 WI.Frame.addEventListener(WI.Frame.Event.MainResourceDidChange, this._mainResourceDidChange, this); 49 49 … … 79 79 this._internalWebKitScripts = []; 80 80 this._targetDebuggerDataMap = new Map; 81 this._targetDebuggerDataMap.set(WI.mainTarget, new WI.DebuggerData(WI.mainTarget));82 81 83 82 // Used to detect deleted probe actions. … … 96 95 } 97 96 98 DebuggerAgent.setBreakpointsActive(this._breakpointsEnabledSetting.value);99 DebuggerAgent.setPauseOnExceptions(this._breakOnExceptionsState);100 101 // COMPATIBILITY (iOS 10): DebuggerAgent.setPauseOnAssertions did not exist yet.102 if (DebuggerAgent.setPauseOnAssertions)103 DebuggerAgent.setPauseOnAssertions(this._assertionFailuresBreakpointEnabledSetting.value);104 105 // COMPATIBILITY (iOS 10): Debugger.setAsyncStackTraceDepth did not exist yet.106 if (DebuggerAgent.setAsyncStackTraceDepth)107 DebuggerAgent.setAsyncStackTraceDepth(this._asyncStackTraceDepthSetting.value);108 109 // COMPATIBILITY (iOS 12): DebuggerAgent.setPauseForInternalScripts did not exist yet.110 if (DebuggerAgent.setPauseForInternalScripts) {111 let updateBackendSetting = () => { DebuggerAgent.setPauseForInternalScripts(WI.settings.pauseForInternalScripts.value); };112 WI.settings.pauseForInternalScripts.addEventListener(WI.Setting.Event.Changed, updateBackendSetting);113 114 updateBackendSetting();115 }116 117 97 this._ignoreBreakpointDisplayLocationDidChangeEvent = false; 118 98 119 function restoreBreakpointsSoon() { 99 // Ensure that all managers learn about restored breakpoints, 100 // regardless of their initialization order. 101 setTimeout(() => { 120 102 this._restoringBreakpoints = true; 121 103 for (let cookie of this._breakpointsSetting.value) 122 104 this.addBreakpoint(new WI.Breakpoint(cookie)); 123 105 this._restoringBreakpoints = false; 124 } 125 126 // Ensure that all managers learn about restored breakpoints, 127 // regardless of their initialization order. 128 setTimeout(restoreBreakpointsSoon.bind(this), 0); 106 }); 107 } 108 109 // Target 110 111 initializeTarget(target) 112 { 113 let targetData = this.dataForTarget(target); 114 115 // Initialize global state. 116 target.DebuggerAgent.enable(); 117 target.DebuggerAgent.setBreakpointsActive(this._breakpointsEnabledSetting.value); 118 target.DebuggerAgent.setPauseOnExceptions(this._breakOnExceptionsState); 119 120 // COMPATIBILITY (iOS 10): DebuggerAgent.setPauseOnAssertions did not exist yet. 121 if (DebuggerAgent.setPauseOnAssertions) 122 target.DebuggerAgent.setPauseOnAssertions(this._assertionFailuresBreakpointEnabledSetting.value); 123 124 // COMPATIBILITY (iOS 10): Debugger.setAsyncStackTraceDepth did not exist yet. 125 if (DebuggerAgent.setAsyncStackTraceDepth) 126 target.DebuggerAgent.setAsyncStackTraceDepth(this._asyncStackTraceDepthSetting.value); 127 128 // COMPATIBILITY (iOS 12): DebuggerAgent.setPauseForInternalScripts did not exist yet. 129 if (DebuggerAgent.setPauseForInternalScripts) 130 target.DebuggerAgent.setPauseForInternalScripts(WI.settings.pauseForInternalScripts.value); 131 132 if (this.paused) 133 targetData.pauseIfNeeded(); 134 135 // Initialize breakpoints. 136 this._restoringBreakpoints = true; 137 for (let breakpoint of this._breakpoints) { 138 if (breakpoint.disabled) 139 continue; 140 if (!breakpoint.contentIdentifier) 141 continue; 142 this._setBreakpoint(breakpoint, target); 143 } 144 this._restoringBreakpoints = false; 129 145 } 130 146 … … 538 554 { 539 555 return this._nextBreakpointActionIdentifier++; 540 }541 542 initializeTarget(target)543 {544 let DebuggerAgent = target.DebuggerAgent;545 let targetData = this.dataForTarget(target);546 547 // Initialize global state.548 DebuggerAgent.enable();549 DebuggerAgent.setBreakpointsActive(this._breakpointsEnabledSetting.value);550 DebuggerAgent.setPauseOnAssertions(this._assertionFailuresBreakpointEnabledSetting.value);551 DebuggerAgent.setPauseOnExceptions(this._breakOnExceptionsState);552 DebuggerAgent.setAsyncStackTraceDepth(this._asyncStackTraceDepthSetting.value);553 554 if (this.paused)555 targetData.pauseIfNeeded();556 557 // Initialize breakpoints.558 this._restoringBreakpoints = true;559 for (let breakpoint of this._breakpoints) {560 if (breakpoint.disabled)561 continue;562 if (!breakpoint.contentIdentifier)563 continue;564 this._setBreakpoint(breakpoint, target);565 }566 this._restoringBreakpoints = false;567 556 } 568 557 … … 1166 1155 } 1167 1156 1157 _pauseForInternalScriptsDidChange(event) 1158 { 1159 // COMPATIBILITY (iOS 12): DebuggerAgent.setPauseForInternalScripts did not exist yet. 1160 console.assert(DebuggerAgent.setPauseForInternalScripts); 1161 1162 for (let target of WI.targets) 1163 target.DebuggerAgent.setPauseForInternalScripts(WI.settings.pauseForInternalScripts.value); 1164 } 1165 1168 1166 _mainResourceDidChange(event) 1169 1167 { -
trunk/Source/WebInspectorUI/UserInterface/Controllers/HeapManager.js
r220119 r237652 26 26 WI.HeapManager = class HeapManager extends WI.Object 27 27 { 28 constructor() 28 // Target 29 30 initializeTarget(target) 29 31 { 30 super(); 31 32 if (window.HeapAgent) 33 HeapAgent.enable(); 32 if (target.HeapAgent) 33 target.HeapAgent.enable(); 34 34 } 35 35 -
trunk/Source/WebInspectorUI/UserInterface/Controllers/IndexedDBManager.js
r236766 r237652 25 25 */ 26 26 27 // FIXME: IndexedDBManager lacks advanced multi-target support. (IndexedDatabase per-target) 28 27 29 WI.IndexedDBManager = class IndexedDBManager extends WI.Object 28 30 { … … 31 33 super(); 32 34 33 if (window.IndexedDBAgent)34 IndexedDBAgent.enable();35 36 35 WI.Frame.addEventListener(WI.Frame.Event.MainResourceDidChange, this._mainResourceDidChange, this); 37 36 WI.Frame.addEventListener(WI.Frame.Event.SecurityOriginDidChange, this._securityOriginDidChange, this); 38 37 39 38 this.initialize(); 39 } 40 41 // Target 42 43 initializeTarget(target) 44 { 45 if (target.IndexedDBAgent) 46 target.IndexedDBAgent.enable(); 40 47 } 41 48 -
trunk/Source/WebInspectorUI/UserInterface/Controllers/LayerTreeManager.js
r236777 r237652 24 24 */ 25 25 26 // FIXME: LayerTreeManager lacks advanced multi-target support. (Layers per-target) 27 26 28 WI.LayerTreeManager = class LayerTreeManager extends WI.Object 27 29 { 28 constructor() 30 // Target 31 32 initializeTarget(target) 29 33 { 30 super(); 31 32 if (window.LayerTreeAgent) 33 LayerTreeAgent.enable(); 34 if (target.LayerTreeAgent) 35 target.LayerTreeAgent.enable(); 34 36 } 35 37 -
trunk/Source/WebInspectorUI/UserInterface/Controllers/MemoryManager.js
r220119 r237652 26 26 WI.MemoryManager = class MemoryManager extends WI.Object 27 27 { 28 constructor() 28 // Target 29 30 initializeTarget(target) 29 31 { 30 super(); 31 32 if (window.MemoryAgent) 33 MemoryAgent.enable(); 32 if (target.MemoryAgent) 33 target.MemoryAgent.enable(); 34 34 } 35 35 -
trunk/Source/WebInspectorUI/UserInterface/Controllers/NetworkManager.js
r236995 r237652 24 24 */ 25 25 26 // FIXME: NetworkManager lacks advanced multi-target support. (Network.loadResource invocations per-target) 27 26 28 WI.NetworkManager = class NetworkManager extends WI.Object 27 29 { … … 41 43 this._downloadingSourceMaps = new Set; 42 44 43 if (window.PageAgent) {44 PageAgent.enable();45 PageAgent.getResourceTree(this._processMainFrameResourceTreePayload.bind(this));46 }47 48 if (window.ServiceWorkerAgent)49 ServiceWorkerAgent.getInitializationInfo(this._processServiceWorkerConfiguration.bind(this));50 51 if (window.NetworkAgent)52 NetworkAgent.enable();53 54 45 WI.notifications.addEventListener(WI.Notification.ExtraDomainsActivated, this._extraDomainsActivated, this); 55 46 WI.Frame.addEventListener(WI.Frame.Event.MainResourceDidChange, this._handleFrameMainResourceDidChange, this); 47 } 48 49 // Target 50 51 initializeTarget(target) 52 { 53 if (target.PageAgent) { 54 target.PageAgent.enable(); 55 target.PageAgent.getResourceTree(this._processMainFrameResourceTreePayload.bind(this)); 56 } 57 58 // FIXME: ServiceWorkerAgent should only be exposed in the "serviceworker" target type. 59 // Currently it is exposed to "web" targets. Work around this by only using the 60 // ServiceWorker domain if there is no Page domain. 61 if (target.ServiceWorkerAgent && !target.PageAgent) 62 target.ServiceWorkerAgent.getInitializationInfo(this._processServiceWorkerConfiguration.bind(this)); 63 64 if (target.NetworkAgent) { 65 target.NetworkAgent.enable(); 66 67 // COMPATIBILITY (iOS 10.3): Network.setDisableResourceCaching did not exist. 68 if (NetworkAgent.setResourceCachingDisabled) { 69 if (WI.resourceCachingDisabledSetting && WI.resourceCachingDisabledSetting.value) 70 target.NetworkAgent.setResourceCachingDisabled(true); 71 } 72 } 73 74 if (target.type === WI.Target.Type.Worker) 75 this.adoptOrphanedResourcesForTarget(target); 56 76 } 57 77 -
trunk/Source/WebInspectorUI/UserInterface/Controllers/RuntimeManager.js
r223308 r237652 30 30 super(); 31 31 32 // Enable the RuntimeAgent to receive notification of execution contexts. 33 RuntimeAgent.enable(); 34 35 this._activeExecutionContext = WI.mainTarget.executionContext; 32 this._activeExecutionContext = null; 36 33 37 34 WI.Frame.addEventListener(WI.Frame.Event.ExecutionContextsCleared, this._frameExecutionContextsCleared, this); 35 } 36 37 // Target 38 39 initializeTarget(target) 40 { 41 target.RuntimeAgent.enable(); 42 43 // COMPATIBILITY (iOS 8): Runtime.enableTypeProfiler did not exist. 44 if (WI.showJavaScriptTypeInformationSetting && WI.showJavaScriptTypeInformationSetting.value && RuntimeAgent.enableTypeProfiler) 45 target.RuntimeAgent.enableTypeProfiler(); 46 47 // COMPATIBILITY (iOS 10): Runtime.enableControlFlowProfiler did not exist 48 if (WI.enableControlFlowProfilerSetting && WI.enableControlFlowProfilerSetting.value && RuntimeAgent.enableControlFlowProfiler) 49 target.RuntimeAgent.enableControlFlowProfiler(); 38 50 } 39 51 -
trunk/Source/WebInspectorUI/UserInterface/Controllers/TargetManager.js
r225244 r237652 30 30 super(); 31 31 32 console.assert(WI.mainTarget); 33 34 this._targets = new Set([WI.mainTarget]); 32 this._targets = new Set; 35 33 } 36 34 … … 71 69 this.dispatchEventToListeners(WI.TargetManager.Event.TargetRemoved, {target}); 72 70 } 71 72 initializeMainTarget() 73 { 74 console.assert(WI.mainTarget); 75 this._targets.add(WI.mainTarget); 76 } 73 77 }; 74 78 -
trunk/Source/WebInspectorUI/UserInterface/Controllers/TimelineManager.js
r236845 r237652 24 24 */ 25 25 26 // FIXME: TimelineManager lacks advanced multi-target support. (Instruments/Profilers per-target) 27 26 28 WI.TimelineManager = class TimelineManager extends WI.Object 27 29 { … … 39 41 40 42 this._enabledTimelineTypesSetting = new WI.Setting("enabled-instrument-types", WI.TimelineManager.defaultTimelineTypes()); 41 this._updateAutoCaptureInstruments();42 43 43 44 this._persistentNetworkTimeline = new WI.NetworkTimeline; … … 63 64 } 64 65 66 // Target 67 68 initializeTarget(target) 69 { 70 this._updateAutoCaptureInstruments([target]); 71 } 72 65 73 // Static 66 74 … … 168 176 this._enabledTimelineTypesSetting.value = x || []; 169 177 170 this._updateAutoCaptureInstruments( );178 this._updateAutoCaptureInstruments(WI.targets); 171 179 } 172 180 … … 1053 1061 } 1054 1062 1055 _updateAutoCaptureInstruments() 1056 { 1057 if (!window.TimelineAgent) 1058 return; 1059 1063 _updateAutoCaptureInstruments(targets) 1064 { 1060 1065 if (!TimelineAgent.setInstruments) 1061 1066 return; … … 1083 1088 } 1084 1089 1085 TimelineAgent.setInstruments([...instrumentSet]); 1090 for (let target of targets) { 1091 if (target.TimelineAgent) 1092 target.TimelineAgent.setInstruments([...instrumentSet]); 1093 } 1086 1094 } 1087 1095 }; -
trunk/Source/WebInspectorUI/UserInterface/Controllers/WorkerManager.js
r220119 r237652 31 31 32 32 this._connections = new Map; 33 } 33 34 34 if (window.WorkerAgent) 35 WorkerAgent.enable(); 35 // Target 36 37 initializeTarget(target) 38 { 39 if (target.WorkerAgent) 40 target.WorkerAgent.enable(); 36 41 } 37 42 … … 42 47 let connection = new InspectorBackend.WorkerConnection(workerId); 43 48 let workerTarget = new WI.WorkerTarget(workerId, url, connection); 49 workerTarget.initialize(); 50 44 51 WI.targetManager.addTarget(workerTarget); 45 52 -
trunk/Source/WebInspectorUI/UserInterface/Models/CSSCompletions.js
r236336 r237652 79 79 // Static 80 80 81 static requestCSSCompletions() 82 { 81 static initializeCSSCompletions(target) 82 { 83 console.assert(target.CSSAgent); 84 83 85 if (WI.CSSCompletions.cssNameCompletions) 84 86 return; … … 163 165 } 164 166 165 if (window.CSSAgent) { 166 CSSAgent.getSupportedCSSProperties(propertyNamesCallback); 167 168 // COMPATIBILITY (iOS 9): CSS.getSupportedSystemFontFamilyNames did not exist. 169 if (CSSAgent.getSupportedSystemFontFamilyNames) 170 CSSAgent.getSupportedSystemFontFamilyNames(fontFamilyNamesCallback); 171 } 167 target.CSSAgent.getSupportedCSSProperties(propertyNamesCallback); 168 169 // COMPATIBILITY (iOS 9): CSS.getSupportedSystemFontFamilyNames did not exist. 170 if (CSSAgent.getSupportedSystemFontFamilyNames) 171 target.CSSAgent.getSupportedSystemFontFamilyNames(fontFamilyNamesCallback); 172 172 } 173 173 -
trunk/Source/WebInspectorUI/UserInterface/Protocol/InspectorBackend.js
r224634 r237652 71 71 get dumpInspectorProtocolMessages() 72 72 { 73 return true; 73 74 return WI.settings.autoLogProtocolMessages.value; 74 75 } -
trunk/Source/WebInspectorUI/UserInterface/Protocol/Target.js
r234945 r237652 34 34 this._type = type; 35 35 this._connection = connection; 36 this._agents = connection._agents; 36 37 this._executionContext = null; 37 38 this._mainResource = null; … … 40 41 41 42 this._connection.target = this; 43 44 // Agents we always expect in every target. 45 console.assert(this.RuntimeAgent); 46 console.assert(this.DebuggerAgent); 47 console.assert(this.ConsoleAgent); 48 } 49 50 // Target 51 52 initialize() 53 { 54 // Intentionally initialize InspectorAgent first if it is available. 55 // This may not be strictly necessary anymore, but is historical. 56 if (this.InspectorAgent) 57 this.InspectorAgent.enable(); 58 59 // Initialize agents. 60 for (let manager of WI.managers) { 61 if (manager.initializeTarget) 62 manager.initializeTarget(this); 63 } 64 65 // Non-manager specific initialization. 66 // COMPATIBILITY (iOS 8): Page.setShowPaintRects did not exist. 67 if (this.PageAgent) { 68 if (PageAgent.setShowPaintRects && WI.showPaintRectsSetting && WI.showPaintRectsSetting.value) 69 this.PageAgent.setShowPaintRects(true); 70 } 71 72 // Intentionally defer ConsoleAgent initialization to the end. We do this so that any 73 // previous initialization messages will have their responses arrive before a stream 74 // of console message added events come in after enabling Console. 75 this.ConsoleAgent.enable(); 76 77 setTimeout(() => { 78 // Use this opportunity to run any one time frontend initialization 79 // now that we have a target with potentially new capabilities. 80 WI.performOneTimeFrontendInitializationsUsingTarget(this); 81 }); 82 83 setTimeout(() => { 84 // Tell the backend we are initialized after all our initialization messages have been sent. 85 // This allows an automatically paused backend to resume execution, but we want to ensure 86 // our breakpoints were already sent to that backend. 87 // COMPATIBILITY (iOS 8): Inspector.initialized did not exist yet. 88 if (this.InspectorAgent && InspectorAgent.initialized) 89 this.InspectorAgent.initialized(); 90 }); 42 91 } 43 92 44 93 // Agents 45 94 46 get RuntimeAgent() { return this._connection._agents.Runtime; } 47 get ConsoleAgent() { return this._connection._agents.Console; } 48 get DebuggerAgent() { return this._connection._agents.Debugger; } 49 get HeapAgent() { return this._connection._agents.Heap; } 95 get ApplicationCacheAgent() { return this._agents.ApplicationCache; } 96 get CSSAgent() { return this._agents.CSS; } 97 get CanvasAgent() { return this._agents.Canvas; } 98 get ConsoleAgent() { return this._agents.Console; } 99 get DOMAgent() { return this._agents.DOM; } 100 get DOMDebuggerAgent() { return this._agents.DOMDebugger; } 101 get DOMStorageAgent() { return this._agents.DOMStorage; } 102 get DatabaseAgent() { return this._agents.Database; } 103 get DebuggerAgent() { return this._agents.Debugger; } 104 get HeapAgent() { return this._agents.Heap; } 105 get IndexedDBAgent() { return this._agents.IndexedDB; } 106 get InspectorAgent() { return this._agents.Inspector; } 107 get LayerTreeAgent() { return this._agents.LayerTree; } 108 get MemoryAgent() { return this._agents.Memory; } 109 get NetworkAgent() { return this._agents.Network; } 110 get PageAgent() { return this._agents.Page; } 111 get RecordingAgent() { return this._agents.Recording; } 112 get RuntimeAgent() { return this._agents.Runtime; } 113 get ScriptProfilerAgent() { return this._agents.ScriptProfiler; } 114 get ServiceWorkerAgent() { return this._agents.ServiceWorker; } 115 get TargetAgent() { return this._agents.Target; } 116 get TimelineAgent() { return this._agents.Timeline; } 117 get WorkerAgent() { return this._agents.Worker; } 50 118 51 119 // Public -
trunk/Source/WebInspectorUI/UserInterface/Protocol/WorkerTarget.js
r236766 r237652 30 30 super(workerId, name, WI.Target.Type.Worker, connection); 31 31 32 WI.networkManager.adoptOrphanedResourcesForTarget(this); 33 34 if (this.RuntimeAgent) { 35 this._executionContext = new WI.ExecutionContext(this, WI.RuntimeManager.TopLevelExecutionContextIdentifier, this.displayName, false, null); 36 this.RuntimeAgent.enable(); 37 if (WI.showJavaScriptTypeInformationSetting && WI.showJavaScriptTypeInformationSetting.value) 38 this.RuntimeAgent.enableTypeProfiler(); 39 if (WI.enableControlFlowProfilerSetting && WI.enableControlFlowProfilerSetting.value) 40 this.RuntimeAgent.enableControlFlowProfiler(); 41 } 42 43 if (this.DebuggerAgent) 44 WI.debuggerManager.initializeTarget(this); 45 46 if (this.ConsoleAgent) 47 this.ConsoleAgent.enable(); 48 49 if (this.HeapAgent) 50 this.HeapAgent.enable(); 32 this._executionContext = new WI.ExecutionContext(this, WI.RuntimeManager.TopLevelContextExecutionIdentifier, this.displayName, false, null); 51 33 } 52 34 -
trunk/Source/WebInspectorUI/UserInterface/Test/Test.js
r237613 r237652 45 45 InspectorBackend.registerCanvasDispatcher(new WI.CanvasObserver); 46 46 47 WI.mainTarget = new WI.MainTarget; 48 WI.pageTarget = WI.sharedApp.debuggableType === WI.DebuggableType.Web ? WI.mainTarget : null; 47 // Instantiate controllers used by tests. 48 WI.managers = [ 49 WI.targetManager = new WI.TargetManager, 50 WI.networkManager = new WI.NetworkManager, 51 WI.domStorageManager = new WI.DOMStorageManager, 52 WI.domManager = new WI.DOMManager, 53 WI.cssManager = new WI.CSSManager, 54 WI.consoleManager = new WI.ConsoleManager, 55 WI.runtimeManager = new WI.RuntimeManager, 56 WI.heapManager = new WI.HeapManager, 57 WI.memoryManager = new WI.MemoryManager, 58 WI.timelineManager = new WI.TimelineManager, 59 WI.debuggerManager = new WI.DebuggerManager, 60 WI.layerTreeManager = new WI.LayerTreeManager, 61 WI.workerManager = new WI.WorkerManager, 62 WI.domDebuggerManager = new WI.DOMDebuggerManager, 63 WI.canvasManager = new WI.CanvasManager, 64 WI.auditManager = new WI.AuditManager, 65 ]; 49 66 50 // Instantiate controllers used by tests. 51 this.targetManager = new WI.TargetManager; 52 this.networkManager = new WI.NetworkManager; 53 this.domStorageManager = new WI.DOMStorageManager; 54 this.domManager = new WI.DOMManager; 55 this.cssManager = new WI.CSSManager; 56 this.consoleManager = new WI.ConsoleManager; 57 this.runtimeManager = new WI.RuntimeManager; 58 this.heapManager = new WI.HeapManager; 59 this.memoryManager = new WI.MemoryManager; 60 this.timelineManager = new WI.TimelineManager; 61 this.debuggerManager = new WI.DebuggerManager; 62 this.layerTreeManager = new WI.LayerTreeManager; 63 this.workerManager = new WI.WorkerManager; 64 this.domDebuggerManager = new WI.DOMDebuggerManager; 65 this.canvasManager = new WI.CanvasManager; 66 this.auditManager = new WI.AuditManager; 67 67 // Register for events. 68 68 document.addEventListener("DOMContentLoaded", this.contentLoaded); 69 70 // Enable agents.71 InspectorAgent.enable();72 ConsoleAgent.enable();73 74 // Perform one-time tasks.75 WI.CSSCompletions.requestCSSCompletions();76 69 77 70 // Global settings. 78 71 this.showShadowDOMSetting = new WI.Setting("show-shadow-dom", true); 72 73 // Targets. 74 WI.mainTarget = new WI.MainTarget; 75 WI.mainTarget.initialize(); 76 WI.pageTarget = WI.sharedApp.debuggableType === WI.DebuggableType.Web ? WI.mainTarget : null; 77 78 // Post-target initialization. 79 WI.targetManager.initializeMainTarget(); 80 WI.runtimeManager.activeExecutionContext = WI.mainTarget.executionContext; 79 81 }; 80 82 … … 89 91 }; 90 92 93 WI.performOneTimeFrontendInitializationsUsingTarget = function(target) 94 { 95 if (!WI.__didPerformConsoleInitialization && target.ConsoleAgent) { 96 WI.__didPerformConsoleInitialization = true; 97 WI.consoleManager.initializeLogChannels(target); 98 } 99 100 if (!WI.__didPerformCSSInitialization && target.CSSAgent) { 101 WI.__didPerformCSSInitialization = true; 102 WI.CSSCompletions.initializeCSSCompletions(target); 103 } 104 }; 105 91 106 Object.defineProperty(WI, "targets", 92 107 { 93 get() { return this.targetManager.targets; }108 get() { return WI.targetManager.targets; } 94 109 }); 95 110
Note:
See TracChangeset
for help on using the changeset viewer.