Commit Graph

254 Commits

Author SHA1 Message Date
James Teh
6506f3f242 Bug 1454866 part 1: PanelMultiView: Provide a way to allow keyboard navigation to an element without affecting visual presentation. r=johannh
PanelMultiView has specific code to support keyboard navigation.
However, it only includes elements with class subviewbutton, which has visual styling.
Some views have controls which should be included in keyboard navigation, but for which the subviewbutton styling is not appropriate.
Therefore, also include elements with the new class subviewkeynav, which is specific to keyboard navigation and has no visual styling.

MozReview-Commit-ID: 8A5q9nbGpdc
2018-04-23 10:37:42 +10:00
Neil Deakin
ddc248eb52 Bug 1446961, remove obsolete calls to showPopup and replace usages of the popup box object with the same methods defined on popups, r=paolo 2018-04-27 11:04:36 -04:00
Kris Maglione
b3990a2d91 Bug 1456686: Part 1 - Fix unused and shadowed explicit imports. r=standard8
These issues were previously ignored due to the nature of our global import
rules. They need to be fixed before that rule can be updated.

MozReview-Commit-ID: DCChktTc5TW
2018-04-24 20:18:09 -07:00
Mike Conley
c61c0c4adc Bug 1442020 - Make PanelMultiView's description height workaround account for the possibility that panels have closed before a refresh driver tick. r=Paolo
MozReview-Commit-ID: IIjGYjoxMx5
2018-03-08 14:24:18 -05:00
Sam Foster
cd8e6dc737 Bug 1402845 - Fix panelview sizing when customRectGetter is used. r=mikedeboer,Paolo
* 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
2017-10-05 10:23:53 -07:00
Mark Banner
ec9360ee83 Bug 1434446 - Enable no-unused-vars for global scope on jsm files in browser/. r=mossop
MozReview-Commit-ID: ERT1Fili25d
2018-03-01 20:06:06 +00:00
Tooru Fujisawa
9019d32d7a Backed out changeset 29e1fceaf48d (bug 1193394) 2018-03-01 19:55:08 +09:00
Tooru Fujisawa
b34b481966 Bug 1193394 - Part 4: Wait for the next event tick before calling promiseDocumentFlushed in descriptionHeightWorkaround. r=bustage CLOSED TREE 2018-03-01 18:44:38 +09:00
Paolo Amadini
0d4fc0c2a2 Bug 1420939 - Add an asynchronous version of the description height workaround. r=Gijs
This prevents synchronous reflows when opening subviews. This also removes a superfluous invocation of the workaround while the panel is still hidden.

MozReview-Commit-ID: DohLjntVaPU
2018-02-27 22:02:55 +00:00
Paolo Amadini
e0207ede2f Bug 1428839 - Part 8 - Fix the sliding transition when views are reordered. r=Gijs
Views moved to a different panel and then moved back could be placed after the subviews they give access to, if the other subviews were not moved. The transition would be incorrect when these subviews are opened later.

MozReview-Commit-ID: 6JJa0p0McxL
2018-02-28 13:43:51 +00:00
Paolo Amadini
6fe953d651 Bug 1428839 - Part 7 - Reduce calls to _cleanupTransitionPhase. r=Gijs
The transition code now returns early if the panel was closed during an "await" statement.

Given that transitions can only be interrupted when closing the panel, and the _cleanupTransitionPhase method handles exclusively state related to the panel rather than the individual views, it is now possible to call the _cleanupTransitionPhase method only when the panel is hidden or at the end of a transition.

MozReview-Commit-ID: GYRKyyhJBPK
2018-02-27 22:56:15 +00:00
Paolo Amadini
958e4b9a52 Bug 1428839 - Part 6 - Remove previous workaround for the panel resizing at the end of the transition. r=Gijs
This was added in bug 1354141 and is not needed anymore.

MozReview-Commit-ID: 42oF7LpCa6R
2018-02-27 16:13:48 +00:00
Paolo Amadini
6e06c84d01 Bug 1428839 - Part 5 - Open the anchor when subview navigation starts and close it asynchronously afterwards. r=Gijs
The anchor state does not need to be cleaned up synchronously, so we can handle it seperately from the transition state.

MozReview-Commit-ID: 1CBP9OS5WmM
2018-02-27 15:52:07 +00:00
Paolo Amadini
bc4ac85924 Bug 1428839 - Part 4 - Avoid re-entrancy in PanelMultiView navigation functions. r=Gijs
We now use the "active" property of views to track whether navigation is possible. This has the advantage of being already handled correctly when views are moved to a different panel, and is in line with the purpose of the "active" state. The note about using the "popupshown" event for navigation has been updated accordingly.

Keyboard navigation is also linked to the "active" property now, so there is no need to track the state of the "_transitioning" property anymore.

Since the goBack and showSubView methods can only be called when the view is active, we don't need to check for attempts to start a transition while the panel is closed anymore.

MozReview-Commit-ID: 3KT3A5EwGFy
2018-02-27 15:33:33 +00:00
Paolo Amadini
9f32b9648e Bug 1428839 - Part 3 - Clean up view properties when opening them. r=Gijs
This allows the state to be handled correctly when views are moved to a different panel.

The "margin-inline-start" style property on the view stack is also reset unconditionally, allowing less state to be stored in the transition details object.

MozReview-Commit-ID: IpgnYsVvx0w
2018-02-27 15:35:42 +00:00
Paolo Amadini
a6a2c41f72 Bug 1428839 - Part 2 - Add a function to determine if a view is still open. r=Gijs
This makes the intent of the code clearer and hides the details of how the association is made.

MozReview-Commit-ID: C2L0vsjhxNO
2018-02-27 15:27:27 +00:00
Paolo Amadini
c079ccddc6 Bug 1428839 - Part 1 - Remove previous workaround for flickering at the end of the transition. r=Gijs
This was originally introduced in bug 1374749 but isn't needed anymore, and removing this allows making the _cleanupTransitionPhase method synchronous.

MozReview-Commit-ID: 6v78QoPXZoU
2018-02-27 15:17:29 +00:00
Paolo Amadini
002d8dded7 Bug 1441284 - Part 8 - Remove the "_mainView" and "_mainViewId" properties. r=Gijs
The null check for the "node" property can also be removed since the caller already checks it synchronously.

MozReview-Commit-ID: 7FaCdtWTz20
2018-02-27 14:17:10 +00:00
Paolo Amadini
47cfc52406 Bug 1441284 - Part 7 - Remove the "_ephemeral" property. r=Gijs
The "ephemeral" attribute was not actually used anymore, because it is redundant with the "viewCacheId" attribute.

MozReview-Commit-ID: 6zxf2DmcEfI
2018-02-26 19:50:19 +00:00
Paolo Amadini
18b972b572 Bug 1441284 - Part 6 - Do not move out subviews when the window is closing. r=Gijs
Since we control the code path that invokes the PanelMultiView destructor, it is now possible to call the _moveOutKids function only as needed, avoiding some unnecessary DOM modifications when the browser window is closing.

MozReview-Commit-ID: JTJQmhZKFOh
2018-02-26 19:47:29 +00:00
Paolo Amadini
c9ff157649 Bug 1441284 - Part 5 - Remove the "_panelViewCache" property. r=Gijs
MozReview-Commit-ID: IjTCdzr6gZ5
2018-02-26 19:36:12 +00:00
Paolo Amadini
37a89a3951 Bug 1441284 - Part 4 - Remove redundant calls before _moveOutKids and simplify the function. r=Gijs
The main view is already included in the children of the view stack, so the code that moves it out separately can be removed. The "mainview" attribute is already set to the correct value the next time the view is opened.

MozReview-Commit-ID: B8LMAxWvvTb
2018-02-26 19:14:31 +00:00
Paolo Amadini
6c9f8f1df2 Bug 1441284 - Part 3 - Remove the "showingSubView" property. r=Gijs
The value "single" for the "closemenu" attribute on panel buttons is unused, so the only consumer of the "showingSubView" property can be removed.

MozReview-Commit-ID: 2jf5YE4Uyd
2018-02-27 14:08:58 +00:00
Paolo Amadini
8b21862c39 Bug 1441284 - Part 2 - Remove the "_currentSubView" property. r=Gijs
MozReview-Commit-ID: Aua3V8hOT39
2018-02-26 18:43:43 +00:00
Paolo Amadini
c1a9933f89 Bug 1441284 - Part 1 - Remove the "current" property. r=Gijs
MozReview-Commit-ID: GyqI8N3JQ9O
2018-02-26 18:36:59 +00:00
Paolo Amadini
524d6358c6 Bug 1440333 - Part 3 - Raise the ViewShown event after the main view is active. r=Gijs
This also adds a new "active" property that can be used by regression tests to determine whether they should still wait for the ViewShown event.

MozReview-Commit-ID: K25F09llooj
2018-02-26 13:18:22 +00:00
Paolo Amadini
edcf98fcc4 Bug 1440333 - Part 2 - Rename the "current" attribute to "visible". r=Gijs
MozReview-Commit-ID: EazXDT6JC3M
2018-02-26 14:31:35 +00:00
Paolo Amadini
fefe5caafb Bug 1440333 - Part 1 - Remove the "in-transition" attribute. r=Gijs
This is made possible by a new workaround for a layout issue with panels that would prevent the main view from being displayed.

MozReview-Commit-ID: 3LGzq50QXt2
2018-02-25 20:37:55 +00:00
Paolo Amadini
c681599ced Bug 1441154 - Start the PanelMultiView sliding transition together with the height transition. r=Gijs
This fixes an issue where the two transition are not simultaneous.

MozReview-Commit-ID: 8JKunQV3MDI
2018-02-26 15:13:29 +00:00
Brindusan Cristian
ebf53c20ba Backed out 3 changesets (bug 1440333) for firefox-functional-test failures on test_no_certificate.py on a CLOSED TREE
Backed out changeset 2dad70b2a723 (bug 1440333)
Backed out changeset c705b49c2bae (bug 1440333)
Backed out changeset 9906b468eb78 (bug 1440333)
2018-02-26 16:19:18 +02:00
Paolo Amadini
45594d8537 Bug 1440333 - Part 3 - Raise the ViewShown event after the main view is active. r=Gijs
This also adds a new "active" property that can be used by regression tests to determine whether they should still wait for the ViewShown event.

MozReview-Commit-ID: K25F09llooj
2018-02-26 13:18:22 +00:00
Paolo Amadini
0e4d420ef7 Bug 1440333 - Part 2 - Rename the "current" attribute to "visible". r=Gijs
MozReview-Commit-ID: EazXDT6JC3M
2018-02-23 15:54:08 +00:00
Paolo Amadini
7024e7015c Bug 1440333 - Part 1 - Remove the "in-transition" attribute. r=Gijs
This is made possible by a new workaround for a layout issue with panels that would prevent the main view from being displayed.

MozReview-Commit-ID: 3LGzq50QXt2
2018-02-25 20:37:55 +00:00
Paolo Amadini
2721462de9 Bug 1437512 - Part 2 - Remove the "panelmultiview" binding. r=Gijs
MozReview-Commit-ID: H9R7ahkCr2U
2018-02-25 18:43:55 +00:00
Paolo Amadini
96c2add862 Bug 1437512 - Part 1 - Remove the "panelmultiview" binding construction. r=Gijs
MozReview-Commit-ID: 3oCvOe5th0B
2018-02-25 18:41:45 +00:00
Mike Conley
a50309145a Bug 1434376 - Switch over all uses of BrowserUtils.promiseLayoutFlushed to window.promiseDocumentFlushed. r=Paolo
window.promiseDocumentFlushed will call a callback as soon as a style or layout
flush is not required for the document (which might be immediately). This is a
new ChromeOnly API introduced in an earlier patch in this series.

This patch also removes the now-unneeded BrowserUtils.promiseLayoutFlushed and
BrowserUtils.promiseReflowed methods and infrastructure.

MozReview-Commit-ID: Jv7KoxBXhHG
2018-02-11 20:15:11 -05:00
Andreea Pavel
f77494f37a Backed out 3 changesets (bug 1434376)for failing browser chrome at browser/base/content/test/performance/browser_urlbar_search_reflows.js on a CLOSED TREE
Backed out changeset b636251b75ab (bug 1434376)
Backed out changeset fccbba9cb959 (bug 1434376)
Backed out changeset b5128504011c (bug 1434376)
2018-02-25 12:44:28 +02:00
Mike Conley
7a9538a35f Bug 1434376 - Switch over all uses of BrowserUtils.promiseLayoutFlushed to window.promiseDocumentFlushed. r=Paolo
window.promiseDocumentFlushed will call a callback as soon as a style or layout
flush is not required for the document (which might be immediately). This is a
new ChromeOnly API introduced in an earlier patch in this series.

This patch also removes the now-unneeded BrowserUtils.promiseLayoutFlushed and
BrowserUtils.promiseReflowed methods and infrastructure.

MozReview-Commit-ID: Jv7KoxBXhHG
2018-02-11 20:15:11 -05:00
Florian Quèze
f1a55f73f8 Bug 1440284 - change this.EXPORTED_SYMBOLS back to var EXPORTED_SYMBOLS in JS modules, r=mccr8. 2018-02-23 20:50:01 +01:00
Paolo Amadini
ee80f1533e Bug 1439358 - Part 8 - Change how visibility is controlled so knownViews can be removed. r=Gijs
MozReview-Commit-ID: 9dVZ1cOto8O
2018-02-22 15:28:15 +00:00
Paolo Amadini
3480d5905c Bug 1439358 - Part 7 - Close the main view synchronously before opening it in a different panel. r=Gijs
This also updates the AppMenu mozscreenshots module to work with the Photon main menu.

MozReview-Commit-ID: FciQH815F95
2018-02-22 11:25:10 +00:00
Paolo Amadini
265883cc33 Bug 1439358 - Part 6 - Decouple view events from view visibility. r=Gijs
This stops redundant ViewHiding and late ViewShown events from being dispatched when the panel is closed during a ViewShowing event or a transition, and stops dispatching ViewHiding events when a view becomes invisible but is still open.

The panelMultiView property on "panelview" nodes is now set to null when the view is closed, indicating that the view can be immediately reused in a different panel. The Places view had to be updated so it doesn't rely on this property during the PanelMultiViewHidden event.

MozReview-Commit-ID: B1yU6si3eD3
2018-02-22 14:20:11 +00:00
Paolo Amadini
dc443c1ea3 Bug 1439358 - Part 5 - Handle panel hiding during ViewShowing events. r=Gijs
The ViewHiding event is now dispatched consistently, regardless of whether the ViewShowing event is canceled or the panel is closed during the event. This is done by a new _openView helper, while the logic that is specific to each of the showMainView, showSubView, and goBack functions has been moved out of the _showView function.

MozReview-Commit-ID: 5WvW6THWbyb
2018-02-22 17:11:25 +00:00
Paolo Amadini
193b501937 Bug 1439358 - Part 4 - Open views before the transition and close them after it. r=Gijs
This allows the openViews array to reflect the state of the navigation more accurately, paving the way for further simplification of the code. The showSubView function will now fail early when it's called with a view that is already open, so the rest of the code doesn't have to take this case into consideration.

MozReview-Commit-ID: 1VoIImxVTDN
2018-02-22 13:39:09 +00:00
Paolo Amadini
f95df42e39 Bug 1439358 - Part 3 - Always raise ViewShowing events and don't update the "current" property. r=Gijs
The ViewShowing event is now called earlier and unconditionally, since we don't set the "current" attribute and call showMainView while the panel is closing anymore.

It is already the case that the ViewShowing event handlers don't depend on the "current" property, so we don't need to keep track of it before ViewShown events are dispatched.

MozReview-Commit-ID: Ii4SN03KjwW
2018-02-19 11:17:52 +00:00
Paolo Amadini
e1a7d0adef Bug 1439358 - Part 1 - Support "panelview" elements located anywhere in the document. r=Gijs
The showSubView public method now aligns with its callers and doesn't return a Promise anymore. The showMainView method still returns a Promise because at the moment it is used externally for asynchronous cleanup.

MozReview-Commit-ID: FcnEx5f5HKh
2018-02-12 16:44:00 +00:00
Paolo Amadini
b5aa70fad7 Bug 1437811 - Part 3 - Add a safety timeout for blockers registered by event handlers. r=Gijs
MozReview-Commit-ID: 6dfRVInzNps
2018-02-16 15:04:24 +00:00
Paolo Amadini
770c924b9b Bug 1437811 - Part 2 - Prepare the main view just before opening the panel. r=Gijs
This allows the ViewShowing event for the main view to prevent the panel from opening. It also avoids setting up the main view if the panel is not opened.

MozReview-Commit-ID: LK8tBcz6lkK
2018-02-16 15:03:18 +00:00
Paolo Amadini
ff1ddd6adf Bug 1434883 - Part 2 - Use an asynchronous API to open PanelMultiView panels. r=Gijs
MozReview-Commit-ID: 3VzoxJ3Ociy
2018-02-06 09:02:27 +00:00
Andrew McCreight
272cee1e65 Bug 1432992, part 1 - Remove definitions of Ci, Cr, Cc, and Cu. r=florian
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
2018-02-06 09:36:57 -08:00