惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
Threatpost
博客园 - 叶小钗
T
The Blog of Author Tim Ferriss
Recent Announcements
Recent Announcements
D
DataBreaches.Net
The Cloudflare Blog
阮一峰的网络日志
阮一峰的网络日志
罗磊的独立博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
N
Netflix TechBlog - Medium
Microsoft Azure Blog
Microsoft Azure Blog
Microsoft Security Blog
Microsoft Security Blog
B
Blog
U
Unit 42
有赞技术团队
有赞技术团队
博客园 - 聂微东
GbyAI
GbyAI
宝玉的分享
宝玉的分享
F
Full Disclosure
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
MyScale Blog
MyScale Blog
Jina AI
Jina AI
Martin Fowler
Martin Fowler
IT之家
IT之家
酷 壳 – CoolShell
酷 壳 – CoolShell
D
Docker
P
Proofpoint News Feed
A
About on SuperTechFans
I
InfoQ
博客园 - 【当耐特】
C
Check Point Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
P
Privacy & Cybersecurity Law Blog
T
Threat Research - Cisco Blogs
Y
Y Combinator Blog
Project Zero
Project Zero
WordPress大学
WordPress大学
小众软件
小众软件
AWS News Blog
AWS News Blog
博客园 - 司徒正美
T
The Exploit Database - CXSecurity.com
L
LINUX DO - 热门话题
I
Intezer
Engineering at Meta
Engineering at Meta
C
CXSECURITY Database RSS Feed - CXSecurity.com
J
Java Code Geeks
T
Tenable Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Last Week in AI
Last Week in AI
C
CERT Recently Published Vulnerability Notes

David Baron's Weblog

Software engineering, responsibility, and ownership Software engineering, responsibility, and ownership David Baron's weblog: Security and Inequality Running animations on the compositor thread David Baron's weblog: Tying ecosystems through browsers David Baron's weblog: Payments on the Web Thoughts on migrating to a secure Web David Baron's weblog: The need for government David Baron's weblog: Priority of constituencies How browser developers should seek feedback from Web developers A possible approach to shorter release cycles David Baron's weblog: Fifteen years Why debug builds (and assertions) are important Ten years of the Mozilla Foundation Open licensing at the W3C Why adding compositing and blending to CSS is harder than it looks How you can help with removing -moz- prefixes Moving bug history out of the primary display of a bug report Beware of locale-specific behavior in the C library Eating dogfood and shipping software Specification style and the future of the Web The bug system I wish I had CSS border-image changes and unprefixing Improving font size readability on Firefox for Android David Baron's weblog: CSS Animations, part 2 Hue-preserving color inversion with SVG filters Changes to handling of @-moz-keyframes David Baron's weblog: window.matchMedia() David Baron's weblog: CSS Animations What does a blur radius mean? Crash analysis in the future David Baron's weblog: calc() David Baron's weblog: colorDepth David Baron's weblog: Hidden complexity in specifications The most important field in a bug report: the summary WOFF font format submitted to W3C David Baron's weblog: :-moz-any() selector grouping setTimeout with a shorter delay Faster repainting in SVG foreignObject David Baron's weblog: Distributed Extensibility David Baron's weblog: Broadening crash analysis Correlating crashes with binary extensions or plugins David Baron's weblog: ex-HTML Downloadable font formats for the Web Web Accessibility as a Political Movement David Baron's weblog: CSS priorities David Baron's weblog: Bug priorities David Baron's weblog: Semi-vacation Some new CSS features in Firefox 3 David Baron's weblog: New selectors David Baron's weblog: The age of bugs Seeking a good Linux distribution David Baron's weblog: Teaching to the test David Baron's weblog: March 2008 David Baron's weblog: February 2008 David Baron's weblog: January 2008 David Baron's weblog: October 2007 David Baron's weblog: September 2007 David Baron's weblog: August 2007 David Baron's weblog: June 2007 David Baron's weblog: April 2007 David Baron's weblog: March 2007 David Baron's weblog: January 2007 David Baron's weblog: August 2006 David Baron's weblog: July 2006 David Baron's weblog: May 2006 David Baron's weblog: February 2006 David Baron's weblog: January 2006 David Baron's weblog: December 2005 David Baron's weblog: October 2005 David Baron's weblog: September 2005 David Baron's weblog: June 2005 David Baron's weblog: May 2005 David Baron's weblog: April 2005 David Baron's weblog: March 2005 David Baron's weblog: February 2005 David Baron's weblog: October 2004 David Baron's weblog: September 2004 David Baron's weblog: August 2004 David Baron's weblog: June 2004 David Baron's weblog: May 2004 David Baron's weblog: April 2004 David Baron's weblog: March 2004 David Baron's weblog: February 2004 David Baron's weblog: January 2004 David Baron's weblog: November 2003 David Baron's weblog: October 2003 David Baron's weblog: September 2003 David Baron's weblog: August 2003 David Baron's weblog: July 2003 David Baron's weblog: June 2003 David Baron's weblog: May 2003 David Baron's weblog: April 2003 David Baron's weblog: March 2003 David Baron's weblog: February 2003 David Baron's weblog: January 2003 David Baron's weblog: December 2002 David Baron's weblog: November 2002 David Baron's weblog: September 2002
David Baron's weblog: September 2006
David Baron · 2006-09-22 · via David Baron's Weblog

New Theme, Old Problem (22:40 -0700)

The new Firefox theme landed on the trunk today, so I suppose I'll actually have to start using it soon. I don't really care one way or the other about most of the changes, but there's one set of changes that I really don't like: the changes to the tab strip, the area between the toolbars and the browser window that shows tabs reflecting the state of tabbed browsing.

In previous releases, the tab strip used native-looking tabs on Windows and GNOME, which have an appropriate native tab concept. (It did this using values of the -moz-appearance property.) I've long seen the ability to build multi-platform user interface that looks and acts native across those platforms as one of Firefox's strengths, and one of XUL's strengths, and I think improving the native-ness of the user interface is an important goal. Native user interface means Firefox fits in with the appearance and conventions of other applications, making both Firefox and those other applications easier to use. Native-looking user interface also means that using multiple applications at the same time is visually appealing rather than jarring. I suspect those were some of the reasons that making the user-interface as native as possible was one of the original goals of the project now known as Firefox.

[Screenshot of tabs in Firefox and GNOME Terminal, with the old Firefox theme]

Compare the screenshots of the old theme (above) and the new theme (below). In the screenshot below, there is a significant visual dissonance created by the tab strip. The gradient on the active tab makes the active tab appear shinier than anything else on the screen, while the dull borders of the tabs make the tabs appear recessed relative to everything else, especially because of the oddball dark color filling the space around the edges of the tabs (which is especially disconcerting in the empty area to the right of the rightmost tab). These aren't inherent problems with the design; they're ways that the tabstrip doesn't fit in with my GNOME theme (which isn't too far from Fedora's default). I wouldn't see these if the tabs used a native appearance, and people for whom native appearance is significantly different wouldn't see the problems that would be caused if the tabs looked like my theme for them.

[Screenshot of tabs in Firefox and GNOME Terminal, with the new Firefox theme]

I'd have complained more vocally about this earlier, except that from the moment I knew about the problem, I thought any significant design changes to the new theme would have added a significant delay to the Firefox 2 release date. This was because the new theme landed way after the feature freeze for the release, despite being a major feature. I suggested at weekly status meeting a number of weeks before it landed that it was too late, and I still think it was. Its late landing dragged a large group of developers away from what they normally work on to fixing theme bugs and probably significantly delayed the completion of Firefox 2. And this delay, and the all-hands-on-deck mentality that was dragging developers away from things that I care about more, made me hesitant to criticize it, for fear that response to my criticism might lead to even more delay. But the more I think about it, the more I come to think that the delay would be worthwhile.

One of the reasons we shouldn't take feature landings this late is that they don't have a chance to go through the normal process of feedback (including feedback after time for consideration) and refinement that is an important part of our development process. Features rushed in at the last minute are likely to do significant damage to some of the many measures of quality, even if they do improve others.