Commit cd38169e authored by Junyi Xiao's avatar Junyi Xiao Committed by Chromium LUCI CQ

Reland "WebApps: Fix PWA initial positions in certain configs"

This is a reland for
https://chromium-review.googlesource.com/c/chromium/src/+/2131009
with attempt to fix the failing test on Mac.


Bug: 1046481
Change-Id: Ibd4adb5a3315df5be583dabd45de05c97127a2bf
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2511979
Commit-Queue: Junyi Xiao <juxiao@microsoft.com>
Reviewed-by: default avatarccameron <ccameron@chromium.org>
Reviewed-by: default avatarPeter Kasting <pkasting@chromium.org>
Cr-Commit-Position: refs/heads/master@{#831972}
parent 98e6aece
......@@ -82,7 +82,8 @@ void BrowserFrame::InitBrowserFrame() {
params.name = "BrowserFrame";
params.delegate = browser_view_;
if (browser_view_->browser()->is_type_normal() ||
browser_view_->browser()->is_type_devtools()) {
browser_view_->browser()->is_type_devtools() ||
browser_view_->browser()->is_type_app()) {
// Typed panel/popup can only return a size once the widget has been
// created.
// DevTools counts as a popup, but DevToolsWindow::CreateDevToolsBrowser
......
......@@ -7,7 +7,11 @@
#include "base/macros.h"
#include "build/build_config.h"
#include "chrome/browser/devtools/devtools_window_testing.h"
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/browser_window.h"
#include "chrome/browser/ui/views/chrome_views_delegate.h"
#include "chrome/browser/ui/web_applications/test/web_app_browsertest_util.h"
#include "chrome/browser/web_applications/components/web_application_info.h"
#include "chrome/test/base/in_process_browser_test.h"
#include "chrome/test/base/ui_test_utils.h"
#include "content/public/browser/invalidate_type.h"
......@@ -41,3 +45,16 @@ IN_PROC_BROWSER_TEST_F(BrowserFrameTest, DevToolsHasBoundsOnOpen) {
DevToolsWindowTesting::OpenDevToolsWindowSync(browser(), false);
DevToolsWindowTesting::CloseDevToolsWindowSync(devtools_);
}
// Verifies that the web app is loaded with initial bounds.
IN_PROC_BROWSER_TEST_F(BrowserFrameTest, WebAppsHasBoundsOnOpen) {
auto web_app_info = std::make_unique<WebApplicationInfo>();
web_app_info->start_url = GURL("http://example.org/");
web_app::AppId app_id =
web_app::InstallWebApp(browser()->profile(), std::move(web_app_info));
Browser* app_browser =
web_app::LaunchWebAppBrowser(browser()->profile(), app_id);
ASSERT_TRUE(app_browser->is_type_app());
app_browser->window()->Close();
}
......@@ -500,13 +500,19 @@ IN_PROC_BROWSER_TEST_F(WebAppTabRestoreBrowserTest,
sessions::TabRestoreService* const service =
TabRestoreServiceFactory::GetForProfile(profile());
ASSERT_GT(service->entries().size(), 0U);
sessions::TabRestoreService::Entry* entry = service->entries().front().get();
ASSERT_EQ(sessions::TabRestoreService::WINDOW, entry->type);
const auto* entry_win =
static_cast<sessions::TabRestoreService::Window*>(entry);
EXPECT_EQ(bounds, entry_win->bounds);
service->RestoreMostRecentEntry(nullptr);
content::WebContents* const restored_web_contents =
new_contents_observer.GetWebContents();
Browser* const restored_browser =
chrome::FindBrowserWithWebContents(restored_web_contents);
EXPECT_EQ(restored_browser->window()->GetBounds(), bounds);
EXPECT_EQ(restored_browser->override_bounds(), bounds);
}
// Tests that using window.open to create a popup window out of scope results in
......
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