Commit graph

215 commits

Author SHA1 Message Date
James Teh
382c02eef0 Bug 1506503: PanelMultiView: Automatically focus the first item if a panel is opened via the keyboard. r=johannh,paolo
Previously, we had specific code to do this for the "View site information" button (#identity-box) when activated via the keyboard.
To work well for keyboard and screen reader users, all such popups (e.g. Firefox menu, Page Actions, etc.) should do this.
These are all based on panelMultiView.
The arguments passed to PanelMultiView.openPopup can include the event which triggered the popup.
We now use this to detect keypress events and focus the first item in the panel in that case.

Differential Revision: https://phabricator.services.mozilla.com/D11605

--HG--
extra : moz-landing-system : lando
2018-11-16 22:51:59 +00:00
Mark Banner
691543ee89 Bug 1486739 - Add missing dangling commas in browser/, services/, taskcluster/ and toolkit/. r=mossop
Automatic changes by ESLint, except for manual corrections for .xml files.

Differential Revision: https://phabricator.services.mozilla.com/D4439

--HG--
extra : moz-landing-system : lando
2018-08-31 05:59:17 +00:00
Mark Striemer
dedae0369d Bug 1482731 - Support Home and End in PanelMultiView navigation r=dao
Differential Revision: https://phabricator.services.mozilla.com/D4087

--HG--
extra : moz-landing-system : lando
2018-08-28 09:17:56 +00:00
Paolo Amadini
866357cbca Bug 1484275 - Fix opening the main menu while another popup is open on Windows. r=Gijs
Differential Revision: https://phabricator.services.mozilla.com/D3979

--HG--
extra : rebase_source : 5cf5b9fe368de3c78765cb154ef6532e2340d400
2018-08-23 14:04:43 +01:00
Brendan Dahl
4b4b2327fe Bug 1485147 - Fix app menu for browser.xhtml. r=bgrins
The XUL elements were not being created because of the wrong createElement
call.

MozReview-Commit-ID: 54RqUJQAqHq

Differential Revision: https://phabricator.services.mozilla.com/D3998

--HG--
extra : moz-landing-system : lando
2018-08-22 17:04:52 +00:00
Sahil Bhosale
f644c54e3a Bug 1481401 - PanelMultiView.jsm: replace _dwu getter with _getBoundsWithoutFlushing method. r=dao 2018-08-10 02:27:00 +03:00
Brian Grinstead
abf1620630 Bug 1479125 - Migrate calls that expect an element to be returned to use element variation firstChild etc to firstElementChild etc;r=Paolo
This allows the JS to work in HTML documents, where whitespace is preserved. In XUL
documents, whitespace is ignored when parsing so text nodes are generally not returned.

The following changes were made, with manual cleanups as necessary (i.e. when firstChild actually
refers to a text node, or when firstChild is used in a loop to empty out an element):

  firstChild->firstElementChild
  lastChild->lastElementChild
  nextSibling->nextElementSibling
  previousSibling->previousElementSibling
  childNodes->children

MozReview-Commit-ID: 95NQ8syBhYw

--HG--
extra : rebase_source : 186d805f7a2a56694dda9032aceac2dfe5424753
2018-08-08 15:22:53 -07:00
Paolo Amadini
f06351c23c Bug 1473748 - Part 2 - Simplify how navigable elements are initialized. r=johannh
MozReview-Commit-ID: HN2ZYXNVi6m

--HG--
extra : rebase_source : 4373f26b679296d6f2237640dd248ce5bf8dd63c
2018-07-23 11:28:23 +01:00
Paolo Amadini
7328341032 Bug 1473748 - Part 1 - Use the type of element instead of the "subviewbutton" and "subviewkeynav" classes to initialize the list of navigable elements. r=johannh
MozReview-Commit-ID: IgxwGRNLsct

--HG--
extra : rebase_source : edc897a0c0ac7a8b7b551759a8d69b7c3d3659d5
2018-07-26 14:58:43 +01:00
Boris Zbarsky
270fa12c79 Bug 1476145 part 3. Stop using getInterface(nsIDOMWindowUtils) in browser/. r=gijs 2018-07-24 19:47:41 -04:00
Johann Hofmann
e7b9853987 Bug 1467385 - Use PanelMultiView APIs for keyboard navigation in the identity popup. r=Paolo
PanelMultiView has its own concept of "selected", so we should use this rather than move focus
using advanceFocusIntoSubTree.

MozReview-Commit-ID: DW2JqqggLl1

--HG--
extra : rebase_source : ec7a6f83fdda176f3286cf4395dc72de6cad2466
2018-07-02 14:34:25 +02:00
James Teh
8b233f97a0 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

--HG--
extra : rebase_source : 431fd2b1e2926e53002a45c290f9d88e8463c42c
2018-04-23 10:37:42 +10:00
Neil Deakin
cf9835ac8b 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
a7b308c3a2 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

--HG--
extra : rebase_source : cffb1c9762191c579d1397c8169e6e7635d229da
extra : histedit_source : dea59ddd2daaae52069c5faceae9149a4f08dd73
2018-04-24 20:18:09 -07:00
Mike Conley
4b6fb934f7 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

--HG--
extra : rebase_source : 6e4f64576296e01deb6af0b8a1911b4da934e48d
2018-03-08 14:24:18 -05:00
Sam Foster
c11210d2df 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

--HG--
extra : rebase_source : 429503a7d38559cc8670a3205b3290b8e0bbbfa2
2017-10-05 10:23:53 -07:00
Mark Banner
a32bc883e7 Bug 1434446 - Enable no-unused-vars for global scope on jsm files in browser/. r=mossop
MozReview-Commit-ID: ERT1Fili25d

--HG--
extra : rebase_source : c62ad4e97fc5da7c59cbb03ba08928f7bbe5be6b
2018-03-01 20:06:06 +00:00
Tooru Fujisawa
d0ece36aa1 Backed out changeset 29e1fceaf48d (bug 1193394) 2018-03-01 19:55:08 +09:00
Tooru Fujisawa
25a9f5bb72 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
01dda8797e 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

--HG--
extra : rebase_source : 8cd1b86168aee23d4e75556c2b11baf2c8dd0b9c
2018-02-27 22:02:55 +00:00
Paolo Amadini
86df7b05eb 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

--HG--
extra : rebase_source : 7e28c0638c46b26c45b1073d8a76173fa75fd5fa
2018-02-28 13:43:51 +00:00
Paolo Amadini
29a9ce32a3 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

--HG--
extra : rebase_source : cd66a1e68d0f6cf0a371d7216d54e7d07b576529
2018-02-27 22:56:15 +00:00
Paolo Amadini
ceb5caf0c5 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

--HG--
extra : rebase_source : cd002b7052d14318efe4ef1ac6cc48fe30467265
2018-02-27 16:13:48 +00:00
Paolo Amadini
389c9b6df4 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

--HG--
extra : rebase_source : 533cee34a8f8e0e4bae00a4ff4eb00b9f330f7c1
2018-02-27 15:52:07 +00:00
Paolo Amadini
91212fa6b1 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

--HG--
extra : rebase_source : c338362923a7574210c7329bb84316d549898fdc
2018-02-27 15:33:33 +00:00
Paolo Amadini
613236ab39 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

--HG--
extra : rebase_source : 222a398546da3c142f4051c88f5cf9b4da2b8e98
2018-02-27 15:35:42 +00:00
Paolo Amadini
af1087eff8 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

--HG--
extra : rebase_source : 8ff0ef3463470ed909a60c788ec59eaefa6795a9
2018-02-27 15:27:27 +00:00
Paolo Amadini
5a7e8bc917 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

--HG--
extra : rebase_source : 1c089d8a9e4e6a1031a7d0337f3459b7c1e37117
2018-02-27 15:17:29 +00:00
Paolo Amadini
a524280e41 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

--HG--
extra : rebase_source : 9162b3588b6085da5385a63401457192b1d9e690
2018-02-27 14:17:10 +00:00
Paolo Amadini
357704dead 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

--HG--
extra : rebase_source : b3fb5381152c8baaf8f77549e87723e1815f945f
2018-02-26 19:50:19 +00:00
Paolo Amadini
01883a026c 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

--HG--
extra : rebase_source : cc3f1843cfd57e94bdf657aa033fbc9d5a086bf7
2018-02-26 19:47:29 +00:00
Paolo Amadini
a52806ca23 Bug 1441284 - Part 5 - Remove the "_panelViewCache" property. r=Gijs
MozReview-Commit-ID: IjTCdzr6gZ5

--HG--
extra : rebase_source : 1fece9694dfa2be6120230935af2c41f8efd26fb
2018-02-26 19:36:12 +00:00
Paolo Amadini
6a40e40b80 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

--HG--
extra : rebase_source : ae8afd201782346e63772cdb62797b7069e0d3ac
2018-02-26 19:14:31 +00:00
Paolo Amadini
d46beaba6f 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

--HG--
extra : rebase_source : d1940fb7a470b42e0550c0e2876ad947d1c85d9d
2018-02-27 14:08:58 +00:00
Paolo Amadini
228213e40d Bug 1441284 - Part 2 - Remove the "_currentSubView" property. r=Gijs
MozReview-Commit-ID: Aua3V8hOT39

--HG--
extra : rebase_source : 08d506c3d65b3e2e72532183e776f8aa1c6c0975
2018-02-26 18:43:43 +00:00
Paolo Amadini
2d4d390d41 Bug 1441284 - Part 1 - Remove the "current" property. r=Gijs
MozReview-Commit-ID: GyqI8N3JQ9O

--HG--
extra : rebase_source : c2ac400d601c259ce17852a85d01230355885454
2018-02-26 18:36:59 +00:00
Paolo Amadini
53d37c96a7 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

--HG--
extra : rebase_source : 9f6dad605243fcd3633260c4fa34011f9cfab27c
extra : source : 2dad70b2a723e67b45563dd3ac254911dd193439
2018-02-26 13:18:22 +00:00
Paolo Amadini
acc856e8d4 Bug 1440333 - Part 2 - Rename the "current" attribute to "visible". r=Gijs
MozReview-Commit-ID: EazXDT6JC3M

--HG--
extra : rebase_source : ecaba689f94e26dcb20321bf51cd1b76d22ac2e8
extra : source : c705b49c2bae3301998df83dc0b883d0fb4e5219
2018-02-26 14:31:35 +00:00
Paolo Amadini
c359f82b1a 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

--HG--
extra : rebase_source : 2af636d4d93bf760b9ec4fd8b31ed77c715ab93f
extra : source : 9906b468eb78016aa4994b674da85bf7663c0285
2018-02-25 20:37:55 +00:00
Paolo Amadini
ffc1649aa1 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

--HG--
extra : rebase_source : f272ab4c60de4361b44e71403806cd84436280db
2018-02-26 15:13:29 +00:00
Brindusan Cristian
81684073f2 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
885de209fb 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

--HG--
extra : rebase_source : 8c9e2a86285be6453cd60b3da448876e6dfa7e8a
2018-02-26 13:18:22 +00:00
Paolo Amadini
76ef799b86 Bug 1440333 - Part 2 - Rename the "current" attribute to "visible". r=Gijs
MozReview-Commit-ID: EazXDT6JC3M

--HG--
extra : rebase_source : 5cca4cd0cf565ffbdf75a9777dfc15b359dcda57
2018-02-23 15:54:08 +00:00
Paolo Amadini
337d163883 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

--HG--
extra : rebase_source : 5e594347fc612af2b3ee44748dd44383aa08f1a5
2018-02-25 20:37:55 +00:00
Paolo Amadini
c7bdffd735 Bug 1437512 - Part 2 - Remove the "panelmultiview" binding. r=Gijs
MozReview-Commit-ID: H9R7ahkCr2U

--HG--
extra : rebase_source : d6403d026b4539acc71325c600ee9ff3be667591
2018-02-25 18:43:55 +00:00
Paolo Amadini
c31491834b Bug 1437512 - Part 1 - Remove the "panelmultiview" binding construction. r=Gijs
MozReview-Commit-ID: 3oCvOe5th0B

--HG--
extra : rebase_source : 11ec16d78e61379d6efd359bd221b1829f89efa6
2018-02-25 18:41:45 +00:00
Mike Conley
4e9c3d2fe2 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

--HG--
extra : rebase_source : b8c9ae40dbdd0f5587d03e8b7c0833bd94032a78
2018-02-11 20:15:11 -05:00
Andreea Pavel
1aac7df383 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
96fbfba56f 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

--HG--
extra : rebase_source : b8c9ae40dbdd0f5587d03e8b7c0833bd94032a78
2018-02-11 20:15:11 -05:00
Florian Quèze
682b1ec3b2 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
c6d3def00e Bug 1439358 - Part 8 - Change how visibility is controlled so knownViews can be removed. r=Gijs
MozReview-Commit-ID: 9dVZ1cOto8O

--HG--
extra : rebase_source : be13ed8d5c72b0e018dd0d27ef1fd3b7293bef48
2018-02-22 15:28:15 +00:00
Paolo Amadini
7a2372af52 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

--HG--
extra : rebase_source : 5c129b0d4aa824bbe899066f2bb197106d1c0408
2018-02-22 11:25:10 +00:00
Paolo Amadini
a623dbe5af 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

--HG--
extra : rebase_source : 440ddc3eabcbe9d0f02a172f8adf047c66ca53ac
2018-02-22 14:20:11 +00:00
Paolo Amadini
3ffdb38d61 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

--HG--
extra : rebase_source : 666c5744843f5197ab5130212096a1c83a2e3983
2018-02-22 17:11:25 +00:00
Paolo Amadini
5ef12b919b 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

--HG--
extra : rebase_source : b483f9c7e2782f070f5694d85a91a0bfefff5457
extra : source : 7ce7a10fd212989eee76b482632eac9b985d4b2e
2018-02-22 13:39:09 +00:00
Paolo Amadini
92a511a1a2 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

--HG--
extra : rebase_source : 5e994fa4d54b2805b5eb10d9471bbb25bd21f24c
2018-02-19 11:17:52 +00:00
Paolo Amadini
660eb79aeb 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

--HG--
extra : rebase_source : dc0a8e5267b7211c7ee3e2216bd1dc0cabdbd4bd
extra : intermediate-source : 9cc3eafb24f3936eb8ccb359f2f04e9839ae9ff2
extra : source : 7ce7a10fd212989eee76b482632eac9b985d4b2e
2018-02-12 16:44:00 +00:00
Paolo Amadini
84fbdaa982 Bug 1437811 - Part 3 - Add a safety timeout for blockers registered by event handlers. r=Gijs
MozReview-Commit-ID: 6dfRVInzNps

--HG--
extra : rebase_source : a164b8221ed4f22ab49a24e97479d21ac132520b
2018-02-16 15:04:24 +00:00
Paolo Amadini
0eac64a01c 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

--HG--
extra : rebase_source : beb721ff996f11d7e162a4ff431c38b30bf42ca6
extra : source : c8115e90ffa8af27ef00cbd0f8da68dce7ce36bd
2018-02-16 15:03:18 +00:00
Paolo Amadini
d59df3cdd5 Bug 1434883 - Part 2 - Use an asynchronous API to open PanelMultiView panels. r=Gijs
MozReview-Commit-ID: 3VzoxJ3Ociy

--HG--
extra : source : 22c83b1d417d7c7bd21a71109f4800f5d37bbb77
extra : intermediate-source : 6de7133c267288a468804f67f91df68b10b9793e
2018-02-06 09:02:27 +00:00
Andrew McCreight
5dec0e0beb 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

--HG--
extra : rebase_source : d9c41878036c1ef7766ef5e91a7005025bc1d72b
2018-02-06 09:36:57 -08:00
Kris Maglione
918ed6c474 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

--HG--
extra : source : 12fc4dee861c812fd2bd032c63ef17af61800c70
extra : intermediate-source : 34c999fa006bffe8705cf50c54708aa21a962e62
extra : histedit_source : b2be2c5e5d226e6c347312456a6ae339c1e634b0
2018-01-29 15:20:18 -08:00
Cosmin Sabou
9a65a40178 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
6476f95b13 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

--HG--
extra : source : 12fc4dee861c812fd2bd032c63ef17af61800c70
2018-01-29 15:20:18 -08:00
Brindusan Cristian
af8879d1eb 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
c276bb9375 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

--HG--
extra : rebase_source : c004a023389f1f6bf3d2f3efe93c13d423b23ccd
2018-01-29 15:20:18 -08:00
Paolo Amadini
725589e703 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

--HG--
extra : rebase_source : ce0df7ab26ce0212137003e2c700fac4d49e228d
extra : source : c06ebffb1795cf555f5ce609ab133b3bad594137
2018-01-26 14:20:10 +00:00
Paolo Amadini
84248294a8 Bug 1424264 - Part 2 - Move state related to view sizing to the PanelView class. r=Gijs
MozReview-Commit-ID: IsywTHd3qVV

--HG--
extra : rebase_source : 85b8496c46e068843bcda4b9f4b05b5e2853696b
extra : source : 84f3b647fe44b4483122953080dc43cc68defee6
2018-01-26 14:19:53 +00:00
Paolo Amadini
70a9370dd8 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

--HG--
extra : rebase_source : 5d6ebaabce6964fd57cda83685194e339f143865
2018-01-26 14:05:11 +00:00
Paolo Amadini
0d7dab5bac 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

--HG--
extra : rebase_source : 63b9ae6e4db0de1957cb011c69134894d311b703
2018-01-22 14:42:24 +00:00
Paolo Amadini
8297599fe3 Bug 1432016 - Part 3 - Use the PanelView class for knownViews and openViews. r=Gijs
MozReview-Commit-ID: CQ0Ao3FlRRc

--HG--
extra : rebase_source : 17fc6eeb96748028943708b83fc9fd5b6134d8b6
2018-01-22 13:06:55 +00:00
Paolo Amadini
449c7a5310 Bug 1432016 - Part 2 - Move descriptionHeightWorkaround and some other methods to the PanelView class. r=Gijs
MozReview-Commit-ID: 59fUuB35Ygy

--HG--
extra : rebase_source : 65133023f89241da1b8475b783ffc80e35ee3c28
2018-01-25 15:35:45 +00:00
Paolo Amadini
f26eb575e4 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

--HG--
extra : rebase_source : ec588beae9f1208a37ce85f9d28029dfd979db24
2018-01-22 12:46:48 +00:00
Paolo Amadini
8fb049f21b Bug 1432015 - Part 5 - Remove unused code. r=Gijs
MozReview-Commit-ID: IoURPSdQAiR

--HG--
extra : rebase_source : a52da95d14752726590035aa4adea5a7605aae50
2018-01-21 11:37:50 +00:00
Paolo Amadini
fce2b33bda 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

--HG--
extra : rebase_source : 8789a35c4234fc691c62efeb3445b776b14fc1f9
2018-01-21 17:27:11 +00:00
Paolo Amadini
26c7b11e09 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

--HG--
extra : rebase_source : e01d8facd56a4be21818879b21de75802d723db3
2018-01-17 15:04:18 +00:00
Paolo Amadini
11d708f26b 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

--HG--
extra : rebase_source : b527827d30d682d183981347c2caf3a8a5d81355
2018-01-21 15:59:41 +00:00
Kris Maglione
aec63e140c Backed out 3 changesets (bug 1431533) for Android mochitest bustage. CLOSED TREE
MozReview-Commit-ID: 5ubE9EMQpZ9

--HG--
extra : histedit_source : df68d7595925c07d9d6e8bacc2c46e69556f479a%2C72b768b9825e20ede6603ead75f871c50dc041f7
2018-01-24 22:04:59 -08:00
Kris Maglione
30b3a49bfd Bug 1431533: Part 5a - Auto-rewrite code to use ChromeUtils import methods. r=florian
MozReview-Commit-ID: 8V1ZT53ReiP

--HG--
extra : rebase_source : 12b5f8c3e125111db7382eb3d7d20a99fb2c35b3
extra : absorb_source : e99fa7f6eee02e7e6cadeb898c7fcf6dac9c902a
extra : histedit_source : d0dfc31fadc2b81d341c9d0cd1efec02923c003b
2018-01-24 15:48:47 -08:00
Ian Moody
acb5488eff Bug 1425972 - Manually handle Tab navigation in PanelMultiView so it syncs with Arrow navigation. r=Gijs
MozReview-Commit-ID: 5PjXFZBeWzM

--HG--
extra : rebase_source : cd0e2176fed7f9808808e45ea4aef794450af43c
2017-12-19 19:37:34 +00:00
Paolo Amadini
d5768a5706 Bug 1423891 - Panel header is gone when going back from Bookmarks to Library. r=Gijs
MozReview-Commit-ID: Bfgg61BH9L8

--HG--
extra : rebase_source : aa50e87024c46f8337e806245a8aae34b5fa599f
2017-12-07 15:32:40 +00:00
Paolo Amadini
b12ae1861e Bug 1417042 - Remove the "panelview" binding. r=Gijs
MozReview-Commit-ID: 26uQb3pteQd

--HG--
extra : rebase_source : 93263ff4f1e0d38292dbfef3f7385ddd881b25ef
extra : source : bce38a7817ee39ccd38f57f73f5acf81a41e1f69
2017-12-06 10:37:25 +00:00
Paolo Amadini
fd72a1cb37 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

--HG--
extra : rebase_source : 5b0bc4e5d4d2d10d684c2c2bf94a9030aadd09bd
2017-11-28 16:53:42 +00:00
Sebastian Hengst
f3e2f5f701 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
a923fc09da Bug 1417042 - Remove the "panelview" binding. r=Gijs
MozReview-Commit-ID: 26uQb3pteQd

--HG--
extra : rebase_source : 1460c5538943b9b5a6c84a040b37e883a3276d9a
2017-11-23 18:07:15 +00:00
Paolo Amadini
166ddcece1 Bug 1414244 - Part 7 - Remove unused code paths from PanelMultiview.jsm. r=Gijs
MozReview-Commit-ID: 9cwaAZXqDGO

--HG--
extra : rebase_source : 90cf1a99c2ca1a64709abfa7383462480282ba0f
2017-11-23 15:18:14 +00:00
Paolo Amadini
90a19d3ca4 Bug 1414244 - Part 4 - Remove the "panel-clickcapturer" element. r=Gijs
MozReview-Commit-ID: 3aPVbnmr7QB

--HG--
extra : rebase_source : f59452147d08b3f75521c544f78f1c29b2c39814
2017-11-11 22:48:32 +00:00
Paolo Amadini
82f9f4f35d Bug 1414244 - Part 3 - Remove the "panel-subviews" container. r=Gijs
MozReview-Commit-ID: 2GGJ1myKuF5

--HG--
extra : rebase_source : e4089ae1ec828048f052932f13a687aca109b7c5
2017-11-11 22:09:30 +00:00
Paolo Amadini
b4f8aa9d1e Bug 1414244 - Part 2 - Remove the "viewtype" attribute. r=Gijs
MozReview-Commit-ID: 8fq0KLfYWnc

--HG--
extra : rebase_source : a75197f66d0b8699e1cad5640eb0bc20ee53ee0c
2017-11-21 13:22:47 +00:00
Paolo Amadini
46c88521a3 Bug 1414244 - Part 1 - Remove the "panelid" attribute. r=Gijs
MozReview-Commit-ID: 4o27h6PhCRg

--HG--
extra : rebase_source : 7be0dd97832033fa0d5304afd0def1cd3dcd3ddf
2017-11-11 13:05:51 +00:00
Sam Foster
c5c9a1666e Bug 1412364 - defer applying maxHeight in PanelMultiView until popup is positioned. r=Paolo
* Let popup code initially measure and place the panel without maxHeight, this ensures alignmentPosition is a reasonable value
* Assign maxHeight from a popuppositioned handler and update the comment explaining the role of the autoPosition property
* Refactor to move the maxHeight calculation into a method on PMV
* panel autoPosition now gets reset to false in popuppositioned (was popupshowing) as the ShowWithPositionedEvent on popupFrame sets it back to true every time
* Update reflow tests with new signatures, and elimination of 1 reflow
* In appMenu reflow test, we must now wait for popupshown before opening subviews

MozReview-Commit-ID: KfHxngnajM3

--HG--
extra : rebase_source : 2918a30f6ecdfded57fb7b93aba3f0479fd4635c
2017-11-16 17:12:06 -08:00
Gijs Kruitbosch
7cc3de1624 Bug 1388029 - remove dead CSS relating to the old panel, r=jaws
MozReview-Commit-ID: FoXjvWPc9in

--HG--
extra : rebase_source : b098e2efc8f154aaae5f4ddfd30558fb0f3299c1
2017-11-07 12:52:56 +00:00
Paolo Amadini
f735328150 Bug 1409301 - Update the site security subview to the Photon style. r=johannh
The site security subview is now implemented using the "photonpanelmultiview" element, replacing the last instance of the "panelmultiview" element. The subview features a standard Photon header, hence the connection state icon was moved to the element below it. This makes the styles more similar between the main view and the subview. The connection state styles are now applied using a class name, and the tests have been updated accordingly.

This change required some fixes in the "photonpanelmultiview" implementation to make sure the height of the subview is correct and to allow keyboard navigation back to the main view.

Since the expander button and the permission controls in the main view are not visible anymore after the subview is shown, some code related to focus and hover could be removed as well.

MozReview-Commit-ID: 4nIAPWJPV8k

--HG--
extra : rebase_source : 74d6d769421c0f8521bdfae249b4d111e630a3bd
2017-11-11 19:13:43 +00:00
Dan Banner
7caa92d5d8 Bug 1408777 - Automatically fix instances of missing semicolons in the tree. r=Standard8
MozReview-Commit-ID: Jm8BRgt6mIv
2017-10-15 20:50:39 +01:00
Mike de Boer
9fb6d528ad Bug 1407591 - Listen for the 'transitioncancel' event as well to ensure that a panel transition is also cleaned up properly in this rare case. r=Paolo
MozReview-Commit-ID: 2bph43ndzJJ

--HG--
extra : rebase_source : cc7d0def21df8b3c577b26546e8bf474faa58b3b
2017-10-12 13:26:04 +02:00
Mike de Boer
219c7f3d50 Bug 1405942 - Make sure to always apply the descriptionHeightWorkaround in Photon panels on popupshown, because it might've missed elements that were hidden. r=Paolo
MozReview-Commit-ID: 9xSqoZGJ3MF

--HG--
extra : rebase_source : ce3547992d86d1343f1e2ef9aff953819a283ad4
2017-10-10 12:42:43 +02:00
Mike de Boer
50959cb695 Bug 1387808 - Don't ever fixate the width and height of the main view, but leave it flexible. r=Gijs
MozReview-Commit-ID: AJw6yI6Onje

--HG--
extra : rebase_source : 144739ba16418ce0867a6dd7ac086c4ea4676c51
2017-10-05 13:14:02 +02:00
Mike de Boer
882fa06e25 Bug 1401991 - Ensure that we don't hide panelviews that are already reparented to another multi-view and ensure to hide other panels consistently. r=Gijs
* Harden the new `hideAllViewsExcept()` to not do erroneous things if called when
   the binding is already gone.
 * Generalize things into `hideAllViewsExcept(thisOne)`:
    - Clear `_viewShowing` in there and do the descriptionHeightWorkaround thing
      in there too,
    - For Photon panels, do all the 'current' attribute setting in there. To show
      a panel during transition, I introduced the 'in-transition' attribute.
 * I had to make sure not to over-eagerly dispatch 'ViewShowing' events, because
   that confuses some,
 * Move the temporary panel handling, which contains an ephemeral panelmultiview
   instance, internally. This cleans up the hacky, duplicate PanelUI.js code nicely.
 * Keep a local copy of `_transitionDetails` to ensure it's still there after transition,
 * Harden `_cleanupTransitionPhase()` to only clear the phase that belongs to a
   specific transition, _if_ that's passed in as an argument. This resolves any
   potential raciness that might occur when `showSubView()` is called again mid-transition.
 * Skip the UITour element visibility check when it's inside a panelview, because
   too many things need to happen and that check is too simple to be useful in
   that case.

MozReview-Commit-ID: 5HpJKs1Ny5j

--HG--
extra : rebase_source : b810e1de2dbd75932a42d68e751fdaecd9fee69a
2017-09-29 13:51:51 +02:00
Mike de Boer
f7dd6d2d6d Bug 1401383 - remove anchor state after transition even if the transition is canceled, and always set main view as current, r=Gijs
We weren't removing the 'open' attribute from the anchor if the transition didn't complete.
This patch fixes this by moving the addition of 'open' into _transitionViews, and its removal into
_cleanupTransitionPhase.

MozReview-Commit-ID: TS0CcwsHVN

--HG--
extra : rebase_source : 1bdace324f22ee95002024fe68b572a16dd25aac
2017-09-21 22:18:07 +02:00
Sebastian Hengst
7824630fde Backed out changeset 658b68ee4d0a (bug 1401383) for frequently failing browser-chrome's browser/components/extensions/test/browser/browser_ext_browserAction_popup_resize.js, especially on Linux x64 asan. r=backout 2017-09-20 17:28:51 +02:00