Changeset 127705 in webkit
- Timestamp:
- Sep 6, 2012 12:40:56 AM (12 years ago)
- Location:
- trunk
- Files:
-
- 15 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r127704 r127705 1 2012-09-04 Vsevolod Vlasov <vsevik@chromium.org> 2 3 Web Inspector: Fix inconsistencies in NetworkUISourceCodeProvider implementation. 4 https://bugs.webkit.org/show_bug.cgi?id=95752 5 6 Reviewed by Alexander Pavlov. 7 8 * http/tests/inspector/network/network-request-revision-content-expected.txt: 9 * http/tests/inspector/network/network-request-revision-content.html: 10 * inspector/console/console-uncaught-exception-expected.txt: 11 * inspector/debugger/network-uisourcecode-provider-expected.txt: 12 * inspector/debugger/network-uisourcecode-provider.html: 13 * inspector/debugger/script-snippet-model.html: 14 * inspector/debugger/scripts-panel.html: 15 1 16 2012-09-06 Adam Barth <abarth@webkit.org> 2 17 -
trunk/LayoutTests/http/tests/inspector/network/network-request-revision-content-expected.txt
r122436 r127705 2 2 3 3 Bug 63631 4 http://127.0.0.1:8000/inspector/network/resource /style.css4 http://127.0.0.1:8000/inspector/network/resources/style.css 5 5 6 6 -
trunk/LayoutTests/http/tests/inspector/network/network-request-revision-content.html
r127454 r127705 8 8 css.rel = "stylesheet"; 9 9 css.type = "text/css"; 10 css.href = "resource /style.css";10 css.href = "resources/style.css"; 11 11 document.head.appendChild(css); 12 12 } … … 14 14 function test() 15 15 { 16 InspectorTest.addConsoleSniffer(step2, true); 17 InspectorTest.addSniffer(WebInspector.NetworkUISourceCodeProvider.prototype, "_resourceAdded", true); 16 WebInspector.workspace.addEventListener(WebInspector.UISourceCodeProvider.Events.UISourceCodeAdded, step2); 18 17 InspectorTest.evaluateInPage("loadStylesheet()"); 19 18 -
trunk/LayoutTests/inspector/console/console-uncaught-exception-expected.txt
r110693 r127705 5 5 6 6 7 Error: Exception in inline script. uncaught-in-iframe.html:188 Error: Exception in 'load' event listener. uncaught-in-iframe.html:117 Error: Exception in inline script. resources/uncaught-in-iframe.html:18 8 Error: Exception in 'load' event listener. resources/uncaught-in-iframe.html:11 9 9 Error: Exception in setTimeout callback. uncaught-in-iframe.html:6 10 10 -
trunk/LayoutTests/inspector/debugger/network-uisourcecode-provider-expected.txt
r127454 r127705 2 2 3 3 4 Running: testDocumentResourceWithPendingRequest5 Creating request.6 Finishing request.7 UISourceCode: http://fake.url/28 UISourceCode is editable: false9 UISourceCode is content script: false10 Mime type: text/html11 UISourceCode content: <document request content>12 13 4 Running: testDocumentResource 14 5 Creating resource. 15 UISourceCode: http://fake.url/ 36 UISourceCode: http://fake.url/1 16 7 UISourceCode is editable: false 17 8 UISourceCode is content script: false … … 19 10 UISourceCode content: <document resource content> 20 11 21 Running: testScriptResourceWithPendingRequest22 Creating request.23 Finishing request.24 UISourceCode: http://fake.url/425 UISourceCode is editable: true26 UISourceCode is content script: false27 Mime type: text/javascript28 UISourceCode content: <script request content>29 30 12 Running: testScriptResource 31 13 Creating resource. 32 UISourceCode: http://fake.url/ 514 UISourceCode: http://fake.url/2 33 15 UISourceCode is editable: true 34 16 UISourceCode is content script: false … … 36 18 UISourceCode content: <script resource content> 37 19 38 Running: testStylesheetResourceWithPendingRequest39 Creating request.40 UISourceCode: http://fake.url/641 Finishing request.42 Mime type: text/css43 UISourceCode content: <stylesheet request content>44 45 20 Running: testStylesheetResource 46 21 Creating resource. 47 UISourceCode: http://fake.url/ 722 UISourceCode: http://fake.url/3 48 23 Mime type: text/css 49 24 UISourceCode content: <stylesheet resource content> -
trunk/LayoutTests/inspector/debugger/network-uisourcecode-provider.html
r127454 r127705 8 8 { 9 9 var mockContentsMap = {}; 10 var lastResou ceId = 1;10 var lastResourceId = 0; 11 11 12 12 NetworkAgent.getResponseBody = function(requestId, callback) … … 20 20 } 21 21 22 function createResourceMock(type, withPendingRequest,content)22 function createResourceMock(type, content) 23 23 { 24 24 var documentURL = "http://fake.url"; 25 var resourceId = ++lastResou ceId + "";25 var resourceId = ++lastResourceId + ""; 26 26 var url = documentURL + "/" + resourceId; 27 27 var frameId = "frame-id"; … … 40 40 } 41 41 42 if (withPendingRequest) { 43 var request = new WebInspector.NetworkRequest(resourceId, url, "http://fake.url", frameId, loaderId); 44 request.type = type; 45 request.mimeType = mimeType; 46 mockContentsMap[resourceId] = content; 47 } 48 var resource = new WebInspector.Resource(request, url, documentURL, frameId, loaderId, type, mimeType); 42 var resource = new WebInspector.Resource(null, url, documentURL, frameId, loaderId, type, mimeType); 49 43 mockContentsMap[url] = content; 50 44 WebInspector.resourceTreeModel.dispatchEventToListeners(WebInspector.ResourceTreeModel.EventTypes.ResourceAdded, resource); … … 68 62 69 63 InspectorTest.runTestSuite([ 70 function testDocumentResourceWithPendingRequest(next)71 {72 var networkUISourceCodeProvider = createNetworkUISourceCodeProvider();73 74 InspectorTest.addResult("Creating request.");75 var resource = createResourceMock(WebInspector.resourceTypes.Document, true, "<document request content>");76 77 InspectorTest.waitForWorkspaceUISourceCodeAddedEvent(uiSourceCodeAdded);78 InspectorTest.addResult("Finishing request.");79 finishResource(resource);80 81 function uiSourceCodeAdded(uiSourceCode)82 {83 InspectorTest.dumpUISourceCode(uiSourceCode, next);84 }85 },86 87 64 function testDocumentResource(next) 88 65 { … … 90 67 InspectorTest.addResult("Creating resource."); 91 68 InspectorTest.waitForWorkspaceUISourceCodeAddedEvent(uiSourceCodeAdded); 92 var resource = createResourceMock(WebInspector.resourceTypes.Document, false, "<document resource content>"); 93 94 function uiSourceCodeAdded(uiSourceCode) 95 { 96 InspectorTest.dumpUISourceCode(uiSourceCode, next); 97 } 98 }, 99 100 function testScriptResourceWithPendingRequest(next) 101 { 102 var networkUISourceCodeProvider = createNetworkUISourceCodeProvider(); 103 104 InspectorTest.addResult("Creating request."); 105 var resource = createResourceMock(WebInspector.resourceTypes.Script, true, "<script request content>"); 106 107 InspectorTest.waitForWorkspaceUISourceCodeAddedEvent(uiSourceCodeAdded); 108 InspectorTest.addResult("Finishing request."); 109 finishResource(resource); 69 var resource = createResourceMock(WebInspector.resourceTypes.Document, "<document resource content>"); 110 70 111 71 function uiSourceCodeAdded(uiSourceCode) … … 120 80 InspectorTest.addResult("Creating resource."); 121 81 InspectorTest.waitForWorkspaceUISourceCodeAddedEvent(uiSourceCodeAdded); 122 var resource = createResourceMock(WebInspector.resourceTypes.Script, false,"<script resource content>");82 var resource = createResourceMock(WebInspector.resourceTypes.Script, "<script resource content>"); 123 83 124 84 function uiSourceCodeAdded(uiSourceCode) 125 85 { 126 86 InspectorTest.dumpUISourceCode(uiSourceCode, next); 127 }128 },129 130 function testStylesheetResourceWithPendingRequest(next)131 {132 var endTestCallsLeft = 2;133 var networkUISourceCodeProvider = createNetworkUISourceCodeProvider();134 InspectorTest.waitForWorkspaceUISourceCodeAddedEvent(uiSourceCodeAdded);135 InspectorTest.addResult("Creating request.");136 var resource = createResourceMock(WebInspector.resourceTypes.Stylesheet, true, "<stylesheet request content>");137 InspectorTest.addResult("Finishing request.");138 finishResource(resource);139 endTest();140 141 function uiSourceCodeAdded(uiSourceCode)142 {143 InspectorTest.dumpUISourceCode(uiSourceCode, endTest);144 }145 146 function endTest()147 {148 if (--endTestCallsLeft)149 return;150 next();151 87 } 152 88 }, … … 157 93 InspectorTest.addResult("Creating resource."); 158 94 InspectorTest.waitForWorkspaceUISourceCodeAddedEvent(uiSourceCodeAdded); 159 var resource = createResourceMock(WebInspector.resourceTypes.Stylesheet, false,"<stylesheet resource content>");95 var resource = createResourceMock(WebInspector.resourceTypes.Stylesheet, "<stylesheet resource content>"); 160 96 161 97 function uiSourceCodeAdded(uiSourceCode) -
trunk/LayoutTests/inspector/debugger/script-snippet-model.html
r126999 r127705 16 16 WebInspector.experimentsSettings.snippetsSupport.isEnabled = function() { return true; }; 17 17 var workspace = new WebInspector.Workspace(); 18 var workspaceController = new WebInspector.WorkspaceController(workspace); 18 19 WebInspector.scriptSnippetModel = new WebInspector.ScriptSnippetModel(workspace); 19 20 … … 28 29 workspace.addEventListener(WebInspector.UISourceCodeProvider.Events.UISourceCodeAdded, uiSourceCodeAdded); 29 30 InspectorTest.addResult("Resetting snippet script mapping."); 30 workspace.project().reset(); 31 InspectorTest.assertTrue(!workspace.uiSourceCodes().length, "Snippets script mapping should not have any uiSourceCodes after reset."); 31 workspaceController._mainFrameNavigated(); 32 32 33 33 function uiSourceCodeAdded(event) 34 34 { 35 InspectorTest.assertEquals(1, workspace.uiSourceCodes().length, "Only one snippet uiSourceCode should be present after project navigation."); 35 36 var uiSourceCode = event.data; 36 37 if (uiSourceCode.url.indexOf(snippetName) === -1) -
trunk/LayoutTests/inspector/debugger/scripts-panel.html
r127454 r127705 65 65 { 66 66 var workspace = new WebInspector.Workspace(); 67 var workspaceController = new WebInspector.WorkspaceController(workspace); 67 68 var panel = new WebInspector.ScriptsPanel(workspace); 68 69 panel.show(); … … 78 79 InspectorTest.dumpScriptsNavigator(panel._navigator); 79 80 80 workspace .project().reset();81 workspaceController._mainFrameNavigated(); 81 82 workspace.project().addUISourceCode(uiSourceCodeBar); 82 83 InspectorTest.dumpScriptsNavigator(panel._navigator); -
trunk/Source/WebCore/ChangeLog
r127703 r127705 1 2012-09-04 Vsevolod Vlasov <vsevik@chromium.org> 2 3 Web Inspector: Fix inconsistencies in NetworkUISourceCodeProvider implementation. 4 https://bugs.webkit.org/show_bug.cgi?id=95752 5 6 Reviewed by Alexander Pavlov. 7 8 NetworkUISourceCodeProvider does not receive ResourceAdded event until resource is finished anymore. 9 StylesSourceMapping now listens for workspace event instead of being called directly by NetworkUISourceCodeProvider. 10 StylesSourceMapping is now created from inspector.js. 11 ProjectDidReset event introduced instead of setTimeout hacks in mappings. 12 13 * inspector/front-end/NetworkUISourceCodeProvider.js: 14 (WebInspector.NetworkUISourceCodeProvider): 15 (WebInspector.NetworkUISourceCodeProvider.prototype._resourceAdded): 16 (WebInspector.NetworkUISourceCodeProvider.prototype._projectWillReset): 17 (WebInspector.NetworkUISourceCodeProvider.prototype._projectDidReset): 18 * inspector/front-end/ResourceTreeModel.js: 19 (WebInspector.ResourceTreeModel): 20 (WebInspector.ResourceTreeModel.prototype._onRequestFinished): 21 * inspector/front-end/ScriptSnippetModel.js: 22 (WebInspector.ScriptSnippetModel): 23 (WebInspector.ScriptSnippetModel.prototype._projectWillReset): 24 (WebInspector.ScriptSnippetModel.prototype._projectDidReset): 25 * inspector/front-end/StylesSourceMapping.js: 26 (WebInspector.StylesSourceMapping): 27 (WebInspector.StylesSourceMapping.prototype._uiSourceCodeAddedToWorkspace): 28 (WebInspector.StylesSourceMapping.prototype._addUISourceCode): 29 (WebInspector.StylesSourceMapping.prototype._reset): 30 * inspector/front-end/Workspace.js: 31 (WebInspector.WorkspaceController.prototype._mainFrameNavigated): 32 (WebInspector.Project.prototype.reset): 33 * inspector/front-end/inspector.js: 34 1 35 2012-09-06 Sheriff Bot <webkit.review.bot@gmail.com> 2 36 -
trunk/Source/WebCore/inspector/front-end/NetworkUISourceCodeProvider.js
r127454 r127705 37 37 this._workspace = workspace; 38 38 WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.ResourceAdded, this._resourceAdded, this); 39 this._workspace.addEventListener(WebInspector.Workspace.Events.ProjectWillReset, this._ reset, this);40 this._ stylesSourceMapping = new WebInspector.StylesSourceMapping();39 this._workspace.addEventListener(WebInspector.Workspace.Events.ProjectWillReset, this._projectWillReset, this); 40 this._workspace.addEventListener(WebInspector.Workspace.Events.ProjectDidReset, this._projectDidReset, this); 41 41 42 42 this._uiSourceCodeForResource = {}; … … 60 60 61 61 /** 62 * @param {WebInspector.Resource} resource63 */64 _styleResourceAdded: function(resource)65 {66 var uiSourceCode = new WebInspector.StyleSource(resource);67 this._stylesSourceMapping.addUISourceCode(uiSourceCode);68 this._addUISourceCode(uiSourceCode);69 },70 71 /**72 * @param {WebInspector.Resource} resource73 */74 _scriptResourceAdded: function(resource)75 {76 if (resource.request && !resource.request.finished) {77 resource.request.addEventListener(WebInspector.NetworkRequest.Events.FinishedLoading, resourceFinished, this);78 return;79 }80 this._addJavaScriptSource(resource);81 82 function resourceFinished()83 {84 resource.request.removeEventListener(WebInspector.NetworkRequest.Events.FinishedLoading, resourceFinished, this);85 this._addJavaScriptSource(resource);86 }87 },88 89 /**90 * @param {WebInspector.Resource} resource91 */92 _addJavaScriptSource: function(resource)93 {94 if (this._uiSourceCodeForResource[resource.url])95 return;96 var isDocument = resource.type === WebInspector.resourceTypes.Document;97 var uiSourceCode = new WebInspector.JavaScriptSource(resource.url, resource, resource, !isDocument);98 this._uiSourceCodeForResource[resource.url] = uiSourceCode;99 this._addUISourceCode(uiSourceCode);100 },101 102 /**103 * @param {WebInspector.UISourceCode} uiSourceCode104 */105 _addUISourceCode: function(uiSourceCode)106 {107 this._workspace.project().addUISourceCode(uiSourceCode);108 },109 110 /**111 62 * @param {WebInspector.Event} event 112 63 */ … … 114 65 { 115 66 var resource = /** @type {WebInspector.Resource} */ event.data; 67 if (this._uiSourceCodeForResource[resource.url]) 68 return; 69 var uiSourceCode; 116 70 switch (resource.type) { 117 71 case WebInspector.resourceTypes.Stylesheet: 118 this._styleResourceAdded(resource);72 uiSourceCode = new WebInspector.StyleSource(resource); 119 73 break; 120 74 case WebInspector.resourceTypes.Document: 75 uiSourceCode = new WebInspector.JavaScriptSource(resource.url, resource, resource, false); 76 break; 121 77 case WebInspector.resourceTypes.Script: 122 this._scriptResourceAdded(resource);78 uiSourceCode = new WebInspector.JavaScriptSource(resource.url, resource, resource, true); 123 79 break; 80 } 81 if (uiSourceCode) { 82 this._uiSourceCodeForResource[resource.url] = uiSourceCode; 83 this._workspace.project().addUISourceCode(uiSourceCode); 124 84 } 125 85 }, 126 86 127 _ reset: function()87 _projectWillReset: function() 128 88 { 129 89 this._uiSourceCodeForResource = {}; 130 this._stylesSourceMapping.reset(); 131 // FIXME: We should not populate until the ProjectWillReset event was handled by all listeners. Introduce ProjectDidReset event for that matter. 132 setTimeout(this._populate.bind(this), 0); 90 }, 91 92 _projectDidReset: function() 93 { 94 this._populate(); 133 95 } 134 96 } -
trunk/Source/WebCore/inspector/front-end/ResourceTreeModel.js
r126584 r127705 36 36 WebInspector.ResourceTreeModel = function(networkManager) 37 37 { 38 networkManager.addEventListener(WebInspector.NetworkManager.EventTypes.RequestUpdated, this._onRequestUpdated, this); 39 networkManager.addEventListener(WebInspector.NetworkManager.EventTypes.RequestFinished, this._onRequestUpdated, this); 38 networkManager.addEventListener(WebInspector.NetworkManager.EventTypes.RequestFinished, this._onRequestFinished, this); 40 39 networkManager.addEventListener(WebInspector.NetworkManager.EventTypes.RequestUpdateDropped, this._onRequestUpdateDropped, this); 41 40 … … 173 172 * @param {WebInspector.Event} event 174 173 */ 175 _onRequest Updated: function(event)174 _onRequestFinished: function(event) 176 175 { 177 176 if (!this._cachedResourcesProcessed) -
trunk/Source/WebCore/inspector/front-end/ScriptSnippetModel.js
r127454 r127705 44 44 this._lastSnippetEvaluationIndexSetting = WebInspector.settings.createSetting("lastSnippetEvaluationIndex", 0); 45 45 this._snippetScriptMapping = new WebInspector.SnippetScriptMapping(this); 46 this._workspace.addEventListener(WebInspector.Workspace.Events.ProjectWillReset, this._reset, this); 46 this._workspace.addEventListener(WebInspector.Workspace.Events.ProjectWillReset, this._projectWillReset, this); 47 this._workspace.addEventListener(WebInspector.Workspace.Events.ProjectDidReset, this._projectDidReset, this); 47 48 this._loadSnippets(); 48 49 } … … 353 354 }, 354 355 355 _ reset: function()356 _projectWillReset: function() 356 357 { 357 358 var removedUISourceCodes = this._releasedUISourceCodes(); … … 359 360 this._scriptForUISourceCode = new Map(); 360 361 this._snippetJavaScriptSourceForSnippetId = {}; 361 setTimeout(this._loadSnippets.bind(this), 0); 362 }, 363 364 _projectDidReset: function() 365 { 366 this._loadSnippets(); 362 367 } 363 368 } -
trunk/Source/WebCore/inspector/front-end/StylesSourceMapping.js
r127002 r127705 32 32 * @constructor 33 33 * @implements {WebInspector.SourceMapping} 34 */ 35 WebInspector.StylesSourceMapping = function() 34 * @param {WebInspector.Workspace} workspace 35 */ 36 WebInspector.StylesSourceMapping = function(workspace) 36 37 { 38 this._workspace = workspace; 39 this._workspace.addEventListener(WebInspector.Workspace.Events.ProjectWillReset, this._reset, this); 40 this._workspace.addEventListener(WebInspector.UISourceCodeProvider.Events.UISourceCodeAdded, this._uiSourceCodeAddedToWorkspace, this); 41 37 42 this._uiSourceCodeForURL = {}; 38 43 } 39 44 40 45 WebInspector.StylesSourceMapping.prototype = { 41 /**42 * @param {WebInspector.UISourceCode} uiSourceCode43 */44 addUISourceCode: function(uiSourceCode)45 {46 this._uiSourceCodeForURL[uiSourceCode.url] = uiSourceCode;47 WebInspector.cssModel.setSourceMapping(uiSourceCode.url, this);48 },49 50 46 /** 51 47 * @param {WebInspector.RawLocation} rawLocation … … 70 66 }, 71 67 72 reset: function() 68 _uiSourceCodeAddedToWorkspace: function(event) 69 { 70 var uiSourceCode = /** @type {WebInspector.UISourceCode} */ event.data; 71 if (!uiSourceCode.url || this._uiSourceCodeForURL[uiSourceCode.url]) 72 return; 73 if (uiSourceCode.contentType() !== WebInspector.resourceTypes.StyleSheet) 74 return; 75 76 this._addUISourceCode(uiSourceCode); 77 }, 78 79 /** 80 * @param {WebInspector.UISourceCode} uiSourceCode 81 */ 82 _addUISourceCode: function(uiSourceCode) 83 { 84 this._uiSourceCodeForURL[uiSourceCode.url] = uiSourceCode; 85 uiSourceCode.setSourceMapping(this); 86 WebInspector.cssModel.setSourceMapping(uiSourceCode.url, this); 87 }, 88 89 _reset: function() 73 90 { 74 91 this._uiSourceCodeForURL = {}; -
trunk/Source/WebCore/inspector/front-end/Workspace.js
r127454 r127705 42 42 { 43 43 WebInspector.Revision.filterOutStaleRevisions(); 44 this._workspace.dispatchEventToListeners(WebInspector.Workspace.Events.ProjectWillReset, this._workspace.project()); 44 45 this._workspace.project().reset(); 46 this._workspace.dispatchEventToListeners(WebInspector.Workspace.Events.ProjectDidReset, this._workspace.project()); 45 47 } 46 48 } … … 63 65 reset: function() 64 66 { 65 this._workspace.dispatchEventToListeners(WebInspector.Workspace.Events.ProjectWillReset, this);66 67 this._uiSourceCodes = []; 67 68 }, … … 132 133 WebInspector.Workspace.Events = { 133 134 UISourceCodeContentCommitted: "UISourceCodeContentCommitted", 134 ProjectWillReset: "ProjectWillReset" 135 ProjectWillReset: "ProjectWillReset", 136 ProjectDidReset: "ProjectDidReset" 135 137 } 136 138 -
trunk/Source/WebCore/inspector/front-end/inspector.js
r127454 r127705 525 525 new WebInspector.DebuggerScriptMapping(this.workspace); 526 526 new WebInspector.NetworkUISourceCodeProvider(this.workspace); 527 new WebInspector.StylesSourceMapping(this.workspace); 527 528 if (WebInspector.experimentsSettings.sass.isEnabled()) 528 529 new WebInspector.SASSSourceMapping(this.workspace);
Note: See TracChangeset
for help on using the changeset viewer.