- Revision
- 90588
- Author
- commit-qu...@webkit.org
- Date
- 2011-07-07 13:45:10 -0700 (Thu, 07 Jul 2011)
Log Message
Unreviewed, rolling out r90581.
http://trac.webkit.org/changeset/90581
https://bugs.webkit.org/show_bug.cgi?id=64124
Broke a bunch of inspector tests (Requested by ojan on
#webkit).
* inspector/front-end/ExtensionAPI.js:
(WebInspector.injectedExtensionAPI.Panels.prototype.create):
(WebInspector.injectedExtensionAPI.ExtensionSidebarPaneImpl.prototype.setPage):
(WebInspector.injectedExtensionAPI.expandURL):
* inspector/front-end/ExtensionPanel.js:
(WebInspector.ExtensionPanel):
* inspector/front-end/ExtensionServer.js:
(WebInspector.ExtensionServer):
(WebInspector.ExtensionServer.prototype._onCreatePanel):
(WebInspector.ExtensionServer.prototype._onSetSidebarPage):
(WebInspector.ExtensionServer.prototype._addExtensions):
(WebInspector.ExtensionServer.prototype._onWindowMessage):
(WebInspector.ExtensionServer.prototype._registerSubscriptionHandler):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (90587 => 90588)
--- trunk/Source/WebCore/ChangeLog 2011-07-07 20:37:44 UTC (rev 90587)
+++ trunk/Source/WebCore/ChangeLog 2011-07-07 20:45:10 UTC (rev 90588)
@@ -1,3 +1,26 @@
+2011-07-07 Adam Barth <aba...@webkit.org>
+
+ Unreviewed, rolling out r90581.
+ http://trac.webkit.org/changeset/90581
+ https://bugs.webkit.org/show_bug.cgi?id=64124
+
+ Broke a bunch of inspector tests (Requested by ojan on
+ #webkit).
+
+ * inspector/front-end/ExtensionAPI.js:
+ (WebInspector.injectedExtensionAPI.Panels.prototype.create):
+ (WebInspector.injectedExtensionAPI.ExtensionSidebarPaneImpl.prototype.setPage):
+ (WebInspector.injectedExtensionAPI.expandURL):
+ * inspector/front-end/ExtensionPanel.js:
+ (WebInspector.ExtensionPanel):
+ * inspector/front-end/ExtensionServer.js:
+ (WebInspector.ExtensionServer):
+ (WebInspector.ExtensionServer.prototype._onCreatePanel):
+ (WebInspector.ExtensionServer.prototype._onSetSidebarPage):
+ (WebInspector.ExtensionServer.prototype._addExtensions):
+ (WebInspector.ExtensionServer.prototype._onWindowMessage):
+ (WebInspector.ExtensionServer.prototype._registerSubscriptionHandler):
+
2011-07-07 Adrienne Walker <e...@google.com>
[chromium] Fix crash when compositing gets disabled mid-paint
Modified: trunk/Source/WebCore/inspector/front-end/ExtensionAPI.js (90587 => 90588)
--- trunk/Source/WebCore/inspector/front-end/ExtensionAPI.js 2011-07-07 20:37:44 UTC (rev 90587)
+++ trunk/Source/WebCore/inspector/front-end/ExtensionAPI.js 2011-07-07 20:45:10 UTC (rev 90588)
@@ -167,15 +167,15 @@
}
Panels.prototype = {
- create: function(title, icon, page, callback)
+ create: function(title, iconURL, pageURL, callback)
{
var id = "extension-panel-" + extensionServer.nextObjectId();
var request = {
command: "createPanel",
id: id,
title: title,
- icon: icon,
- page: page
+ icon: expandURL(iconURL),
+ url: expandURL(pageURL)
};
extensionServer.sendRequest(request, callback && bind(callback, this, new ExtensionPanel(id)));
}
@@ -248,9 +248,9 @@
extensionServer.sendRequest({ command: "setSidebarContent", id: this._id, _expression_: jsonObject, rootTitle: rootTitle });
},
- setPage: function(page)
+ setPage: function(url)
{
- extensionServer.sendRequest({ command: "setSidebarPage", id: this._id, page: page });
+ extensionServer.sendRequest({ command: "setSidebarPage", id: this._id, url: expandURL(url) });
}
}
@@ -440,6 +440,18 @@
}
}
+function expandURL(url)
+{
+ if (!url)
+ return url;
+ if (/^[^/]+:/.exec(url)) // See if url has schema.
+ return url;
+ var baseURL = location.protocol + "//" + location.hostname + location.port;
+ if (/^\//.exec(url))
+ return baseURL + url;
+ return baseURL + location.pathname.replace(/\/[^/]*$/,"/") + url;
+}
+
function bind(func, thisObject)
{
var args = Array.prototype.slice.call(arguments, 2);
Modified: trunk/Source/WebCore/inspector/front-end/ExtensionPanel.js (90587 => 90588)
--- trunk/Source/WebCore/inspector/front-end/ExtensionPanel.js 2011-07-07 20:37:44 UTC (rev 90587)
+++ trunk/Source/WebCore/inspector/front-end/ExtensionPanel.js 2011-07-07 20:45:10 UTC (rev 90588)
@@ -31,8 +31,7 @@
WebInspector.ExtensionPanel = function(id, label, iconURL, options)
{
this.toolbarItemLabel = label;
- if (iconURL)
- this._addStyleRule(".toolbar-item." + id + " .toolbar-icon", "background-image: url(" + iconURL + ");");
+ this._addStyleRule(".toolbar-item." + id + " .toolbar-icon", "background-image: url(" + iconURL + ");");
WebInspector.Panel.call(this, id);
}
Modified: trunk/Source/WebCore/inspector/front-end/ExtensionServer.js (90587 => 90588)
--- trunk/Source/WebCore/inspector/front-end/ExtensionServer.js 2011-07-07 20:37:44 UTC (rev 90587)
+++ trunk/Source/WebCore/inspector/front-end/ExtensionServer.js 2011-07-07 20:45:10 UTC (rev 90588)
@@ -38,7 +38,6 @@
this._extraHeaders = {};
this._resources = {};
this._lastResourceId = 0;
- this._allowedOrigins = {};
this._status = new WebInspector.ExtensionStatus();
this._registerHandler("addRequestHeaders", this._onAddRequestHeaders.bind(this));
@@ -204,12 +203,12 @@
if (id in this._clientObjects || id in WebInspector.panels)
return this._status.E_EXISTS(id);
- var panel = new WebInspector.ExtensionPanel(id, message.title, this._expandResourcePath(port._extensionOrigin, message.icon));
+ var panel = new WebInspector.ExtensionPanel(id, message.title, message.icon);
this._clientObjects[id] = panel;
WebInspector.panels[id] = panel;
WebInspector.addPanel(panel);
- var iframe = this.createClientIframe(panel.element, this._expandResourcePath(port._extensionOrigin, message.page));
+ var iframe = this.createClientIframe(panel.element, message.url);
iframe.addStyleClass("panel");
return this._status.OK();
},
@@ -258,12 +257,12 @@
sidebar.setObject(message._expression_, message.rootTitle);
},
- _onSetSidebarPage: function(message, port)
+ _onSetSidebarPage: function(message)
{
var sidebar = this._clientObjects[message.id];
if (!sidebar)
return this._status.E_NOTFOUND(message.id);
- sidebar.setPage(this._expandResourcePath(port._extensionOrigin, message.page));
+ sidebar.setPage(message.url);
},
_onLog: function(message)
@@ -409,12 +408,6 @@
try {
if (!extension.startPage)
return;
- var originMatch = /([^:]+:\/\/[^/]*)\//.exec(extension.startPage);
- if (!originMatch) {
- console.error("Skipping extension with invalid URL: " + extension.startPage);
- continue;
- }
- this._allowedOrigins[originMatch[1]] = true;
var iframe = document.createElement("iframe");
iframe.src = ""
iframe.style.display = "none";
@@ -448,12 +441,7 @@
{
if (event.data !== "registerExtension")
return;
- if (!this._allowedOrigins.hasOwnProperty(event.origin)) {
- console.error("Ignoring unauthorized client request from " + event.origin);
- return;
- }
var port = event.ports[0];
- port._extensionOrigin = event.origin;
port.addEventListener("message", this._onmessage.bind(this), false);
port.start();
},
@@ -481,32 +469,6 @@
{
this._subscriptionStartHandlers[eventTopic] = onSubscribeFirst;
this._subscriptionStopHandlers[eventTopic] = onUnsubscribeLast;
- },
-
- _expandResourcePath: function(extensionPath, resourcePath)
- {
- if (!resourcePath)
- return;
- return extensionPath + escape(this._normalizePath(resourcePath));
- },
-
- _normalizePath: function(path)
- {
- var source = path.split("/");
- var result = [];
-
- for (var i = 0; i < source.length; ++i) {
- if (source[i] === ".")
- continue;
- // Ignore empty path components resulting from //, as well as a leading and traling slashes.
- if (source[i] === "")
- continue;
- if (source[i] === "..")
- result.pop();
- else
- result.push(source[i]);
- }
- return "/" + result.join("/");
}
}