Bug 1546202 - Part 6: Delete the old Source object text value fields to switch fully to SourceContent. r=jlast
authorLogan Smyth <loganfsmyth@gmail.com>
Tue, 23 Apr 2019 16:58:57 +0000
changeset 470529 f81c7ca6d292fdd90c810576ea888132c3a11803
parent 470528 55ac8a74ae588ba1ea7760c53512ad4fc42b51d0
child 470530 4e944453387799c678ea924d3b9084fdc011d199
push id35906
push useraciure@mozilla.com
push dateTue, 23 Apr 2019 22:14:56 +0000
treeherdermozilla-central@0ce3633f8b80 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersjlast
bugs1546202
milestone68.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1546202 - Part 6: Delete the old Source object text value fields to switch fully to SourceContent. r=jlast Depends on D28412 Differential Revision: https://phabricator.services.mozilla.com/D28413
devtools/client/debugger/src/actions/breakpoints/tests/__snapshots__/breakpoints.spec.js.snap
devtools/client/debugger/src/actions/sources/newSources.js
devtools/client/debugger/src/actions/sources/prettyPrint.js
devtools/client/debugger/src/actions/sources/tests/__snapshots__/prettyPrint.spec.js.snap
devtools/client/debugger/src/components/Editor/tests/Editor.spec.js
devtools/client/debugger/src/components/PrimaryPanes/tests/__snapshots__/SourcesTree.spec.js.snap
devtools/client/debugger/src/components/PrimaryPanes/tests/__snapshots__/SourcesTreeItem.spec.js.snap
devtools/client/debugger/src/components/SecondaryPanes/Frames/tests/__snapshots__/Frame.spec.js.snap
devtools/client/debugger/src/components/SecondaryPanes/Frames/tests/__snapshots__/Frames.spec.js.snap
devtools/client/debugger/src/components/SecondaryPanes/Frames/tests/__snapshots__/Group.spec.js.snap
devtools/client/debugger/src/reducers/sources.js
devtools/client/debugger/src/types.js
devtools/client/debugger/src/utils/sources-tree/tests/__snapshots__/updateTree.spec.js.snap
devtools/client/debugger/src/utils/sources-tree/tests/getUrl.spec.js
devtools/client/debugger/src/utils/test-head.js
devtools/client/debugger/src/utils/test-mockup.js
--- a/devtools/client/debugger/src/actions/breakpoints/tests/__snapshots__/breakpoints.spec.js.snap
+++ b/devtools/client/debugger/src/actions/breakpoints/tests/__snapshots__/breakpoints.spec.js.snap
@@ -30,30 +30,25 @@ Array [
           "sourceUrl": "http://localhost:8000/examples/a",
         },
         "options": Object {},
         "originalText": "return a",
         "text": "return a",
       },
     ],
     "source": Object {
-      "contentType": "text/javascript",
       "id": "a",
       "introductionType": null,
       "introductionUrl": null,
       "isBlackBoxed": false,
       "isExtension": false,
       "isPrettyPrinted": false,
       "isWasm": false,
-      "loadedState": "loaded",
       "relativeUrl": "http://localhost:8000/examples/a",
       "sourceMapURL": null,
-      "text": "function a() {
-  return a 
-}",
       "url": "http://localhost:8000/examples/a",
     },
   },
 ]
 `;
 
 exports[`breakpoints should not show a breakpoint that does not have text 1`] = `Array []`;
 
@@ -117,27 +112,22 @@ Array [
           "sourceUrl": "http://localhost:8000/examples/a",
         },
         "options": Object {},
         "originalText": "",
         "text": "",
       },
     ],
     "source": Object {
-      "contentType": "text/javascript",
       "id": "a",
       "introductionType": null,
       "introductionUrl": null,
       "isBlackBoxed": false,
       "isExtension": false,
       "isPrettyPrinted": false,
       "isWasm": false,
-      "loadedState": "loaded",
       "relativeUrl": "http://localhost:8000/examples/a",
       "sourceMapURL": null,
-      "text": "function a() {
-  return a 
-}",
       "url": "http://localhost:8000/examples/a",
     },
   },
 ]
 `;
--- a/devtools/client/debugger/src/actions/sources/newSources.js
+++ b/devtools/client/debugger/src/actions/sources/newSources.js
@@ -255,17 +255,16 @@ export function newOriginalSources(sourc
   return async ({ dispatch, getState }: ThunkArgs) => {
     const sources: Array<Source> = sourceInfo.map(({ id, url }) => ({
       id,
       url,
       relativeUrl: url,
       isPrettyPrinted: false,
       isWasm: false,
       isBlackBoxed: false,
-      loadedState: "unloaded",
       introductionUrl: null,
       introductionType: undefined,
       isExtension: false
     }));
 
     const cx = getContext(getState());
     dispatch(addSources(cx, sources));
 
@@ -302,17 +301,16 @@ export function newGeneratedSources(sour
             id: newId,
             url: source.url,
             relativeUrl: source.url,
             isPrettyPrinted: false,
             sourceMapURL: source.sourceMapURL,
             introductionUrl: source.introductionUrl,
             introductionType: source.introductionType,
             isBlackBoxed: false,
-            loadedState: "unloaded",
             isWasm: !!supportsWasm && source.introductionType === "wasm",
             isExtension: (source.url && isUrlExtension(source.url)) || false
           }: any)
         );
       }
 
       const actorId = stringToSourceActorId(source.actor);
 
--- a/devtools/client/debugger/src/actions/sources/prettyPrint.js
+++ b/devtools/client/debugger/src/actions/sources/prettyPrint.js
@@ -74,18 +74,16 @@ export function createPrettySource(cx: C
 
     const prettySource: JsSource = {
       id,
       url,
       relativeUrl: url,
       isBlackBoxed: false,
       isPrettyPrinted: true,
       isWasm: false,
-      contentType: "text/javascript",
-      loadedState: "loading",
       introductionUrl: null,
       introductionType: undefined,
       isExtension: false
     };
 
     dispatch(({ type: "ADD_SOURCE", cx, source: prettySource }: Action));
     await dispatch(selectSource(cx, prettySource.id));
 
--- a/devtools/client/debugger/src/actions/sources/tests/__snapshots__/prettyPrint.spec.js.snap
+++ b/devtools/client/debugger/src/actions/sources/tests/__snapshots__/prettyPrint.spec.js.snap
@@ -1,26 +1,20 @@
 // Jest Snapshot v1, https://goo.gl/fbAQLP
 
 exports[`sources - pretty print returns a pretty source for a minified file 1`] = `
 Object {
-  "contentType": "text/javascript",
   "id": "base.js/originalSource-36c718d4bde9a75edb388ff7733efe7f",
   "introductionType": undefined,
   "introductionUrl": null,
   "isBlackBoxed": false,
   "isExtension": false,
   "isPrettyPrinted": true,
   "isWasm": false,
-  "loadedState": "loaded",
   "relativeUrl": "http://localhost:8000/examples/base.js:formatted",
-  "text": "function base() {
-  return base
-}
-",
   "url": "http://localhost:8000/examples/base.js:formatted",
 }
 `;
 
 exports[`sources - pretty print returns a pretty source for a minified file 2`] = `
 Object {
   "state": "fulfilled",
   "value": Object {
--- a/devtools/client/debugger/src/components/Editor/tests/Editor.spec.js
+++ b/devtools/client/debugger/src/components/Editor/tests/Editor.spec.js
@@ -72,20 +72,16 @@ function createMockSourceWithContent(
     contentType = undefined,
     error = undefined,
     ...otherOverrides
   } = overrides;
 
   const source: JsSource = ({
     id: "foo",
     url: "foo",
-    text,
-    loadedState,
-    contentType,
-    error,
     ...otherOverrides
   }: any);
   let content = null;
   if (loadedState === "loaded") {
     if (typeof text !== "string") {
       throw new Error("Cannot create a non-text source");
     }
 
--- a/devtools/client/debugger/src/components/PrimaryPanes/tests/__snapshots__/SourcesTree.spec.js.snap
+++ b/devtools/client/debugger/src/components/PrimaryPanes/tests/__snapshots__/SourcesTree.spec.js.snap
@@ -195,130 +195,112 @@ exports[`SourcesTree on receiving new pr
       getChildren={[Function]}
       getParent={[Function]}
       getPath={[Function]}
       getRoots={[Function]}
       highlightItems={
         Array [
           Object {
             "contents": Object {
-              "contentType": "text/javascript",
               "id": "server1.conn13.child1/41",
               "introductionType": undefined,
               "introductionUrl": null,
               "isBlackBoxed": false,
               "isExtension": false,
               "isPrettyPrinted": false,
               "isWasm": false,
-              "loadedState": "unloaded",
               "relativeUrl": "http://mdn.com/three.js",
               "sourceMapURL": null,
-              "text": "",
               "url": "http://mdn.com/three.js",
             },
             "name": "three.js",
             "path": "mdn.com/three.js",
             "type": "source",
           },
           Object {
             "contents": Array [
               Object {
                 "contents": Object {
-                  "contentType": "text/javascript",
                   "id": "server1.conn13.child1/42",
                   "introductionType": undefined,
                   "introductionUrl": null,
                   "isBlackBoxed": false,
                   "isExtension": false,
                   "isPrettyPrinted": false,
                   "isWasm": false,
-                  "loadedState": "unloaded",
                   "relativeUrl": "http://mdn.com/four.js",
                   "sourceMapURL": "data:application/json?charset=utf?dsffewrsf",
-                  "text": "",
                   "url": "http://mdn.com/four.js",
                 },
                 "name": "four.js",
                 "path": "mdn.com/four.js",
                 "type": "source",
               },
               Object {
                 "contents": Object {
-                  "contentType": "text/javascript",
                   "id": "server1.conn13.child1/42/originalSource-sha",
                   "introductionType": undefined,
                   "introductionUrl": null,
                   "isBlackBoxed": false,
                   "isExtension": false,
                   "isPrettyPrinted": false,
                   "isWasm": false,
-                  "loadedState": "unloaded",
                   "relativeUrl": "http://mdn.com/four.js",
                   "sourceMapURL": null,
-                  "text": "",
                   "url": "http://mdn.com/four.js",
                 },
                 "name": "four.js",
                 "path": "mdn.com/four.js",
                 "type": "source",
               },
               Object {
                 "contents": Object {
-                  "contentType": "text/javascript",
                   "id": "server1.conn13.child1/39",
                   "introductionType": undefined,
                   "introductionUrl": null,
                   "isBlackBoxed": false,
                   "isExtension": false,
                   "isPrettyPrinted": false,
                   "isWasm": false,
-                  "loadedState": "unloaded",
                   "relativeUrl": "http://mdn.com/one.js",
                   "sourceMapURL": null,
-                  "text": "",
                   "url": "http://mdn.com/one.js",
                 },
                 "name": "one.js",
                 "path": "mdn.com/one.js",
                 "type": "source",
               },
               Object {
                 "contents": Object {
-                  "contentType": "text/javascript",
                   "id": "server1.conn13.child1/41",
                   "introductionType": undefined,
                   "introductionUrl": null,
                   "isBlackBoxed": false,
                   "isExtension": false,
                   "isPrettyPrinted": false,
                   "isWasm": false,
-                  "loadedState": "unloaded",
                   "relativeUrl": "http://mdn.com/three.js",
                   "sourceMapURL": null,
-                  "text": "",
                   "url": "http://mdn.com/three.js",
                 },
                 "name": "three.js",
                 "path": "mdn.com/three.js",
                 "type": "source",
               },
               Object {
                 "contents": Object {
-                  "contentType": "text/javascript",
                   "id": "server1.conn13.child1/40",
                   "introductionType": undefined,
                   "introductionUrl": null,
                   "isBlackBoxed": false,
                   "isExtension": false,
                   "isPrettyPrinted": false,
                   "isWasm": false,
-                  "loadedState": "unloaded",
                   "relativeUrl": "http://mdn.com/two.js",
                   "sourceMapURL": null,
-                  "text": "",
                   "url": "http://mdn.com/two.js",
                 },
                 "name": "two.js",
                 "path": "mdn.com/two.js",
                 "type": "source",
               },
             ],
             "name": "mdn.com",
--- a/devtools/client/debugger/src/components/PrimaryPanes/tests/__snapshots__/SourcesTreeItem.spec.js.snap
+++ b/devtools/client/debugger/src/components/PrimaryPanes/tests/__snapshots__/SourcesTreeItem.spec.js.snap
@@ -9,27 +9,24 @@ Object {
     onContextMenu={[Function]}
   >
     <span
       className="img no-arrow"
     />
     <Connect(SourceIcon)
       source={
         Object {
-          "contentType": "text/javascript",
           "id": "server1.conn13.child1/39",
           "introductionType": undefined,
           "introductionUrl": null,
           "isBlackBoxed": false,
           "isExtension": false,
           "isPrettyPrinted": false,
           "isWasm": false,
-          "loadedState": "unloaded",
           "relativeUrl": "http://mdn.com/one.js",
-          "text": "",
           "url": "http://mdn.com/one.js",
         }
       }
     />
     <span
       className="label"
     >
        
@@ -45,48 +42,42 @@ Object {
     "onContextMenu": [Function],
     "props": Object {
       "clearProjectDirectoryRoot": [MockFunction],
       "debuggeeUrl": "http://mdn.com",
       "expanded": false,
       "focusItem": [MockFunction],
       "item": Object {
         "contents": Object {
-          "contentType": "text/javascript",
           "id": "server1.conn13.child1/39",
           "introductionType": undefined,
           "introductionUrl": null,
           "isBlackBoxed": false,
           "isExtension": false,
           "isPrettyPrinted": false,
           "isWasm": false,
-          "loadedState": "unloaded",
           "relativeUrl": "http://mdn.com/one.js",
-          "text": "",
           "url": "http://mdn.com/one.js",
         },
         "name": "one.js",
         "path": "mdn.com/one.js",
       },
       "projectRoot": "root/",
       "selectItem": [MockFunction],
       "setExpanded": [MockFunction],
       "setProjectDirectoryRoot": [MockFunction],
       "source": Object {
-        "contentType": "text/javascript",
         "id": "server1.conn13.child1/39",
         "introductionType": undefined,
         "introductionUrl": null,
         "isBlackBoxed": false,
         "isExtension": false,
         "isPrettyPrinted": false,
         "isWasm": false,
-        "loadedState": "unloaded",
         "relativeUrl": "http://mdn.com/one.js",
-        "text": "",
         "url": "http://mdn.com/one.js",
       },
       "toggleBlackBox": [MockFunction],
     },
     "refs": Object {},
     "state": null,
     "updater": Updater {
       "_callbacks": Array [],
@@ -95,50 +86,44 @@ Object {
         "_element": <SourceTreeItem
           clearProjectDirectoryRoot={[MockFunction]}
           debuggeeUrl="http://mdn.com"
           expanded={false}
           focusItem={[MockFunction]}
           item={
             Object {
               "contents": Object {
-                "contentType": "text/javascript",
                 "id": "server1.conn13.child1/39",
                 "introductionType": undefined,
                 "introductionUrl": null,
                 "isBlackBoxed": false,
                 "isExtension": false,
                 "isPrettyPrinted": false,
                 "isWasm": false,
-                "loadedState": "unloaded",
                 "relativeUrl": "http://mdn.com/one.js",
-                "text": "",
                 "url": "http://mdn.com/one.js",
               },
               "name": "one.js",
               "path": "mdn.com/one.js",
             }
           }
           projectRoot="root/"
           selectItem={[MockFunction]}
           setExpanded={[MockFunction]}
           setProjectDirectoryRoot={[MockFunction]}
           source={
             Object {
-              "contentType": "text/javascript",
               "id": "server1.conn13.child1/39",
               "introductionType": undefined,
               "introductionUrl": null,
               "isBlackBoxed": false,
               "isExtension": false,
               "isPrettyPrinted": false,
               "isWasm": false,
-              "loadedState": "unloaded",
               "relativeUrl": "http://mdn.com/one.js",
-              "text": "",
               "url": "http://mdn.com/one.js",
             }
           }
           toggleBlackBox={[MockFunction]}
         />,
         "_forcedUpdate": false,
         "_instance": [Circular],
         "_newState": null,
@@ -148,27 +133,24 @@ Object {
           onContextMenu={[Function]}
         >
           <span
             className="img no-arrow"
           />
           <Connect(SourceIcon)
             source={
               Object {
-                "contentType": "text/javascript",
                 "id": "server1.conn13.child1/39",
                 "introductionType": undefined,
                 "introductionUrl": null,
                 "isBlackBoxed": false,
                 "isExtension": false,
                 "isPrettyPrinted": false,
                 "isWasm": false,
-                "loadedState": "unloaded",
                 "relativeUrl": "http://mdn.com/one.js",
-                "text": "",
                 "url": "http://mdn.com/one.js",
               }
             }
           />
           <span
             className="label"
           >
              
@@ -183,48 +165,42 @@ Object {
   },
   "props": Object {
     "clearProjectDirectoryRoot": [MockFunction],
     "debuggeeUrl": "http://mdn.com",
     "expanded": false,
     "focusItem": [MockFunction],
     "item": Object {
       "contents": Object {
-        "contentType": "text/javascript",
         "id": "server1.conn13.child1/39",
         "introductionType": undefined,
         "introductionUrl": null,
         "isBlackBoxed": false,
         "isExtension": false,
         "isPrettyPrinted": false,
         "isWasm": false,
-        "loadedState": "unloaded",
         "relativeUrl": "http://mdn.com/one.js",
-        "text": "",
         "url": "http://mdn.com/one.js",
       },
       "name": "one.js",
       "path": "mdn.com/one.js",
     },
     "projectRoot": "root/",
     "selectItem": [MockFunction],
     "setExpanded": [MockFunction],
     "setProjectDirectoryRoot": [MockFunction],
     "source": Object {
-      "contentType": "text/javascript",
       "id": "server1.conn13.child1/39",
       "introductionType": undefined,
       "introductionUrl": null,
       "isBlackBoxed": false,
       "isExtension": false,
       "isPrettyPrinted": false,
       "isWasm": false,
-      "loadedState": "unloaded",
       "relativeUrl": "http://mdn.com/one.js",
-      "text": "",
       "url": "http://mdn.com/one.js",
     },
     "toggleBlackBox": [MockFunction],
   },
 }
 `;
 
 exports[`SourceTreeItem renderItem should show (mapped) for duplicate source items 1`] = `
@@ -236,27 +212,24 @@ Object {
     onContextMenu={[Function]}
   >
     <span
       className="img no-arrow"
     />
     <Connect(SourceIcon)
       source={
         Object {
-          "contentType": "text/javascript",
           "id": "server1.conn13.child1/39",
           "introductionType": undefined,
           "introductionUrl": null,
           "isBlackBoxed": false,
           "isExtension": false,
           "isPrettyPrinted": false,
           "isWasm": false,
-          "loadedState": "unloaded",
           "relativeUrl": "http://mdn.com/one.js",
-          "text": "",
           "url": "http://mdn.com/one.js",
         }
       }
     />
     <span
       className="label"
     >
        
@@ -278,49 +251,43 @@ Object {
     "props": Object {
       "clearProjectDirectoryRoot": [MockFunction],
       "debuggeeUrl": "http://mdn.com",
       "expanded": false,
       "focusItem": [MockFunction],
       "hasMatchingGeneratedSource": true,
       "item": Object {
         "contents": Object {
-          "contentType": "text/javascript",
           "id": "server1.conn13.child1/39",
           "introductionType": undefined,
           "introductionUrl": null,
           "isBlackBoxed": false,
           "isExtension": false,
           "isPrettyPrinted": false,
           "isWasm": false,
-          "loadedState": "unloaded",
           "relativeUrl": "url",
-          "text": "",
           "url": "url",
         },
         "name": "one.js",
         "path": "http://mdn.com/one.js",
         "type": "source",
       },
       "projectRoot": "",
       "selectItem": [MockFunction],
       "setExpanded": [MockFunction],
       "setProjectDirectoryRoot": [MockFunction],
       "source": Object {
-        "contentType": "text/javascript",
         "id": "server1.conn13.child1/39",
         "introductionType": undefined,
         "introductionUrl": null,
         "isBlackBoxed": false,
         "isExtension": false,
         "isPrettyPrinted": false,
         "isWasm": false,
-        "loadedState": "unloaded",
         "relativeUrl": "http://mdn.com/one.js",
-        "text": "",
         "url": "http://mdn.com/one.js",
       },
       "toggleBlackBox": [MockFunction],
     },
     "refs": Object {},
     "state": null,
     "updater": Updater {
       "_callbacks": Array [],
@@ -330,51 +297,45 @@ Object {
           clearProjectDirectoryRoot={[MockFunction]}
           debuggeeUrl="http://mdn.com"
           expanded={false}
           focusItem={[MockFunction]}
           hasMatchingGeneratedSource={true}
           item={
             Object {
               "contents": Object {
-                "contentType": "text/javascript",
                 "id": "server1.conn13.child1/39",
                 "introductionType": undefined,
                 "introductionUrl": null,
                 "isBlackBoxed": false,
                 "isExtension": false,
                 "isPrettyPrinted": false,
                 "isWasm": false,
-                "loadedState": "unloaded",
                 "relativeUrl": "url",
-                "text": "",
                 "url": "url",
               },
               "name": "one.js",
               "path": "http://mdn.com/one.js",
               "type": "source",
             }
           }
           projectRoot=""
           selectItem={[MockFunction]}
           setExpanded={[MockFunction]}
           setProjectDirectoryRoot={[MockFunction]}
           source={
             Object {
-              "contentType": "text/javascript",
               "id": "server1.conn13.child1/39",
               "introductionType": undefined,
               "introductionUrl": null,
               "isBlackBoxed": false,
               "isExtension": false,
               "isPrettyPrinted": false,
               "isWasm": false,
-              "loadedState": "unloaded",
               "relativeUrl": "http://mdn.com/one.js",
-              "text": "",
               "url": "http://mdn.com/one.js",
             }
           }
           toggleBlackBox={[MockFunction]}
         />,
         "_forcedUpdate": false,
         "_instance": [Circular],
         "_newState": null,
@@ -384,27 +345,24 @@ Object {
           onContextMenu={[Function]}
         >
           <span
             className="img no-arrow"
           />
           <Connect(SourceIcon)
             source={
               Object {
-                "contentType": "text/javascript",
                 "id": "server1.conn13.child1/39",
                 "introductionType": undefined,
                 "introductionUrl": null,
                 "isBlackBoxed": false,
                 "isExtension": false,
                 "isPrettyPrinted": false,
                 "isWasm": false,
-                "loadedState": "unloaded",
                 "relativeUrl": "http://mdn.com/one.js",
-                "text": "",
                 "url": "http://mdn.com/one.js",
               }
             }
           />
           <span
             className="label"
           >
              
@@ -425,49 +383,43 @@ Object {
   "props": Object {
     "clearProjectDirectoryRoot": [MockFunction],
     "debuggeeUrl": "http://mdn.com",
     "expanded": false,
     "focusItem": [MockFunction],
     "hasMatchingGeneratedSource": true,
     "item": Object {
       "contents": Object {
-        "contentType": "text/javascript",
         "id": "server1.conn13.child1/39",
         "introductionType": undefined,
         "introductionUrl": null,
         "isBlackBoxed": false,
         "isExtension": false,
         "isPrettyPrinted": false,
         "isWasm": false,
-        "loadedState": "unloaded",
         "relativeUrl": "url",
-        "text": "",
         "url": "url",
       },
       "name": "one.js",
       "path": "http://mdn.com/one.js",
       "type": "source",
     },
     "projectRoot": "",
     "selectItem": [MockFunction],
     "setExpanded": [MockFunction],
     "setProjectDirectoryRoot": [MockFunction],
     "source": Object {
-      "contentType": "text/javascript",
       "id": "server1.conn13.child1/39",
       "introductionType": undefined,
       "introductionUrl": null,
       "isBlackBoxed": false,
       "isExtension": false,
       "isPrettyPrinted": false,
       "isWasm": false,
-      "loadedState": "unloaded",
       "relativeUrl": "http://mdn.com/one.js",
-      "text": "",
       "url": "http://mdn.com/one.js",
     },
     "toggleBlackBox": [MockFunction],
   },
 }
 `;
 
 exports[`SourceTreeItem renderItem should show domain item 1`] = `
@@ -501,49 +453,43 @@ Object {
     "props": Object {
       "clearProjectDirectoryRoot": [MockFunction],
       "debuggeeUrl": "http://mdn.com",
       "depth": 0,
       "expanded": false,
       "focusItem": [MockFunction],
       "item": Object {
         "contents": Object {
-          "contentType": "text/javascript",
           "id": "server1.conn13.child1/39",
           "introductionType": undefined,
           "introductionUrl": null,
           "isBlackBoxed": false,
           "isExtension": false,
           "isPrettyPrinted": false,
           "isWasm": false,
-          "loadedState": "unloaded",
           "relativeUrl": "url",
-          "text": "",
           "url": "url",
         },
         "name": "root",
         "path": "root",
         "type": "source",
       },
       "projectRoot": "",
       "selectItem": [MockFunction],
       "setExpanded": [MockFunction],
       "setProjectDirectoryRoot": [MockFunction],
       "source": Object {
-        "contentType": "text/javascript",
         "id": "server1.conn13.child1/39",
         "introductionType": undefined,
         "introductionUrl": null,
         "isBlackBoxed": false,
         "isExtension": false,
         "isPrettyPrinted": false,
         "isWasm": false,
-        "loadedState": "unloaded",
         "relativeUrl": "http://mdn.com/one.js",
-        "text": "",
         "url": "http://mdn.com/one.js",
       },
       "toggleBlackBox": [MockFunction],
     },
     "refs": Object {},
     "state": null,
     "updater": Updater {
       "_callbacks": Array [],
@@ -553,51 +499,45 @@ Object {
           clearProjectDirectoryRoot={[MockFunction]}
           debuggeeUrl="http://mdn.com"
           depth={0}
           expanded={false}
           focusItem={[MockFunction]}
           item={
             Object {
               "contents": Object {
-                "contentType": "text/javascript",
                 "id": "server1.conn13.child1/39",
                 "introductionType": undefined,
                 "introductionUrl": null,
                 "isBlackBoxed": false,
                 "isExtension": false,
                 "isPrettyPrinted": false,
                 "isWasm": false,
-                "loadedState": "unloaded",
                 "relativeUrl": "url",
-                "text": "",
                 "url": "url",
               },
               "name": "root",
               "path": "root",
               "type": "source",
             }
           }
           projectRoot=""
           selectItem={[MockFunction]}
           setExpanded={[MockFunction]}
           setProjectDirectoryRoot={[MockFunction]}
           source={
             Object {
-              "contentType": "text/javascript",
               "id": "server1.conn13.child1/39",
               "introductionType": undefined,
               "introductionUrl": null,
               "isBlackBoxed": false,
               "isExtension": false,
               "isPrettyPrinted": false,
               "isWasm": false,
-              "loadedState": "unloaded",
               "relativeUrl": "http://mdn.com/one.js",
-              "text": "",
               "url": "http://mdn.com/one.js",
             }
           }
           toggleBlackBox={[MockFunction]}
         />,
         "_forcedUpdate": false,
         "_instance": [Circular],
         "_newState": null,
@@ -628,49 +568,43 @@ Object {
   "props": Object {
     "clearProjectDirectoryRoot": [MockFunction],
     "debuggeeUrl": "http://mdn.com",
     "depth": 0,
     "expanded": false,
     "focusItem": [MockFunction],
     "item": Object {
       "contents": Object {
-        "contentType": "text/javascript",
         "id": "server1.conn13.child1/39",
         "introductionType": undefined,
         "introductionUrl": null,
         "isBlackBoxed": false,
         "isExtension": false,
         "isPrettyPrinted": false,
         "isWasm": false,
-        "loadedState": "unloaded",
         "relativeUrl": "url",
-        "text": "",
         "url": "url",
       },
       "name": "root",
       "path": "root",
       "type": "source",
     },
     "projectRoot": "",
     "selectItem": [MockFunction],
     "setExpanded": [MockFunction],
     "setProjectDirectoryRoot": [MockFunction],
     "source": Object {
-      "contentType": "text/javascript",
       "id": "server1.conn13.child1/39",
       "introductionType": undefined,
       "introductionUrl": null,
       "isBlackBoxed": false,
       "isExtension": false,
       "isPrettyPrinted": false,
       "isWasm": false,
-      "loadedState": "unloaded",
       "relativeUrl": "http://mdn.com/one.js",
-      "text": "",
       "url": "http://mdn.com/one.js",
     },
     "toggleBlackBox": [MockFunction],
   },
 }
 `;
 
 exports[`SourceTreeItem renderItem should show domain item as debuggee 1`] = `
@@ -713,27 +647,24 @@ Object {
         "path": "root",
         "type": "directory",
       },
       "projectRoot": "",
       "selectItem": [MockFunction],
       "setExpanded": [MockFunction],
       "setProjectDirectoryRoot": [MockFunction],
       "source": Object {
-        "contentType": "text/javascript",
         "id": "server1.conn13.child1/39",
         "introductionType": undefined,
         "introductionUrl": null,
         "isBlackBoxed": false,
         "isExtension": false,
         "isPrettyPrinted": false,
         "isWasm": false,
-        "loadedState": "unloaded",
         "relativeUrl": "http://mdn.com/one.js",
-        "text": "",
         "url": "http://mdn.com/one.js",
       },
       "toggleBlackBox": [MockFunction],
     },
     "refs": Object {},
     "state": null,
     "updater": Updater {
       "_callbacks": Array [],
@@ -754,27 +685,24 @@ Object {
             }
           }
           projectRoot=""
           selectItem={[MockFunction]}
           setExpanded={[MockFunction]}
           setProjectDirectoryRoot={[MockFunction]}
           source={
             Object {
-              "contentType": "text/javascript",
               "id": "server1.conn13.child1/39",
               "introductionType": undefined,
               "introductionUrl": null,
               "isBlackBoxed": false,
               "isExtension": false,
               "isPrettyPrinted": false,
               "isWasm": false,
-              "loadedState": "unloaded",
               "relativeUrl": "http://mdn.com/one.js",
-              "text": "",
               "url": "http://mdn.com/one.js",
             }
           }
           toggleBlackBox={[MockFunction]}
         />,
         "_forcedUpdate": false,
         "_instance": [Circular],
         "_newState": null,
@@ -814,27 +742,24 @@ Object {
       "path": "root",
       "type": "directory",
     },
     "projectRoot": "",
     "selectItem": [MockFunction],
     "setExpanded": [MockFunction],
     "setProjectDirectoryRoot": [MockFunction],
     "source": Object {
-      "contentType": "text/javascript",
       "id": "server1.conn13.child1/39",
       "introductionType": undefined,
       "introductionUrl": null,
       "isBlackBoxed": false,
       "isExtension": false,
       "isPrettyPrinted": false,
       "isWasm": false,
-      "loadedState": "unloaded",
       "relativeUrl": "http://mdn.com/one.js",
-      "text": "",
       "url": "http://mdn.com/one.js",
     },
     "toggleBlackBox": [MockFunction],
   },
 }
 `;
 
 exports[`SourceTreeItem renderItem should show domain item as debuggee with focus and arrow 1`] = `
@@ -878,27 +803,24 @@ Object {
         "path": "root",
         "type": "directory",
       },
       "projectRoot": "",
       "selectItem": [MockFunction],
       "setExpanded": [MockFunction],
       "setProjectDirectoryRoot": [MockFunction],
       "source": Object {
-        "contentType": "text/javascript",
         "id": "server1.conn13.child1/39",
         "introductionType": undefined,
         "introductionUrl": null,
         "isBlackBoxed": false,
         "isExtension": false,
         "isPrettyPrinted": false,
         "isWasm": false,
-        "loadedState": "unloaded",
         "relativeUrl": "http://mdn.com/one.js",
-        "text": "",
         "url": "http://mdn.com/one.js",
       },
       "toggleBlackBox": [MockFunction],
     },
     "refs": Object {},
     "state": null,
     "updater": Updater {
       "_callbacks": Array [],
@@ -920,27 +842,24 @@ Object {
             }
           }
           projectRoot=""
           selectItem={[MockFunction]}
           setExpanded={[MockFunction]}
           setProjectDirectoryRoot={[MockFunction]}
           source={
             Object {
-              "contentType": "text/javascript",
               "id": "server1.conn13.child1/39",
               "introductionType": undefined,
               "introductionUrl": null,
               "isBlackBoxed": false,
               "isExtension": false,
               "isPrettyPrinted": false,
               "isWasm": false,
-              "loadedState": "unloaded",
               "relativeUrl": "http://mdn.com/one.js",
-              "text": "",
               "url": "http://mdn.com/one.js",
             }
           }
           toggleBlackBox={[MockFunction]}
         />,
         "_forcedUpdate": false,
         "_instance": [Circular],
         "_newState": null,
@@ -981,27 +900,24 @@ Object {
       "path": "root",
       "type": "directory",
     },
     "projectRoot": "",
     "selectItem": [MockFunction],
     "setExpanded": [MockFunction],
     "setProjectDirectoryRoot": [MockFunction],
     "source": Object {
-      "contentType": "text/javascript",
       "id": "server1.conn13.child1/39",
       "introductionType": undefined,
       "introductionUrl": null,
       "isBlackBoxed": false,
       "isExtension": false,
       "isPrettyPrinted": false,
       "isWasm": false,
-      "loadedState": "unloaded",
       "relativeUrl": "http://mdn.com/one.js",
-      "text": "",
       "url": "http://mdn.com/one.js",
     },
     "toggleBlackBox": [MockFunction],
   },
 }
 `;
 
 exports[`SourceTreeItem renderItem should show focused item for folder with expanded arrow 1`] = `
@@ -1169,27 +1085,24 @@ Object {
         "path": "ng://",
         "type": "directory",
       },
       "projectRoot": "",
       "selectItem": [MockFunction],
       "setExpanded": [MockFunction],
       "setProjectDirectoryRoot": [MockFunction],
       "source": Object {
-        "contentType": "text/javascript",
         "id": "server1.conn13.child1/39",
         "introductionType": undefined,
         "introductionUrl": null,
         "isBlackBoxed": false,
         "isExtension": false,
         "isPrettyPrinted": false,
         "isWasm": false,
-        "loadedState": "unloaded",
         "relativeUrl": "http://mdn.com/one.js",
-        "text": "",
         "url": "http://mdn.com/one.js",
       },
       "toggleBlackBox": [MockFunction],
     },
     "refs": Object {},
     "state": null,
     "updater": Updater {
       "_callbacks": Array [],
@@ -1209,27 +1122,24 @@ Object {
             }
           }
           projectRoot=""
           selectItem={[MockFunction]}
           setExpanded={[MockFunction]}
           setProjectDirectoryRoot={[MockFunction]}
           source={
             Object {
-              "contentType": "text/javascript",
               "id": "server1.conn13.child1/39",
               "introductionType": undefined,
               "introductionUrl": null,
               "isBlackBoxed": false,
               "isExtension": false,
               "isPrettyPrinted": false,
               "isWasm": false,
-              "loadedState": "unloaded",
               "relativeUrl": "http://mdn.com/one.js",
-              "text": "",
               "url": "http://mdn.com/one.js",
             }
           }
           toggleBlackBox={[MockFunction]}
         />,
         "_forcedUpdate": false,
         "_instance": [Circular],
         "_newState": null,
@@ -1268,27 +1178,24 @@ Object {
       "path": "ng://",
       "type": "directory",
     },
     "projectRoot": "",
     "selectItem": [MockFunction],
     "setExpanded": [MockFunction],
     "setProjectDirectoryRoot": [MockFunction],
     "source": Object {
-      "contentType": "text/javascript",
       "id": "server1.conn13.child1/39",
       "introductionType": undefined,
       "introductionUrl": null,
       "isBlackBoxed": false,
       "isExtension": false,
       "isPrettyPrinted": false,
       "isWasm": false,
-      "loadedState": "unloaded",
       "relativeUrl": "http://mdn.com/one.js",
-      "text": "",
       "url": "http://mdn.com/one.js",
     },
     "toggleBlackBox": [MockFunction],
   },
 }
 `;
 
 exports[`SourceTreeItem renderItem should show icon for folder with arrow 1`] = `
@@ -1577,27 +1484,24 @@ Object {
         "path": "moz-extension://e37c3c08-beac-a04b-8032-c4f699a1a856",
         "type": "directory",
       },
       "projectRoot": "",
       "selectItem": [MockFunction],
       "setExpanded": [MockFunction],
       "setProjectDirectoryRoot": [MockFunction],
       "source": Object {
-        "contentType": "text/javascript",
         "id": "server1.conn13.child1/39",
         "introductionType": undefined,
         "introductionUrl": null,
         "isBlackBoxed": false,
         "isExtension": false,
         "isPrettyPrinted": false,
         "isWasm": false,
-        "loadedState": "unloaded",
         "relativeUrl": "http://mdn.com/one.js",
-        "text": "",
         "url": "http://mdn.com/one.js",
       },
       "toggleBlackBox": [MockFunction],
     },
     "refs": Object {},
     "state": null,
     "updater": Updater {
       "_callbacks": Array [],
@@ -1618,27 +1522,24 @@ Object {
             }
           }
           projectRoot=""
           selectItem={[MockFunction]}
           setExpanded={[MockFunction]}
           setProjectDirectoryRoot={[MockFunction]}
           source={
             Object {
-              "contentType": "text/javascript",
               "id": "server1.conn13.child1/39",
               "introductionType": undefined,
               "introductionUrl": null,
               "isBlackBoxed": false,
               "isExtension": false,
               "isPrettyPrinted": false,
               "isWasm": false,
-              "loadedState": "unloaded",
               "relativeUrl": "http://mdn.com/one.js",
-              "text": "",
               "url": "http://mdn.com/one.js",
             }
           }
           toggleBlackBox={[MockFunction]}
         />,
         "_forcedUpdate": false,
         "_instance": [Circular],
         "_newState": null,
@@ -1678,27 +1579,24 @@ Object {
       "path": "moz-extension://e37c3c08-beac-a04b-8032-c4f699a1a856",
       "type": "directory",
     },
     "projectRoot": "",
     "selectItem": [MockFunction],
     "setExpanded": [MockFunction],
     "setProjectDirectoryRoot": [MockFunction],
     "source": Object {
-      "contentType": "text/javascript",
       "id": "server1.conn13.child1/39",
       "introductionType": undefined,
       "introductionUrl": null,
       "isBlackBoxed": false,
       "isExtension": false,
       "isPrettyPrinted": false,
       "isWasm": false,
-      "loadedState": "unloaded",
       "relativeUrl": "http://mdn.com/one.js",
-      "text": "",
       "url": "http://mdn.com/one.js",
     },
     "toggleBlackBox": [MockFunction],
   },
 }
 `;
 
 exports[`SourceTreeItem renderItem should show icon for webpack item 1`] = `
@@ -1740,27 +1638,24 @@ Object {
         "path": "webpack://",
         "type": "directory",
       },
       "projectRoot": "",
       "selectItem": [MockFunction],
       "setExpanded": [MockFunction],
       "setProjectDirectoryRoot": [MockFunction],
       "source": Object {
-        "contentType": "text/javascript",
         "id": "server1.conn13.child1/39",
         "introductionType": undefined,
         "introductionUrl": null,
         "isBlackBoxed": false,
         "isExtension": false,
         "isPrettyPrinted": false,
         "isWasm": false,
-        "loadedState": "unloaded",
         "relativeUrl": "http://mdn.com/one.js",
-        "text": "",
         "url": "http://mdn.com/one.js",
       },
       "toggleBlackBox": [MockFunction],
     },
     "refs": Object {},
     "state": null,
     "updater": Updater {
       "_callbacks": Array [],
@@ -1780,27 +1675,24 @@ Object {
             }
           }
           projectRoot=""
           selectItem={[MockFunction]}
           setExpanded={[MockFunction]}
           setProjectDirectoryRoot={[MockFunction]}
           source={
             Object {
-              "contentType": "text/javascript",
               "id": "server1.conn13.child1/39",
               "introductionType": undefined,
               "introductionUrl": null,
               "isBlackBoxed": false,
               "isExtension": false,
               "isPrettyPrinted": false,
               "isWasm": false,
-              "loadedState": "unloaded",
               "relativeUrl": "http://mdn.com/one.js",
-              "text": "",
               "url": "http://mdn.com/one.js",
             }
           }
           toggleBlackBox={[MockFunction]}
         />,
         "_forcedUpdate": false,
         "_instance": [Circular],
         "_newState": null,
@@ -1839,27 +1731,24 @@ Object {
       "path": "webpack://",
       "type": "directory",
     },
     "projectRoot": "",
     "selectItem": [MockFunction],
     "setExpanded": [MockFunction],
     "setProjectDirectoryRoot": [MockFunction],
     "source": Object {
-      "contentType": "text/javascript",
       "id": "server1.conn13.child1/39",
       "introductionType": undefined,
       "introductionUrl": null,
       "isBlackBoxed": false,
       "isExtension": false,
       "isPrettyPrinted": false,
       "isWasm": false,
-      "loadedState": "unloaded",
       "relativeUrl": "http://mdn.com/one.js",
-      "text": "",
       "url": "http://mdn.com/one.js",
     },
     "toggleBlackBox": [MockFunction],
   },
 }
 `;
 
 exports[`SourceTreeItem renderItem should show source item with source icon 1`] = `
@@ -1871,27 +1760,24 @@ Object {
     onContextMenu={[Function]}
   >
     <span
       className="img no-arrow"
     />
     <Connect(SourceIcon)
       source={
         Object {
-          "contentType": "text/javascript",
           "id": "server1.conn13.child1/39",
           "introductionType": undefined,
           "introductionUrl": null,
           "isBlackBoxed": false,
           "isExtension": false,
           "isPrettyPrinted": false,
           "isWasm": false,
-          "loadedState": "unloaded",
           "relativeUrl": "http://mdn.com/one.js",
-          "text": "",
           "url": "http://mdn.com/one.js",
         }
       }
     />
     <span
       className="label"
     >
        
@@ -1907,49 +1793,43 @@ Object {
     "onContextMenu": [Function],
     "props": Object {
       "clearProjectDirectoryRoot": [MockFunction],
       "debuggeeUrl": "http://mdn.com",
       "expanded": false,
       "focusItem": [MockFunction],
       "item": Object {
         "contents": Object {
-          "contentType": "text/javascript",
           "id": "server1.conn13.child1/39",
           "introductionType": undefined,
           "introductionUrl": null,
           "isBlackBoxed": false,
           "isExtension": false,
           "isPrettyPrinted": false,
           "isWasm": false,
-          "loadedState": "unloaded",
           "relativeUrl": "url",
-          "text": "",
           "url": "url",
         },
         "name": "one.js",
         "path": "http://mdn.com/one.js",
         "type": "source",
       },
       "projectRoot": "",
       "selectItem": [MockFunction],
       "setExpanded": [MockFunction],
       "setProjectDirectoryRoot": [MockFunction],
       "source": Object {
-        "contentType": "text/javascript",
         "id": "server1.conn13.child1/39",
         "introductionType": undefined,
         "introductionUrl": null,
         "isBlackBoxed": false,
         "isExtension": false,
         "isPrettyPrinted": false,
         "isWasm": false,
-        "loadedState": "unloaded",
         "relativeUrl": "http://mdn.com/one.js",
-        "text": "",
         "url": "http://mdn.com/one.js",
       },
       "toggleBlackBox": [MockFunction],
     },
     "refs": Object {},
     "state": null,
     "updater": Updater {
       "_callbacks": Array [],
@@ -1958,51 +1838,45 @@ Object {
         "_element": <SourceTreeItem
           clearProjectDirectoryRoot={[MockFunction]}
           debuggeeUrl="http://mdn.com"
           expanded={false}
           focusItem={[MockFunction]}
           item={
             Object {
               "contents": Object {
-                "contentType": "text/javascript",
                 "id": "server1.conn13.child1/39",
                 "introductionType": undefined,
                 "introductionUrl": null,
                 "isBlackBoxed": false,
                 "isExtension": false,
                 "isPrettyPrinted": false,
                 "isWasm": false,
-                "loadedState": "unloaded",
                 "relativeUrl": "url",
-                "text": "",
                 "url": "url",
               },
               "name": "one.js",
               "path": "http://mdn.com/one.js",
               "type": "source",
             }
           }
           projectRoot=""
           selectItem={[MockFunction]}
           setExpanded={[MockFunction]}
           setProjectDirectoryRoot={[MockFunction]}
           source={
             Object {
-              "contentType": "text/javascript",
               "id": "server1.conn13.child1/39",
               "introductionType": undefined,
               "introductionUrl": null,
               "isBlackBoxed": false,
               "isExtension": false,
               "isPrettyPrinted": false,
               "isWasm": false,
-              "loadedState": "unloaded",
               "relativeUrl": "http://mdn.com/one.js",
-              "text": "",
               "url": "http://mdn.com/one.js",
             }
           }
           toggleBlackBox={[MockFunction]}
         />,
         "_forcedUpdate": false,
         "_instance": [Circular],
         "_newState": null,
@@ -2012,27 +1886,24 @@ Object {
           onContextMenu={[Function]}
         >
           <span
             className="img no-arrow"
           />
           <Connect(SourceIcon)
             source={
               Object {
-                "contentType": "text/javascript",
                 "id": "server1.conn13.child1/39",
                 "introductionType": undefined,
                 "introductionUrl": null,
                 "isBlackBoxed": false,
                 "isExtension": false,
                 "isPrettyPrinted": false,
                 "isWasm": false,
-                "loadedState": "unloaded",
                 "relativeUrl": "http://mdn.com/one.js",
-                "text": "",
                 "url": "http://mdn.com/one.js",
               }
             }
           />
           <span
             className="label"
           >
              
@@ -2047,49 +1918,43 @@ Object {
   },
   "props": Object {
     "clearProjectDirectoryRoot": [MockFunction],
     "debuggeeUrl": "http://mdn.com",
     "expanded": false,
     "focusItem": [MockFunction],
     "item": Object {
       "contents": Object {
-        "contentType": "text/javascript",
         "id": "server1.conn13.child1/39",
         "introductionType": undefined,
         "introductionUrl": null,
         "isBlackBoxed": false,
         "isExtension": false,
         "isPrettyPrinted": false,
         "isWasm": false,
-        "loadedState": "unloaded",
         "relativeUrl": "url",
-        "text": "",
         "url": "url",
       },
       "name": "one.js",
       "path": "http://mdn.com/one.js",
       "type": "source",
     },
     "projectRoot": "",
     "selectItem": [MockFunction],
     "setExpanded": [MockFunction],
     "setProjectDirectoryRoot": [MockFunction],
     "source": Object {
-      "contentType": "text/javascript",
       "id": "server1.conn13.child1/39",
       "introductionType": undefined,
       "introductionUrl": null,
       "isBlackBoxed": false,
       "isExtension": false,
       "isPrettyPrinted": false,
       "isWasm": false,
-      "loadedState": "unloaded",
       "relativeUrl": "http://mdn.com/one.js",
-      "text": "",
       "url": "http://mdn.com/one.js",
     },
     "toggleBlackBox": [MockFunction],
   },
 }
 `;
 
 exports[`SourceTreeItem renderItem should show source item with source icon with focus 1`] = `
@@ -2101,27 +1966,24 @@ Object {
     onContextMenu={[Function]}
   >
     <span
       className="img no-arrow"
     />
     <Connect(SourceIcon)
       source={
         Object {
-          "contentType": "text/javascript",
           "id": "server1.conn13.child1/39",
           "introductionType": undefined,
           "introductionUrl": null,
           "isBlackBoxed": false,
           "isExtension": false,
           "isPrettyPrinted": false,
           "isWasm": false,
-          "loadedState": "unloaded",
           "relativeUrl": "http://mdn.com/one.js",
-          "text": "",
           "url": "http://mdn.com/one.js",
         }
       }
     />
     <span
       className="label"
     >
        
@@ -2139,48 +2001,42 @@ Object {
       "clearProjectDirectoryRoot": [MockFunction],
       "debuggeeUrl": "http://mdn.com",
       "depth": 1,
       "expanded": false,
       "focusItem": [MockFunction],
       "focused": true,
       "item": Object {
         "contents": Object {
-          "contentType": "text/javascript",
           "id": "server1.conn13.child1/39",
           "introductionType": undefined,
           "introductionUrl": null,
           "isBlackBoxed": false,
           "isExtension": false,
           "isPrettyPrinted": false,
           "isWasm": false,
-          "loadedState": "unloaded",
           "relativeUrl": "http://mdn.com/one.js",
-          "text": "",
           "url": "http://mdn.com/one.js",
         },
         "name": "one.js",
         "path": "mdn.com/one.js",
       },
       "projectRoot": "",
       "selectItem": [MockFunction],
       "setExpanded": [MockFunction],
       "setProjectDirectoryRoot": [MockFunction],
       "source": Object {
-        "contentType": "text/javascript",
         "id": "server1.conn13.child1/39",
         "introductionType": undefined,
         "introductionUrl": null,
         "isBlackBoxed": false,
         "isExtension": false,
         "isPrettyPrinted": false,
         "isWasm": false,
-        "loadedState": "unloaded",
         "relativeUrl": "http://mdn.com/one.js",
-        "text": "",
         "url": "http://mdn.com/one.js",
       },
       "toggleBlackBox": [MockFunction],
     },
     "refs": Object {},
     "state": null,
     "updater": Updater {
       "_callbacks": Array [],
@@ -2191,50 +2047,44 @@ Object {
           debuggeeUrl="http://mdn.com"
           depth={1}
           expanded={false}
           focusItem={[MockFunction]}
           focused={true}
           item={
             Object {
               "contents": Object {
-                "contentType": "text/javascript",
                 "id": "server1.conn13.child1/39",
                 "introductionType": undefined,
                 "introductionUrl": null,
                 "isBlackBoxed": false,
                 "isExtension": false,
                 "isPrettyPrinted": false,
                 "isWasm": false,
-                "loadedState": "unloaded",
                 "relativeUrl": "http://mdn.com/one.js",
-                "text": "",
                 "url": "http://mdn.com/one.js",
               },
               "name": "one.js",
               "path": "mdn.com/one.js",
             }
           }
           projectRoot=""
           selectItem={[MockFunction]}
           setExpanded={[MockFunction]}
           setProjectDirectoryRoot={[MockFunction]}
           source={
             Object {
-              "contentType": "text/javascript",
               "id": "server1.conn13.child1/39",
               "introductionType": undefined,
               "introductionUrl": null,
               "isBlackBoxed": false,
               "isExtension": false,
               "isPrettyPrinted": false,
               "isWasm": false,
-              "loadedState": "unloaded",
               "relativeUrl": "http://mdn.com/one.js",
-              "text": "",
               "url": "http://mdn.com/one.js",
             }
           }
           toggleBlackBox={[MockFunction]}
         />,
         "_forcedUpdate": false,
         "_instance": [Circular],
         "_newState": null,
@@ -2244,27 +2094,24 @@ Object {
           onContextMenu={[Function]}
         >
           <span
             className="img no-arrow"
           />
           <Connect(SourceIcon)
             source={
               Object {
-                "contentType": "text/javascript",
                 "id": "server1.conn13.child1/39",
                 "introductionType": undefined,
                 "introductionUrl": null,
                 "isBlackBoxed": false,
                 "isExtension": false,
                 "isPrettyPrinted": false,
                 "isWasm": false,
-                "loadedState": "unloaded",
                 "relativeUrl": "http://mdn.com/one.js",
-                "text": "",
                 "url": "http://mdn.com/one.js",
               }
             }
           />
           <span
             className="label"
           >
              
@@ -2281,48 +2128,42 @@ Object {
     "clearProjectDirectoryRoot": [MockFunction],
     "debuggeeUrl": "http://mdn.com",
     "depth": 1,
     "expanded": false,
     "focusItem": [MockFunction],
     "focused": true,
     "item": Object {
       "contents": Object {
-        "contentType": "text/javascript",
         "id": "server1.conn13.child1/39",
         "introductionType": undefined,
         "introductionUrl": null,
         "isBlackBoxed": false,
         "isExtension": false,
         "isPrettyPrinted": false,
         "isWasm": false,
-        "loadedState": "unloaded",
         "relativeUrl": "http://mdn.com/one.js",
-        "text": "",
         "url": "http://mdn.com/one.js",
       },
       "name": "one.js",
       "path": "mdn.com/one.js",
     },
     "projectRoot": "",
     "selectItem": [MockFunction],
     "setExpanded": [MockFunction],
     "setProjectDirectoryRoot": [MockFunction],
     "source": Object {
-      "contentType": "text/javascript",
       "id": "server1.conn13.child1/39",
       "introductionType": undefined,
       "introductionUrl": null,
       "isBlackBoxed": false,
       "isExtension": false,
       "isPrettyPrinted": false,
       "isWasm": false,
-      "loadedState": "unloaded",
       "relativeUrl": "http://mdn.com/one.js",
-      "text": "",
       "url": "http://mdn.com/one.js",
     },
     "toggleBlackBox": [MockFunction],
   },
 }
 `;
 
 exports[`SourceTreeItem renderItem should unescape escaped source URLs 1`] = `
@@ -2334,27 +2175,24 @@ Object {
     onContextMenu={[Function]}
   >
     <span
       className="img no-arrow"
     />
     <Connect(SourceIcon)
       source={
         Object {
-          "contentType": "text/javascript",
           "id": "server1.conn13.child1/39",
           "introductionType": undefined,
           "introductionUrl": null,
           "isBlackBoxed": false,
           "isExtension": false,
           "isPrettyPrinted": false,
           "isWasm": false,
-          "loadedState": "unloaded",
           "relativeUrl": "http://mdn.com/one.js",
-          "text": "",
           "url": "http://mdn.com/one.js",
         }
       }
     />
     <span
       className="label"
     >
        
@@ -2370,49 +2208,43 @@ Object {
     "onContextMenu": [Function],
     "props": Object {
       "clearProjectDirectoryRoot": [MockFunction],
       "debuggeeUrl": "http://mdn.com",
       "expanded": false,
       "focusItem": [MockFunction],
       "item": Object {
         "contents": Object {
-          "contentType": "text/javascript",
           "id": "server1.conn13.child1/39",
           "introductionType": undefined,
           "introductionUrl": null,
           "isBlackBoxed": false,
           "isExtension": false,
           "isPrettyPrinted": false,
           "isWasm": false,
-          "loadedState": "unloaded",
           "relativeUrl": "url",
-          "text": "",
           "url": "url",
         },
         "name": "external%20file",
         "path": "mdn.com/external%20file",
         "type": "source",
       },
       "projectRoot": "",
       "selectItem": [MockFunction],
       "setExpanded": [MockFunction],
       "setProjectDirectoryRoot": [MockFunction],
       "source": Object {
-        "contentType": "text/javascript",
         "id": "server1.conn13.child1/39",
         "introductionType": undefined,
         "introductionUrl": null,
         "isBlackBoxed": false,
         "isExtension": false,
         "isPrettyPrinted": false,
         "isWasm": false,
-        "loadedState": "unloaded",
         "relativeUrl": "http://mdn.com/one.js",
-        "text": "",
         "url": "http://mdn.com/one.js",
       },
       "toggleBlackBox": [MockFunction],
     },
     "refs": Object {},
     "state": null,
     "updater": Updater {
       "_callbacks": Array [],
@@ -2421,51 +2253,45 @@ Object {
         "_element": <SourceTreeItem
           clearProjectDirectoryRoot={[MockFunction]}
           debuggeeUrl="http://mdn.com"
           expanded={false}
           focusItem={[MockFunction]}
           item={
             Object {
               "contents": Object {
-                "contentType": "text/javascript",
                 "id": "server1.conn13.child1/39",
                 "introductionType": undefined,
                 "introductionUrl": null,
                 "isBlackBoxed": false,
                 "isExtension": false,
                 "isPrettyPrinted": false,
                 "isWasm": false,
-                "loadedState": "unloaded",
                 "relativeUrl": "url",
-                "text": "",
                 "url": "url",
               },
               "name": "external%20file",
               "path": "mdn.com/external%20file",
               "type": "source",
             }
           }
           projectRoot=""
           selectItem={[MockFunction]}
           setExpanded={[MockFunction]}
           setProjectDirectoryRoot={[MockFunction]}
           source={
             Object {
-              "contentType": "text/javascript",
               "id": "server1.conn13.child1/39",
               "introductionType": undefined,
               "introductionUrl": null,
               "isBlackBoxed": false,
               "isExtension": false,
               "isPrettyPrinted": false,
               "isWasm": false,
-              "loadedState": "unloaded",
               "relativeUrl": "http://mdn.com/one.js",
-              "text": "",
               "url": "http://mdn.com/one.js",
             }
           }
           toggleBlackBox={[MockFunction]}
         />,
         "_forcedUpdate": false,
         "_instance": [Circular],
         "_newState": null,
@@ -2475,27 +2301,24 @@ Object {
           onContextMenu={[Function]}
         >
           <span
             className="img no-arrow"
           />
           <Connect(SourceIcon)
             source={
               Object {
-                "contentType": "text/javascript",
                 "id": "server1.conn13.child1/39",
                 "introductionType": undefined,
                 "introductionUrl": null,
                 "isBlackBoxed": false,
                 "isExtension": false,
                 "isPrettyPrinted": false,
                 "isWasm": false,
-                "loadedState": "unloaded",
                 "relativeUrl": "http://mdn.com/one.js",
-                "text": "",
                 "url": "http://mdn.com/one.js",
               }
             }
           />
           <span
             className="label"
           >
              
@@ -2510,47 +2333,41 @@ Object {
   },
   "props": Object {
     "clearProjectDirectoryRoot": [MockFunction],
     "debuggeeUrl": "http://mdn.com",
     "expanded": false,
     "focusItem": [MockFunction],
     "item": Object {
       "contents": Object {
-        "contentType": "text/javascript",
         "id": "server1.conn13.child1/39",
         "introductionType": undefined,
         "introductionUrl": null,
         "isBlackBoxed": false,
         "isExtension": false,
         "isPrettyPrinted": false,
         "isWasm": false,
-        "loadedState": "unloaded",
         "relativeUrl": "url",
-        "text": "",
         "url": "url",
       },
       "name": "external%20file",
       "path": "mdn.com/external%20file",
       "type": "source",
     },
     "projectRoot": "",
     "selectItem": [MockFunction],
     "setExpanded": [MockFunction],
     "setProjectDirectoryRoot": [MockFunction],
     "source": Object {
-      "contentType": "text/javascript",
       "id": "server1.conn13.child1/39",
       "introductionType": undefined,
       "introductionUrl": null,
       "isBlackBoxed": false,
       "isExtension": false,
       "isPrettyPrinted": false,
       "isWasm": false,
-      "loadedState": "unloaded",
       "relativeUrl": "http://mdn.com/one.js",
-      "text": "",
       "url": "http://mdn.com/one.js",
     },
     "toggleBlackBox": [MockFunction],
   },
 }
 `;
--- a/devtools/client/debugger/src/components/SecondaryPanes/Frames/tests/__snapshots__/Frame.spec.js.snap
+++ b/devtools/client/debugger/src/components/SecondaryPanes/Frames/tests/__snapshots__/Frame.spec.js.snap
@@ -32,27 +32,24 @@ exports[`Frame getFrameTitle 1`] = `
             "variables": Object {},
           },
           "function": null,
           "object": null,
           "parent": null,
           "type": "block",
         },
         "source": Object {
-          "contentType": "text/javascript",
           "id": "source",
           "introductionType": undefined,
           "introductionUrl": null,
           "isBlackBoxed": false,
           "isExtension": false,
           "isPrettyPrinted": false,
           "isWasm": false,
-          "loadedState": "unloaded",
           "relativeUrl": "https://aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.com/assets/src/js/foo-view.js",
-          "text": "",
           "url": "https://aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.com/assets/src/js/foo-view.js",
         },
         "this": Object {},
         "thread": "FakeThread",
       }
     }
     options={
       Object {
@@ -86,27 +83,24 @@ exports[`Frame getFrameTitle 1`] = `
             "variables": Object {},
           },
           "function": null,
           "object": null,
           "parent": null,
           "type": "block",
         },
         "source": Object {
-          "contentType": "text/javascript",
           "id": "source",
           "introductionType": undefined,
           "introductionUrl": null,
           "isBlackBoxed": false,
           "isExtension": false,
           "isPrettyPrinted": false,
           "isWasm": false,
-          "loadedState": "unloaded",
           "relativeUrl": "https://aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.com/assets/src/js/foo-view.js",
-          "text": "",
           "url": "https://aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.com/assets/src/js/foo-view.js",
         },
         "this": Object {},
         "thread": "FakeThread",
       }
     }
   />
   <br
@@ -147,27 +141,24 @@ exports[`Frame library frame 1`] = `
             "variables": Object {},
           },
           "function": null,
           "object": null,
           "parent": null,
           "type": "block",
         },
         "source": Object {
-          "contentType": "text/javascript",
           "id": "source",
           "introductionType": undefined,
           "introductionUrl": null,
           "isBlackBoxed": false,
           "isExtension": false,
           "isPrettyPrinted": false,
           "isWasm": false,
-          "loadedState": "unloaded",
           "relativeUrl": "backbone.js",
-          "text": "",
           "url": "backbone.js",
         },
         "this": Object {},
         "thread": "FakeThread",
       }
     }
     options={
       Object {
@@ -202,27 +193,24 @@ exports[`Frame library frame 1`] = `
             "variables": Object {},
           },
           "function": null,
           "object": null,
           "parent": null,
           "type": "block",
         },
         "source": Object {
-          "contentType": "text/javascript",
           "id": "source",
           "introductionType": undefined,
           "introductionUrl": null,
           "isBlackBoxed": false,
           "isExtension": false,
           "isPrettyPrinted": false,
           "isWasm": false,
-          "loadedState": "unloaded",
           "relativeUrl": "backbone.js",
-          "text": "",
           "url": "backbone.js",
         },
         "this": Object {},
         "thread": "FakeThread",
       }
     }
   />
   <br
@@ -262,27 +250,24 @@ exports[`Frame user frame (not selected)
             "variables": Object {},
           },
           "function": null,
           "object": null,
           "parent": null,
           "type": "block",
         },
         "source": Object {
-          "contentType": "text/javascript",
           "id": "source",
           "introductionType": undefined,
           "introductionUrl": null,
           "isBlackBoxed": false,
           "isExtension": false,
           "isPrettyPrinted": false,
           "isWasm": false,
-          "loadedState": "unloaded",
           "relativeUrl": "foo-view.js",
-          "text": "",
           "url": "foo-view.js",
         },
         "this": Object {},
         "thread": "FakeThread",
       }
     }
     options={
       Object {
@@ -316,27 +301,24 @@ exports[`Frame user frame (not selected)
             "variables": Object {},
           },
           "function": null,
           "object": null,
           "parent": null,
           "type": "block",
         },
         "source": Object {
-          "contentType": "text/javascript",
           "id": "source",
           "introductionType": undefined,
           "introductionUrl": null,
           "isBlackBoxed": false,
           "isExtension": false,
           "isPrettyPrinted": false,
           "isWasm": false,
-          "loadedState": "unloaded",
           "relativeUrl": "foo-view.js",
-          "text": "",
           "url": "foo-view.js",
         },
         "this": Object {},
         "thread": "FakeThread",
       }
     }
   />
   <br
@@ -376,27 +358,24 @@ exports[`Frame user frame 1`] = `
             "variables": Object {},
           },
           "function": null,
           "object": null,
           "parent": null,
           "type": "block",
         },
         "source": Object {
-          "contentType": "text/javascript",
           "id": "source",
           "introductionType": undefined,
           "introductionUrl": null,
           "isBlackBoxed": false,
           "isExtension": false,
           "isPrettyPrinted": false,
           "isWasm": false,
-          "loadedState": "unloaded",
           "relativeUrl": "foo-view.js",
-          "text": "",
           "url": "foo-view.js",
         },
         "this": Object {},
         "thread": "FakeThread",
       }
     }
     options={
       Object {
@@ -430,27 +409,24 @@ exports[`Frame user frame 1`] = `
             "variables": Object {},
           },
           "function": null,
           "object": null,
           "parent": null,
           "type": "block",
         },
         "source": Object {
-          "contentType": "text/javascript",
           "id": "source",
           "introductionType": undefined,
           "introductionUrl": null,
           "isBlackBoxed": false,
           "isExtension": false,
           "isPrettyPrinted": false,
           "isWasm": false,
-          "loadedState": "unloaded",
           "relativeUrl": "foo-view.js",
-          "text": "",
           "url": "foo-view.js",
         },
         "this": Object {},
         "thread": "FakeThread",
       }
     }
   />
   <br
--- a/devtools/client/debugger/src/components/SecondaryPanes/Frames/tests/__snapshots__/Frames.spec.js.snap
+++ b/devtools/client/debugger/src/components/SecondaryPanes/Frames/tests/__snapshots__/Frames.spec.js.snap
@@ -29,27 +29,24 @@ exports[`Frames Blackboxed Frames filter
               "variables": Object {},
             },
             "function": null,
             "object": null,
             "parent": null,
             "type": "block",
           },
           "source": Object {
-            "contentType": "text/javascript",
             "id": "1",
             "introductionType": undefined,
             "introductionUrl": null,
             "isBlackBoxed": false,
             "isExtension": false,
             "isPrettyPrinted": false,
             "isWasm": false,
-            "loadedState": "unloaded",
             "relativeUrl": "url",
-            "text": "",
             "url": "url",
           },
           "this": Object {},
           "thread": "FakeThread",
         }
       }
       frameworkGroupingOn={false}
       hideLocation={false}
@@ -75,27 +72,24 @@ exports[`Frames Blackboxed Frames filter
               "variables": Object {},
             },
             "function": null,
             "object": null,
             "parent": null,
             "type": "block",
           },
           "source": Object {
-            "contentType": "text/javascript",
             "id": "1",
             "introductionType": undefined,
             "introductionUrl": null,
             "isBlackBoxed": false,
             "isExtension": false,
             "isPrettyPrinted": false,
             "isWasm": false,
-            "loadedState": "unloaded",
             "relativeUrl": "url",
-            "text": "",
             "url": "url",
           },
           "this": Object {},
           "thread": "FakeThread",
         }
       }
       shouldMapDisplayName={true}
       toggleBlackBox={[MockFunction]}
@@ -123,27 +117,24 @@ exports[`Frames Blackboxed Frames filter
               "variables": Object {},
             },
             "function": null,
             "object": null,
             "parent": null,
             "type": "block",
           },
           "source": Object {
-            "contentType": "text/javascript",
             "id": "1",
             "introductionType": undefined,
             "introductionUrl": null,
             "isBlackBoxed": false,
             "isExtension": false,
             "isPrettyPrinted": false,
             "isWasm": false,
-            "loadedState": "unloaded",
             "relativeUrl": "url",
-            "text": "",
             "url": "url",
           },
           "this": Object {},
           "thread": "FakeThread",
         }
       }
       frameworkGroupingOn={false}
       hideLocation={false}
@@ -169,27 +160,24 @@ exports[`Frames Blackboxed Frames filter
               "variables": Object {},
             },
             "function": null,
             "object": null,
             "parent": null,
             "type": "block",
           },
           "source": Object {
-            "contentType": "text/javascript",
             "id": "1",
             "introductionType": undefined,
             "introductionUrl": null,
             "isBlackBoxed": false,
             "isExtension": false,
             "isPrettyPrinted": false,
             "isWasm": false,
-            "loadedState": "unloaded",
             "relativeUrl": "url",
-            "text": "",
             "url": "url",
           },
           "this": Object {},
           "thread": "FakeThread",
         }
       }
       shouldMapDisplayName={true}
       toggleBlackBox={[MockFunction]}
--- a/devtools/client/debugger/src/components/SecondaryPanes/Frames/tests/__snapshots__/Group.spec.js.snap
+++ b/devtools/client/debugger/src/components/SecondaryPanes/Frames/tests/__snapshots__/Group.spec.js.snap
@@ -36,27 +36,24 @@ exports[`Group displays a group 1`] = `
               "variables": Object {},
             },
             "function": null,
             "object": null,
             "parent": null,
             "type": "block",
           },
           "source": Object {
-            "contentType": "text/javascript",
             "id": "source",
             "introductionType": undefined,
             "introductionUrl": null,
             "isBlackBoxed": false,
             "isExtension": false,
             "isPrettyPrinted": false,
             "isWasm": false,
-            "loadedState": "unloaded",
             "relativeUrl": "url",
-            "text": "",
             "url": "url",
           },
           "this": Object {},
           "thread": "FakeThread",
         }
       }
     />
     <span
@@ -110,27 +107,24 @@ exports[`Group passes the getFrameTitle 
               "variables": Object {},
             },
             "function": null,
             "object": null,
             "parent": null,
             "type": "block",
           },
           "source": Object {
-            "contentType": "text/javascript",
             "id": "source",
             "introductionType": undefined,
             "introductionUrl": null,
             "isBlackBoxed": false,
             "isExtension": false,
             "isPrettyPrinted": false,
             "isWasm": false,
-            "loadedState": "unloaded",
             "relativeUrl": "http://myfile.com/mahscripts.js",
-            "text": "",
             "url": "http://myfile.com/mahscripts.js",
           },
           "this": Object {},
           "thread": "FakeThread",
         }
       }
     />
     <span
@@ -183,27 +177,24 @@ exports[`Group passes the getFrameTitle 
               "variables": Object {},
             },
             "function": null,
             "object": null,
             "parent": null,
             "type": "block",
           },
           "source": Object {
-            "contentType": "text/javascript",
             "id": "source",
             "introductionType": undefined,
             "introductionUrl": null,
             "isBlackBoxed": false,
             "isExtension": false,
             "isPrettyPrinted": false,
             "isWasm": false,
-            "loadedState": "unloaded",
             "relativeUrl": "http://myfile.com/mahscripts.js",
-            "text": "",
             "url": "http://myfile.com/mahscripts.js",
           },
           "this": Object {},
           "thread": "FakeThread",
         }
       }
       frameworkGroupingOn={true}
       getFrameTitle={[Function]}
@@ -231,27 +222,24 @@ exports[`Group passes the getFrameTitle 
               "variables": Object {},
             },
             "function": null,
             "object": null,
             "parent": null,
             "type": "block",
           },
           "source": Object {
-            "contentType": "text/javascript",
             "id": "source",
             "introductionType": undefined,
             "introductionUrl": null,
             "isBlackBoxed": false,
             "isExtension": false,
             "isPrettyPrinted": false,
             "isWasm": false,
-            "loadedState": "unloaded",
             "relativeUrl": "url",
-            "text": "",
             "url": "url",
           },
           "this": Object {},
           "thread": "FakeThread",
         }
       }
       shouldMapDisplayName={false}
       toggleBlackBox={[MockFunction]}
@@ -292,27 +280,24 @@ exports[`Group passes the getFrameTitle 
               "variables": Object {},
             },
             "function": null,
             "object": null,
             "parent": null,
             "type": "block",
           },
           "source": Object {
-            "contentType": "text/javascript",
             "id": "source",
             "introductionType": undefined,
             "introductionUrl": null,
             "isBlackBoxed": false,
             "isExtension": false,
             "isPrettyPrinted": false,
             "isWasm": false,
-            "loadedState": "unloaded",
             "relativeUrl": "http://myfile.com/back.js",
-            "text": "",
             "url": "http://myfile.com/back.js",
           },
           "this": Object {},
           "thread": "FakeThread",
         }
       }
       frameworkGroupingOn={true}
       getFrameTitle={[Function]}
@@ -340,27 +325,24 @@ exports[`Group passes the getFrameTitle 
               "variables": Object {},
             },
             "function": null,
             "object": null,
             "parent": null,
             "type": "block",
           },
           "source": Object {
-            "contentType": "text/javascript",
             "id": "source",
             "introductionType": undefined,
             "introductionUrl": null,
             "isBlackBoxed": false,
             "isExtension": false,
             "isPrettyPrinted": false,
             "isWasm": false,
-            "loadedState": "unloaded",
             "relativeUrl": "url",
-            "text": "",
             "url": "url",
           },
           "this": Object {},
           "thread": "FakeThread",
         }
       }
       shouldMapDisplayName={false}
       toggleBlackBox={[MockFunction]}
@@ -401,27 +383,24 @@ exports[`Group passes the getFrameTitle 
               "variables": Object {},
             },
             "function": null,
             "object": null,
             "parent": null,
             "type": "block",
           },
           "source": Object {
-            "contentType": "text/javascript",
             "id": "source",
             "introductionType": undefined,
             "introductionUrl": null,
             "isBlackBoxed": false,
             "isExtension": false,
             "isPrettyPrinted": false,
             "isWasm": false,
-            "loadedState": "unloaded",
             "relativeUrl": "http://myfile.com/back.js",
-            "text": "",
             "url": "http://myfile.com/back.js",
           },
           "this": Object {},
           "thread": "FakeThread",
         }
       }
       frameworkGroupingOn={true}
       getFrameTitle={[Function]}
@@ -449,27 +428,24 @@ exports[`Group passes the getFrameTitle 
               "variables": Object {},
             },
             "function": null,
             "object": null,
             "parent": null,
             "type": "block",
           },
           "source": Object {
-            "contentType": "text/javascript",
             "id": "source",
             "introductionType": undefined,
             "introductionUrl": null,
             "isBlackBoxed": false,
             "isExtension": false,
             "isPrettyPrinted": false,
             "isWasm": false,
-            "loadedState": "unloaded",
             "relativeUrl": "url",
-            "text": "",
             "url": "url",
           },
           "this": Object {},
           "thread": "FakeThread",
         }
       }
       shouldMapDisplayName={false}
       toggleBlackBox={[MockFunction]}
@@ -515,27 +491,24 @@ exports[`Group renders group with anonym
               "variables": Object {},
             },
             "function": null,
             "object": null,
             "parent": null,
             "type": "block",
           },
           "source": Object {
-            "contentType": "text/javascript",
             "id": "source",
             "introductionType": undefined,
             "introductionUrl": null,
             "isBlackBoxed": false,
             "isExtension": false,
             "isPrettyPrinted": false,
             "isWasm": false,
-            "loadedState": "unloaded",
             "relativeUrl": "http://myfile.com/mahscripts.js",
-            "text": "",
             "url": "http://myfile.com/mahscripts.js",
           },
           "this": Object {},
           "thread": "FakeThread",
         }
       }
     />
     <span
@@ -589,27 +562,24 @@ exports[`Group renders group with anonym
               "variables": Object {},
             },
             "function": null,
             "object": null,
             "parent": null,
             "type": "block",
           },
           "source": Object {
-            "contentType": "text/javascript",
             "id": "source",
             "introductionType": undefined,
             "introductionUrl": null,
             "isBlackBoxed": false,
             "isExtension": false,
             "isPrettyPrinted": false,
             "isWasm": false,
-            "loadedState": "unloaded",
             "relativeUrl": "http://myfile.com/mahscripts.js",
-            "text": "",
             "url": "http://myfile.com/mahscripts.js",
           },
           "this": Object {},
           "thread": "FakeThread",
         }
       }
     />
     <span
@@ -662,27 +632,24 @@ exports[`Group renders group with anonym
               "variables": Object {},
             },
             "function": null,
             "object": null,
             "parent": null,
             "type": "block",
           },
           "source": Object {
-            "contentType": "text/javascript",
             "id": "source",
             "introductionType": undefined,
             "introductionUrl": null,
             "isBlackBoxed": false,
             "isExtension": false,
             "isPrettyPrinted": false,
             "isWasm": false,
-            "loadedState": "unloaded",
             "relativeUrl": "http://myfile.com/mahscripts.js",
-            "text": "",
             "url": "http://myfile.com/mahscripts.js",
           },
           "this": Object {},
           "thread": "FakeThread",
         }
       }
       frameworkGroupingOn={true}
       hideLocation={true}
@@ -709,27 +676,24 @@ exports[`Group renders group with anonym
               "variables": Object {},
             },
             "function": null,
             "object": null,
             "parent": null,
             "type": "block",
           },
           "source": Object {
-            "contentType": "text/javascript",
             "id": "source",
             "introductionType": undefined,
             "introductionUrl": null,
             "isBlackBoxed": false,
             "isExtension": false,
             "isPrettyPrinted": false,
             "isWasm": false,
-            "loadedState": "unloaded",
             "relativeUrl": "url",
-            "text": "",
             "url": "url",
           },
           "this": Object {},
           "thread": "FakeThread",
         }
       }
       shouldMapDisplayName={false}
       toggleBlackBox={[MockFunction]}
@@ -770,27 +734,24 @@ exports[`Group renders group with anonym
               "variables": Object {},
             },
             "function": null,
             "object": null,
             "parent": null,
             "type": "block",
           },
           "source": Object {
-            "contentType": "text/javascript",
             "id": "source",
             "introductionType": undefined,
             "introductionUrl": null,
             "isBlackBoxed": false,
             "isExtension": false,
             "isPrettyPrinted": false,
             "isWasm": false,
-            "loadedState": "unloaded",
             "relativeUrl": "http://myfile.com/back.js",
-            "text": "",
             "url": "http://myfile.com/back.js",
           },
           "this": Object {},
           "thread": "FakeThread",
         }
       }
       frameworkGroupingOn={true}
       hideLocation={true}
@@ -817,27 +778,24 @@ exports[`Group renders group with anonym
               "variables": Object {},
             },
             "function": null,
             "object": null,
             "parent": null,
             "type": "block",
           },
           "source": Object {
-            "contentType": "text/javascript",
             "id": "source",
             "introductionType": undefined,
             "introductionUrl": null,
             "isBlackBoxed": false,
             "isExtension": false,
             "isPrettyPrinted": false,
             "isWasm": false,
-            "loadedState": "unloaded",
             "relativeUrl": "url",
-            "text": "",
             "url": "url",
           },
           "this": Object {},
           "thread": "FakeThread",
         }
       }
       shouldMapDisplayName={false}
       toggleBlackBox={[MockFunction]}
@@ -878,27 +836,24 @@ exports[`Group renders group with anonym
               "variables": Object {},
             },
             "function": null,
             "object": null,
             "parent": null,
             "type": "block",
           },
           "source": Object {
-            "contentType": "text/javascript",
             "id": "source",
             "introductionType": undefined,
             "introductionUrl": null,
             "isBlackBoxed": false,
             "isExtension": false,
             "isPrettyPrinted": false,
             "isWasm": false,
-            "loadedState": "unloaded",
             "relativeUrl": "http://myfile.com/back.js",
-            "text": "",
             "url": "http://myfile.com/back.js",
           },
           "this": Object {},
           "thread": "FakeThread",
         }
       }
       frameworkGroupingOn={true}
       hideLocation={true}
@@ -925,27 +880,24 @@ exports[`Group renders group with anonym
               "variables": Object {},
             },
             "function": null,
             "object": null,
             "parent": null,
             "type": "block",
           },
           "source": Object {
-            "contentType": "text/javascript",
             "id": "source",
             "introductionType": undefined,
             "introductionUrl": null,
             "isBlackBoxed": false,
             "isExtension": false,
             "isPrettyPrinted": false,
             "isWasm": false,
-            "loadedState": "unloaded",
             "relativeUrl": "url",
-            "text": "",
             "url": "url",
           },
           "this": Object {},
           "thread": "FakeThread",
         }
       }
       shouldMapDisplayName={false}
       toggleBlackBox={[MockFunction]}
--- a/devtools/client/debugger/src/reducers/sources.js
+++ b/devtools/client/debugger/src/reducers/sources.js
@@ -43,29 +43,32 @@ import type {
   ThreadId
 } from "../types";
 import type { PendingSelectedLocation, Selector } from "./types";
 import type { Action, DonePromiseAction, FocusItem } from "../actions/types";
 import type { LoadSourceAction } from "../actions/types/SourceAction";
 import { uniq } from "lodash";
 
 export type SourcesMap = { [SourceId]: Source };
+type SourcesContentMap = { [SourceId]: SettledValue<SourceContent> | null };
 export type SourcesMapByThread = { [ThreadId]: SourcesMap };
 type SourceActorMap = { [SourceId]: Array<SourceActorId> };
 
 type UrlsMap = { [string]: SourceId[] };
 type DisplayedSources = Set<SourceId>;
 type PlainUrlsMap = { [string]: string[] };
 
 export type SourcesState = {
   epoch: number,
 
   // All known sources.
   sources: SourcesMap,
 
+  content: SourcesContentMap,
+
   // A link between each source object and the source actor they wrap over.
   actors: SourceActorMap,
 
   // All sources associated with a given URL. When using source maps, multiple
   // sources can have the same URL.
   urls: UrlsMap,
 
   // All full URLs belonging to a given plain (query string stripped) URL.
@@ -89,16 +92,17 @@ const emptySources = {
   displayed: new Set(),
   urls: {},
   plainUrls: {}
 };
 
 export function initialSourcesState(): SourcesState {
   return {
     ...emptySources,
+    content: {},
     actors: {},
     epoch: 1,
     selectedLocation: undefined,
     pendingSelectedLocation: prefs.pendingSelectedLocation,
     projectDirectoryRoot: prefs.projectDirectoryRoot,
     chromeAndExtenstionsEnabled: prefs.chromeAndExtenstionsEnabled,
     focusedItem: null
   };
@@ -109,20 +113,16 @@ export function createSource(state: Sour
   return {
     id: undefined,
     url: undefined,
     sourceMapURL: undefined,
     isBlackBoxed: false,
     isPrettyPrinted: false,
     isWasm: false,
     isExtension: (source.url && isUrlExtension(source.url)) || false,
-    text: undefined,
-    contentType: "",
-    error: undefined,
-    loadedState: "unloaded",
     relativeUrl: getRelativeUrl(source, root),
     ...source
   };
 }
 
 function update(
   state: SourcesState = initialSourcesState(),
   action: Action
@@ -251,25 +251,27 @@ function updateAllSources(state: Sources
 /*
  * Add sources to the sources store
  * - Add the source to the sources store
  * - Add the source URL to the urls map
  */
 function addSources(state: SourcesState, sources: Source[]): SourcesState {
   state = {
     ...state,
+    content: { ...state.content },
     sources: { ...state.sources },
     displayed: new Set(state.displayed),
     urls: { ...state.urls },
     plainUrls: { ...state.plainUrls }
   };
 
   for (const source of sources) {
     // 1. Add the source to the sources map
     state.sources[source.id] = state.sources[source.id] || source;
+    state.content[source.id] = state.content[source.id] || null;
 
     // 2. Update the source url map
     const existing = state.urls[source.url] || [];
     if (!existing.includes(source.id)) {
       state.urls[source.url] = [...existing, source.id];
     }
 
     // 3. Update the plain url map
@@ -348,38 +350,48 @@ function updateProjectDirectoryRoot(stat
 /*
  * Update a source's loaded text content.
  */
 function updateLoadedState(
   state: SourcesState,
   action: LoadSourceAction
 ): SourcesState {
   const { sourceId } = action;
-  let source;
 
   // If there was a navigation between the time the action was started and
   // completed, we don't want to update the store.
-  if (action.epoch !== state.epoch) {
+  if (action.epoch !== state.epoch || !(sourceId in state.content)) {
     return state;
   }
 
+  let content;
   if (action.status === "start") {
-    source = { id: sourceId, loadedState: "loading" };
+    content = null;
   } else if (action.status === "error") {
-    source = { id: sourceId, error: action.error, loadedState: "loaded" };
+    content = asyncValue.rejected(action.error);
+  } else if (typeof action.value.text === "string") {
+    content = asyncValue.fulfilled({
+      type: "text",
+      value: action.value.text,
+      contentType: action.value.contentType
+    });
   } else {
-    source = {
-      id: sourceId,
-      text: action.value.text,
-      contentType: action.value.contentType,
-      loadedState: "loaded"
-    };
+    content = asyncValue.fulfilled({
+      type: "wasm",
+      value: action.value.text
+    });
   }
 
-  return updateSource(state, source);
+  return {
+    ...state,
+    content: {
+      ...state.content,
+      [sourceId]: content
+    }
+  };
 }
 
 function updateBlackBoxList(url, isBlackBoxed) {
   const tabs = getBlackBoxList();
   const i = tabs.indexOf(url);
   if (i >= 0) {
     if (!isBlackBoxed) {
       tabs.splice(i, 1);
@@ -617,73 +629,67 @@ export const getSelectedSource: Selector
     return sources[selectedLocation.sourceId];
   }
 );
 
 type GSSWC = Selector<?SourceWithContent>;
 export const getSelectedSourceWithContent: GSSWC = createSelector(
   getSelectedLocation,
   getSources,
+  state => state.sources.content,
   (
     selectedLocation: ?SourceLocation,
-    sources: SourcesMap
+    sources: SourcesMap,
+    content: SourcesContentMap
   ): SourceWithContent | null => {
     const source = selectedLocation && sources[selectedLocation.sourceId];
-    return source ? getSourceWithContentInner(sources, source.id) : null;
+    return source
+      ? getSourceWithContentInner(sources, content, source.id)
+      : null;
   }
 );
 export function getSourceWithContent(
   state: OuterState,
   id: SourceId
 ): SourceWithContent {
-  return getSourceWithContentInner(state.sources.sources, id);
+  return getSourceWithContentInner(
+    state.sources.sources,
+    state.sources.content,
+    id
+  );
 }
 export function getSourceContent(
   state: OuterState,
   id: SourceId
 ): AsyncValue<SourceContent> | null {
-  return getSourceWithContentInner(state.sources.sources, id).content;
+  const source = state.sources.sources[id];
+  if (!source) {
+    throw new Error("Unknown Source ID");
+  }
+
+  return state.sources.content[id] || null;
 }
 
 const contentLookup: WeakMap<Source, SourceWithContent> = new WeakMap();
 function getSourceWithContentInner(
   sources: SourcesMap,
+  content: SourcesContentMap,
   id: SourceId
 ): SourceWithContent {
   const source = sources[id];
   if (!source) {
     throw new Error("Unknown Source ID");
   }
+  const contentValue = content[source.id];
 
   let result = contentLookup.get(source);
-  if (!result) {
-    let content = null;
-    if (source.loadedState === "loaded") {
-      if (source.error) {
-        content = asyncValue.rejected(source.error);
-      } else if (source.isWasm) {
-        if (typeof source.text !== "object") {
-          throw new Error("Expected WASM value.");
-        }
-        content = asyncValue.fulfilled({
-          type: "wasm",
-          value: source.text
-        });
-      } else {
-        content = asyncValue.fulfilled({
-          type: "text",
-          value: source.text || "",
-          contentType: source.contentType || undefined
-        });
-      }
-    }
-
+  if (!result || result.content !== contentValue) {
     result = {
       source,
-      content
+      content: contentValue
     };
     contentLookup.set(source, result);
   }
 
   return result;
 }
 
 export function getSelectedSourceId(state: OuterState) {
--- a/devtools/client/debugger/src/types.js
+++ b/devtools/client/debugger/src/types.js
@@ -384,49 +384,44 @@ export type SourceWithContentAndType<+Co
  */
 
 type BaseSource = {|
   +id: SourceId,
   +url: string,
   +sourceMapURL?: string,
   +isBlackBoxed: boolean,
   +isPrettyPrinted: boolean,
-  +contentType?: string,
-  +error?: string,
-  +loadedState: "unloaded" | "loading" | "loaded",
   +relativeUrl: string,
   +introductionUrl: ?string,
   +introductionType: ?string,
   +isExtension: boolean
 |};
 
 /**
  * JsSource
  *
  * @memberof types
  * @static
  */
 
 export type JsSource = {|
   ...BaseSource,
-  +isWasm: false,
-  +text?: string
+  +isWasm: false
 |};
 
 /**
  * WasmSource
  *
  * @memberof types
  * @static
  */
 
 export type WasmSource = {|
   ...BaseSource,
-  +isWasm: true,
-  +text?: {| binary: Object |}
+  +isWasm: true
 |};
 
 export type Source = JsSource | WasmSource;
 
 /**
  * Script
  * This describes scripts which are sent to the debug server to be eval'd
  * @memberof types
--- a/devtools/client/debugger/src/utils/sources-tree/tests/__snapshots__/updateTree.spec.js.snap
+++ b/devtools/client/debugger/src/utils/sources-tree/tests/__snapshots__/updateTree.spec.js.snap
@@ -18,38 +18,32 @@ exports[`calls updateTree.js adds one so
           \\"contents\\": {
             \\"id\\": \\"server1.conn13.child1/39\\",
             \\"url\\": \\"https://davidwalsh.name/\\",
             \\"isBlackBoxed\\": false,
             \\"isPrettyPrinted\\": false,
             \\"relativeUrl\\": \\"https://davidwalsh.name/\\",
             \\"introductionUrl\\": null,
             \\"isWasm\\": false,
-            \\"isExtension\\": false,
-            \\"loadedState\\": \\"unloaded\\",
-            \\"contentType\\": \\"text/javascript\\",
-            \\"text\\": \\"\\"
+            \\"isExtension\\": false
           }
         },
         {
           \\"type\\": \\"source\\",
           \\"name\\": \\"source1.js\\",
           \\"path\\": \\"davidwalsh.name/source1.js\\",
           \\"contents\\": {
             \\"id\\": \\"server1.conn13.child1/37\\",
             \\"url\\": \\"https://davidwalsh.name/source1.js\\",
             \\"isBlackBoxed\\": false,
             \\"isPrettyPrinted\\": false,
             \\"relativeUrl\\": \\"https://davidwalsh.name/source1.js\\",
             \\"introductionUrl\\": null,
             \\"isWasm\\": false,
-            \\"isExtension\\": false,
-            \\"loadedState\\": \\"unloaded\\",
-            \\"contentType\\": \\"text/javascript\\",
-            \\"text\\": \\"\\"
+            \\"isExtension\\": false
           }
         }
       ]
     }
   ]
 }"
 `;
 
@@ -71,56 +65,47 @@ exports[`calls updateTree.js adds two so
           \\"contents\\": {
             \\"id\\": \\"server1.conn13.child1/39\\",
             \\"url\\": \\"https://davidwalsh.name/\\",
             \\"isBlackBoxed\\": false,
             \\"isPrettyPrinted\\": false,
             \\"relativeUrl\\": \\"https://davidwalsh.name/\\",
             \\"introductionUrl\\": null,
             \\"isWasm\\": false,
-            \\"isExtension\\": false,
-            \\"loadedState\\": \\"unloaded\\",
-            \\"contentType\\": \\"text/javascript\\",
-            \\"text\\": \\"\\"
+            \\"isExtension\\": false
           }
         },
         {
           \\"type\\": \\"source\\",
           \\"name\\": \\"source1.js\\",
           \\"path\\": \\"davidwalsh.name/source1.js\\",
           \\"contents\\": {
             \\"id\\": \\"server1.conn13.child1/37\\",
             \\"url\\": \\"https://davidwalsh.name/source1.js\\",
             \\"isBlackBoxed\\": false,
             \\"isPrettyPrinted\\": false,
             \\"relativeUrl\\": \\"https://davidwalsh.name/source1.js\\",
             \\"introductionUrl\\": null,
             \\"isWasm\\": false,
-            \\"isExtension\\": false,
-            \\"loadedState\\": \\"unloaded\\",
-            \\"contentType\\": \\"text/javascript\\",
-            \\"text\\": \\"\\"
+            \\"isExtension\\": false
           }
         },
         {
           \\"type\\": \\"source\\",
           \\"name\\": \\"source2.js\\",
           \\"path\\": \\"davidwalsh.name/source2.js\\",
           \\"contents\\": {
             \\"id\\": \\"server1.conn13.child1/40\\",
             \\"url\\": \\"https://davidwalsh.name/source2.js\\",
             \\"isBlackBoxed\\": false,
             \\"isPrettyPrinted\\": false,
             \\"relativeUrl\\": \\"https://davidwalsh.name/source2.js\\",
             \\"introductionUrl\\": null,
             \\"isWasm\\": false,
-            \\"isExtension\\": false,
-            \\"loadedState\\": \\"unloaded\\",
-            \\"contentType\\": \\"text/javascript\\",
-            \\"text\\": \\"\\"
+            \\"isExtension\\": false
           }
         }
       ]
     }
   ]
 }"
 `;
 
@@ -142,37 +127,31 @@ exports[`calls updateTree.js shows all t
           \\"contents\\": {
             \\"id\\": \\"server1.conn13.child1/39\\",
             \\"url\\": \\"https://davidwalsh.name/\\",
             \\"isBlackBoxed\\": false,
             \\"isPrettyPrinted\\": false,
             \\"relativeUrl\\": \\"https://davidwalsh.name/\\",
             \\"introductionUrl\\": null,
             \\"isWasm\\": false,
-            \\"isExtension\\": false,
-            \\"loadedState\\": \\"unloaded\\",
-            \\"contentType\\": \\"text/javascript\\",
-            \\"text\\": \\"\\"
+            \\"isExtension\\": false
           }
         },
         {
           \\"type\\": \\"source\\",
           \\"name\\": \\"source1.js\\",
           \\"path\\": \\"davidwalsh.name/source1.js\\",
           \\"contents\\": {
             \\"id\\": \\"server1.conn13.child1/37\\",
             \\"url\\": \\"https://davidwalsh.name/source1.js\\",
             \\"isBlackBoxed\\": false,
             \\"isPrettyPrinted\\": false,
             \\"relativeUrl\\": \\"https://davidwalsh.name/source1.js\\",
             \\"introductionUrl\\": null,
             \\"isWasm\\": false,
-            \\"isExtension\\": false,
-            \\"loadedState\\": \\"unloaded\\",
-            \\"contentType\\": \\"text/javascript\\",
-            \\"text\\": \\"\\"
+            \\"isExtension\\": false
           }
         }
       ]
     }
   ]
 }"
 `;
--- a/devtools/client/debugger/src/utils/sources-tree/tests/getUrl.spec.js
+++ b/devtools/client/debugger/src/utils/sources-tree/tests/getUrl.spec.js
@@ -13,21 +13,17 @@ function createMockSource(props): Source
     ...makeMockSource(),
     ...Object.assign(
       {
         id: "server1.conn13.child1/39",
         url: "",
         sourceMapURL: "",
         isBlackBoxed: false,
         isPrettyPrinted: false,
-        isWasm: false,
-        text: "",
-        contentType: "",
-        error: "",
-        loadedState: "unloaded"
+        isWasm: false
       },
       props
     )
   };
   return (rv: any);
 }
 
 describe("getUrl", () => {
--- a/devtools/client/debugger/src/utils/test-head.js
+++ b/devtools/client/debugger/src/utils/test-head.js
@@ -84,37 +84,27 @@ function makeFrame({ id, sourceId }: Obj
 }
 
 function createSourceObject(
   filename: string,
   props: {
     sourceMapURL?: string,
     introductionType?: string,
     introductionUrl?: string,
-    isBlackBoxed?: boolean,
-    loadedState?: "unloaded" | "loading" | "loaded",
-    text?: string
+    isBlackBoxed?: boolean
   } = {}
 ): Source {
   return ({
     id: filename,
     url: makeSourceURL(filename),
-    loadedState: props.loadedState || "unloaded",
     isBlackBoxed: !!props.isBlackBoxed,
     isPrettyPrinted: false,
     introductionUrl: props.introductionUrl || null,
     introductionType: props.introductionType || null,
-    isExtension: false,
-    ...(typeof props.text === "string"
-      ? {
-          text: props.text || "",
-          contentType: "application/javascript",
-          loadedState: "loaded"
-        }
-      : {})
+    isExtension: false
   }: any);
 }
 
 function createOriginalSourceObject(generated: Source): Source {
   const rv = {
     ...generated,
     id: `${generated.id}/originalSource`
   };
--- a/devtools/client/debugger/src/utils/test-mockup.js
+++ b/devtools/client/debugger/src/utils/test-mockup.js
@@ -38,35 +38,27 @@ function makeMockSource(
     id,
     url,
     isBlackBoxed: false,
     isPrettyPrinted: false,
     relativeUrl: url,
     introductionUrl: null,
     introductionType: undefined,
     isWasm: false,
-    isExtension: false,
-    loadedState: "unloaded",
-    contentType: "text/javascript",
-    text: ""
+    isExtension: false
   };
 }
 
 function makeMockSourceWithContent(
   url?: string,
   id?: SourceId,
   contentType?: string = "text/javascript",
   text?: string = ""
 ): SourceWithContent {
   const source = makeMockSource(url, id);
-  source.contentType = contentType;
-  source.text = text;
-  if (text) {
-    source.loadedState = "loaded";
-  }
 
   return {
     source,
     content: text
       ? asyncValue.fulfilled({
           type: "text",
           value: text,
           contentType
@@ -77,21 +69,16 @@ function makeMockSourceWithContent(
 
 function makeMockSourceAndContent(
   url?: string,
   id?: SourceId,
   contentType?: string = "text/javascript",
   text: string = ""
 ): { source: Source, content: TextSourceContent } {
   const source = makeMockSource(url, id);
-  source.contentType = contentType;
-  source.text = text;
-  if (text) {
-    source.loadedState = "loaded";
-  }
 
   return {
     source,
     content: {
       type: "text",
       value: text,
       contentType
     }
@@ -99,32 +86,28 @@ function makeMockSourceAndContent(
 }
 
 function makeMockWasmSource(): WasmSource {
   return {
     id: "wasm-source-id",
     url: "url",
     isBlackBoxed: false,
     isPrettyPrinted: false,
-    loadedState: "unloaded",
     relativeUrl: "url",
     introductionUrl: null,
     introductionType: undefined,
     isWasm: true,
-    isExtension: false,
-    text: undefined
+    isExtension: false
   };
 }
 
 function makeMockWasmSourceWithContent(text: {|
   binary: Object
 |}): SourceWithContentAndType<WasmSourceContent> {
   const source = makeMockWasmSource();
-  source.text = text;
-  source.loadedState = "loaded";
 
   return {
     source,
     content: asyncValue.fulfilled({
       type: "wasm",
       value: text
     })
   };