I have been building a new directory structure within src/chrome/browser/. The idea is to get files more organized and the codebase more modular.
One effect of this is the creation of a "ui" directory within browser/.
Isn't the entire browser/ directory about UI? Well not really. The directories under src/chrome are supposed to map 1:1 to a particular process in Chrome's process model, that's why we have browser, renderer, plugin, etc. src/chrome/common exists to hold code that is supposed to be used across multiple processes. src/chrome/app is special exe bootstrap stuff.
There is a lot of code in browser/ that is not related to the Chrome browser UI. So I began to move that which is into the ui subdirectory. Note that there can be code in src/chrome/browser/ui that isn't a "view" in the MVC sense - it can also include the models and controllers for UI features, such as the Browser object, the TabStripModel, etc.
Some code I am leaving out of ui/ for now because it seems potentially lower level, like Profile.
As you create new files that have UI, place them in chrome/browser/ui if they are cross platform (in a subdir if there are or will be a lot of related files), or in one of the frontend specific sub-subdirs (cocoa, gtk, views).
In the longer term (not required for this stage) it'd be nice if the hierarchy within browser/ui was reflected down into the FE subdirs (e.g. browser/ui/tab_strip and browser/ui/views/tab_strip).
-Ben