Good idea, but it doesn’t seem to work. goog.Dependency.prototype.load has the following code which fails:
if (!goog.inHtmlDocument_()) { goog.logToConsole_( 'Cannot use default debug loader outside of HTML documents.'); if (this.relativePath == 'deps.js') { // Some old code is relying on base.js auto loading deps.js failing with // no error before later setting CLOSURE_IMPORT_SCRIPT. // CLOSURE_IMPORT_SCRIPT should be set *before* base.js is loaded, or // CLOSURE_NO_DEPS set to true. goog.logToConsole_( 'Consider setting CLOSURE_IMPORT_SCRIPT before loading base.js, ' + 'or setting CLOSURE_NO_DEPS to true.'); controller.loaded(); } else { controller.pause(); } return; } goog.inHtmlDocument_ tests for document.write. > On Jul 11, 2021, at 1:00 PM, Edward Stangler <estang...@bradmark.com> wrote: > > > How about this? ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING > > > https://github.com/google/closure-library/issues/844#issuecomment-331235307 > > Looks like it's used in UIModuleUtils.as for its purpose, too. > > > > On 7/11/2021 4:08 AM, Harbs wrote: >> We’ve been working on migrating a Royale project to Adobe’s UXP environment. >> >> Release build works, but debug build does not because of some of the inner >> workings in the goog library. >> >> AIUI, the main blocker is: >> >> goog.inHtmlDocument_ = function() { >> /** @type {!Document} */ >> var doc = goog.global.document; >> return doc != null && 'write' in doc; // XULDocument misses write. >> }; >> >> >> UXP does not have document.write so goog.addDependency, goog.require and >> goog.base do not work correctly. >> >> I’ve also noticed that recently browsers seem to be taking much longer to >> load scripts in debug mode. I suspect that’s because document.write is >> deprecated. >> >> Because of this, I’d really like to explore removing the reliance on >> document.write and instead write script tags to load the scripts (in the >> correct order). >> >> We’re going to need to figure out what to do with goog.provide and >> goog.require which is written into classes. >> >> How necessary is that? Can we just use ES6 instead? Should we rewrite some >> of the goog functions to do more precisely what we need? >> >> Thoughts? >> >> Harbs > >