chrome: Make unittests opt into real GL NullDraw contexts.

This breaks the dependency on the TestCompositor for all test suites
that are built on ChromeTestSuite. Once it's no longer in use by any test
suite, we can remove it.

Since unit tests and browser tests share the ChromeTestSuite, we need to
decide if we want to initialize GLSurface there at runtime. So we have
each case override a virtual IsBrowserTestSuite() method. When it's true
we know the chrome browser will run and initialize GL itself with GPU
process and all. When it's false, we are running unit tests which need
GL initialized for them as in-process (ie. InitializeOneOffForTests()).

Depends on: https://codereview.chromium.org/176963014/

R=ben@chromium.org, sky
BUG=270918

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@254264 0039d316-1c4b-4281-b951-d872f2087c98
SVN changes up to revision 254264
Fix the crashing caused by app launcher closing while app list item is dragged out of the folder.

BUG=348104
R=xiyuan@chromium.org

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

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