chromium/chrome/browser/ui/ash/default_pinned_apps/default_pinned_apps.cc

// Copyright 2021 The Chromium Authors
// 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/default_pinned_apps/default_pinned_apps.h"

#include "ash/constants/ash_switches.h"
#include "chrome/browser/ash/app_list/arc/arc_app_utils.h"
#include "chrome/browser/ash/file_manager/app_id.h"
#include "chrome/browser/scalable_iph/scalable_iph_factory.h"
#include "chrome/browser/web_applications/web_app_id_constants.h"
#include "chrome/common/extensions/extension_constants.h"
#include "chromeos/constants/chromeos_features.h"
#include "content/public/browser/browser_context.h"
#include "extensions/common/constants.h"

namespace {

bool ShouldAddHelpApp(content::BrowserContext* browser_context) {
  scalable_iph::ScalableIph* scalable_iph =
      ScalableIphFactory::GetForBrowserContext(browser_context);
  return scalable_iph && scalable_iph->ShouldPinHelpAppToShelf();
}

std::vector<StaticAppId> GetDefaultPinnedApps(
    content::BrowserContext* browser_context) {
  std::vector<StaticAppId> app_ids{
      web_app::kGmailAppId,

      web_app::kGoogleCalendarAppId,

      file_manager::kFileManagerSwaAppId,

      web_app::kMessagesAppId,

      web_app::kGoogleMeetAppId,

      arc::kPlayStoreAppId,

      web_app::kYoutubeAppId,

      arc::kGooglePhotosAppId,
  };

#if BUILDFLAG(GOOGLE_CHROME_BRANDING)
  if (chromeos::features::IsContainerAppPreinstallEnabled()) {
    app_ids.insert(app_ids.begin(), web_app::kContainerAppId);
  }
#endif  // BUILDFLAG(GOOGLE_CHROME_BRANDING)

  if (chromeos::features::IsCloudGamingDeviceEnabled()) {
    app_ids.push_back(web_app::kNvidiaGeForceNowAppId);
  }

  if (ShouldAddHelpApp(browser_context)) {
    app_ids.push_back(web_app::kHelpAppId);
  }

  return app_ids;
}

std::vector<StaticAppId> GetTabletFormFactorDefaultPinnedApps(
    content::BrowserContext* browser_context) {
  std::vector<StaticAppId> app_ids{
      arc::kGmailAppId,

      arc::kGoogleCalendarAppId,

      arc::kPlayStoreAppId,

      arc::kYoutubeAppId,

      arc::kGooglePhotosAppId,
  };

  if (ShouldAddHelpApp(browser_context)) {
    app_ids.push_back(web_app::kHelpAppId);
  }

  return app_ids;
}

}  // namespace

std::vector<StaticAppId> GetDefaultPinnedAppsForFormFactor(
    content::BrowserContext* browser_context) {
  if (ash::switches::IsTabletFormFactor()) {
    return GetTabletFormFactorDefaultPinnedApps(browser_context);
  }

  return GetDefaultPinnedApps(browser_context);
}