Change how HTML links are handled.
[pwl6.git] / src / yuu / core.js
index 8b16707..22a1fb4 100644 (file)
@@ -70,6 +70,9 @@
         /** Initialize Yuu and call all registered hooks
          */
 
+        document.body.className += (navigator.standalone || gui)
+            ? " standalone" : " browser";
+
         if (gui) {
             var win = gui.Window.get();
             var nativeMenuBar = new gui.Menu({ type: "menubar" });
                 wkdoc.hidden = false;
                 wkdoc.dispatchEvent(ev);
             });
+            win.on('new-win-policy', function (frame, url, policy) {
+                if (url.startsWith('chrome'))
+                    policy.forceNewPopup();
+                else
+                    policy.forceDownload();
+            });
         }
 
         return new Promise(function (resolve) {
             initOptions = options || {};
             yuu.log("messages", "Initializing Yuu engine.");
             var promises = [];
-            yf.each(function (hook) {
-                promises.push(hook.call(yuu, initOptions));
-            }, initHooks);
+            // initHooks can be pushed to while iterating, so iterate
+            // by index, not a foreach loop.
+            for (var i = 0; i < initHooks.length; ++i)
+                promises.push(initHooks[i].call(yuu, initOptions));
             initHooks = null; // Bust future registerInitHook calls.
             yuu.log("messages", "Initialization hooks complete.");
             if (gui) {