-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
dwpas: Add tentative WPT test for protocol_handler
Adding manual WPT test for new protocol_handler field. w3c/manifest#846 Bug: 1019239 Change-Id: I49bbcae9ff1925fb2799d1462fca936147f2e118 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3166820 Reviewed-by: Evan Stade <estade@chromium.org> Reviewed-by: Joshua Bell <jsbell@chromium.org> Commit-Queue: Mike Jackson <mjackson@microsoft.com> Cr-Commit-Position: refs/heads/main@{#924924} NOKEYCHECK=True GitOrigin-RevId: 54c2e88950241d9ba236a742f7c41b1b7dcca326
- Loading branch information
1 parent
3be687d
commit 7b761d1
Showing
7 changed files
with
125 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
34 changes: 34 additions & 0 deletions
34
...l/wpt/appmanifest/protocol_handlers-member/protocol_handlers-member-manual.tentative.html
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
<!DOCTYPE html> | ||
<html lang="en"> | ||
<head> | ||
<meta charset="utf-8"> | ||
<link rel="manifest" href="resources/protocol_handlers-member.webmanifest" /> | ||
<title>Protocol Handling Web Platform Test</title> | ||
<script> | ||
navigator.serviceWorker.register( | ||
'protocol_handlers-member-service-worker.js'); | ||
</script> | ||
</head> | ||
<body> | ||
<h1>Protocol Handling Web Platform Test</h1> | ||
<p>This test validates that an install application can register URL protocol | ||
handlers via a property in the web app manifest. The app should open | ||
directly when the 'web+testing' custom-scheme URL is visited. | ||
</p> | ||
<h2>Manual Test Steps:</h2> | ||
<p> | ||
<ol> | ||
<li>Install this app.</li> | ||
<li>Launch 'web+testing://test-url/'. Instructions will vary by OS. | ||
<ul> | ||
<li>On Windows - open a command prompt, and run "start web+testing://test-url/".</li> | ||
<li>On MacOS - open a terminal, and "open web+testing://test-url/".</li> | ||
<li>On Linux - open a terminal, and "xgd-open web+testing://test-url/".</li> | ||
</ul> | ||
</li> | ||
<li>If your browser prompts you, allow the app to open.</li> | ||
<li>The app window that opens should indicate success of this test.</li> | ||
</ol> | ||
</p> | ||
</body> | ||
</html> |
52 changes: 52 additions & 0 deletions
52
...ernal/wpt/appmanifest/protocol_handlers-member/protocol_handlers-member-service-worker.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
// Some user agents only offer app installation if there is a SW and it handles | ||
// offline requests. | ||
|
||
const cacheVersion = "1.1"; | ||
const CACHE_NAME = `cache-v${cacheVersion}`; | ||
|
||
// The resources cached by this service worker. | ||
const resources = [ | ||
"protocol_handlers-member-service-worker.js", | ||
"protocol_handlers-member-manual.tentative.html", | ||
"resources/icon.png", | ||
"resources/protocol_handlers_entry.html", | ||
]; | ||
|
||
// Load all resources for this service worker. | ||
const precache = async () => { | ||
const cache = await caches.open(CACHE_NAME); | ||
await cache.addAll(resources); | ||
}; | ||
|
||
// Get a resource from the cache. | ||
const fromCache = async request => { | ||
const cache = await caches.open(CACHE_NAME); | ||
return await cache.match(request.url); | ||
}; | ||
|
||
// Attempt to get resources from the network first, fallback to the cache if we're | ||
// offline. | ||
const networkFallbackToCache = async request => { | ||
try { | ||
const response = await fetch(request); | ||
if (response.ok) return response; | ||
} catch (err) {} | ||
return await fromCache(request); | ||
}; | ||
|
||
// When we have a new service worker, update the caches and swap immediately. | ||
self.addEventListener("install", e => { | ||
e.waitUntil(precache().then(() => self.skipWaiting())); | ||
}); | ||
|
||
// Claim existing clients. | ||
self.addEventListener("activate", e => { | ||
e.waitUntil(self.clients.claim()); | ||
}); | ||
|
||
// When a resource need to be fetched, check whether it is | ||
// contained in the cache and return the cached version, otherwise | ||
// get it from the network. | ||
self.addEventListener("fetch", e => { | ||
e.respondWith(networkFallbackToCache(e.request)); | ||
}); |
Binary file added
BIN
+1.48 KB
.../web_tests/external/wpt/appmanifest/protocol_handlers-member/resources/icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
18 changes: 18 additions & 0 deletions
18
...l/wpt/appmanifest/protocol_handlers-member/resources/protocol_handlers-member.webmanifest
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
{ | ||
"name": "Protocol_handlers test", | ||
"icons": [ | ||
{ | ||
"src": "icon.png", | ||
"sizes": "144x144" | ||
} | ||
], | ||
"start_url": "../protocol_handlers-member-manual.tentative.html", | ||
"display": "standalone", | ||
"scope": "../../protocol_handlers-member/", | ||
"protocol_handlers": [ | ||
{ | ||
"protocol": "web+testing", | ||
"url": "protocol_handlers_entry.html?value=%s" | ||
} | ||
] | ||
} |
1 change: 1 addition & 0 deletions
1
...pmanifest/protocol_handlers-member/resources/protocol_handlers-member.webmanifest.headers
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
Content-Type: application/manifest+json; charset=utf-8 |
19 changes: 19 additions & 0 deletions
19
.../external/wpt/appmanifest/protocol_handlers-member/resources/protocol_handlers_entry.html
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
<!DOCTYPE html> | ||
<html lang="en"> | ||
<head> | ||
<meta charset="utf-8"> | ||
<title>Protocol Handling Web Platform Test - Pass</title> | ||
<script src="/resources/testharness.js"></script> | ||
<script src="/resources/testharnessreport.js"></script> | ||
<script> | ||
setup({ single_test: true }); | ||
const urlParams = new URLSearchParams(window.location.search); | ||
assert_equals(urlParams.get('value'), "web+testing://test-url/"); | ||
done(); | ||
</script> | ||
</head> | ||
<body> | ||
<h1>Protocol Handling Page</h1> | ||
<p>This test validates that the app was launched with the web+testing://test-url/ URL.</p> | ||
</body> | ||
</html> |