Title: [90588] trunk/Source/WebCore
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("/");
     }
 }
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to