Combining cards instead of merging.
When there are several cards with same Chrome ID, we now not simply choose the one with the highest priority and call it a day.

Instead, for every moment of time, we show the card with the highest priority, chosen from ones that should be visible at this moment.

Also, added Closure annotations to enable static type analysis.

BUG=164227

Review URL: https://codereview.chromium.org/107033002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@239389 0039d316-1c4b-4281-b951-d872f2087c98
SVN changes up to revision 239389
Route surface visibility notifications through ContextSupport/GpuControl

This obsoletes the WebGraphicsContext3D::setVisibilityCHROMIUM call and
instead routes surface visibility notifications from the compositor to
the gpu stack through gpu::ContextSupport and from the gpu stack to the
command buffer embedder through gpu::GpuControl.  The implementation of
gpu::ContextSupport (GLES2Implementation) frees up command buffers/etc
that it owns and the implementation of gpu::GpuControl
(CommandBufferProxyImpl) sends the content IPC that drives the memory
manager.

This means migrating some logic from content::WebGraphicsContext3DCommandBufferImpl
down to gpu::GLES2Implementation, such as the free everything when invisible.

BUG=181120
R=piman

Review URL: https://codereview.chromium.org/107663002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@239390 0039d316-1c4b-4281-b951-d872f2087c98
SVN changes up to revision 239390
[Toolbar] Refactor GetIcon in the model to expose a security-level-only version.

R=pkasting@chromium.org

Review URL: https://codereview.chromium.org/109073002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@239391 0039d316-1c4b-4281-b951-d872f2087c98
SVN changes up to revision 239391