Changeset 90588 in webkit


Ignore:
Timestamp:
Jul 7, 2011 1:45:10 PM (13 years ago)
Author:
commit-queue@webkit.org
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):

Location:
trunk/Source/WebCore
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r90587 r90588  
     12011-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
    1242011-07-07  Adrienne Walker  <enne@google.com>
    225
  • trunk/Source/WebCore/inspector/front-end/ExtensionAPI.js

    r90581 r90588  
    168168
    169169Panels.prototype = {
    170     create: function(title, icon, page, callback)
     170    create: function(title, iconURL, pageURL, callback)
    171171    {
    172172        var id = "extension-panel-" + extensionServer.nextObjectId();
     
    175175            id: id,
    176176            title: title,
    177             icon: icon,
    178             page: page
     177            icon: expandURL(iconURL),
     178            url: expandURL(pageURL)
    179179        };
    180180        extensionServer.sendRequest(request, callback && bind(callback, this, new ExtensionPanel(id)));
     
    249249    },
    250250
    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) });
    254254    }
    255255}
     
    441441}
    442442
     443function 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
    443455function bind(func, thisObject)
    444456{
  • trunk/Source/WebCore/inspector/front-end/ExtensionPanel.js

    r90581 r90588  
    3232{
    3333    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 + ");");
    3635    WebInspector.Panel.call(this, id);
    3736}
  • trunk/Source/WebCore/inspector/front-end/ExtensionServer.js

    r90581 r90588  
    3939    this._resources = {};
    4040    this._lastResourceId = 0;
    41     this._allowedOrigins = {};
    4241    this._status = new WebInspector.ExtensionStatus();
    4342
     
    205204            return this._status.E_EXISTS(id);
    206205
    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);
    208207        this._clientObjects[id] = panel;
    209208        WebInspector.panels[id] = panel;
    210209        WebInspector.addPanel(panel);
    211210
    212         var iframe = this.createClientIframe(panel.element, this._expandResourcePath(port._extensionOrigin, message.page));
     211        var iframe = this.createClientIframe(panel.element, message.url);
    213212        iframe.addStyleClass("panel");
    214213        return this._status.OK();
     
    259258    },
    260259
    261     _onSetSidebarPage: function(message, port)
     260    _onSetSidebarPage: function(message)
    262261    {
    263262        var sidebar = this._clientObjects[message.id];
    264263        if (!sidebar)
    265264            return this._status.E_NOTFOUND(message.id);
    266         sidebar.setPage(this._expandResourcePath(port._extensionOrigin, message.page));
     265        sidebar.setPage(message.url);
    267266    },
    268267
     
    410409                if (!extension.startPage)
    411410                    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;
    418411                var iframe = document.createElement("iframe");
    419412                iframe.src = extension.startPage;
     
    449442        if (event.data !== "registerExtension")
    450443            return;
    451         if (!this._allowedOrigins.hasOwnProperty(event.origin)) {
    452             console.error("Ignoring unauthorized client request from " + event.origin);
    453             return;
    454         }
    455444        var port = event.ports[0];
    456         port._extensionOrigin = event.origin;
    457445        port.addEventListener("message", this._onmessage.bind(this), false);
    458446        port.start();
     
    482470        this._subscriptionStartHandlers[eventTopic] =  onSubscribeFirst;
    483471        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             else
    507                 result.push(source[i]);
    508         }
    509         return "/" + result.join("/");
    510472    }
    511473}
Note: See TracChangeset for help on using the changeset viewer.