text: /* This Source Code Form is subject to the terms of the Mozilla Public
   *  * License, v. 2.0. If a copy of the MPL was not distributed with this
   *  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
  
  function handleRequest(request, response) {
    response.setHeader("Cache-Control", "no-cache", false);
  
    let loadedStateKey = "sandbox_content_loaded";
    switch(request.queryString) {
      case "reset": {
        setState(loadedStateKey, "");
        response.write("reset");
        break;
      }
      case "get_loaded": {
        response.setHeader("Content-Type", "text/plain", false);
        let loaded = getState(loadedStateKey);
        if (loaded)
          response.write(loaded);
        else
          response.write("NOTHING");
        break;
      }
      default: {
        let contentType = decodeURIComponent(request.queryString);
        // set the Content-Type equal to the query string
        response.setHeader("Content-Type", contentType, false);
        // If any content is loaded, append it's content type in state
        let loaded = getState(loadedStateKey);
        if (loaded)
          loaded += ",";
        setState(loadedStateKey, loaded + contentType);
        break;
      }
    }
  }
  