Open Bug 1330328 (themingapi) Opened 6 years ago Updated 5 months ago

[meta] Theming API


(WebExtensions :: Themes, task, P3)



(Not tracked)


(Reporter: mikedeboer, Unassigned)


(Depends on 10 open bugs, Blocks 1 open bug, )


(Keywords: meta, Whiteboard: triaged)

Main tracking bug for all feature development related the a new theming API that will become part of Firefox.
Each epic will be marked as blocking this bug. You can find the full engineering document that lists these epics at [see URL field].

This bug can be closed once all epics are complete (and linked bugs are closed as well).
Blocks: 1329713
Depends on: 1320736
Whiteboard: triaged
Depends on: 1337335
No longer depends on: 1339131
Will the theming api, or any other planned/approved api, allow either of the following?

* Hiding core ui elements (e.g. tab bar, navigation and menu bar)
* Defining a new ui element that can expand/overlay the main page and be controlled by a web extension

Both of these features are required to port vimperator, a somewhat popular addon that essentially replaces firefox's UI.

The latter capability would be used to draw the command/statusline (needs to expand to show autocomplete options). It is not sufficient to draw the statusline in a content script whilst content scripts are forbidden for some URLs as that would make the main UI element unusable on some pages.


:kmag suggests in another bug that permitting content scripts to run on about:downloads is "out of the question", and I understand the motivation, but this will make it difficult for addons that replace or augment the UI (through differing keybinds or new features (e.g. hint mode)) to provide a consistent UX.

Our preferred solution is that content scripts be permitted to run on all tabs iff the user agrees to some scarily named permission and the developer pinky swears they'll be careful and not use exposed attributes that they shouldn't.

Thanks for your attention and apologies if this is the wrong place for this question.
Flags: needinfo?(mdeboer)
Hi Colin, thanks for being interested! I'm afraid this is indeed not the right venue for these kind of questions. We're planning to send out a comprehensive blog mailing list(s) post that explains what the new Theming API will and will not support when the first version ships.
Please stay tuned and feel free to ask any question you might have then. Thanks!
Flags: needinfo?(mdeboer)
Thanks for the information. Looking forward to it.

Sorry about polluting this bug.

Depends on: 1320585
Depends on: 1333953
No longer depends on: 1333953
Depends on: 1347166
Depends on: themingapi-chrome
Depends on: 1347205
Depends on: themingapi-more-ui
Depends on: 1348039
No longer depends on: 1348039
Depends on: 1348147
Depends on: 1348151
No longer depends on: 1348151
Depends on: 1348151
No longer depends on: 1348151
Blocks: webext
Blocks: 1367284
Blocks: 1386004
Depends on: 1387582
Depends on: 1342712
Depends on: 1389465
Depends on: 1395105
Depends on: 1394117
Depends on: 1391912
Depends on: 1397393
Keywords: meta
Priority: -- → P3
Depends on: 1401691
Depends on: 1404688
Depends on: 1404855
Depends on: themingapi-android
No longer depends on: 1391912
Depends on: 1402791
The design document is not world readable. Could it be made so, please?

I've also requested access from my email address
Colin, there's a world-readable version of the design document here:
Depends on: 1413144
Depends on: 1414196
No longer depends on: 1414196
Depends on: 1415209
Depends on: 1415267
Depends on: 1415826
Depends on: 1415872
Depends on: 1415878
No longer depends on: 1415878
No longer depends on: 1415872
Depends on: 1417880
Depends on: 1417883
Depends on: themingapi-polish
No longer depends on: 1395105
No longer depends on: 1404688
No longer depends on: 1415209
No longer depends on: 1415826
No longer depends on: 1350356
No longer depends on: 1394117
No longer depends on: 1413144
No longer depends on: 1415267
No longer depends on: 1397393
No longer depends on: 1404855
No longer depends on: 1417880
No longer depends on: 1402791
No longer depends on: 1417883
No longer depends on: 1335171
No longer depends on: 1319821
No longer depends on: 1343921
No longer depends on: 1387582
No longer depends on: 1389465
No longer depends on: 1401691
No longer depends on: 1320585
No longer depends on: 1342712
No longer depends on: 1320736
mass move of existing themes bugs to new WebExtensions: Themes component
Component: WebExtensions: Frontend → WebExtensions: Themes
Depends on: themingapi-ux
No longer depends on: 1451012
No longer depends on: 1330338
Depends on: 1462416
No longer depends on: 1462416
Depends on: themingapi-ios
Product: Toolkit → WebExtensions

Browser theme API isn't support lightweight themes and default colors.
browser.theme.getCurrent needs to return colors, which browser using now instead of returning 'null'.

Summary: Theming API → [meta] Theming API

(In reply to juhyt80 from comment #10)

Browser theme API isn't support lightweight themes and default colors.
browser.theme.getCurrent needs to return colors, which browser using now instead of returning 'null'.

This will be fixed in Firefox 68 :)

Type: defect → task
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.