#include "chrome/browser/chromeos/login/user_manager.h"
#include "chrome/browser/extensions/component_loader.h"
#include "chrome/browser/extensions/extension_service.h"
+#include "chrome/browser/lifetime/application_lifetime.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/extensions/application_launch.h"
#include "chrome/common/chrome_switches.h"
#include "chrome/common/extensions/extension_constants.h"
+#include "chromeos/network/network_handler.h"
+#include "chromeos/network/network_state_handler.h"
+#include "chromeos/network/shill_property_util.h"
#include "extensions/browser/extension_system.h"
#include "extensions/common/extension.h"
#include "grit/browser_resources.h"
namespace chromeos {
const char DemoAppLauncher::kDemoUserName[] = "demouser@demo.app.local";
+const char DemoAppLauncher::kDemoAppId[] = "klimoghijjogocdbaikffefjfcfheiel";
const base::FilePath::CharType kDefaultDemoAppPath[] =
FILE_PATH_LITERAL("/usr/share/chromeos-assets/demo_app");
const extensions::Extension* extension =
extension_service->GetExtensionById(extension_id, true);
-
- CommandLine* command_line = CommandLine::ForCurrentProcess();
- command_line->AppendSwitch(switches::kForceAppMode);
- command_line->AppendSwitchASCII(switches::kAppId, extension_id);
+ if (!extension) {
+ // We've already done too much setup at this point to just return out, it
+ // is safer to just restart.
+ chrome::AttemptUserExit();
+ return;
+ }
+
+ // Disable network before launching the app.
+ LOG(WARNING) << "Disabling network before launching demo app..";
+ NetworkStateHandler* handler = NetworkHandler::Get()->network_state_handler();
+ handler->SetTechnologyEnabled(NetworkTypePattern::NonVirtual(),
+ false,
+ chromeos::network_handler::ErrorCallback());
OpenApplication(AppLaunchParams(
profile, extension, extensions::LAUNCH_CONTAINER_WINDOW, NEW_WINDOW));