<!DOCTYPE html>
<head>
    <title>GC Heap Inspector</title>
    <meta charset="utf8">
    <style type="text/css" media="screen">

        body {
            font-family: "Helvetica Neue";
            line-height: 1.3;
        }

        h1 {
            margin-bottom: 0.2em;
            font-size: 32px;
        }

        label {
            font-size: 13px;
        }

        #dropTarget {
            font-size: 12pt;
            font-weight: bold;
            color: #888;
            position: absolute;
            top: 20px;
            right: 20px;
            border: 2px solid rgba(0, 0, 0, 0.3);
            background-color: rgba(0, 0, 0, 0.1);
            padding: 10px;
            border-radius: 10px;
        }

        #dropTarget.dragOver {
            border: 2px solid rgba(0, 0, 0, 0.1);
            background-color: rgba(0, 0, 0, 0.5);
            color: #ddd;
        }
        
        details {
            margin-left: 20px;
        }
        
        ul.path {
            margin-top: 5px;
        }
        
        ul.instance-list {
            margin-top: 0.3em;
            padding-left: 1.2em;
            list-style-type: none;
        }

        .node-id::before {
            content: '@';
        }

        .node-id {
            font-size: smaller;
            color: silver;
            display: none; /* Remove if you want to see cell identifiers. */
        }

        .node-address, .node-size, .node-label {
            font-family: monospace;
            color: gray;
        }
        
        .retained-size {
            font-family: monospace;
            color: rgb(25, 88, 180);
        }
        
        .node-gc-root {
            font-size: smaller;
            color: maroon;
        }
        
        .node-gc-root img {
            margin: 0 3px;
            height: 1.4em;
            width: 1.4em;
            vertical-align: middle;
            cursor: pointer;
            display: none;
        }
        
        .edge::before {
            content: ' ⟹ ';
            color: gray;
        }

        .edge::after {
            content: ' ⟹';
            color: gray;
        }
        
        .edge-data {
            font-family: monospace;
            color: gray;
        }
        
        ul.path {
            list-style-type: none;
        }
        
        #description {
            position: fixed;
            margin: 300px calc((100vw - 500px) / 2);
            border: 2px solid rgba(0, 0, 0, 0.3);
            background-color: rgba(0, 0, 0, 0.1);
            padding: 20px 50px;
            border-radius: 10px;
            width: 500px;
        }

        #description > h1 {
            margin-top: 10px;
            margin-bottom: 15px;
        }
        
        #description code {
            display: block;
            margin: 15px 0;
        }
        
        #description.hidden {
            display: none;
        }
        
        #uiContainer {
            display: none;
        }
        
    </style>

    <script src="script/interface.js"></script>
    <script src="heap-analysis/HeapSnapshot.js"></script>
</head>
<body>
    <header>
    <div id="dropTarget">Drop GC heap JSON file here to load.</div>
    </header>

    <section id="description">
        <h1>GC heap debugger</h2>
        <p>This page is for analyzing JSON dumps of the GC heap. To debug an issue that you think might be a leaked or abandoned object (often a Document or JSGlobalObject), load the test page, then navigate to about:blank or other simple page. Now simulate a memory warning (to clear the page cache) by issuing the following command in a Terminal window:
        <code>notifyutil -p org.WebKit.lowMemory</code>
        
        You can now inspect the list of live documents via:
        <code>notifyutil -p com.apple.WebKit.showAllDocuments</code>
        
        which prints its output to the system log. If this lists documents other than the current page, you may have a leaked or abandoned Document. To see if the GC heap is referencing that Document, obtain a GC heap dump:
        <code>notifyutil -p com.apple.WebKit.dumpGCHeap</code>
        
        That command will generate a JSON file in /tmp (or equivalent); the file path is dumped to the system log. Drag that file onto the drop target in the top right (or use the ?filename= URL parameter).
        </p>
        <p>
        For more information, see the wiki page on <a href="https://trac.webkit.org/wiki/Inspecting%20the%20GC%20heap">Inspecting the GC heap</a>.
        </p>
    </section>

    <section id="uiContainer">

        <div id="rooted">
        </div>

        <h1>All paths to…</h1>
        <div id="all-paths">
        </div>

        <h1>Objects</h1>
        <section id="categories">
        </section>

        <h1>Roots</h1>
        <section id="roots">
        </section>
    </section>
    
</body>
</html>
