false document.getAnonymousElementByAttribute(this, "anonid", "thumbnail"); this.parentNode.parentNode; 0) width = Math.min(width, browser.contentDocumentWidth); if (browser.contentDocumentHeight > 0) height = Math.min(height, browser.contentDocumentHeight); let newHeight = width * ratio; if (height >= newHeight) { height = newHeight; } else { // the browser aspect ratio does not match the tabs aspect ratio width = height / ratio; } // Recreate the canvas as it may be tainted and not useable for remote pages if (thumbnail.hasAttribute("restored")) { thumbnail.removeAttribute("restored"); thumbnail = this.thumbnail.cloneNode(false); this.thumbnail.parentNode.replaceChild(thumbnail, this.thumbnail); this.thumbnail = thumbnail; } let self = this; let renderer = rendererFactory(browser, thumbnail); renderer.drawContent(function(ctx, callback) { ctx.save(); ctx.clearRect(0, 0, tabWidth, tabHeight); ctx.scale(tabWidth / width, tabHeight / height); callback(browser, 0, 0, width, height, "white"); ctx.restore(); // We don't have an event for the async drawContent anymore, so hack it setTimeout(function() { // Save the thumbnail to the session in case we need to use it in a restore let data = thumbnail.toDataURL("image/png"); let ss = Cc["@mozilla.org/browser/sessionstore;1"].getService(Ci.nsISessionStore); ss.setTabValue(self, "thumbnail", data); }, 800); }); ]]> document.getAnonymousElementByAttribute(this, "anonid", "tabs-children"); document.getAnonymousElementByAttribute(this, "anonid", "tabs-scrollbox"); document.getAnonymousElementByAttribute(this, "anonid", "tabs-undo"); null this.boxObject.QueryInterface(Ci.nsIScrollBoxObject); null 0 1) { // > 1 to ignore column resizing while the main window is loading let width = columnsCount * (COLUMN_MARGIN + firstBox.width); this.children.style.width = width + "px"; // Clamp the sidebar width so it won't overflow the window. Only clamp // the scrollbox. The children need to be the full width. if (width > window.innerWidth - firstBox.width) width = window.innerWidth - firstBox.width; this._scrollbox.style.width = width + "px"; this._columnsCount = columnsCount; } ]]>