1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 /** @suppress {duplicate} */
6 var remoting = remoting || {};
13 var NEW_WINDOW_MENU_ID_ = 'new-window';
16 * A class that handles application activation.
18 * @param {base.Ipc} ipc
19 * @param {remoting.V2AppLauncher} appLauncher
22 remoting.ActivationHandler = function (ipc, appLauncher) {
23 /** @private {remoting.V2AppLauncher} */
24 this.appLauncher_ = appLauncher;
26 chrome.contextMenus.create({
27 id: NEW_WINDOW_MENU_ID_,
28 contexts: ['launcher'],
29 title: chrome.i18n.getMessage(/*i18n-content*/'NEW_WINDOW')
32 chrome.contextMenus.onClicked.addListener(
33 /** @type {function (Object, Tab=)} */ (this.onContextMenu_.bind(this)));
34 chrome.app.runtime.onLaunched.addListener(this.onLaunched_.bind(this));
35 ipc.register(remoting.ActivationHandler.Ipc.RELAUNCH,
36 appLauncher.restart.bind(appLauncher));
40 remoting.ActivationHandler.Ipc = {
41 RELAUNCH: 'remoting.ActivationHandler.restart'
45 * @param {OnClickData} info
48 remoting.ActivationHandler.prototype.onContextMenu_ = function(info) {
49 if (info.menuItemId == NEW_WINDOW_MENU_ID_) {
50 this.appLauncher_.launch();
55 * Create a new window when the App is launched.
59 remoting.ActivationHandler.prototype.onLaunched_ = function() {
60 this.appLauncher_.launch();