Chromium Developer Documentation

Google Chrome is built with open source code from Chromium.

Except as otherwise noted, the content of this page is licensed under a Creative Commons Attribution 2.5 license, and examples are licensed under the BSD License.

Mac Detailed Status

This page will be kept up to date with the current focus areas for Chromium for Mac OS X so developers and observers can track its progress.

Goal: Beta

Now that we have continuous builds and a relatively stable dev-channel, our efforts are turning to a stable beta channel. for Google Chrome. The majority of the tracking for this milestone will be in the bug system, and as soon as we determine what it entails, we'll link the appropriate keyword queries here.

Our plan for beta is to have a very polished main-window experience with large, obvious features missing instead of a broad, partially-implemented experience where everything feels shoddy and half done. We feel this is a much better trade-off as it makes it very clear what is done and what is not. As a result, as new features are added or bugs are fixed, anything that doesn't look finished/polished stands out like a sore thumb and gets immediate attention. In the other world, it would blend into the general suck and we'd never tell when something regressed. So before you wonder why we're busy fixing "off-by-one" pixel issues in the OmniBox yet still don't have printing implemented, here's your answer.

Goal: Plug-ins

Plug-ins are drawing in TestShell (but not in Chromium) and we still need to hook up event handling. We are not supporting WebKit plugins (only NPAPI) because they require an NSView to be passed to the plug-in and this won't work at all with the renderer living in a separate process.

Important, but lesser goals:

TestShell

TestShell is a single-process test harness for the Chromium architecture. It serves several purposes which made it a good initial goal for the Mac effort:

  • It exercises the Chromium resource loaders to handle file and network i/o outside of WebCore, a first step to isolating the renderer
  • It exercises WebCore rendering into a bitmap instead of directly to a NSView, a requirement for multi-process display
  • Being single-process, it's significantly easier to debug rendering/layout issues before we get everything fully operational
  • It supports automated testing and unit testing

We are building WebCore using PLATFORM(CHROMIUM), and that works surprisingly well.

We are also building and running the test_shell_tests suite to test the glue layer and exercise the test harness.

Pass All WebKit Layout Tests

Currently, we are able to pass approximately 97% of the all-important WebKit layout tests (slightly less with pixel tests enabled)!! We have known issues with text fields not rendering with the correct width which throws off many of them, and the lack of plug-in support is another large batch of failures. The tests are running on the buildbots to ensure we don't regress anything.

For those interested in helping drive the list of known failures to zero, see src/webkit/tools/layout_tests/test_lists/tests_fixable.txt.



Weekly Status

A way for folks to follow the details from week to week. These will go back 2-3 weeks at most to keep the page from getting too unwieldy. 

Week of June 28 - July 4

  • Landed first cut at using OS X spellchecker as back-end for spelling service (from Paul Wicks, SoC student)
  • Implemented popup blocker and whitelisting.
  • Improved full-screen mode.
  • Fixed all problems redrawing the find bar. Yay!
  • Now using normal window grow box, which fixes a ton of bugs where it wouldn't draw as well as the bug where the zoom button wasn't always enabled. Yay!

Week of June 21 - June 27

  • Fixed issue with about panel hiding when tooltips were shown behind it
  • Implemented prefs for differences in the privacy policy between Mac and Windows (including cookie settings).
  • Basic theme support being developed.
  • Fixed bug where tab titles would stop updating and OmniBox would stop suggesting completions. YAY!
  • Text fields now use Cocoa editing selectors so the right command and control keys work.
  • Work on plumbing the user's actual focus ring color into WebCore across IPC.
  • Hung renderer warning now appears when tabs are unresponsive.
  • Icons on the new tab page no longer have weird garbage in their alpha channel. You may need to delete your "Thumbnails" db in your profile to clear out any cached icons that still have garbage.
  • Tabs now show favicons instead of the globe, where available.

Week of June 14 - June 20

  • Tooltips now show in the content area more reliably, though they're not on a timer.
  • Cmd-shift-N now creates a new incognito window
  • Cmd-shift-T restores the last closed tab/window
  • Prefs window closes when you press the escape key
  • Prefs window cleaned up visually, but still retains the 3-tab appearance.
  • Bookmark menu should now always populate
  • URLs copied from omnibox are no longer styled text
  • Fix for crash when horizontally scrolling frames
  • Hung-renderer warning written, working its way through review
  • First cut at download shelf landed, you can now tell you downloaded something!
  • Page-info window landed.