Commit Graph

227 Commits

Author SHA1 Message Date
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
Kris Maglione
0bb74efdf1 Bug 1431533: Part 5a - Auto-rewrite code to use ChromeUtils import methods. r=florian
This was done using the following script:
37e3803c7a/processors/chromeutils-import.jsm

MozReview-Commit-ID: 1Nc3XDu0wGl
2018-01-29 15:20:18 -08:00
Cosmin Sabou
f09d6d985d Backed out 3 changesets (bug 1431533) for Android mochitest failures on testEventDispatcher on a CLOSED TREE
Backed out changeset a1eca62826a1 (bug 1431533)
Backed out changeset 34c999fa006b (bug 1431533)
Backed out changeset e2674287e57f (bug 1431533)
2018-01-30 07:17:48 +02:00
Kris Maglione
fd67f090b2 Bug 1431533: Part 5a - Auto-rewrite code to use ChromeUtils import methods. r=florian
This was done using the following script:
37e3803c7a/processors/chromeutils-import.jsm

MozReview-Commit-ID: 1Nc3XDu0wGl
2018-01-29 15:20:18 -08:00
Brindusan Cristian
483ba301cb Backed out 2 changesets (bug 1431533) for ESlint failures on a CLOSED TREE
Backed out changeset 6e56f4c8843e (bug 1431533)
Backed out changeset 12fc4dee861c (bug 1431533)
2018-01-30 02:32:43 +02:00
Kris Maglione
683a97d172 Bug 1431533: Part 5a - Auto-rewrite code to use ChromeUtils import methods. r=florian
This was done using the following script:
37e3803c7a/processors/chromeutils-import.jsm

MozReview-Commit-ID: 1Nc3XDu0wGl
2018-01-29 15:20:18 -08:00
Paolo Amadini
228a7145fc Bug 1424264 - Part 3 - Use the minimum height from the older transitioning view. r=Gijs
This also fixes the clean up of the width and height properties of the viewContainer.

MozReview-Commit-ID: 28XQlUoLLCr
2018-01-26 14:20:10 +00:00
Paolo Amadini
178efe65fc Bug 1424264 - Part 2 - Move state related to view sizing to the PanelView class. r=Gijs
MozReview-Commit-ID: IsywTHd3qVV
2018-01-26 14:19:53 +00:00
Paolo Amadini
4ed7980f43 Bug 1424264 - Part 1 - Always update min-width and max-width before showing views. r=Gijs
This also removes some unneeded checks for variables that are now never false.

MozReview-Commit-ID: KVVwARLrpYO
2018-01-26 14:05:11 +00:00
Paolo Amadini
7281a38d7e Bug 1432016 - Part 4 - Move keyboard navigation to the PanelView class. r=Gijs
This allows removing the separate keyboard navigation map.

MozReview-Commit-ID: 2N0wflAvg7Y
2018-01-22 14:42:24 +00:00
Paolo Amadini
1958720fa5 Bug 1432016 - Part 3 - Use the PanelView class for knownViews and openViews. r=Gijs
MozReview-Commit-ID: CQ0Ao3FlRRc
2018-01-22 13:06:55 +00:00
Paolo Amadini
2f84510771 Bug 1432016 - Part 2 - Move descriptionHeightWorkaround and some other methods to the PanelView class. r=Gijs
MozReview-Commit-ID: 59fUuB35Ygy
2018-01-25 15:35:45 +00:00
Paolo Amadini
82768948ee Bug 1432016 - Part 1 - Add a PanelView class using a base class shared with PanelMultiView. r=Gijs
Only one method is moved to the PanelView class to simplify the keyboard navigation test.

MozReview-Commit-ID: CHB5FiT9ptn
2018-01-22 12:46:48 +00:00
Paolo Amadini
3970ea11c7 Bug 1432015 - Part 5 - Remove unused code. r=Gijs
MozReview-Commit-ID: IoURPSdQAiR
2018-01-21 11:37:50 +00:00
Paolo Amadini
42fddc9dc0 Bug 1432015 - Part 4 - Separate the set of known views from the stack of open views. r=Gijs
This makes the code easier to follow and facilitates future refactoring, for example the set of known views can be removed entirely by making the clean up and navigation code use the stack of open views.

The SlidingPanelView class can thus be removed, saving various lines of code. The class implemented a small optimization for garbage collection, that was already less effective because various other objects are created during each view transition anyways.

MozReview-Commit-ID: Z4JJMklUMf
2018-01-21 17:27:11 +00:00
Paolo Amadini
f6b0b3a5cf Bug 1432015 - Part 3 - Ensure that views passed to showSubView are added to the list of known views without having to reset the internal _panelViews variable. r=Gijs
MozReview-Commit-ID: Hld45ghdduv
2018-01-17 15:04:18 +00:00
Paolo Amadini
01051cc093 Bug 1432015 - Part 2 - Remove the setMainView methods. r=Gijs
The setMainView method of PanelMultiView controls the "mainview" attribute, which is already set or removed later in the showSubView method. When called at construction time, it changes the mainViewId if there is at least one child in the "panelmultiview" element and the original mainViewId does not already reference the first child. This would be incorrect, but in practice it never happens for either ephemeral or static panels, and can be avoided for the throw-away activated page action panel.

The setMainView method of PanelUI is never called, and this makes the corresponding PanelMultiView method removable.

MozReview-Commit-ID: 5bNidHfKFTA
2018-01-21 15:59:41 +00:00
Kris Maglione
1046270983 Backed out 3 changesets (bug 1431533) for Android mochitest bustage. CLOSED TREE
MozReview-Commit-ID: 5ubE9EMQpZ9
2018-01-24 22:04:59 -08:00
Kris Maglione
50ace7f99d Bug 1431533: Part 5a - Auto-rewrite code to use ChromeUtils import methods. r=florian
MozReview-Commit-ID: 8V1ZT53ReiP
2018-01-24 15:48:47 -08:00
Ian Moody
db7adf1a0b Bug 1425972 - Manually handle Tab navigation in PanelMultiView so it syncs with Arrow navigation. r=Gijs
MozReview-Commit-ID: 5PjXFZBeWzM
2017-12-19 19:37:34 +00:00
Paolo Amadini
13d678e2e6 Bug 1423891 - Panel header is gone when going back from Bookmarks to Library. r=Gijs
MozReview-Commit-ID: Bfgg61BH9L8
2017-12-07 15:32:40 +00:00
Paolo Amadini
a5de33f591 Bug 1417042 - Remove the "panelview" binding. r=Gijs
MozReview-Commit-ID: 26uQb3pteQd
2017-12-06 10:37:25 +00:00
Paolo Amadini
756cb221b2 Bug 1392340 - Height jumps when opening subviews of different lengths. r=Gijs
The height of the subview being opened was supposedly calculated using an off-screen container independent from the currently displayed views, but this didn't work as expected because of the incorrect box alignment. This is now fixed and the correct minimum and maximum heights are set on the container separately, also preventing the current view from flickering before the transition in case the subview was taller.

With this issue fixed, the height can now be recalculated each time the subview is opened, without the caching that caused incorrect results when the same view was reopened with different elements or text.

Jumping could also occur because of a border applied only during the transition, which could influence the subview height in the presence of wrapping text.

MozReview-Commit-ID: EWHs1hFKXT4
2017-11-28 16:53:42 +00:00
Sebastian Hengst
077047e8d8 Backed out changeset bce38a7817ee (bug 1417042) for browser-chrome failures, e.g. browser/components/customizableui/test/browser_987640_charEncoding.js and browser/base/content/test/urlbar/browser_page_action_menu.js. r=backout on a CLOSED TREE 2017-11-27 18:03:15 +02:00
Paolo Amadini
6f96d883c6 Bug 1417042 - Remove the "panelview" binding. r=Gijs
MozReview-Commit-ID: 26uQb3pteQd
2017-11-23 18:07:15 +00:00
Paolo Amadini
ea9b09c38d Bug 1414244 - Part 7 - Remove unused code paths from PanelMultiview.jsm. r=Gijs
MozReview-Commit-ID: 9cwaAZXqDGO
2017-11-23 15:18:14 +00:00
Paolo Amadini
977acaa16f Bug 1414244 - Part 4 - Remove the "panel-clickcapturer" element. r=Gijs
MozReview-Commit-ID: 3aPVbnmr7QB
2017-11-11 22:48:32 +00:00
Paolo Amadini
cf6e951359 Bug 1414244 - Part 3 - Remove the "panel-subviews" container. r=Gijs
MozReview-Commit-ID: 2GGJ1myKuF5
2017-11-11 22:09:30 +00:00