The current behavior is that if there is no user pref, it is set to true or
false depending on the value of privacy.donottrackheader.enabled, but
completely ignoring the global default.
This patch changes the behavior such that:
- browser.newtabpage.enhanced's default value is set as a global default
- it is also set as sticky, so that even when the same value as the default is
set, prefHasUserValue is true.
- The introduction is not shown when the default for browser.newtabpage.enhanced
is false. It is however shown when the pref is flipped for the first time.
We need to hide <xul:panel>s by default for performance reasons. The RefreshDriver calls gtk/nsWindow::GetClientOffset() in a hot loop and causes a lot of communication between us and the XServer. We and up poll()ing and waiting for XServer responses in RefreshDriver::Tick() which regresses performance on Linux by 50-100%.