| Index: chrome/browser/ui/ash/extension_utils.cc
|
| diff --git a/chrome/browser/ui/ash/extension_utils.cc b/chrome/browser/ui/ash/extension_utils.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..b4823a30d51c5cc98ca802d960c32ee325a7ae81
|
| --- /dev/null
|
| +++ b/chrome/browser/ui/ash/extension_utils.cc
|
| @@ -0,0 +1,46 @@
|
| +// Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#include "chrome/browser/ui/ash/extension_utils.h"
|
| +
|
| +#include "chrome/browser/event_disposition.h"
|
| +#include "chrome/browser/extensions/extension_prefs.h"
|
| +#include "chrome/browser/extensions/extension_service.h"
|
| +#include "chrome/browser/profiles/profile.h"
|
| +#include "chrome/browser/ui/extensions/application_launch.h"
|
| +#include "chrome/common/extensions/extension.h"
|
| +#include "googleurl/src/gurl.h"
|
| +
|
| +namespace extension_utils {
|
| +
|
| +// Opens an extension. |event_flags| holds the flags of the event
|
| +// which invokes this extension.
|
| +void OpenExtension(Profile* profile,
|
| + const extensions::Extension* extension,
|
| + int event_flags) {
|
| + DCHECK(profile);
|
| + DCHECK(extension);
|
| +
|
| + WindowOpenDisposition disposition =
|
| + chrome::DispositionFromEventFlags(event_flags);
|
| + extension_misc::LaunchContainer container;
|
| +
|
| + if (disposition == NEW_FOREGROUND_TAB || disposition == NEW_BACKGROUND_TAB) {
|
| + container = extension_misc::LAUNCH_TAB;
|
| + } else if (disposition == NEW_WINDOW) {
|
| + container = extension_misc::LAUNCH_WINDOW;
|
| + } else {
|
| + // Look at preference to find the right launch container. If no preference
|
| + // is set, launch as a regular tab.
|
| + container =
|
| + profile->GetExtensionService()->extension_prefs()->GetLaunchContainer(
|
| + extension, extensions::ExtensionPrefs::LAUNCH_DEFAULT);
|
| + disposition = NEW_FOREGROUND_TAB;
|
| + }
|
| +
|
| + application_launch::OpenApplication(application_launch::LaunchParams(
|
| + profile, extension, container, disposition));
|
| +}
|
| +
|
| +} // namespace extension_utils
|
|
|