Changeset 144058 in webkit
- Timestamp:
- Feb 26, 2013, 7:59:46 AM (14 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 2 edited
-
ChangeLog (modified) (1 diff)
-
inspector/front-end/FileSystemModel.js (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r144057 r144058 1 2013-02-26 Vsevolod Vlasov <vsevik@chromium.org> 2 3 Web Inspector: Migrate FileSystem inspection support to ResourceTreeModel's SecurityOriginAdded/Removed events. 4 https://bugs.webkit.org/show_bug.cgi?id=110878 5 6 Reviewed by Alexander Pavlov. 7 8 Recently added SecurityOriginAdded/Removed events support was essentially duplicated in 9 FileSystemModel. This patch migrates FileSystem inspection support to new events. 10 11 * inspector/front-end/FileSystemModel.js: 12 (WebInspector.FileSystemModel): 13 (WebInspector.FileSystemModel.prototype._reset): 14 (WebInspector.FileSystemModel.prototype._securityOriginAdded): 15 (WebInspector.FileSystemModel.prototype._securityOriginRemoved): 16 (WebInspector.FileSystemModel.prototype._addOrigin): 17 (WebInspector.FileSystemModel.prototype._removeOrigin): 18 (WebInspector.FileSystemModel.prototype.refreshFileSystemList): 19 1 20 2013-02-26 Antoine Quint <graouts@apple.com> 2 21 -
trunk/Source/WebCore/inspector/front-end/FileSystemModel.js
r140122 r144058 37 37 WebInspector.Object.call(this); 38 38 39 this._originForFrameId = {};40 this._frameIdsForOrigin = {};41 39 this._fileSystemsForOrigin = {}; 42 40 43 WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.FrameAdded, this._frameAdded, this); 44 WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.FrameNavigated, this._frameNavigated, this); 45 WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.FrameDetached, this._frameDetached, this); 41 WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.SecurityOriginAdded, this._securityOriginAdded, this); 42 WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.SecurityOriginRemoved, this._securityOriginRemoved, this); 46 43 47 44 FileSystemAgent.enable(); 48 45 49 if (WebInspector.resourceTreeModel.mainFrame) 50 this._attachFrameRecursively(WebInspector.resourceTreeModel.mainFrame); 46 this._reset(); 51 47 } 52 48 53 49 WebInspector.FileSystemModel.prototype = { 50 _reset: function() 51 { 52 for (var securityOrigin in this._fileSystemsForOrigin) 53 this._removeOrigin(securityOrigin); 54 var securityOrigins = WebInspector.resourceTreeModel.securityOrigins(); 55 for (var i = 0; i < securityOrigins.length; ++i) 56 this._addOrigin(securityOrigins[i]); 57 }, 58 54 59 /** 55 60 * @param {WebInspector.Event} event 56 61 */ 57 _ frameAdded: function(event)58 { 59 var frame = /** @type {WebInspector.ResourceTreeFrame} */ (event.data);60 this._a ttachFrameRecursively(frame);62 _securityOriginAdded: function(event) 63 { 64 var securityOrigin = /** @type {string} */ (event.data); 65 this._addOrigin(securityOrigin); 61 66 }, 62 67 … … 64 69 * @param {WebInspector.Event} event 65 70 */ 66 _frameNavigated: function(event) 67 { 68 var frame = /** @type {WebInspector.ResourceTreeFrame} */ (event.data); 69 this._attachFrameRecursively(frame); 70 }, 71 72 /** 73 * @param {WebInspector.Event} event 74 */ 75 _frameDetached: function(event) 76 { 77 var frame = /** @type {WebInspector.ResourceTreeFrame} */ (event.data); 78 this._detachFrameRecursively(frame); 79 }, 80 81 /** 82 * @param {WebInspector.ResourceTreeFrame} frame 83 */ 84 _attachFrame: function(frame) 85 { 86 if (this._originForFrameId[frame.id]) 87 this._detachFrameRecursively(frame); 88 89 if (frame.securityOrigin === "null") 90 return; 91 92 this._originForFrameId[frame.id] = frame.securityOrigin; 93 94 var newOrigin = false; 95 if (!this._frameIdsForOrigin[frame.securityOrigin]) { 96 this._frameIdsForOrigin[frame.securityOrigin] = {}; 97 newOrigin = true; 98 } 99 this._frameIdsForOrigin[frame.securityOrigin][frame.id] = frame.id; 100 if (newOrigin) 101 this._originAdded(frame.securityOrigin); 102 }, 103 104 /** 105 * @param {WebInspector.ResourceTreeFrame} frame 106 */ 107 _attachFrameRecursively: function(frame) 108 { 109 this._attachFrame(frame); 110 for (var i = 0; i < frame.childFrames.length; ++i) 111 this._attachFrameRecursively(frame.childFrames[i]); 112 }, 113 114 /** 115 * @param {WebInspector.ResourceTreeFrame} frame 116 */ 117 _detachFrame: function(frame) 118 { 119 if (!this._originForFrameId[frame.id]) 120 return; 121 var origin = this._originForFrameId[frame.id]; 122 delete this._originForFrameId[frame.id]; 123 delete this._frameIdsForOrigin[origin][frame.id]; 124 125 var lastOrigin = Object.isEmpty(this._frameIdsForOrigin[origin]); 126 if (lastOrigin) { 127 delete this._frameIdsForOrigin[origin]; 128 this._originRemoved(origin); 129 } 130 }, 131 132 /** 133 * @param {WebInspector.ResourceTreeFrame} frame 134 */ 135 _detachFrameRecursively: function(frame) 136 { 137 for (var i = 0; i < frame.childFrames.length; ++i) 138 this._detachFrameRecursively(frame.childFrames[i]); 139 this._detachFrame(frame); 140 }, 141 142 /** 143 * @param {string} origin 144 */ 145 _originAdded: function(origin) 146 { 147 this._fileSystemsForOrigin[origin] = {}; 71 _securityOriginRemoved: function(event) 72 { 73 var securityOrigin = /** @type {string} */ (event.data); 74 this._removeOrigin(securityOrigin); 75 }, 76 77 /** 78 * @param {string} securityOrigin 79 */ 80 _addOrigin: function(securityOrigin) 81 { 82 this._fileSystemsForOrigin[securityOrigin] = {}; 148 83 149 84 var types = ["persistent", "temporary"]; 150 85 for (var i = 0; i < types.length; ++i) 151 this._requestFileSystemRoot(origin, types[i], this._fileSystemRootReceived.bind(this, origin, types[i], this._fileSystemsForOrigin[origin])); 86 this._requestFileSystemRoot(securityOrigin, types[i], this._fileSystemRootReceived.bind(this, securityOrigin, types[i], this._fileSystemsForOrigin[securityOrigin])); 87 }, 88 89 /** 90 * @param {string} securityOrigin 91 */ 92 _removeOrigin: function(securityOrigin) 93 { 94 for (var type in this._fileSystemsForOrigin[securityOrigin]) { 95 var fileSystem = this._fileSystemsForOrigin[securityOrigin][type]; 96 delete this._fileSystemsForOrigin[securityOrigin][type]; 97 this._fileSystemRemoved(fileSystem); 98 } 99 delete this._fileSystemsForOrigin[securityOrigin]; 152 100 }, 153 101 … … 178 126 179 127 /** 180 * @param {string} origin181 */182 _originRemoved: function(origin)183 {184 for (var type in this._fileSystemsForOrigin[origin]) {185 var fileSystem = this._fileSystemsForOrigin[origin][type];186 delete this._fileSystemsForOrigin[origin][type];187 this._fileSystemRemoved(fileSystem);188 }189 delete this._fileSystemsForOrigin[origin];190 },191 192 /**193 128 * @param {WebInspector.FileSystemModel.FileSystem} fileSystem 194 129 */ … … 208 143 refreshFileSystemList: function() 209 144 { 210 if (WebInspector.resourceTreeModel.mainFrame) { 211 this._detachFrameRecursively(WebInspector.resourceTreeModel.mainFrame); 212 this._attachFrameRecursively(WebInspector.resourceTreeModel.mainFrame); 213 } 145 this._reset(); 214 146 }, 215 147
Note:
See TracChangeset
for help on using the changeset viewer.