diff --git a/packages/puter-js/src/index.js b/packages/puter-js/src/index.js index 6c2282eb..ac271086 100644 --- a/packages/puter-js/src/index.js +++ b/packages/puter-js/src/index.js @@ -69,11 +69,24 @@ window.puter = (function() { else this.env = 'web'; - // there are some specific situations where puter is definitely loaded in GUI mode + // There are some specific situations where puter is definitely loaded in GUI mode // we're going to check for those situations here so that we don't break anything unintentionally // if navigator URL's hostname is 'puter.com' - if(window.location.hostname === 'puter.com'){ - this.env = 'gui'; + if(this.env !== 'gui'){ + // Retrieve the hostname from the URL: Remove the trailing dot if it exists. This is to handle the case where the URL is, for example, `https://puter.com.` (note the trailing dot). + // This is necessary because the trailing dot can cause the hostname to not match the expected value. + let hostname = location.hostname.replace(/\.$/, ''); + + // Create a new URL object with the URL string + const url = new URL(this.defaultGUIOrigin); + + // Extract hostname from the URL object + const gui_hostname = url.hostname; + + // If the hostname matches the GUI hostname, then the SDK is running in the GUI environment + if(hostname === gui_hostname){ + this.env = 'gui'; + } } // Get the 'args' from the URL. This is used to pass arguments to the app. diff --git a/src/initgui.js b/src/initgui.js index 05987c69..165135e8 100644 --- a/src/initgui.js +++ b/src/initgui.js @@ -36,7 +36,6 @@ import PuterDialog from './UI/PuterDialog.js'; import determine_active_container_parent from './helpers/determine_active_container_parent.js'; import { ThemeService } from './services/ThemeService.js'; import { BroadcastService } from './services/BroadcastService.js'; -import UIWindowTaskManager from './UI/UIWindowTaskManager.js'; import { ProcessService } from './services/ProcessService.js'; import { PROCESS_RUNNING } from './definitions.js';