Make the "storage" permission optional to use the "storage.managed" API.

Extensions can read configuration policy from the chrome.storage.managed API.
This requires declaring a "storage.managed_schema" manifest key. This change
automatically inserts the "storage" permission for extensions that declare
that key in the manifest.

BUG=108992

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@240729 0039d316-1c4b-4281-b951-d872f2087c98
SVN changes up to revision 240729
Show the download cancellation confirmation on relaunch to desktop.

The issue is that previously, in response to the menu click
handler, we were attempting to show the Confirmation dialog
(which is asynchronous), and then sending a message to the
metro viewer to activate the desktop.  This notification
would terminate the metro viewer process, so the dialog
would never be displayed.

The fix is to only send the message to the metro viewer
after we determine that it's safe to close (either because
the user clicked yes on the cancel dialog, or because there
were no pending downloads to begin with).

It was necessary for me to remove a DCHECK from the
StartPageService::ProfileDestroyObserver.  The service's
profile member was non NULL and the the one being passed in
as the notification details was null.  I suspect I will need
to fix this, but I spent a while looking over the code and
it was not obvious to me how this shutdown flow works, or
even if this was a valid DCHECK(), so I would like to get
some input from apps people on this point.

BUG=315924
R=ananta@chromium.org, jschuh@chromium.org, sky@chromium.org, tapted@chromium.org

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

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