⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 144058 in webkit


Ignore:
Timestamp:
Feb 26, 2013, 7:59:46 AM (14 years ago)
Author:
vsevik@chromium.org
Message:

Web Inspector: Migrate FileSystem inspection support to ResourceTreeModel's SecurityOriginAdded/Removed events.
https://bugs.webkit.org/show_bug.cgi?id=110878

Reviewed by Alexander Pavlov.

Recently added SecurityOriginAdded/Removed events support was essentially duplicated in
FileSystemModel. This patch migrates FileSystem inspection support to new events.

  • inspector/front-end/FileSystemModel.js:

(WebInspector.FileSystemModel):
(WebInspector.FileSystemModel.prototype._reset):
(WebInspector.FileSystemModel.prototype._securityOriginAdded):
(WebInspector.FileSystemModel.prototype._securityOriginRemoved):
(WebInspector.FileSystemModel.prototype._addOrigin):
(WebInspector.FileSystemModel.prototype._removeOrigin):
(WebInspector.FileSystemModel.prototype.refreshFileSystemList):

Location:
trunk/Source/WebCore
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r144057 r144058  
     12013-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
    1202013-02-26  Antoine Quint  <graouts@apple.com>
    221
  • trunk/Source/WebCore/inspector/front-end/FileSystemModel.js

    r140122 r144058  
    3737    WebInspector.Object.call(this);
    3838
    39     this._originForFrameId = {};
    40     this._frameIdsForOrigin = {};
    4139    this._fileSystemsForOrigin = {};
    4240
    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);
    4643
    4744    FileSystemAgent.enable();
    4845
    49     if (WebInspector.resourceTreeModel.mainFrame)
    50         this._attachFrameRecursively(WebInspector.resourceTreeModel.mainFrame);
     46    this._reset();
    5147}
    5248
    5349WebInspector.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
    5459    /**
    5560     * @param {WebInspector.Event} event
    5661     */
    57     _frameAdded: function(event)
    58     {
    59         var frame = /** @type {WebInspector.ResourceTreeFrame} */ (event.data);
    60         this._attachFrameRecursively(frame);
     62    _securityOriginAdded: function(event)
     63    {
     64        var securityOrigin = /** @type {string} */ (event.data);
     65        this._addOrigin(securityOrigin);
    6166    },
    6267
     
    6469     * @param {WebInspector.Event} event
    6570     */
    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] = {};
    14883
    14984        var types = ["persistent", "temporary"];
    15085        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];
    152100    },
    153101
     
    178126
    179127    /**
    180      * @param {string} origin
    181      */
    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     /**
    193128     * @param {WebInspector.FileSystemModel.FileSystem} fileSystem
    194129     */
     
    208143    refreshFileSystemList: function()
    209144    {
    210         if (WebInspector.resourceTreeModel.mainFrame) {
    211             this._detachFrameRecursively(WebInspector.resourceTreeModel.mainFrame);
    212             this._attachFrameRecursively(WebInspector.resourceTreeModel.mainFrame);
    213         }
     145        this._reset();
    214146    },
    215147
Note: See TracChangeset for help on using the changeset viewer.