[win8] Show a prompt before relaunching Chrome in Windows 8 mode while packaged apps are running.

Introduces ShellWindowRegistry::IsShellWindowRegisteredInAnyProfile to
help determine if packaged apps are currently running. Intercepts the
IDC_WIN8_METRO_RESTART command and shows a modal dialog box if packaged
apps are running to confirm that the user is OK with their packaged
apps closing. Ensures apps with a relaunch handler are not relaunched
when restarting in metro mode.

BUG=222297
TEST=Launch a packaged app in desktop mode and select 'Relaunch Chrome
in Windows 8 mode' from the hotdog menu. A prompt should appear
confirming that your Chrome apps will close if you continue. If no
packaged apps are running, no prompt should appear.

Review URL: https://chromiumcodereview.appspot.com/12566039

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@192240 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/chrome/browser/ui/simple_message_box.h b/chrome/browser/ui/simple_message_box.h
index 9169066..46cea98f 100644
--- a/chrome/browser/ui/simple_message_box.h
+++ b/chrome/browser/ui/simple_message_box.h
@@ -11,20 +11,20 @@
 namespace chrome {
 
 enum MessageBoxResult {
-  MESSAGE_BOX_RESULT_NO = 0,
-  MESSAGE_BOX_RESULT_YES = 1,
+  MESSAGE_BOX_RESULT_NO = 0,  // User chose NO or CANCEL.
+  MESSAGE_BOX_RESULT_YES = 1, // User chose YES or OK.
 };
 
 enum MessageBoxType {
-  MESSAGE_BOX_TYPE_INFORMATION,
-  MESSAGE_BOX_TYPE_WARNING,
-  MESSAGE_BOX_TYPE_QUESTION,
+  MESSAGE_BOX_TYPE_INFORMATION, // Shows an OK button.
+  MESSAGE_BOX_TYPE_WARNING,     // Shows an OK button.
+  MESSAGE_BOX_TYPE_QUESTION,    // Shows YES and NO buttons.
+  MESSAGE_BOX_TYPE_OK_CANCEL,   // Shows OK and CANCEL buttons (Windows only).
 };
 
 // Shows a dialog box with the given |title| and |message|. If |parent| is
 // non-NULL, the box will be made modal to the |parent|, except on Mac, where it
-// is always app-modal. If |type| is MESSAGE_BOX_TYPE_QUESTION, the box will
-// have YES and NO buttons; otherwise it will have an OK button.
+// is always app-modal.
 //
 // NOTE: In general, you should avoid this since it's usually poor UI.
 // We have a variety of other surfaces such as wrench menu notifications and