Changeset 90588 in webkit
- Timestamp:
- Jul 7, 2011 1:45:10 PM (13 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r90587 r90588 1 2011-07-07 Adam Barth <abarth@webkit.org> 2 3 Unreviewed, rolling out r90581. 4 http://trac.webkit.org/changeset/90581 5 https://bugs.webkit.org/show_bug.cgi?id=64124 6 7 Broke a bunch of inspector tests (Requested by ojan on 8 #webkit). 9 10 * inspector/front-end/ExtensionAPI.js: 11 (WebInspector.injectedExtensionAPI.Panels.prototype.create): 12 (WebInspector.injectedExtensionAPI.ExtensionSidebarPaneImpl.prototype.setPage): 13 (WebInspector.injectedExtensionAPI.expandURL): 14 * inspector/front-end/ExtensionPanel.js: 15 (WebInspector.ExtensionPanel): 16 * inspector/front-end/ExtensionServer.js: 17 (WebInspector.ExtensionServer): 18 (WebInspector.ExtensionServer.prototype._onCreatePanel): 19 (WebInspector.ExtensionServer.prototype._onSetSidebarPage): 20 (WebInspector.ExtensionServer.prototype._addExtensions): 21 (WebInspector.ExtensionServer.prototype._onWindowMessage): 22 (WebInspector.ExtensionServer.prototype._registerSubscriptionHandler): 23 1 24 2011-07-07 Adrienne Walker <enne@google.com> 2 25 -
trunk/Source/WebCore/inspector/front-end/ExtensionAPI.js
r90581 r90588 168 168 169 169 Panels.prototype = { 170 create: function(title, icon , page, callback)170 create: function(title, iconURL, pageURL, callback) 171 171 { 172 172 var id = "extension-panel-" + extensionServer.nextObjectId(); … … 175 175 id: id, 176 176 title: title, 177 icon: icon,178 page: page177 icon: expandURL(iconURL), 178 url: expandURL(pageURL) 179 179 }; 180 180 extensionServer.sendRequest(request, callback && bind(callback, this, new ExtensionPanel(id))); … … 249 249 }, 250 250 251 setPage: function( page)252 { 253 extensionServer.sendRequest({ command: "setSidebarPage", id: this._id, page: page});251 setPage: function(url) 252 { 253 extensionServer.sendRequest({ command: "setSidebarPage", id: this._id, url: expandURL(url) }); 254 254 } 255 255 } … … 441 441 } 442 442 443 function expandURL(url) 444 { 445 if (!url) 446 return url; 447 if (/^[^/]+:/.exec(url)) // See if url has schema. 448 return url; 449 var baseURL = location.protocol + "//" + location.hostname + location.port; 450 if (/^\//.exec(url)) 451 return baseURL + url; 452 return baseURL + location.pathname.replace(/\/[^/]*$/,"/") + url; 453 } 454 443 455 function bind(func, thisObject) 444 456 { -
trunk/Source/WebCore/inspector/front-end/ExtensionPanel.js
r90581 r90588 32 32 { 33 33 this.toolbarItemLabel = label; 34 if (iconURL) 35 this._addStyleRule(".toolbar-item." + id + " .toolbar-icon", "background-image: url(" + iconURL + ");"); 34 this._addStyleRule(".toolbar-item." + id + " .toolbar-icon", "background-image: url(" + iconURL + ");"); 36 35 WebInspector.Panel.call(this, id); 37 36 } -
trunk/Source/WebCore/inspector/front-end/ExtensionServer.js
r90581 r90588 39 39 this._resources = {}; 40 40 this._lastResourceId = 0; 41 this._allowedOrigins = {};42 41 this._status = new WebInspector.ExtensionStatus(); 43 42 … … 205 204 return this._status.E_EXISTS(id); 206 205 207 var panel = new WebInspector.ExtensionPanel(id, message.title, this._expandResourcePath(port._extensionOrigin, message.icon));206 var panel = new WebInspector.ExtensionPanel(id, message.title, message.icon); 208 207 this._clientObjects[id] = panel; 209 208 WebInspector.panels[id] = panel; 210 209 WebInspector.addPanel(panel); 211 210 212 var iframe = this.createClientIframe(panel.element, this._expandResourcePath(port._extensionOrigin, message.page));211 var iframe = this.createClientIframe(panel.element, message.url); 213 212 iframe.addStyleClass("panel"); 214 213 return this._status.OK(); … … 259 258 }, 260 259 261 _onSetSidebarPage: function(message , port)260 _onSetSidebarPage: function(message) 262 261 { 263 262 var sidebar = this._clientObjects[message.id]; 264 263 if (!sidebar) 265 264 return this._status.E_NOTFOUND(message.id); 266 sidebar.setPage( this._expandResourcePath(port._extensionOrigin, message.page));265 sidebar.setPage(message.url); 267 266 }, 268 267 … … 410 409 if (!extension.startPage) 411 410 return; 412 var originMatch = /([^:]+:\/\/[^/]*)\//.exec(extension.startPage);413 if (!originMatch) {414 console.error("Skipping extension with invalid URL: " + extension.startPage);415 continue;416 }417 this._allowedOrigins[originMatch[1]] = true;418 411 var iframe = document.createElement("iframe"); 419 412 iframe.src = extension.startPage; … … 449 442 if (event.data !== "registerExtension") 450 443 return; 451 if (!this._allowedOrigins.hasOwnProperty(event.origin)) {452 console.error("Ignoring unauthorized client request from " + event.origin);453 return;454 }455 444 var port = event.ports[0]; 456 port._extensionOrigin = event.origin;457 445 port.addEventListener("message", this._onmessage.bind(this), false); 458 446 port.start(); … … 482 470 this._subscriptionStartHandlers[eventTopic] = onSubscribeFirst; 483 471 this._subscriptionStopHandlers[eventTopic] = onUnsubscribeLast; 484 },485 486 _expandResourcePath: function(extensionPath, resourcePath)487 {488 if (!resourcePath)489 return;490 return extensionPath + escape(this._normalizePath(resourcePath));491 },492 493 _normalizePath: function(path)494 {495 var source = path.split("/");496 var result = [];497 498 for (var i = 0; i < source.length; ++i) {499 if (source[i] === ".")500 continue;501 // Ignore empty path components resulting from //, as well as a leading and traling slashes.502 if (source[i] === "")503 continue;504 if (source[i] === "..")505 result.pop();506 else507 result.push(source[i]);508 }509 return "/" + result.join("/");510 472 } 511 473 }
Note: See TracChangeset
for help on using the changeset viewer.