Commit a2e3c1ce authored by Alan Cutter's avatar Alan Cutter Committed by Commit Bot

WebApps: Support PWA manifest scope updating

This CL enables PWA manifest updating to detect when sites update the
scope field.

Bug: 926083
Change-Id: Ib304ef830c215f564c64cf55c0d978308e2524e3
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1921012
Commit-Queue: Alan Cutter <alancutter@chromium.org>
Auto-Submit: Alan Cutter <alancutter@chromium.org>
Reviewed-by: default avatarAlexey Baskakov <loyso@chromium.org>
Cr-Commit-Position: refs/heads/master@{#716085}
parent fb357bf4
...@@ -211,15 +211,16 @@ class ManifestUpdateManagerBrowserTest : public InProcessBrowserTest { ...@@ -211,15 +211,16 @@ class ManifestUpdateManagerBrowserTest : public InProcessBrowserTest {
return *WebAppProviderBase::GetProviderBase(browser()->profile()); return *WebAppProviderBase::GetProviderBase(browser()->profile());
} }
protected:
net::EmbeddedTestServer::HandleRequestCallback request_override_; net::EmbeddedTestServer::HandleRequestCallback request_override_;
base::HistogramTester histogram_tester_; base::HistogramTester histogram_tester_;
net::EmbeddedTestServer http_server_;
private: private:
base::test::ScopedFeatureList scoped_feature_list_; base::test::ScopedFeatureList scoped_feature_list_;
net::EmbeddedTestServer http_server_;
DISALLOW_COPY_AND_ASSIGN(ManifestUpdateManagerBrowserTest); DISALLOW_COPY_AND_ASSIGN(ManifestUpdateManagerBrowserTest);
}; };
...@@ -601,4 +602,27 @@ IN_PROC_BROWSER_TEST_F(ManifestUpdateManagerBrowserTest, ...@@ -601,4 +602,27 @@ IN_PROC_BROWSER_TEST_F(ManifestUpdateManagerBrowserTest,
GetProvider().install_finalizer().CanUserUninstallFromSync(app_id)); GetProvider().install_finalizer().CanUserUninstallFromSync(app_id));
} }
IN_PROC_BROWSER_TEST_F(ManifestUpdateManagerBrowserTest,
CheckFindsScopeChange) {
constexpr char kManifestTemplate[] = R"(
{
"name": "Test app name",
"start_url": ".",
"scope": "$1",
"display": "standalone",
"icons": $2
}
)";
OverrideManifest(kManifestTemplate, {"/banners/", kInstallableIconList});
AppId app_id = InstallWebApp();
OverrideManifest(kManifestTemplate, {"/", kInstallableIconList});
EXPECT_EQ(GetResultAfterPageLoad(GetAppURL(), &app_id),
ManifestUpdateResult::kAppUpdated);
histogram_tester_.ExpectBucketCount(kUpdateHistogramName,
ManifestUpdateResult::kAppUpdated, 1);
EXPECT_EQ(GetProvider().registrar().GetAppScope(app_id),
http_server_.GetURL("/"));
}
} // namespace web_app } // namespace web_app
...@@ -111,6 +111,9 @@ bool ManifestUpdateTask::IsUpdateNeeded( ...@@ -111,6 +111,9 @@ bool ManifestUpdateTask::IsUpdateNeeded(
if (web_application_info.theme_color != registrar_.GetAppThemeColor(app_id_)) if (web_application_info.theme_color != registrar_.GetAppThemeColor(app_id_))
return true; return true;
if (web_application_info.scope != registrar_.GetAppScope(app_id_))
return true;
// TODO(crbug.com/926083): Check more manifest fields. // TODO(crbug.com/926083): Check more manifest fields.
return false; return false;
} }
......
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