Commit 1cb034ac authored by Christopher Lam's avatar Christopher Lam Committed by Commit Bot

[System PWAs] Hide the hosted app button container for System PWAs.

System PWAs should not show the Hosted App Button Container UI. This CL
hides it on all platforms for System Web Apps.

Bug: 836128
Change-Id: I2dc87dea17aa77699f6d6639759645a1c184a2bd
Reviewed-on: https://chromium-review.googlesource.com/c/1293294
Commit-Queue: calamity <calamity@chromium.org>
Reviewed-by: default avatarTrent Apted <tapted@chromium.org>
Reviewed-by: default avatarAlan Cutter <alancutter@chromium.org>
Cr-Commit-Position: refs/heads/master@{#606758}
parent 036452ca
...@@ -122,7 +122,7 @@ const char kPwaWindowEngagementTypeHistogram[] = ...@@ -122,7 +122,7 @@ const char kPwaWindowEngagementTypeHistogram[] =
bool HostedAppBrowserController::IsForExperimentalHostedAppBrowser( bool HostedAppBrowserController::IsForExperimentalHostedAppBrowser(
const Browser* browser) { const Browser* browser) {
return browser && browser->hosted_app_controller() && return browser && browser->hosted_app_controller() &&
base::FeatureList::IsEnabled(::features::kDesktopPWAWindowing); browser->hosted_app_controller()->IsForExperimentalHostedAppBrowser();
} }
// static // static
...@@ -172,6 +172,17 @@ HostedAppBrowserController::~HostedAppBrowserController() { ...@@ -172,6 +172,17 @@ HostedAppBrowserController::~HostedAppBrowserController() {
browser_->tab_strip_model()->RemoveObserver(this); browser_->tab_strip_model()->RemoveObserver(this);
} }
bool HostedAppBrowserController::IsForSystemWebApp() const {
const Extension* extension = GetExtension();
return extension && extension->from_bookmark() &&
extension->location() == Manifest::EXTERNAL_COMPONENT;
}
bool HostedAppBrowserController::IsForExperimentalHostedAppBrowser() const {
return base::FeatureList::IsEnabled(::features::kDesktopPWAWindowing);
}
bool HostedAppBrowserController::ShouldShowLocationBar() const { bool HostedAppBrowserController::ShouldShowLocationBar() const {
// The extension can be null if this is invoked after uninstall. // The extension can be null if this is invoked after uninstall.
const Extension* extension = GetExtension(); const Extension* extension = GetExtension();
...@@ -236,6 +247,11 @@ void HostedAppBrowserController::UpdateLocationBarVisibility( ...@@ -236,6 +247,11 @@ void HostedAppBrowserController::UpdateLocationBarVisibility(
ShouldShowLocationBar(), animate); ShouldShowLocationBar(), animate);
} }
bool HostedAppBrowserController::ShouldShowHostedAppButtonContainer() const {
// System Web Apps don't get the Hosted App buttons.
return IsForExperimentalHostedAppBrowser() && !IsForSystemWebApp();
}
gfx::ImageSkia HostedAppBrowserController::GetWindowAppIcon() const { gfx::ImageSkia HostedAppBrowserController::GetWindowAppIcon() const {
// TODO(calamity): Use the app name to retrieve the app icon without using the // TODO(calamity): Use the app name to retrieve the app icon without using the
// extensions tab helper to make icon load more immediate. // extensions tab helper to make icon load more immediate.
......
...@@ -33,6 +33,8 @@ class HostedAppBrowserController : public SiteEngagementObserver, ...@@ -33,6 +33,8 @@ class HostedAppBrowserController : public SiteEngagementObserver,
public ExtensionUninstallDialog::Delegate { public ExtensionUninstallDialog::Delegate {
public: public:
// Returns whether |browser| uses the experimental hosted app experience. // Returns whether |browser| uses the experimental hosted app experience.
// Convenience wrapper for checking IsForExperimentalHostedAppBrowser() on
// |browser|'s HostedAppBrowserController if it exists.
static bool IsForExperimentalHostedAppBrowser(const Browser* browser); static bool IsForExperimentalHostedAppBrowser(const Browser* browser);
// Functions to set preferences that are unique to app windows. // Functions to set preferences that are unique to app windows.
...@@ -48,10 +50,20 @@ class HostedAppBrowserController : public SiteEngagementObserver, ...@@ -48,10 +50,20 @@ class HostedAppBrowserController : public SiteEngagementObserver,
// Returns true if the associated Hosted App is for a PWA. // Returns true if the associated Hosted App is for a PWA.
bool created_for_installed_pwa() const { return created_for_installed_pwa_; } bool created_for_installed_pwa() const { return created_for_installed_pwa_; }
// Returns true if this controller is for a System Web App.
bool IsForSystemWebApp() const;
// Returns true if this controller is for an experimental hosted app browser.
bool IsForExperimentalHostedAppBrowser() const;
// Whether the browser being controlled should be currently showing the // Whether the browser being controlled should be currently showing the
// location bar. // location bar.
bool ShouldShowLocationBar() const; bool ShouldShowLocationBar() const;
// Returns true if the hosted app buttons should be shown in the frame for
// this BrowserView.
bool ShouldShowHostedAppButtonContainer() const;
// Updates the location bar visibility based on whether it should be // Updates the location bar visibility based on whether it should be
// currently visible or not. If |animate| is set, the change will be // currently visible or not. If |animate| is set, the change will be
// animated. // animated.
......
...@@ -804,6 +804,9 @@ void BrowserNonClientFrameViewAsh::SetUpForHostedApp( ...@@ -804,6 +804,9 @@ void BrowserNonClientFrameViewAsh::SetUpForHostedApp(
ash::FrameCaptionButton::ColorMode::kThemed, *theme_color); ash::FrameCaptionButton::ColorMode::kThemed, *theme_color);
} }
if (!browser->hosted_app_controller()->ShouldShowHostedAppButtonContainer())
return;
// Add the container for extra hosted app buttons (e.g app menu button). // Add the container for extra hosted app buttons (e.g app menu button).
const float inactive_alpha_ratio = const float inactive_alpha_ratio =
ash::FrameCaptionButton::GetInactiveButtonColorAlphaRatio(); ash::FrameCaptionButton::GetInactiveButtonColorAlphaRatio();
......
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
#include "chrome/browser/themes/theme_service.h" #include "chrome/browser/themes/theme_service.h"
#include "chrome/browser/themes/theme_service_factory.h" #include "chrome/browser/themes/theme_service_factory.h"
#include "chrome/browser/ui/views/frame/browser_view.h" #include "chrome/browser/ui/views/frame/browser_view.h"
#include "chrome/browser/web_applications/bookmark_apps/system_web_app_manager_browsertest.h"
#include "chrome/common/chrome_features.h" #include "chrome/common/chrome_features.h"
#include "chrome/common/web_application_info.h" #include "chrome/common/web_application_info.h"
#include "chrome/test/base/in_process_browser_test.h" #include "chrome/test/base/in_process_browser_test.h"
...@@ -144,3 +145,16 @@ IN_PROC_BROWSER_TEST_F(BrowserNonClientFrameViewBrowserTest, ...@@ -144,3 +145,16 @@ IN_PROC_BROWSER_TEST_F(BrowserNonClientFrameViewBrowserTest,
app_frame_view_->GetFrameColor(BrowserNonClientFrameView::kActive)); app_frame_view_->GetFrameColor(BrowserNonClientFrameView::kActive));
#endif #endif
} }
using SystemWebAppNonClientFrameViewBrowserTest =
web_app::SystemWebAppManagerBrowserTest;
// System Web Apps don't get the hosted app buttons.
IN_PROC_BROWSER_TEST_F(SystemWebAppNonClientFrameViewBrowserTest,
HideHostedAppButtonContainer) {
Browser* app_browser = InstallAndLaunchSystemApp();
EXPECT_EQ(nullptr, BrowserView::GetBrowserViewForBrowser(app_browser)
->frame()
->GetFrameView()
->hosted_app_button_container_for_testing());
}
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
#include "chrome/browser/ui/cocoa/fullscreen/fullscreen_menubar_tracker.h" #include "chrome/browser/ui/cocoa/fullscreen/fullscreen_menubar_tracker.h"
#include "chrome/browser/ui/cocoa/fullscreen/fullscreen_toolbar_controller_views.h" #include "chrome/browser/ui/cocoa/fullscreen/fullscreen_toolbar_controller_views.h"
#include "chrome/browser/ui/exclusive_access/fullscreen_controller.h" #include "chrome/browser/ui/exclusive_access/fullscreen_controller.h"
#include "chrome/browser/ui/extensions/hosted_app_browser_controller.h"
#include "chrome/browser/ui/layout_constants.h" #include "chrome/browser/ui/layout_constants.h"
#include "chrome/browser/ui/views/bookmarks/bookmark_bar_view.h" #include "chrome/browser/ui/views/bookmarks/bookmark_bar_view.h"
#include "chrome/browser/ui/views/frame/browser_frame.h" #include "chrome/browser/ui/views/frame/browser_frame.h"
...@@ -58,10 +59,14 @@ BrowserNonClientFrameViewMac::BrowserNonClientFrameViewMac( ...@@ -58,10 +59,14 @@ BrowserNonClientFrameViewMac::BrowserNonClientFrameViewMac(
base::Unretained(this), true)); base::Unretained(this), true));
if (browser_view->IsBrowserTypeHostedApp()) { if (browser_view->IsBrowserTypeHostedApp()) {
set_hosted_app_button_container(new HostedAppButtonContainer( if (browser_view->browser()
frame, browser_view, GetReadableFrameForegroundColor(kActive), ->hosted_app_controller()
GetReadableFrameForegroundColor(kInactive), kHostedAppMenuMargin)); ->ShouldShowHostedAppButtonContainer()) {
AddChildView(hosted_app_button_container()); set_hosted_app_button_container(new HostedAppButtonContainer(
frame, browser_view, GetReadableFrameForegroundColor(kActive),
GetReadableFrameForegroundColor(kInactive), kHostedAppMenuMargin));
AddChildView(hosted_app_button_container());
}
DCHECK(browser_view->ShouldShowWindowTitle()); DCHECK(browser_view->ShouldShowWindowTitle());
window_title_ = new views::Label(browser_view->GetWindowTitle()); window_title_ = new views::Label(browser_view->GetWindowTitle());
...@@ -114,9 +119,11 @@ gfx::Rect BrowserNonClientFrameViewMac::GetBoundsForTabStrip( ...@@ -114,9 +119,11 @@ gfx::Rect BrowserNonClientFrameViewMac::GetBoundsForTabStrip(
} }
int BrowserNonClientFrameViewMac::GetTopInset(bool restored) const { int BrowserNonClientFrameViewMac::GetTopInset(bool restored) const {
if (browser_view()->IsBrowserTypeHostedApp()) if (hosted_app_button_container()) {
DCHECK(browser_view()->IsBrowserTypeHostedApp());
return hosted_app_button_container()->GetPreferredSize().height() + return hosted_app_button_container()->GetPreferredSize().height() +
kHostedAppMenuMargin * 2; kHostedAppMenuMargin * 2;
}
if (!browser_view()->IsTabStripVisible()) if (!browser_view()->IsTabStripVisible())
return 0; return 0;
......
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
#include "chrome/app/chrome_command_ids.h" #include "chrome/app/chrome_command_ids.h"
#include "chrome/app/chrome_dll_resource.h" #include "chrome/app/chrome_dll_resource.h"
#include "chrome/browser/themes/theme_properties.h" #include "chrome/browser/themes/theme_properties.h"
#include "chrome/browser/ui/extensions/hosted_app_browser_controller.h"
#include "chrome/browser/ui/view_ids.h" #include "chrome/browser/ui/view_ids.h"
#include "chrome/browser/ui/views/frame/browser_view.h" #include "chrome/browser/ui/views/frame/browser_view.h"
#include "chrome/browser/ui/views/frame/hosted_app_button_container.h" #include "chrome/browser/ui/views/frame/hosted_app_button_container.h"
...@@ -112,12 +113,15 @@ GlassBrowserFrameView::GlassBrowserFrameView(BrowserFrame* frame, ...@@ -112,12 +113,15 @@ GlassBrowserFrameView::GlassBrowserFrameView(BrowserFrame* frame,
AddChildView(window_title_); AddChildView(window_title_);
} }
if (browser_view->IsBrowserTypeHostedApp()) { extensions::HostedAppBrowserController* controller =
browser_view->browser()->hosted_app_controller();
if (controller && controller->ShouldShowHostedAppButtonContainer()) {
// TODO(alancutter): Avoid snapshotting GetTitlebarFeatureColor() values // TODO(alancutter): Avoid snapshotting GetTitlebarFeatureColor() values
// here and call it on demand in // here and call it on demand in
// HostedAppButtonContainer::UpdateIconsColor() via a delegate interface. // HostedAppButtonContainer::UpdateIconsColor() via a delegate interface.
SkColor active_color = GetTitlebarFeatureColor(kActive); SkColor active_color = GetTitlebarFeatureColor(kActive);
SkColor inactive_color = GetTitlebarFeatureColor(kInactive); SkColor inactive_color = GetTitlebarFeatureColor(kInactive);
set_hosted_app_button_container(new HostedAppButtonContainer( set_hosted_app_button_container(new HostedAppButtonContainer(
frame, browser_view, active_color, inactive_color)); frame, browser_view, active_color, inactive_color));
AddChildView(hosted_app_button_container()); AddChildView(hosted_app_button_container());
......
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
#include "chrome/browser/ui/content_settings/content_setting_image_model.h" #include "chrome/browser/ui/content_settings/content_setting_image_model.h"
#include "chrome/browser/ui/extensions/hosted_app_browser_controller.h" #include "chrome/browser/ui/extensions/hosted_app_browser_controller.h"
#include "chrome/browser/ui/layout_constants.h" #include "chrome/browser/ui/layout_constants.h"
#include "chrome/browser/ui/view_ids.h"
#include "chrome/browser/ui/views/frame/browser_view.h" #include "chrome/browser/ui/views/frame/browser_view.h"
#include "chrome/browser/ui/views/frame/hosted_app_menu_button.h" #include "chrome/browser/ui/views/frame/hosted_app_menu_button.h"
#include "chrome/browser/ui/views/frame/hosted_app_origin_text.h" #include "chrome/browser/ui/views/frame/hosted_app_origin_text.h"
...@@ -196,7 +197,12 @@ HostedAppButtonContainer::HostedAppButtonContainer( ...@@ -196,7 +197,12 @@ HostedAppButtonContainer::HostedAppButtonContainer(
false /* interactive */)), false /* interactive */)),
app_menu_button_(new HostedAppMenuButton(browser_view)) { app_menu_button_(new HostedAppMenuButton(browser_view)) {
DCHECK(browser_view_); DCHECK(browser_view_);
DCHECK(browser_view_->IsBrowserTypeHostedApp()); DCHECK(browser_view_->browser()
->hosted_app_controller()
->IsForExperimentalHostedAppBrowser());
set_id(VIEW_ID_HOSTED_APP_BUTTON_CONTAINER);
views::BoxLayout& layout = views::BoxLayout& layout =
*SetLayoutManager(std::make_unique<views::BoxLayout>( *SetLayoutManager(std::make_unique<views::BoxLayout>(
views::BoxLayout::kHorizontal, views::BoxLayout::kHorizontal,
......
...@@ -174,11 +174,12 @@ OpaqueBrowserFrameView::OpaqueBrowserFrameView( ...@@ -174,11 +174,12 @@ OpaqueBrowserFrameView::OpaqueBrowserFrameView(
window_title_->set_id(VIEW_ID_WINDOW_TITLE); window_title_->set_id(VIEW_ID_WINDOW_TITLE);
AddChildView(window_title_); AddChildView(window_title_);
if (browser_view->IsBrowserTypeHostedApp()) { extensions::HostedAppBrowserController* controller =
browser_view->browser()->hosted_app_controller();
if (controller && controller->ShouldShowHostedAppButtonContainer()) {
set_hosted_app_button_container(new HostedAppButtonContainer( set_hosted_app_button_container(new HostedAppButtonContainer(
frame, browser_view, GetReadableFrameForegroundColor(kActive), frame, browser_view, GetReadableFrameForegroundColor(kActive),
GetReadableFrameForegroundColor(kInactive))); GetReadableFrameForegroundColor(kInactive)));
hosted_app_button_container()->set_id(VIEW_ID_HOSTED_APP_BUTTON_CONTAINER);
AddChildView(hosted_app_button_container()); AddChildView(hosted_app_button_container());
} }
} }
......
...@@ -86,6 +86,7 @@ source_set("browser_tests") { ...@@ -86,6 +86,7 @@ source_set("browser_tests") {
sources = [ sources = [
"system_web_app_manager_browsertest.cc", "system_web_app_manager_browsertest.cc",
"system_web_app_manager_browsertest.h",
] ]
deps = [ deps = [
...@@ -99,6 +100,7 @@ source_set("browser_tests") { ...@@ -99,6 +100,7 @@ source_set("browser_tests") {
"//chrome/browser/web_applications/extensions", "//chrome/browser/web_applications/extensions",
"//chrome/common:constants", "//chrome/common:constants",
"//chrome/test:test_support", "//chrome/test:test_support",
"//chrome/test:test_support_ui",
"//extensions/browser", "//extensions/browser",
"//url", "//url",
] ]
......
...@@ -2,15 +2,16 @@ ...@@ -2,15 +2,16 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#include "chrome/browser/web_applications/bookmark_apps/system_web_app_manager.h" #include "chrome/browser/web_applications/bookmark_apps/system_web_app_manager_browsertest.h"
#include <vector> #include <vector>
#include "base/memory/ref_counted_memory.h" #include "base/memory/ref_counted_memory.h"
#include "base/test/scoped_feature_list.h" #include "base/test/scoped_feature_list.h"
#include "build/build_config.h" #include "chrome/browser/extensions/browsertest_util.h"
#include "chrome/browser/extensions/extension_browsertest.h" #include "chrome/browser/extensions/extension_browsertest.h"
#include "chrome/browser/extensions/extension_util.h" #include "chrome/browser/extensions/extension_util.h"
#include "chrome/browser/ui/extensions/hosted_app_browser_controller.h"
#include "chrome/browser/web_applications/bookmark_apps/test_system_web_app_manager.h" #include "chrome/browser/web_applications/bookmark_apps/test_system_web_app_manager.h"
#include "chrome/browser/web_applications/components/web_app_constants.h" #include "chrome/browser/web_applications/components/web_app_constants.h"
#include "chrome/browser/web_applications/extensions/pending_bookmark_app_manager.h" #include "chrome/browser/web_applications/extensions/pending_bookmark_app_manager.h"
...@@ -43,7 +44,7 @@ constexpr char kSystemAppManifestText[] = ...@@ -43,7 +44,7 @@ constexpr char kSystemAppManifestText[] =
"type": "image/png" "type": "image/png"
} }
], ],
"start_url": "/", "start_url": "/pwa.html",
"theme_color": "#00FF00" "theme_color": "#00FF00"
})"; })";
...@@ -106,44 +107,44 @@ class TestWebUIControllerFactory : public content::WebUIControllerFactory { ...@@ -106,44 +107,44 @@ class TestWebUIControllerFactory : public content::WebUIControllerFactory {
DISALLOW_COPY_AND_ASSIGN(TestWebUIControllerFactory); DISALLOW_COPY_AND_ASSIGN(TestWebUIControllerFactory);
}; };
class SystemWebAppManagerIntegrationTest SystemWebAppManagerBrowserTest::SystemWebAppManagerBrowserTest()
: public extensions::ExtensionBrowserTest { : factory_(std::make_unique<TestWebUIControllerFactory>()) {
public: scoped_feature_list_.InitWithFeatures(
SystemWebAppManagerIntegrationTest() { {features::kDesktopPWAWindowing, features::kSystemWebApps}, {});
scoped_feature_list_.InitWithFeatures( content::WebUIControllerFactory::RegisterFactory(factory_.get());
{features::kDesktopPWAWindowing, features::kSystemWebApps}, {}); }
content::WebUIControllerFactory::RegisterFactory(&factory_); SystemWebAppManagerBrowserTest::~SystemWebAppManagerBrowserTest() {
} content::WebUIControllerFactory::UnregisterFactoryForTesting(factory_.get());
~SystemWebAppManagerIntegrationTest() override { }
content::WebUIControllerFactory::UnregisterFactoryForTesting(&factory_);
}
void SetUpOnMainThread() override {
extensions::ExtensionBrowserTest::SetUpOnMainThread();
// Reset WebAppProvider so that its SystemWebAppManager doesn't interfere
// with tests.
WebAppProvider::Get(profile())->Reset();
}
private: void SystemWebAppManagerBrowserTest::SetUpOnMainThread() {
base::test::ScopedFeatureList scoped_feature_list_; InProcessBrowserTest::SetUpOnMainThread();
TestWebUIControllerFactory factory_;
DISALLOW_COPY_AND_ASSIGN(SystemWebAppManagerIntegrationTest); // Reset WebAppProvider so that its SystemWebAppManager doesn't interfere
}; // with tests.
WebAppProvider::Get(browser()->profile())->Reset();
}
// Test that System Apps install correctly with a manifest. Browser* SystemWebAppManagerBrowserTest::InstallAndLaunchSystemApp() {
IN_PROC_BROWSER_TEST_F(SystemWebAppManagerIntegrationTest, WithManifest) { Profile* profile = browser()->profile();
std::vector<GURL> system_apps; std::vector<GURL> system_apps;
system_apps.emplace_back(GURL("chrome://test-system-app/pwa.html")); system_apps.emplace_back(GURL("chrome://test-system-app/pwa.html"));
extensions::PendingBookmarkAppManager pending_app_manager(profile()); extensions::PendingBookmarkAppManager pending_app_manager(profile);
TestSystemWebAppManager system_web_app_manager( TestSystemWebAppManager system_web_app_manager(profile, &pending_app_manager,
profile(), &pending_app_manager, std::move(system_apps)); std::move(system_apps));
const extensions::Extension* app = const extensions::Extension* app =
extensions::TestExtensionRegistryObserver( extensions::TestExtensionRegistryObserver(
extensions::ExtensionRegistry::Get(profile())) extensions::ExtensionRegistry::Get(profile))
.WaitForExtensionInstalled(); .WaitForExtensionInstalled();
return extensions::browsertest_util::LaunchAppBrowser(profile, app);
}
// Test that System Apps install correctly with a manifest.
IN_PROC_BROWSER_TEST_F(SystemWebAppManagerBrowserTest, Install) {
const extensions::Extension* app = InstallAndLaunchSystemApp()
->hosted_app_controller()
->GetExtensionForTesting();
EXPECT_EQ("Test System App", app->name()); EXPECT_EQ("Test System App", app->name());
EXPECT_EQ(SkColorSetRGB(0, 0xFF, 0), EXPECT_EQ(SkColorSetRGB(0, 0xFF, 0),
extensions::AppThemeColorInfo::GetThemeColor(app)); extensions::AppThemeColorInfo::GetThemeColor(app));
...@@ -152,7 +153,7 @@ IN_PROC_BROWSER_TEST_F(SystemWebAppManagerIntegrationTest, WithManifest) { ...@@ -152,7 +153,7 @@ IN_PROC_BROWSER_TEST_F(SystemWebAppManagerIntegrationTest, WithManifest) {
// The app should be a PWA. // The app should be a PWA.
EXPECT_EQ(extensions::util::GetInstalledPwaForUrl( EXPECT_EQ(extensions::util::GetInstalledPwaForUrl(
profile(), GURL("chrome://test-system-app/")), browser()->profile(), GURL("chrome://test-system-app/")),
app); app);
} }
......
// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_WEB_APPLICATIONS_BOOKMARK_APPS_SYSTEM_WEB_APP_MANAGER_BROWSERTEST_H_
#define CHROME_BROWSER_WEB_APPLICATIONS_BOOKMARK_APPS_SYSTEM_WEB_APP_MANAGER_BROWSERTEST_H_
#include <memory>
#include "base/test/scoped_feature_list.h"
#include "chrome/test/base/in_process_browser_test.h"
namespace web_app {
class TestWebUIControllerFactory;
class SystemWebAppManagerBrowserTest : public InProcessBrowserTest {
public:
SystemWebAppManagerBrowserTest();
~SystemWebAppManagerBrowserTest() override;
// Overridden from InProcessBrowserTest:
void SetUpOnMainThread() override;
protected:
Browser* InstallAndLaunchSystemApp();
private:
base::test::ScopedFeatureList scoped_feature_list_;
std::unique_ptr<TestWebUIControllerFactory> factory_;
DISALLOW_COPY_AND_ASSIGN(SystemWebAppManagerBrowserTest);
};
} // namespace web_app
#endif // CHROME_BROWSER_WEB_APPLICATIONS_BOOKMARK_APPS_SYSTEM_WEB_APP_MANAGER_BROWSERTEST_H_
...@@ -298,6 +298,8 @@ static_library("test_support") { ...@@ -298,6 +298,8 @@ static_library("test_support") {
if (enable_extensions) { if (enable_extensions) {
sources += [ sources += [
"../browser/extensions/browsertest_util.cc",
"../browser/extensions/browsertest_util.h",
"../browser/extensions/extension_browsertest.cc", "../browser/extensions/extension_browsertest.cc",
"../browser/extensions/extension_browsertest.h", "../browser/extensions/extension_browsertest.h",
] ]
...@@ -1320,8 +1322,6 @@ test("browser_tests") { ...@@ -1320,8 +1322,6 @@ test("browser_tests") {
"../browser/extensions/bookmark_app_navigation_browsertest.cc", "../browser/extensions/bookmark_app_navigation_browsertest.cc",
"../browser/extensions/bookmark_app_navigation_browsertest.h", "../browser/extensions/bookmark_app_navigation_browsertest.h",
"../browser/extensions/bookmark_app_navigation_throttle_browsertest.cc", "../browser/extensions/bookmark_app_navigation_throttle_browsertest.cc",
"../browser/extensions/browsertest_util.cc",
"../browser/extensions/browsertest_util.h",
"../browser/extensions/chrome_app_api_browsertest.cc", "../browser/extensions/chrome_app_api_browsertest.cc",
"../browser/extensions/chrome_theme_url_browsertest.cc", "../browser/extensions/chrome_theme_url_browsertest.cc",
"../browser/extensions/chrome_ui_overrides_browsertest.cc", "../browser/extensions/chrome_ui_overrides_browsertest.cc",
...@@ -4624,7 +4624,6 @@ if (!is_android) { ...@@ -4624,7 +4624,6 @@ if (!is_android) {
"../browser/extensions/api/notifications/notifications_apitest.cc", "../browser/extensions/api/notifications/notifications_apitest.cc",
"../browser/extensions/api/omnibox/omnibox_api_interactive_test.cc", "../browser/extensions/api/omnibox/omnibox_api_interactive_test.cc",
"../browser/extensions/api/tabs/tabs_interactive_test.cc", "../browser/extensions/api/tabs/tabs_interactive_test.cc",
"../browser/extensions/browsertest_util.cc",
"../browser/extensions/chrome_extension_test_notification_observer.cc", "../browser/extensions/chrome_extension_test_notification_observer.cc",
"../browser/extensions/chrome_extension_test_notification_observer.h", "../browser/extensions/chrome_extension_test_notification_observer.h",
"../browser/extensions/clipboard_extension_apitest_chromeos.cc", "../browser/extensions/clipboard_extension_apitest_chromeos.cc",
...@@ -5108,7 +5107,6 @@ if (!is_android && !is_chromecast) { ...@@ -5108,7 +5107,6 @@ if (!is_android && !is_chromecast) {
"../app/chrome_version.rc.version", "../app/chrome_version.rc.version",
"../browser/extensions/api/cast_streaming/performance_test.cc", "../browser/extensions/api/cast_streaming/performance_test.cc",
"../browser/extensions/api/tab_capture/tab_capture_performancetest.cc", "../browser/extensions/api/tab_capture/tab_capture_performancetest.cc",
"../browser/extensions/browsertest_util.cc",
"../browser/extensions/chrome_extension_test_notification_observer.cc", "../browser/extensions/chrome_extension_test_notification_observer.cc",
"../browser/extensions/chrome_extension_test_notification_observer.h", "../browser/extensions/chrome_extension_test_notification_observer.h",
"../browser/extensions/extension_apitest.cc", "../browser/extensions/extension_apitest.cc",
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment