If you don't touch code in src/chrome you can probably ignore this.
Aura vs. Ash
Aura is evolving to encompass more than just the window manager/shell environment work for ChromeOS. I'm going to attempt to spell out some of the differences here so that it's clear what defines to use in code and to help everyone get a better understanding.
Aura is the hardware accelerated UI framework built on CC.[1]
Ash (the Aura SHell[2]) is the ChromeOS window manager, desktop environment etc. Ash depends on Aura and Views. Ash is built with use_ash=1 in your GYP_DEFINES, which #defines USE_ASH. This also implies USE_AURA.
At the time of writing, it's not really possible to have a build of Chrome using Aura without Ash, since there's no one to set up the container that hosts the environment. This is changing. Elliot is working on self-hosting Aura in Views. What this means is there'll be a Chrome build on Linux that can be enabled by specifying use_aura=1 in your GYP_DEFINES, which #defines USE_AURA (not USE_ASH).
Are you confused yet?
Think of it this way. Aura is the accelerated window framework. We built a window manager (ash) on top of it for ChromeOS. We are conducting initial explorations to determine how we can use this underlying framework for UI in non-ChromeOS. If we can get it to work, it means we'll be able to do some of the cool things we're able to do on ChromeOS on other platforms.
What does this mean for the developer?
Not much, except that many of the places we use #if defined(USE_AURA) in src/chrome were wrong, and Elliot's had to fix them. If you're doing something ChromeOS-specific, it's probable that unless it reflects an Aura framework change, it needs to be #if defined(USE_ASH) instead.
Any other dependency things I should be aware of?
James Cook produced a nice diagram here showing the basic dependencies:
But also note that Ash is a pretty high level thing (with user features etc) and so src/content is also not allowed to know about it, though src/content is allowed to know about Aura.
-Ben
[1] We actually use a small shim API between us and CC, which lives in src/ui/gfx/compositor right now. ui::Layer wraps a WebLayer.
[2] Yes I know there's a Unix shell called ash. Sorry. It was either this, or AuraProxyStubImplHostDelegateFactoryStubProxyViewImpl.