OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 cr.define('ntp', function() { | 5 cr.define('ntp', function() { |
6 'use strict'; | 6 'use strict'; |
7 | 7 |
8 var APP_LAUNCH = { | 8 var APP_LAUNCH = { |
9 // The histogram buckets (keep in sync with extension_constants.h). | 9 // The histogram buckets (keep in sync with extension_constants.h). |
10 NTP_APPS_MAXIMIZED: 0, | 10 NTP_APPS_MAXIMIZED: 0, |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
42 initialize: function() { | 42 initialize: function() { |
43 var menu = new cr.ui.Menu; | 43 var menu = new cr.ui.Menu; |
44 cr.ui.decorate(menu, cr.ui.Menu); | 44 cr.ui.decorate(menu, cr.ui.Menu); |
45 menu.classList.add('app-context-menu'); | 45 menu.classList.add('app-context-menu'); |
46 this.menu = menu; | 46 this.menu = menu; |
47 | 47 |
48 this.launch_ = this.appendMenuItem_(); | 48 this.launch_ = this.appendMenuItem_(); |
49 this.launch_.addEventListener('activate', this.onLaunch_.bind(this)); | 49 this.launch_.addEventListener('activate', this.onLaunch_.bind(this)); |
50 | 50 |
51 menu.appendChild(cr.ui.MenuItem.createSeparator()); | 51 menu.appendChild(cr.ui.MenuItem.createSeparator()); |
52 if (loadTimeData.getBoolean('enableStreamlinedHostedApps')) | 52 if (loadTimeData.getBoolean('enableNewBookmarkApps')) |
53 this.launchRegularTab_ = this.appendMenuItem_('applaunchtypetab'); | 53 this.launchRegularTab_ = this.appendMenuItem_('applaunchtypetab'); |
54 else | 54 else |
55 this.launchRegularTab_ = this.appendMenuItem_('applaunchtyperegular'); | 55 this.launchRegularTab_ = this.appendMenuItem_('applaunchtyperegular'); |
56 this.launchPinnedTab_ = this.appendMenuItem_('applaunchtypepinned'); | 56 this.launchPinnedTab_ = this.appendMenuItem_('applaunchtypepinned'); |
57 if (loadTimeData.getBoolean('enableStreamlinedHostedApps') || !cr.isMac) | 57 if (loadTimeData.getBoolean('enableNewBookmarkApps') || !cr.isMac) |
58 this.launchNewWindow_ = this.appendMenuItem_('applaunchtypewindow'); | 58 this.launchNewWindow_ = this.appendMenuItem_('applaunchtypewindow'); |
59 this.launchFullscreen_ = this.appendMenuItem_('applaunchtypefullscreen'); | 59 this.launchFullscreen_ = this.appendMenuItem_('applaunchtypefullscreen'); |
60 | 60 |
61 var self = this; | 61 var self = this; |
62 this.forAllLaunchTypes_(function(launchTypeButton, id) { | 62 this.forAllLaunchTypes_(function(launchTypeButton, id) { |
63 launchTypeButton.addEventListener('activate', | 63 launchTypeButton.addEventListener('activate', |
64 self.onLaunchTypeChanged_.bind(self)); | 64 self.onLaunchTypeChanged_.bind(self)); |
65 }); | 65 }); |
66 | 66 |
67 this.launchTypeMenuSeparator_ = cr.ui.MenuItem.createSeparator(); | 67 this.launchTypeMenuSeparator_ = cr.ui.MenuItem.createSeparator(); |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
128 */ | 128 */ |
129 setupForApp: function(app) { | 129 setupForApp: function(app) { |
130 this.app_ = app; | 130 this.app_ = app; |
131 | 131 |
132 this.launch_.textContent = app.appData.title; | 132 this.launch_.textContent = app.appData.title; |
133 | 133 |
134 var launchTypeRegularTab = this.launchRegularTab_; | 134 var launchTypeRegularTab = this.launchRegularTab_; |
135 this.forAllLaunchTypes_(function(launchTypeButton, id) { | 135 this.forAllLaunchTypes_(function(launchTypeButton, id) { |
136 launchTypeButton.disabled = false; | 136 launchTypeButton.disabled = false; |
137 launchTypeButton.checked = app.appData.launch_type == id; | 137 launchTypeButton.checked = app.appData.launch_type == id; |
138 // Streamlined hosted apps should only show the "Open as tab" button. | 138 // If bookmark apps are enabled, only show the "Open as tab" button. |
139 launchTypeButton.hidden = app.appData.packagedApp || | 139 launchTypeButton.hidden = app.appData.packagedApp || |
140 (loadTimeData.getBoolean('enableStreamlinedHostedApps') && | 140 (loadTimeData.getBoolean('enableNewBookmarkApps') && |
141 launchTypeButton != launchTypeRegularTab); | 141 launchTypeButton != launchTypeRegularTab); |
142 }); | 142 }); |
143 | 143 |
144 this.launchTypeMenuSeparator_.hidden = app.appData.packagedApp; | 144 this.launchTypeMenuSeparator_.hidden = app.appData.packagedApp; |
145 | 145 |
146 this.options_.disabled = !app.appData.optionsUrl || !app.appData.enabled; | 146 this.options_.disabled = !app.appData.optionsUrl || !app.appData.enabled; |
147 this.details_.disabled = !app.appData.detailsUrl; | 147 this.details_.disabled = !app.appData.detailsUrl; |
148 this.uninstall_.disabled = !app.appData.mayDisable; | 148 this.uninstall_.disabled = !app.appData.mayDisable; |
149 | 149 |
150 if (cr.isMac) { | 150 if (cr.isMac) { |
(...skipping 10 matching lines...) Expand all Loading... |
161 * @param {Event} e The activation event. | 161 * @param {Event} e The activation event. |
162 * @private | 162 * @private |
163 */ | 163 */ |
164 onLaunch_: function(e) { | 164 onLaunch_: function(e) { |
165 chrome.send('launchApp', [this.app_.appId, APP_LAUNCH.NTP_APPS_MENU]); | 165 chrome.send('launchApp', [this.app_.appId, APP_LAUNCH.NTP_APPS_MENU]); |
166 }, | 166 }, |
167 onLaunchTypeChanged_: function(e) { | 167 onLaunchTypeChanged_: function(e) { |
168 var pressed = e.currentTarget; | 168 var pressed = e.currentTarget; |
169 var app = this.app_; | 169 var app = this.app_; |
170 var targetLaunchType = pressed; | 170 var targetLaunchType = pressed; |
171 // Streamlined hosted apps can only toggle between open as window and open | 171 // When bookmark apps are enabled, hosted apps can only toggle between |
172 // as tab. | 172 // open as window and open as tab. |
173 if (loadTimeData.getBoolean('enableStreamlinedHostedApps')) { | 173 if (loadTimeData.getBoolean('enableNewBookmarkApps')) { |
174 targetLaunchType = this.launchRegularTab_.checked ? | 174 targetLaunchType = this.launchRegularTab_.checked ? |
175 this.launchNewWindow_ : this.launchRegularTab_; | 175 this.launchNewWindow_ : this.launchRegularTab_; |
176 } | 176 } |
177 this.forAllLaunchTypes_(function(launchTypeButton, id) { | 177 this.forAllLaunchTypes_(function(launchTypeButton, id) { |
178 if (launchTypeButton == targetLaunchType) { | 178 if (launchTypeButton == targetLaunchType) { |
179 chrome.send('setLaunchType', [app.appId, id]); | 179 chrome.send('setLaunchType', [app.appId, id]); |
180 // Manually update the launch type. We will only get | 180 // Manually update the launch type. We will only get |
181 // appsPrefChangeCallback calls after changes to other NTP instances. | 181 // appsPrefChangeCallback calls after changes to other NTP instances. |
182 app.appData.launch_type = id; | 182 app.appData.launch_type = id; |
183 } | 183 } |
(...skipping 586 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
770 function launchAppAfterEnable(appId) { | 770 function launchAppAfterEnable(appId) { |
771 chrome.send('launchApp', [appId, APP_LAUNCH.NTP_APP_RE_ENABLE]); | 771 chrome.send('launchApp', [appId, APP_LAUNCH.NTP_APP_RE_ENABLE]); |
772 } | 772 } |
773 | 773 |
774 return { | 774 return { |
775 APP_LAUNCH: APP_LAUNCH, | 775 APP_LAUNCH: APP_LAUNCH, |
776 AppsPage: AppsPage, | 776 AppsPage: AppsPage, |
777 launchAppAfterEnable: launchAppAfterEnable, | 777 launchAppAfterEnable: launchAppAfterEnable, |
778 }; | 778 }; |
779 }); | 779 }); |
OLD | NEW |