Open Bug 566226 Opened 14 years ago Updated 2 years ago

Add pref to disable native themes in Web content

Categories

(Core :: Widget, defect)

defect

Tracking

()

People

(Reporter: roc, Assigned: karlt)

References

(Blocks 1 open bug)

Details

Currently GTK has its own specific pref to disable native themes globally (see gDisableNativeTheme). We should extend this so that a) we can disable native themes in Web content but leave them enabled for chrome and b) this pref works on all platforms. This will help us measure the performance impact of native theming and give distributors more options.

I'd add a new boolean pref "mozilla.widget.disable-native-theme-content" to disable themes just in content. Then I'd modify nsPresContext::GetTheme to have two cached themes, one for chrome and one for content, and choose the right theme based on IsChrome(). I'd also modify nsBox to get the theme from the prescontext:
http://mxr.mozilla.org/mozilla-central/source/layout/xul/base/src/nsBox.cpp#221

Karl, maybe you could do this? It should be quick.
Noting that the proposed implementation here differs from that suggested in bug 563886 comment 3.
Blocks: 563886
This probably makes more sense, since it means less duplicated code between widget implementations.  (Do we want to move the existing pref into nsPresContext at the same time, rather than have it implemented separately in each widget implementation?)
Having the two prefs together in nsPresContext looks like it would make sense.
Assignee: nobody → karlt
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.