| Index: win8/delegate_execute/command_execute_impl.cc
|
| diff --git a/win8/delegate_execute/command_execute_impl.cc b/win8/delegate_execute/command_execute_impl.cc
|
| index 2711336bff109e499c3a4d6c90b1ab677affcc05..236f86271560ff1c1cf3da0e2a8ada3a628aed65 100644
|
| --- a/win8/delegate_execute/command_execute_impl.cc
|
| +++ b/win8/delegate_execute/command_execute_impl.cc
|
| @@ -32,6 +32,7 @@
|
| #include "ui/gfx/win/dpi.h"
|
| #include "win8/delegate_execute/chrome_util.h"
|
| #include "win8/delegate_execute/delegate_execute_util.h"
|
| +#include "win8/viewer/metro_viewer_constants.h"
|
|
|
| namespace {
|
| // Helper function to retrieve the url from IShellItem interface passed in.
|
| @@ -218,8 +219,18 @@
|
| return E_FAIL;
|
| }
|
|
|
| - // TODO(scottmg): Can all go eventually https://crbug.com/558054.
|
| - *pahe = AHE_DESKTOP;
|
| + EC_HOST_UI_MODE mode = GetLaunchMode();
|
| + *pahe = (mode == ECHUIM_DESKTOP) ? AHE_DESKTOP : AHE_IMMERSIVE;
|
| +
|
| + // If we're going to return AHE_IMMERSIVE, then both the browser process and
|
| + // the metro viewer need to launch and connect before the user can start
|
| + // browsing. However we must not launch the metro viewer until we get a
|
| + // call to CommandExecuteImpl::Execute(). If we wait until then to launch
|
| + // the browser process as well, it will appear laggy while they connect to
|
| + // each other, so we pre-launch the browser process now.
|
| + if (*pahe == AHE_IMMERSIVE && verb_ != win8::kMetroViewerConnectVerb) {
|
| + LaunchChromeBrowserProcess();
|
| + }
|
| return S_OK;
|
| }
|
|
|
|
|