I noticed that while constructing a views::Label it is calling the virtual GetWidget() function during construction. I am not aware of any negative consequences of this but AFAIK this pattern is not desired.
I believe the saving grace here is that View::GetNativeTheme() falls back to returning other NativeTheme instances when GetWidget() returns null.
The call path is:
View::GetWidget()
View::GetNativeTheme()
Label::Init(const base::string16&, const gfx::FontList&)
Label::Label(const base::string16&, const gfx::FontList&)
Comment 1 by robliao@chromium.org
, Aug 22