Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(232)

Side by Side Diff: chrome/browser/web_applications/web_app.cc

Issue 1533273002: Mac: Don't create shortcuts for hosted apps when they are installed (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Simpler Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | chrome/browser/web_applications/web_app_mac.mm » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 #include "chrome/browser/web_applications/web_app.h" 5 #include "chrome/browser/web_applications/web_app.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 292 matching lines...) Expand 10 before | Expand all | Expand 10 after
303 bool ShouldCreateShortcutFor(web_app::ShortcutCreationReason reason, 303 bool ShouldCreateShortcutFor(web_app::ShortcutCreationReason reason,
304 Profile* profile, 304 Profile* profile,
305 const extensions::Extension* extension) { 305 const extensions::Extension* extension) {
306 // Shortcuts should never be created for component apps, or for apps that 306 // Shortcuts should never be created for component apps, or for apps that
307 // cannot be shown in the launcher. 307 // cannot be shown in the launcher.
308 if (extension->location() == extensions::Manifest::COMPONENT || 308 if (extension->location() == extensions::Manifest::COMPONENT ||
309 !extensions::ui_util::CanDisplayInAppLauncher(extension, profile)) { 309 !extensions::ui_util::CanDisplayInAppLauncher(extension, profile)) {
310 return false; 310 return false;
311 } 311 }
312 312
313 // Otherwise, always create shortcuts for v2 packaged apps. 313 // Always create shortcuts for v2 packaged apps.
314 if (extension->is_platform_app()) 314 if (extension->is_platform_app())
315 return true; 315 return true;
316 316
317 #if defined(OS_MACOSX) 317 #if defined(OS_MACOSX)
318 if (!base::CommandLine::ForCurrentProcess()->HasSwitch( 318 // A bookmark app installs itself as an extension, then automatically triggers
319 switches::kDisableHostedAppShimCreation)) { 319 // a shortcut request with SHORTCUT_CREATION_AUTOMATED. Allow this flow, but
320 return extension->is_hosted_app(); 320 // do not automatically create shortcuts for default-installed extensions,
321 // until it is explicitly requested by the user.
322 if (extension->was_installed_by_default() &&
323 reason == SHORTCUT_CREATION_AUTOMATED)
324 return false;
325
326 if (extension->from_bookmark())
327 return true;
328
329 // Otherwise, don't create shortcuts for automated codepaths.
330 if (reason == SHORTCUT_CREATION_AUTOMATED)
331 return false;
332
333 if (extension->is_hosted_app()) {
334 return !base::CommandLine::ForCurrentProcess()->HasSwitch(
335 switches::kDisableHostedAppShimCreation);
321 } 336 }
322 337
338 // Only reached for "legacy" packaged apps. Default to false on Mac.
323 return false; 339 return false;
324 #else 340 #else
325 // For other platforms, allow shortcut creation if it was explicitly 341 // For other platforms, allow shortcut creation if it was explicitly
326 // requested by the user (i.e. is not automatic). 342 // requested by the user (i.e. is not automatic).
327 return reason == SHORTCUT_CREATION_BY_USER; 343 return reason == SHORTCUT_CREATION_BY_USER;
328 #endif 344 #endif
329 } 345 }
330 346
331 base::FilePath GetWebAppDataDirectory(const base::FilePath& profile_path, 347 base::FilePath GetWebAppDataDirectory(const base::FilePath& profile_path,
332 const std::string& extension_id, 348 const std::string& extension_id,
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after
500 516
501 #if defined(OS_LINUX) 517 #if defined(OS_LINUX)
502 std::string GetWMClassFromAppName(std::string app_name) { 518 std::string GetWMClassFromAppName(std::string app_name) {
503 base::i18n::ReplaceIllegalCharactersInPath(&app_name, '_'); 519 base::i18n::ReplaceIllegalCharactersInPath(&app_name, '_');
504 base::TrimString(app_name, "_", &app_name); 520 base::TrimString(app_name, "_", &app_name);
505 return app_name; 521 return app_name;
506 } 522 }
507 #endif 523 #endif
508 524
509 } // namespace web_app 525 } // namespace web_app
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/web_applications/web_app_mac.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698