Bug 73078 - Web Inspector: refactor resource tree model and introduce explicit class for ResourceTreeFrame.
: Web Inspector: refactor resource tree model and introduce explicit class for ...
Status: RESOLVED FIXED
: WebKit
Web Inspector (Deprecated)
: 528+ (Nightly build)
: All All
: P2 Normal
Assigned To:
:
:
:
:
  Show dependency treegraph
 
Reported: 2011-11-24 06:44 PST by
Modified: 2011-11-25 01:23 PST (History)


Attachments
Patch (65.12 KB, patch)
2011-11-24 06:46 PST, Pavel Feldman
no flags Review Patch | Details | Formatted Diff | Diff
[Patch] First pass of review comments addressed (67.44 KB, patch)
2011-11-24 11:36 PST, Pavel Feldman
yurys: review+
Review Patch | Details | Formatted Diff | Diff


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2011-11-24 06:44:00 PST
Otherwise we are managing frames and their resources using too many maps.
------- Comment #1 From 2011-11-24 06:46:40 PST -------
Created an attachment (id=116504) [details]
Patch
------- Comment #2 From 2011-11-24 08:06:56 PST -------
(From update of attachment 116504 [details])
View in context: https://bugs.webkit.org/attachment.cgi?id=116504&action=review

> Source/WebCore/inspector/Inspector.json:680
> +                    { "name": "frameId", "$ref": "FrameId", "description": "Frame identifier.", "hidden": true },
> +                    { "name": "loaderId", "$ref": "LoaderId", "description": "Loader identifier." },

These should be added to the end as optional right? Since this is a change from Inspector-0.1.json. Also why is frameId always hidden?

> Source/WebCore/inspector/front-end/ApplicationCacheModel.js:59
> +        var frame = /** @type {WebInspector.ResourceTreeFrame} */ event.data;

These type comments are getting intrusive…
------- Comment #3 From 2011-11-24 08:17:16 PST -------
(In reply to comment #2)
> (From update of attachment 116504 [details] [details])
> View in context: https://bugs.webkit.org/attachment.cgi?id=116504&action=review
> 
> > Source/WebCore/inspector/Inspector.json:680
> > +                    { "name": "frameId", "$ref": "FrameId", "description": "Frame identifier.", "hidden": true },
> > +                    { "name": "loaderId", "$ref": "LoaderId", "description": "Loader identifier." },
> 
> These should be added to the end as optional right? Since this is a change from Inspector-0.1.json. Also why is frameId always hidden?

We can add any parameters into the _events_ and remove optional parameters from them. We can't add non-optional parameters to the _commands_ only.

> 
> > Source/WebCore/inspector/front-end/ApplicationCacheModel.js:59
> > +        var frame = /** @type {WebInspector.ResourceTreeFrame} */ event.data;
> 
> These type comments are getting intrusive…

I know. We are experimenting with this type of cast. It is not clear how much we need to annotate to get a strict type checking. But as is, compilation already catches a handful of bugs for me every day.
------- Comment #4 From 2011-11-24 08:20:16 PST -------
(From update of attachment 116504 [details])
View in context: https://bugs.webkit.org/attachment.cgi?id=116504&action=review

>>> Source/WebCore/inspector/front-end/ApplicationCacheModel.js:59
>>> +        var frame = /** @type {WebInspector.ResourceTreeFrame} */ event.data;
>> 
>> These type comments are getting intrusive…
> 
> I know. We are experimenting with this type of cast. It is not clear how much we need to annotate to get a strict type checking. But as is, compilation already catches a handful of bugs for me every day.

I'm confused. Why does order not matter for events when other clients might be using this and break after this change?
------- Comment #5 From 2011-11-24 08:21:04 PST -------
(In reply to comment #4)
> (From update of attachment 116504 [details] [details])
> View in context: https://bugs.webkit.org/attachment.cgi?id=116504&action=review
> 
> >>> Source/WebCore/inspector/front-end/ApplicationCacheModel.js:59
> >>> +        var frame = /** @type {WebInspector.ResourceTreeFrame} */ event.data;
> >> 
> >> These type comments are getting intrusive…
> > 
> > I know. We are experimenting with this type of cast. It is not clear how much we need to annotate to get a strict type checking. But as is, compilation already catches a handful of bugs for me every day.
> 
> I'm confused. Why does order not matter for events when other clients might be using this and break after this change?

Sigh, that is not the comment I replied to.
------- Comment #6 From 2011-11-24 09:50:21 PST -------
(From update of attachment 116504 [details])
View in context: https://bugs.webkit.org/attachment.cgi?id=116504&action=review

> Source/WebCore/inspector/front-end/ResourceTreeModel.js:108
> +                this._frameDetached(this.mainFrame.id);

Please move this to _frameNavigated.

> Source/WebCore/inspector/front-end/ResourceTreeModel.js:117
> +    _frameNavigated: function(framePayload)

You should remove all child frames here.
------- Comment #7 From 2011-11-24 11:36:49 PST -------
Created an attachment (id=116524) [details]
[Patch] First pass of review comments addressed
------- Comment #8 From 2011-11-25 00:38:38 PST -------
(From update of attachment 116524 [details])
View in context: https://bugs.webkit.org/attachment.cgi?id=116524&action=review

> Source/WebCore/inspector/front-end/ResourceTreeModel.js:154
> +        if (!framePayload.parentId && !WebInspector.networkLog.resources.length) {

Please comment on this logic.
------- Comment #9 From 2011-11-25 01:23:46 PST -------
Committed r101154: <http://trac.webkit.org/changeset/101154>