{"sections":[{"urls":[],"urlPrefixes":[],"domains":[],"regexps":[],"code":"var glassTo = null;\r\n    //var tabbar_height = 0;\r\n    var glassUp = null;\r\n    var inFullscreen = false;\r\n    var dwm = Components.classes[\"@sixxgate.com/DwmCalls/CDwmCalls;1\"].createInstance();\r\n    dwm = dwm.QueryInterface(Components.interfaces.IDwmCalls);\r\n\r\n    function DWM_Glasser_OnFullscreen()\r\n    {\r\n       this.handleEvent = function(e)\r\n       {\r\n          if (!dwm.GlassEnabled || glassTo == null)\r\n             // If no glass, we have nothing to do\r\n             return;\r\n\r\n          if (e.attrName == \"inFullscreen\" \u0026\u0026 e.newValue == \"true\")\r\n          {\r\n             try\r\n             {\r\n                dwm.ExtendFrameIntoWindow(0, 0, 0, 0);\r\n             }\r\n             catch (err)\r\n             {   // Something failed\r\n                window.alert(err);\r\n             }\r\n             inFullscreen = true;\r\n          }\r\n          else if (e.attrName == \"inFullscreen\")\r\n          {\r\n             try\r\n             {\r\n                var tabheight = gBrowser.mTabContainer.boxObject.height;\r\n                var height = glassTo.boxObject.y + glassTo.boxObject.height;\r\n                var bottom = glassUp.boxObject.height;\r\n                dwm.ExtendFrameIntoWindow(height+tabheight, 0, bottom, 0);\r\n             }\r\n             catch (err)\r\n             {   // Something failed\r\n                window.alert(err);\r\n             }\r\n             inFullscreen = false;\r\n          }\r\n       }\r\n    };\r\n    var Glasser_OnFullscreen = new DWM_Glasser_OnFullscreen();\r\n\r\n    function DWM_Glasser_Delayed_OnAttrChange()\r\n    {\r\n       this.handleEvent = function(e)\r\n       {\r\n          if (!dwm.GlassEnabled || glassTo == null || inFullscreen == true)\r\n             // If no glass, we have nothing to do\r\n             return;\r\n             \r\n          var height = glassTo.boxObject.y + glassTo.boxObject.height;\r\n          var bottom = glassUp.boxObject.height;\r\n          try\r\n          {\r\n             var tabheight = gBrowser.mTabContainer.boxObject.height;\r\n             dwm.ExtendFrameIntoWindow(height+tabheight, 100000, bottom, -1);\r\n          }\r\n          catch (err)\r\n          {   // Something failed\r\n             window.alert(err);\r\n          }\r\n\r\n          e.currentTarget.removeEventListener(\"DOMAttrModified\", this, false);\r\n       };\r\n    };\r\n var Glasser_Delayed_OnAttrChange = new DWM_Glasser_Delayed_OnAttrChange();\r\n\r\n    function ChangeGlasserTheme()\r\n    {\r\n       if (dwm.GlassEnabled)\r\n       {\r\n          for (var i = 0; i != window.document.styleSheets.length; ++i)\r\n          {\r\n             if (window.document.styleSheets[i].href == \"chrome://glasser/skin/overlay.css\")\r\n             {\r\n                window.document.styleSheets[i].disabled = false;\r\n                break;\r\n             }\r\n          }\r\n          Glasser_Delayed_OnAttrChange.handleEvent(e);\r\n       }\r\n       else\r\n       {\r\n          for (var i = 0; i != window.document.styleSheets.length; ++i)\r\n          {\r\n             if (window.document.styleSheets[i].href == \"chrome://glasser/skin/overlay.css\")\r\n             {\r\n                window.document.styleSheets[i].disabled = true;\r\n                break;\r\n             }\r\n          }\r\n       }\r\n    };\r\n\r\n    function DWM_Glasser_OnAttrChange()\r\n    {\r\n       this.handleEvent = function(e)\r\n       {\r\n          e.currentTarget.addEventListener(\"DOMAttrModified\", Glasser_Delayed_OnAttrChange, false);\r\n       };\r\n    };\r\n    var Glasser_OnAttrChange = new DWM_Glasser_OnAttrChange();\r\n\r\n    function DWM_Glasser_OnLoad()\r\n    {\r\n       this.handleEvent = function(e)\r\n       {\r\n          // Find the toolbar marked as glassToMe\r\n          var toolbox = window.document.getElementById(\"navigator-toolbox\")\r\n          if (toolbox == null)\r\n             return;\r\n             \r\n          toolbox.addEventListener(\"DOMAttrModified\", Glasser_OnFullscreen, false);\r\n\r\n          var ct = toolbox.firstChild;\r\n          var breakNow = false;\r\n          for (; ct != null; ct = ct.nextSibling)\r\n          {\r\n             \r\n\r\n             ct.addEventListener(\"DOMAttrModified\", Glasser_OnAttrChange, false);\r\n\r\n             if (breakNow)\r\n                // We have attatched to the last toolbar, we are done\r\n                break;\r\n             if (ct.nextSibling == null)\r\n             {   // We have found the end of the glass, break on the next toolbar\r\n                glassTo = ct;\r\n                breakNow = true;\r\n             }\r\n          }\r\n          \r\n          \r\n          // Find the last toolbar\r\n          var browbox = window.document.getElementById(\"browser\")\r\n          if (browbox == null)\r\n             return;\r\n             \r\n          //tabbar_height = 28;\r\n          //ct.getAttribute(\"className\") != null \u0026\u0026 (ct.getAttribute(\"className\").equals(\"tabbrowser-tabs\"))\r\n          \r\n          glassUp = window.document.getElementById(\"browser-bottombox\");\r\n          \r\n          ChangeGlasserTheme();\r\n       };\r\n    };\r\n    var Glasser_OnLoad = new DWM_Glasser_OnLoad();\r\n\r\n    function DWM_Glasser_OnGlassChange()\r\n    {\r\n       this.handleEvent = function(e)\r\n       {\r\n          ChangeGlasserTheme();\r\n       };\r\n    };\r\n    var Glasser_OnGlassChange = new DWM_Glasser_OnGlassChange();\r\n\r\n    window.addEventListener(\"load\", Glasser_OnLoad, false);\r\n\r\n    dwm.AttachToWindow(getBaseWindow(window));\r\n    dwm.OnGlassChange = Glasser_OnGlassChange;\r\n\r\nfunction getBaseWindow(win) {\r\n    var rv;\r\n    try {\r\n        var requestor =\r\nwin.QueryInterface(Components.interfaces.nsIInterfaceRequestor);\r\n        var nav =\r\nrequestor.getInterface(Components.interfaces.nsIWebNavigation);\r\n        var dsti =\r\nnav.QueryInterface(Components.interfaces.nsIDocShellTreeItem);\r\n        var owner = dsti.treeOwner;\r\n        requestor =\r\nowner.QueryInterface(Components.interfaces.nsIInterfaceRequestor);\r\n        rv = requestor.getInterface(Components.interfaces.nsIXULWindow);\r\n        rv = rv.docShell;\r\n        rv = rv.QueryInterface(Components.interfaces.nsIDocShell);\r\n        rv = rv.QueryInterface(Components.interfaces.nsIBaseWindow);\r\n    } catch (ex) {\r\n        rv = null;\r\n        setTimeout(function() { throw ex }, 0);\r\n        \r\n    }\r\n    return rv;\r\n}"}],"url":"http://userstyles.org/styles/46802","updateUrl":"https://userstyles.org/styles/chrome/46802.json","md5Url":"https://update.userstyles.org/46802.md5","originalMd5":"18362e8dd84bb9a8a3e2f6d76480e49c","name":"Make Web page background glassed - Firefox","thumbnail":"https://userstyles.org/style_screenshots/46802_after.jpeg?r=1775707210"}