diff --git a/shared/browsers.go b/shared/browsers.go index 25e148d289..a7cb31fd0c 100644 --- a/shared/browsers.go +++ b/shared/browsers.go @@ -14,7 +14,7 @@ var defaultBrowsers = []string{ // An extra list of known browsers. var extraBrowsers = []string{ - "android_webview", "chrome_android", "chrome_ios", "chromium", "deno", "epiphany", "firefox_android", "flow", "ladybird", "node.js", "servo", "uc", "wktr", "webkitgtk", "wpewebkit", + "android_webview", "blitz", "chrome_android", "chrome_ios", "chromium", "deno", "epiphany", "firefox_android", "flow", "ladybird", "node.js", "servo", "uc", "wktr", "webkitgtk", "wpewebkit", } var allBrowsers mapset.Set diff --git a/shared/browsers_test.go b/shared/browsers_test.go index f5945dda31..f79fff2566 100644 --- a/shared/browsers_test.go +++ b/shared/browsers_test.go @@ -20,6 +20,7 @@ func TestGetDefaultBrowserNames(t *testing.T) { // Non default browser names: for _, n := range names { assert.NotEqual(t, "android_webview", n) + assert.NotEqual(t, "blitz", n) assert.NotEqual(t, "chrome_android", n) assert.NotEqual(t, "chrome_ios", n) assert.NotEqual(t, "chromium", n) @@ -38,6 +39,7 @@ func TestGetDefaultBrowserNames(t *testing.T) { } func TestIsBrowserName(t *testing.T) { + assert.True(t, IsBrowserName("blitz")) assert.True(t, IsBrowserName("chrome")) assert.True(t, IsBrowserName("chromium")) assert.True(t, IsBrowserName("deno")) diff --git a/shared/product_spec.go b/shared/product_spec.go index 306f587ae9..bbb375daca 100644 --- a/shared/product_spec.go +++ b/shared/product_spec.go @@ -70,6 +70,8 @@ func (p ProductSpec) IsExperimental() bool { // DisplayName returns a capitalized version of the product's name. func (p ProductSpec) DisplayName() string { switch p.BrowserName { + case "blitz": + return "Blitz" case "chrome": return "Chrome" case "chromium": diff --git a/webapp/components/product-info.js b/webapp/components/product-info.js index 2de058a1be..0d20083d73 100644 --- a/webapp/components/product-info.js +++ b/webapp/components/product-info.js @@ -10,6 +10,7 @@ const DisplayNames = (() => { ['firefox', 'firefox-experimental'].forEach(n => m.set(n, 'Firefox')); ['safari', 'safari-experimental'].forEach(n => m.set(n, 'Safari')); m.set('android_webview', 'WebView'); + m.set('blitz', 'Blitz'); m.set('chrome_android', 'ChromeAndroid'); m.set('chrome_ios', 'ChromeIOS'); m.set('chromium', 'Chromium'); @@ -50,7 +51,7 @@ const versionPatterns = Object.freeze({ }); // The set of all browsers known to the wpt.fyi UI. -const AllBrowserNames = Object.freeze(['android_webview', 'chrome_android', 'chrome_ios', 'chrome', +const AllBrowserNames = Object.freeze(['android_webview', 'blitz', 'chrome_android', 'chrome_ios', 'chrome', 'chromium', 'deno', 'edge', 'firefox_android', 'firefox', 'flow', 'ladybird', 'node.js', 'safari', 'servo', 'webkitgtk', 'wpewebkit', 'wktr']); // The list of default browsers used in cases where the user has not otherwise @@ -184,7 +185,7 @@ const ProductInfo = (superClass) => class extends superClass { // although it would be better to have some variant of the Firefox logo. return '/static/geckoview_64x64.png'; - } else if (name !== 'chromium' && name !== 'deno' && name !== 'flow' && name !== 'ladybird' && name !== 'node.js' && name !== 'servo' && name !== 'wktr' && name !== 'webkitgtk' && name !== 'wpewebkit') { // Products without per-channel logos. + } else if (name !== 'blitz' && name !== 'chromium' && name !== 'deno' && name !== 'flow' && name !== 'ladybird' && name !== 'node.js' && name !== 'servo' && name !== 'wktr' && name !== 'webkitgtk' && name !== 'wpewebkit') { // Products without per-channel logos. let channel; const candidates = ['beta', 'dev', 'canary', 'nightly', 'preview']; for (const label of candidates) { diff --git a/webapp/components/test/wpt-amend-metadata.html b/webapp/components/test/wpt-amend-metadata.html index bbab82f59a..d3251eb2c1 100644 --- a/webapp/components/test/wpt-amend-metadata.html +++ b/webapp/components/test/wpt-amend-metadata.html @@ -167,6 +167,7 @@ expect(appFixture.getSearchURL('/a/b.html', 'wpewebkit')).to.equal('https://bugs.webkit.org/buglist.cgi?quicksearch="/a/b"'); expect(appFixture.getSearchURL('/a/b.html', 'servo')).to.equal('https://github.com/servo/servo/issues?q="/a/b"'); expect(appFixture.getSearchURL('/a/b.html', 'ladybird')).to.equal('https://github.com/LadybirdBrowser/ladybird/issues?q="/a/b"'); + expect(appFixture.getSearchURL('/a/b.html', 'blitz')).to.equal('https://github.com/DioxusLabs/blitz/issues?q="/a/b"'); }); test('hasFileIssueURL', () => { expect(appFixture.hasFileIssueURL('')).to.be.true; diff --git a/webapp/components/wpt-amend-metadata.js b/webapp/components/wpt-amend-metadata.js index 686d35569f..236b477659 100644 --- a/webapp/components/wpt-amend-metadata.js +++ b/webapp/components/wpt-amend-metadata.js @@ -309,6 +309,7 @@ class AmendMetadata extends LoadingState(PathInfo(ProductInfo(PolymerElement))) hasSearchURL(product) { return [ + 'blitz', 'chrome', 'chromium', 'deno', @@ -332,6 +333,10 @@ class AmendMetadata extends LoadingState(PathInfo(ProductInfo(PolymerElement))) testName = testName.replace(/((\/\*)?$)/, ''); } + if (product === 'blitz') { + return `https://github.com/DioxusLabs/blitz/issues?q="${testName}"`; + } + if (product === 'chrome' || product === 'chromium' || product === 'edge') { return `https://issues.chromium.org/issues?q="${testName}"`; } diff --git a/webapp/static/blitz_64x64.png b/webapp/static/blitz_64x64.png new file mode 100644 index 0000000000..123c651c18 Binary files /dev/null and b/webapp/static/blitz_64x64.png differ