Closed Bug 1597378 Opened 10 months ago Closed 7 months ago

Create the new UI for the minimal popup/doorhanger

Categories

(DevTools :: Performance Tools (Profiler/Timeline), enhancement, P2)

enhancement

Tracking

(firefox75 fixed)

RESOLVED FIXED
Firefox 75
Tracking Status
firefox75 --- fixed

People

(Reporter: gregtatum, Assigned: gregtatum)

References

(Blocks 2 open bugs)

Details

Attachments

(4 files, 1 obsolete file)

The new UX is much more simplified. In this bug, we can have a preffed off "hard break" in the codebase, and create a new popup/doorhanger that will interact nicely with the about:profiling page. It will not include the presets, nor the overhead information. However, it will support the profiler buttons, a link to the new about:profiler page.

Assignee: nobody → gtatum
Attached file Bug 1597378 - WIP - Simplified popup (obsolete) —
Blocks: 1615431

The presets in recording-utils.js couldn't be shared via the ChromeUtils.import
mechanism. When they were in recording-utils.js they could only be loaded in
via the DevTools require() loader. This commit changes it so that they are
stored in a jsm, and are also injected to each UI interface where the
ChromeUtils.import function is available (only in the initializers).

Depends on D62911

This commit removes the old popup implementation, but does not implement the new one
yet. This is in a follow-up commit. The client is in a bit of an awkard state where
it is mid-transition to a new architecture. Some of the code comments and documentation
were updated to reflect the changes coming up.

Depends on D62912

This commit implements the actual UI changes. A follow-up commit adds the
tests for the changes. The CSS is a little bit awkard since it uses lots of
ID selectors rather than class selectors. I wanted to be able to write quick
selects, since it's selecting across the entire browser document. I feel
a little conflicted with the approach, as I would prefer to use classes in
general.

The panel.jsm.js file collects all of the UI handling changes rather than
having everything in menu-button.jsm.js, as the latter can get loaded
at startup. I'm not sure if it's completely worth the trouble of having
two files, as most of it should be pretty light.

This commit does not handle localization for the panel, as we should be moving
to Fluent. Rather than solve that here, I will follow-up with it in Bug 1599774.

Depends on D62913

This commit adds tests for the profiler popup, and migrates some of the
older ones to use about:profiling instead.

Depends on D62914

Attachment #9125858 - Attachment is obsolete: true
Pushed by gtatum@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/9b760d8fc1dc
Change location of the presets; r=julienw
https://hg.mozilla.org/integration/autoland/rev/4d1ff8bd4e64
Remove old popup implementation; r=julienw
https://hg.mozilla.org/integration/autoland/rev/b2f0cf9a387e
Create new UI for the profiler popup; r=julienw
https://hg.mozilla.org/integration/autoland/rev/38c8db44b398
Migrate profiler popup tests; r=julienw
Flags: needinfo?(gtatum)
Pushed by gtatum@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/35da034acf03
Change location of the presets; r=julienw
https://hg.mozilla.org/integration/autoland/rev/c65103d7bf0b
Remove old popup implementation; r=julienw
https://hg.mozilla.org/integration/autoland/rev/b802ce66aa59
Create new UI for the profiler popup; r=julienw
https://hg.mozilla.org/integration/autoland/rev/cc21fa09b88d
Migrate profiler popup tests; r=julienw
Flags: needinfo?(gtatum)
Pushed by gtatum@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/41f2f089537d
Change location of the presets; r=julienw
https://hg.mozilla.org/integration/autoland/rev/bee9d5fc55aa
Remove old popup implementation; r=julienw
https://hg.mozilla.org/integration/autoland/rev/2f59a08c4bef
Create new UI for the profiler popup; r=julienw
https://hg.mozilla.org/integration/autoland/rev/c6e4d7a385cc
Migrate profiler popup tests; r=julienw
Regressions: 1619578

Is there a bug tracking making all this UI localizable? I was a bit surprised to find hardcoded English in the tree for this.

Flags: needinfo?(gtatum)

Yes, it's: https://bugzilla.mozilla.org/show_bug.cgi?id=1599774 which has a WIP patch attached to it.

For background, I started doing the localization in the initial patches, but the CustomizableUI didn't have Fluent in place as far as I could tell, and someone commented that I shouldn't be touching old localization files. I filed it as a follow-up, and still plan on doing the work. I spent a lot of time on this UI so far, so I'm catching up on some other projects before coming back to it. We still haven't opened up this UI path to a broader audience yet, and will have localization in place before we do. My approach was to achieve parity first with existing UI this was replacing, which also was not localized. It's definitely on my to-do list though.

Flags: needinfo?(gtatum)
See Also: → 1631919
You need to log in before you can comment on or make changes to this bug.