Creating the temporary panel for a pre-load popup can be expensive, especially
for OOP popups, where we need to create a compositor. Since we currently need
to create a pre-load popup every time we hover over a browser action with a
popup, it's probably worth saving and re-using them, rather than always
creating a new one.
MozReview-Commit-ID: GwG7qJNdk8f
Creating the temporary panel for a pre-load popup can be expensive, especially
for OOP popups, where we need to create a compositor. Since we currently need
to create a pre-load popup every time we hover over a browser action with a
popup, it's probably worth saving and re-using them, rather than always
creating a new one.
MozReview-Commit-ID: GwG7qJNdk8f
* The extension content drives the sizing of the browser and popup that contains it via the Extension:BrowserResized message. The ignoreResizes property throttles/debounces this initially, stashing the dimensions received rather than triggering resize of the popup for every message. When the popup is a subview and fixedWidth, we ignore width but *do* want to use the stashed height value.
* Until the panel is given visibility, it has 0 height, so after setting visibility, wait until the next refresh-driver tick before measuring any header which should get added to the overall view height
MozReview-Commit-ID: AgcruVb9QPA
This patch was autogenerated by my decomponents.py
It covers almost every file with the extension js, jsm, html, py,
xhtml, or xul.
It removes blank lines after removed lines, when the removed lines are
preceded by either blank lines or the start of a new block. The "start
of a new block" is defined fairly hackily: either the line starts with
//, ends with */, ends with {, <![CDATA[, """ or '''. The first two
cover comments, the third one covers JS, the fourth covers JS embedded
in XUL, and the final two cover JS embedded in Python. This also
applies if the removed line was the first line of the file.
It covers the pattern matching cases like "var {classes: Cc,
interfaces: Ci, utils: Cu, results: Cr} = Components;". It'll remove
the entire thing if they are all either Ci, Cr, Cc or Cu, or it will
remove the appropriate ones and leave the residue behind. If there's
only one behind, then it will turn it into a normal, non-pattern
matching variable definition. (For instance, "const { classes: Cc,
Constructor: CC, interfaces: Ci, utils: Cu } = Components" becomes
"const CC = Components.Constructor".)
MozReview-Commit-ID: DeSHcClQ7cG
Setting a max-height caused the '_handleDOMChange' method in ext-browser-content.js
to consistently lie about the scrollHeight, since it was never allowed to grow
beyond the maxHeight - even when the document needs to be larger to fit its contents.
We don't need this aggressiveness in Photon panels anyway, so that makes it
doubly safe to remove this code.
MozReview-Commit-ID: HJVMXXHS4By
Also removes some dead code.
A lot of the code in ExtensionUtils.jsm is not needed in all processes, and a
lot of the rest isn't needed until extension code runs. Most of it winds up
being loaded into all processes way earlier than necessary.
MozReview-Commit-ID: CMRjCPOjRF2
Popups with remote browsers currently do not render correctly on any platform.
Since support for composited popups is marginal, at best, at the moment, we
only want to enable the features we need for these popups when they actually
contain remote content.
This bug adds an initial stopgap implementation, primarily for testing
purposes, that force enables compositing for remote popups, despite the UI
quirks it causes.
MozReview-Commit-ID: 2I6IJyIEdUd