1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
|
// Copyright 2025 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/web_applications/preinstalled_web_apps/notebook_lm.h"
#include <memory>
#include "ash/constants/web_app_id_constants.h"
#include "chrome/browser/apps/user_type_filter.h"
#include "chrome/browser/web_applications/external_install_options.h"
#include "chrome/browser/web_applications/mojom/user_display_mode.mojom.h"
#include "chrome/browser/web_applications/preinstalled_web_apps/preinstalled_web_app_definition_utils.h"
#include "chrome/browser/web_applications/web_app_constants.h"
#include "chrome/browser/web_applications/web_app_helpers.h"
#include "chrome/grit/preinstalled_web_apps_resources.h"
#include "chromeos/constants/chromeos_features.h"
#include "url/gurl.h"
namespace web_app {
ExternalInstallOptions GetConfigForNotebookLm() {
static constexpr char kInstallUrl[] = "https://notebooklm.google.com/install";
static constexpr char kStartUrl[] = "https://notebooklm.google.com/";
static constexpr char kScopeUrl[] = "https://notebooklm.google.com/";
static constexpr char kManifestId[] = "";
ExternalInstallOptions options(
/*install_url=*/GURL(kInstallUrl),
/*user_display_mode=*/mojom::UserDisplayMode::kStandalone,
/*install_source=*/ExternalInstallSource::kExternalDefault);
options.user_type_allowlist = {apps::kUserTypeUnmanaged};
options.add_to_applications_menu = true;
options.add_to_search = true;
options.expected_app_id = ash::kNotebookLmAppId;
options.gate_on_feature = chromeos::features::kNotebookLmAppPreinstall.name;
options.is_preferred_app_for_supported_links = true;
options.only_use_app_info_factory = true;
options.app_info_factory = base::BindRepeating([]() {
webapps::ManifestId manifest_id =
GenerateManifestId(kManifestId, GURL(kStartUrl));
auto info =
std::make_unique<WebAppInstallInfo>(manifest_id, GURL(kStartUrl));
info->theme_color = SkColorSetARGB(0xFF, 0x00, 0x00, 0x00);
info->background_color = SkColorSetARGB(0xFF, 0xFF, 0xFF, 0xFF);
info->display_mode = blink::mojom::DisplayMode::kStandalone;
info->icon_bitmaps.any =
LoadBundledIcons({IDR_PREINSTALLED_WEB_APPS_NOTEBOOK_LM_ICON_512_PNG});
info->scope = GURL(kScopeUrl);
info->title = u"NotebookLM";
return info;
});
return options;
}
} // namespace web_app
|