[Webkit-unassigned] [Bug 150826] New: Web Inspector: Timeline Records Unexpected FunctionCall inside of FunctionCall

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Mon Nov 2 17:07:25 PST 2015


https://bugs.webkit.org/show_bug.cgi?id=150826

            Bug ID: 150826
           Summary: Web Inspector: Timeline Records Unexpected
                    FunctionCall inside of FunctionCall
    Classification: Unclassified
           Product: WebKit
           Version: WebKit Nightly Build
          Hardware: All
                OS: All
            Status: NEW
          Severity: Normal
          Priority: P2
         Component: Web Inspector
          Assignee: webkit-unassigned at lists.webkit.org
          Reporter: joepeck at webkit.org
                CC: bburg at apple.com, graouts at webkit.org,
                    joepeck at webkit.org, mattbaker at apple.com,
                    nvasilyev at apple.com, timothy at apple.com,
                    webkit-bug-importer at group.apple.com

* SUMMARY
Timeline Records Unexpected FunctionCall inside of FunctionCall.

* TEST
<body>
<script>
var observer = new MutationObserver(function alpha() {
    setTimeout(function beta() {
        console.log("whoa");
    }, 10);
});
observer.observe(document.body, {attributes: true, childList: true, characterData: true});
document.write("<b>Test</b>");
</script>

* STEPS TO REPRODUCE
1. Inspect test page
2. Show Timeline
3. Reload (needs at least one timestamp...)
4. Start recording timeline
5. Reload
6. Stop recording timeline
  => warning in console about missing FunctionCall inside of FunctionCall

* NOTES
The eventRecorded stacking looks like:

  - RenderingFrame
    - TimerFire
      - FunctionCall (with Profile)
        - FunctionCall (no Profile)
          - TimerInstall

I do find it interesting that the Profile for the Function Call has 2 root node ("alpha" and "beta").

Given this issue, I have a feeling that this is a backend issue generating records nested incorrectly.

* PROTOCOL
    "method": "Timeline.eventRecorded",
    "params": {
        "record": {
            "startTime": 0.010606311028823256,
            "data": {},
            "type": "RenderingFrame",
            "children": [{
                "startTime": 0.02177164499880746,
                "endTime": 0.02231149101862684,
                "type": "TimerFire"
                "children": [{
                    "startTime": 0.021776599052827805,
                    "endTime": 0.02230980701278895,
                    "type": "FunctionCall"
                    "data": {
                        "scriptName": "file:///Users/pecoraro/Desktop/function-call.html",
                        "scriptLine": 5,
                        "profile": {
                            "rootNodes": [{
                                "id": 8129808,
                                "callInfo": {
                                    "callCount": 1,
                                    "startTime": 0.02185550204012543,
                                    "endTime": 0.02203003002796322,
                                    "totalTime": 0.00017452798783779144
                                },
                                "functionName": "beta",
                                ...
                            }, {
                                "id": 4486534,
                                "callInfo": {
                                    "callCount": 1,
                                    "startTime": 0.0220418720273301,
                                    "endTime": 0.022289311047643423,
                                    "totalTime": 0.00024743902031332254
                                },
                                "functionName": "alpha",
                                ...
                            }]
                        }
                    },
                    "children": [{
                        "startTime": 0.022038987022824585,
                        "endTime": 0.02229272504337132,
                        "type": "FunctionCall"
                        "frameId": "0.1",
                        "data": {
                            "scriptName": "file:///Users/pecoraro/Desktop/function-call.html",
                            "scriptLine": 3
                        },
                        "children": [{
                            "startTime": 0.022177679056767374,
                            "frameId": "0.1",
                            "type": "TimerInstall"
                            "stackTrace": [{
                                "functionName": "setTimeout",
                                "url": "[native code]",
                                "lineNumber": 0,
                                "columnNumber": 0
                            }, {
                                "functionName": "alpha",
                                "url": "file:///Users/pecoraro/Desktop/function-call.html",
                                "lineNumber": 5,
                                "columnNumber": 15
                            }],
                            "data": {
                                "timerId": 2,
                                "timeout": 10,
                                "singleShot": true
                            },
                        }],
                    }],
                }],
            }
            ...

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.webkit.org/pipermail/webkit-unassigned/attachments/20151103/c7982bf1/attachment-0001.html>


More information about the webkit-unassigned mailing list