diff --git a/DEPS b/DEPS index c22fb81..55fab36 100644 --- a/DEPS +++ b/DEPS
@@ -300,7 +300,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling Skia # and whatever else without interference from each other. - 'skia_revision': '0af809b0e7ceb3961adc0bb1110d0c58f825f447', + 'skia_revision': '69f7860093b4ec7971d1e3bee458847aa849c351', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling V8 # and whatever else without interference from each other. @@ -308,7 +308,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling ANGLE # and whatever else without interference from each other. - 'angle_revision': '2ec39fd22fe94c607deb350b093421673fa1d6b8', + 'angle_revision': '42bd78b29cb6aa037eb99d0797278939b864ef93', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling SwiftShader # and whatever else without interference from each other. @@ -371,7 +371,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling catapult # and whatever else without interference from each other. - 'catapult_revision': '4f43388d908cb2c5e3cf788a9018be512b6c7653', + 'catapult_revision': 'f8c80ae9df47d699e6c81153839e26bb4ee3b8ba', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling CrossBench # and whatever else without interference from each other. @@ -387,7 +387,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling devtools-frontend # and whatever else without interference from each other. - 'devtools_frontend_revision': 'b8427abadb0fdc9a141b64573836a17dae7651ca', + 'devtools_frontend_revision': '23cde35228250b831d70b63ab76d05ab4d193129', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling libprotobuf-mutator # and whatever else without interference from each other. @@ -427,7 +427,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling feed # and whatever else without interference from each other. - 'dawn_revision': 'a3e197fba4109cdabbc2fda09a0bb519f87bdb3c', + 'dawn_revision': '858ccc8a0c926599868d4e00417a229a1c809d75', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling feed # and whatever else without interference from each other. @@ -447,7 +447,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling libavif # and whatever else without interference from each other. - 'libavif_revision': '094e6166339bc317d54b42460232c28193ea4daf', + 'libavif_revision': '99be03b67e3690c5b0face3f7e8e2d4977099564', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling nearby # and whatever else without interference from each other. @@ -808,12 +808,12 @@ 'src/clank': { 'url': Var('chrome_git') + '/clank/internal/apps.git' + '@' + - '4b1699a325c46130c900f9b628622bb41ae11542', + '5a5f5f4e7f9ef4164d883cb918ac59c851c3e650', 'condition': 'checkout_android and checkout_src_internal', }, 'src/docs/website': { - 'url': Var('chromium_git') + '/website.git' + '@' + '1128ca7a99b4e1520df8b82c9cabdd512cfdc6fd', + 'url': Var('chromium_git') + '/website.git' + '@' + 'c9a465a1489131337335476365deb50a7f158cb3', }, 'src/ios/third_party/earl_grey2/src': { @@ -837,7 +837,7 @@ }, 'src/ios/third_party/material_components_ios/src': { - 'url': Var('chromium_git') + '/external/github.com/material-components/material-components-ios.git' + '@' + '0c79f8bf91435d96c0a7022055f9206acc3f9174', + 'url': Var('chromium_git') + '/external/github.com/material-components/material-components-ios.git' + '@' + '4ca20170cd25d0c963cc73ded2e63927defcb2e8', 'condition': 'checkout_ios', }, @@ -1046,7 +1046,7 @@ 'packages': [ { 'package': 'chromium/third_party/android_build_tools/bundletool', - 'version': 'Xt6znihJ60Ym06wn163_2B0HOt2tNsV5fVy-BpYJZcMC', + 'version': 'LbB0aRQ3VKjRJZmc_PD0VTZ1O34_zD92rh71aOEOEcEC', }, ], 'condition': 'checkout_android', @@ -1200,7 +1200,7 @@ # Tools used when building Chrome for Chrome OS. This affects both the Simple # Chrome workflow, as well as the chromeos-chrome ebuild. 'src/third_party/chromite': { - 'url': Var('chromium_git') + '/chromiumos/chromite.git' + '@' + '7e05dbf6aa5ac8c8bf56e8a68140e3619b1bfe92', + 'url': Var('chromium_git') + '/chromiumos/chromite.git' + '@' + 'c4f366a31e8b496d783ee6906ac3533738bb099c', 'condition': 'checkout_chromeos', }, @@ -1232,13 +1232,13 @@ }, 'src/third_party/depot_tools': - Var('chromium_git') + '/chromium/tools/depot_tools.git' + '@' + '63d20c330ba3ba5f644ade9e50b22ef3be09c1b8', + Var('chromium_git') + '/chromium/tools/depot_tools.git' + '@' + '02838e6f4e7efd4a15d6ff1567a3b4406d7f0e81', 'src/third_party/devtools-frontend/src': Var('chromium_git') + '/devtools/devtools-frontend' + '@' + Var('devtools_frontend_revision'), 'src/third_party/devtools-frontend-internal': { - 'url': Var('chrome_git') + '/devtools/devtools-internal.git' + '@' + 'ba4eb2e1187d26c611c4885b7cb0cf627eb87059', + 'url': Var('chrome_git') + '/devtools/devtools-internal.git' + '@' + '4ae3148452ed3df7d1f7aa872c98185686904f6a', 'condition': 'checkout_src_internal', }, @@ -1246,7 +1246,7 @@ Var('chromium_git') + '/chromium/dom-distiller/dist.git' + '@' + '199de96b345ada7c6e7e6ba3d2fa7a6911b8767d', 'src/third_party/eigen3/src': - Var('chromium_git') + '/external/gitlab.com/libeigen/eigen.git' + '@' + '2709f4c8fbbe71a5383de1ba27e9833f218a642d', + Var('chromium_git') + '/external/gitlab.com/libeigen/eigen.git' + '@' + 'c18f94e3b017104284cd541e553472e62e85e526', 'src/third_party/emoji-metadata/src': { 'url': Var('chromium_git') + '/external/github.com/googlefonts/emoji-metadata' + '@' + '045f146fca682a836e01cd265171312bfb300e06', @@ -1694,7 +1694,7 @@ Var('chromium_git') + '/external/github.com/cisco/openh264' + '@' + '09a4f3ec842a8932341b195c5b01e141c8a16eb7', 'src/third_party/openscreen/src': - Var('chromium_git') + '/openscreen' + '@' + 'd052a5556a78aa4463852e29919d616b47237842', + Var('chromium_git') + '/openscreen' + '@' + 'c47d0472ab9210a246abd94b0361d9b5b53659e3', 'src/third_party/openxr/src': { 'url': Var('chromium_git') + '/external/github.com/KhronosGroup/OpenXR-SDK' + '@' + '58a00cf85c39ad5ec4dc43a769624e420c06179a', @@ -1705,7 +1705,7 @@ Var('pdfium_git') + '/pdfium.git' + '@' + Var('pdfium_revision'), 'src/third_party/perfetto': - Var('android_git') + '/platform/external/perfetto.git' + '@' + '86ba039eec4889624d5c44a4ebf19b18d8df91cc', + Var('android_git') + '/platform/external/perfetto.git' + '@' + 'ab5c58d254d434ec35022ff5c8dfa437ff34ac6d', 'src/third_party/perl': { 'url': Var('chromium_git') + '/chromium/deps/perl.git' + '@' + '6f3e5028eb65d0b4c5fdd792106ac4c84eee1eb3', @@ -1783,7 +1783,7 @@ }, 'src/third_party/ruy/src': - Var('chromium_git') + '/external/github.com/google/ruy.git' + '@' + 'c19139f55a94493086561288b243eaeec9d58353', + Var('chromium_git') + '/external/github.com/google/ruy.git' + '@' + '72d107f88082aeca462ffbe91b3a3b0e02686a73', 'src/third_party/skia': Var('skia_git') + '/skia.git' + '@' + Var('skia_revision'), @@ -1837,7 +1837,7 @@ Var('chromium_git') + '/external/github.com/GoogleChromeLabs/text-fragments-polyfill.git' + '@' + 'c036420683f672d685e27415de0a5f5e85bdc23f', 'src/third_party/tflite/src': - Var('chromium_git') + '/external/github.com/tensorflow/tensorflow.git' + '@' + 'ce9330a360c4a91df22799131f5c4fd45e5f223e', + Var('chromium_git') + '/external/github.com/tensorflow/tensorflow.git' + '@' + 'be1a33f1566b40bd43ecfc53dbd8c3dfbc7f2aa1', 'src/third_party/turbine': { 'packages': [ @@ -1850,7 +1850,7 @@ 'dep_type': 'cipd', }, - 'src/third_party/vulkan-deps': '{chromium_git}/vulkan-deps@8a3971e5e9c5cddc437d1cf5e4ac1ed0728d6a49', + 'src/third_party/vulkan-deps': '{chromium_git}/vulkan-deps@94574e5c2e14614aae7251f26a5492fec966abf0', 'src/third_party/vulkan_memory_allocator': Var('chromium_git') + '/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator.git' + '@' + 'ebe84bec02c041d28f902da0214bf442743fc907', @@ -1890,7 +1890,7 @@ Var('chromium_git') + '/external/github.com/gpuweb/cts.git' + '@' + '9e1c8491ce514c0c65e01f5b8bec509d88fdd536', 'src/third_party/webrtc': - Var('webrtc_git') + '/src.git' + '@' + '2eacbbc03a4a41ea658661225eb1c8fc07884c33', + Var('webrtc_git') + '/src.git' + '@' + '4daa4e6b2f733e18d411ab7fba16ddd3431b3ff0', # Wuffs' canonical repository is at github.com/google/wuffs, but we use # Skia's mirror of Wuffs, the same as in upstream Skia's DEPS file. @@ -1980,7 +1980,7 @@ Var('chromium_git') + '/v8/v8.git' + '@' + Var('v8_revision'), 'src-internal': { - 'url': Var('chrome_git') + '/chrome/src-internal.git@4d6e6def44e5a6c65a319c537567bb4659e2f63f', + 'url': Var('chrome_git') + '/chrome/src-internal.git@31b311b25460fcf03f3147e69278526c78e18a22', 'condition': 'checkout_src_internal', }, @@ -2021,7 +2021,7 @@ 'packages': [ { 'package': 'chromeos_internal/apps/media_app/app', - 'version': 'bgUk_78VcVLYExlsZoi_-F-Z2YdqGCEXAqjkepE56PwC', + 'version': 'mNd-TXITVIMNgGUojaN0yxKq8YkyCG6ftMV1IzKJcjoC', }, ], 'condition': 'checkout_chromeos and checkout_src_internal', @@ -4179,7 +4179,7 @@ 'src/ios_internal': { 'url': '{chrome_git}/chrome/ios_internal.git' + '@' + - '8a8d126735ea6681d302d4dcbc3f43740456db51', + '615fe910141aff7025226dd516e5f9fe649d5708', 'condition': 'checkout_ios and checkout_src_internal', },
diff --git a/android_webview/BUILD.gn b/android_webview/BUILD.gn index ff9be24..8381fd7 100644 --- a/android_webview/BUILD.gn +++ b/android_webview/BUILD.gn
@@ -619,10 +619,10 @@ ] deps = [ ":common_aidl_java", - ":common_crash_java", ":common_java", ":common_platform_services_java", ":common_variations_java", + ":crash_client_java", ":resources", "//android_webview/proto:metrics_bridge_records_proto_java", "//base:base_java", @@ -723,20 +723,12 @@ deps = [ ":common_platform_services_java" ] } -android_library("common_crash_java") { - sources = [ - "java/src/org/chromium/android_webview/common/crash/AwCrashReporterClient.java", - "java/src/org/chromium/android_webview/common/crash/CrashInfo.java", - "java/src/org/chromium/android_webview/common/crash/CrashUploadUtil.java", - "java/src/org/chromium/android_webview/common/crash/SystemWideCrashDirectories.java", - ] +android_library("crash_client_java") { + sources = [ "java/src/org/chromium/android_webview/common/crash/AwCrashReporterClient.java" ] deps = [ - ":common_java", "//base:base_java", "//base:jni_java", - "//components/background_task_scheduler:background_task_scheduler_task_ids_java", - "//components/minidump_uploader:minidump_uploader_java", "//third_party/androidx:androidx_annotation_annotation_java", ] annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ]
diff --git a/android_webview/browser/aw_content_browser_client.cc b/android_webview/browser/aw_content_browser_client.cc index 8cdf7bb..716c12b2 100644 --- a/android_webview/browser/aw_content_browser_client.cc +++ b/android_webview/browser/aw_content_browser_client.cc
@@ -1126,4 +1126,13 @@ return false; // WebView does not support web-only attribution. } +bool AwContentBrowserClient::ShouldUseOsWebSourceAttributionReporting() { + // WebView should register sources as from the app instead of the web. + // Web registration APIs currently require a special registration + // from the app in Android for registering sources. The more common case + // for a webview is that the app does not have this registration, + // so we instead register attribution events against the embedding app. + return false; +} + } // namespace android_webview
diff --git a/android_webview/browser/aw_content_browser_client.h b/android_webview/browser/aw_content_browser_client.h index 9c0a65c1..1b3dc44d 100644 --- a/android_webview/browser/aw_content_browser_client.h +++ b/android_webview/browser/aw_content_browser_client.h
@@ -264,6 +264,7 @@ const url::Origin* destination_origin, const url::Origin* reporting_origin) override; bool IsWebAttributionReportingAllowed() override; + bool ShouldUseOsWebSourceAttributionReporting() override; blink::mojom::OriginTrialsSettingsPtr GetOriginTrialsSettings() override; AwFeatureListCreator* aw_feature_list_creator() {
diff --git a/android_webview/java/src/org/chromium/android_webview/AwContents.java b/android_webview/java/src/org/chromium/android_webview/AwContents.java index 44085c9..81f0e37e 100644 --- a/android_webview/java/src/org/chromium/android_webview/AwContents.java +++ b/android_webview/java/src/org/chromium/android_webview/AwContents.java
@@ -2550,6 +2550,9 @@ */ public void goBackOrForward(int steps) { if (TRACE) Log.i(TAG, "%s goBackOrForward=%d", this, steps); + if (!canGoBackOrForward(steps)) { + return; + } if (!isDestroyed(WARN)) mNavigationController.goToOffset(steps); }
diff --git a/android_webview/javatests/src/org/chromium/android_webview/test/common/crash/CrashInfoTest.java b/android_webview/javatests/src/org/chromium/android_webview/test/common/crash/CrashInfoTest.java deleted file mode 100644 index a25fe9b..0000000 --- a/android_webview/javatests/src/org/chromium/android_webview/test/common/crash/CrashInfoTest.java +++ /dev/null
@@ -1,145 +0,0 @@ -// Copyright 2020 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package org.chromium.android_webview.test.common.crash; - -import static org.chromium.android_webview.test.OnlyRunIn.ProcessMode.SINGLE_PROCESS; -import static org.chromium.android_webview.test.common.crash.CrashInfoEqualityMatcher.equalsTo; - -import androidx.test.filters.SmallTest; - -import org.json.JSONObject; -import org.junit.Assert; -import org.junit.Test; -import org.junit.runner.RunWith; - -import org.chromium.android_webview.common.crash.CrashInfo; -import org.chromium.android_webview.common.crash.CrashInfo.UploadState; -import org.chromium.android_webview.test.AwJUnit4ClassRunner; -import org.chromium.android_webview.test.OnlyRunIn; -import org.chromium.base.test.util.Batch; - -import java.util.HashMap; -import java.util.Map; - -/** - * Unit tests for CrashInfo. - */ -@RunWith(AwJUnit4ClassRunner.class) -@OnlyRunIn(SINGLE_PROCESS) // These are unit tests -@Batch(Batch.UNIT_TESTS) -public class CrashInfoTest { - /** - * Create a {@link CrashInfo} object for testing. - * - * {@code appPackageName} is used as a representative of crash keys in tests. - */ - public static CrashInfo createCrashInfo(String localId, long captureTime, String uploadId, - long uploadTime, String appPackageName, UploadState state) { - Map<String, String> crashKeys = new HashMap<>(); - if (appPackageName != null) { - crashKeys.put("app-package-name", appPackageName); - } - CrashInfo crashInfo = new CrashInfo(localId, crashKeys); - crashInfo.captureTime = captureTime; - crashInfo.uploadId = uploadId; - crashInfo.uploadTime = uploadTime; - crashInfo.uploadState = state; - - return crashInfo; - } - - /** - * Create a hidden {@link CrashInfo} object for testing. - * - * {@code appPackageName} is used as a representative of crash keys in tests. - */ - public static CrashInfo createHiddenCrashInfo(String localId, long captureTime, String uploadId, - long uploadTime, String appPackageName, UploadState state) { - CrashInfo crashInfo = - createCrashInfo(localId, captureTime, uploadId, uploadTime, appPackageName, state); - crashInfo.isHidden = true; - - return crashInfo; - } - - /** - * Test that merging two {@code CrashInfo} objects works correctly. - */ - @Test - @SmallTest - public void testMergeCrashInfo() { - CrashInfo a = createCrashInfo("123456", 10987654321L, null, -1, "org.test.package", null); - CrashInfo b = - createCrashInfo("123456", -1, "abcdefg", 12345678910L, null, UploadState.UPLOADED); - - CrashInfo merged = new CrashInfo(a, b); - CrashInfo expected = createCrashInfo("123456", 10987654321L, "abcdefg", 12345678910L, - "org.test.package", UploadState.UPLOADED); - Assert.assertThat(merged, equalsTo(expected)); - } - - /** - * Test that merging two {@code CrashInfo} objects works correctly. - */ - @Test - @SmallTest - public void testMergeCrashInfo_differentUploadStates() { - CrashInfo a = createCrashInfo("123456", -1, null, -1, null, UploadState.PENDING); - CrashInfo b = createCrashInfo("123456", -1, "abcdefg", -1, null, UploadState.UPLOADED); - - CrashInfo merged = new CrashInfo(a, b); - CrashInfo expected = - createCrashInfo("123456", -1, "abcdefg", -1, null, UploadState.UPLOADED); - // UPLOADED state is the merge result, regardless of order. - Assert.assertThat(merged, equalsTo(expected)); - } - - /** - * Test that merging two {@code CrashInfo} objects works correctly. - */ - @Test - @SmallTest - public void testMergeCrashInfo_differentCaptureTime() { - CrashInfo a = createCrashInfo("123456", 1234567, null, -1, null, null); - CrashInfo b = createCrashInfo("123456", 1234555, null, -1, null, null); - - CrashInfo merged = new CrashInfo(a, b); - CrashInfo expected = createCrashInfo("123456", 1234555, null, -1, null, null); - // Older capture time is the merging result regardless of the order. - Assert.assertThat(merged, equalsTo(expected)); - } - - /** - * Test compitability with old JSON format. - */ - @Test - @SmallTest - public void testSerializeToJson() throws Throwable { - final String jsonObjectString = - "{'crash-local-id':'123456abc','crash-capture-time':1234567890," - + "'crash-is-hidden':false," - + "'crash-keys':{'app-package-name':'org.test.package'}}"; - JSONObject expectedJsonObject = new JSONObject(jsonObjectString); - - CrashInfo c = createCrashInfo("123456abc", 1234567890, null, -1, "org.test.package", null); - Assert.assertEquals(c.serializeToJson(), expectedJsonObject.toString()); - } - - /** - * Test compitability with old JSON format. - */ - @Test - @SmallTest - public void testReadFromJsonString() throws Throwable { - final String jsonObjectString = - "{'crash-local-id':'123456abc','crash-capture-time':1234567890," - + "'crash-keys':{'app-package-name':'org.test.package'}}"; - - CrashInfo parsed = CrashInfo.readFromJsonString(jsonObjectString); - CrashInfo expected = - createCrashInfo("123456abc", 1234567890, null, -1, "org.test.package", null); - Assert.assertThat(parsed, equalsTo(expected)); - } -} \ No newline at end of file
diff --git a/android_webview/javatests/src/org/chromium/android_webview/test/devui/CrashesListFragmentTest.java b/android_webview/javatests/src/org/chromium/android_webview/test/devui/CrashesListFragmentTest.java index fec8f2c17..943dc47 100644 --- a/android_webview/javatests/src/org/chromium/android_webview/test/devui/CrashesListFragmentTest.java +++ b/android_webview/javatests/src/org/chromium/android_webview/test/devui/CrashesListFragmentTest.java
@@ -24,7 +24,7 @@ import static org.hamcrest.Matchers.is; import static org.hamcrest.Matchers.not; -import static org.chromium.android_webview.test.common.crash.CrashInfoTest.createCrashInfo; +import static org.chromium.android_webview.nonembedded.crash.CrashInfo.createCrashInfoForTesting; import static org.chromium.android_webview.test.devui.DeveloperUiTestUtils.getClipBoardTextOnUiThread; import static org.chromium.android_webview.test.devui.DeveloperUiTestUtils.setClipBoardTextOnUiThread; import static org.chromium.android_webview.test.devui.DeveloperUiTestUtils.withCount; @@ -63,16 +63,16 @@ import org.junit.runner.RunWith; import org.chromium.android_webview.common.PlatformServiceBridge; -import org.chromium.android_webview.common.crash.CrashInfo; -import org.chromium.android_webview.common.crash.CrashInfo.UploadState; -import org.chromium.android_webview.common.crash.CrashUploadUtil; -import org.chromium.android_webview.common.crash.CrashUploadUtil.CrashUploadDelegate; -import org.chromium.android_webview.common.crash.SystemWideCrashDirectories; import org.chromium.android_webview.devui.CrashesListFragment; import org.chromium.android_webview.devui.MainActivity; import org.chromium.android_webview.devui.R; import org.chromium.android_webview.devui.WebViewPackageError; import org.chromium.android_webview.devui.util.CrashBugUrlFactory; +import org.chromium.android_webview.nonembedded.crash.CrashInfo; +import org.chromium.android_webview.nonembedded.crash.CrashInfo.UploadState; +import org.chromium.android_webview.nonembedded.crash.CrashUploadUtil; +import org.chromium.android_webview.nonembedded.crash.CrashUploadUtil.CrashUploadDelegate; +import org.chromium.android_webview.nonembedded.crash.SystemWideCrashDirectories; import org.chromium.android_webview.nonembedded_util.WebViewPackageHelper; import org.chromium.android_webview.test.AwJUnit4ClassRunner; import org.chromium.base.Callback; @@ -386,7 +386,7 @@ @Feature({"AndroidWebView"}) public void testShowingSingleCrashReport_uploaded() throws Throwable { final long systemTime = System.currentTimeMillis(); - CrashInfo crashInfo = createCrashInfo("123456", systemTime, "0abcde123456", + CrashInfo crashInfo = createCrashInfoForTesting("123456", systemTime, "0abcde123456", systemTime + 1000, FAKE_APP_PACKAGE_NAME, UploadState.UPLOADED); assertThat("temp json log file should exist", writeJsonLogFile(crashInfo).exists()); @@ -423,7 +423,7 @@ @Feature({"AndroidWebView"}) public void testOpenBugReportCrash() throws Throwable { final long systemTime = System.currentTimeMillis(); - CrashInfo crashInfo = createCrashInfo("123456", systemTime, "0abcde123456", + CrashInfo crashInfo = createCrashInfoForTesting("123456", systemTime, "0abcde123456", systemTime + 1000, FAKE_APP_PACKAGE_NAME, UploadState.UPLOADED); assertThat("temp json log file should exist", writeJsonLogFile(crashInfo).exists()); @@ -472,7 +472,7 @@ @Feature({"AndroidWebView"}) public void testShowingSingleCrashReport_pending() throws Throwable { final long systemTime = System.currentTimeMillis(); - CrashInfo crashInfo = createCrashInfo( + CrashInfo crashInfo = createCrashInfoForTesting( "123456", systemTime, null, -1, FAKE_APP_PACKAGE_NAME, UploadState.PENDING); assertThat("temp minidump file should exist", createMinidumpFile(crashInfo).exists()); @@ -511,8 +511,8 @@ @Feature({"AndroidWebView"}) public void testShowingSingleCrashReport_pendingUserRequest() throws Throwable { final long systemTime = System.currentTimeMillis(); - CrashInfo crashInfo = createCrashInfo("123456", systemTime, null, -1, FAKE_APP_PACKAGE_NAME, - UploadState.PENDING_USER_REQUESTED); + CrashInfo crashInfo = createCrashInfoForTesting("123456", systemTime, null, -1, + FAKE_APP_PACKAGE_NAME, UploadState.PENDING_USER_REQUESTED); assertThat("temp minidump file should exist", createMinidumpFile(crashInfo).exists()); assertThat("temp json log file should exist", writeJsonLogFile(crashInfo).exists()); @@ -549,7 +549,7 @@ @Feature({"AndroidWebView"}) public void testShowingSingleCrashReport_skipped() throws Throwable { final long systemTime = System.currentTimeMillis(); - CrashInfo crashInfo = createCrashInfo( + CrashInfo crashInfo = createCrashInfoForTesting( "123456", systemTime, null, -1, FAKE_APP_PACKAGE_NAME, UploadState.SKIPPED); assertThat("temp minidump file should exist", createMinidumpFile(crashInfo).exists()); @@ -588,7 +588,7 @@ @Feature({"AndroidWebView"}) public void testForceUploadSkippedCrashReport_noWifi() throws Throwable { final long systemTime = System.currentTimeMillis(); - CrashInfo crashInfo = createCrashInfo( + CrashInfo crashInfo = createCrashInfoForTesting( "123456", systemTime, null, -1, FAKE_APP_PACKAGE_NAME, UploadState.SKIPPED); File minidumpFile = createMinidumpFile(crashInfo); @@ -654,7 +654,7 @@ @Feature({"AndroidWebView"}) public void testForceUploadSkippedCrashReport_withWifi() throws Throwable { final long systemTime = System.currentTimeMillis(); - CrashInfo crashInfo = createCrashInfo( + CrashInfo crashInfo = createCrashInfoForTesting( "123456", systemTime, null, -1, FAKE_APP_PACKAGE_NAME, UploadState.SKIPPED); File minidumpFile = createMinidumpFile(crashInfo); @@ -721,7 +721,7 @@ "This test assumes \"com.android.settings\" package is available", appInfo); final long systemTime = System.currentTimeMillis(); - CrashInfo crashInfo = createCrashInfo( + CrashInfo crashInfo = createCrashInfoForTesting( "123456", systemTime, null, -1, appPackageName, UploadState.PENDING); assertThat("temp minidump file should exist", createMinidumpFile(crashInfo).exists()); @@ -746,8 +746,8 @@ // Test when app package name field is missing in the crash info. public void testMissingPackageInfo() throws Throwable { final long systemTime = System.currentTimeMillis(); - CrashInfo crashInfo = - createCrashInfo("123456", systemTime, null, -1, null, UploadState.PENDING); + CrashInfo crashInfo = createCrashInfoForTesting( + "123456", systemTime, null, -1, null, UploadState.PENDING); assertThat("temp minidump file should exist", createMinidumpFile(crashInfo).exists()); assertThat("temp json log file should exist", writeJsonLogFile(crashInfo).exists()); @@ -766,7 +766,8 @@ @Feature({"AndroidWebView"}) // Test when crash is missing json, but has upload log file and minidump. public void testShowingSingleCrashReport_uploaded_missingJson() throws Throwable { - CrashInfo crashInfo = createCrashInfo("123456", -1, null, 1000, null, UploadState.UPLOADED); + CrashInfo crashInfo = + createCrashInfoForTesting("123456", -1, null, 1000, null, UploadState.UPLOADED); assertThat("temp minidump file should exist", createMinidumpFile(crashInfo).exists()); assertThat("upload log file should exist", appendUploadedEntryToLog(crashInfo).exists()); @@ -785,7 +786,8 @@ @Feature({"AndroidWebView"}) // Test when crash is missing json, but has upload log file and minidump. public void testShowingSingleCrashReport_pending_missingJson() throws Throwable { - CrashInfo crashInfo = createCrashInfo("123456", -1, null, 1000, null, UploadState.PENDING); + CrashInfo crashInfo = + createCrashInfoForTesting("123456", -1, null, 1000, null, UploadState.PENDING); assertThat("temp minidump file should exist", createMinidumpFile(crashInfo).exists()); @@ -808,8 +810,8 @@ for (int i = 0; i < crashReportsNum; ++i) { // Set capture time with an arbitrary chosen 2 second difference to make sure crashes // are shown in descending order with most recent crash first. - crashInfo[i] = createCrashInfo("abcd" + Integer.toString(i), systemTime + i * 2000, - null, -1, FAKE_APP_PACKAGE_NAME, UploadState.PENDING); + crashInfo[i] = createCrashInfoForTesting("abcd" + Integer.toString(i), + systemTime + i * 2000, null, -1, FAKE_APP_PACKAGE_NAME, UploadState.PENDING); assertThat( "temp minidump file should exist", createMinidumpFile(crashInfo[i]).exists()); @@ -836,7 +838,7 @@ @Feature({"AndroidWebView"}) public void testHideCrashButton_uploaded() throws Throwable { final long systemTime = System.currentTimeMillis(); - CrashInfo crashInfo = createCrashInfo("123456", systemTime, "0abcde123456", + CrashInfo crashInfo = createCrashInfoForTesting("123456", systemTime, "0abcde123456", systemTime + 1000, FAKE_APP_PACKAGE_NAME, UploadState.UPLOADED); assertThat("temp json log file should exist", writeJsonLogFile(crashInfo).exists()); @@ -867,7 +869,7 @@ @Feature({"AndroidWebView"}) public void testHideCrashButton_pending() throws Throwable { final long systemTime = System.currentTimeMillis(); - CrashInfo crashInfo = createCrashInfo( + CrashInfo crashInfo = createCrashInfoForTesting( "123456", systemTime, null, -1, FAKE_APP_PACKAGE_NAME, UploadState.PENDING); assertThat("temp minidump file should exist", createMinidumpFile(crashInfo).exists()); @@ -897,7 +899,8 @@ @Test @Feature({"AndroidWebView"}) public void testHideCrashButton_uploaded_missingJson() throws Throwable { - CrashInfo crashInfo = createCrashInfo("123456", -1, null, 1000, null, UploadState.UPLOADED); + CrashInfo crashInfo = + createCrashInfoForTesting("123456", -1, null, 1000, null, UploadState.UPLOADED); assertThat("temp minidump file should exist", createMinidumpFile(crashInfo).exists()); assertThat("upload log file should exist", appendUploadedEntryToLog(crashInfo).exists()); @@ -926,7 +929,8 @@ @Test @Feature({"AndroidWebView"}) public void testHideCrashButton_pending_missingJson() throws Throwable { - CrashInfo crashInfo = createCrashInfo("123456", -1, null, -1, null, UploadState.PENDING); + CrashInfo crashInfo = + createCrashInfoForTesting("123456", -1, null, -1, null, UploadState.PENDING); assertThat("temp minidump file should exist", createMinidumpFile(crashInfo).exists()); @@ -963,7 +967,7 @@ onView(withId(R.id.crashes_list)).check(matches(withCount(0))); final long systemTime = System.currentTimeMillis(); - CrashInfo crashInfo = createCrashInfo( + CrashInfo crashInfo = createCrashInfoForTesting( "123456", systemTime, null, -1, FAKE_APP_PACKAGE_NAME, UploadState.PENDING); assertThat("temp minidump file should exist", createMinidumpFile(crashInfo).exists()); @@ -988,9 +992,9 @@ public void testLongPressCopy() throws Throwable { Context context = InstrumentationRegistry.getTargetContext(); final long systemTime = System.currentTimeMillis(); - CrashInfo uploadedCrashInfo = createCrashInfo("123456", systemTime - 1000, "0abcde123456", - systemTime, FAKE_APP_PACKAGE_NAME, UploadState.UPLOADED); - CrashInfo pendingCrashInfo = createCrashInfo( + CrashInfo uploadedCrashInfo = createCrashInfoForTesting("123456", systemTime - 1000, + "0abcde123456", systemTime, FAKE_APP_PACKAGE_NAME, UploadState.UPLOADED); + CrashInfo pendingCrashInfo = createCrashInfoForTesting( "78910", systemTime - 2000, null, -1, FAKE_APP_PACKAGE_NAME, UploadState.PENDING); assertThat("temp json log file for uploaded crash should exist",
diff --git a/android_webview/javatests/src/org/chromium/android_webview/test/devui/util/CrashBugUrlFactoryTest.java b/android_webview/javatests/src/org/chromium/android_webview/test/devui/util/CrashBugUrlFactoryTest.java index d1d9076..69ff6128 100644 --- a/android_webview/javatests/src/org/chromium/android_webview/test/devui/util/CrashBugUrlFactoryTest.java +++ b/android_webview/javatests/src/org/chromium/android_webview/test/devui/util/CrashBugUrlFactoryTest.java
@@ -23,8 +23,8 @@ import org.junit.Test; import org.junit.runner.RunWith; -import org.chromium.android_webview.common.crash.CrashInfo; import org.chromium.android_webview.devui.util.CrashBugUrlFactory; +import org.chromium.android_webview.nonembedded.crash.CrashInfo; import org.chromium.android_webview.test.AwJUnit4ClassRunner; import org.chromium.android_webview.test.OnlyRunIn; import org.chromium.base.test.util.Batch;
diff --git a/android_webview/javatests/src/org/chromium/android_webview/test/devui/util/UnuploadedFilesStateLoaderTest.java b/android_webview/javatests/src/org/chromium/android_webview/test/devui/util/UnuploadedFilesStateLoaderTest.java index 94972b4..1e3ffaa 100644 --- a/android_webview/javatests/src/org/chromium/android_webview/test/devui/util/UnuploadedFilesStateLoaderTest.java +++ b/android_webview/javatests/src/org/chromium/android_webview/test/devui/util/UnuploadedFilesStateLoaderTest.java
@@ -15,9 +15,9 @@ import org.junit.rules.TemporaryFolder; import org.junit.runner.RunWith; -import org.chromium.android_webview.common.crash.CrashInfo; -import org.chromium.android_webview.common.crash.CrashInfo.UploadState; import org.chromium.android_webview.devui.util.UnuploadedFilesStateLoader; +import org.chromium.android_webview.nonembedded.crash.CrashInfo; +import org.chromium.android_webview.nonembedded.crash.CrashInfo.UploadState; import org.chromium.android_webview.test.AwJUnit4ClassRunner; import org.chromium.android_webview.test.OnlyRunIn; import org.chromium.base.test.util.Batch;
diff --git a/android_webview/javatests/src/org/chromium/android_webview/test/devui/util/UploadedCrashesInfoLoaderTest.java b/android_webview/javatests/src/org/chromium/android_webview/test/devui/util/UploadedCrashesInfoLoaderTest.java index 243113a..f5ca3577 100644 --- a/android_webview/javatests/src/org/chromium/android_webview/test/devui/util/UploadedCrashesInfoLoaderTest.java +++ b/android_webview/javatests/src/org/chromium/android_webview/test/devui/util/UploadedCrashesInfoLoaderTest.java
@@ -14,9 +14,9 @@ import org.junit.Test; import org.junit.runner.RunWith; -import org.chromium.android_webview.common.crash.CrashInfo; -import org.chromium.android_webview.common.crash.CrashInfo.UploadState; import org.chromium.android_webview.devui.util.UploadedCrashesInfoLoader; +import org.chromium.android_webview.nonembedded.crash.CrashInfo; +import org.chromium.android_webview.nonembedded.crash.CrashInfo.UploadState; import org.chromium.android_webview.test.AwJUnit4ClassRunner; import org.chromium.android_webview.test.OnlyRunIn; import org.chromium.base.test.util.Batch;
diff --git a/android_webview/javatests/src/org/chromium/android_webview/test/devui/util/WebViewCrashInfoCollectorTest.java b/android_webview/javatests/src/org/chromium/android_webview/test/devui/util/WebViewCrashInfoCollectorTest.java index af7c9e8a..c1fa686 100644 --- a/android_webview/javatests/src/org/chromium/android_webview/test/devui/util/WebViewCrashInfoCollectorTest.java +++ b/android_webview/javatests/src/org/chromium/android_webview/test/devui/util/WebViewCrashInfoCollectorTest.java
@@ -8,10 +8,9 @@ import static org.hamcrest.Matchers.contains; import static org.hamcrest.Matchers.containsInAnyOrder; +import static org.chromium.android_webview.nonembedded.crash.CrashInfo.createCrashInfoForTesting; +import static org.chromium.android_webview.nonembedded.crash.CrashInfoEqualityMatcher.equalsTo; import static org.chromium.android_webview.test.OnlyRunIn.ProcessMode.SINGLE_PROCESS; -import static org.chromium.android_webview.test.common.crash.CrashInfoEqualityMatcher.equalsTo; -import static org.chromium.android_webview.test.common.crash.CrashInfoTest.createCrashInfo; -import static org.chromium.android_webview.test.common.crash.CrashInfoTest.createHiddenCrashInfo; import androidx.test.filters.SmallTest; @@ -21,13 +20,13 @@ import org.junit.Test; import org.junit.runner.RunWith; -import org.chromium.android_webview.common.crash.CrashInfo; -import org.chromium.android_webview.common.crash.CrashInfo.UploadState; -import org.chromium.android_webview.common.crash.SystemWideCrashDirectories; import org.chromium.android_webview.devui.util.CrashInfoLoader; import org.chromium.android_webview.devui.util.WebViewCrashInfoCollector; import org.chromium.android_webview.devui.util.WebViewCrashInfoCollector.CrashInfoLoadersFactory; import org.chromium.android_webview.devui.util.WebViewCrashLogParser; +import org.chromium.android_webview.nonembedded.crash.CrashInfo; +import org.chromium.android_webview.nonembedded.crash.CrashInfo.UploadState; +import org.chromium.android_webview.nonembedded.crash.SystemWideCrashDirectories; import org.chromium.android_webview.test.AwJUnit4ClassRunner; import org.chromium.android_webview.test.OnlyRunIn; import org.chromium.base.FileUtils; @@ -70,6 +69,20 @@ FileUtils.recursivelyDeleteFile(SystemWideCrashDirectories.getWebViewCrashLogDir(), null); } + /** + * Create a hidden {@link CrashInfo} object for testing. + * + * {@code appPackageName} is used as a representative of crash keys in tests. + */ + public static CrashInfo createHiddenCrash(String localId, long captureTime, String uploadId, + long uploadTime, String appPackageName, UploadState state) { + CrashInfo crashInfo = createCrashInfoForTesting( + localId, captureTime, uploadId, uploadTime, appPackageName, state); + crashInfo.isHidden = true; + + return crashInfo; + } + private static File writeJsonLogFile(CrashInfo crashInfo) throws IOException { File dir = SystemWideCrashDirectories.getOrCreateWebViewCrashLogDir(); File jsonFile = File.createTempFile(crashInfo.localId, ".json", dir); @@ -98,24 +111,26 @@ @Test @SmallTest public void testMergeDuplicates() { - List<CrashInfo> testList = Arrays.asList( - createCrashInfo("xyz123", 112233445566L, null, -1, null, UploadState.PENDING), - createCrashInfo( + List<CrashInfo> testList = Arrays.asList(createCrashInfoForTesting("xyz123", 112233445566L, + null, -1, null, UploadState.PENDING), + createCrashInfoForTesting( "def789", -1, "55667788", 123344556677L, null, UploadState.UPLOADED), - createCrashInfo("abc456", -1, null, -1, null, UploadState.PENDING), - createCrashInfo("xyz123", 112233445566L, null, -1, "com.test.package", null), - createCrashInfo("abc456", 445566778899L, null, -1, "org.test.package", null), - createCrashInfo("abc456", -1, null, -1, null, null), - createCrashInfo( + createCrashInfoForTesting("abc456", -1, null, -1, null, UploadState.PENDING), + createCrashInfoForTesting( + "xyz123", 112233445566L, null, -1, "com.test.package", null), + createCrashInfoForTesting( + "abc456", 445566778899L, null, -1, "org.test.package", null), + createCrashInfoForTesting("abc456", -1, null, -1, null, null), + createCrashInfoForTesting( "xyz123", -1, "11223344", 223344556677L, null, UploadState.UPLOADED)); List<CrashInfo> uniqueList = WebViewCrashInfoCollector.mergeDuplicates(testList); Assert.assertThat(uniqueList, - containsInAnyOrder(equalsTo(createCrashInfo("abc456", 445566778899L, null, -1, - "org.test.package", UploadState.PENDING)), - equalsTo(createCrashInfo("xyz123", 112233445566L, "11223344", 223344556677L, - "com.test.package", UploadState.UPLOADED)), - equalsTo(createCrashInfo("def789", -1, "55667788", 123344556677L, null, - UploadState.UPLOADED)))); + containsInAnyOrder(equalsTo(createCrashInfoForTesting("abc456", 445566778899L, null, + -1, "org.test.package", UploadState.PENDING)), + equalsTo(createCrashInfoForTesting("xyz123", 112233445566L, "11223344", + 223344556677L, "com.test.package", UploadState.UPLOADED)), + equalsTo(createCrashInfoForTesting("def789", -1, "55667788", 123344556677L, + null, UploadState.UPLOADED)))); } /** @@ -125,18 +140,20 @@ @SmallTest public void testMergeDuplicatesAndIgnoreHidden() { List<CrashInfo> testList = Arrays.asList( - createHiddenCrashInfo("xyz123", 112233445566L, null, -1, null, UploadState.PENDING), - createCrashInfo( + createHiddenCrash("xyz123", 112233445566L, null, -1, null, UploadState.PENDING), + createCrashInfoForTesting( "def789", -1, "55667788", 123344556677L, null, UploadState.UPLOADED), - createHiddenCrashInfo("abc456", -1, null, -1, null, UploadState.PENDING), - createCrashInfo("xyz123", 112233445566L, null, -1, "com.test.package", null), - createCrashInfo("abc456", 445566778899L, null, -1, "org.test.package", null), - createCrashInfo("abc456", -1, null, -1, null, null), - createCrashInfo( + createHiddenCrash("abc456", -1, null, -1, null, UploadState.PENDING), + createCrashInfoForTesting( + "xyz123", 112233445566L, null, -1, "com.test.package", null), + createCrashInfoForTesting( + "abc456", 445566778899L, null, -1, "org.test.package", null), + createCrashInfoForTesting("abc456", -1, null, -1, null, null), + createCrashInfoForTesting( "xyz123", -1, "11223344", 223344556677L, null, UploadState.UPLOADED)); List<CrashInfo> uniqueList = WebViewCrashInfoCollector.mergeDuplicates(testList); Assert.assertThat(uniqueList, - containsInAnyOrder(equalsTo(createCrashInfo( + containsInAnyOrder(equalsTo(createCrashInfoForTesting( "def789", -1, "55667788", 123344556677L, null, UploadState.UPLOADED)))); } @@ -147,28 +164,29 @@ @Test @SmallTest public void testSortByRecentCaptureTime() { - List<CrashInfo> testList = Arrays.asList( - createCrashInfo("xyz123", -1, "11223344", 123L, null, UploadState.UPLOADED), - createCrashInfo("def789", 111L, "55667788", 100L, null, UploadState.UPLOADED), - createCrashInfo("abc456", -1, null, -1, null, UploadState.PENDING), - createCrashInfo("ghijkl", 112L, null, -1, "com.test.package", null), - createCrashInfo("abc456", 112L, null, 112L, "org.test.package", null), - createCrashInfo(null, 100, "11223344", -1, "com.test.package", null), - createCrashInfo("abc123", 100, null, -1, null, null)); + List<CrashInfo> testList = Arrays.asList(createCrashInfoForTesting("xyz123", -1, "11223344", + 123L, null, UploadState.UPLOADED), + createCrashInfoForTesting( + "def789", 111L, "55667788", 100L, null, UploadState.UPLOADED), + createCrashInfoForTesting("abc456", -1, null, -1, null, UploadState.PENDING), + createCrashInfoForTesting("ghijkl", 112L, null, -1, "com.test.package", null), + createCrashInfoForTesting("abc456", 112L, null, 112L, "org.test.package", null), + createCrashInfoForTesting(null, 100, "11223344", -1, "com.test.package", null), + createCrashInfoForTesting("abc123", 100, null, -1, null, null)); WebViewCrashInfoCollector.sortByMostRecent(testList); Assert.assertThat(testList, - contains(equalsTo(createCrashInfo( + contains(equalsTo(createCrashInfoForTesting( "abc456", 112L, null, 112L, "org.test.package", null)), - equalsTo(createCrashInfo( + equalsTo(createCrashInfoForTesting( "ghijkl", 112L, null, -1, "com.test.package", null)), - equalsTo(createCrashInfo( + equalsTo(createCrashInfoForTesting( "def789", 111L, "55667788", 100L, null, UploadState.UPLOADED)), - equalsTo(createCrashInfo( + equalsTo(createCrashInfoForTesting( null, 100, "11223344", -1, "com.test.package", null)), - equalsTo(createCrashInfo("abc123", 100, null, -1, null, null)), - equalsTo(createCrashInfo( + equalsTo(createCrashInfoForTesting("abc123", 100, null, -1, null, null)), + equalsTo(createCrashInfoForTesting( "xyz123", -1, "11223344", 123L, null, UploadState.UPLOADED)), - equalsTo(createCrashInfo( + equalsTo(createCrashInfoForTesting( "abc456", -1, null, -1, null, UploadState.PENDING)))); } @@ -178,15 +196,17 @@ @Test @SmallTest public void testLoadCrashesInfoFilteredNoLimit() { - List<CrashInfo> testList = Arrays.asList( - createCrashInfo("xyz123", 112233445566L, null, -1, null, UploadState.PENDING), - createCrashInfo( + List<CrashInfo> testList = Arrays.asList(createCrashInfoForTesting("xyz123", 112233445566L, + null, -1, null, UploadState.PENDING), + createCrashInfoForTesting( "def789", -1, "55667788", 123344556677L, null, UploadState.UPLOADED), - createCrashInfo("abc456", -1, null, -1, null, UploadState.PENDING), - createCrashInfo("xyz123", 112233445566L, null, -1, "com.test.package", null), - createCrashInfo("abc456", 445566778899L, null, -1, "org.test.package", null), - createCrashInfo("abc456", -1, null, -1, null, null), - createCrashInfo( + createCrashInfoForTesting("abc456", -1, null, -1, null, UploadState.PENDING), + createCrashInfoForTesting( + "xyz123", 112233445566L, null, -1, "com.test.package", null), + createCrashInfoForTesting( + "abc456", 445566778899L, null, -1, "org.test.package", null), + createCrashInfoForTesting("abc456", -1, null, -1, null, null), + createCrashInfoForTesting( "xyz123", -1, "11223344", 223344556677L, null, UploadState.UPLOADED)); WebViewCrashInfoCollector collector = @@ -196,10 +216,10 @@ List<CrashInfo> result = collector.loadCrashesInfo(c -> c.uploadState == UploadState.UPLOADED); Assert.assertThat(result, - contains(equalsTo(createCrashInfo("xyz123", 112233445566L, "11223344", + contains(equalsTo(createCrashInfoForTesting("xyz123", 112233445566L, "11223344", 223344556677L, "com.test.package", UploadState.UPLOADED)), - equalsTo(createCrashInfo("def789", -1, "55667788", 123344556677L, null, - UploadState.UPLOADED)))); + equalsTo(createCrashInfoForTesting("def789", -1, "55667788", 123344556677L, + null, UploadState.UPLOADED)))); } /** @@ -208,11 +228,12 @@ @Test @SmallTest public void testUpdateCrashLogFileWithNewCrashInfo() throws Throwable { - CrashInfo oldCrashInfo = createCrashInfo("xyz123", 112233445566L, null, -1, null, null); + CrashInfo oldCrashInfo = + createCrashInfoForTesting("xyz123", 112233445566L, null, -1, null, null); assertThat("temp json log file should exist", writeJsonLogFile(oldCrashInfo).exists()); CrashInfo newCrashInfo = - createHiddenCrashInfo("xyz123", 112233445566L, null, -1, "com.test.package", null); + createHiddenCrash("xyz123", 112233445566L, null, -1, "com.test.package", null); WebViewCrashInfoCollector.updateCrashLogFileWithNewCrashInfo(newCrashInfo); CrashInfo resultCrashInfo = getCrashFromJsonLogFile("xyz123"); @@ -226,7 +247,7 @@ @SmallTest public void testUpdateNonExistingCrashLogFileWithNewCrashInfo() throws Throwable { CrashInfo newCrashInfo = - createHiddenCrashInfo("xyz123", 112233445566L, null, -1, "com.test.package", null); + createHiddenCrash("xyz123", 112233445566L, null, -1, "com.test.package", null); WebViewCrashInfoCollector.updateCrashLogFileWithNewCrashInfo(newCrashInfo); CrashInfo resultCrashInfo = getCrashFromJsonLogFile("xyz123");
diff --git a/android_webview/javatests/src/org/chromium/android_webview/test/devui/util/WebViewCrashLogParserTest.java b/android_webview/javatests/src/org/chromium/android_webview/test/devui/util/WebViewCrashLogParserTest.java index 19ce771..b9c2e3d 100644 --- a/android_webview/javatests/src/org/chromium/android_webview/test/devui/util/WebViewCrashLogParserTest.java +++ b/android_webview/javatests/src/org/chromium/android_webview/test/devui/util/WebViewCrashLogParserTest.java
@@ -17,8 +17,8 @@ import org.junit.rules.TemporaryFolder; import org.junit.runner.RunWith; -import org.chromium.android_webview.common.crash.CrashInfo; import org.chromium.android_webview.devui.util.WebViewCrashLogParser; +import org.chromium.android_webview.nonembedded.crash.CrashInfo; import org.chromium.android_webview.test.AwJUnit4ClassRunner; import org.chromium.android_webview.test.OnlyRunIn;
diff --git a/android_webview/javatests/src/org/chromium/android_webview/test/services/CrashLoggingUtilsTest.java b/android_webview/javatests/src/org/chromium/android_webview/test/services/CrashLoggingUtilsTest.java index d0c17438..e8eed28 100644 --- a/android_webview/javatests/src/org/chromium/android_webview/test/services/CrashLoggingUtilsTest.java +++ b/android_webview/javatests/src/org/chromium/android_webview/test/services/CrashLoggingUtilsTest.java
@@ -13,7 +13,7 @@ import org.junit.rules.TemporaryFolder; import org.junit.runner.RunWith; -import org.chromium.android_webview.common.crash.CrashInfo; +import org.chromium.android_webview.nonembedded.crash.CrashInfo; import org.chromium.android_webview.services.CrashLoggingUtils; import org.chromium.android_webview.test.AwJUnit4ClassRunner; import org.chromium.base.test.util.Batch;
diff --git a/android_webview/javatests/src/org/chromium/android_webview/test/services/CrashReceiverServiceTest.java b/android_webview/javatests/src/org/chromium/android_webview/test/services/CrashReceiverServiceTest.java index cd3a417..11d22c8 100644 --- a/android_webview/javatests/src/org/chromium/android_webview/test/services/CrashReceiverServiceTest.java +++ b/android_webview/javatests/src/org/chromium/android_webview/test/services/CrashReceiverServiceTest.java
@@ -14,7 +14,7 @@ import org.junit.Test; import org.junit.runner.RunWith; -import org.chromium.android_webview.common.crash.SystemWideCrashDirectories; +import org.chromium.android_webview.nonembedded.crash.SystemWideCrashDirectories; import org.chromium.android_webview.services.CrashReceiverService; import org.chromium.android_webview.test.AwJUnit4ClassRunner; import org.chromium.android_webview.test.OnlyRunIn;
diff --git a/android_webview/javatests/src/org/chromium/android_webview/test/services/MinidumpUploadJobTest.java b/android_webview/javatests/src/org/chromium/android_webview/test/services/MinidumpUploadJobTest.java index 58932bf..9d1745cf 100644 --- a/android_webview/javatests/src/org/chromium/android_webview/test/services/MinidumpUploadJobTest.java +++ b/android_webview/javatests/src/org/chromium/android_webview/test/services/MinidumpUploadJobTest.java
@@ -18,7 +18,7 @@ import org.junit.runner.RunWith; import org.chromium.android_webview.common.PlatformServiceBridge; -import org.chromium.android_webview.common.crash.SystemWideCrashDirectories; +import org.chromium.android_webview.nonembedded.crash.SystemWideCrashDirectories; import org.chromium.android_webview.services.AwMinidumpUploaderDelegate; import org.chromium.android_webview.services.AwMinidumpUploaderDelegate.SamplingDelegate; import org.chromium.android_webview.services.CrashReceiverService;
diff --git a/android_webview/junit/src/org/chromium/android_webview/robolectric/nonembedded/crash/CrashInfoTest.java b/android_webview/junit/src/org/chromium/android_webview/robolectric/nonembedded/crash/CrashInfoTest.java new file mode 100644 index 0000000..1b87669 --- /dev/null +++ b/android_webview/junit/src/org/chromium/android_webview/robolectric/nonembedded/crash/CrashInfoTest.java
@@ -0,0 +1,107 @@ +// Copyright 2020 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package org.chromium.android_webview.robolectric.nonembedded.crash; + +import static org.chromium.android_webview.nonembedded.crash.CrashInfo.createCrashInfoForTesting; +import static org.chromium.android_webview.nonembedded.crash.CrashInfoEqualityMatcher.equalsTo; + +import androidx.test.filters.SmallTest; + +import org.json.JSONObject; +import org.junit.Assert; +import org.junit.Test; +import org.junit.runner.RunWith; + +import org.chromium.android_webview.nonembedded.crash.CrashInfo; +import org.chromium.android_webview.nonembedded.crash.CrashInfo.UploadState; +import org.chromium.base.test.BaseRobolectricTestRunner; + +/** + * Unit tests for CrashInfo. + */ +@RunWith(BaseRobolectricTestRunner.class) +public class CrashInfoTest { + /** + * Test that merging two {@code CrashInfo} objects works correctly. + */ + @Test + @SmallTest + public void testMergeCrashInfo() { + CrashInfo a = createCrashInfoForTesting( + "123456", 10987654321L, null, -1, "org.test.package", null); + CrashInfo b = createCrashInfoForTesting( + "123456", -1, "abcdefg", 12345678910L, null, UploadState.UPLOADED); + + CrashInfo merged = new CrashInfo(a, b); + CrashInfo expected = createCrashInfoForTesting("123456", 10987654321L, "abcdefg", + 12345678910L, "org.test.package", UploadState.UPLOADED); + Assert.assertThat(merged, equalsTo(expected)); + } + + /** + * Test that merging two {@code CrashInfo} objects works correctly. + */ + @Test + @SmallTest + public void testMergeCrashInfo_differentUploadStates() { + CrashInfo a = createCrashInfoForTesting("123456", -1, null, -1, null, UploadState.PENDING); + CrashInfo b = + createCrashInfoForTesting("123456", -1, "abcdefg", -1, null, UploadState.UPLOADED); + + CrashInfo merged = new CrashInfo(a, b); + CrashInfo expected = + createCrashInfoForTesting("123456", -1, "abcdefg", -1, null, UploadState.UPLOADED); + // UPLOADED state is the merge result, regardless of order. + Assert.assertThat(merged, equalsTo(expected)); + } + + /** + * Test that merging two {@code CrashInfo} objects works correctly. + */ + @Test + @SmallTest + public void testMergeCrashInfo_differentCaptureTime() { + CrashInfo a = createCrashInfoForTesting("123456", 1234567, null, -1, null, null); + CrashInfo b = createCrashInfoForTesting("123456", 1234555, null, -1, null, null); + + CrashInfo merged = new CrashInfo(a, b); + CrashInfo expected = createCrashInfoForTesting("123456", 1234555, null, -1, null, null); + // Older capture time is the merging result regardless of the order. + Assert.assertThat(merged, equalsTo(expected)); + } + + /** + * Test compatibility with old JSON format. + */ + @Test + @SmallTest + public void testSerializeToJson() throws Throwable { + final String jsonObjectString = + "{'crash-local-id':'123456abc','crash-capture-time':1234567890," + + "'crash-is-hidden':false," + + "'crash-keys':{'app-package-name':'org.test.package'}}"; + JSONObject expectedJsonObject = new JSONObject(jsonObjectString); + + CrashInfo c = createCrashInfoForTesting( + "123456abc", 1234567890, null, -1, "org.test.package", null); + Assert.assertEquals(c.serializeToJson(), expectedJsonObject.toString()); + } + + /** + * Test compatibility with old JSON format. + */ + @Test + @SmallTest + public void testReadFromJsonString() throws Throwable { + final String jsonObjectString = + "{'crash-local-id':'123456abc','crash-capture-time':1234567890," + + "'crash-keys':{'app-package-name':'org.test.package'}}"; + + CrashInfo parsed = CrashInfo.readFromJsonString(jsonObjectString); + CrashInfo expected = createCrashInfoForTesting( + "123456abc", 1234567890, null, -1, "org.test.package", null); + Assert.assertThat(parsed, equalsTo(expected)); + } +}
diff --git a/android_webview/nonembedded/BUILD.gn b/android_webview/nonembedded/BUILD.gn index 1f5cd97..2005085 100644 --- a/android_webview/nonembedded/BUILD.gn +++ b/android_webview/nonembedded/BUILD.gn
@@ -26,12 +26,12 @@ "java/src/org/chromium/android_webview/nonembedded/WebViewApkApplication.java", ] deps = [ + ":crash_java", ":devui_java", ":services_java", ":util_java", "//android_webview:android_webview_product_config_java", "//android_webview:common_aidl_java", - "//android_webview:common_crash_java", "//android_webview:common_java", "//android_webview:common_platform_services_java", "//android_webview/glue:glue_java", @@ -75,11 +75,11 @@ "java/src/org/chromium/android_webview/devui/util/WebViewCrashLogParser.java", ] deps = [ + ":crash_java", ":devui_resources", ":services_java", ":util_java", "//android_webview:common_aidl_java", - "//android_webview:common_crash_java", "//android_webview:common_java", "//android_webview:common_platform_services_java", "//base:base_java", @@ -124,9 +124,9 @@ "java/src/org/chromium/android_webview/services/VariationsSeedServer.java", ] deps = [ + ":crash_java", ":devui_resources", "//android_webview:common_aidl_java", - "//android_webview:common_crash_java", "//android_webview:common_java", "//android_webview:common_platform_services_java", "//android_webview:common_variations_java", @@ -150,6 +150,21 @@ deps = [ "//third_party/androidx:androidx_annotation_annotation_java" ] } +android_library("crash_java") { + sources = [ + "java/src/org/chromium/android_webview/nonembedded/crash/CrashInfo.java", + "java/src/org/chromium/android_webview/nonembedded/crash/CrashUploadUtil.java", + "java/src/org/chromium/android_webview/nonembedded/crash/SystemWideCrashDirectories.java", + ] + deps = [ + "//android_webview:common_java", + "//base:base_java", + "//components/background_task_scheduler:background_task_scheduler_task_ids_java", + "//components/minidump_uploader:minidump_uploader_java", + "//third_party/androidx:androidx_annotation_annotation_java", + ] +} + source_set("nonembedded") { sources = [ "component_updater/aw_component_installer_policy.cc",
diff --git a/android_webview/nonembedded/java/src/org/chromium/android_webview/devui/CrashesListFragment.java b/android_webview/nonembedded/java/src/org/chromium/android_webview/devui/CrashesListFragment.java index 59382aa..c39e59a0 100644 --- a/android_webview/nonembedded/java/src/org/chromium/android_webview/devui/CrashesListFragment.java +++ b/android_webview/nonembedded/java/src/org/chromium/android_webview/devui/CrashesListFragment.java
@@ -36,12 +36,12 @@ import org.chromium.android_webview.common.DeveloperModeUtils; import org.chromium.android_webview.common.PlatformServiceBridge; -import org.chromium.android_webview.common.crash.CrashInfo; -import org.chromium.android_webview.common.crash.CrashInfo.UploadState; -import org.chromium.android_webview.common.crash.CrashUploadUtil; import org.chromium.android_webview.devui.util.CrashBugUrlFactory; import org.chromium.android_webview.devui.util.SafeIntentUtils; import org.chromium.android_webview.devui.util.WebViewCrashInfoCollector; +import org.chromium.android_webview.nonembedded.crash.CrashInfo; +import org.chromium.android_webview.nonembedded.crash.CrashInfo.UploadState; +import org.chromium.android_webview.nonembedded.crash.CrashUploadUtil; import org.chromium.base.BaseSwitches; import org.chromium.base.CommandLine; import org.chromium.base.Log;
diff --git a/android_webview/nonembedded/java/src/org/chromium/android_webview/devui/util/CrashBugUrlFactory.java b/android_webview/nonembedded/java/src/org/chromium/android_webview/devui/util/CrashBugUrlFactory.java index 95e6c5a..4a1ca36 100644 --- a/android_webview/nonembedded/java/src/org/chromium/android_webview/devui/util/CrashBugUrlFactory.java +++ b/android_webview/nonembedded/java/src/org/chromium/android_webview/devui/util/CrashBugUrlFactory.java
@@ -11,7 +11,7 @@ import androidx.annotation.VisibleForTesting; -import org.chromium.android_webview.common.crash.CrashInfo; +import org.chromium.android_webview.nonembedded.crash.CrashInfo; import org.chromium.android_webview.nonembedded_util.WebViewPackageHelper; import org.chromium.base.ContextUtils;
diff --git a/android_webview/nonembedded/java/src/org/chromium/android_webview/devui/util/CrashInfoLoader.java b/android_webview/nonembedded/java/src/org/chromium/android_webview/devui/util/CrashInfoLoader.java index 6245a12..19264fd 100644 --- a/android_webview/nonembedded/java/src/org/chromium/android_webview/devui/util/CrashInfoLoader.java +++ b/android_webview/nonembedded/java/src/org/chromium/android_webview/devui/util/CrashInfoLoader.java
@@ -4,7 +4,7 @@ package org.chromium.android_webview.devui.util; -import org.chromium.android_webview.common.crash.CrashInfo; +import org.chromium.android_webview.nonembedded.crash.CrashInfo; import java.util.List;
diff --git a/android_webview/nonembedded/java/src/org/chromium/android_webview/devui/util/UnuploadedFilesStateLoader.java b/android_webview/nonembedded/java/src/org/chromium/android_webview/devui/util/UnuploadedFilesStateLoader.java index 0fedadb..686d5af 100644 --- a/android_webview/nonembedded/java/src/org/chromium/android_webview/devui/util/UnuploadedFilesStateLoader.java +++ b/android_webview/nonembedded/java/src/org/chromium/android_webview/devui/util/UnuploadedFilesStateLoader.java
@@ -4,8 +4,8 @@ package org.chromium.android_webview.devui.util; -import org.chromium.android_webview.common.crash.CrashInfo; -import org.chromium.android_webview.common.crash.CrashInfo.UploadState; +import org.chromium.android_webview.nonembedded.crash.CrashInfo; +import org.chromium.android_webview.nonembedded.crash.CrashInfo.UploadState; import org.chromium.components.minidump_uploader.CrashFileManager; import java.io.File;
diff --git a/android_webview/nonembedded/java/src/org/chromium/android_webview/devui/util/UploadedCrashesInfoLoader.java b/android_webview/nonembedded/java/src/org/chromium/android_webview/devui/util/UploadedCrashesInfoLoader.java index 7de96c53..2454be4 100644 --- a/android_webview/nonembedded/java/src/org/chromium/android_webview/devui/util/UploadedCrashesInfoLoader.java +++ b/android_webview/nonembedded/java/src/org/chromium/android_webview/devui/util/UploadedCrashesInfoLoader.java
@@ -4,7 +4,7 @@ package org.chromium.android_webview.devui.util; -import org.chromium.android_webview.common.crash.CrashInfo; +import org.chromium.android_webview.nonembedded.crash.CrashInfo; import java.io.BufferedReader; import java.io.File;
diff --git a/android_webview/nonembedded/java/src/org/chromium/android_webview/devui/util/WebViewCrashInfoCollector.java b/android_webview/nonembedded/java/src/org/chromium/android_webview/devui/util/WebViewCrashInfoCollector.java index dd1fb95..77e0686 100644 --- a/android_webview/nonembedded/java/src/org/chromium/android_webview/devui/util/WebViewCrashInfoCollector.java +++ b/android_webview/nonembedded/java/src/org/chromium/android_webview/devui/util/WebViewCrashInfoCollector.java
@@ -6,8 +6,8 @@ import androidx.annotation.VisibleForTesting; -import org.chromium.android_webview.common.crash.CrashInfo; -import org.chromium.android_webview.common.crash.SystemWideCrashDirectories; +import org.chromium.android_webview.nonembedded.crash.CrashInfo; +import org.chromium.android_webview.nonembedded.crash.SystemWideCrashDirectories; import org.chromium.base.Log; import org.chromium.components.minidump_uploader.CrashFileManager;
diff --git a/android_webview/nonembedded/java/src/org/chromium/android_webview/devui/util/WebViewCrashLogParser.java b/android_webview/nonembedded/java/src/org/chromium/android_webview/devui/util/WebViewCrashLogParser.java index df700184..a98a6c2 100644 --- a/android_webview/nonembedded/java/src/org/chromium/android_webview/devui/util/WebViewCrashLogParser.java +++ b/android_webview/nonembedded/java/src/org/chromium/android_webview/devui/util/WebViewCrashLogParser.java
@@ -8,7 +8,7 @@ import org.json.JSONException; -import org.chromium.android_webview.common.crash.CrashInfo; +import org.chromium.android_webview.nonembedded.crash.CrashInfo; import org.chromium.base.Log; import java.io.File;
diff --git a/android_webview/nonembedded/java/src/org/chromium/android_webview/nonembedded/AwPureJavaExceptionReporter.java b/android_webview/nonembedded/java/src/org/chromium/android_webview/nonembedded/AwPureJavaExceptionReporter.java index ff01d7c..3680bd3 100644 --- a/android_webview/nonembedded/java/src/org/chromium/android_webview/nonembedded/AwPureJavaExceptionReporter.java +++ b/android_webview/nonembedded/java/src/org/chromium/android_webview/nonembedded/AwPureJavaExceptionReporter.java
@@ -3,8 +3,8 @@ // found in the LICENSE file. package org.chromium.android_webview.nonembedded; -import org.chromium.android_webview.common.crash.CrashUploadUtil; -import org.chromium.android_webview.common.crash.SystemWideCrashDirectories; +import org.chromium.android_webview.nonembedded.crash.CrashUploadUtil; +import org.chromium.android_webview.nonembedded.crash.SystemWideCrashDirectories; import org.chromium.android_webview.services.CrashLoggingUtils; import org.chromium.base.ContextUtils; import org.chromium.components.crash.PureJavaExceptionReporter;
diff --git a/android_webview/java/src/org/chromium/android_webview/common/crash/CrashInfo.java b/android_webview/nonembedded/java/src/org/chromium/android_webview/nonembedded/crash/CrashInfo.java similarity index 90% rename from android_webview/java/src/org/chromium/android_webview/common/crash/CrashInfo.java rename to android_webview/nonembedded/java/src/org/chromium/android_webview/nonembedded/crash/CrashInfo.java index 2ea6f4dca..ed08a45 100644 --- a/android_webview/java/src/org/chromium/android_webview/common/crash/CrashInfo.java +++ b/android_webview/nonembedded/java/src/org/chromium/android_webview/nonembedded/crash/CrashInfo.java
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -package org.chromium.android_webview.common.crash; +package org.chromium.android_webview.nonembedded.crash; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -136,6 +136,26 @@ } /** + * Create a {@link CrashInfo} object for testing. + * + * {@code appPackageName} is used as a representative of crash keys in tests. + */ + public static CrashInfo createCrashInfoForTesting(String localId, long captureTime, + String uploadId, long uploadTime, String appPackageName, UploadState state) { + Map<String, String> crashKeys = new HashMap<>(); + if (appPackageName != null) { + crashKeys.put("app-package-name", appPackageName); + } + CrashInfo crashInfo = new CrashInfo(localId, crashKeys); + crashInfo.captureTime = captureTime; + crashInfo.uploadId = uploadId; + crashInfo.uploadTime = uploadTime; + crashInfo.uploadState = state; + + return crashInfo; + } + + /** * Return the string value of the given crash key extracted from the crash minidump report. * * @return the string value of the given crash key or {@code null} if not found.
diff --git a/android_webview/javatests/src/org/chromium/android_webview/test/common/crash/CrashInfoEqualityMatcher.java b/android_webview/nonembedded/java/src/org/chromium/android_webview/nonembedded/crash/CrashInfoEqualityMatcher.java similarity index 96% rename from android_webview/javatests/src/org/chromium/android_webview/test/common/crash/CrashInfoEqualityMatcher.java rename to android_webview/nonembedded/java/src/org/chromium/android_webview/nonembedded/crash/CrashInfoEqualityMatcher.java index 2a3cd3c..e76d8fe 100644 --- a/android_webview/javatests/src/org/chromium/android_webview/test/common/crash/CrashInfoEqualityMatcher.java +++ b/android_webview/nonembedded/java/src/org/chromium/android_webview/nonembedded/crash/CrashInfoEqualityMatcher.java
@@ -2,13 +2,11 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -package org.chromium.android_webview.test.common.crash; +package org.chromium.android_webview.nonembedded.crash; import org.hamcrest.BaseMatcher; import org.hamcrest.Description; -import org.chromium.android_webview.common.crash.CrashInfo; - import java.util.Locale; import java.util.Objects;
diff --git a/android_webview/java/src/org/chromium/android_webview/common/crash/CrashUploadUtil.java b/android_webview/nonembedded/java/src/org/chromium/android_webview/nonembedded/crash/CrashUploadUtil.java similarity index 98% rename from android_webview/java/src/org/chromium/android_webview/common/crash/CrashUploadUtil.java rename to android_webview/nonembedded/java/src/org/chromium/android_webview/nonembedded/crash/CrashUploadUtil.java index a6310aa..93ac4e7 100644 --- a/android_webview/java/src/org/chromium/android_webview/common/crash/CrashUploadUtil.java +++ b/android_webview/nonembedded/java/src/org/chromium/android_webview/nonembedded/crash/CrashUploadUtil.java
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -package org.chromium.android_webview.common.crash; +package org.chromium.android_webview.nonembedded.crash; import android.app.job.JobInfo; import android.content.ComponentName;
diff --git a/android_webview/java/src/org/chromium/android_webview/common/crash/SystemWideCrashDirectories.java b/android_webview/nonembedded/java/src/org/chromium/android_webview/nonembedded/crash/SystemWideCrashDirectories.java similarity index 97% rename from android_webview/java/src/org/chromium/android_webview/common/crash/SystemWideCrashDirectories.java rename to android_webview/nonembedded/java/src/org/chromium/android_webview/nonembedded/crash/SystemWideCrashDirectories.java index 004a474..c0156c5 100644 --- a/android_webview/java/src/org/chromium/android_webview/common/crash/SystemWideCrashDirectories.java +++ b/android_webview/nonembedded/java/src/org/chromium/android_webview/nonembedded/crash/SystemWideCrashDirectories.java
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -package org.chromium.android_webview.common.crash; +package org.chromium.android_webview.nonembedded.crash; import org.chromium.base.ContextUtils;
diff --git a/android_webview/nonembedded/java/src/org/chromium/android_webview/services/AwMinidumpUploaderDelegate.java b/android_webview/nonembedded/java/src/org/chromium/android_webview/services/AwMinidumpUploaderDelegate.java index 981cb96..ddbf229 100644 --- a/android_webview/nonembedded/java/src/org/chromium/android_webview/services/AwMinidumpUploaderDelegate.java +++ b/android_webview/nonembedded/java/src/org/chromium/android_webview/services/AwMinidumpUploaderDelegate.java
@@ -10,7 +10,7 @@ import androidx.annotation.VisibleForTesting; import org.chromium.android_webview.common.PlatformServiceBridge; -import org.chromium.android_webview.common.crash.SystemWideCrashDirectories; +import org.chromium.android_webview.nonembedded.crash.SystemWideCrashDirectories; import org.chromium.base.BaseSwitches; import org.chromium.base.CommandLine; import org.chromium.base.ContextUtils;
diff --git a/android_webview/nonembedded/java/src/org/chromium/android_webview/services/CrashLoggingUtils.java b/android_webview/nonembedded/java/src/org/chromium/android_webview/services/CrashLoggingUtils.java index 9ecfb2d..1fad028f 100644 --- a/android_webview/nonembedded/java/src/org/chromium/android_webview/services/CrashLoggingUtils.java +++ b/android_webview/nonembedded/java/src/org/chromium/android_webview/services/CrashLoggingUtils.java
@@ -4,7 +4,7 @@ package org.chromium.android_webview.services; -import org.chromium.android_webview.common.crash.CrashInfo; +import org.chromium.android_webview.nonembedded.crash.CrashInfo; import org.chromium.base.Log; import org.chromium.components.minidump_uploader.CrashFileManager;
diff --git a/android_webview/nonembedded/java/src/org/chromium/android_webview/services/CrashReceiverService.java b/android_webview/nonembedded/java/src/org/chromium/android_webview/services/CrashReceiverService.java index 9e02b4fe..116fb80 100644 --- a/android_webview/nonembedded/java/src/org/chromium/android_webview/services/CrashReceiverService.java +++ b/android_webview/nonembedded/java/src/org/chromium/android_webview/services/CrashReceiverService.java
@@ -12,9 +12,9 @@ import androidx.annotation.VisibleForTesting; -import org.chromium.android_webview.common.crash.CrashUploadUtil; -import org.chromium.android_webview.common.crash.SystemWideCrashDirectories; import org.chromium.android_webview.common.services.ICrashReceiverService; +import org.chromium.android_webview.nonembedded.crash.CrashUploadUtil; +import org.chromium.android_webview.nonembedded.crash.SystemWideCrashDirectories; import org.chromium.base.Log; import org.chromium.components.minidump_uploader.CrashFileManager;
diff --git a/android_webview/test/BUILD.gn b/android_webview/test/BUILD.gn index f9959c0..eb189b8 100644 --- a/android_webview/test/BUILD.gn +++ b/android_webview/test/BUILD.gn
@@ -241,13 +241,15 @@ android_manifest = "../javatests/AndroidManifest.xml" deps = [ + ":crash_test_utils_java", ":webview_instrumentation_test_mock_services_java", ":webview_instrumentation_test_utils_java", "//android_webview:android_webview_java", "//android_webview:common_aidl_java", - "//android_webview:common_crash_java", "//android_webview:common_platform_services_java", "//android_webview:common_variations_java", + "//android_webview:crash_client_java", + "//android_webview/nonembedded:crash_java", "//android_webview/nonembedded:devui_java", "//android_webview/nonembedded:services_java", "//android_webview/nonembedded:util_java", @@ -307,7 +309,8 @@ "//third_party/androidx_javascriptengine:javascriptengine_java", "//third_party/blink/public/mojom:mojom_platform_java", "//third_party/blink/public/mojom:web_feature_mojo_bindings_java", - "//third_party/hamcrest:hamcrest_java", + "//third_party/hamcrest:hamcrest_core_java", + "//third_party/hamcrest:hamcrest_library_java", "//third_party/junit", "//third_party/metrics_proto:metrics_proto_java", "//third_party/mockito:mockito_java", @@ -428,8 +431,6 @@ "../javatests/src/org/chromium/android_webview/test/WebViewFindApisTestRule.java", "../javatests/src/org/chromium/android_webview/test/WebViewModalDialogOverrideTest.java", "../javatests/src/org/chromium/android_webview/test/XRWOriginTrialTest.java", - "../javatests/src/org/chromium/android_webview/test/common/crash/CrashInfoEqualityMatcher.java", - "../javatests/src/org/chromium/android_webview/test/common/crash/CrashInfoTest.java", "../javatests/src/org/chromium/android_webview/test/common/services/ServiceConnectionDelayRecorderTest.java", "../javatests/src/org/chromium/android_webview/test/common/variations/VariationsUtilsTest.java", "../javatests/src/org/chromium/android_webview/test/component_updater/EmbeddedComponentLoaderTest.java", @@ -683,6 +684,15 @@ sources = [ "../unittestjava/src/org/chromium/android_webview/unittest/MockAwContentsClientBridge.java" ] } +android_library("crash_test_utils_java") { + testonly = true + sources = [ "../nonembedded/java/src/org/chromium/android_webview/nonembedded/crash/CrashInfoEqualityMatcher.java" ] + deps = [ + "//android_webview/nonembedded:crash_java", + "//third_party/hamcrest:hamcrest_java", + ] +} + # robolectric tests robolectric_binary("android_webview_junit_tests") { sources = [ @@ -703,10 +713,13 @@ "../junit/src/org/chromium/android_webview/robolectric/metrics/AwSiteVisitLoggerTest.java", "../junit/src/org/chromium/android_webview/robolectric/nonembedded/AwComponentUpdateServiceSafeModeTest.java", "../junit/src/org/chromium/android_webview/robolectric/nonembedded/NetworkFetcherTaskTest.java", + "../junit/src/org/chromium/android_webview/robolectric/nonembedded/crash/CrashInfoTest.java", ] deps = [ + ":crash_test_utils_java", "//android_webview:android_webview_java", + "//android_webview/nonembedded:crash_java", "//android_webview/nonembedded:services_java", "//android_webview/proto:metrics_bridge_records_proto_java", "//base:base_java",
diff --git a/ash/BUILD.gn b/ash/BUILD.gn index 266ef71..ab705b416 100644 --- a/ash/BUILD.gn +++ b/ash/BUILD.gn
@@ -1167,8 +1167,6 @@ "style/style_viewer/typography_instances_grid_view_factory.cc", "style/switch.cc", "style/switch.h", - "style/system_dialog.cc", - "style/system_dialog.h", "style/system_dialog_delegate_view.cc", "style/system_dialog_delegate_view.h", "style/system_shadow.cc", @@ -4158,6 +4156,8 @@ "wm/desks/templates/saved_desk_test_helper.h", "wm/desks/templates/saved_desk_test_util.cc", "wm/desks/templates/saved_desk_test_util.h", + "wm/float/float_test_api.cc", + "wm/float/float_test_api.h", "wm/gestures/back_gesture/test_back_gesture_contextual_nudge_delegate.cc", "wm/gestures/back_gesture/test_back_gesture_contextual_nudge_delegate.h", "wm/lock_state_controller_test_api.cc",
diff --git a/ash/accelerators/accelerator_alias_converter.cc b/ash/accelerators/accelerator_alias_converter.cc index 119e0639..b8752b0 100644 --- a/ash/accelerators/accelerator_alias_converter.cc +++ b/ash/accelerators/accelerator_alias_converter.cc
@@ -127,6 +127,7 @@ case ui::TopRowActionKey::kKeyboardBacklightToggle: case ui::TopRowActionKey::kKeyboardBacklightDown: case ui::TopRowActionKey::kKeyboardBacklightUp: + case ui::TopRowActionKey::kPrivacyScreenToggle: case ui::TopRowActionKey::kAllApplications: case ui::TopRowActionKey::kDictation: return false; @@ -463,9 +464,12 @@ } for (const auto& accelerator : accelerators) { + // TODO(dpad): Handle privacy screen correctly. This can be simplified once + // drallion devices are properly handled in `KeyboardCapability`. if (auto action_key = ui::KeyboardCapability::ConvertToTopRowActionKey( accelerator.key_code()); - action_key.has_value()) { + action_key.has_value() && + action_key != ui::TopRowActionKey::kPrivacyScreenToggle) { // Accelerator should only be seen if the priority or internal keyboard // have the key OR if there is an external keyboard and the `action_key` // should always been shown when there is an external keyboard.
diff --git a/ash/app_list/views/search_box_view.cc b/ash/app_list/views/search_box_view.cc index ba3df35..75dbd1e 100644 --- a/ash/app_list/views/search_box_view.cc +++ b/ash/app_list/views/search_box_view.cc
@@ -94,10 +94,11 @@ // The default PlaceholderTextTypes used for productivity launcher. Randomly // selected when placeholder text would be shown. -constexpr SearchBoxView::PlaceholderTextType kDefaultPlaceholders[3] = { +constexpr SearchBoxView::PlaceholderTextType kDefaultPlaceholders[] = { SearchBoxView::PlaceholderTextType::kShortcuts, SearchBoxView::PlaceholderTextType::kTabs, SearchBoxView::PlaceholderTextType::kSettings, + SearchBoxView::PlaceholderTextType::kImages, }; // PlaceholderTextTypes used for productivity launcher for cloud gaming devices. @@ -937,6 +938,15 @@ a11y_name_template, l10n_util::GetStringUTF16( IDS_APP_LIST_SEARCH_BOX_PLACEHOLDER_GAMES))); break; + case PlaceholderTextType::kImages: + search_box()->SetPlaceholderText(l10n_util::GetStringFUTF16( + IDS_APP_LIST_SEARCH_BOX_PLACEHOLDER_TEMPLATE, + l10n_util::GetStringUTF16( + IDS_APP_LIST_SEARCH_BOX_PLACEHOLDER_IMAGES))); + search_box()->SetAccessibleName(l10n_util::GetStringFUTF16( + a11y_name_template, l10n_util::GetStringUTF16( + IDS_APP_LIST_SEARCH_BOX_PLACEHOLDER_IMAGES))); + break; } }
diff --git a/ash/app_list/views/search_box_view.h b/ash/app_list/views/search_box_view.h index ef219f5a..78da5b8 100644 --- a/ash/app_list/views/search_box_view.h +++ b/ash/app_list/views/search_box_view.h
@@ -48,7 +48,8 @@ kShortcuts = 0, kTabs = 1, kSettings = 2, - kGames = 3 + kGames = 3, + kImages = 4 }; SearchBoxView(SearchBoxViewDelegate* delegate,
diff --git a/ash/app_list/views/search_box_view_unittest.cc b/ash/app_list/views/search_box_view_unittest.cc index 7fe44097..8500f06 100644 --- a/ash/app_list/views/search_box_view_unittest.cc +++ b/ash/app_list/views/search_box_view_unittest.cc
@@ -73,7 +73,11 @@ IDS_APP_LIST_SEARCH_BOX_PLACEHOLDER_SETTINGS)), l10n_util::GetStringFUTF16( IDS_APP_LIST_SEARCH_BOX_PLACEHOLDER_TEMPLATE_ACCESSIBILITY_NAME_CLAMSHELL, - l10n_util::GetStringUTF16(IDS_APP_LIST_SEARCH_BOX_PLACEHOLDER_TABS))}; + l10n_util::GetStringUTF16(IDS_APP_LIST_SEARCH_BOX_PLACEHOLDER_TABS)), + l10n_util::GetStringFUTF16( + IDS_APP_LIST_SEARCH_BOX_PLACEHOLDER_TEMPLATE_ACCESSIBILITY_NAME_CLAMSHELL, + l10n_util::GetStringUTF16( + IDS_APP_LIST_SEARCH_BOX_PLACEHOLDER_IMAGES))}; // Check if the current accessibility text is one of the possible // options. return base::Contains(possible_a11y_text, hint);
diff --git a/ash/ash_prefs.cc b/ash/ash_prefs.cc index 839beaa..b94b6c5 100644 --- a/ash/ash_prefs.cc +++ b/ash/ash_prefs.cc
@@ -156,7 +156,8 @@ std::string()); registry->RegisterStringPref(language::prefs::kPreferredLanguages, std::string()); - registry->RegisterBooleanPref(prefs::kEventRemappedToRightClick, false); + registry->RegisterIntegerPref(prefs::kAltEventRemappedToRightClick, 0); + registry->RegisterIntegerPref(prefs::kSearchEventRemappedToRightClick, 0); registry->RegisterIntegerPref(prefs::kKeyEventRemappedToSixPackDelete, 0); registry->RegisterIntegerPref(prefs::kKeyEventRemappedToSixPackEnd, 0); registry->RegisterIntegerPref(prefs::kKeyEventRemappedToSixPackHome, 0);
diff --git a/ash/ash_strings.grd b/ash/ash_strings.grd index d7233e3..9f37399 100644 --- a/ash/ash_strings.grd +++ b/ash/ash_strings.grd
@@ -5571,6 +5571,9 @@ <message name="IDS_ASH_SCREEN_CAPTURE_SAVE_TO_DIALOG_TITLE" desc="The title of the folder selection dialog, where users can select a location to save their captured images and screen recordings."> Select a folder to save to </message> + <message name="IDS_ASH_SCREEN_CAPTURE_SHARE_TO_YOUTUBE" desc="The share to YouTube button label for the screen capture notification."> + Share to YouTube + </message> <message name="IDS_ASH_SCREEN_CAPTURE_SHOW_CAMERA_USER_NUDGE" desc="The message shown in a toast widget to nudge the user and alert them to check out the new settings that allow them to show camera during video recording."> You can now record yourself and your screen at the same time </message> @@ -6393,6 +6396,9 @@ <message name="IDS_APP_LIST_SEARCH_BOX_PLACEHOLDER_GAMES" desc="One of possible rotating providers listed in the placeholder text for the search box shown within the ChromeOS launcher. The provider is injected into string 'Search your $1, files, apps, and more...'"> games </message> + <message name="IDS_APP_LIST_SEARCH_BOX_PLACEHOLDER_IMAGES" desc="One of possible rotating providers listed in the placeholder text for the search box shown within the ChromeOS launcher. The provider is injected into string 'Search your $1, files, apps, and more...'"> + images + </message> <!-- WM --> <message name="IDS_ENTER_PIP_A11Y_NOTIFICATION" is_accessibility_with_no_ui="true" desc="Accessibility text read by chromevox when a window starts picture-in-picture mode.">
diff --git a/ash/ash_strings_grd/IDS_APP_LIST_SEARCH_BOX_PLACEHOLDER_IMAGES.png.sha1 b/ash/ash_strings_grd/IDS_APP_LIST_SEARCH_BOX_PLACEHOLDER_IMAGES.png.sha1 new file mode 100644 index 0000000..b17e8532 --- /dev/null +++ b/ash/ash_strings_grd/IDS_APP_LIST_SEARCH_BOX_PLACEHOLDER_IMAGES.png.sha1
@@ -0,0 +1 @@ +c9674d58ab8ccd8a35bf461645590d2ea317da9e \ No newline at end of file
diff --git a/ash/ash_strings_grd/IDS_ASH_SCREEN_CAPTURE_SHARE_TO_YOUTUBE.png.sha1 b/ash/ash_strings_grd/IDS_ASH_SCREEN_CAPTURE_SHARE_TO_YOUTUBE.png.sha1 new file mode 100644 index 0000000..8914095 --- /dev/null +++ b/ash/ash_strings_grd/IDS_ASH_SCREEN_CAPTURE_SHARE_TO_YOUTUBE.png.sha1
@@ -0,0 +1 @@ +5e03816d5e97ed75908cffc0075b106c2e2415c4 \ No newline at end of file
diff --git a/ash/capture_mode/capture_mode_behavior.cc b/ash/capture_mode/capture_mode_behavior.cc index 5f09826e..1a7a8a87 100644 --- a/ash/capture_mode/capture_mode_behavior.cc +++ b/ash/capture_mode/capture_mode_behavior.cc
@@ -21,6 +21,7 @@ #include "ash/shelf/shelf.h" #include "ash/shelf/shelf_layout_manager.h" #include "ash/shell.h" +#include "ash/strings/grit/ash_strings.h" #include "ash/wm/mru_window_tracker.h" #include "base/files/file_path.h" #include "base/functional/bind.h" @@ -29,6 +30,8 @@ #include "base/notreached.h" #include "base/task/single_thread_task_runner.h" #include "ui/aura/window_observer.h" +#include "ui/base/l10n/l10n_util.h" +#include "ui/message_center/public/cpp/notification.h" namespace ash { @@ -239,6 +242,16 @@ pre_selected_window_->AddObserver(this); } + std::vector<message_center::ButtonInfo> GetNotificationButtonsInfo( + bool for_video) const override { + CHECK(for_video); + + return {message_center::ButtonInfo{l10n_util::GetStringUTF16( + IDS_ASH_SCREEN_CAPTURE_SHARE_TO_YOUTUBE)}, + message_center::ButtonInfo{l10n_util::GetStringUTF16( + IDS_ASH_SCREEN_CAPTURE_BUTTON_DELETE)}}; + } + // aura::WindowObserver: void OnWindowDestroying(aura::Window* window) override { CHECK_EQ(window, pre_selected_window_); @@ -384,6 +397,23 @@ return ""; } +std::vector<message_center::ButtonInfo> +CaptureModeBehavior::GetNotificationButtonsInfo(bool for_video) const { + std::vector<message_center::ButtonInfo> buttons_info; + + if (!for_video && + !Shell::Get()->session_controller()->IsUserSessionBlocked()) { + message_center::ButtonInfo edit_button( + l10n_util::GetStringUTF16(IDS_ASH_SCREEN_CAPTURE_BUTTON_EDIT)); + buttons_info.push_back(edit_button); + } + message_center::ButtonInfo delete_button( + l10n_util::GetStringUTF16(IDS_ASH_SCREEN_CAPTURE_BUTTON_DELETE)); + buttons_info.push_back(delete_button); + + return buttons_info; +} + std::unique_ptr<CaptureModeBarView> CaptureModeBehavior::CreateCaptureModeBarView() { return std::make_unique<NormalCaptureBarView>(this);
diff --git a/ash/capture_mode/capture_mode_behavior.h b/ash/capture_mode/capture_mode_behavior.h index 8c7cbf57..849bb6e 100644 --- a/ash/capture_mode/capture_mode_behavior.h +++ b/ash/capture_mode/capture_mode_behavior.h
@@ -12,6 +12,7 @@ #include "base/functional/callback_forward.h" #include "base/functional/callback_helpers.h" #include "third_party/abseil-cpp/absl/types/optional.h" +#include "ui/message_center/public/cpp/notification.h" namespace aura { class Window; @@ -92,6 +93,12 @@ // indicate the histogram is for a projector-initiated capture mode session. virtual const char* GetClientMetricComponent() const; + // Returns the client specific buttons info to be shown in the notification + // view. The buttons info list may differ based on whether `for_video` is true + // or not. + virtual std::vector<message_center::ButtonInfo> GetNotificationButtonsInfo( + bool for_video) const; + // Creates the capture mode bar view, which might look different depending on // the actual type of the behavior. virtual std::unique_ptr<CaptureModeBarView> CreateCaptureModeBarView();
diff --git a/ash/capture_mode/capture_mode_controller.cc b/ash/capture_mode/capture_mode_controller.cc index 6c328c6..7e8ec1a 100644 --- a/ash/capture_mode/capture_mode_controller.cc +++ b/ash/capture_mode/capture_mode_controller.cc
@@ -132,7 +132,8 @@ // The video notification button index. enum VideoNotificationButtonIndex { - BUTTON_DELETE_VIDEO = 0, + BUTTON_SHARE_TO_YOUTUBE = 0, + BUTTON_DELETE_VIDEO, }; // Returns the file extension for the given `recording_type` and the current @@ -1399,7 +1400,10 @@ DCHECK(png_bytes && png_bytes->size()); const auto image = gfx::Image::CreateFrom1xPNGBytes(png_bytes); CopyImageToClipboard(image); - ShowPreviewNotification(file_saved_path, image, CaptureModeType::kImage); + // TODO(michelefan): Do not hard-code `BehaviorType::kDefault`. Screenshot + // notification should be separated among different behaviors. + ShowPreviewNotification(file_saved_path, image, CaptureModeType::kImage, + GetBehavior(BehaviorType::kDefault)); if (Shell::Get()->session_controller()->IsActiveUserSessionStarted()) RecordSaveToLocation(GetSaveToOption(file_saved_path)); // NOTE: Holding space `client` may be `nullptr` in tests. @@ -1422,7 +1426,7 @@ if (behavior->ShouldShowPreviewNotification()) { ShowPreviewNotification(saved_video_file_path, gfx::Image(video_thumbnail), - CaptureModeType::kVideo); + CaptureModeType::kVideo, behavior); // NOTE: Holding space `client` may be `nullptr` in tests. if (auto* client = HoldingSpaceController::Get()->client()) { client->AddItemOfType(is_gif @@ -1451,7 +1455,8 @@ void CaptureModeController::ShowPreviewNotification( const base::FilePath& screen_capture_path, const gfx::Image& preview_image, - const CaptureModeType type) { + const CaptureModeType type, + const CaptureModeBehavior* behavior) { const bool for_video = type == CaptureModeType::kVideo; const int title_id = GetNotificationTitleIdForFile(screen_capture_path); const int message_id = for_video && low_disk_space_threshold_reached_ @@ -1459,13 +1464,7 @@ : IDS_ASH_SCREEN_CAPTURE_MESSAGE; message_center::RichNotificationData optional_fields; - message_center::ButtonInfo edit_button( - l10n_util::GetStringUTF16(IDS_ASH_SCREEN_CAPTURE_BUTTON_EDIT)); - if (!for_video && !Shell::Get()->session_controller()->IsUserSessionBlocked()) - optional_fields.buttons.push_back(edit_button); - message_center::ButtonInfo delete_button( - l10n_util::GetStringUTF16(IDS_ASH_SCREEN_CAPTURE_BUTTON_DELETE)); - optional_fields.buttons.push_back(delete_button); + optional_fields.buttons = behavior->GetNotificationButtonsInfo(for_video); optional_fields.image = preview_image; optional_fields.image_path = screen_capture_path; @@ -1491,12 +1490,20 @@ } else { const int button_index_value = button_index.value(); if (type == CaptureModeType::kVideo) { - DCHECK_EQ(button_index_value, - VideoNotificationButtonIndex::BUTTON_DELETE_VIDEO); - DeleteFileAsync(blocking_task_runner_, screen_capture_path, - std::move(on_file_deleted_callback_for_test_)); + switch (button_index_value) { + case VideoNotificationButtonIndex::BUTTON_SHARE_TO_YOUTUBE: + OnShareToYouTubeButtonPressed(); + break; + case VideoNotificationButtonIndex::BUTTON_DELETE_VIDEO: + DeleteFileAsync(blocking_task_runner_, screen_capture_path, + std::move(on_file_deleted_callback_for_test_)); + break; + default: + NOTREACHED(); + break; + } } else { - DCHECK_EQ(type, CaptureModeType::kImage); + CHECK_EQ(type, CaptureModeType::kImage); switch (button_index_value) { case ScreenshotNotificationButtonIndex::BUTTON_EDIT: delegate_->OpenScreenshotInImageEditor(screen_capture_path);
diff --git a/ash/capture_mode/capture_mode_controller.h b/ash/capture_mode/capture_mode_controller.h index 5a90395..3b00fdc 100644 --- a/ash/capture_mode/capture_mode_controller.h +++ b/ash/capture_mode/capture_mode_controller.h
@@ -437,10 +437,12 @@ const CaptureModeBehavior* behavior); // Shows a preview notification of the newly taken screenshot or screen - // recording. + // recording. Customized notification view will be decided based on the + // `behavior`. void ShowPreviewNotification(const base::FilePath& screen_capture_path, const gfx::Image& preview_image, - const CaptureModeType type); + const CaptureModeType type, + const CaptureModeBehavior* behavior); void HandleNotificationClicked(const base::FilePath& screen_capture_path, const CaptureModeType type, absl::optional<int> button_index);
diff --git a/ash/capture_mode/capture_mode_game_dashboard_unittests.cc b/ash/capture_mode/capture_mode_game_dashboard_unittests.cc index 59ed5b4..99f256b 100644 --- a/ash/capture_mode/capture_mode_game_dashboard_unittests.cc +++ b/ash/capture_mode/capture_mode_game_dashboard_unittests.cc
@@ -9,16 +9,31 @@ #include "ash/capture_mode/capture_mode_session_focus_cycler.h" #include "ash/capture_mode/capture_mode_session_test_api.h" #include "ash/capture_mode/capture_mode_test_util.h" +#include "ash/capture_mode/test_capture_mode_delegate.h" #include "ash/constants/ash_features.h" +#include "ash/public/cpp/capture_mode/capture_mode_test_api.h" #include "ash/shell.h" +#include "ash/strings/grit/ash_strings.h" #include "ash/style/pill_button.h" #include "ash/test/ash_test_base.h" #include "base/system/sys_info.h" #include "base/test/scoped_feature_list.h" #include "chromeos/ui/base/window_properties.h" +#include "ui/base/l10n/l10n_util.h" + +namespace message_center { + +bool operator==(const ButtonInfo& lhs, const ButtonInfo& rhs) { + return std::tie(lhs.title, lhs.icon, lhs.placeholder, lhs.type) == + std::tie(rhs.title, rhs.icon, rhs.placeholder, rhs.type); +} + +} // namespace message_center namespace ash { +using ButtonInfo = message_center::ButtonInfo; + class GameDashboardCaptureModeTest : public AshTestBase { public: GameDashboardCaptureModeTest() @@ -153,4 +168,47 @@ window_bounds.bottom()); } +// Tests that the game dashboard-initiated capture mode session shows the +// notification view with 'Share to YouTube' button and 'delete' buttons. +TEST_F(GameDashboardCaptureModeTest, NotificationView) { + CaptureModeController* controller = StartGameCaptureModeSession(); + CaptureModeSession* session = controller->capture_mode_session(); + CaptureModeBehavior* active_behavior = session->active_behavior(); + ASSERT_TRUE(active_behavior); + StartVideoRecordingImmediately(); + CaptureModeTestApi().FlushRecordingServiceForTesting(); + + auto* test_delegate = + static_cast<TestCaptureModeDelegate*>(controller->delegate_for_testing()); + + // Request and wait for a video frame so that the recording service can use it + // to create a video thumbnail. + test_delegate->RequestAndWaitForVideoFrame(); + SkBitmap service_thumbnail = + gfx::Image(test_delegate->GetVideoThumbnail()).AsBitmap(); + EXPECT_FALSE(service_thumbnail.drawsNothing()); + + controller->EndVideoRecording(EndRecordingReason::kStopRecordingButton); + EXPECT_FALSE(controller->is_recording_in_progress()); + CaptureNotificationWaiter().Wait(); + + const message_center::Notification* notification = GetPreviewNotification(); + EXPECT_TRUE(notification); + EXPECT_FALSE(notification->image().IsEmpty()); + + std::vector<ButtonInfo> expected_buttons_info = { + ButtonInfo( + l10n_util::GetStringUTF16(IDS_ASH_SCREEN_CAPTURE_SHARE_TO_YOUTUBE)), + ButtonInfo( + l10n_util::GetStringUTF16(IDS_ASH_SCREEN_CAPTURE_BUTTON_DELETE))}; + auto actual_buttons_info = + active_behavior->GetNotificationButtonsInfo(/*for_video=*/true); + EXPECT_EQ(actual_buttons_info.size(), 2u); + EXPECT_TRUE(actual_buttons_info == expected_buttons_info); + + const int share_to_youtube_button = 0; + ClickOnNotification(share_to_youtube_button); + EXPECT_FALSE(GetPreviewNotification()); +} + } // namespace ash
diff --git a/ash/capture_mode/capture_mode_test_util.cc b/ash/capture_mode/capture_mode_test_util.cc index 66f3648..62be723 100644 --- a/ash/capture_mode/capture_mode_test_util.cc +++ b/ash/capture_mode/capture_mode_test_util.cc
@@ -46,6 +46,8 @@ namespace { +constexpr char kScreenCaptureNotificationId[] = "capture_mode_notification"; + // Dispatch the simulated virtual key event to the WindowEventDispatcher. void DispatchVKEvent(ui::test::EventGenerator* event_generator, bool is_press, @@ -337,6 +339,23 @@ return GetCaptureModeBarView()->close_button(); } +const message_center::Notification* GetPreviewNotification() { + const message_center::NotificationList::Notifications notifications = + message_center::MessageCenter::Get()->GetVisibleNotifications(); + for (const auto* notification : notifications) { + if (notification->id() == kScreenCaptureNotificationId) { + return notification; + } + } + return nullptr; +} + +void ClickOnNotification(absl::optional<int> button_index) { + const message_center::Notification* notification = GetPreviewNotification(); + CHECK(notification); + notification->delegate()->Click(button_index, absl::nullopt); +} + // ----------------------------------------------------------------------------- // ProjectorCaptureModeIntegrationHelper: @@ -404,4 +423,26 @@ wait_loop_.Quit(); } +// ----------------------------------------------------------------------------- +// CaptureNotificationWaiter: + +CaptureNotificationWaiter::CaptureNotificationWaiter() { + message_center::MessageCenter::Get()->AddObserver(this); +} + +CaptureNotificationWaiter::~CaptureNotificationWaiter() { + message_center::MessageCenter::Get()->RemoveObserver(this); +} + +void CaptureNotificationWaiter::Wait() { + run_loop_.Run(); +} + +void CaptureNotificationWaiter::OnNotificationAdded( + const std::string& notification_id) { + if (notification_id == kScreenCaptureNotificationId) { + run_loop_.Quit(); + } +} + } // namespace ash
diff --git a/ash/capture_mode/capture_mode_test_util.h b/ash/capture_mode/capture_mode_test_util.h index 84311b4a..6554d40e 100644 --- a/ash/capture_mode/capture_mode_test_util.h +++ b/ash/capture_mode/capture_mode_test_util.h
@@ -15,6 +15,9 @@ #include "base/test/scoped_feature_list.h" #include "ui/events/event_constants.h" #include "ui/events/keycodes/keyboard_codes_posix.h" +#include "ui/message_center/message_center.h" +#include "ui/message_center/message_center_observer.h" +#include "ui/message_center/public/cpp/notification.h" #include "ui/views/view.h" #include "ui/views/view_observer.h" @@ -143,6 +146,12 @@ IconButton* GetSettingsButton(); IconButton* GetCloseButton(); +// Returns the capture mode related notifications from the message center. +const message_center::Notification* GetPreviewNotification(); + +// Clicks on the area in the notification specified by the `button_index`. +void ClickOnNotification(absl::optional<int> button_index); + // Defines a helper class to allow setting up and testing the Projector feature // in multiple test fixtures. Note that this helper initializes the Projector- // related features in its constructor, so test fixtures that use this should @@ -194,6 +203,21 @@ base::RunLoop wait_loop_; }; +// Defines a waiter to observe the notification changes. +class CaptureNotificationWaiter : public message_center::MessageCenterObserver { + public: + CaptureNotificationWaiter(); + ~CaptureNotificationWaiter() override; + + void Wait(); + + // message_center::MessageCenterObserver: + void OnNotificationAdded(const std::string& notification_id) override; + + private: + base::RunLoop run_loop_; +}; + } // namespace ash #endif // ASH_CAPTURE_MODE_CAPTURE_MODE_TEST_UTIL_H_
diff --git a/ash/capture_mode/capture_mode_unittests.cc b/ash/capture_mode/capture_mode_unittests.cc index 321354d..6e05e8d 100644 --- a/ash/capture_mode/capture_mode_unittests.cc +++ b/ash/capture_mode/capture_mode_unittests.cc
@@ -131,7 +131,6 @@ constexpr char kEndRecordingReasonInClamshellHistogramName[] = "Ash.CaptureModeController.EndRecordingReason.ClamshellMode"; -constexpr char kScreenCaptureNotificationId[] = "capture_mode_notification"; // Returns true if the software-composited cursor is enabled. bool IsCursorCompositingEnabled() { @@ -141,23 +140,6 @@ ->is_cursor_compositing_enabled(); } -const message_center::Notification* GetPreviewNotification() { - const message_center::NotificationList::Notifications notifications = - message_center::MessageCenter::Get()->GetVisibleNotifications(); - for (const auto* notification : notifications) { - if (notification->id() == kScreenCaptureNotificationId) { - return notification; - } - } - return nullptr; -} - -void ClickNotification(absl::optional<int> button_index) { - const message_center::Notification* notification = GetPreviewNotification(); - DCHECK(notification); - notification->delegate()->Click(button_index, absl::nullopt); -} - // Sets up a callback that will be triggered when a capture file (image or // video) is deleted as a result of a user action. The callback will verify the // successful deletion of the file, and will quit the given `loop`. @@ -411,28 +393,6 @@ base::WeakPtr<views::Widget> widget_; }; -class CaptureNotificationWaiter : public message_center::MessageCenterObserver { - public: - CaptureNotificationWaiter() { - message_center::MessageCenter::Get()->AddObserver(this); - } - ~CaptureNotificationWaiter() override { - message_center::MessageCenter::Get()->RemoveObserver(this); - } - - void Wait() { run_loop_.Run(); } - - // message_center::MessageCenterObserver: - void OnNotificationAdded(const std::string& notification_id) override { - if (notification_id == kScreenCaptureNotificationId) { - run_loop_.Quit(); - } - } - - private: - base::RunLoop run_loop_; -}; - TEST_F(CaptureModeTest, StartStop) { auto* controller = CaptureModeController::Get(); controller->Start(CaptureModeEntryType::kQuickSettings); @@ -4288,7 +4248,7 @@ base::RunLoop loop; SetUpFileDeletionVerifier(&loop); const int delete_button = 1; - ClickNotification(delete_button); + ClickOnNotification(delete_button); loop.Run(); EXPECT_FALSE(GetPreviewNotification()); histogram_tester.ExpectBucketCount(kQuickActionHistogramName, @@ -4302,7 +4262,7 @@ waiter.Wait(); } // Click on the notification body. This should take us to the files app. - ClickNotification(absl::nullopt); + ClickOnNotification(absl::nullopt); EXPECT_FALSE(GetPreviewNotification()); histogram_tester.ExpectBucketCount(kQuickActionHistogramName, CaptureQuickAction::kFiles, 1); @@ -4317,7 +4277,7 @@ } const int edit_button = 0; // Verify clicking edit on screenshot notification. - ClickNotification(edit_button); + ClickOnNotification(edit_button); EXPECT_FALSE(GetPreviewNotification()); histogram_tester.ExpectBucketCount(kQuickActionHistogramName, CaptureQuickAction::kBacklight, 1);
diff --git a/ash/constants/ash_features.cc b/ash/constants/ash_features.cc index 90114cde..5faac16 100644 --- a/ash/constants/ash_features.cc +++ b/ash/constants/ash_features.cc
@@ -1365,6 +1365,12 @@ "JapaneseFunctionRow", base::FEATURE_ENABLED_BY_DEFAULT); +// Controls whether the "Remember password" button in the Kerberos "Add account" +// dialog should be checked by default. +BASE_FEATURE(kKerberosRememberPasswordByDefault, + "KerberosRememberPasswordByDefault", + base::FEATURE_DISABLED_BY_DEFAULT); + // Enables IME button in the floating accessibility menu for the Kiosk session. BASE_FEATURE(kKioskEnableImeButton, "KioskEnableImeButton", @@ -1645,6 +1651,11 @@ // Enables OOBE Jelly features. BASE_FEATURE(kOobeJelly, "OobeJelly", base::FEATURE_DISABLED_BY_DEFAULT); +// Enables lazy loading in OOBE's WebUI by prioritizing the first screen.n. +BASE_FEATURE(kOobeLazyLoading, + "OobeLazyLoading", + base::FEATURE_DISABLED_BY_DEFAULT); + // Enables OOBE Simon features. BASE_FEATURE(kFeatureManagementOobeSimon, "FeatureManagementOobeSimon", @@ -3047,6 +3058,10 @@ base::FeatureList::IsEnabled(kShortcutCustomizationJelly); } +bool IsKerberosRememberPasswordByDefaultEnabled() { + return base::FeatureList::IsEnabled(kKerberosRememberPasswordByDefault); +} + bool IsKeyboardBacklightToggleEnabled() { return base::FeatureList::IsEnabled(kEnableKeyboardBacklightToggle); } @@ -3229,6 +3244,11 @@ return base::FeatureList::IsEnabled(kOobeSoftwareUpdate); } +bool IsOobeLazyLoadingEnabled() { + return base::FeatureList::IsEnabled(kOobeLazyLoading); +} + + bool IsOobeQuickStartEnabled() { return base::FeatureList::IsEnabled(kOobeQuickStart); }
diff --git a/ash/constants/ash_features.h b/ash/constants/ash_features.h index 42827bf..fd46a37 100644 --- a/ash/constants/ash_features.h +++ b/ash/constants/ash_features.h
@@ -415,6 +415,8 @@ COMPONENT_EXPORT(ASH_CONSTANTS) BASE_DECLARE_FEATURE(kIppClientInfo); COMPONENT_EXPORT(ASH_CONSTANTS) BASE_DECLARE_FEATURE(kJapaneseFunctionRow); +COMPONENT_EXPORT(ASH_CONSTANTS) +BASE_DECLARE_FEATURE(kKerberosRememberPasswordByDefault); COMPONENT_EXPORT(ASH_CONSTANTS) BASE_DECLARE_FEATURE(kKioskEnableImeButton); COMPONENT_EXPORT(ASH_CONSTANTS) BASE_DECLARE_FEATURE(kAutoEnrollmentKioskInOobe); @@ -478,6 +480,7 @@ COMPONENT_EXPORT(ASH_CONSTANTS) BASE_DECLARE_FEATURE(kOobeHidDetectionRevamp); COMPONENT_EXPORT(ASH_CONSTANTS) BASE_DECLARE_FEATURE(kOobeGaiaInfoScreen); COMPONENT_EXPORT(ASH_CONSTANTS) BASE_DECLARE_FEATURE(kOobeJelly); +COMPONENT_EXPORT(ASH_CONSTANTS) BASE_DECLARE_FEATURE(kOobeLazyLoading); COMPONENT_EXPORT(ASH_CONSTANTS) BASE_DECLARE_FEATURE(kOobeSimon); COMPONENT_EXPORT(ASH_CONSTANTS) BASE_DECLARE_FEATURE(kOobeSoftwareUpdate); COMPONENT_EXPORT(ASH_CONSTANTS) @@ -835,6 +838,8 @@ COMPONENT_EXPORT(ASH_CONSTANTS) bool IsJellyEnabledForScanningApp(); COMPONENT_EXPORT(ASH_CONSTANTS) bool IsJellyEnabledForShortcutCustomization(); COMPONENT_EXPORT(ASH_CONSTANTS) +bool IsKerberosRememberPasswordByDefaultEnabled(); +COMPONENT_EXPORT(ASH_CONSTANTS) bool IsKeyboardBacklightToggleEnabled(); COMPONENT_EXPORT(ASH_CONSTANTS) bool IsLanguagePacksEnabled(); COMPONENT_EXPORT(ASH_CONSTANTS) bool IsLauncherNudgeShortIntervalEnabled(); @@ -864,6 +869,7 @@ COMPONENT_EXPORT(ASH_CONSTANTS) bool IsOAuthIppEnabled(); COMPONENT_EXPORT(ASH_CONSTANTS) bool IsOobeChoobeEnabled(); COMPONENT_EXPORT(ASH_CONSTANTS) bool IsOobeDrivePinningEnabled(); +COMPONENT_EXPORT(ASH_CONSTANTS) bool IsOobeLazyLoadingEnabled(); COMPONENT_EXPORT(ASH_CONSTANTS) bool IsOobeChromeVoxHintEnabled(); COMPONENT_EXPORT(ASH_CONSTANTS) bool IsOobeHidDetectionRevampEnabled(); COMPONENT_EXPORT(ASH_CONSTANTS) bool IsOobeGaiaInfoScreenEnabled();
diff --git a/ash/constants/ash_pref_names.cc b/ash/constants/ash_pref_names.cc index bf6e2d4..fda531b 100644 --- a/ash/constants/ash_pref_names.cc +++ b/ash/constants/ash_pref_names.cc
@@ -1475,17 +1475,15 @@ // Copy of owner tap-to-click option to use on login screen. const char kOwnerTapToClickEnabled[] = "owner.touchpad.enable_tap_to_click"; -// A boolean pref set to true if a user simulates a right click using their -// keyboard and touchpad with either Alt+Click or Search+Click. -// The value of this pref will be used to set the default behavior for -// remapping to right click once the setting is added/configurable in device -// settings. -// Default setting: -// Boolean Pref is false: Off -// Boolean Pref is true: Use state of "kUseSearchForRightClick" flag to -// determine if Alt+Click or Search+Click should be the default. -const char kEventRemappedToRightClick[] = - "ash.settings.event_remapped_to_right_click"; +// An integer pref that is incremented anytime a user simulates a right click +// using their keyboard and touchpad with Alt+Click. +const char kAltEventRemappedToRightClick[] = + "ash.settings.alt_event_remapped_to_right_click"; + +// An integer pref that is incremented anytime a user simulates a right click +// using their keyboard and touchpad with Search+Click. +const char kSearchEventRemappedToRightClick[] = + "ash.settings.search_event_remapped_to_right_click"; // An integer pref for tracking Alt and Search based key event rewrites for // the Delete "six pack" key. The value of this pref will be used to set the
diff --git a/ash/constants/ash_pref_names.h b/ash/constants/ash_pref_names.h index 75029bb4..7954331 100644 --- a/ash/constants/ash_pref_names.h +++ b/ash/constants/ash_pref_names.h
@@ -704,7 +704,10 @@ extern const char kOwnerTapToClickEnabled[]; COMPONENT_EXPORT(ASH_CONSTANTS) -extern const char kEventRemappedToRightClick[]; +extern const char kAltEventRemappedToRightClick[]; + +COMPONENT_EXPORT(ASH_CONSTANTS) +extern const char kSearchEventRemappedToRightClick[]; COMPONENT_EXPORT(ASH_CONSTANTS) extern const char kKeyEventRemappedToSixPackDelete[];
diff --git a/ash/events/accessibility_event_rewriter_unittest.cc b/ash/events/accessibility_event_rewriter_unittest.cc index 8a5aa0a..59a059a 100644 --- a/ash/events/accessibility_event_rewriter_unittest.cc +++ b/ash/events/accessibility_event_rewriter_unittest.cc
@@ -210,7 +210,7 @@ bool NotifyDeprecatedSixPackKeyRewrite(ui::KeyboardCode key_code) override { return false; } - void RecordEventRemappedToRightClick() override {} + void RecordEventRemappedToRightClick(bool alt_based_right_click) override {} void RecordSixPackEventRewrite(ui::KeyboardCode key_code, bool alt_based) override {} @@ -614,7 +614,7 @@ return false; } - void RecordEventRemappedToRightClick() override {} + void RecordEventRemappedToRightClick(bool alt_based_right_click) override {} void RecordSixPackEventRewrite(ui::KeyboardCode key_code, bool alt_based) override {}
diff --git a/ash/events/keyboard_capability_unittest.cc b/ash/events/keyboard_capability_unittest.cc index 0b9f9e3..7f6136a 100644 --- a/ash/events/keyboard_capability_unittest.cc +++ b/ash/events/keyboard_capability_unittest.cc
@@ -1121,6 +1121,8 @@ return CustomTopRowScanCode::kPreviousTrack; case ui::TopRowActionKey::kPlayPause: return CustomTopRowScanCode::kPlayPause; + case ui::TopRowActionKey::kPrivacyScreenToggle: + return CustomTopRowScanCode::kPrivacyScreenToggle; case ui::TopRowActionKey::kAllApplications: case ui::TopRowActionKey::kEmojiPicker: case ui::TopRowActionKey::kDictation: @@ -1179,6 +1181,7 @@ ui::TopRowActionKey::kBack, ui::TopRowActionKey::kForward, ui::TopRowActionKey::kRefresh, + ui::TopRowActionKey::kPrivacyScreenToggle, }, { ui::TopRowActionKey::kMicrophoneMute, @@ -1193,7 +1196,6 @@ "Internal Keyboard"); fake_keyboard_manager_->AddFakeKeyboard(keyboard, custom_layout_string_, /*has_custom_top_row=*/true); - for (ui::TopRowActionKey action_key = ui::TopRowActionKey::kMinValue; action_key <= ui::TopRowActionKey::kMaxValue; action_key =
diff --git a/ash/shelf/shelf_party_feature_pod_controller_unittest.cc b/ash/shelf/shelf_party_feature_pod_controller_unittest.cc index 43caf36..7cae504 100644 --- a/ash/shelf/shelf_party_feature_pod_controller_unittest.cc +++ b/ash/shelf/shelf_party_feature_pod_controller_unittest.cc
@@ -57,6 +57,10 @@ return IsQsRevampEnabled() ? tile_->GetVisible() : button_->GetVisible(); } + bool IsButtonToggled() { + return IsQsRevampEnabled() ? tile_->IsToggled() : button_->IsToggled(); + } + void PressIcon() { controller_->OnIconPressed(); } private: @@ -71,27 +75,52 @@ testing::Bool()); TEST_P(ShelfPartyFeaturePodControllerTest, ButtonVisibility) { + auto* session_controller = GetSessionControllerClient(); // The button is visible in an active session. CreateButton(); EXPECT_TRUE(IsButtonVisible()); // The button is not visible at the lock screen. - GetSessionControllerClient()->LockScreen(); + session_controller->LockScreen(); + CreateButton(); + EXPECT_FALSE(IsButtonVisible()); + + // The button is not visible when enterprise managed. + session_controller->set_is_enterprise_managed(true); + session_controller->SetSessionState(session_manager::SessionState::ACTIVE); CreateButton(); EXPECT_FALSE(IsButtonVisible()); } TEST_P(ShelfPartyFeaturePodControllerTest, PressIconTogglesShelfParty) { + auto* shelf_model = Shell::Get()->shelf_controller()->model(); CreateButton(); - ASSERT_FALSE(Shell::Get()->shelf_controller()->model()->in_shelf_party()); + ASSERT_FALSE(shelf_model->in_shelf_party()); // Pressing the icon enables shelf party. PressIcon(); - EXPECT_TRUE(Shell::Get()->shelf_controller()->model()->in_shelf_party()); + EXPECT_TRUE(shelf_model->in_shelf_party()); // Pressing the icon again disables shelf party. PressIcon(); - EXPECT_FALSE(Shell::Get()->shelf_controller()->model()->in_shelf_party()); + EXPECT_FALSE(shelf_model->in_shelf_party()); +} + +TEST_P(ShelfPartyFeaturePodControllerTest, ShelfPartyToggled) { + auto* shelf_model = Shell::Get()->shelf_controller()->model(); + CreateButton(); + ASSERT_FALSE(shelf_model->in_shelf_party()); + EXPECT_FALSE(IsButtonToggled()); + + // Toggles the shelf party from `shelf_model` to enable shelf party. + shelf_model->ToggleShelfParty(); + EXPECT_TRUE(shelf_model->in_shelf_party()); + EXPECT_TRUE(IsButtonToggled()); + + // Toggles again to disable shelf party. + shelf_model->ToggleShelfParty(); + EXPECT_FALSE(shelf_model->in_shelf_party()); + EXPECT_FALSE(IsButtonToggled()); } } // namespace ash
diff --git a/ash/shelf/shelf_unittest.cc b/ash/shelf/shelf_unittest.cc index 1a2f619..2c2ce69 100644 --- a/ash/shelf/shelf_unittest.cc +++ b/ash/shelf/shelf_unittest.cc
@@ -229,81 +229,5 @@ // No crash. } -class ShelfPartyQsTileTest : public NoSessionAshTestBase { - public: - ShelfPartyQsTileTest() = default; - ShelfPartyQsTileTest(const ShelfPartyQsTileTest&) = delete; - ShelfPartyQsTileTest& operator=(const ShelfPartyQsTileTest&) = delete; - ~ShelfPartyQsTileTest() override = default; - - // AshTestBase: - void SetUp() override { - AshTestBase::SetUp(); - shelf_model_ = GetPrimaryShelf()->GetShelfViewForTesting()->model(); - qs_tile_controller_ = std::make_unique<ShelfPartyFeaturePodController>(); - qs_tile_button_view_.reset(qs_tile_controller_->CreateButton()); - } - - void TearDown() override { - qs_tile_controller_.reset(); - qs_tile_button_view_.reset(); - AshTestBase::TearDown(); - } - - protected: - ShelfModel* shelf_model() { return shelf_model_; } - ShelfPartyFeaturePodController* qs_tile_controller() { - return qs_tile_controller_.get(); - } - FeaturePodButton* qs_tile_button_view() { return qs_tile_button_view_.get(); } - - private: - raw_ptr<ShelfModel, ExperimentalAsh> shelf_model_ = nullptr; - std::unique_ptr<ShelfPartyFeaturePodController> qs_tile_controller_; - std::unique_ptr<FeaturePodButton> qs_tile_button_view_; -}; - -TEST_F(ShelfPartyQsTileTest, VisibleWhenUserSessionIsActive) { - EXPECT_FALSE(qs_tile_button_view()->GetVisible()); - auto* session_controller = GetSessionControllerClient(); - session_controller->SetSessionState(session_manager::SessionState::ACTIVE); - EXPECT_TRUE(qs_tile_button_view()->GetVisible()); - session_controller->SetSessionState(session_manager::SessionState::LOCKED); - EXPECT_FALSE(qs_tile_button_view()->GetVisible()); -} - -TEST_F(ShelfPartyQsTileTest, InvisibleWhenEnterpriseManaged) { - auto* session_controller = GetSessionControllerClient(); - session_controller->set_is_enterprise_managed(true); - session_controller->SetSessionState(session_manager::SessionState::ACTIVE); - EXPECT_FALSE(qs_tile_button_view()->GetVisible()); -} - -TEST_F(ShelfPartyQsTileTest, OnIconPressed) { - GetSessionControllerClient()->SetSessionState( - session_manager::SessionState::ACTIVE); - EXPECT_FALSE(shelf_model()->in_shelf_party()); - EXPECT_FALSE(qs_tile_button_view()->IsToggled()); - qs_tile_controller()->OnIconPressed(); - EXPECT_TRUE(shelf_model()->in_shelf_party()); - EXPECT_TRUE(qs_tile_button_view()->IsToggled()); - qs_tile_controller()->OnIconPressed(); - EXPECT_FALSE(shelf_model()->in_shelf_party()); - EXPECT_FALSE(qs_tile_button_view()->IsToggled()); -} - -TEST_F(ShelfPartyQsTileTest, ShelfPartyToggled) { - GetSessionControllerClient()->SetSessionState( - session_manager::SessionState::ACTIVE); - EXPECT_FALSE(shelf_model()->in_shelf_party()); - EXPECT_FALSE(qs_tile_button_view()->IsToggled()); - shelf_model()->ToggleShelfParty(); - EXPECT_TRUE(shelf_model()->in_shelf_party()); - EXPECT_TRUE(qs_tile_button_view()->IsToggled()); - shelf_model()->ToggleShelfParty(); - EXPECT_FALSE(shelf_model()->in_shelf_party()); - EXPECT_FALSE(qs_tile_button_view()->IsToggled()); -} - } // namespace } // namespace ash
diff --git a/ash/style/system_components_unittests.cc b/ash/style/system_components_unittests.cc index ad22ae0..f4727b8 100644 --- a/ash/style/system_components_unittests.cc +++ b/ash/style/system_components_unittests.cc
@@ -2,20 +2,26 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +#include <memory> #include <string> #include "ash/resources/vector_icons/vector_icons.h" +#include "ash/shell.h" #include "ash/style/checkbox_group.h" #include "ash/style/icon_button.h" #include "ash/style/icon_switch.h" #include "ash/style/radio_button_group.h" +#include "ash/style/system_dialog_delegate_view.h" #include "ash/style/tab_slider.h" #include "ash/style/tab_slider_button.h" #include "ash/test/ash_test_base.h" +#include "ash/wm/desks/desks_util.h" #include "base/run_loop.h" +#include "ui/base/ui_base_types.h" #include "ui/chromeos/styles/cros_tokens_color_mappings.h" #include "ui/gfx/vector_icon_types.h" #include "ui/views/layout/fill_layout.h" +#include "ui/views/metadata/view_factory_internal.h" #include "ui/views/view_test_api.h" #include "ui/views/widget/widget.h" #include "ui/views/widget/widget_delegate.h" @@ -260,6 +266,133 @@ EXPECT_FALSE(button_4->GetEnabled()); } +struct DialogTestParams { + ui::ModalType modal_type; + bool parent_to_root; +}; + +class SystemDialogTest : public SystemComponentsTest, + public testing::WithParamInterface<DialogTestParams> { + public: + SystemDialogTest() = default; + SystemDialogTest(const SystemDialogTest&) = delete; + SystemDialogTest& operator=(const SystemDialogTest&) = delete; + ~SystemDialogTest() override = default; + + protected: + // Create a dialog according to the give test parameters. Resize the host + // window with the given host size. + void CreateDialog(const DialogTestParams& params, + const gfx::Size& host_size) { + // Clear existing dialog and host window instances. + dialog_.reset(); + host_widget_.reset(); + + // Generate a new dialog delegate view. + auto dialog_view = views::Builder<SystemDialogDelegateView>() + .SetIcon(kTestIcon) + .SetTitleText(u"Title") + .SetDescription(u"Dialog description.") + .Build(); + + dialog_view->SetModalType(params.modal_type); + + // Resize the display if the dialog is parented to the root window. + // Otherwise, create a host window with the given size. + if (params.parent_to_root) { + UpdateDisplay(host_size.ToString()); + } else { + UpdateDisplay("1280x720"); + host_widget_ = + CreateTestWidget(nullptr, desks_util::GetActiveDeskContainerId(), + gfx::Rect(host_size), /*show=*/true); + } + + // Create a dialog widget. + views::Widget::InitParams dialog_params; + dialog_params.type = views::Widget::InitParams::TYPE_WINDOW_FRAMELESS; + dialog_params.bounds = gfx::Rect(dialog_view->GetPreferredSize()); + dialog_params.delegate = dialog_view.release(); + dialog_params.ownership = + views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; + dialog_params.parent = params.parent_to_root + ? Shell::GetPrimaryRootWindow() + : host_widget_->GetNativeWindow(); + dialog_ = std::make_unique<views::Widget>(std::move(dialog_params)); + dialog_->Show(); + } + + // Get the dialog size. + int GetDialogWidth() { + CHECK(dialog_); + return dialog_->GetWindowBoundsInScreen().size().width(); + } + + private: + std::unique_ptr<views::Widget> host_widget_; + std::unique_ptr<views::Widget> dialog_; +}; + +const DialogTestParams kSystemDialogTestParams[] = { + {ui::ModalType::MODAL_TYPE_NONE, /*parent_to_root=*/false}, + {ui::ModalType::MODAL_TYPE_NONE, /*parent_to_root=*/true}, + {ui::ModalType::MODAL_TYPE_WINDOW, /*parent_to_root=*/false}, + {ui::ModalType::MODAL_TYPE_WINDOW, /*parent_to_root=*/true}, + {ui::ModalType::MODAL_TYPE_CHILD, /*parent_to_root=*/false}, + {ui::ModalType::MODAL_TYPE_CHILD, /*parent_to_root=*/true}, + {ui::ModalType::MODAL_TYPE_SYSTEM, /*parent_to_root=*/false}, + {ui::ModalType::MODAL_TYPE_SYSTEM, /*parent_to_root=*/true}, +}; + +INSTANTIATE_TEST_SUITE_P(SystemDialogSize, + SystemDialogTest, + testing::ValuesIn(kSystemDialogTestParams)); + +// Tests the dialog sizes with different sizes of host windows. +TEST_P(SystemDialogTest, DialogResponsiveSize) { + DialogTestParams params = GetParam(); + + // When the width of the host window is no smaller than 672, the width of the + // dialog is 512. + CreateDialog(params, /*host_size=*/gfx::Size(1000, 600)); + EXPECT_EQ(512, GetDialogWidth()); + + CreateDialog(params, /*host_size=*/gfx::Size(672, 600)); + EXPECT_EQ(512, GetDialogWidth()); + + // When the width of the host window is less than 672 and no smaller than 520, + // the dialog has a padding of 80 on both sides. + CreateDialog(params, /*host_size=*/gfx::Size(671, 600)); + EXPECT_EQ(511, GetDialogWidth()); + + CreateDialog(params, /*host_size=*/gfx::Size(520, 600)); + EXPECT_EQ(360, GetDialogWidth()); + + // When the width of the host window is less than 520 and no smaller than 424, + // the width of the dialog is 359. + CreateDialog(params, /*host_size=*/gfx::Size(519, 600)); + EXPECT_EQ(359, GetDialogWidth()); + + CreateDialog(params, /*host_size=*/gfx::Size(424, 600)); + EXPECT_EQ(359, GetDialogWidth()); + + // When the width of the host window is less than 424 and no smaller than 400, + // the dialog has a padding of 32 on both sides. + CreateDialog(params, /*host_size=*/gfx::Size(423, 600)); + EXPECT_EQ(359, GetDialogWidth()); + + CreateDialog(params, /*host_size=*/gfx::Size(400, 600)); + EXPECT_EQ(336, GetDialogWidth()); + + // When the width of the host window is less than 400, the dialog of has + // minimum size of 296. + CreateDialog(params, /*host_size=*/gfx::Size(399, 600)); + EXPECT_EQ(296, GetDialogWidth()); + + CreateDialog(params, /*host_size=*/gfx::Size(300, 600)); + EXPECT_EQ(296, GetDialogWidth()); +} + struct TabSliderTestParams { TabSliderType type; bool distribute_space_evenly;
diff --git a/ash/style/system_dialog.cc b/ash/style/system_dialog.cc deleted file mode 100644 index 2b85060c..0000000 --- a/ash/style/system_dialog.cc +++ /dev/null
@@ -1,109 +0,0 @@ -// Copyright 2023 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "ash/style/system_dialog.h" - -#include <algorithm> - -#include "ash/style/system_dialog_delegate_view.h" -#include "ui/aura/window.h" -#include "ui/views/widget/widget.h" - -namespace ash { - -// Typical sizes of a dialog. -constexpr int kDialogWidthLarge = 512; -constexpr int kDialogWidthMedium = 359; -constexpr int kDialogWidthSmall = 296; - -// The host window sizes that will change the resizing rule of the dialog. -constexpr int kHostWidthLarge = 672; -constexpr int kHostWidthMedium = 520; -constexpr int kHostWidthSmall = 424; -constexpr int kHostWidthXSmall = 400; - -// Padding between the dialog and the host window. -constexpr int kDialogHostPaddingLarge = 80; -constexpr int kDialogHostPaddingSmall = 32; - -SystemDialog::SystemDialog( - std::unique_ptr<SystemDialogDelegateView> dialog_view, - aura::Window* host_window) - : host_window_(host_window) { - views::Widget::InitParams params; - params.type = views::Widget::InitParams::TYPE_WINDOW_FRAMELESS; - params.parent = host_window_; - // Initialize the dialog bounds with the delegate view's preferred size so - // that the sub views could have an appropriate initial layout. - params.bounds = gfx::Rect(dialog_view->GetPreferredSize()); - params.delegate = dialog_view.release(); - - // The widget is owned by its native widget. - widget_ = new views::Widget(std::move(params)); - UpdateDialogBounds(); - - window_observations_.AddObservation(host_window_); - window_observations_.AddObservation(widget_->GetNativeWindow()); - - widget_->Show(); -} - -SystemDialog::~SystemDialog() { - if (widget_) { - widget_->CloseWithReason(views::Widget::ClosedReason::kUnspecified); - } -} - -void SystemDialog::OnWindowBoundsChanged(aura::Window* window, - const gfx::Rect& old_bounds, - const gfx::Rect& new_bounds, - ui::PropertyChangeReason reason) { - if (window == host_window_) { - UpdateDialogBounds(); - } -} - -void SystemDialog::OnWindowDestroying(aura::Window* window) { - widget_ = nullptr; - window_observations_.RemoveAllObservations(); -} - -void SystemDialog::UpdateDialogBounds() { - CHECK(widget_); - - const gfx::Rect host_bounds = host_window_->GetBoundsInScreen(); - const int host_width = host_bounds.width(); - // The resizing rules of the dialog are as follows: - // - When the host window width is larger than `kHostWidthLarge`, the dialog - // width would remain at `kDialogWidthLarge`. - // - When the host window width is between `kHostWidthMedium` and - // `kHostWidthLarge`, the dialog width will decrease but maintain a padding - // of `kDialogHostPaddingLarge` on both sides. - // - When the host window width is between `kHostWidthSmall` and - // `kHostWidthMedium`, the dialog width would remain at `kDialogWidthMedium`. - // - When the host window width is less than `kHostWidthXSmall`, the dialog - // width will decrease but maintain a padding of `kDialogHostPaddingSmall` on - // both sides. - // - The dialog minimum width is `kDialogWidthSmall`. - int width = kDialogWidthSmall; - if (host_width >= kHostWidthLarge) { - width = kDialogWidthLarge; - } else if (host_width >= kHostWidthMedium) { - width = host_width - kDialogHostPaddingLarge * 2; - } else if (host_width >= kHostWidthSmall) { - width = kDialogWidthMedium; - } else if (host_width >= kHostWidthXSmall) { - width = host_width - kDialogHostPaddingSmall * 2; - } - - auto* dialog_view = widget_->GetContentsView(); - width = std::clamp(width, dialog_view->GetMinimumSize().width(), - dialog_view->GetMaximumSize().width()); - const int height = dialog_view->GetHeightForWidth(width); - const gfx::Point center = host_bounds.CenterPoint(); - widget_->SetBounds(gfx::Rect(center.x() - width / 2, center.y() - height / 2, - width, height)); -} - -} // namespace ash
diff --git a/ash/style/system_dialog.h b/ash/style/system_dialog.h deleted file mode 100644 index b24fe3b..0000000 --- a/ash/style/system_dialog.h +++ /dev/null
@@ -1,58 +0,0 @@ -// Copyright 2023 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef ASH_STYLE_SYSTEM_DIALOG_H_ -#define ASH_STYLE_SYSTEM_DIALOG_H_ - -#include "base/scoped_multi_source_observation.h" -#include "ui/aura/window_observer.h" - -namespace aura { -class Window; -} // namespace aura - -namespace views { -class Widget; -} // namespace views - -namespace ash { - -class SystemDialogDelegateView; - -// SystemDialog creates a dialog widget with given system dialog delegate view -// as contents and parented to the host window. The dialog widget's bounds are -// adjusted according to the host window bounds. -class SystemDialog : public aura::WindowObserver { - public: - SystemDialog(std::unique_ptr<SystemDialogDelegateView> dialog_view, - aura::Window* host_window); - SystemDialog(const SystemDialog&) = delete; - SystemDialog& operator=(const SystemDialog&) = delete; - ~SystemDialog() override; - - // aura::WindowObserver: - void OnWindowBoundsChanged(aura::Window* window, - const gfx::Rect& old_bounds, - const gfx::Rect& new_bounds, - ui::PropertyChangeReason reason) override; - void OnWindowDestroying(aura::Window* window) override; - - protected: - // Adjusts the dialog bounds according to the bounds of `host_window_`. - virtual void UpdateDialogBounds(); - - private: - // The parent window of the dialog. - const raw_ptr<aura::Window> host_window_; - // The dialog widget owned by its native widget. - raw_ptr<views::Widget> widget_ = nullptr; - - // The observation observing the dialog's native window and host window. - base::ScopedMultiSourceObservation<aura::Window, aura::WindowObserver> - window_observations_{this}; -}; - -} // namespace ash - -#endif // ASH_STYLE_SYSTEM_DIALOG_H_
diff --git a/ash/style/system_dialog_delegate_view.cc b/ash/style/system_dialog_delegate_view.cc index 116b4ff7..976a2de 100644 --- a/ash/style/system_dialog_delegate_view.cc +++ b/ash/style/system_dialog_delegate_view.cc
@@ -10,6 +10,7 @@ #include "ash/style/pill_button.h" #include "ash/style/typography.h" #include "base/functional/bind.h" +#include "ui/aura/window.h" #include "ui/base/l10n/l10n_util.h" #include "ui/base/metadata/metadata_impl_macros.h" #include "ui/base/models/image_model.h" @@ -28,6 +29,7 @@ #include "ui/views/layout/flex_layout_types.h" #include "ui/views/layout/flex_layout_view.h" #include "ui/views/view_class_properties.h" +#include "ui/wm/core/window_util.h" namespace ash { @@ -52,6 +54,21 @@ constexpr int kButtonSpacing = 8; constexpr int kMinimumAdditionalButtonPadding = 80; +// Typical sizes of a dialog. +constexpr int kDialogWidthLarge = 512; +constexpr int kDialogWidthMedium = 359; +constexpr int kDialogWidthSmall = 296; + +// The host window sizes that will change the resizing rule of the dialog. +constexpr int kHostWidthLarge = 672; +constexpr int kHostWidthMedium = 520; +constexpr int kHostWidthSmall = 424; +constexpr int kHostWidthXSmall = 400; + +// Padding between the dialog and the host window. +constexpr int kDialogHostPaddingLarge = 80; +constexpr int kDialogHostPaddingSmall = 32; + // The position of the additional content in the dialog child views. constexpr int kAdditionalContentID = 3; @@ -68,6 +85,19 @@ view->SetProperty(views::kFlexBehaviorKey, flex_spec); } +// Gets the host window of the dialog. +aura::Window* GetDialogHostWindow(const views::Widget* dialog_widget) { + if (!dialog_widget) { + return nullptr; + } + + // Return transient parent as the host window if exists. Otherwise, return the + // default parent. + auto* dialog_window = dialog_widget->GetNativeWindow(); + auto* transient_parent = wm::GetTransientParent(dialog_window); + return transient_parent ? transient_parent : dialog_window->parent(); +} + } // namespace //------------------------------------------------------------------------------ @@ -254,6 +284,42 @@ } } +gfx::Size SystemDialogDelegateView::CalculatePreferredSize() const { + auto* host_window = GetDialogHostWindow(GetWidget()); + // If the delegate view is not added to a widget or parented to a host window, + // return the default preferred size. + if (!host_window) { + return views::WidgetDelegateView::CalculatePreferredSize(); + } + + // Otherwise, calculate the preferred size according to its host window size. + const int host_width = host_window->GetBoundsInScreen().width(); + // The resizing rules of the dialog are as follows: + // - When the host window width is larger than `kHostWidthLarge`, the dialog + // width would remain at `kDialogWidthLarge`. + // - When the host window width is between `kHostWidthMedium` and + // `kHostWidthLarge`, the dialog width will decrease but maintain a padding + // of `kDialogHostPaddingLarge` on both sides. + // - When the host window width is between `kHostWidthSmall` and + // `kHostWidthMedium`, the dialog width would remain at `kDialogWidthMedium`. + // - When the host window width is less than `kHostWidthXSmall`, the dialog + // width will decrease but maintain a padding of `kDialogHostPaddingSmall` on + // both sides. + // - The dialog minimum width is `kDialogWidthSmall`. + int dialog_width = kDialogWidthSmall; + if (host_width >= kHostWidthLarge) { + dialog_width = kDialogWidthLarge; + } else if (host_width >= kHostWidthMedium) { + dialog_width = host_width - kDialogHostPaddingLarge * 2; + } else if (host_width >= kHostWidthSmall) { + dialog_width = kDialogWidthMedium; + } else if (host_width >= kHostWidthXSmall) { + dialog_width = host_width - kDialogHostPaddingSmall * 2; + } + + return gfx::Size(dialog_width, GetHeightForWidth(dialog_width)); +} + gfx::Size SystemDialogDelegateView::GetMinimumSize() const { return kMinimumDialogSize; } @@ -262,6 +328,20 @@ return kMaximumDialogSize; } +void SystemDialogDelegateView::OnWidgetInitialized() { + UpdateDialogSize(); +} + +void SystemDialogDelegateView::OnWorkAreaChanged() { + UpdateDialogSize(); +} + +void SystemDialogDelegateView::UpdateDialogSize() { + if (auto* widget = GetWidget()) { + widget->CenterWindow(GetPreferredSize()); + } +} + void SystemDialogDelegateView::SetAdditionalContentInternal( std::unique_ptr<views::View> view) { // If there is an additional content, remove it.
diff --git a/ash/style/system_dialog_delegate_view.h b/ash/style/system_dialog_delegate_view.h index dff1c03..13093b4 100644 --- a/ash/style/system_dialog_delegate_view.h +++ b/ash/style/system_dialog_delegate_view.h
@@ -107,8 +107,14 @@ void SetAdditionalContentCrossAxisAlignment(views::LayoutAlignment alignment); // views::WidgetDelegateView: + gfx::Size CalculatePreferredSize() const override; gfx::Size GetMinimumSize() const override; gfx::Size GetMaximumSize() const override; + void OnWidgetInitialized() override; + void OnWorkAreaChanged() override; + + protected: + virtual void UpdateDialogSize(); private: class ButtonContainer;
diff --git a/ash/wallpaper/online_wallpaper_variant_info_fetcher.cc b/ash/wallpaper/online_wallpaper_variant_info_fetcher.cc index 2bfd9bb..d0baf56 100644 --- a/ash/wallpaper/online_wallpaper_variant_info_fetcher.cc +++ b/ash/wallpaper/online_wallpaper_variant_info_fetcher.cc
@@ -9,6 +9,7 @@ #include "ash/public/cpp/wallpaper/online_wallpaper_variant.h" #include "ash/public/cpp/wallpaper/wallpaper_controller_client.h" #include "ash/public/cpp/wallpaper/wallpaper_info.h" +#include "ash/wallpaper/wallpaper_constants.h" #include "ash/wallpaper/wallpaper_utils/wallpaper_online_variant_utils.h" #include "ash/webui/personalization_app/proto/backdrop_wallpaper.pb.h" #include "base/functional/bind.h" @@ -32,8 +33,8 @@ ~VariantMatches() = default; - // Filters |images| to only the entries that match |asset_id| and - // |mode|. + // Filters |images| to only the entries that match |location| and + // |checkpoint|. static absl::optional<VariantMatches> FromImages( const std::string& location, ScheduleCheckpoint checkpoint, @@ -42,10 +43,20 @@ auto image_iter = base::ranges::find(images, location, &backdrop::Image::image_url); - if (image_iter == images.end()) + if (image_iter == images.end()) { return absl::nullopt; + } uint64_t unit_id = image_iter->unit_id(); + return FromImages(unit_id, checkpoint, images); + } + + // Same semantic as the method above but instead of matching against + // `location`, `unit_id` is used instead. + static absl::optional<VariantMatches> FromImages( + uint64_t unit_id, + ScheduleCheckpoint checkpoint, + const std::vector<backdrop::Image>& images) { std::vector<OnlineWallpaperVariant> variants; for (const auto& image : images) { if (image.unit_id() == unit_id) { @@ -193,6 +204,24 @@ return true; } +void OnlineWallpaperVariantInfoFetcher::FetchTimeOfDayWallpaper( + const AccountId& account_id, + uint64_t unit_id, + ScheduleCheckpoint checkpoint, + FetchParamsCallback callback) { + auto request = std::make_unique<OnlineWallpaperRequest>( + account_id, wallpaper_constants::kTimeOfDayWallpaperCollectionId, + WallpaperLayout::WALLPAPER_LAYOUT_CENTER_CROPPED, + /*daily_refresh_enabled=*/false, checkpoint); + + wallpaper_controller_client_->FetchImagesForCollection( + wallpaper_constants::kTimeOfDayWallpaperCollectionId, + base::BindOnce( + &OnlineWallpaperVariantInfoFetcher::OnTimeOfDayWallpapersFetched, + weak_factory_.GetWeakPtr(), std::move(request), unit_id, + std::move(callback))); +} + void OnlineWallpaperVariantInfoFetcher::OnSingleFetch( std::unique_ptr<OnlineWallpaperRequest> request, FetchParamsCallback callback, @@ -246,4 +275,34 @@ matches->variants}); } +void OnlineWallpaperVariantInfoFetcher::OnTimeOfDayWallpapersFetched( + std::unique_ptr<OnlineWallpaperRequest> request, + uint64_t unit_id, + FetchParamsCallback callback, + bool success, + const std::vector<backdrop::Image>& images) { + if (!success) { + LOG(WARNING) << "Failed to fetch online wallpapers"; + std::move(callback).Run(absl::nullopt); + return; + } + + absl::optional<VariantMatches> matches = + VariantMatches::FromImages(unit_id, request->checkpoint, images); + if (!matches) { + LOG(ERROR) << "No valid variants"; + std::move(callback).Run(absl::nullopt); + return; + } + + const OnlineWallpaperVariant& first_image = matches->first_match; + DCHECK(IsSuitableOnlineWallpaperVariant(first_image, request->checkpoint)); + + std::move(callback).Run(ash::OnlineWallpaperParams{ + request->account_id, first_image.asset_id, first_image.raw_url, + request->collection_id, request->layout, /*preview_mode=*/false, + /*from_user=*/false, request->daily_refresh_enabled, matches->unit_id, + matches->variants}); +} + } // namespace ash
diff --git a/ash/wallpaper/online_wallpaper_variant_info_fetcher.h b/ash/wallpaper/online_wallpaper_variant_info_fetcher.h index c9db97a..42ecb8f 100644 --- a/ash/wallpaper/online_wallpaper_variant_info_fetcher.h +++ b/ash/wallpaper/online_wallpaper_variant_info_fetcher.h
@@ -26,7 +26,8 @@ class WallpaperControllerClient; -// Resolves wallpaper variants from WallpaperInfo for WallpaperController. +// Resolves wallpaper variants for WallpaperController. These variants can exist +// from WallpaperInfo or can be fetched from the backdrop server. class ASH_EXPORT OnlineWallpaperVariantInfoFetcher { public: OnlineWallpaperVariantInfoFetcher(); @@ -60,6 +61,13 @@ ScheduleCheckpoint checkpoint, FetchParamsCallback callback); + // Fetches the time of day wallpaper that has `unit_id` for the user with + // `account_id`. Callback is run after the operation completes. + void FetchTimeOfDayWallpaper(const AccountId& account_id, + uint64_t unit_id, + ScheduleCheckpoint checkpoint, + FetchParamsCallback callback); + private: // An internal representation of the partial information required to construct // a complete OnlineWallpaperParams object as provided by the caller of @@ -99,6 +107,14 @@ bool success, const std::vector<backdrop::Image>& images); + // Used as callback when the time of day wallpapers are fetched. + void OnTimeOfDayWallpapersFetched( + std::unique_ptr<OnlineWallpaperRequest> request, + uint64_t unit_id, + FetchParamsCallback callback, + bool success, + const std::vector<backdrop::Image>& images); + raw_ptr<WallpaperControllerClient> wallpaper_controller_client_ = nullptr; // not owned
diff --git a/ash/wallpaper/online_wallpaper_variant_info_fetcher_unittest.cc b/ash/wallpaper/online_wallpaper_variant_info_fetcher_unittest.cc index 3e47ee302..88a52d0 100644 --- a/ash/wallpaper/online_wallpaper_variant_info_fetcher_unittest.cc +++ b/ash/wallpaper/online_wallpaper_variant_info_fetcher_unittest.cc
@@ -7,6 +7,7 @@ #include "ash/public/cpp/schedule_enums.h" #include "ash/public/cpp/wallpaper/wallpaper_info.h" #include "ash/wallpaper/test_wallpaper_controller_client.h" +#include "ash/wallpaper/wallpaper_constants.h" #include "base/functional/callback_forward.h" #include "base/run_loop.h" #include "base/strings/stringprintf.h" @@ -41,6 +42,31 @@ return images; } +// Returns the time of day wallpapers in order of light, morning, late +// afternoon, and dark. +std::vector<backdrop::Image> TimeOfDayImageSet() { + const uint64_t kUnitId = 439; + const std::vector<backdrop::Image_ImageType> image_types = { + backdrop::Image::IMAGE_TYPE_LIGHT_MODE, + backdrop::Image::IMAGE_TYPE_MORNING_MODE, + backdrop::Image::IMAGE_TYPE_LATE_AFTERNOON_MODE, + backdrop::Image::IMAGE_TYPE_DARK_MODE}; + + std::vector<backdrop::Image> images; + for (size_t i = 0; i < image_types.size(); ++i) { + const uint64_t asset_id = i + 99; + const std::string url = + base::StringPrintf("https://preferred_wallpaper/images/%zu", asset_id); + backdrop::Image image; + image.set_asset_id(asset_id); + image.set_unit_id(kUnitId); + image.set_image_type(image_types[i]); + image.set_image_url(url); + images.push_back(image); + } + return images; +} + class OnlineWallpaperVariantInfoFetcherTest : public testing::Test { public: OnlineWallpaperVariantInfoFetcherTest() @@ -173,61 +199,18 @@ FetchOnlineWallpaper_TimeOfDayVariants) { // Add some images for a new collection id. const std::string kCollectionId = "FetchOnline"; - const uint64_t kLightAssetId = 99; - const std::string kLightUrl = "https://preferred_wallpaper/images/99"; - const uint64_t kMorningAssetId = 101; - const std::string kMorningUrl = "https://preferred_wallpaper/images/101"; - const uint64_t kLateAfternoonAssetId = 103; - const std::string kLateAfternoonUrl = - "https://preferred_wallpaper/images/103"; - const uint64_t kDarkAssetId = 105; - const std::string kDarkUrl = "https://preferred_wallpaper/images/105"; - const uint64_t kUnitId = 439; - - // Initially populate the collection with images we won't use. - std::vector<backdrop::Image> images = - ImageSet(backdrop::Image::IMAGE_TYPE_UNKNOWN, 6u); - - // Push all assets that share a unit id. - backdrop::Image light_image; - light_image.set_asset_id(kLightAssetId); - light_image.set_unit_id(kUnitId); - light_image.set_image_type(backdrop::Image::IMAGE_TYPE_LIGHT_MODE); - light_image.set_image_url(kLightUrl); - images.push_back(light_image); - - backdrop::Image morning_image; - morning_image.set_asset_id(kMorningAssetId); - morning_image.set_unit_id(kUnitId); - morning_image.set_image_type(backdrop::Image::IMAGE_TYPE_MORNING_MODE); - morning_image.set_image_url(kMorningUrl); - images.push_back(morning_image); - - backdrop::Image late_afternoon_image; - late_afternoon_image.set_asset_id(kLateAfternoonAssetId); - late_afternoon_image.set_unit_id(kUnitId); - late_afternoon_image.set_image_type( - backdrop::Image::IMAGE_TYPE_LATE_AFTERNOON_MODE); - late_afternoon_image.set_image_url(kLateAfternoonUrl); - images.push_back(late_afternoon_image); - - backdrop::Image dark_image; - dark_image.set_asset_id(kDarkAssetId); - dark_image.set_unit_id(kUnitId); - dark_image.set_image_type(backdrop::Image::IMAGE_TYPE_DARK_MODE); - dark_image.set_image_url(kDarkUrl); - images.push_back(dark_image); - + std::vector<backdrop::Image> images = TimeOfDayImageSet(); client_.AddCollection(kCollectionId, images); - WallpaperInfo info(kLightUrl, WallpaperLayout::WALLPAPER_LAYOUT_CENTER, + WallpaperInfo info(images[0].image_url(), + WallpaperLayout::WALLPAPER_LAYOUT_CENTER, WallpaperType::kOnline, base::Time::Now()); info.collection_id = kCollectionId; const std::map<ScheduleCheckpoint, std::string> expected_mapping = { - {ScheduleCheckpoint::kSunrise, kLightUrl}, - {ScheduleCheckpoint::kMorning, kMorningUrl}, - {ScheduleCheckpoint::kLateAfternoon, kLateAfternoonUrl}, - {ScheduleCheckpoint::kSunset, kDarkUrl}}; + {ScheduleCheckpoint::kSunrise, images[0].image_url()}, + {ScheduleCheckpoint::kMorning, images[1].image_url()}, + {ScheduleCheckpoint::kLateAfternoon, images[2].image_url()}, + {ScheduleCheckpoint::kSunset, images[3].image_url()}}; for (const auto& mapping_pair : expected_mapping) { base::test::TestFuture<absl::optional<OnlineWallpaperParams>> test_future; @@ -242,6 +225,50 @@ } } +// Verify that time of day variants with matching unit id are matched with the +// right checkpoints. +TEST_F(OnlineWallpaperVariantInfoFetcherTest, FetchTimeOfDayWallpaper) { + auto images = TimeOfDayImageSet(); + client_.AddCollection(wallpaper_constants::kTimeOfDayWallpaperCollectionId, + images); + + const std::map<ScheduleCheckpoint, std::string> expected_mapping = { + {ScheduleCheckpoint::kSunrise, images[0].image_url()}, + {ScheduleCheckpoint::kMorning, images[1].image_url()}, + {ScheduleCheckpoint::kLateAfternoon, images[2].image_url()}, + {ScheduleCheckpoint::kSunset, images[3].image_url()}}; + + for (const auto& mapping_pair : expected_mapping) { + base::test::TestFuture<absl::optional<OnlineWallpaperParams>> test_future; + + // Verifies that checkpoint and the variant matches. + wallpaper_fetcher_->FetchTimeOfDayWallpaper(kAccount1, images[0].unit_id(), + mapping_pair.first, + test_future.GetCallback()); + auto result = test_future.Get(); + EXPECT_TRUE(result); + EXPECT_EQ(4u, result->variants.size()); + EXPECT_EQ(mapping_pair.second, result->url.spec()); + } +} + +// Verify requests for fetching time of day wallpapers fail with invalid unit +// id. +TEST_F(OnlineWallpaperVariantInfoFetcherTest, + FetchTimeOfDayWallpaper_InvalidUnitId) { + auto images = TimeOfDayImageSet(); + client_.AddCollection(wallpaper_constants::kTimeOfDayWallpaperCollectionId, + images); + + base::test::TestFuture<absl::optional<OnlineWallpaperParams>> test_future; + // Verifies that checkpoint and the variant matches. + wallpaper_fetcher_->FetchTimeOfDayWallpaper( + kAccount1, 123, ScheduleCheckpoint::kLateAfternoon, + test_future.GetCallback()); + auto result = test_future.Get(); + EXPECT_FALSE(result); +} + // Verify that the request fails if there are no matching variants for dark // mode. TEST_F(OnlineWallpaperVariantInfoFetcherTest, FetchOnlineWallpaper_NoDarkMode) {
diff --git a/ash/webui/diagnostics_ui/backend/input/input_data_provider_keyboard.cc b/ash/webui/diagnostics_ui/backend/input/input_data_provider_keyboard.cc index afe84251..9d1c3e21 100644 --- a/ash/webui/diagnostics_ui/backend/input/input_data_provider_keyboard.cc +++ b/ash/webui/diagnostics_ui/backend/input/input_data_provider_keyboard.cc
@@ -12,6 +12,7 @@ #include "ash/display/privacy_screen_controller.h" #include "ash/ime/ime_controller_impl.h" #include "ash/shell.h" +#include "ash/system/diagnostics/mojom/input.mojom-shared.h" #include "ash/webui/diagnostics_ui/backend/input/input_data_provider.h" #include "ash/webui/diagnostics_ui/mojom/input_data_provider.mojom-shared.h" #include "base/check_op.h" @@ -21,6 +22,7 @@ #include "base/strings/string_piece.h" #include "base/strings/string_util.h" #include "chromeos/ash/components/system/statistics_provider.h" +#include "ui/events/ash/keyboard_capability.h" #include "ui/events/devices/input_device.h" #include "ui/events/keycodes/keyboard_codes_posix.h" #include "ui/events/ozone/evdev/event_device_info.h" @@ -67,67 +69,6 @@ {KEY_F14, kFKey14}, {KEY_F15, kFKey15}}); -// Represents scancode value seen in scan code mapping received from -// `EventRewriterAsh` which denotes that the FKey is missing on the -// physical device. -constexpr uint32_t kCustomScanCodeFKeyMissing = 0x00; - -// Mapping from keyboard scancodes to TopRowKeys (must be in scancode-sorted -// order) for keyboards with custom top row layouts (vivaldi). This replicates -// and should be identical to the mapping behaviour of ChromeOS: changes will -// be needed if new AT scancodes or HID mappings are used in a top-row key, -// likely added in ui/events/keycodes/dom/dom_code_data.inc. -// -// Note that there are currently no dedicated scancodes for kScreenMirror. -constexpr auto kCustomScancodeMapping = - base::MakeFixedFlatMap<uint32_t, mojom::TopRowKey>({ - // Scan code is only `kCustomScanCodeFKeyMissing` when the FKey is - // absent on the keyboard. - {kCustomScanCodeFKeyMissing, mojom::TopRowKey::kNone}, - - // Vivaldi-specific extended Set-1 AT-style scancodes. - {0x90, mojom::TopRowKey::kPreviousTrack}, - {0x91, mojom::TopRowKey::kFullscreen}, - {0x92, mojom::TopRowKey::kOverview}, - {0x93, mojom::TopRowKey::kScreenshot}, - {0x94, mojom::TopRowKey::kScreenBrightnessDown}, - {0x95, mojom::TopRowKey::kScreenBrightnessUp}, - {0x96, mojom::TopRowKey::kPrivacyScreenToggle}, - {0x97, mojom::TopRowKey::kKeyboardBacklightDown}, - {0x98, mojom::TopRowKey::kKeyboardBacklightUp}, - {0x99, mojom::TopRowKey::kNextTrack}, - {0x9A, mojom::TopRowKey::kPlayPause}, - {0x9B, mojom::TopRowKey::kMicrophoneMute}, - {0x9E, mojom::TopRowKey::kKeyboardBacklightToggle}, - {0xA0, mojom::TopRowKey::kVolumeMute}, - {0xAE, mojom::TopRowKey::kVolumeDown}, - {0xB0, mojom::TopRowKey::kVolumeUp}, - {0xE9, mojom::TopRowKey::kForward}, - {0xEA, mojom::TopRowKey::kBack}, - {0xE7, mojom::TopRowKey::kRefresh}, - - // HID 32-bit usage codes - {0x070046, mojom::TopRowKey::kScreenshot}, - {0x0B002F, mojom::TopRowKey::kMicrophoneMute}, - {0x0C00E2, mojom::TopRowKey::kVolumeMute}, - {0x0C00E9, mojom::TopRowKey::kVolumeUp}, - {0x0C00EA, mojom::TopRowKey::kVolumeDown}, - {0x0C006F, mojom::TopRowKey::kScreenBrightnessUp}, - {0x0C0070, mojom::TopRowKey::kScreenBrightnessDown}, - {0x0C0079, mojom::TopRowKey::kKeyboardBacklightUp}, - {0x0C007A, mojom::TopRowKey::kKeyboardBacklightDown}, - {0x0C007C, mojom::TopRowKey::kKeyboardBacklightToggle}, - {0x0C00B5, mojom::TopRowKey::kNextTrack}, - {0x0C00B6, mojom::TopRowKey::kPreviousTrack}, - {0x0C00CD, mojom::TopRowKey::kPlayPause}, - {0x0C0224, mojom::TopRowKey::kBack}, - {0x0C0225, mojom::TopRowKey::kForward}, - {0x0C0227, mojom::TopRowKey::kRefresh}, - {0x0C0232, mojom::TopRowKey::kFullscreen}, - {0x0C029F, mojom::TopRowKey::kOverview}, - {0x0C02D0, mojom::TopRowKey::kPrivacyScreenToggle}, - }); - // Hard-coded top-row key mappings. These are intended to match the behaviour of // EventRewriterAsh::RewriteFunctionKeys for historical keyboards. No // updates should be needed, as all new keyboards are expected to be using @@ -259,6 +200,57 @@ return std::string(layout_string.value()); } +constexpr mojom::TopRowKey ConvertTopRowActionKeyToDiagnosticsTopRowKey( + ui::TopRowActionKey action_key) { + switch (action_key) { + case ui::TopRowActionKey::kBack: + return mojom::TopRowKey::kBack; + case ui::TopRowActionKey::kForward: + return mojom::TopRowKey::kForward; + case ui::TopRowActionKey::kRefresh: + return mojom::TopRowKey::kRefresh; + case ui::TopRowActionKey::kFullscreen: + return mojom::TopRowKey::kFullscreen; + case ui::TopRowActionKey::kOverview: + return mojom::TopRowKey::kOverview; + case ui::TopRowActionKey::kScreenshot: + return mojom::TopRowKey::kScreenshot; + case ui::TopRowActionKey::kScreenBrightnessDown: + return mojom::TopRowKey::kScreenBrightnessDown; + case ui::TopRowActionKey::kScreenBrightnessUp: + return mojom::TopRowKey::kScreenBrightnessUp; + case ui::TopRowActionKey::kMicrophoneMute: + return mojom::TopRowKey::kMicrophoneMute; + case ui::TopRowActionKey::kVolumeMute: + return mojom::TopRowKey::kVolumeMute; + case ui::TopRowActionKey::kVolumeDown: + return mojom::TopRowKey::kVolumeDown; + case ui::TopRowActionKey::kVolumeUp: + return mojom::TopRowKey::kVolumeUp; + case ui::TopRowActionKey::kKeyboardBacklightToggle: + return mojom::TopRowKey::kKeyboardBacklightToggle; + case ui::TopRowActionKey::kKeyboardBacklightDown: + return mojom::TopRowKey::kKeyboardBacklightDown; + case ui::TopRowActionKey::kKeyboardBacklightUp: + return mojom::TopRowKey::kKeyboardBacklightUp; + case ui::TopRowActionKey::kNextTrack: + return mojom::TopRowKey::kNextTrack; + case ui::TopRowActionKey::kPreviousTrack: + return mojom::TopRowKey::kPreviousTrack; + case ui::TopRowActionKey::kPlayPause: + return mojom::TopRowKey::kPlayPause; + case ui::TopRowActionKey::kPrivacyScreenToggle: + return mojom::TopRowKey::kPrivacyScreenToggle; + case ui::TopRowActionKey::kAllApplications: + case ui::TopRowActionKey::kEmojiPicker: + case ui::TopRowActionKey::kDictation: + case ui::TopRowActionKey::kUnknown: + return mojom::TopRowKey::kUnknown; + case ui::TopRowActionKey::kNone: + return mojom::TopRowKey::kNone; + } +} + } // namespace InputDataProviderKeyboard::InputDataProviderKeyboard() {} @@ -314,24 +306,31 @@ case ui::KeyboardCapability::KeyboardTopRowLayout::kKbdTopRowLayoutCustom: { top_row_keys.reserve(top_row_scan_codes.size()); - size_t index = 0; - for (const auto& scancode : top_row_scan_codes) { - // Skip all scancodes which map to kNone keys. This is most likely a - // result of an absent FKey (ex: Skipped FKeys on top row). - if (kCustomScancodeMapping.contains(scancode)) { - const auto& top_row_key = kCustomScancodeMapping.at(scancode); - if (top_row_key == mojom::TopRowKey::kNone) { - continue; - } - top_row_keys.push_back(top_row_key); - } else { - top_row_keys.push_back(mojom::TopRowKey::kUnknown); - } - top_row_key_scancode_indexes[scancode] = index++; + // If action keys cannot be found or if it has a different size than the + // top row scan codes, do not fill out the arrays. + // This will only happen if there is an error in `KeyboardCapability`. + const auto* action_keys = + Shell::Get()->keyboard_capability()->GetTopRowActionKeys( + ui::KeyboardDevice(device_info->input_device)); + if (!action_keys || action_keys->size() != top_row_scan_codes.size()) { + break; + } + + // Exclude all top row keys which are considered `kNone`. + size_t index = 0; + for (size_t i = 0; i < top_row_scan_codes.size(); i++) { + auto top_row_key = + ConvertTopRowActionKeyToDiagnosticsTopRowKey((*action_keys)[i]); + if (top_row_key == mojom::TopRowKey::kNone) { + continue; + } + top_row_keys.push_back(top_row_key); + top_row_key_scancode_indexes[top_row_scan_codes[i]] = index++; } break; } + case ui::KeyboardCapability::KeyboardTopRowLayout::kKbdTopRowLayout2: top_row_keys.assign(std::begin(kSystemKeys2), std::end(kSystemKeys2)); // No specific top_row_key_scancode_indexes are needed
diff --git a/ash/webui/diagnostics_ui/backend/input/input_data_provider_keyboard_unittest.cc b/ash/webui/diagnostics_ui/backend/input/input_data_provider_keyboard_unittest.cc index 5036e93..b3598d9 100644 --- a/ash/webui/diagnostics_ui/backend/input/input_data_provider_keyboard_unittest.cc +++ b/ash/webui/diagnostics_ui/backend/input/input_data_provider_keyboard_unittest.cc
@@ -22,6 +22,7 @@ #include "content/public/test/browser_task_environment.h" #include "ui/base/resource/resource_bundle.h" #include "ui/events/ash/event_rewriter_ash.h" +#include "ui/events/ash/keyboard_capability.h" #include "ui/events/event.h" #include "ui/events/keycodes/dom/dom_code.h" #include "ui/events/keycodes/dom/dom_key.h" @@ -175,55 +176,66 @@ void AddTopRowKey(VivaldiTopRowScanCode scancode, ui::KeyboardCode key_code, - mojom::TopRowKey top_row_key) { + mojom::TopRowKey top_row_key, + ui::TopRowActionKey action_key) { top_row_scan_codes_.push_back(scancode); top_row_keys_.push_back(top_row_key); + action_keys.push_back(action_key); } void PopulateCustomScanCodeSet1() { AddTopRowKey(VivaldiTopRowScanCode::kBack, ui::VKEY_F1, - mojom::TopRowKey::kBack); + mojom::TopRowKey::kBack, ui::TopRowActionKey::kBack); AddTopRowKey(VivaldiTopRowScanCode::kRefresh, ui::VKEY_F2, - mojom::TopRowKey::kRefresh); + mojom::TopRowKey::kRefresh, ui::TopRowActionKey::kRefresh); AddTopRowKey(VivaldiTopRowScanCode::kFullscreen, ui::VKEY_F3, - mojom::TopRowKey::kFullscreen); + mojom::TopRowKey::kFullscreen, + ui::TopRowActionKey::kFullscreen); AddTopRowKey(VivaldiTopRowScanCode::kOverview, ui::VKEY_F4, - mojom::TopRowKey::kOverview); + mojom::TopRowKey::kOverview, ui::TopRowActionKey::kOverview); AddTopRowKey(VivaldiTopRowScanCode::kScreenshot, ui::VKEY_F5, - mojom::TopRowKey::kScreenshot); + mojom::TopRowKey::kScreenshot, + ui::TopRowActionKey::kScreenshot); AddTopRowKey(VivaldiTopRowScanCode::kScreenBrightnessUp, ui::VKEY_F6, - mojom::TopRowKey::kScreenBrightnessUp); + mojom::TopRowKey::kScreenBrightnessUp, + ui::TopRowActionKey::kScreenBrightnessUp); AddTopRowKey(VivaldiTopRowScanCode::kScreenBrightnessDown, ui::VKEY_F7, - mojom::TopRowKey::kScreenBrightnessDown); - AddTopRowKey(VivaldiTopRowScanCode::kPrivacyScreenToggle, ui::VKEY_F8, - mojom::TopRowKey::kPrivacyScreenToggle); - AddTopRowKey(VivaldiTopRowScanCode::kKeyboardBacklightUp, ui::VKEY_F9, - mojom::TopRowKey::kKeyboardBacklightUp); - AddTopRowKey(VivaldiTopRowScanCode::kKeyboardBacklightDown, ui::VKEY_F10, - mojom::TopRowKey::kKeyboardBacklightDown); - AddTopRowKey(VivaldiTopRowScanCode::kKeyboardBacklightToggle, ui::VKEY_F11, - mojom::TopRowKey::kKeyboardBacklightToggle); - AddTopRowKey(VivaldiTopRowScanCode::kNextTrack, ui::VKEY_F12, - mojom::TopRowKey::kNextTrack); - AddTopRowKey(VivaldiTopRowScanCode::kPreviousTrack, ui::VKEY_F13, - mojom::TopRowKey::kPreviousTrack); - AddTopRowKey(VivaldiTopRowScanCode::kPlayPause, ui::VKEY_F14, - mojom::TopRowKey::kPlayPause); - AddTopRowKey(VivaldiTopRowScanCode::kMicrophoneMute, ui::VKEY_F15, - mojom::TopRowKey::kMicrophoneMute); + mojom::TopRowKey::kScreenBrightnessDown, + ui::TopRowActionKey::kScreenBrightnessDown); + AddTopRowKey(VivaldiTopRowScanCode::kKeyboardBacklightUp, ui::VKEY_F8, + mojom::TopRowKey::kKeyboardBacklightUp, + ui::TopRowActionKey::kKeyboardBacklightUp); + AddTopRowKey(VivaldiTopRowScanCode::kKeyboardBacklightDown, ui::VKEY_F9, + mojom::TopRowKey::kKeyboardBacklightDown, + ui::TopRowActionKey::kKeyboardBacklightDown); + AddTopRowKey(VivaldiTopRowScanCode::kKeyboardBacklightToggle, ui::VKEY_F10, + mojom::TopRowKey::kKeyboardBacklightToggle, + ui::TopRowActionKey::kKeyboardBacklightToggle); + AddTopRowKey(VivaldiTopRowScanCode::kNextTrack, ui::VKEY_F11, + mojom::TopRowKey::kNextTrack, ui::TopRowActionKey::kNextTrack); + AddTopRowKey(VivaldiTopRowScanCode::kPreviousTrack, ui::VKEY_F12, + mojom::TopRowKey::kPreviousTrack, + ui::TopRowActionKey::kPreviousTrack); + AddTopRowKey(VivaldiTopRowScanCode::kPlayPause, ui::VKEY_F13, + mojom::TopRowKey::kPlayPause, ui::TopRowActionKey::kPlayPause); + AddTopRowKey(VivaldiTopRowScanCode::kMicrophoneMute, ui::VKEY_F14, + mojom::TopRowKey::kMicrophoneMute, + ui::TopRowActionKey::kMicrophoneMute); device_information.keyboard_scan_codes = top_row_scan_codes_; } void PopulateCustomScanCodeSet2() { AddTopRowKey(VivaldiTopRowScanCode::kVolumeMute, ui::VKEY_F1, - mojom::TopRowKey::kVolumeMute); + mojom::TopRowKey::kVolumeMute, + ui::TopRowActionKey::kVolumeMute); AddTopRowKey(VivaldiTopRowScanCode::kVolumeDown, ui::VKEY_F2, - mojom::TopRowKey::kVolumeDown); + mojom::TopRowKey::kVolumeDown, + ui::TopRowActionKey::kVolumeDown); AddTopRowKey(VivaldiTopRowScanCode::kVolumeUp, ui::VKEY_F3, - mojom::TopRowKey::kVolumeUp); + mojom::TopRowKey::kVolumeUp, ui::TopRowActionKey::kVolumeUp); AddTopRowKey(VivaldiTopRowScanCode::kForward, ui::VKEY_F4, - mojom::TopRowKey::kForward); + mojom::TopRowKey::kForward, ui::TopRowActionKey::kForward); device_information.keyboard_scan_codes = top_row_scan_codes_; } @@ -231,10 +243,22 @@ protected: std::vector<uint32_t> top_row_scan_codes_; std::vector<mojom::TopRowKey> top_row_keys_; + std::vector<ui::TopRowActionKey> action_keys; }; TEST_F(VivaldiKeyboardTestBase, ScanCodeIndexesSet1) { PopulateCustomScanCodeSet1(); + + ui::KeyboardCapability::KeyboardInfo info; + info.top_row_scan_codes = top_row_scan_codes_; + info.top_row_action_keys = action_keys; + info.device_type = + ui::KeyboardCapability::DeviceType::kDeviceInternalKeyboard; + info.top_row_layout = + ui::KeyboardCapability::KeyboardTopRowLayout::kKbdTopRowLayoutCustom; + Shell::Get()->keyboard_capability()->SetKeyboardInfoForTesting( + ui::KeyboardDevice(device_information.input_device), std::move(info)); + keyboard_info_ = input_data_provider_keyboard_->ConstructKeyboard( &device_information, &aux_data_); @@ -249,6 +273,17 @@ TEST_F(VivaldiKeyboardTestBase, ScanCodeIndexesSet2) { PopulateCustomScanCodeSet2(); + + ui::KeyboardCapability::KeyboardInfo info; + info.top_row_scan_codes = top_row_scan_codes_; + info.top_row_action_keys = action_keys; + info.device_type = + ui::KeyboardCapability::DeviceType::kDeviceInternalKeyboard; + info.top_row_layout = + ui::KeyboardCapability::KeyboardTopRowLayout::kKbdTopRowLayoutCustom; + Shell::Get()->keyboard_capability()->SetKeyboardInfoForTesting( + ui::KeyboardDevice(device_information.input_device), std::move(info)); + keyboard_info_ = input_data_provider_keyboard_->ConstructKeyboard( &device_information, &aux_data_); @@ -267,23 +302,37 @@ // Example here: // https://source.chromium.org/chromiumos/chromiumos/codesearch/+/main:src/platform/release-firmware/fpmcu-nami/board/taniks/keyboard.c;l=40-42;drc=64643a516e916d94e8956a4beb00df709a3efe21 AddTopRowKey(VivaldiTopRowScanCode::kBack, ui::VKEY_F1, - mojom::TopRowKey::kBack); + mojom::TopRowKey::kBack, ui::TopRowActionKey::kBack); AddTopRowKey(VivaldiTopRowScanCode::kRefresh, ui::VKEY_F2, - mojom::TopRowKey::kRefresh); + mojom::TopRowKey::kRefresh, ui::TopRowActionKey::kRefresh); // Populate with TK_ABSENT for F3-F5 top_row_scan_codes_.push_back(0); + action_keys.push_back(ui::TopRowActionKey::kNone); top_row_scan_codes_.push_back(0); + action_keys.push_back(ui::TopRowActionKey::kNone); top_row_scan_codes_.push_back(0); + action_keys.push_back(ui::TopRowActionKey::kNone); AddTopRowKey(VivaldiTopRowScanCode::kFullscreen, ui::VKEY_F6, - mojom::TopRowKey::kFullscreen); + mojom::TopRowKey::kFullscreen, ui::TopRowActionKey::kFullscreen); + + ui::KeyboardCapability::KeyboardInfo info; + info.top_row_scan_codes = top_row_scan_codes_; + info.top_row_action_keys = action_keys; + info.device_type = + ui::KeyboardCapability::DeviceType::kDeviceInternalKeyboard; + info.top_row_layout = + ui::KeyboardCapability::KeyboardTopRowLayout::kKbdTopRowLayoutCustom; + Shell::Get()->keyboard_capability()->SetKeyboardInfoForTesting( + ui::KeyboardDevice(device_information.input_device), std::move(info)); + device_information.keyboard_scan_codes = top_row_scan_codes_; keyboard_info_ = input_data_provider_keyboard_->ConstructKeyboard( &device_information, &aux_data_); // In the input map, we have Back, Refresh, and Fullscreen in the correct - // order, but spaced out with a gap from F3-F5. This gap should be removed as - // a gap in the input map implies the keys do not exist. + // order, but spaced out with a gap from F3-F5. This gap should be removed + // as a gap in the input map implies the keys do not exist. EXPECT_EQ(0u, aux_data_.top_row_key_scancode_indexes[kBack]); EXPECT_EQ(1u, aux_data_.top_row_key_scancode_indexes[kRefresh]); EXPECT_EQ(2u, aux_data_.top_row_key_scancode_indexes[kFullscreen]);
diff --git a/ash/webui/diagnostics_ui/backend/input/input_data_provider_unittest.cc b/ash/webui/diagnostics_ui/backend/input/input_data_provider_unittest.cc index 098e4ef4..eb022ae 100644 --- a/ash/webui/diagnostics_ui/backend/input/input_data_provider_unittest.cc +++ b/ash/webui/diagnostics_ui/backend/input/input_data_provider_unittest.cc
@@ -55,6 +55,8 @@ #include "ui/events/ash/keyboard_capability.h" #include "ui/events/devices/device_data_manager.h" #include "ui/events/devices/device_data_manager_test_api.h" +#include "ui/events/devices/input_device.h" +#include "ui/events/devices/keyboard_device.h" #include "ui/events/devices/touch_device_transform.h" #include "ui/events/devices/touchscreen_device.h" #include "ui/events/keycodes/dom/dom_code.h" @@ -109,6 +111,21 @@ mojom::TopRowKey::kVolumeDown, mojom::TopRowKey::kVolumeUp}; +constexpr ui::TopRowActionKey kInternalJinlonActionKeys[] = { + ui::TopRowActionKey::kBack, + ui::TopRowActionKey::kRefresh, + ui::TopRowActionKey::kFullscreen, + ui::TopRowActionKey::kOverview, + ui::TopRowActionKey::kScreenshot, + ui::TopRowActionKey::kScreenBrightnessDown, + ui::TopRowActionKey::kScreenBrightnessUp, + ui::TopRowActionKey::kPrivacyScreenToggle, + ui::TopRowActionKey::kKeyboardBacklightDown, + ui::TopRowActionKey::kKeyboardBacklightUp, + ui::TopRowActionKey::kVolumeMute, + ui::TopRowActionKey::kVolumeDown, + ui::TopRowActionKey::kVolumeUp}; + // One possible variant of a Dell configuration constexpr mojom::TopRowKey kInternalDellTopRowKeys[] = { mojom::TopRowKey::kBack, @@ -437,6 +454,7 @@ ui::DeviceCapabilities device_caps; const std::string base_name = path.BaseName().value(); auto info = std::make_unique<InputDeviceInformation>(); + std::unique_ptr<ui::KeyboardCapability::KeyboardInfo> keyboard_info; if (base_name == "event0") { device_caps = ui::kLinkKeyboard; @@ -482,6 +500,16 @@ info->keyboard_top_row_layout = ui::KeyboardCapability::KeyboardTopRowLayout::kKbdTopRowLayoutCustom; info->keyboard_scan_codes = kInternalJinlonScanCodes; + + keyboard_info = std::make_unique<ui::KeyboardCapability::KeyboardInfo>(); + keyboard_info->device_type = + ui::KeyboardCapability::DeviceType::kDeviceInternalKeyboard; + keyboard_info->top_row_action_keys.assign( + std::begin(kInternalJinlonActionKeys), + std::end(kInternalJinlonActionKeys)); + keyboard_info->top_row_layout = + ui::KeyboardCapability::KeyboardTopRowLayout::kKbdTopRowLayoutCustom; + keyboard_info->top_row_scan_codes = kInternalJinlonScanCodes; EXPECT_EQ(7, id); } else if (base_name == "event8") { device_caps = ui::kMicrosoftBluetoothNumberPad; @@ -511,6 +539,18 @@ info->keyboard_scan_codes = kInternalJinlonScanCodes; // Set 0xC4 to be F8. info->keyboard_scan_codes[7] = 0xC4; + + keyboard_info = std::make_unique<ui::KeyboardCapability::KeyboardInfo>(); + keyboard_info->device_type = + ui::KeyboardCapability::DeviceType::kDeviceInternalKeyboard; + keyboard_info->top_row_action_keys.assign( + std::begin(kInternalJinlonActionKeys), + std::end(kInternalJinlonActionKeys)); + keyboard_info->top_row_layout = + ui::KeyboardCapability::KeyboardTopRowLayout::kKbdTopRowLayoutCustom; + keyboard_info->top_row_scan_codes = kInternalJinlonScanCodes; + keyboard_info->top_row_scan_codes[7] = 0xC4; + keyboard_info->top_row_action_keys[7] = ui::TopRowActionKey::kUnknown; EXPECT_EQ(11, id); } else if (base_name == "event12") { device_caps = ui::kMorphiusTabletModeSwitch; @@ -547,6 +587,14 @@ InputDataProvider::ConnectionTypeFromInputDeviceType( info->event_device_info.device_type()); + if (keyboard_info) { + Shell::Get() + ->keyboard_capability() + ->DisableKeyboardInfoTrimmingForTesting(); + Shell::Get()->keyboard_capability()->SetKeyboardInfoForTesting( + ui::KeyboardDevice(info->input_device), std::move(*keyboard_info)); + } + return info; } }; @@ -584,7 +632,7 @@ bool NotifyDeprecatedSixPackKeyRewrite(ui::KeyboardCode key_code) override { return false; } - void RecordEventRemappedToRightClick() override {} + void RecordEventRemappedToRightClick(bool alt_based_right_click) override {} void RecordSixPackEventRewrite(ui::KeyboardCode key_code, bool alt_based) override {}
diff --git a/ash/webui/personalization_app/resources/js/wallpaper/wallpaper_collections_element.ts b/ash/webui/personalization_app/resources/js/wallpaper/wallpaper_collections_element.ts index af261be..6dc56328 100644 --- a/ash/webui/personalization_app/resources/js/wallpaper/wallpaper_collections_element.ts +++ b/ash/webui/personalization_app/resources/js/wallpaper/wallpaper_collections_element.ts
@@ -426,7 +426,9 @@ this.tiles_ = this.tiles_.filter(tile => !isTimeOfDay(tile)); } - this.splitCollections_ = { + // Delay assigning `this.splitCollections_` until the correct number of + // tiles are assigned. + const splitCollections = { regular: collections.filter(collection => !isTimeOfDay(collection)), timeOfDay, }; @@ -435,7 +437,7 @@ // of day, local images, and google photos. const firstBackdropIndex = this.getFirstRegularBackdropTileIndex(); const desiredNumTiles = - this.splitCollections_.regular.length + firstBackdropIndex; + splitCollections.regular.length + firstBackdropIndex; // Adjust the number of loading tiles to match the collections that just // came in. There may be more (or fewer) loading tiles than necessary to @@ -456,6 +458,10 @@ if (this.tiles_.length > desiredNumTiles) { this.splice('tiles_', desiredNumTiles); } + + // Assign `this.splitCollections_` now that + // `tiles_.length === desiredNumTiles`. + this.splitCollections_ = splitCollections; } /**
diff --git a/ash/wm/desks/desks_unittests.cc b/ash/wm/desks/desks_unittests.cc index 81369c1..8fe36d0 100644 --- a/ash/wm/desks/desks_unittests.cc +++ b/ash/wm/desks/desks_unittests.cc
@@ -4989,7 +4989,7 @@ bool NotifyDeprecatedSixPackKeyRewrite(ui::KeyboardCode key_code) override { return false; } - void RecordEventRemappedToRightClick() override {} + void RecordEventRemappedToRightClick(bool alt_based_right_click) override {} void RecordSixPackEventRewrite(ui::KeyboardCode key_code, bool alt_based) override {} @@ -9031,6 +9031,9 @@ // Tests that we can go to saved desk library directly via desk button desk bar. TEST_P(DeskButtonTest, DeskBarLibraryButton) { + ui::ScopedAnimationDurationScaleMode animation_scale( + ui::ScopedAnimationDurationScaleMode::NON_ZERO_DURATION); + // Add a saved desk, so that the library button can show up. AddSavedDeskEntry(desk_model(), base::Uuid::GenerateRandomV4(), "saved_desk_1", base::Time::Now(),
diff --git a/ash/wm/float/float_controller.h b/ash/wm/float/float_controller.h index 6b9d1204e..48182a3 100644 --- a/ash/wm/float/float_controller.h +++ b/ash/wm/float/float_controller.h
@@ -148,13 +148,10 @@ private: class FloatedWindowInfo; - friend class DefaultState; - friend class TabletModeWindowState; friend class ClientControlledState; - friend class WindowFloatTest; - FRIEND_TEST_ALL_PREFIXES(WindowFloatMetricsTest, FloatWindowCountPerSession); - FRIEND_TEST_ALL_PREFIXES(WindowFloatMetricsTest, - FloatWindowMovedToAnotherDeskCountPerSession); + friend class DefaultState; + friend class FloatTestApi; + friend class TabletModeWindowState; // Calls `FloatImpl()` and additionally updates the magnetism if needed. void FloatForTablet(aura::Window* window,
diff --git a/ash/wm/float/float_controller_unittest.cc b/ash/wm/float/float_controller_unittest.cc index 10d0416..11bd5aa 100644 --- a/ash/wm/float/float_controller_unittest.cc +++ b/ash/wm/float/float_controller_unittest.cc
@@ -22,6 +22,7 @@ #include "ash/wm/desks/desks_test_api.h" #include "ash/wm/desks/desks_test_util.h" #include "ash/wm/desks/legacy_desk_bar_view.h" +#include "ash/wm/float/float_test_api.h" #include "ash/wm/float/scoped_window_tucker.h" #include "ash/wm/float/tablet_mode_float_window_resizer.h" #include "ash/wm/float/tablet_mode_tuck_education.h" @@ -890,7 +891,7 @@ NewDesk(); std::unique_ptr<aura::Window> window_2 = CreateFloatedWindow(); // Check total counts. - EXPECT_EQ(Shell::Get()->float_controller()->floated_window_counter_, 3); + EXPECT_EQ(FloatTestApi::GetFloatedWindowCounter(), 3); } // Tests the float window moved to another desk counts. @@ -924,12 +925,12 @@ auto* float_controller = Shell::Get()->float_controller(); ASSERT_EQ(float_controller->FindDeskOfFloatedWindow(window_1.get()), desk_2); // Check total counts, it should count 1. - EXPECT_EQ(float_controller->floated_window_move_to_another_desk_counter_, 1); + EXPECT_EQ(FloatTestApi::GetFloatedWindowMoveToAnotherDeskCounter(), 1); // Move to `desk_2` and remove `desk_2` by combine 2 desks. // Check total counts, it should count 2. ActivateDesk(desk_2); RemoveDesk(desk_2, DeskCloseType::kCombineDesks); - EXPECT_EQ(float_controller->floated_window_move_to_another_desk_counter_, 2); + EXPECT_EQ(FloatTestApi::GetFloatedWindowMoveToAnotherDeskCounter(), 2); } // Tests that the float window duration histogram is properly recorded.
diff --git a/ash/wm/float/float_test_api.cc b/ash/wm/float/float_test_api.cc new file mode 100644 index 0000000..f26ad60 --- /dev/null +++ b/ash/wm/float/float_test_api.cc
@@ -0,0 +1,24 @@ +// Copyright 2023 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "ash/wm/float/float_test_api.h" + +#include "ash/shell.h" +#include "ash/wm/float/float_controller.h" + +namespace ash { + +// static +int FloatTestApi::GetFloatedWindowCounter() { + return Shell::Get()->float_controller()->floated_window_counter_; +} + +// static +int FloatTestApi::GetFloatedWindowMoveToAnotherDeskCounter() { + return Shell::Get() + ->float_controller() + ->floated_window_move_to_another_desk_counter_; +} + +} // namespace ash
diff --git a/ash/wm/float/float_test_api.h b/ash/wm/float/float_test_api.h new file mode 100644 index 0000000..e7ffef1 --- /dev/null +++ b/ash/wm/float/float_test_api.h
@@ -0,0 +1,21 @@ +// Copyright 2023 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef ASH_WM_FLOAT_FLOAT_TEST_API_H_ +#define ASH_WM_FLOAT_FLOAT_TEST_API_H_ + +namespace ash { + +// Helper class used by tests to access FloatController's internal elements. +class FloatTestApi { + public: + FloatTestApi() = delete; + + static int GetFloatedWindowCounter(); + static int GetFloatedWindowMoveToAnotherDeskCounter(); +}; + +} // namespace ash + +#endif // ASH_WM_FLOAT_FLOAT_TEST_API_H_
diff --git a/ash/wm/overview/overview_grid.cc b/ash/wm/overview/overview_grid.cc index 22bab119..f6259796 100644 --- a/ash/wm/overview/overview_grid.cc +++ b/ash/wm/overview/overview_grid.cc
@@ -1821,6 +1821,14 @@ UpdateSaveDeskButtons(); + // If the overview desk bar is not created at this point, create it. This is + // only possible for clicking library button on the desk button desk bar, + // since for the overview desk bar, there has to be a bar before we can click + // on the library button. + if (!desks_widget_) { + MaybeInitDesksWidget(); + } + // When desks bar is at zero state, the library button's state update will be // handled by `UpdateNewMiniViews` when expanding the desks bar. if (desks_bar_view_->IsZeroState()) {
diff --git a/build/config/rust.gni b/build/config/rust.gni index 0629d96..6f0837a 100644 --- a/build/config/rust.gni +++ b/build/config/rust.gni
@@ -11,6 +11,10 @@ import("//build/config/android/config.gni") } +if (is_ios) { + import("//build/config/ios/config.gni") # For `target_environment` +} + declare_args() { # Whether to allow Rust code to be part of the Chromium *build process*. # This can be used to create Rust test binaries, even if the flag below @@ -206,7 +210,11 @@ } } else if (is_ios) { if (current_cpu == "arm64") { - rust_abi_target = "aarch64-apple-ios" + if (target_environment == "simulator") { + rust_abi_target = "aarch64-apple-ios-sim" + } else { + rust_abi_target = "aarch64-apple-ios" + } } else if (current_cpu == "arm") { # There's also an armv7s-apple-ios, which targets a more recent ARMv7 # generation CPU found in later iPhones. We'll go with the older one for @@ -231,8 +239,10 @@ } else if (is_win) { if (current_cpu == "arm64") { rust_abi_target = "aarch64-pc-windows-msvc" - } else if (current_cpu == "x86" || current_cpu == "x64") { + } else if (current_cpu == "x64") { rust_abi_target = "x86_64-pc-windows-msvc" + } else if (current_cpu == "x86") { + rust_abi_target = "i686-pc-windows-msvc" } else { assert(false, "Architecture not supported") }
diff --git a/build/sanitizers/lsan_suppressions.cc b/build/sanitizers/lsan_suppressions.cc index 13ce3c4c..39e446d 100644 --- a/build/sanitizers/lsan_suppressions.cc +++ b/build/sanitizers/lsan_suppressions.cc
@@ -63,6 +63,9 @@ // Suppress leaks from unknown third party modules. http://anglebug.com/6937 "leak:<unknown module>\n" + // Suppress leaks from temporary files. http://crbug.com/1433299 + "leak:(deleted)\n" + // ================ Leaks in Chromium code ================ // PLEASE DO NOT ADD SUPPRESSIONS FOR NEW LEAKS. // Instead, commits that introduce memory leaks should be reverted.
diff --git a/build/toolchain/linux/BUILD.gn b/build/toolchain/linux/BUILD.gn index 3d6bb56..2eefac5 100644 --- a/build/toolchain/linux/BUILD.gn +++ b/build/toolchain/linux/BUILD.gn
@@ -215,7 +215,6 @@ also_build_lacros_chrome = false chromeos_is_browser_only = true use_clang_coverage = false - dcheck_always_on = false } }
diff --git a/build/toolchain/win/toolchain.gni b/build/toolchain/win/toolchain.gni index cb4e939c..cf8d8f6 100644 --- a/build/toolchain/win/toolchain.gni +++ b/build/toolchain/win/toolchain.gni
@@ -444,8 +444,7 @@ tool("alink") { rspfile = "{{output}}.rsp" - command = - "$linker_wrapper$lib /OUT:{{output}} /nologo {{arflags}} @$rspfile" + command = "$linker_wrapper$lib \"/OUT:{{output}}\" /nologo {{arflags}} \"@$rspfile\"" description = "LIB {{output}}" outputs = [ # Ignore {{output_extension}} and always use .lib, there's no reason to @@ -468,7 +467,7 @@ rspfile = "${dllname}.rsp" pool = "//build/toolchain:link_pool($default_toolchain)" - command = "$linker_wrapper$link /OUT:$dllname /nologo ${sys_lib_flags}/IMPLIB:$libname /DLL /PDB:$pdbname @$rspfile" + command = "$linker_wrapper$link \"/OUT:$dllname\" /nologo ${sys_lib_flags} \"/IMPLIB:$libname\" /DLL \"/PDB:$pdbname\" \"@$rspfile\"" default_output_extension = ".dll" default_output_dir = "{{root_out_dir}}" @@ -503,7 +502,7 @@ rspfile = "${dllname}.rsp" pool = "//build/toolchain:link_pool($default_toolchain)" - command = "$linker_wrapper$link /OUT:$dllname /nologo ${sys_lib_flags}/DLL /PDB:$pdbname @$rspfile" + command = "$linker_wrapper$link \"/OUT:$dllname\" /nologo ${sys_lib_flags} /DLL \"/PDB:$pdbname\" \"@$rspfile\"" default_output_extension = ".dll" default_output_dir = "{{root_out_dir}}" @@ -526,7 +525,7 @@ rspfile = "$exename.rsp" pool = "//build/toolchain:link_pool($default_toolchain)" - command = "$linker_wrapper$link /OUT:$exename /nologo ${sys_lib_flags} /PDB:$pdbname @$rspfile" + command = "$linker_wrapper$link \"/OUT:$exename\" /nologo ${sys_lib_flags} \"/PDB:$pdbname\" \"@$rspfile\"" default_output_extension = ".exe" default_output_dir = "{{root_out_dir}}"
diff --git a/cc/mojo_embedder/async_layer_tree_frame_sink.cc b/cc/mojo_embedder/async_layer_tree_frame_sink.cc index 09127f9a..10cef5fa 100644 --- a/cc/mojo_embedder/async_layer_tree_frame_sink.cc +++ b/cc/mojo_embedder/async_layer_tree_frame_sink.cc
@@ -10,6 +10,7 @@ #include "base/metrics/histogram.h" #include "base/metrics/histogram_functions.h" #include "base/metrics/histogram_macros.h" +#include "base/task/current_thread.h" #include "base/threading/platform_thread.h" #include "base/trace_event/trace_event.h" #include "build/build_config.h" @@ -51,6 +52,7 @@ std::move(params->compositor_task_runner), params->gpu_memory_buffer_manager, std::move(shared_image_interface)), + use_direct_client_receiver_(params->use_direct_client_receiver), synthetic_begin_frame_source_( std::move(params->synthetic_begin_frame_source)), #if BUILDFLAG(IS_ANDROID) @@ -85,8 +87,15 @@ weak_factory_.GetWeakPtr())); compositor_frame_sink_ptr_ = compositor_frame_sink_associated_.get(); } - client_receiver_.Bind(std::move(pipes_.client_receiver), - compositor_task_runner_); + + if (use_direct_client_receiver_ && base::CurrentIOThread::IsSet()) { + auto& receiver = client_receiver_.emplace<DirectClientReceiver>( + mojo::DirectReceiverKey{}, this); + receiver.Bind(std::move(pipes_.client_receiver)); + } else { + auto& receiver = client_receiver_.emplace<ClientReceiver>(this); + receiver.Bind(std::move(pipes_.client_receiver), compositor_task_runner_); + } if (synthetic_begin_frame_source_) { client->SetBeginFrameSource(synthetic_begin_frame_source_.get()); @@ -119,7 +128,7 @@ client_->SetBeginFrameSource(nullptr); begin_frame_source_.reset(); synthetic_begin_frame_source_.reset(); - client_receiver_.reset(); + client_receiver_ = absl::monostate{}; // `compositor_frame_sink_ptr_` points to either `compositor_frame_sink_` or // `compositor_frame_sink_associated_`, so it must be set to nullptr first. compositor_frame_sink_ptr_ = nullptr;
diff --git a/cc/mojo_embedder/async_layer_tree_frame_sink.h b/cc/mojo_embedder/async_layer_tree_frame_sink.h index be7a286..3a2f830 100644 --- a/cc/mojo_embedder/async_layer_tree_frame_sink.h +++ b/cc/mojo_embedder/async_layer_tree_frame_sink.h
@@ -25,12 +25,14 @@ #include "components/viz/common/surfaces/surface_id.h" #include "gpu/ipc/client/client_shared_image_interface.h" #include "mojo/public/cpp/bindings/associated_remote.h" +#include "mojo/public/cpp/bindings/direct_receiver.h" #include "mojo/public/cpp/bindings/pending_associated_remote.h" #include "mojo/public/cpp/bindings/pending_receiver.h" #include "mojo/public/cpp/bindings/pending_remote.h" #include "mojo/public/cpp/bindings/receiver.h" #include "mojo/public/cpp/bindings/remote.h" #include "services/viz/public/mojom/compositing/compositor_frame_sink.mojom.h" +#include "third_party/abseil-cpp/absl/types/variant.h" namespace cc { @@ -74,6 +76,12 @@ UnboundMessagePipes pipes; bool wants_animate_only_begin_frames = false; base::PlatformThreadId io_thread_id = base::kInvalidThreadId; + + // If `true`, the CompositorFrameSinkClient receiver will receive IPC + // directly to the thread on which the AsyncLayerTreeFrameSink lives, rather + // than hopping through the I/O thread first. Only usable if the + // AsyncLayerTreeFrameSink lives on a thread which uses an IO message pump. + bool use_direct_client_receiver = false; }; AsyncLayerTreeFrameSink( @@ -126,6 +134,7 @@ void OnMojoConnectionError(uint32_t custom_reason, const std::string& description); + const bool use_direct_client_receiver_; bool begin_frames_paused_ = false; bool needs_begin_frames_ = false; viz::LocalSurfaceId local_surface_id_; @@ -146,7 +155,12 @@ // point to message pipe we want to use. It must be declared last and cleared // first. raw_ptr<viz::mojom::CompositorFrameSink> compositor_frame_sink_ptr_ = nullptr; - mojo::Receiver<viz::mojom::CompositorFrameSinkClient> client_receiver_{this}; + + using ClientReceiver = mojo::Receiver<viz::mojom::CompositorFrameSinkClient>; + using DirectClientReceiver = + mojo::DirectReceiver<viz::mojom::CompositorFrameSinkClient>; + absl::variant<absl::monostate, ClientReceiver, DirectClientReceiver> + client_receiver_; THREAD_CHECKER(thread_checker_); const bool wants_animate_only_begin_frames_;
diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc index 7fe5222..c51ac1fa 100644 --- a/cc/trees/layer_tree_host_impl.cc +++ b/cc/trees/layer_tree_host_impl.cc
@@ -1334,13 +1334,6 @@ frame->has_view_transition_save_directive = active_tree_->HasViewTransitionSaveRequest(); - // Damage rects for non-root passes aren't meaningful, so set them to be - // equal to the output rect. - for (size_t i = 0; i + 1 < frame->render_passes.size(); ++i) { - viz::CompositorRenderPass* pass = frame->render_passes[i].get(); - pass->damage_rect = pass->output_rect; - } - // When we are displaying the HUD, change the root damage rect to cover the // entire root surface. This will disable partial-swap/scissor optimizations // that would prevent the HUD from updating, since the HUD does not cause
diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni index 1bbdd5f..3f10294b 100644 --- a/chrome/android/chrome_java_resources.gni +++ b/chrome/android/chrome_java_resources.gni
@@ -351,6 +351,7 @@ "java/res/drawable/bg_circle_new_tab_button_folio.xml", "java/res/drawable/bg_tabstrip_tab_divider.xml", "java/res/drawable/bg_white_dialog.xml", + "java/res/drawable/blue_google_shield.xml", "java/res/drawable/bookmark_empty_state_illustration.xml", "java/res/drawable/bookmark_save_flow_ripple.xml", "java/res/drawable/bookmark_title_bar_shadow.xml", @@ -372,6 +373,7 @@ "java/res/drawable/distilled_page_pref_background.xml", "java/res/drawable/distilled_page_prefs_button_bg.xml", "java/res/drawable/google_pay_with_divider.xml", + "java/res/drawable/gray_shield.xml", "java/res/drawable/history_empty_state_illustration.xml", "java/res/drawable/ic_add_box_rounded_corner.xml", "java/res/drawable/ic_add_to_home_screen.xml",
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni index d1c57840..bffa72ea 100644 --- a/chrome/android/chrome_java_sources.gni +++ b/chrome/android/chrome_java_sources.gni
@@ -157,6 +157,7 @@ "java/src/org/chromium/chrome/browser/autofill/settings/CreditCardNumberFormattingTextWatcher.java", "java/src/org/chromium/chrome/browser/autofill/settings/VirtualCardEnrollmentFields.java", "java/src/org/chromium/chrome/browser/auxiliary_search/AuxiliarySearchBridge.java", + "java/src/org/chromium/chrome/browser/auxiliary_search/AuxiliarySearchProvider.java", "java/src/org/chromium/chrome/browser/background_sync/BackgroundSyncBackgroundTask.java", "java/src/org/chromium/chrome/browser/background_sync/BackgroundSyncBackgroundTaskScheduler.java", "java/src/org/chromium/chrome/browser/background_sync/GooglePlayServicesChecker.java",
diff --git a/chrome/android/chrome_junit_test_java_sources.gni b/chrome/android/chrome_junit_test_java_sources.gni index 290bbbfa..edb4dc07 100644 --- a/chrome/android/chrome_junit_test_java_sources.gni +++ b/chrome/android/chrome_junit_test_java_sources.gni
@@ -1,5 +1,6 @@ chrome_junit_test_java_sources = [ "java/src/org/chromium/chrome/browser/auxiliary_search/AuxiliarySearchBridgeTest.java", + "java/src/org/chromium/chrome/browser/auxiliary_search/AuxiliarySearchProviderTest.java", "java/src/org/chromium/chrome/browser/segmentation_platform/ContextualPageActionControllerTest.java", "java/src/org/chromium/chrome/browser/segmentation_platform/PriceTrackingActionProviderTest.java", "java/src/org/chromium/chrome/browser/segmentation_platform/ReaderModeActionProviderTest.java",
diff --git a/chrome/android/features/start_surface/javatests/src/org/chromium/chrome/features/start_surface/InstantStartTabSwitcherTest.java b/chrome/android/features/start_surface/javatests/src/org/chromium/chrome/features/start_surface/InstantStartTabSwitcherTest.java index b35091be..01ed09f 100644 --- a/chrome/android/features/start_surface/javatests/src/org/chromium/chrome/features/start_surface/InstantStartTabSwitcherTest.java +++ b/chrome/android/features/start_surface/javatests/src/org/chromium/chrome/features/start_surface/InstantStartTabSwitcherTest.java
@@ -100,8 +100,7 @@ Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE, "force-fieldtrials=Study/Group"}) @EnableFeatures({ChromeFeatureList.TAB_GRID_LAYOUT_ANDROID, ChromeFeatureList.START_SURFACE_RETURN_TIME + "<Study,", - ChromeFeatureList.START_SURFACE_ANDROID + "<Study", ChromeFeatureList.INSTANT_START, - ChromeFeatureList.EMPTY_STATES}) + ChromeFeatureList.START_SURFACE_ANDROID + "<Study", ChromeFeatureList.INSTANT_START}) @Restriction({Restriction.RESTRICTION_TYPE_NON_LOW_END_DEVICE, UiRestriction.RESTRICTION_TYPE_PHONE}) @DoNotBatch(reason = "This test suite tests startup behaviours and thus can't be batched.")
diff --git a/chrome/android/features/start_surface/javatests/src/org/chromium/chrome/features/start_surface/InstantStartTest.java b/chrome/android/features/start_surface/javatests/src/org/chromium/chrome/features/start_surface/InstantStartTest.java index 07a1a27..af14cf33 100644 --- a/chrome/android/features/start_surface/javatests/src/org/chromium/chrome/features/start_surface/InstantStartTest.java +++ b/chrome/android/features/start_surface/javatests/src/org/chromium/chrome/features/start_surface/InstantStartTest.java
@@ -99,8 +99,7 @@ @CommandLineFlags. Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE, "force-fieldtrials=Study/Group"}) @EnableFeatures({ChromeFeatureList.TAB_GRID_LAYOUT_ANDROID, - ChromeFeatureList.START_SURFACE_ANDROID, ChromeFeatureList.INSTANT_START, - ChromeFeatureList.EMPTY_STATES}) + ChromeFeatureList.START_SURFACE_ANDROID, ChromeFeatureList.INSTANT_START}) @Restriction({Restriction.RESTRICTION_TYPE_NON_LOW_END_DEVICE, UiRestriction.RESTRICTION_TYPE_PHONE}) @DoNotBatch(reason = "InstantStartTest tests startup behaviours and thus can't be batched.")
diff --git a/chrome/android/features/start_surface/javatests/src/org/chromium/chrome/features/start_surface/StartSurfaceBackButtonTest.java b/chrome/android/features/start_surface/javatests/src/org/chromium/chrome/features/start_surface/StartSurfaceBackButtonTest.java index c11613bf..1b3b0c0 100644 --- a/chrome/android/features/start_surface/javatests/src/org/chromium/chrome/features/start_surface/StartSurfaceBackButtonTest.java +++ b/chrome/android/features/start_surface/javatests/src/org/chromium/chrome/features/start_surface/StartSurfaceBackButtonTest.java
@@ -78,8 +78,7 @@ @UseRunnerDelegate(ChromeJUnit4RunnerDelegate.class) @Restriction( {UiRestriction.RESTRICTION_TYPE_PHONE, Restriction.RESTRICTION_TYPE_NON_LOW_END_DEVICE}) -@EnableFeatures( - {ChromeFeatureList.START_SURFACE_ANDROID + "<Study", ChromeFeatureList.EMPTY_STATES}) +@EnableFeatures({ChromeFeatureList.START_SURFACE_ANDROID + "<Study"}) @DoNotBatch(reason = "StartSurface*Test tests startup behaviours and thus can't be batched.") @CommandLineFlags. Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE, "force-fieldtrials=Study/Group"}) @@ -122,6 +121,7 @@ @Before public void setUp() throws IOException { StartSurfaceTestUtils.setUpStartSurfaceTests(mImmediateReturn, mActivityTestRule); + mLayoutChangedCallbackHelper = new CallbackHelper(); if (isInstantReturn()) {
diff --git a/chrome/android/features/start_surface/javatests/src/org/chromium/chrome/features/start_surface/StartSurfaceMVTilesTest.java b/chrome/android/features/start_surface/javatests/src/org/chromium/chrome/features/start_surface/StartSurfaceMVTilesTest.java index 0ac0473..aeaa0bf4 100644 --- a/chrome/android/features/start_surface/javatests/src/org/chromium/chrome/features/start_surface/StartSurfaceMVTilesTest.java +++ b/chrome/android/features/start_surface/javatests/src/org/chromium/chrome/features/start_surface/StartSurfaceMVTilesTest.java
@@ -77,8 +77,7 @@ @UseRunnerDelegate(ChromeJUnit4RunnerDelegate.class) @Restriction( {UiRestriction.RESTRICTION_TYPE_PHONE, Restriction.RESTRICTION_TYPE_NON_LOW_END_DEVICE}) -@EnableFeatures( - {ChromeFeatureList.START_SURFACE_ANDROID + "<Study", ChromeFeatureList.EMPTY_STATES}) +@EnableFeatures({ChromeFeatureList.START_SURFACE_ANDROID + "<Study"}) @DoNotBatch(reason = "StartSurface*Test tests startup behaviours and thus can't be batched.") @CommandLineFlags. Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE, "force-fieldtrials=Study/Group"})
diff --git a/chrome/android/features/start_surface/javatests/src/org/chromium/chrome/features/start_surface/StartSurfaceOnTabletTest.java b/chrome/android/features/start_surface/javatests/src/org/chromium/chrome/features/start_surface/StartSurfaceOnTabletTest.java index 754dae4e1..3aa17ae 100644 --- a/chrome/android/features/start_surface/javatests/src/org/chromium/chrome/features/start_surface/StartSurfaceOnTabletTest.java +++ b/chrome/android/features/start_surface/javatests/src/org/chromium/chrome/features/start_surface/StartSurfaceOnTabletTest.java
@@ -19,10 +19,12 @@ import org.hamcrest.Matchers; import org.junit.Assert; +import org.junit.Assume; import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; +import org.chromium.base.MathUtils; import org.chromium.base.test.util.CommandLineFlags; import org.chromium.base.test.util.Criteria; import org.chromium.base.test.util.CriteriaHelper; @@ -38,6 +40,7 @@ import org.chromium.chrome.browser.ntp.NewTabPage; import org.chromium.chrome.browser.ntp.NewTabPageLayout; import org.chromium.chrome.browser.suggestions.tile.MostVisitedTilesCarouselLayout; +import org.chromium.chrome.browser.suggestions.tile.MostVisitedTilesCoordinator; import org.chromium.chrome.browser.suggestions.tile.MostVisitedTilesGridLayout; import org.chromium.chrome.browser.suggestions.tile.MostVisitedTilesLayout; import org.chromium.chrome.browser.tab.Tab; @@ -455,9 +458,11 @@ + res.getDimensionPixelSize( org.chromium.chrome.R.dimen .mvt_container_to_ntp_right_extra_margin_two_feed_tablet) - + res.getDimensionPixelSize(org.chromium.chrome.R.dimen.tile_grid_layout_bleed); + + res.getDimensionPixelSize(org.chromium.chrome.R.dimen.tile_grid_layout_bleed) / 2 + * 2; int expectedContainerTwoSideMarginPortrait = - res.getDimensionPixelSize(org.chromium.chrome.R.dimen.tile_grid_layout_bleed) + res.getDimensionPixelSize(org.chromium.chrome.R.dimen.tile_grid_layout_bleed) / 2 + * 2 + res.getDimensionPixelSize( org.chromium.chrome.R.dimen .mvt_container_to_ntp_right_extra_margin_two_feed_tablet); @@ -467,13 +472,17 @@ int expectedMvtBottomMargin = res.getDimensionPixelSize( org.chromium.chrome.R.dimen.mvt_container_bottom_margin_tablet); - int expectedSingleTabCardTopAndBottomMargin = res.getDimensionPixelSize( - org.chromium.chrome.R.dimen - .single_tab_card_top_and_bottom_margin_carousel_mvt_tablet); + int expectedSingleTabCardTopMargin = -res.getDimensionPixelSize( + org.chromium.chrome.R.dimen.single_tab_card_top_margin_tablet); + int expectedSingleTabCardBottomMargin = + res.getDimensionPixelOffset( + org.chromium.chrome.R.dimen.single_tab_card_bottom_margin_tablet) + - res.getDimensionPixelOffset( + org.chromium.chrome.R.dimen.feed_header_tab_list_view_top_bottom_margin); // Verifies the vertical margins of the module most visited tiles and single tab card are // correct. verifyMvtAndSingleTabCardVerticalMargins(expectedMvtBottomMargin, - -expectedSingleTabCardTopAndBottomMargin, expectedSingleTabCardTopAndBottomMargin, + expectedSingleTabCardTopMargin, expectedSingleTabCardBottomMargin, /*isNtpHomepage=*/true, ntp); } @@ -535,12 +544,17 @@ int expectedMvtBottomMargin = res.getDimensionPixelSize( org.chromium.chrome.R.dimen.mvt_container_bottom_margin_tablet); - int expectedSingleTabCardTopAndBottomMargin = res.getDimensionPixelSize( - org.chromium.chrome.R.dimen.single_tab_card_top_and_bottom_margin_grid_mvt_tablet); + int expectedSingleTabCardTopMargin = -res.getDimensionPixelSize( + org.chromium.chrome.R.dimen.single_tab_card_top_margin_tablet); + int expectedSingleTabCardBottomMargin = + res.getDimensionPixelOffset( + org.chromium.chrome.R.dimen.single_tab_card_bottom_margin_tablet) + - res.getDimensionPixelOffset( + org.chromium.chrome.R.dimen.feed_header_tab_list_view_top_bottom_margin); // Verifies the vertical margins of the module most visited tiles and single tab card are // correct. verifyMvtAndSingleTabCardVerticalMargins(expectedMvtBottomMargin, - -expectedSingleTabCardTopAndBottomMargin, expectedSingleTabCardTopAndBottomMargin, + expectedSingleTabCardTopMargin, expectedSingleTabCardBottomMargin, /*isNtpHomepage=*/true, ntp); } @@ -591,6 +605,7 @@ int expectedContainerTwoSideMarginPortrait, int expectedEdgeMarginLandScape, int expectedEdgeMarginPortrait, boolean isScrollable, NewTabPage ntp) { NewTabPageLayout ntpLayout = ntp.getNewTabPageLayout(); + Assume.assumeTrue(ntpLayout.getChildCount() >= 4); View mvTilesContainer = ntpLayout.findViewById(org.chromium.chrome.test.R.id.mv_tiles_container); View mvTilesLayout = ntpLayout.findViewById(org.chromium.chrome.test.R.id.mv_tiles_layout); @@ -643,7 +658,7 @@ Assert.assertEquals("The container's margin with respect to the layout of the new tab " + "page is incorrect.", - expectedContainerTwoSideMargin, ntpLayout.getWidth() - mvtContainerWidth); + expectedContainerTwoSideMargin, ntpLayout.getWidth() - mvtContainerWidth, 3); if (isScrollable) { Assert.assertTrue("The width of the most visited tiles layout is wrong.", @@ -658,15 +673,26 @@ } else { Assert.assertTrue("The width of the most visited tiles layout is wrong.", mvtContainerWidth == mvTilesLayoutWidth); - Assert.assertEquals("The edge margin of the most visited tiles element to " - + "the MV tiles layout is wrong.", - mvt1LeftMargin, expectedEdgeMargin); + int minHorizontalSpacing = ((MostVisitedTilesGridLayout) mvTilesLayout) + .getMinHorizontalSpacingForTesting(); + int maxHorizontalSpacing = ((MostVisitedTilesGridLayout) mvTilesLayout) + .getMaxHorizontalSpacingForTesting(); + int numColumns = MathUtils.clamp((mvTilesLayoutWidth + minHorizontalSpacing) + / (mvTilesItemWidth + minHorizontalSpacing), + 1, MostVisitedTilesCoordinator.MAX_TILE_COLUMNS_FOR_GRID); int expectedIntervalPadding = - (mvTilesLayoutWidth - mvTilesItemWidth * 4 - expectedEdgeMargin * 2) / 3; - Assert.assertEquals( - "The padding between each element of the most visited tiles is incorrect.", - expectedIntervalPadding, - mvt2LeftMargin - mvTilesItemWidth - expectedEdgeMargin); + (mvTilesLayoutWidth - mvTilesItemWidth * numColumns - expectedEdgeMargin * 2) + / (numColumns - 1); + if (expectedIntervalPadding >= minHorizontalSpacing + && expectedIntervalPadding <= maxHorizontalSpacing) { + Assert.assertEquals("The edge margin of the most visited tiles element to " + + "the MV tiles layout is wrong.", + mvt1LeftMargin, expectedEdgeMargin); + Assert.assertEquals( + "The padding between each element of the most visited tiles is incorrect.", + expectedIntervalPadding, + mvt2LeftMargin - mvTilesItemWidth - expectedEdgeMargin); + } } }
diff --git a/chrome/android/features/start_surface/javatests/src/org/chromium/chrome/features/start_surface/StartSurfaceTabSwitcherTest.java b/chrome/android/features/start_surface/javatests/src/org/chromium/chrome/features/start_surface/StartSurfaceTabSwitcherTest.java index 7630e7fd..ec565d3 100644 --- a/chrome/android/features/start_surface/javatests/src/org/chromium/chrome/features/start_surface/StartSurfaceTabSwitcherTest.java +++ b/chrome/android/features/start_surface/javatests/src/org/chromium/chrome/features/start_surface/StartSurfaceTabSwitcherTest.java
@@ -78,8 +78,7 @@ @UseRunnerDelegate(ChromeJUnit4RunnerDelegate.class) @Restriction( {UiRestriction.RESTRICTION_TYPE_PHONE, Restriction.RESTRICTION_TYPE_NON_LOW_END_DEVICE}) -@EnableFeatures( - {ChromeFeatureList.START_SURFACE_ANDROID + "<Study", ChromeFeatureList.EMPTY_STATES}) +@EnableFeatures({ChromeFeatureList.START_SURFACE_ANDROID + "<Study"}) @DoNotBatch(reason = "StartSurface*Test tests startup behaviours and thus can't be batched.") @CommandLineFlags. Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE, "force-fieldtrials=Study/Group"})
diff --git a/chrome/android/features/start_surface/javatests/src/org/chromium/chrome/features/start_surface/StartSurfaceTest.java b/chrome/android/features/start_surface/javatests/src/org/chromium/chrome/features/start_surface/StartSurfaceTest.java index faed1e6..f0f4c3f 100644 --- a/chrome/android/features/start_surface/javatests/src/org/chromium/chrome/features/start_surface/StartSurfaceTest.java +++ b/chrome/android/features/start_surface/javatests/src/org/chromium/chrome/features/start_surface/StartSurfaceTest.java
@@ -116,8 +116,7 @@ @UseRunnerDelegate(ChromeJUnit4RunnerDelegate.class) @Restriction( {UiRestriction.RESTRICTION_TYPE_PHONE, Restriction.RESTRICTION_TYPE_NON_LOW_END_DEVICE}) -@EnableFeatures( - {ChromeFeatureList.START_SURFACE_ANDROID + "<Study", ChromeFeatureList.EMPTY_STATES}) +@EnableFeatures({ChromeFeatureList.START_SURFACE_ANDROID + "<Study"}) @CommandLineFlags. Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE, "force-fieldtrials=Study/Group"}) @DoNotBatch(reason = "This test suite tests startup behaviors.")
diff --git a/chrome/android/features/tab_ui/BUILD.gn b/chrome/android/features/tab_ui/BUILD.gn index a0fc650..265c8e3e 100644 --- a/chrome/android/features/tab_ui/BUILD.gn +++ b/chrome/android/features/tab_ui/BUILD.gn
@@ -41,7 +41,6 @@ "java/res/drawable/ic_select_all_24dp.xml", "java/res/drawable/iph_drag_and_drop_animated_drawable.xml", "java/res/drawable/iph_drag_and_drop_drawable.xml", - "java/res/drawable/phone_tab_switcher_empty_state_illustration.xml", "java/res/drawable/price_card_background.xml", "java/res/drawable/price_card_scrim.xml", "java/res/drawable/selected_tab_background.xml", @@ -55,7 +54,6 @@ "java/res/drawable/tab_strip_favicon_circle.xml", "java/res/drawable/tab_strip_selected_ring.xml", "java/res/drawable/tab_strip_selected_ring_incognito.xml", - "java/res/drawable/tablet_tab_switcher_empty_state_illustration.xml", "java/res/drawable/tabstrip_favicon_background.xml", "java/res/drawable/ungroup_bar_background.xml", "java/res/layout/bottom_tab_grid_toolbar.xml",
diff --git a/chrome/android/features/tab_ui/java/res/drawable/phone_tab_switcher_empty_state_illustration.xml b/chrome/android/features/tab_ui/java/res/drawable/phone_tab_switcher_empty_state_illustration.xml deleted file mode 100644 index ebad7060..0000000 --- a/chrome/android/features/tab_ui/java/res/drawable/phone_tab_switcher_empty_state_illustration.xml +++ /dev/null
@@ -1,50 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -Copyright 2023 The Chromium Authors -Use of this source code is governed by a BSD-style license that can be -found in the LICENSE file. ---> - -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:autoMirrored="true" - android:height="130dp" - android:viewportHeight="130" - android:viewportWidth="130" - android:width="130dp"> - <path - android:fillColor="@color/empty_state_icon_bg_color" - android:pathData="M84.07,67.58L53.87,37.38C44.1,27.6 51.02,10.9 64.84,10.9H100.76C104.87,10.9 108.82,12.53 111.73,15.44L123.97,27.68C130.03,33.74 130.03,43.56 123.97,49.62L106.01,67.58C99.95,73.64 90.13,73.64 84.07,67.58Z"/> - <path - android:fillColor="@color/empty_state_icon_bg_color" - android:pathData="M45.36,61.85L75.57,92.06C85.34,101.83 78.42,118.54 64.6,118.54H28.68C24.56,118.54 20.62,116.9 17.71,114L5.46,101.75C-0.59,95.69 -0.59,85.87 5.46,79.82L23.43,61.85C29.48,55.8 39.3,55.8 45.36,61.85Z"/> - <path - android:pathData="M94,41L94,99A3,3 0,0 1,91 102L50,102A3,3 0,0 1,47 99L47,41A3,3 0,0 1,50 38L91,38A3,3 0,0 1,94 41z" - android:strokeColor="@color/empty_state_icon_color" - android:strokeWidth="2"/> - <path - android:fillColor="@color/empty_state_icon_color" - android:fillType="evenOdd" - android:pathData="M50,37C47.79,37 46,38.79 46,41V45H95V41C95,38.79 93.21,37 91,37H50Z"/> - <path - android:fillColor="@color/empty_state_icon_bg_color" - android:pathData="M84,31L84,89A3,3 0,0 1,81 92L40,92A3,3 0,0 1,37 89L37,31A3,3 0,0 1,40 28L81,28A3,3 0,0 1,84 31z" - android:strokeColor="@color/empty_state_icon_color" - android:strokeWidth="2"/> - <path - android:fillColor="@color/empty_state_icon_color" - android:fillType="evenOdd" - android:pathData="M40,27C37.79,27 36,28.79 36,31V35H85V31C85,28.79 83.21,27 81,27H40Z"/> - <path - android:fillColor="@macro/default_bg_color_elev_0" - android:pathData="M40,29L42,29A1,1 0,0 1,43 30L43,32A1,1 0,0 1,42 33L40,33A1,1 0,0 1,39 32L39,30A1,1 0,0 1,40 29z"/> - <path - android:pathData="M81,30L79,32" - android:strokeColor="@macro/default_bg_color_elev_0" - android:strokeLineCap="round" - android:strokeWidth="2"/> - <path - android:pathData="M79,30L81,32" - android:strokeColor="@macro/default_bg_color_elev_0" - android:strokeLineCap="round" - android:strokeWidth="2"/> -</vector>
diff --git a/chrome/android/features/tab_ui/java/res/drawable/tablet_tab_switcher_empty_state_illustration.xml b/chrome/android/features/tab_ui/java/res/drawable/tablet_tab_switcher_empty_state_illustration.xml deleted file mode 100644 index 6420eb4..0000000 --- a/chrome/android/features/tab_ui/java/res/drawable/tablet_tab_switcher_empty_state_illustration.xml +++ /dev/null
@@ -1,70 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -Copyright 2023 The Chromium Authors -Use of this source code is governed by a BSD-style license that can be -found in the LICENSE file. ---> - -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:autoMirrored="true" - android:height="130dp" - android:viewportHeight="130" - android:viewportWidth="130" - android:width="130dp"> - <path - android:fillColor="@color/empty_state_icon_bg_color" - android:pathData="M74.19,76.52L31.3,33.63C20.9,23.23 28.27,5.46 42.97,5.46H93.87C98.25,5.46 102.45,7.2 105.54,10.29L122.98,27.73C129.43,34.17 129.43,44.62 122.98,51.07L97.53,76.52C91.08,82.96 80.64,82.96 74.19,76.52Z"/> - <path - android:fillColor="@color/empty_state_icon_bg_color" - android:pathData="M55.81,52.48L98.7,95.37C109.1,105.77 101.73,123.54 87.03,123.54H36.13C31.75,123.54 27.55,121.81 24.46,118.71L7.02,101.27C0.57,94.83 0.57,84.38 7.02,77.93L32.47,52.48C38.92,46.04 49.37,46.04 55.81,52.48Z"/> - <path - android:pathData="M52,57L110,57A3,3 0,0 1,113 60L113,101A3,3 0,0 1,110 104L52,104A3,3 0,0 1,49 101L49,60A3,3 0,0 1,52 57z" - android:strokeColor="@color/empty_state_icon_color" - android:strokeWidth="2"/> - <path - android:pathData="M52,56.5L110,56.5A3.5,3.5 0,0 1,113.5 60L113.5,101A3.5,3.5 0,0 1,110 104.5L52,104.5A3.5,3.5 0,0 1,48.5 101L48.5,60A3.5,3.5 0,0 1,52 56.5z" - android:strokeColor="@color/empty_state_icon_bg_color" - android:strokeWidth="1"/> - <path - android:fillColor="@color/empty_state_icon_color" - android:fillType="evenOdd" - android:pathData="M52,56C49.79,56 48,57.79 48,60V64H114V60C114,57.79 112.21,56 110,56H52Z"/> - <path - android:pathData="M20,25L78,25A3,3 0,0 1,81 28L81,69A3,3 0,0 1,78 72L20,72A3,3 0,0 1,17 69L17,28A3,3 0,0 1,20 25z" - android:strokeColor="@color/empty_state_icon_color" - android:strokeWidth="2"/> - <path - android:pathData="M20,24.5L78,24.5A3.5,3.5 0,0 1,81.5 28L81.5,69A3.5,3.5 0,0 1,78 72.5L20,72.5A3.5,3.5 0,0 1,16.5 69L16.5,28A3.5,3.5 0,0 1,20 24.5z" - android:strokeColor="@color/empty_state_icon_color" - android:strokeWidth="1"/> - <path - android:fillColor="@color/empty_state_icon_color" - android:fillType="evenOdd" - android:pathData="M20,24C17.79,24 16,25.79 16,28V32H82V28C82,25.79 80.21,24 78,24H20Z"/> - <path - android:pathData="M36,40.5L94,40.5A3.5,3.5 0,0 1,97.5 44L97.5,85A3.5,3.5 0,0 1,94 88.5L36,88.5A3.5,3.5 0,0 1,32.5 85L32.5,44A3.5,3.5 0,0 1,36 40.5z" - android:strokeColor="@color/empty_state_icon_color" - android:strokeWidth="1"/> - <path - android:fillColor="@color/empty_state_icon_tabswitcher_bg_color" - android:pathData="M36,41L94,41A3,3 0,0 1,97 44L97,85A3,3 0,0 1,94 88L36,88A3,3 0,0 1,33 85L33,44A3,3 0,0 1,36 41z" - android:strokeColor="@color/empty_state_icon_color" - android:strokeWidth="2"/> - <path - android:fillColor="@color/empty_state_icon_color" - android:fillType="evenOdd" - android:pathData="M36,40C33.79,40 32,41.79 32,44V48H98V44C98,41.79 96.21,40 94,40H36Z"/> - <path - android:fillColor="@macro/default_bg_color_elev_0" - android:pathData="M36,42L38,42A1,1 0,0 1,39 43L39,45A1,1 0,0 1,38 46L36,46A1,1 0,0 1,35 45L35,43A1,1 0,0 1,36 42z"/> - <path - android:pathData="M94,43L92,45" - android:strokeColor="@macro/default_bg_color_elev_0" - android:strokeLineCap="round" - android:strokeWidth="2"/> - <path - android:pathData="M92,43L94,45" - android:strokeColor="@macro/default_bg_color_elev_0" - android:strokeLineCap="round" - android:strokeWidth="2"/> -</vector> \ No newline at end of file
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListCoordinator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListCoordinator.java index 4213ca7..dcb4621 100644 --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListCoordinator.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListCoordinator.java
@@ -30,7 +30,6 @@ import org.chromium.base.Callback; import org.chromium.base.TraceEvent; -import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.lifecycle.DestroyObserver; import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.tab.TabUtils; @@ -82,7 +81,6 @@ static final int GRID_LAYOUT_SPAN_COUNT_LARGE = 4; static final int MAX_SCREEN_WIDTH_COMPACT_DP = 600; static final int MAX_SCREEN_WIDTH_MEDIUM_DP = 800; - private final TabListMediator mMediator; private final TabListRecyclerView mRecyclerView; private final SimpleRecyclerViewAdapter mAdapter; @@ -99,7 +97,6 @@ private @Nullable TabStripSnapshotter mTabStripSnapshotter; private ItemTouchHelper mItemTouchHelper; private OnItemTouchListener mOnItemTouchListener; - private TabListEmptyCoordinator mTabListEmptyCoordinator; /** * Construct a coordinator for UI that shows a list of tabs. @@ -144,7 +141,6 @@ mModel = new TabListModel(); mAdapter = new SimpleRecyclerViewAdapter(mModel); mRootView = rootView; - RecyclerView.RecyclerListener recyclerListener = null; if (mMode == TabListMode.GRID || mMode == TabListMode.CAROUSEL) { mAdapter.registerType(UiType.SELECTABLE, parent -> { @@ -223,10 +219,6 @@ selectionDelegateProvider, gridCardOnClickListenerProvider, dialogHandler, priceWelcomeMessageController, componentName, itemType); - if (ChromeFeatureList.sEmptyStates.isEnabled()) { - mTabListEmptyCoordinator = new TabListEmptyCoordinator(rootView, mModel); - } - try (TraceEvent e = TraceEvent.scoped("TabListCoordinator.setupRecyclerView")) { if (!attachToParent) { mRecyclerView = (TabListRecyclerView) LayoutInflater.from(context).inflate( @@ -538,9 +530,6 @@ @Override public void onDestroy() { mMediator.destroy(); - if (mTabListEmptyCoordinator != null) { - mTabListEmptyCoordinator.destroy(); - } if (mListLayoutListener != null) { mRecyclerView.removeOnLayoutChangeListener(mListLayoutListener); mLayoutListenerRegistered = false;
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEmptyCoordinator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEmptyCoordinator.java deleted file mode 100644 index 170ea85..0000000 --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEmptyCoordinator.java +++ /dev/null
@@ -1,80 +0,0 @@ -// Copyright 2023 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package org.chromium.chrome.browser.tasks.tab_management; - -import android.content.Context; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ImageView; -import android.widget.TextView; - -import org.chromium.chrome.tab_ui.R; -import org.chromium.ui.base.DeviceFormFactor; -import org.chromium.ui.modelutil.ListObservable; -import org.chromium.ui.modelutil.ListObservable.ListObserver; - -// @TODO(crbug.com/1442335) Add instrumentation test for TabListEmptyCoordinator class. -public class TabListEmptyCoordinator { - private ViewGroup mRootView; - private View mEmptyView; - private Context mContext; - private TabListModel mModel; - private ListObserver<Void> mListObserver; - - public TabListEmptyCoordinator(ViewGroup rootView, TabListModel model) { - mRootView = rootView; - mContext = rootView.getContext(); - - // Initialize tab switcher Empty State resources. - mEmptyView = (ViewGroup) android.view.LayoutInflater.from(mContext).inflate( - R.layout.empty_state_view, null); - TextView emptyStateHeading = mEmptyView.findViewById(R.id.empty_state_text_title); - TextView emptyStateSubheading = mEmptyView.findViewById(R.id.empty_state_text_description); - ImageView imageView = mEmptyView.findViewById(R.id.empty_state_icon); - - // Set properties. - emptyStateHeading.setText(R.string.tabswitcher_no_tabs_empty_state); - emptyStateSubheading.setText(R.string.tabswitcher_no_tabs_open_to_visit_different_pages); - - // Apply image illustrations based on form factors. - if (DeviceFormFactor.isNonMultiDisplayContextOnTablet(mContext)) { - imageView.setImageResource(R.drawable.tablet_tab_switcher_empty_state_illustration); - } else { - imageView.setImageResource(R.drawable.phone_tab_switcher_empty_state_illustration); - } - - // Observe TabListModel to determine when to add / remove empty state view. - mModel = model; - mListObserver = new ListObserver<Void>() { - @Override - public void onItemRangeInserted(ListObservable source, int index, int count) { - updateEmptyView(); - } - - @Override - public void onItemRangeRemoved(ListObservable source, int index, int count) { - updateEmptyView(); - } - }; - mModel.addObserver(mListObserver); - } - - private void updateEmptyView() { - boolean showEmptyView = mModel.size() == 0; - boolean isEmptyViewAttached = mEmptyView.getParent() != null; - - if (showEmptyView && !isEmptyViewAttached) { - mRootView.addView(mEmptyView); - } else if (!showEmptyView && isEmptyViewAttached) { - mRootView.removeView(mEmptyView); - } - } - - public void destroy() { - if (mListObserver != null) { - mModel.removeObserver(mListObserver); - } - } -}
diff --git a/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherAndStartSurfaceLayoutTest.java b/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherAndStartSurfaceLayoutTest.java index f742aee..6129ba0 100644 --- a/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherAndStartSurfaceLayoutTest.java +++ b/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherAndStartSurfaceLayoutTest.java
@@ -148,7 +148,6 @@ @CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE, "force-fieldtrials=Study/Group"}) @EnableFeatures({ChromeFeatureList.TAB_GRID_LAYOUT_ANDROID + "<Study"}) -@DisableFeatures({ChromeFeatureList.EMPTY_STATES}) @Restriction( {UiRestriction.RESTRICTION_TYPE_PHONE, Restriction.RESTRICTION_TYPE_NON_LOW_END_DEVICE}) public class TabSwitcherAndStartSurfaceLayoutTest {
diff --git a/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherTabletTest.java b/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherTabletTest.java index da78b163a..488c9fa 100644 --- a/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherTabletTest.java +++ b/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherTabletTest.java
@@ -88,8 +88,8 @@ @RunWith(ChromeJUnit4ClassRunner.class) @CommandLineFlags. Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE, "force-fieldtrials=Study/Group"}) -@EnableFeatures({ChromeFeatureList.TAB_STRIP_REDESIGN, ChromeFeatureList.EMPTY_STATES}) -@DisableFeatures({ChromeFeatureList.TAB_TO_GTS_ANIMATION}) +@EnableFeatures({ChromeFeatureList.TAB_STRIP_REDESIGN}) +@DisableFeatures(ChromeFeatureList.TAB_TO_GTS_ANIMATION) @Restriction( {Restriction.RESTRICTION_TYPE_NON_LOW_END_DEVICE, UiRestriction.RESTRICTION_TYPE_TABLET}) @Batch(Batch.PER_CLASS)
diff --git a/chrome/android/features/tab_ui/tab_management_java_sources.gni b/chrome/android/features/tab_ui/tab_management_java_sources.gni index e5ed6c34..f9c89c77 100644 --- a/chrome/android/features/tab_ui/tab_management_java_sources.gni +++ b/chrome/android/features/tab_ui/tab_management_java_sources.gni
@@ -67,7 +67,6 @@ "//chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListContainerProperties.java", "//chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListContainerViewBinder.java", "//chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListCoordinator.java", - "//chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEmptyCoordinator.java", "//chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListMediator.java", "//chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListModel.java", "//chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListRecyclerView.java",
diff --git a/chrome/android/java/res/drawable/blue_google_shield.xml b/chrome/android/java/res/drawable/blue_google_shield.xml new file mode 100644 index 0000000..59fdcbd --- /dev/null +++ b/chrome/android/java/res/drawable/blue_google_shield.xml
@@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +Copyright 2023 The Chromium Authors +Use of this source code is governed by a BSD-style license that can be +found in the LICENSE file. +--> +<vector android:alpha="0.9" android:height="24dp" + android:viewportHeight="24" android:viewportWidth="24" + android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android"> + <path android:fillColor="#1967D2" android:pathData="M21.6,4.73c0,-0.83 -0.52,-1.56 -1.3,-1.85l-7.64,-2.76c-0.43,-0.16 -0.91,-0.16 -1.34,0L3.7,2.88C2.92,3.16 2.4,3.9 2.4,4.73v5.25c0.02,0.9 0.09,1.77 0.21,2.66c0.57,3.82 2.73,8.15 8.64,11.18c0.47,0.24 1.03,0.24 1.5,0c5.91,-3.03 8.07,-7.36 8.64,-11.18c0.12,-0.89 0.19,-1.76 0.21,-2.66V4.73z"/> + <group> + <clip-path android:pathData="M21.6,4.73c0,-0.83 -0.52,-1.56 -1.3,-1.85l-7.64,-2.76c-0.43,-0.16 -0.91,-0.16 -1.34,0L3.7,2.88C2.92,3.16 2.4,3.9 2.4,4.73v5.25c0.02,0.9 0.09,1.77 0.21,2.66c0.57,3.82 2.73,8.15 8.64,11.18c0.47,0.24 1.03,0.24 1.5,0c5.91,-3.03 8.07,-7.36 8.64,-11.18c0.12,-0.89 0.19,-1.76 0.21,-2.66V4.73z"/> + <path android:fillColor="#185ABC" android:pathData="M0,-0.27h12v24.55h-12z"/> + </group> + <path android:fillColor="#E8F0FE" android:pathData="M12.11,16.4c-3.09,0 -5.6,-2.51 -5.6,-5.6s2.51,-5.6 5.6,-5.6c1.51,0 2.78,0.56 3.75,1.46l-1.48,1.42c-0.43,-0.4 -1.16,-0.87 -2.27,-0.87c-1.95,0 -3.53,1.61 -3.53,3.6s1.59,3.6 3.53,3.6c2.25,0 3.18,-1.62 3.27,-2.7H12V9.78h5.35c0.08,0.35 0.13,0.68 0.13,1.14C17.49,14.13 15.35,16.4 12.11,16.4z"/> + <group> + <clip-path android:pathData="M12.11,16.4c-3.09,0 -5.6,-2.51 -5.6,-5.6s2.51,-5.6 5.6,-5.6c1.51,0 2.78,0.56 3.75,1.46l-1.48,1.42c-0.43,-0.4 -1.16,-0.87 -2.27,-0.87c-1.95,0 -3.53,1.61 -3.53,3.6s1.59,3.6 3.53,3.6c2.25,0 3.18,-1.62 3.27,-2.7H12V9.78h5.35c0.08,0.35 0.13,0.68 0.13,1.14C17.49,14.13 15.35,16.4 12.11,16.4z"/> + <path android:fillColor="#D2E3FC" android:pathData="M6.4,5.2h5.6v11.2h-5.6z"/> + </group> +</vector>
diff --git a/chrome/android/java/res/drawable/gray_shield.xml b/chrome/android/java/res/drawable/gray_shield.xml new file mode 100644 index 0000000..619af1f --- /dev/null +++ b/chrome/android/java/res/drawable/gray_shield.xml
@@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +Copyright 2023 The Chromium Authors +Use of this source code is governed by a BSD-style license that can be +found in the LICENSE file. +--> + +<vector android:alpha="0.9" android:height="24dp" + android:viewportHeight="24" android:viewportWidth="24" + android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android"> + <path android:fillColor="@android:color/darker_gray" android:pathData="M12,1L3,5v6c0,5.55 3.84,10.74 9,12 5.16,-1.26 9,-6.45 9,-12V5l-9,-4z"/> +</vector>
diff --git a/chrome/android/java/res/values/dimens.xml b/chrome/android/java/res/values/dimens.xml index 97452a7..b42af49 100644 --- a/chrome/android/java/res/values/dimens.xml +++ b/chrome/android/java/res/values/dimens.xml
@@ -163,11 +163,11 @@ <dimen name="tile_carousel_layout_bottom_margin">24dp</dimen> <dimen name="mvt_container_to_ntp_right_extra_margin_two_feed_tablet">16dp</dimen> <dimen name="mvt_container_bottom_margin_tablet">48dp</dimen> - <dimen name="tile_grid_layout_landscape_edge_margin_tablet">48dp</dimen> - <dimen name="tile_grid_layout_portrait_edge_margin_tablet">32dp</dimen> + <dimen name="tile_grid_layout_landscape_edge_margin_tablet">100dp</dimen> + <dimen name="tile_grid_layout_portrait_edge_margin_tablet">84dp</dimen> <dimen name="tile_carousel_layout_max_interval_margin_tablet">64dp</dimen> - <dimen name="single_tab_card_top_and_bottom_margin_carousel_mvt_tablet">48dp</dimen> - <dimen name="single_tab_card_top_and_bottom_margin_grid_mvt_tablet">36dp</dimen> + <dimen name="single_tab_card_top_margin_tablet">48dp</dimen> + <dimen name="single_tab_card_bottom_margin_tablet">40dp</dimen> <dimen name="ntp_iph_searchbox_y_inset">6dp</dimen> <dimen name="ntp_logo_height">100dp</dimen> <dimen name="ntp_logo_margin_top">26dp</dimen> @@ -193,6 +193,7 @@ <dimen name="feed_header_icon_size">20dp</dimen> <dimen name="feed_header_tab_layout_height">40dp</dimen> <dimen name="feed_v2_header_menu_width">20dp</dimen> + <dimen name="feed_header_tab_list_view_top_bottom_margin">8dp</dimen> <!-- Incognito NTP --> <dimen name="incognito_ntp_total_space_between_views">14sp</dimen>
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/flags/ChromeCachedFlags.java b/chrome/android/java/src/org/chromium/chrome/browser/app/flags/ChromeCachedFlags.java index bd01f54..9bc07a26 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/app/flags/ChromeCachedFlags.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/flags/ChromeCachedFlags.java
@@ -68,7 +68,6 @@ CachedFeatureFlags.cacheNativeFlags(ChromeFeatureList.sFlagsCachedFullBrowser); CachedFeatureFlags.cacheAdditionalNativeFlags(); - //clang-format off List<CachedFieldTrialParameter> fieldTrialsToCache = List.of( BrandingController.BRANDING_CADENCE_MS, BrandingController.MAX_BLANK_TOOLBAR_TIMEOUT_MS,
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/auxiliary_search/AuxiliarySearchProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/auxiliary_search/AuxiliarySearchProvider.java new file mode 100644 index 0000000..d7c74249 --- /dev/null +++ b/chrome/android/java/src/org/chromium/chrome/browser/auxiliary_search/AuxiliarySearchProvider.java
@@ -0,0 +1,66 @@ +// Copyright 2023 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package org.chromium.chrome.browser.auxiliary_search; + +import android.util.Pair; + +import org.chromium.chrome.browser.auxiliary_search.AuxiliarySearchGroupProto.AuxiliarySearchBookmarkGroup; +import org.chromium.chrome.browser.profiles.Profile; +import org.chromium.chrome.browser.tab.Tab; +import org.chromium.chrome.browser.tabmodel.TabList; +import org.chromium.chrome.browser.tabmodel.TabModelSelector; + +import java.util.ArrayList; +import java.util.List; + +/** + * This class provides information for the auxiliary search. + */ +public class AuxiliarySearchProvider { + private static final int kNumTabsToSend = 100; + + private final AuxiliarySearchBridge mAuxiliarySearchBridge; + private final TabModelSelector mTabModelSelector; + + public AuxiliarySearchProvider(Profile profile, TabModelSelector tabModelSelector) { + mAuxiliarySearchBridge = new AuxiliarySearchBridge(profile); + mTabModelSelector = tabModelSelector; + } + + /** + * @return A list of titles and urls as pairs from tabs for the auxiliary search. + */ + public List<Pair<String, String>> getTabsSearchableData() { + List<Pair<String, String>> tabsList = new ArrayList<>(); + + TabList tabList = mTabModelSelector.getModel(false).getComprehensiveModel(); + int firstTabIndex = Math.max(tabList.getCount() - kNumTabsToSend, 0); + int end = tabList.getCount() - 1; + // Find the the bottom of tabs in the tab switcher view if the number of the tabs more than + // 'kNumTabsToSend'. In the multiwindow mode, the order of the 'tabList' is one window's + // tabs, and then another's. + for (int i = firstTabIndex; i <= end; i++) { + Tab tab = tabList.getTabAt(i); + tabsList.add(new Pair<>(tab.getTitle(), tab.getUrl().getSpec())); + } + return tabsList; + } + + /** + * @return A list of titles and urls as pairs from bookmarks for the auxiliary search. + */ + public List<Pair<String, String>> getBookmarksSearchableData() { + AuxiliarySearchBookmarkGroup group = mAuxiliarySearchBridge.getBookmarksSearchableData(); + + List<Pair<String, String>> bookmarksList = new ArrayList<>(); + if (group != null) { + for (int i = 0; i < group.getBookmarkCount(); i++) { + AuxiliarySearchBookmarkGroup.Bookmark bookmark = group.getBookmark(i); + bookmarksList.add(new Pair<>(bookmark.getTitle(), bookmark.getUrl())); + } + } + return bookmarksList; + } +}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/auxiliary_search/AuxiliarySearchProviderTest.java b/chrome/android/java/src/org/chromium/chrome/browser/auxiliary_search/AuxiliarySearchProviderTest.java new file mode 100644 index 0000000..08590cd --- /dev/null +++ b/chrome/android/java/src/org/chromium/chrome/browser/auxiliary_search/AuxiliarySearchProviderTest.java
@@ -0,0 +1,125 @@ +// Copyright 2023 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package org.chromium.chrome.browser.auxiliary_search; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.doReturn; + +import android.util.Pair; + +import androidx.test.filters.SmallTest; + +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.TestRule; +import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.mockito.junit.MockitoJUnit; +import org.mockito.junit.MockitoRule; +import org.robolectric.annotation.Config; + +import org.chromium.base.test.BaseRobolectricTestRunner; +import org.chromium.base.test.util.JniMocker; +import org.chromium.chrome.browser.auxiliary_search.AuxiliarySearchGroupProto.AuxiliarySearchBookmarkGroup; +import org.chromium.chrome.browser.flags.ChromeFeatureList; +import org.chromium.chrome.browser.profiles.Profile; +import org.chromium.chrome.browser.tab.MockTab; +import org.chromium.chrome.browser.tabmodel.TabModelSelector; +import org.chromium.chrome.test.util.browser.Features; +import org.chromium.chrome.test.util.browser.tabmodel.MockTabModel; +import org.chromium.url.GURL; + +import java.util.HashSet; +import java.util.List; + +/** + * Unit tests for {@link AuxiliarySearchProvider} + */ +@RunWith(BaseRobolectricTestRunner.class) +@Config(manifest = Config.NONE) +@Features.EnableFeatures({ChromeFeatureList.ANDROID_APP_INTEGRATION}) +public class AuxiliarySearchProviderTest { + private static final String TAB_URL = "https://tab.google.com/"; + private static final String BOOKMARK_TITLE = "bookmark"; + private static final String BOOKMARK_URL = "https://bookmark.google.com"; + private static final long FAKE_NATIVE_PROVIDER = 1; + + public @Rule JniMocker mJniMocker = new JniMocker(); + public @Rule MockitoRule mMockitoRule = MockitoJUnit.rule(); + public @Rule TestRule mProcessor = new Features.JUnitProcessor(); + + private @Mock AuxiliarySearchBridge.Natives mMockAuxiliarySearchBridgeJni; + private @Mock Profile mProfile; + private @Mock TabModelSelector mTabModelSelector; + + private AuxiliarySearchProvider mAuxiliarySearchProvider; + + @Before + public void setUp() { + mJniMocker.mock(AuxiliarySearchBridgeJni.TEST_HOOKS, mMockAuxiliarySearchBridgeJni); + doReturn(FAKE_NATIVE_PROVIDER).when(mMockAuxiliarySearchBridgeJni).getForProfile(mProfile); + mAuxiliarySearchProvider = new AuxiliarySearchProvider(mProfile, mTabModelSelector); + } + + @Test + @SmallTest + public void testgetTabsSearchableData() throws InterruptedException { + MockTabModel mockTabModel = new MockTabModel(false, null); + for (int i = 0; i < 200; i++) { + MockTab tab = (MockTab) mockTabModel.addTab(i); + tab.setGurlOverrideForTesting(new GURL(TAB_URL + Integer.toString(i))); + } + + doReturn(mockTabModel).when(mTabModelSelector).getModel(false); + List<Pair<String, String>> tabsList = mAuxiliarySearchProvider.getTabsSearchableData(); + + assertEquals(tabsList.size(), 100); + HashSet<Integer> returnedTabsNumbers = new HashSet<Integer>(); + for (int i = 0; i < tabsList.size(); i++) { + int number = Integer.valueOf(tabsList.get(i).second.substring(TAB_URL.length())); + assertTrue(number >= 100 && number <= 199); + returnedTabsNumbers.add(number); + } + assertEquals(returnedTabsNumbers.size(), 100); + } + + @Test + @SmallTest + public void testgetBookmarksSearchableData() { + var bookmark = AuxiliarySearchBookmarkGroup.Bookmark.newBuilder() + .setTitle(BOOKMARK_TITLE) + .setUrl(BOOKMARK_URL) + .build(); + var proto = AuxiliarySearchBookmarkGroup.newBuilder().addBookmark(bookmark).build(); + + doReturn(proto.toByteArray()) + .when(mMockAuxiliarySearchBridgeJni) + .getBookmarksSearchableData(FAKE_NATIVE_PROVIDER); + + List<Pair<String, String>> bookmarksList = + mAuxiliarySearchProvider.getBookmarksSearchableData(); + + assertEquals(bookmarksList.size(), 1); + assertEquals(bookmarksList.get(0).first, BOOKMARK_TITLE); + assertEquals(bookmarksList.get(0).second, BOOKMARK_URL); + } + + @Test + @SmallTest + public void testgetBookmarksSearchableData_failureToParse() { + // Return a random array which cannot been parsed to proto. + doReturn(new byte[] {1, 2, 3}) + .when(mMockAuxiliarySearchBridgeJni) + .getBookmarksSearchableData(FAKE_NATIVE_PROVIDER); + + List<Pair<String, String>> bookmarksList = + mAuxiliarySearchProvider.getBookmarksSearchableData(); + + bookmarksList = mAuxiliarySearchProvider.getBookmarksSearchableData(); + assertEquals(bookmarksList.size(), 0); + } +}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerMediator.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerMediator.java index d44a314..c26b06b 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerMediator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerMediator.java
@@ -71,7 +71,6 @@ class BookmarkManagerMediator implements BookmarkDelegate, TestingDelegate, PartnerBookmarksReader.FaviconUpdateObserver { private static final String EMPTY_QUERY = null; - private static final long MICRO_CURRENCY_QUOTIENT = 1000000; private static boolean sPreventLoadingForTesting;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java index 2089016..19b0dbc 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java
@@ -50,7 +50,6 @@ private boolean mEditButtonVisible; private boolean mNewFolderButtonVisible; - private Runnable mOpenSearchUiRunnable; private Callback<BookmarkId> mOpenFolderCallback; private Function<Integer, Boolean> mMenuIdClickedFunction; @@ -148,10 +147,6 @@ mCurrentFolder = mBookmarkModel.getBookmarkById(folder); } - void setOpenSearchUiRunnable(Runnable runnable) { - mOpenSearchUiRunnable = runnable; - } - void setOpenFolderCallback(Callback<BookmarkId> openFolderCallback) { mOpenFolderCallback = openFolderCallback; }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarMediator.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarMediator.java index dcdc218b..a10de3b 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarMediator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarMediator.java
@@ -80,8 +80,6 @@ } bookmarkDelegateSupplier.onAvailable((bookmarkDelegate) -> { mBookmarkDelegate = bookmarkDelegate; - mModel.set(BookmarkToolbarProperties.OPEN_SEARCH_UI_RUNNABLE, - mBookmarkDelegate::openSearchUi); mModel.set( BookmarkToolbarProperties.OPEN_FOLDER_CALLBACK, mBookmarkDelegate::openFolder); mBookmarkDelegate.addUiObserver(this);
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarProperties.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarProperties.java index a3f8c44c..354562e 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarProperties.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarProperties.java
@@ -56,8 +56,6 @@ new WritableObjectPropertyKey<>(/*skipEquality=*/true); /** Callables to delegate business logic back to the mediator */ - static final WritableObjectPropertyKey<Runnable> OPEN_SEARCH_UI_RUNNABLE = - new WritableObjectPropertyKey<>(); static final WritableObjectPropertyKey<Function<Integer, Boolean>> MENU_ID_CLICKED_FUNCTION = new WritableObjectPropertyKey<>(); static final WritableObjectPropertyKey<Callback<BookmarkId>> OPEN_FOLDER_CALLBACK = @@ -67,6 +65,5 @@ TITLE, BOOKMARK_UI_MODE, SOFT_KEYBOARD_VISIBLE, IS_DIALOG_UI, DRAG_ENABLED, SEARCH_BUTTON_VISIBLE, EDIT_BUTTON_VISIBLE, NEW_FOLDER_BUTTON_VISIBLE, NAVIGATION_BUTTON_STATE, CURRENT_FOLDER, CHECKED_SORT_MENU_ID, CHECKED_VIEW_MENU_ID, - OPEN_SEARCH_UI_RUNNABLE, MENU_ID_CLICKED_FUNCTION, OPEN_FOLDER_CALLBACK, - FAKE_SELECTION_STATE_CHANGE}; + MENU_ID_CLICKED_FUNCTION, OPEN_FOLDER_CALLBACK, FAKE_SELECTION_STATE_CHANGE}; }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarViewBinder.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarViewBinder.java index ae1b949..1c0e057e 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarViewBinder.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarViewBinder.java
@@ -53,9 +53,6 @@ model.get(BookmarkToolbarProperties.CHECKED_VIEW_MENU_ID)); } else if (key == BookmarkToolbarProperties.CURRENT_FOLDER) { bookmarkToolbar.setCurrentFolder(model.get(BookmarkToolbarProperties.CURRENT_FOLDER)); - } else if (key == BookmarkToolbarProperties.OPEN_SEARCH_UI_RUNNABLE) { - bookmarkToolbar.setOpenSearchUiRunnable( - model.get(BookmarkToolbarProperties.OPEN_SEARCH_UI_RUNNABLE)); } else if (key == BookmarkToolbarProperties.OPEN_FOLDER_CALLBACK) { bookmarkToolbar.setOpenFolderCallback( model.get(BookmarkToolbarProperties.OPEN_FOLDER_CALLBACK));
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/ImprovedBookmarkRow.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/ImprovedBookmarkRow.java index 4007c82..650361a 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/ImprovedBookmarkRow.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/ImprovedBookmarkRow.java
@@ -154,7 +154,6 @@ void setListMenuButtonDelegate(ListMenuButtonDelegate listMenuButtonDelegate) { mMoreButton.setDelegate(listMenuButtonDelegate); - mMoreButton.setVisibility(View.VISIBLE); } void setPopupListener(PopupMenuShownListener listener) {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java index 20f07e5..ab0f82be 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java
@@ -1112,18 +1112,13 @@ MarginLayoutParams marginLayoutParams = (MarginLayoutParams) mSingleTabCardContainer.getLayoutParams(); - int SingleTabCardContainerTopAndBottomMargin; - if (isScrollableMvtEnabled(mContext)) { - SingleTabCardContainerTopAndBottomMargin = - mNewTabPageLayout.getResources().getDimensionPixelOffset( - R.dimen.single_tab_card_top_and_bottom_margin_carousel_mvt_tablet); - } else { - SingleTabCardContainerTopAndBottomMargin = - mNewTabPageLayout.getResources().getDimensionPixelOffset( - R.dimen.single_tab_card_top_and_bottom_margin_grid_mvt_tablet); - } - marginLayoutParams.topMargin = -SingleTabCardContainerTopAndBottomMargin; - marginLayoutParams.bottomMargin = SingleTabCardContainerTopAndBottomMargin; + + marginLayoutParams.topMargin = -mNewTabPageLayout.getResources().getDimensionPixelOffset( + R.dimen.single_tab_card_top_margin_tablet); + marginLayoutParams.bottomMargin = mNewTabPageLayout.getResources().getDimensionPixelOffset( + R.dimen.single_tab_card_bottom_margin_tablet) + - mNewTabPageLayout.getResources().getDimensionPixelOffset( + R.dimen.feed_header_tab_list_view_top_bottom_margin); } /* Set the visibility of the single tab card.
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesCoordinator.java index ba22121..cfb3848 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesCoordinator.java
@@ -41,7 +41,8 @@ * The maximum number of tiles to try and fit in a row. On smaller screens, there may not be * enough space to fit all of them. */ - private static final int MAX_TILE_COLUMNS_FOR_GRID = 4; + @VisibleForTesting + public static final int MAX_TILE_COLUMNS_FOR_GRID = 4; private final Activity mActivity; private final ActivityLifecycleDispatcher mActivityLifecycleDispatcher;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesGridLayout.java b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesGridLayout.java index c5f73fa0..cc0ed05 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesGridLayout.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesGridLayout.java
@@ -113,7 +113,7 @@ // Determine how much padding to use between and around the tiles. int gridWidthMinusColumns = Math.max(0, totalWidth - numColumns * childWidth); Pair<Integer, Integer> gridProperties = - computeHorizontalDimensions(true, gridWidthMinusColumns, numColumns); + computeHorizontalDimensions(gridWidthMinusColumns, numColumns); int gridStart = gridProperties.first; int horizontalSpacing = gridProperties.second; @@ -150,14 +150,12 @@ } /** - * @param spreadTiles Whether to spread the tiles with the same space between and around them. * @param availableWidth The space available to spread between and around the tiles. * @param numColumns The number of columns to be organised. * @return The [gridStart, horizontalSpacing] pair of dimensions. */ @VisibleForTesting - Pair<Integer, Integer> computeHorizontalDimensions( - boolean spreadTiles, int availableWidth, int numColumns) { + Pair<Integer, Integer> computeHorizontalDimensions(int availableWidth, int numColumns) { int gridStart; float horizontalSpacing; if (mIsMultiColumnFeedOnTabletEnabled) { @@ -167,25 +165,22 @@ : mTileViewPortraitEdgePaddingTablet; horizontalSpacing = (availableWidth - gridStart * 2) / (numColumns - 1); } else { - if (spreadTiles) { - // Identically sized spacers are added both between and around the tiles. - int spacerCount = numColumns + 1; - horizontalSpacing = (float) availableWidth / spacerCount; - gridStart = Math.round(horizontalSpacing); - if (horizontalSpacing < mMinHorizontalSpacing) { - return computeHorizontalDimensions(false, availableWidth, numColumns); - } + // Identically sized spacers are added both between and around the tiles. + int spacerCount = numColumns + 1; + horizontalSpacing = (float) availableWidth / spacerCount; + gridStart = Math.round(horizontalSpacing); + } + + if (horizontalSpacing < mMinHorizontalSpacing + || horizontalSpacing > mMaxHorizontalSpacing) { + // Ensure column spacing isn't greater than mMaxHorizontalSpacing. + long gridSidePadding = availableWidth - (long) mMaxHorizontalSpacing * (numColumns - 1); + if (gridSidePadding > 0) { + horizontalSpacing = mMaxHorizontalSpacing; + gridStart = (int) (gridSidePadding / 2); } else { - // Ensure column spacing isn't greater than mMaxHorizontalSpacing. - long gridSidePadding = - availableWidth - (long) mMaxHorizontalSpacing * (numColumns - 1); - if (gridSidePadding > 0) { - horizontalSpacing = mMaxHorizontalSpacing; - gridStart = (int) (gridSidePadding / 2); - } else { - horizontalSpacing = (float) availableWidth / Math.max(1, numColumns - 1); - gridStart = 0; - } + horizontalSpacing = (float) availableWidth / Math.max(1, numColumns - 1); + gridStart = 0; } } @@ -219,6 +214,16 @@ mIsMultiColumnFeedOnTabletEnabled = isMultiColumnFeedOnTabletEnabled; } + @VisibleForTesting + public int getMinHorizontalSpacingForTesting() { + return mMinHorizontalSpacing; + } + + @VisibleForTesting + public int getMaxHorizontalSpacingForTesting() { + return mMaxHorizontalSpacing; + } + // TODO(crbug.com/1329288): Remove this method when the Feed position experiment is cleaned up. private int getGridMVTVerticalSpacingResourcesId() { if (!LibraryLoader.getInstance().isInitialized() || !mSearchProviderHasLogo) {
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarTest.java index 2d851c6..df9acbc3 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarTest.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarTest.java
@@ -88,8 +88,6 @@ @Mock BookmarkOpener mBookmarkOpener; @Mock - Runnable mOpenSearchUiRunnable; - @Mock Callback<BookmarkId> mOpenFolderCallback; private Activity mActivity; @@ -163,7 +161,6 @@ mBookmarkToolbar.setSelectionDelegate(mSelectionDelegate); mBookmarkToolbar.setBookmarkUiMode(BookmarkUiMode.FOLDER); mBookmarkToolbar.setIsDialogUi(true); - mBookmarkToolbar.setOpenSearchUiRunnable(mOpenSearchUiRunnable); mBookmarkToolbar.setOpenFolderCallback(mOpenFolderCallback); }
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarMediatorTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarMediatorTest.java index 513a7ba9..5f4909c6 100644 --- a/chrome/android/junit/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarMediatorTest.java +++ b/chrome/android/junit/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarMediatorTest.java
@@ -86,8 +86,6 @@ @Mock private SelectionDelegate mSelectionDelegate; @Mock - private Runnable mOpenSearchUiRunnable; - @Mock private Callback mOpenFolderCallback; @Mock private BookmarkId mBookmarkId; @@ -126,8 +124,6 @@ .with(BookmarkToolbarProperties.BOOKMARK_UI_MODE, BookmarkUiMode.LOADING) .with(BookmarkToolbarProperties.IS_DIALOG_UI, false) .with(BookmarkToolbarProperties.DRAG_ENABLED, false) - .with(BookmarkToolbarProperties.OPEN_SEARCH_UI_RUNNABLE, - mOpenSearchUiRunnable) .with(BookmarkToolbarProperties.OPEN_FOLDER_CALLBACK, mOpenFolderCallback) .build(); mBookmarkDelegateSupplier = new OneshotSupplierImpl<>();
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/bookmarks/ImprovedBookmarkRowTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/bookmarks/ImprovedBookmarkRowTest.java index 58c9d35..d7a743a9 100644 --- a/chrome/android/junit/src/org/chromium/chrome/browser/bookmarks/ImprovedBookmarkRowTest.java +++ b/chrome/android/junit/src/org/chromium/chrome/browser/bookmarks/ImprovedBookmarkRowTest.java
@@ -141,4 +141,13 @@ Assert.assertEquals(View.IMPORTANT_FOR_ACCESSIBILITY_YES, mImprovedBookmarkRow.findViewById(R.id.more).getImportantForAccessibility()); } + + @Test + public void testListMenuButtonDelegateDoesNotChangeVisibility() { + int visibility = mImprovedBookmarkRow.findViewById(R.id.more).getVisibility(); + mModel.set(ImprovedBookmarkRowProperties.LIST_MENU_BUTTON_DELEGATE, null); + // Setting the delegate shouldn't affect visibility. + Assert.assertEquals( + visibility, mImprovedBookmarkRow.findViewById(R.id.more).getVisibility()); + } }
diff --git a/chrome/android/profiles/arm.newest.txt b/chrome/android/profiles/arm.newest.txt index 3f15e69..4d134753 100644 --- a/chrome/android/profiles/arm.newest.txt +++ b/chrome/android/profiles/arm.newest.txt
@@ -1 +1 @@ -chromeos-chrome-arm-115.0.5786.0_rc-r1-merged.afdo.bz2 +chromeos-chrome-arm-115.0.5788.0_rc-r1-merged.afdo.bz2
diff --git a/chrome/android/profiles/newest.txt b/chrome/android/profiles/newest.txt index 8c96aeb..ff8750f 100644 --- a/chrome/android/profiles/newest.txt +++ b/chrome/android/profiles/newest.txt
@@ -1 +1 @@ -chromeos-chrome-amd64-115.0.5786.0_rc-r1-merged.afdo.bz2 +chromeos-chrome-amd64-115.0.5788.0_rc-r1-merged.afdo.bz2
diff --git a/chrome/app/chrome_command_ids.h b/chrome/app/chrome_command_ids.h index 75c567c..393c84d7 100644 --- a/chrome/app/chrome_command_ids.h +++ b/chrome/app/chrome_command_ids.h
@@ -253,6 +253,7 @@ #define IDC_BOOKMARKS_LIST_TITLE 40273 #define IDC_SHOW_BOOKMARK_SIDE_PANEL 40274 #define IDC_SHOW_SEARCH_COMPANION 40275 +#define IDC_SHOW_CHROME_LABS 40276 // Spell-check // Insert any additional suggestions before _LAST; these have to be consecutive.
diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd index 5740d1c..12082630 100644 --- a/chrome/app/generated_resources.grd +++ b/chrome/app/generated_resources.grd
@@ -1403,6 +1403,9 @@ <message name="IDS_NAME_WINDOW" desc="The text label of the Name Window menu item, used to give a user-specified name to a window."> Name &window... </message> + <message name="IDS_CHROMELABS" desc="The text label of the Chrome Labs menu item"> + Chrome &Labs... + </message> </if> <if expr="use_titlecase"> <message name="IDS_VIEW_SOURCE" desc="In Title Case: The text label of the View Page Source menu item"> @@ -1450,6 +1453,9 @@ <message name="IDS_NAME_WINDOW" desc="In Title Case: The text label of the Name Window menu item, used to give a user-specified name to a window."> Name &Window... </message> + <message name="IDS_CHROMELABS" desc="In Title Case: The text label of the Chrome Labs menu item"> + Chrome &Labs... + </message> </if> <if expr="is_macosx"> @@ -6275,6 +6281,21 @@ <message name="IDS_PASSWORD_GENERATION_HELP_TEXT_CONVENIENCE" desc="Autofill dropdown text describing password generation with a convenience proposition."> Sign up and sign in faster when your password is automatically saved to <ph name="GOOGLE_PASSWORD_MANAGER">$1<ex>Google Password Manager</ex></ph> for <ph name="EMAIL">$2<ex>user@gmail.com</ex></ph>. </message> + <message name="IDS_PASSWORD_GENERATION_BENEFITS" desc="Autofill dropdown text before listing bullet points of password generation benefits."> + When you use and save this password: + </message> + <message name="IDS_PASSWORD_GENERATION_CROSS_DEVICE" desc="Autofill dropdown text describing that the generated password is available cross-device."> + It's available on any device + </message> + <message name="IDS_PASSWORD_GENERATION_SECURITY" desc="Autofill dropdown text describing that the generated password is protected by the best Google technologies."> + It's protected by the best of Google + </message> + <message name="IDS_PASSWORD_GENERATION_PROACTIVE_CHECK" desc="Autofill dropdown text describing that the user will be notified whenever their saved generated password is at risk."> + You'll be notified if it's ever at risk + </message> + <message name="IDS_PASSWORD_GENERATION_HELP_TEXT" desc="Autofill dropdown text describing where the generated password is saved and how to access it."> + It will be saved to <ph name="GOOGLE_PASSWORD_MANAGER">$1<ex>Google Password Manager</ex></ph> for <ph name="EMAIL">$2<ex>user@gmail.com</ex></ph>. + </message> <message name="IDS_PASSWORD_MANAGEMENT_BUBBLE_FOOTER_ACCOUNT_STORE_USERS" desc="The footer text of the managment bubble the lists saved password for this website. This is used only for account store users."> Passwords are saved to <ph name="GOOGLE_PASSWORD_MANAGER">$1<ex>Google Password Manager</ex></ph>. </message>
diff --git a/chrome/app/generated_resources_grd/IDS_CHROMELABS.png.sha1 b/chrome/app/generated_resources_grd/IDS_CHROMELABS.png.sha1 new file mode 100644 index 0000000..ca7e1d6b2 --- /dev/null +++ b/chrome/app/generated_resources_grd/IDS_CHROMELABS.png.sha1
@@ -0,0 +1 @@ +5474aa5724847a353090902521a4464f4d36c7fc \ No newline at end of file
diff --git a/chrome/app/generated_resources_grd/IDS_PASSWORD_GENERATION_BENEFITS.png.sha1 b/chrome/app/generated_resources_grd/IDS_PASSWORD_GENERATION_BENEFITS.png.sha1 new file mode 100644 index 0000000..453f2cf --- /dev/null +++ b/chrome/app/generated_resources_grd/IDS_PASSWORD_GENERATION_BENEFITS.png.sha1
@@ -0,0 +1 @@ +0a8a579448c33477635581e22af4bbb57161c7b9 \ No newline at end of file
diff --git a/chrome/app/generated_resources_grd/IDS_PASSWORD_GENERATION_CROSS_DEVICE.png.sha1 b/chrome/app/generated_resources_grd/IDS_PASSWORD_GENERATION_CROSS_DEVICE.png.sha1 new file mode 100644 index 0000000..453f2cf --- /dev/null +++ b/chrome/app/generated_resources_grd/IDS_PASSWORD_GENERATION_CROSS_DEVICE.png.sha1
@@ -0,0 +1 @@ +0a8a579448c33477635581e22af4bbb57161c7b9 \ No newline at end of file
diff --git a/chrome/app/generated_resources_grd/IDS_PASSWORD_GENERATION_HELP_TEXT.png.sha1 b/chrome/app/generated_resources_grd/IDS_PASSWORD_GENERATION_HELP_TEXT.png.sha1 new file mode 100644 index 0000000..453f2cf --- /dev/null +++ b/chrome/app/generated_resources_grd/IDS_PASSWORD_GENERATION_HELP_TEXT.png.sha1
@@ -0,0 +1 @@ +0a8a579448c33477635581e22af4bbb57161c7b9 \ No newline at end of file
diff --git a/chrome/app/generated_resources_grd/IDS_PASSWORD_GENERATION_PROACTIVE_CHECK.png.sha1 b/chrome/app/generated_resources_grd/IDS_PASSWORD_GENERATION_PROACTIVE_CHECK.png.sha1 new file mode 100644 index 0000000..453f2cf --- /dev/null +++ b/chrome/app/generated_resources_grd/IDS_PASSWORD_GENERATION_PROACTIVE_CHECK.png.sha1
@@ -0,0 +1 @@ +0a8a579448c33477635581e22af4bbb57161c7b9 \ No newline at end of file
diff --git a/chrome/app/generated_resources_grd/IDS_PASSWORD_GENERATION_SECURITY.png.sha1 b/chrome/app/generated_resources_grd/IDS_PASSWORD_GENERATION_SECURITY.png.sha1 new file mode 100644 index 0000000..453f2cf --- /dev/null +++ b/chrome/app/generated_resources_grd/IDS_PASSWORD_GENERATION_SECURITY.png.sha1
@@ -0,0 +1 @@ +0a8a579448c33477635581e22af4bbb57161c7b9 \ No newline at end of file
diff --git a/chrome/app/vector_icons/BUILD.gn b/chrome/app/vector_icons/BUILD.gn index 5e47212..33327df 100644 --- a/chrome/app/vector_icons/BUILD.gn +++ b/chrome/app/vector_icons/BUILD.gn
@@ -35,7 +35,7 @@ "browser_tools_error.icon", "browser_tools_touch.icon", "browser_tools_update.icon", - "cast_menu.icon", + "cast_chrome_refresh.icon", "chevron_right.icon", "chrome_labs.icon", "chrome_labs_chrome_refresh.icon", @@ -52,7 +52,10 @@ "cut_menu.icon", "default_touch_favicon.icon", "default_touch_favicon_mask.icon", - "desktop_windows.icon", + "desktop_windows_chrome_refresh.icon", + "developer_tools.icon", + "devices.icon", + "devices_chrome_refresh.icon", "download_in_progress.icon", "download_in_progress_chrome_refresh.icon", "download_in_progress_touch.icon", @@ -65,6 +68,9 @@ "exit_menu.icon", "extension_crashed.icon", "file_download_shelf.icon", + "file_save.icon", + "file_save_chrome_refresh.icon", + "file_save_off_chrome_refresh.icon", "fingerprint.icon", "forward_arrow_touch.icon", "fullscreen.icon", @@ -94,9 +100,8 @@ "keyboard_arrow_right.icon", "keyboard_arrow_up.icon", "laptop.icon", - "laptop_and_smartphone.icon", - "laptop_and_smartphone_chrome_refresh.icon", "leading_scroll.icon", + "link.icon", "location_on_chrome_refresh.icon", "media_controls_arrow_drop_down.icon", "media_controls_arrow_drop_up.icon", @@ -108,6 +113,7 @@ "more_tools_menu.icon", "move_group_to_new_window.icon", "my_location.icon", + "name_window.icon", "navigate_home.icon", "navigate_home_chrome_refresh.icon", "navigate_home_touch.icon", @@ -126,6 +132,7 @@ "paintbrush.icon", "palette.icon", "paste_menu.icon", + "performance.icon", "person_filled_padded_large.icon", "person_filled_padded_small.icon", "photo_camera.icon", @@ -133,6 +140,7 @@ "picture_in_picture_control_background.icon", "print_menu.icon", "qrcode_generator.icon", + "quick_commands.icon", "read_anything_letter_spacing.icon", "read_anything_letter_spacing_standard.icon", "read_anything_letter_spacing_very_wide.icon", @@ -195,6 +203,7 @@ "tab_search.icon", "tab_usb_connected.icon", "tablet.icon", + "task_manager.icon", "text_decrease.icon", "text_increase.icon", "toolbar_chrome_refresh.icon", @@ -304,7 +313,6 @@ "notification_wifi.icon", "notification_wifi_off.icon", "person_add.icon", - "sharesheet_link.icon", "sharesheet_share_with_others.icon", "shutdown_guest_os.icon", "tip.icon",
diff --git a/chrome/app/vector_icons/cast_menu.icon b/chrome/app/vector_icons/cast_chrome_refresh.icon similarity index 100% rename from chrome/app/vector_icons/cast_menu.icon rename to chrome/app/vector_icons/cast_chrome_refresh.icon
diff --git a/chrome/app/vector_icons/chrome_labs_chrome_refresh.icon b/chrome/app/vector_icons/chrome_labs_chrome_refresh.icon index 84518c9..4f720c7 100644 --- a/chrome/app/vector_icons/chrome_labs_chrome_refresh.icon +++ b/chrome/app/vector_icons/chrome_labs_chrome_refresh.icon
@@ -32,3 +32,38 @@ V_LINE_TO, 10, R_LINE_TO, -4.5f, 5.5f, CLOSE + +CANVAS_DIMENSIONS, 16, +MOVE_TO, 3.6f, 13.73f, +R_CUBIC_TO, -0.56f, 0, -0.96f, -0.25f, -1.21f, -0.75f, +R_CUBIC_TO, -0.25f, -0.5f, -0.2f, -0.97f, 0.15f, -1.4f, +R_LINE_TO, 3.32f, -4.03f, +V_LINE_TO, 3.69f, +R_H_LINE_TO, -0.47f, +R_ARC_TO, 0.68f, 0.68f, 0, 0, 1, -0.49f, -0.2f, +R_ARC_TO, 0.67f, 0.67f, 0, 0, 1, -0.2f, -0.49f, +R_ARC_TO, 0.67f, 0.67f, 0, 0, 1, 0.2f, -0.49f, +R_ARC_TO, 0.66f, 0.66f, 0, 0, 1, 0.49f, -0.2f, +R_H_LINE_TO, 5.23f, +R_CUBIC_TO, 0.19f, 0, 0.36f, 0.07f, 0.49f, 0.2f, +R_ARC_TO, 0.66f, 0.66f, 0, 0, 1, 0.2f, 0.49f, +R_ARC_TO, 0.67f, 0.67f, 0, 0, 1, -0.2f, 0.49f, +R_ARC_TO, 0.66f, 0.66f, 0, 0, 1, -0.49f, 0.2f, +R_H_LINE_TO, -0.48f, +R_V_LINE_TO, 3.86f, +R_LINE_TO, 3.32f, 4.03f, +R_CUBIC_TO, 0.36f, 0.43f, 0.41f, 0.9f, 0.17f, 1.41f, +R_CUBIC_TO, -0.25f, 0.5f, -0.65f, 0.75f, -1.22f, 0.75f, +CLOSE, +R_MOVE_TO, 1.8f, -2.18f, +R_H_LINE_TO, 5.2f, +LINE_TO, 8.61f, 9.11f, +H_LINE_TO, 7.39f, +CLOSE, +R_MOVE_TO, -1.7f, 0.8f, +R_H_LINE_TO, 8.59f, +LINE_TO, 8.75f, 8.02f, +V_LINE_TO, 3.69f, +H_LINE_TO, 7.25f, +V_LINE_TO, 8.02f, +CLOSE
diff --git a/chrome/app/vector_icons/desktop_windows.icon b/chrome/app/vector_icons/desktop_windows_chrome_refresh.icon similarity index 100% rename from chrome/app/vector_icons/desktop_windows.icon rename to chrome/app/vector_icons/desktop_windows_chrome_refresh.icon
diff --git a/chrome/app/vector_icons/developer_tools.icon b/chrome/app/vector_icons/developer_tools.icon new file mode 100644 index 0000000..f143c56 --- /dev/null +++ b/chrome/app/vector_icons/developer_tools.icon
@@ -0,0 +1,21 @@ +// Copyright 2023 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +CANVAS_DIMENSIONS, 16, +MOVE_TO, 5.54f, 12.13f, +LINE_TO, 1.41f, 8, +R_LINE_TO, 4.13f, -4.13f, +R_LINE_TO, 0.98f, 0.98f, +R_LINE_TO, -3.15f, 3.15f, +R_LINE_TO, 3.15f, 3.15f, +CLOSE, +R_MOVE_TO, 4.92f, 0, +R_LINE_TO, -0.98f, -0.98f, +R_LINE_TO, 3.15f, -3.15f, +R_LINE_TO, -3.15f, -3.15f, +R_LINE_TO, 0.98f, -0.98f, +LINE_TO, 14.59f, 8, +CLOSE, +R_MOVE_TO, 0, 0, +CLOSE \ No newline at end of file
diff --git a/chrome/app/vector_icons/laptop_and_smartphone.icon b/chrome/app/vector_icons/devices.icon similarity index 100% rename from chrome/app/vector_icons/laptop_and_smartphone.icon rename to chrome/app/vector_icons/devices.icon
diff --git a/chrome/app/vector_icons/laptop_and_smartphone_chrome_refresh.icon b/chrome/app/vector_icons/devices_chrome_refresh.icon similarity index 100% rename from chrome/app/vector_icons/laptop_and_smartphone_chrome_refresh.icon rename to chrome/app/vector_icons/devices_chrome_refresh.icon
diff --git a/components/vector_icons/save_original_file.icon b/chrome/app/vector_icons/file_save.icon similarity index 100% rename from components/vector_icons/save_original_file.icon rename to chrome/app/vector_icons/file_save.icon
diff --git a/components/vector_icons/save_original_file_chrome_refresh.icon b/chrome/app/vector_icons/file_save_chrome_refresh.icon similarity index 100% rename from components/vector_icons/save_original_file_chrome_refresh.icon rename to chrome/app/vector_icons/file_save_chrome_refresh.icon
diff --git a/components/vector_icons/save_original_file_off_chrome_refresh.icon b/chrome/app/vector_icons/file_save_off_chrome_refresh.icon similarity index 100% rename from components/vector_icons/save_original_file_off_chrome_refresh.icon rename to chrome/app/vector_icons/file_save_off_chrome_refresh.icon
diff --git a/chrome/app/vector_icons/sharesheet_link.icon b/chrome/app/vector_icons/link.icon similarity index 100% rename from chrome/app/vector_icons/sharesheet_link.icon rename to chrome/app/vector_icons/link.icon
diff --git a/chrome/app/vector_icons/name_window.icon b/chrome/app/vector_icons/name_window.icon new file mode 100644 index 0000000..33a087a1 --- /dev/null +++ b/chrome/app/vector_icons/name_window.icon
@@ -0,0 +1,25 @@ +// Copyright 2023 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +CANVAS_DIMENSIONS, 16, +MOVE_TO, 3.65f, 13.73f, +R_CUBIC_TO, -0.38f, 0, -0.71f, -0.14f, -0.98f, -0.41f, +R_ARC_TO, 1.34f, 1.34f, 0, 0, 1, -0.4f, -0.97f, +V_LINE_TO, 3.65f, +R_CUBIC_TO, 0, -0.37f, 0.13f, -0.7f, 0.4f, -0.97f, +R_CUBIC_TO, 0.27f, -0.27f, 0.6f, -0.41f, 0.98f, -0.41f, +R_H_LINE_TO, 8.7f, +R_CUBIC_TO, 0.38f, 0, 0.71f, 0.14f, 0.98f, 0.41f, +R_CUBIC_TO, 0.27f, 0.27f, 0.4f, 0.6f, 0.4f, 0.97f, +R_V_LINE_TO, 8.7f, +R_CUBIC_TO, 0, 0.38f, -0.13f, 0.7f, -0.4f, 0.97f, +R_CUBIC_TO, -0.27f, 0.27f, -0.6f, 0.41f, -0.98f, 0.41f, +CLOSE, +R_MOVE_TO, -0.05f, -1.34f, +R_H_LINE_TO, 8.8f, +V_LINE_TO, 5.57f, +H_LINE_TO, 3.6f, +CLOSE, +R_MOVE_TO, 0, 0, +CLOSE \ No newline at end of file
diff --git a/chrome/app/vector_icons/performance.icon b/chrome/app/vector_icons/performance.icon new file mode 100644 index 0000000..3a4c3ca --- /dev/null +++ b/chrome/app/vector_icons/performance.icon
@@ -0,0 +1,47 @@ +// Copyright 2023 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +CANVAS_DIMENSIONS, 16, +MOVE_TO, 7.15f, 10.04f, +R_CUBIC_TO, 0.25f, 0.24f, 0.57f, 0.36f, 0.95f, 0.34f, +R_CUBIC_TO, 0.38f, -0.02f, 0.66f, -0.16f, 0.84f, -0.43f, +R_LINE_TO, 3.57f, -5.25f, +LINE_TO, 7.25f, 8.27f, +R_CUBIC_TO, -0.27f, 0.19f, -0.43f, 0.47f, -0.44f, 0.84f, +R_CUBIC_TO, -0.02f, 0.37f, 0.09f, 0.68f, 0.35f, 0.92f, +CLOSE, +R_MOVE_TO, 0.87f, -6.97f, +R_CUBIC_TO, 0.69f, 0, 1.31f, 0.09f, 1.87f, 0.27f, +R_CUBIC_TO, 0.56f, 0.18f, 1.06f, 0.4f, 1.5f, 0.66f, +R_LINE_TO, -1.32f, 0.88f, +R_ARC_TO, 5.13f, 5.13f, 0, 0, 0, -0.95f, -0.32f, +R_ARC_TO, 5.18f, 5.18f, 0, 0, 0, -1.1f, -0.11f, +R_CUBIC_TO, -1.43f, 0, -2.64f, 0.51f, -3.65f, 1.54f, +R_CUBIC_TO, -1.01f, 1.03f, -1.51f, 2.23f, -1.51f, 3.61f, +R_CUBIC_TO, 0, 0.42f, 0.03f, 0.76f, 0.09f, 1.02f, +R_CUBIC_TO, 0.06f, 0.26f, 0.15f, 0.57f, 0.28f, 0.93f, +R_H_LINE_TO, 9.56f, +R_ARC_TO, 5.93f, 5.93f, 0, 0, 0, 0.3f, -0.98f, +R_ARC_TO, 5.35f, 5.35f, 0, 0, 0, -0.1f, -2.33f, +R_ARC_TO, 4.71f, 4.71f, 0, 0, 0, -0.54f, -1.27f, +R_LINE_TO, 0.84f, -1.24f, +R_ARC_TO, 6.26f, 6.26f, 0, 0, 1, 0.94f, 1.82f, +R_CUBIC_TO, 0.22f, 0.67f, 0.33f, 1.34f, 0.33f, 2.03f, +R_ARC_TO, 7.24f, 7.24f, 0, 0, 1, -0.15f, 1.52f, +R_ARC_TO, 4.09f, 4.09f, 0, 0, 1, -0.47f, 1.2f, +R_ARC_TO, 1.32f, 1.32f, 0, 0, 1, -0.48f, 0.49f, +R_CUBIC_TO, -0.19f, 0.11f, -0.41f, 0.16f, -0.64f, 0.16f, +H_LINE_TO, 3.2f, +R_ARC_TO, 1.26f, 1.26f, 0, 0, 1, -1.11f, -0.65f, +R_ARC_TO, 4.25f, 4.25f, 0, 0, 1, -0.47f, -1.2f, +R_ARC_TO, 7, 7, 0, 0, 1, -0.15f, -1.52f, +R_CUBIC_TO, 0, -0.9f, 0.17f, -1.75f, 0.52f, -2.54f, +R_ARC_TO, 6.59f, 6.59f, 0, 0, 1, 1.4f, -2.06f, +R_ARC_TO, 6.62f, 6.62f, 0, 0, 1, 2.08f, -1.39f, +R_ARC_TO, 6.43f, 6.43f, 0, 0, 1, 2.55f, -0.51f, +CLOSE, +R_MOVE_TO, 0.06f, 4.71f, +CLOSE, +R_MOVE_TO, 0, 0, +CLOSE \ No newline at end of file
diff --git a/chrome/app/vector_icons/quick_commands.icon b/chrome/app/vector_icons/quick_commands.icon new file mode 100644 index 0000000..9dd4017 --- /dev/null +++ b/chrome/app/vector_icons/quick_commands.icon
@@ -0,0 +1,31 @@ +// Copyright 2023 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +CANVAS_DIMENSIONS, 16, +MOVE_TO, 1.6f, 13.79f, +R_V_LINE_TO, -1.39f, +R_H_LINE_TO, 12.8f, +R_V_LINE_TO, 1.39f, +CLOSE, +MOVE_TO, 12.8f, 11.2f, +V_LINE_TO, 2.4f, +R_H_LINE_TO, 0.92f, +R_V_LINE_TO, 8.8f, +CLOSE, +R_MOVE_TO, -10.01f, 0, +R_LINE_TO, 3.39f, -8.8f, +R_H_LINE_TO, 1.74f, +R_LINE_TO, 3.38f, 8.8f, +H_LINE_TO, 9.55f, +R_LINE_TO, -0.77f, -2.19f, +H_LINE_TO, 5.27f, +R_LINE_TO, -0.78f, 2.19f, +CLOSE, +R_MOVE_TO, 2.95f, -3.53f, +R_H_LINE_TO, 2.56f, +R_LINE_TO, -1.25f, -3.53f, +R_H_LINE_TO, -0.06f, +CLOSE, +R_MOVE_TO, 0, 0, +CLOSE \ No newline at end of file
diff --git a/chrome/app/vector_icons/task_manager.icon b/chrome/app/vector_icons/task_manager.icon new file mode 100644 index 0000000..49f1ee9 --- /dev/null +++ b/chrome/app/vector_icons/task_manager.icon
@@ -0,0 +1,41 @@ +// Copyright 2023 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +CANVAS_DIMENSIONS, 16, +MOVE_TO, 13.15f, 13.73f, +H_LINE_TO, 3.65f, +R_CUBIC_TO, -0.37f, 0, -0.7f, -0.14f, -0.97f, -0.41f, +R_ARC_TO, 1.33f, 1.33f, 0, 0, 1, -0.41f, -0.97f, +V_LINE_TO, 3.65f, +R_CUBIC_TO, 0, -0.38f, 0.14f, -0.71f, 0.41f, -0.98f, +R_CUBIC_TO, 0.27f, -0.27f, 0.6f, -0.4f, 0.97f, -0.4f, +R_H_LINE_TO, 9.5f, +R_CUBIC_TO, 0.38f, 0, 0.7f, 0.13f, 0.97f, 0.4f, +R_CUBIC_TO, 0.27f, 0.27f, 0.41f, 0.6f, 0.41f, 0.98f, +R_V_LINE_TO, 8.7f, +R_CUBIC_TO, 0, 0.38f, -0.14f, 0.7f, -0.41f, 0.97f, +R_ARC_TO, 1.33f, 1.33f, 0, 0, 1, -0.97f, 0.41f, +CLOSE, +MOVE_TO, 3.65f, 5.41f, +R_H_LINE_TO, 9.5f, +V_LINE_TO, 3.65f, +H_LINE_TO, 3.65f, +CLOSE, +R_MOVE_TO, 1.7f, 1.2f, +H_LINE_TO, 3.65f, +R_V_LINE_TO, 5.74f, +R_H_LINE_TO, 1.7f, +CLOSE, +R_MOVE_TO, 6.09f, 0, +R_V_LINE_TO, 5.74f, +R_H_LINE_TO, 1.71f, +V_LINE_TO, 6.61f, +CLOSE, +R_MOVE_TO, -1.2f, 0, +H_LINE_TO, 6.56f, +R_V_LINE_TO, 5.74f, +R_H_LINE_TO, 3.69f, +CLOSE, +R_MOVE_TO, 0, 0, +CLOSE \ No newline at end of file
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn index 77d5dfbe..4c746d4 100644 --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn
@@ -7112,6 +7112,7 @@ ] deps += [ "//chromeos/services/tts/public/mojom", + "//services/accessibility:buildflags", "//services/accessibility/public/mojom", "//ui/events/ozone/layout:layout", ]
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc index 473261c..993c2b99 100644 --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc
@@ -442,7 +442,14 @@ {flags_ui::kGenericExperimentChoiceDefault, "", ""}, {flag_descriptions::kWebXrRuntimeChoiceNone, switches::kWebXrForceRuntime, switches::kWebXrRuntimeNone}, - +#if BUILDFLAG(ENABLE_CARDBOARD) + {flag_descriptions::kWebXrRuntimeChoiceCardboard, + switches::kWebXrForceRuntime, switches::kWebXrRuntimeCardboard}, +#endif +#if BUILDFLAG(ENABLE_GVR_SERVICES) + {flag_descriptions::kWebXrRuntimeChoiceGVR, switches::kWebXrForceRuntime, + switches::kWebXrRuntimeGVR}, +#endif #if BUILDFLAG(ENABLE_OPENXR) {flag_descriptions::kWebXrRuntimeChoiceOpenXR, switches::kWebXrForceRuntime, switches::kWebXrRuntimeOpenXr}, @@ -3716,6 +3723,11 @@ .name, password_manager::features::kPasswordGenerationExperimentVariationOption[3] .name}}; +const FeatureEntry::FeatureParam kPasswordGenerationCrossDevice[] = { + {password_manager::features::kPasswordGenerationExperimentVariationParam + .name, + password_manager::features::kPasswordGenerationExperimentVariationOption[4] + .name}}; const FeatureEntry::FeatureVariation kPasswordGenerationExperimentVariations[] = { @@ -3727,6 +3739,8 @@ std::size(kPasswordGenerationTrySomethingNew), nullptr}, {"Convenience", kPasswordGenerationConvenience, std::size(kPasswordGenerationConvenience), nullptr}, + {"Cross device", kPasswordGenerationCrossDevice, + std::size(kPasswordGenerationCrossDevice), nullptr}, }; #endif // !BUILDFLAG(IS_ANDROID) @@ -4968,12 +4982,17 @@ flag_descriptions::kWebXrIncubationsDescription, kOsAll, FEATURE_VALUE_TYPE(device::features::kWebXrIncubations)}, {"webxr-runtime", flag_descriptions::kWebXrForceRuntimeName, - flag_descriptions::kWebXrForceRuntimeDescription, kOsDesktop, + flag_descriptions::kWebXrForceRuntimeDescription, kOsDesktop | kOsAndroid, MULTI_VALUE_TYPE(kWebXrForceRuntimeChoices)}, #if BUILDFLAG(IS_ANDROID) {"webxr-shared-buffers", flag_descriptions::kWebXrSharedBuffersName, flag_descriptions::kWebXrSharedBuffersDescription, kOsAndroid, FEATURE_VALUE_TYPE(device::features::kWebXrSharedBuffers)}, +#if BUILDFLAG(ENABLE_OPENXR) + {"enable-openxr-android", flag_descriptions::kOpenXRName, + flag_descriptions::kOpenXRDescription, kOsAndroid, + FEATURE_VALUE_TYPE(device::features::kOpenXR)}, +#endif #endif // BUILDFLAG(IS_ANDROID) #endif // ENABLE_VR #if BUILDFLAG(IS_CHROMEOS_ASH)
diff --git a/chrome/browser/accessibility/service/DEPS b/chrome/browser/accessibility/service/DEPS index 9546fb0..5bb8a5e 100644 --- a/chrome/browser/accessibility/service/DEPS +++ b/chrome/browser/accessibility/service/DEPS
@@ -1,3 +1,4 @@ include_rules = [ "+services/accessibility/public/mojom", + "+services/accessibility/buildflags.h", ] \ No newline at end of file
diff --git a/chrome/browser/accessibility/service/accessibility_service_router.cc b/chrome/browser/accessibility/service/accessibility_service_router.cc index 84aacc8..8bf3b6cf 100644 --- a/chrome/browser/accessibility/service/accessibility_service_router.cc +++ b/chrome/browser/accessibility/service/accessibility_service_router.cc
@@ -6,6 +6,7 @@ #include "content/public/browser/service_process_host.h" #include "mojo/public/cpp/bindings/pending_receiver.h" +#include "services/accessibility/buildflags.h" namespace ax { @@ -39,11 +40,17 @@ if (accessibility_service_.is_bound()) return; +#if BUILDFLAG(ENABLE_ACCESSIBILITY_SERVICE) content::ServiceProcessHost::Launch( accessibility_service_.BindNewPipeAndPassReceiver(), content::ServiceProcessHost::Options() .WithDisplayName("Accessibility Service") .Pass()); +#else // !BUILDFLAG(ENABLE_ACCESSIBILITY_SERVICE) + LOG(ERROR) + << "Accessibility service is missing but should have been launched. Have " + "you set the buildflag, `enable_accessibility_service=true`?"; +#endif // !BUILDFLAG(ENABLE_ACCESSIBILITY_SERVICE) } } // namespace ax
diff --git a/chrome/browser/android/resource_id.h b/chrome/browser/android/resource_id.h index 446b77c7..61eac7a 100644 --- a/chrome/browser/android/resource_id.h +++ b/chrome/browser/android/resource_id.h
@@ -54,6 +54,9 @@ DECLARE_RESOURCE_ID(IDR_ANDROID_MESSAGE_SETTINGS, R.drawable.settings_cog) DECLARE_RESOURCE_ID(IDR_ANDROID_MESSAGE_SAFETY_CHECK, R.drawable.safety_check) DECLARE_RESOURCE_ID(IDR_ANDROID_MESSAGE_SHIELD, R.drawable.shield) +DECLARE_RESOURCE_ID(IDR_ANDROID_MESSAGE_SHIELD_BLUE, + R.drawable.blue_google_shield) +DECLARE_RESOURCE_ID(IDR_ANDROID_MESSAGE_SHIELD_GRAY, R.drawable.gray_shield) DECLARE_RESOURCE_ID(IDR_ANDORID_MESSAGE_PASSWORD_MANAGER_ERROR, R.drawable.ic_key_error) DECLARE_RESOURCE_ID(IDR_ANDROID_IC_MOBILE_FRIENDLY,
diff --git a/chrome/browser/ash/events/event_rewriter_delegate_impl.cc b/chrome/browser/ash/events/event_rewriter_delegate_impl.cc index 5393914..25c538a 100644 --- a/chrome/browser/ash/events/event_rewriter_delegate_impl.cc +++ b/chrome/browser/ash/events/event_rewriter_delegate_impl.cc
@@ -171,12 +171,17 @@ suppress_meta_top_row_key_rewrites_ = should_suppress; } -void EventRewriterDelegateImpl::RecordEventRemappedToRightClick() { +void EventRewriterDelegateImpl::RecordEventRemappedToRightClick( + bool alt_based_right_click) { PrefService* const pref_service = GetPrefService(); if (!pref_service) { return; } - pref_service->SetBoolean(prefs::kEventRemappedToRightClick, true); + const auto* pref_name = alt_based_right_click + ? prefs::kAltEventRemappedToRightClick + : prefs::kSearchEventRemappedToRightClick; + int count = pref_service->GetInteger(pref_name); + pref_service->SetInteger(pref_name, ++count); } void EventRewriterDelegateImpl::RecordSixPackEventRewrite(
diff --git a/chrome/browser/ash/events/event_rewriter_delegate_impl.h b/chrome/browser/ash/events/event_rewriter_delegate_impl.h index 9d15e7f..166f1fd8 100644 --- a/chrome/browser/ash/events/event_rewriter_delegate_impl.h +++ b/chrome/browser/ash/events/event_rewriter_delegate_impl.h
@@ -49,7 +49,7 @@ bool NotifyDeprecatedSixPackKeyRewrite(ui::KeyboardCode key_code) override; void SuppressModifierKeyRewrites(bool should_suppress) override; void SuppressMetaTopRowKeyComboRewrites(bool should_suppress) override; - void RecordEventRemappedToRightClick() override; + void RecordEventRemappedToRightClick(bool alt_based_right_click) override; void RecordSixPackEventRewrite(ui::KeyboardCode key_code, bool alt_based) override;
diff --git a/chrome/browser/ash/events/event_rewriter_unittest.cc b/chrome/browser/ash/events/event_rewriter_unittest.cc index 8724315..1b47bda 100644 --- a/chrome/browser/ash/events/event_rewriter_unittest.cc +++ b/chrome/browser/ash/events/event_rewriter_unittest.cc
@@ -3190,11 +3190,17 @@ TEST_F(EventRewriterTest, RecordEventRemappedToRightClick) { Preferences::RegisterProfilePrefs(prefs()->registry()); - BooleanPrefMember remap_to_right_click; - remap_to_right_click.Init(prefs::kEventRemappedToRightClick, prefs()); - remap_to_right_click.SetValue(false); - delegate_->RecordEventRemappedToRightClick(); - EXPECT_EQ(true, prefs()->GetBoolean(prefs::kEventRemappedToRightClick)); + IntegerPrefMember alt_remap_to_right_click; + IntegerPrefMember search_remap_to_right_click; + alt_remap_to_right_click.Init(prefs::kAltEventRemappedToRightClick, prefs()); + alt_remap_to_right_click.SetValue(0); + search_remap_to_right_click.Init(prefs::kSearchEventRemappedToRightClick, + prefs()); + search_remap_to_right_click.SetValue(0); + delegate_->RecordEventRemappedToRightClick(/*alt_based_right_click=*/false); + EXPECT_EQ(1, prefs()->GetInteger(prefs::kSearchEventRemappedToRightClick)); + delegate_->RecordEventRemappedToRightClick(/*alt_based_right_click=*/true); + EXPECT_EQ(1, prefs()->GetInteger(prefs::kAltEventRemappedToRightClick)); } TEST_F( @@ -5410,7 +5416,7 @@ } void SuppressModifierKeyRewrites(bool should_suppress) override {} void SuppressMetaTopRowKeyComboRewrites(bool should_suppress) override {} - void RecordEventRemappedToRightClick() override {} + void RecordEventRemappedToRightClick(bool alt_based_right_click) override {} void RecordSixPackEventRewrite(ui::KeyboardCode key_code, bool alt_based) override {}
diff --git a/chrome/browser/ash/file_manager/file_manager_browsertest_base.cc b/chrome/browser/ash/file_manager/file_manager_browsertest_base.cc index 8fe5d05..0716d1b 100644 --- a/chrome/browser/ash/file_manager/file_manager_browsertest_base.cc +++ b/chrome/browser/ash/file_manager/file_manager_browsertest_base.cc
@@ -2729,10 +2729,19 @@ ash::file_manager::kChromeUIFileManagerUntrustedURL) { const std::string* script = value.FindString("data"); EXPECT_TRUE(script); - *output = - content::EvalJs(frame, *script, - content::EXECUTE_SCRIPT_USE_MANUAL_REPLY) - .ExtractString(); + + content::DOMMessageQueue message_queue; + EXPECT_TRUE(content::ExecJs(frame, *script)); + + std::string json; + EXPECT_TRUE(message_queue.WaitForMessage(&json)); + + base::Value result = + base::JSONReader::Read(json, base::JSON_ALLOW_TRAILING_COMMAS) + .value(); + + EXPECT_TRUE(result.is_string()); + *output = result.GetString(); found = true; return content::RenderFrameHost::FrameIterationAction::kStop; }
diff --git a/chrome/browser/ash/login/easy_unlock/chrome_proximity_auth_client.cc b/chrome/browser/ash/login/easy_unlock/chrome_proximity_auth_client.cc index abf325d..935d614 100644 --- a/chrome/browser/ash/login/easy_unlock/chrome_proximity_auth_client.cc +++ b/chrome/browser/ash/login/easy_unlock/chrome_proximity_auth_client.cc
@@ -38,12 +38,4 @@ service->FinalizeUnlock(success); } -proximity_auth::ProximityAuthPrefManager* -ChromeProximityAuthClient::GetPrefManager() { - EasyUnlockService* service = EasyUnlockService::Get(profile_); - if (service) - return service->GetProximityAuthPrefManager(); - return nullptr; -} - } // namespace ash
diff --git a/chrome/browser/ash/login/easy_unlock/chrome_proximity_auth_client.h b/chrome/browser/ash/login/easy_unlock/chrome_proximity_auth_client.h index d98b1f3b..56dfe06 100644 --- a/chrome/browser/ash/login/easy_unlock/chrome_proximity_auth_client.h +++ b/chrome/browser/ash/login/easy_unlock/chrome_proximity_auth_client.h
@@ -27,7 +27,6 @@ // proximity_auth::ProximityAuthClient: void UpdateSmartLockState(SmartLockState state) override; void FinalizeUnlock(bool success) override; - proximity_auth::ProximityAuthPrefManager* GetPrefManager() override; private: const raw_ptr<Profile, ExperimentalAsh> profile_;
diff --git a/chrome/browser/ash/login/easy_unlock/easy_unlock_service.cc b/chrome/browser/ash/login/easy_unlock/easy_unlock_service.cc index 91d3145..03a114e 100644 --- a/chrome/browser/ash/login/easy_unlock/easy_unlock_service.cc +++ b/chrome/browser/ash/login/easy_unlock/easy_unlock_service.cc
@@ -263,11 +263,6 @@ return std::string(); } -proximity_auth::ProximityAuthPrefManager* -EasyUnlockService::GetProximityAuthPrefManager() { - return pref_manager_.get(); -} - const multidevice::RemoteDeviceRefList EasyUnlockService::GetRemoteDevicesForTesting() const { if (!proximity_auth_system_) {
diff --git a/chrome/browser/ash/login/easy_unlock/easy_unlock_service.h b/chrome/browser/ash/login/easy_unlock/easy_unlock_service.h index f8daf47b..9ace9c4 100644 --- a/chrome/browser/ash/login/easy_unlock/easy_unlock_service.h +++ b/chrome/browser/ash/login/easy_unlock/easy_unlock_service.h
@@ -37,7 +37,6 @@ } // namespace user_prefs namespace proximity_auth { -class ProximityAuthPrefManager; class ProximityAuthProfilePrefManager; class ProximityAuthSystem; } // namespace proximity_auth @@ -115,10 +114,6 @@ // the UnlockManager is uninitialized. std::string GetLastRemoteStatusUnlockForLogging(); - // Returns the ProximityAuthPrefManager, responsible for managing all - // EasyUnlock preferences. - proximity_auth::ProximityAuthPrefManager* GetProximityAuthPrefManager(); - // Retrieves the remote device list stored for the account in // |proximity_auth_system_|. const multidevice::RemoteDeviceRefList GetRemoteDevicesForTesting() const;
diff --git a/chrome/browser/ash/login/easy_unlock/easy_unlock_service_unittest.cc b/chrome/browser/ash/login/easy_unlock/easy_unlock_service_unittest.cc index 35d6db19..09f508c 100644 --- a/chrome/browser/ash/login/easy_unlock/easy_unlock_service_unittest.cc +++ b/chrome/browser/ash/login/easy_unlock/easy_unlock_service_unittest.cc
@@ -387,12 +387,6 @@ EXPECT_FALSE(easy_unlock_service_->IsAllowed()); } -TEST_F(EasyUnlockServiceTest, GetProximityAuthPrefManager) { - InitializeService(true /* should_initialize_all_dependencies */); - - EXPECT_TRUE(easy_unlock_service_->GetProximityAuthPrefManager()); -} - TEST_F(EasyUnlockServiceTest, GetRemoteDevices) { InitializeService(true /* should_initialize_all_dependencies */); VerifyGetRemoteDevices(true /* are_remote_devices_expected */);
diff --git a/chrome/browser/ash/login/screens/core_oobe.cc b/chrome/browser/ash/login/screens/core_oobe.cc index 810d91b6..c243fbf 100644 --- a/chrome/browser/ash/login/screens/core_oobe.cc +++ b/chrome/browser/ash/login/screens/core_oobe.cc
@@ -3,6 +3,7 @@ // found in the LICENSE file. #include "chrome/browser/ash/login/screens/core_oobe.h" +#include "ash/constants/ash_features.h" #include "ash/public/cpp/shelf_config.h" #include "ash/public/cpp/tablet_mode.h" #include "ash/shell.h" @@ -74,15 +75,36 @@ void CoreOobe::ShowScreenWithData(const OobeScreenId& screen, absl::optional<base::Value::Dict> data) { - // Defer until fully initialized. - if (ui_init_state_ != CoreOobeView::UiState::kFullyInitialized) { - pending_calls_.show_screen_with_data = - base::BindOnce(&CoreOobe::ShowScreenWithData, base::Unretained(this), - screen, std::move(data)); - return; - } + const bool is_priority_screen = view_ && view_->IsPriorityScreen(screen.name); - // Decide whether or not to show the screen based on availability. + switch (ui_init_state_) { + case CoreOobeView::UiState::kUninitialized: + case CoreOobeView::UiState::kCoreHandlerInitialized: + // In this early state, we defer all show screen calls. + pending_calls_.show_screen_with_data = + base::BindOnce(&CoreOobe::ShowScreenWithData, base::Unretained(this), + screen, std::move(data)); + return; + case CoreOobeView::UiState::kPriorityScreensLoaded: + // Priority screens can be shown at this point. All others are deferred. + if (!is_priority_screen || !features::IsOobeLazyLoadingEnabled()) { + pending_calls_.show_screen_with_data = + base::BindOnce(&CoreOobe::ShowScreenWithData, + base::Unretained(this), screen, std::move(data)); + return; + } + break; + case CoreOobeView::UiState::kFullyInitialized: + // All screens can be shown at this point. + break; + } + // Clear any pending calls that could exist. (An edge case when a priority + // screen is shown when a regular screen has been deferred. No known instances + // in the codebase) Mostly a sanity check. + pending_calls_.show_screen_with_data.Reset(); + + // Since CoreOobeHandler is always created before us, this call can never be + // silently dropped under normal circumstances. if (view_) { view_->ShowScreenWithData(screen, std::move(data)); } @@ -214,9 +236,16 @@ CHECK(ui_init_state_ == CoreOobeView::UiState::kUninitialized); ui_init_state_ = CoreOobeView::UiState::kCoreHandlerInitialized; break; + case CoreOobeView::UiState::kPriorityScreensLoaded: + CHECK(ui_init_state_ == CoreOobeView::UiState::kCoreHandlerInitialized); + ui_init_state_ = CoreOobeView::UiState::kPriorityScreensLoaded; + if (features::IsOobeLazyLoadingEnabled()) { + MaybeShowPriorityScreen(); + } + break; case CoreOobeView::UiState::kFullyInitialized: // OOBE is fully loaded. - CHECK(ui_init_state_ == CoreOobeView::UiState::kCoreHandlerInitialized); + CHECK(ui_init_state_ == CoreOobeView::UiState::kPriorityScreensLoaded); ui_init_state_ = CoreOobeView::UiState::kFullyInitialized; // Execute deferred JavaScript in the CoreHandler first. ExecutePendingCalls(); @@ -245,6 +274,17 @@ } } +void CoreOobe::MaybeShowPriorityScreen() { + CHECK(features::IsOobeLazyLoadingEnabled()); + CHECK(ui_init_state_ == CoreOobeView::UiState::kPriorityScreensLoaded); + // Run any pending show screen call. If the screen is not supported for + // prioritization, ShowScreenWithData will defer it and it will be shown + // once the UI fully initializes. + if (pending_calls_.show_screen_with_data) { + std::move(pending_calls_.show_screen_with_data).Run(); + } +} + CoreOobe::PendingFrontendCalls::PendingFrontendCalls() = default; CoreOobe::PendingFrontendCalls::~PendingFrontendCalls() = default;
diff --git a/chrome/browser/ash/login/screens/core_oobe.h b/chrome/browser/ash/login/screens/core_oobe.h index e8058e0..3e6fa94 100644 --- a/chrome/browser/ash/login/screens/core_oobe.h +++ b/chrome/browser/ash/login/screens/core_oobe.h
@@ -111,6 +111,11 @@ // the |CoreOobeHandler| notifies us with |UiState::kFullyInitialized| void ExecutePendingCalls(); + // If there is a pending ShowScreen call for a supported priority screen, we + // will show it as soon as the state |UiState::kPriorityScreensLoaded| is + // reached. + void MaybeShowPriorityScreen(); + class PendingFrontendCalls { public: PendingFrontendCalls();
diff --git a/chrome/browser/ash/login/screens/welcome_screen_browsertest.cc b/chrome/browser/ash/login/screens/welcome_screen_browsertest.cc index ed1f1c4..61992ab 100644 --- a/chrome/browser/ash/login/screens/welcome_screen_browsertest.cc +++ b/chrome/browser/ash/login/screens/welcome_screen_browsertest.cc
@@ -730,7 +730,8 @@ // Tests that the ChromeVox hint can be spoken, even if the necessary voice // hasn't loaded when the idle detector has fired. -IN_PROC_BROWSER_TEST_F(WelcomeScreenChromeVoxHintTest, VoicesChanged) { +// TODO(b/283990894) - Re-enable test. +IN_PROC_BROWSER_TEST_F(WelcomeScreenChromeVoxHintTest, DISABLED_VoicesChanged) { TtsExtensionEngine::GetInstance()->DisableBuiltInTTSEngineForTesting(); const std::string set_no_english_voice = R"( chrome.tts.getVoices = function(callback) {
diff --git a/chrome/browser/ash/login/test/oobe_screens_utils.cc b/chrome/browser/ash/login/test/oobe_screens_utils.cc index 802f01e2..26e6742 100644 --- a/chrome/browser/ash/login/test/oobe_screens_utils.cc +++ b/chrome/browser/ash/login/test/oobe_screens_utils.cc
@@ -49,6 +49,11 @@ void WaitForWelcomeScreen() { WaitFor(WelcomeView::kScreenId); + // Wait until OOBE is fully initialized and the 'Get Started' button enabled. + OobeJS() + .CreateEnabledWaiter(true /* enabled */, + {"connect", "welcomeScreen", "getStarted"}) + ->Wait(); } void TapWelcomeNext() {
diff --git a/chrome/browser/ash/policy/reporting/metrics_reporting/apps/app_usage_telemetry_periodic_collector.cc b/chrome/browser/ash/policy/reporting/metrics_reporting/apps/app_usage_telemetry_periodic_collector.cc index a5b89fc2..6c230e4 100644 --- a/chrome/browser/ash/policy/reporting/metrics_reporting/apps/app_usage_telemetry_periodic_collector.cc +++ b/chrome/browser/ash/policy/reporting/metrics_reporting/apps/app_usage_telemetry_periodic_collector.cc
@@ -7,9 +7,11 @@ #include <memory> #include "base/functional/bind.h" +#include "base/sequence_checker.h" #include "base/time/time.h" #include "chrome/browser/ash/policy/reporting/metrics_reporting/metric_reporting_prefs.h" #include "chrome/browser/chromeos/reporting/metric_default_utils.h" +#include "chromeos/ash/components/login/session/session_termination_manager.h" #include "components/reporting/metrics/collector_base.h" #include "components/reporting/metrics/metric_rate_controller.h" #include "components/reporting/metrics/metric_report_queue.h" @@ -33,11 +35,17 @@ ::ash::reporting::kReportAppUsageCollectionRateMs, metrics::kDefaultAppUsageTelemetryCollectionRate, /*rate_unit_to_ms=*/1)) { + ::ash::SessionTerminationManager::Get()->AddObserver(this); rate_controller_->Start(); } -AppUsageTelemetryPeriodicCollector::~AppUsageTelemetryPeriodicCollector() = - default; +AppUsageTelemetryPeriodicCollector::~AppUsageTelemetryPeriodicCollector() { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + + // `SessionTerminationManager` outlives the collector so we unregister it as + // an observer on destruction. + ::ash::SessionTerminationManager::Get()->RemoveObserver(this); +} void AppUsageTelemetryPeriodicCollector::OnMetricDataCollected( bool is_event_driven, @@ -58,4 +66,14 @@ return true; } +void AppUsageTelemetryPeriodicCollector::OnSessionWillBeTerminated() { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + + // Make an attempt to collect any usage data that was recently recorded from + // the `AppUsageObserver` so we can prevent data staleness should the profile + // be inaccessible for too long. + Collect(/*is_event_driven=*/false); + rate_controller_.reset(); +} + } // namespace reporting
diff --git a/chrome/browser/ash/policy/reporting/metrics_reporting/apps/app_usage_telemetry_periodic_collector.h b/chrome/browser/ash/policy/reporting/metrics_reporting/apps/app_usage_telemetry_periodic_collector.h index e33f6316..0aefa40 100644 --- a/chrome/browser/ash/policy/reporting/metrics_reporting/apps/app_usage_telemetry_periodic_collector.h +++ b/chrome/browser/ash/policy/reporting/metrics_reporting/apps/app_usage_telemetry_periodic_collector.h
@@ -8,6 +8,9 @@ #include <memory> #include "base/allocator/partition_allocator/pointers/raw_ptr.h" +#include "base/sequence_checker.h" +#include "base/thread_annotations.h" +#include "chromeos/ash/components/login/session/session_termination_manager.h" #include "components/reporting/metrics/collector_base.h" #include "components/reporting/metrics/metric_report_queue.h" #include "components/reporting/metrics/reporting_settings.h" @@ -20,7 +23,9 @@ // similar to the `PeriodicCollector` but only controls the collection rate // based on the respective policy setting. This is to avoid data staleness // because we do not associate usage data with a timestamp today. -class AppUsageTelemetryPeriodicCollector : public CollectorBase { +class AppUsageTelemetryPeriodicCollector + : public CollectorBase, + public ::ash::SessionTerminationManager::Observer { public: AppUsageTelemetryPeriodicCollector(Sampler* sampler, MetricReportQueue* metric_report_queue, @@ -40,11 +45,17 @@ bool CanCollect() const override; private: + // ::ash::SessionTerminationManager::Observer: + void OnSessionWillBeTerminated() override; + + SEQUENCE_CHECKER(sequence_checker_); + // `MetricReportQueue` used for enqueueing data collected by the sampler. const raw_ptr<MetricReportQueue> metric_report_queue_; // Component used to control collection rate based on the policy setting. - const std::unique_ptr<MetricRateController> rate_controller_; + std::unique_ptr<MetricRateController> rate_controller_ + GUARDED_BY_CONTEXT(sequence_checker_); }; } // namespace reporting
diff --git a/chrome/browser/ash/policy/reporting/metrics_reporting/apps/app_usage_telemetry_periodic_collector_unittest.cc b/chrome/browser/ash/policy/reporting/metrics_reporting/apps/app_usage_telemetry_periodic_collector_unittest.cc index f632b17a..5308891 100644 --- a/chrome/browser/ash/policy/reporting/metrics_reporting/apps/app_usage_telemetry_periodic_collector_unittest.cc +++ b/chrome/browser/ash/policy/reporting/metrics_reporting/apps/app_usage_telemetry_periodic_collector_unittest.cc
@@ -9,6 +9,8 @@ #include "base/test/task_environment.h" #include "chrome/browser/ash/policy/reporting/metrics_reporting/metric_reporting_prefs.h" #include "chrome/browser/chromeos/reporting/metric_default_utils.h" +#include "chromeos/ash/components/dbus/session_manager/session_manager_client.h" +#include "chromeos/ash/components/login/session/session_termination_manager.h" #include "components/reporting/metrics/fakes/fake_metric_report_queue.h" #include "components/reporting/metrics/fakes/fake_reporting_settings.h" #include "components/reporting/metrics/fakes/fake_sampler.h" @@ -23,9 +25,14 @@ class AppUsageTelemetryPeriodicCollectorTest : public ::testing::Test { protected: + void SetUp() override { + ::ash::SessionManagerClient::InitializeFakeInMemory(); + } + base::test::SingleThreadTaskEnvironment task_environment_{ base::test::TaskEnvironment::TimeSource::MOCK_TIME}; + ::ash::SessionTerminationManager session_termination_manager_; test::FakeReportingSettings reporting_settings_; test::FakeSampler sampler_; test::FakeMetricReportQueue metric_report_queue_; @@ -40,8 +47,8 @@ // Fast forward timer to trigger telemetry collection and verify data being // reported. - AppUsageTelemetryPeriodicCollector collector(&sampler_, &metric_report_queue_, - &reporting_settings_); + const AppUsageTelemetryPeriodicCollector collector( + &sampler_, &metric_report_queue_, &reporting_settings_); task_environment_.FastForwardBy( metrics::kDefaultAppUsageTelemetryCollectionRate); ASSERT_THAT(sampler_.GetNumCollectCalls(), Eq(1)); @@ -66,8 +73,8 @@ // Fast forward timer to trigger telemetry collection and verify data being // reported. - AppUsageTelemetryPeriodicCollector collector(&sampler_, &metric_report_queue_, - &reporting_settings_); + const AppUsageTelemetryPeriodicCollector collector( + &sampler_, &metric_report_queue_, &reporting_settings_); task_environment_.FastForwardBy(kCollectionRate); ASSERT_THAT(sampler_.GetNumCollectCalls(), Eq(1)); const auto& enqueued_metric_data = @@ -88,8 +95,8 @@ MetricData metric_data; metric_data.mutable_telemetry_data(); sampler_.SetMetricData(std::move(metric_data)); - AppUsageTelemetryPeriodicCollector collector(&sampler_, &metric_report_queue_, - &reporting_settings_); + const AppUsageTelemetryPeriodicCollector collector( + &sampler_, &metric_report_queue_, &reporting_settings_); // Update collection rate setting before triggering collection. This is // so the rate controller can pick up updated setting value on collection and @@ -133,8 +140,8 @@ // Fast forward timer to trigger telemetry collection and verify no data is // being reported. - AppUsageTelemetryPeriodicCollector collector(&sampler_, &metric_report_queue_, - &reporting_settings_); + const AppUsageTelemetryPeriodicCollector collector( + &sampler_, &metric_report_queue_, &reporting_settings_); task_environment_.FastForwardBy( metrics::kDefaultAppUsageTelemetryCollectionRate); ASSERT_THAT(sampler_.GetNumCollectCalls(), Eq(1)); @@ -160,5 +167,25 @@ ASSERT_TRUE(metric_report_queue_.IsEmpty()); } +TEST_F(AppUsageTelemetryPeriodicCollectorTest, OnSessionTermination) { + // Set up test sampler to report data. + MetricData metric_data; + metric_data.mutable_telemetry_data(); + sampler_.SetMetricData(std::move(metric_data)); + + // Set up periodic collector and terminate session. + const AppUsageTelemetryPeriodicCollector collector( + &sampler_, &metric_report_queue_, &reporting_settings_); + session_termination_manager_.StopSession( + ::login_manager::SessionStopReason::USER_REQUESTS_SIGNOUT); + + // Verify data being reported. + ASSERT_THAT(sampler_.GetNumCollectCalls(), Eq(1)); + const auto& enqueued_metric_data = + metric_report_queue_.GetMetricDataReported(); + ASSERT_TRUE(enqueued_metric_data.has_timestamp_ms()); + ASSERT_TRUE(enqueued_metric_data.has_telemetry_data()); +} + } // namespace } // namespace reporting
diff --git a/chrome/browser/ash/policy/reporting/metrics_reporting/apps/app_usage_telemetry_sampler_browsertest.cc b/chrome/browser/ash/policy/reporting/metrics_reporting/apps/app_usage_telemetry_sampler_browsertest.cc index 5c7382f..3dadd53 100644 --- a/chrome/browser/ash/policy/reporting/metrics_reporting/apps/app_usage_telemetry_sampler_browsertest.cc +++ b/chrome/browser/ash/policy/reporting/metrics_reporting/apps/app_usage_telemetry_sampler_browsertest.cc
@@ -33,6 +33,7 @@ #include "chrome/browser/web_applications/user_display_mode.h" #include "chrome/browser/web_applications/web_app_id.h" #include "chrome/test/base/in_process_browser_test.h" +#include "chromeos/ash/components/login/session/session_termination_manager.h" #include "chromeos/dbus/missive/missive_client_test_observer.h" #include "components/app_constants/constants.h" #include "components/keyed_service/content/browser_context_dependency_manager.h" @@ -52,6 +53,7 @@ #include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h" #include "third_party/blink/public/mojom/manifest/display_mode.mojom-shared.h" +#include "third_party/cros_system_api/dbus/login_manager/dbus-constants.h" #include "url/gurl.h" using ::testing::AllOf; @@ -387,5 +389,36 @@ ASSERT_FALSE(missive_observer.HasNewEnqueuedRecords()); } +IN_PROC_BROWSER_TEST_F(AppUsageTelemetrySamplerBrowserTest, + PRE_ReportUsageDataOnSessionTermination) { + // Dummy case that sets up the affiliated user through SetUpOnMainThread + // PRE-condition. +} + +IN_PROC_BROWSER_TEST_F(AppUsageTelemetrySamplerBrowserTest, + ReportUsageDataOnSessionTermination) { + // Install web app and simulate its usage. + const auto& app_id = InstallStandaloneWebApp(GURL(kWebAppUrl)); + static constexpr base::TimeDelta kAppUsageDuration = base::Minutes(2); + ::chromeos::MissiveClientTestObserver missive_observer( + base::BindRepeating(&IsAppUsageTelemetry)); + SimulateAppUsage(app_id, kAppUsageDuration); + + // Terminate session and verify data being enqueued. + ::ash::SessionTerminationManager::Get()->StopSession( + ::login_manager::SessionStopReason::USER_REQUESTS_SIGNOUT); + const auto [priority, record] = missive_observer.GetNextEnqueuedRecord(); + const auto metric_data = AssertAppUsageTelemetryData(priority, record); + + // Data reported only includes usage from the web app. Derivative usage from + // the native Chrome component application (since these leverage the browser) + // should be filtered out by the policy setting. + const auto& app_usage_data = + metric_data.telemetry_data().app_telemetry().app_usage_data(); + ASSERT_THAT(app_usage_data.app_usage().size(), Eq(1)); + const auto& app_usage = app_usage_data.app_usage().at(0); + VerifyAppUsage(app_usage, app_id, kAppUsageDuration); +} + } // namespace } // namespace reporting
diff --git a/chrome/browser/ash/policy/reporting/metrics_reporting/metric_reporting_manager_unittest.cc b/chrome/browser/ash/policy/reporting/metrics_reporting/metric_reporting_manager_unittest.cc index 271796b..3bb990f 100644 --- a/chrome/browser/ash/policy/reporting/metrics_reporting/metric_reporting_manager_unittest.cc +++ b/chrome/browser/ash/policy/reporting/metrics_reporting/metric_reporting_manager_unittest.cc
@@ -22,6 +22,8 @@ #include "chrome/browser/chromeos/reporting/metric_default_utils.h" #include "chrome/browser/profiles/profile.h" #include "chrome/test/base/testing_profile.h" +#include "chromeos/ash/components/dbus/session_manager/session_manager_client.h" +#include "chromeos/ash/components/login/session/session_termination_manager.h" #include "chromeos/ash/components/settings/cros_settings_names.h" #include "components/reporting/client/report_queue_configuration.h" #include "components/reporting/metrics/collector_base.h" @@ -280,6 +282,9 @@ ->SetAppPlatformMetricsServiceForTesting( GetAppPlatformMetricsService()); + // Initialize fake session manager client. Needed for setting up downstream + // app metric reporting components. + ::ash::SessionManagerClient::InitializeFakeInMemory(); mock_delegate_ = std::make_unique<::testing::NiceMock<MockDelegate>>(); info_queue_ptr_ = CreateMockMetricReportQueueHelper( mock_delegate_.get(), EventType::kDevice, Destination::INFO_METRIC, @@ -304,6 +309,7 @@ .WillByDefault(Return(ByMove(std::move(telemetry_queue)))); } + ::ash::SessionTerminationManager session_termination_manager_; raw_ptr<test::FakeMetricReportQueue, ExperimentalAsh> info_queue_ptr_; raw_ptr<test::FakeMetricReportQueue, ExperimentalAsh> telemetry_queue_ptr_; raw_ptr<test::FakeMetricReportQueue, ExperimentalAsh> event_queue_ptr_;
diff --git a/chrome/browser/ash/preferences.cc b/chrome/browser/ash/preferences.cc index 6b5fe32..d1c5b05 100644 --- a/chrome/browser/ash/preferences.cc +++ b/chrome/browser/ash/preferences.cc
@@ -347,7 +347,8 @@ // device. registry->RegisterBooleanPref(prefs::kSendFunctionKeys, false); - registry->RegisterBooleanPref(prefs::kEventRemappedToRightClick, false); + registry->RegisterIntegerPref(prefs::kAltEventRemappedToRightClick, 0); + registry->RegisterIntegerPref(prefs::kSearchEventRemappedToRightClick, 0); registry->RegisterIntegerPref(prefs::kKeyEventRemappedToSixPackDelete, 0); registry->RegisterIntegerPref(prefs::kKeyEventRemappedToSixPackEnd, 0); registry->RegisterIntegerPref(prefs::kKeyEventRemappedToSixPackHome, 0);
diff --git a/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager.cc b/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager.cc index 78d55e4..ecd3b2e7 100644 --- a/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager.cc +++ b/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager.cc
@@ -23,12 +23,17 @@ #include "chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.h" #include "chrome/browser/lifetime/browser_shutdown.h" #include "chrome/browser/profiles/profile.h" +#include "chrome/browser/signin/signin_util.h" #include "chrome/browser/sync/sync_service_factory.h" +#include "chrome/common/pref_names.h" #include "components/browsing_data/core/browsing_data_policies_utils.h" #include "components/browsing_data/core/pref_names.h" #include "components/keep_alive_registry/keep_alive_types.h" #include "components/keep_alive_registry/scoped_keep_alive.h" #include "components/prefs/pref_service.h" +#include "components/signin/public/base/signin_pref_names.h" +#include "components/sync/service/sync_service.h" +#include "components/sync/service/sync_user_settings.h" #include "content/public/browser/browser_context.h" #include "content/public/browser/browser_task_traits.h" #include "content/public/browser/browser_thread.h" @@ -52,7 +57,7 @@ namespace { constexpr int kInitialCleanupDelayInSeconds = 15; -constexpr int kDefaultCleanupPeriodInHours = 1; +constexpr int kDefaultCleanupPeriodInMinutes = 30; using ScheduledRemovalSettings = ChromeBrowsingDataLifetimeManager::ScheduledRemovalSettings; @@ -260,6 +265,24 @@ return result; } +// Returns the sync types that might be reuired to be disabled for the browsing +// data types specified in the policy value. +syncer::UserSelectableTypeSet GetSyncTypesForPolicyPref( + Profile* profile, + const std::string& pref_name) { + DCHECK(pref_name == browsing_data::prefs::kBrowsingDataLifetime || + pref_name == browsing_data::prefs::kClearBrowsingDataOnExitList); + + const base::Value& data_lifetime_value = + profile->GetPrefs()->GetValue(pref_name); + + return pref_name == browsing_data::prefs::kBrowsingDataLifetime + ? browsing_data::GetSyncTypesForBrowsingDataLifetime( + data_lifetime_value) + : browsing_data::GetSyncTypesForClearBrowsingData( + data_lifetime_value); +} + } // namespace namespace browsing_data { @@ -305,7 +328,9 @@ bool keep_browser_alive) { const base::Value::List& data_types = profile_->GetPrefs()->GetList( browsing_data::prefs::kClearBrowsingDataOnExitList); - if (!data_types.empty() && !SyncServiceFactory::IsSyncAllowed(profile_)) { + + if (IsConditionSatisfiedForBrowsingDataRemoval(GetSyncTypesForPolicyPref( + profile_, browsing_data::prefs::kClearBrowsingDataOnExitList))) { profile_->GetPrefs()->SetBoolean( browsing_data::prefs::kClearBrowsingDataOnExitDeletionPending, true); auto* remover = profile_->GetBrowsingDataRemover(); @@ -338,14 +363,24 @@ } void ChromeBrowsingDataLifetimeManager::StartScheduledBrowsingDataRemoval() { + content::GetUIThreadTaskRunner({base::TaskPriority::BEST_EFFORT}) + ->PostDelayedTask(FROM_HERE, + base::BindOnce(&ChromeBrowsingDataLifetimeManager:: + StartScheduledBrowsingDataRemoval, + weak_ptr_factory_.GetWeakPtr()), + base::Minutes(kDefaultCleanupPeriodInMinutes)); + + if (!IsConditionSatisfiedForBrowsingDataRemoval(GetSyncTypesForPolicyPref( + profile_, browsing_data::prefs::kBrowsingDataLifetime))) { + return; + } + content::BrowsingDataRemover* remover = profile_->GetBrowsingDataRemover(); for (auto& removal_settings : scheduled_removals_settings_) { - if (removal_settings.time_to_live_in_hours <= 0) + if (removal_settings.time_to_live_in_hours <= 0) { continue; - - if (SyncServiceFactory::IsSyncAllowed(profile_)) - continue; + } auto deletion_end_time = end_time_for_testing_.value_or( base::Time::Now() - @@ -359,8 +394,9 @@ for (const auto& url : GetOpenedUrls(profile_)) { std::string domain = GetDomainAndRegistry( url, net::registry_controlled_domains::INCLUDE_PRIVATE_REGISTRIES); - if (domain.empty()) + if (domain.empty()) { domain = url.host(); // IP address or internal hostname. + } filter_builder->AddRegisterableDomain(domain); } remover->RemoveWithFilterAndReply( @@ -385,10 +421,48 @@ remover, /*filterable_deletion=*/false, profile_)); } } - content::GetUIThreadTaskRunner({base::TaskPriority::BEST_EFFORT}) - ->PostDelayedTask(FROM_HERE, - base::BindOnce(&ChromeBrowsingDataLifetimeManager:: - StartScheduledBrowsingDataRemoval, - weak_ptr_factory_.GetWeakPtr()), - base::Hours(kDefaultCleanupPeriodInHours)); +} + +bool ChromeBrowsingDataLifetimeManager:: + IsConditionSatisfiedForBrowsingDataRemoval( + const syncer::UserSelectableTypeSet sync_types) { + bool sync_disabled = !SyncServiceFactory::IsSyncAllowed(profile_); + // Return the state of sync if + // `features::kDataRetentionPoliciesDisableSyncTypesNeeded` is disabled or if + // sync is already disabled. + if (!browsing_data::IsPolicyDependencyEnabled() || sync_disabled) { + return sync_disabled; + } + +#if !BUILDFLAG(IS_CHROMEOS) + // Allow clearing data if browser signin is disabled. + if (!profile_->GetPrefs()->GetBoolean(prefs::kSigninAllowed)) { + return true; + } + // If signin will be disabled on next startup, delay the browsing data + // clearing until then. + if (!profile_->GetPrefs()->GetBoolean(prefs::kSigninAllowedOnNextStartup)) { + profile_->GetPrefs()->SetBoolean( + browsing_data::prefs::kClearBrowsingDataOnExitDeletionPending, true); + return false; + } +#endif + + // Check that sync types have been disabled if neither sync nor browser sign + // in is disabled. + syncer::SyncService* sync_service = + SyncServiceFactory::GetForProfile(profile_); + + // If the sync service is not available, data can be safely cleared as it is + // not synced. + if (!sync_service) { + return true; + } + + for (syncer::UserSelectableType type : sync_types) { + if (!sync_service->GetUserSettings()->IsTypeManagedByPolicy(type)) { + return false; + } + } + return true; }
diff --git a/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager.h b/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager.h index bd90f792..dd55fbc 100644 --- a/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager.h +++ b/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager.h
@@ -14,6 +14,7 @@ #include "base/time/time.h" #include "components/keyed_service/core/keyed_service.h" #include "components/prefs/pref_change_registrar.h" +#include "components/sync/base/user_selectable_type.h" #include "content/public/browser/browsing_data_remover.h" #include "third_party/abseil-cpp/absl/types/optional.h" @@ -94,6 +95,12 @@ absl::optional<base::Time> end_time_for_testing_; base::WeakPtrFactory<ChromeBrowsingDataLifetimeManager> weak_ptr_factory_{ this}; + + // Checks that the conditions needed to clear the browsing data types are + // satisfied. 'sync_types' are checked if neither sync nor + // browser sign in are disabled. + bool IsConditionSatisfiedForBrowsingDataRemoval( + const syncer::UserSelectableTypeSet sync_types); }; #endif // CHROME_BROWSER_BROWSING_DATA_CHROME_BROWSING_DATA_LIFETIME_MANAGER_H_
diff --git a/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager_browsertest.cc b/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager_browsertest.cc index 0e511638..82cda95c 100644 --- a/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager_browsertest.cc +++ b/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager_browsertest.cc
@@ -29,6 +29,7 @@ #include "components/autofill/core/browser/autofill_test_utils.h" #include "components/autofill/core/browser/data_model/autofill_profile.h" #include "components/autofill/core/browser/personal_data_manager.h" +#include "components/browsing_data/core/browsing_data_policies_utils.h" #include "components/browsing_data/core/features.h" #include "components/browsing_data/core/pref_names.h" #include "components/content_settings/core/browser/host_content_settings_map.h" @@ -36,7 +37,9 @@ #include "components/history/core/browser/history_types.h" #include "components/keyed_service/core/service_access_type.h" #include "components/prefs/testing_pref_service.h" +#include "components/signin/public/base/signin_pref_names.h" #include "components/sync/base/pref_names.h" +#include "components/sync/base/sync_prefs.h" #include "content/public/browser/browser_context.h" #include "content/public/browser/browsing_data_filter_builder.h" #include "content/public/browser/browsing_data_remover.h" @@ -71,6 +74,18 @@ enum class BrowserType { Default, Incognito }; +// The precondition required to delete browsing data. +enum class BrowsingDataDeletionCondition { + SyncDisabled, + BrowserSigninDisabled +}; + +struct FeatureConditions { + bool feature_enabled; + BrowsingDataDeletionCondition data_deletion_condition; + BrowserType browser_type; +}; + constexpr std::array<const char*, 7> kSiteDataTypes{ "Cookie", "LocalStorage", "SessionStorage", "IndexedDb", "WebSql", "ServiceWorker", "CacheStorage"}; @@ -78,19 +93,36 @@ } // namespace class ChromeBrowsingDataLifetimeManagerTest - : public BrowsingDataRemoverBrowserTestBase { + : public BrowsingDataRemoverBrowserTestBase, + public testing::WithParamInterface<FeatureConditions> { protected: ChromeBrowsingDataLifetimeManagerTest() { - InitFeatureList( - {browsing_data::features::kEnableBrowsingDataLifetimeManager}); + std::vector<base::test::FeatureRef> features{ + browsing_data::features::kEnableBrowsingDataLifetimeManager}; + if (GetParam().feature_enabled) { + features.push_back(browsing_data::features:: + kDataRetentionPoliciesDisableSyncTypesNeeded); + } + InitFeatureList(std::move(features)); } ~ChromeBrowsingDataLifetimeManagerTest() override = default; void SetUpOnMainThread() override { BrowsingDataRemoverBrowserTestBase::SetUpOnMainThread(); - GetProfile()->GetPrefs()->Set(syncer::prefs::internal::kSyncManaged, - base::Value(true)); + if (GetParam().data_deletion_condition == + BrowsingDataDeletionCondition::SyncDisabled) { + GetProfile()->GetPrefs()->Set(syncer::prefs::internal::kSyncManaged, + base::Value(true)); + } else if (GetParam().data_deletion_condition == + BrowsingDataDeletionCondition::BrowserSigninDisabled) { +#if BUILDFLAG(IS_ANDROID) + GetProfile()->GetPrefs()->Set(prefs::kSigninAllowed, base::Value(false)); +#else + GetProfile()->GetPrefs()->Set(prefs::kSigninAllowedOnNextStartup, + base::Value(false)); +#endif // BUILDFLAG(IS_ANDROID) + } } void ApplyBrowsingDataLifetimeDeletion(base::StringPiece pref) { @@ -127,8 +159,7 @@ }; class ChromeBrowsingDataLifetimeManagerScheduledRemovalTest - : public ChromeBrowsingDataLifetimeManagerTest, - public testing::WithParamInterface<BrowserType> { + : public ChromeBrowsingDataLifetimeManagerTest { protected: ChromeBrowsingDataLifetimeManagerScheduledRemovalTest() = default; ~ChromeBrowsingDataLifetimeManagerScheduledRemovalTest() override = default; @@ -136,11 +167,10 @@ void SetUpOnMainThread() override { ChromeBrowsingDataLifetimeManagerTest::SetUpOnMainThread(); #if !BUILDFLAG(IS_ANDROID) - if (GetParam() == BrowserType::Incognito) + if (GetParam().browser_type == BrowserType::Incognito) { UseIncognitoBrowser(); + } #endif - GetProfile()->GetPrefs()->Set(syncer::prefs::internal::kSyncManaged, - base::Value(true)); } }; @@ -486,11 +516,7 @@ } #endif -INSTANTIATE_TEST_SUITE_P(All, - ChromeBrowsingDataLifetimeManagerScheduledRemovalTest, - ::testing::Values(BrowserType::Default, - BrowserType::Incognito)); - +#if !BUILDFLAG(IS_ANDROID) class ChromeBrowsingDataLifetimeManagerShutdownTest : public ChromeBrowsingDataLifetimeManagerTest { protected: @@ -518,7 +544,7 @@ } }; -IN_PROC_BROWSER_TEST_F(ChromeBrowsingDataLifetimeManagerShutdownTest, +IN_PROC_BROWSER_TEST_P(ChromeBrowsingDataLifetimeManagerShutdownTest, PRE_PRE_BrowserShutdown) { // browsing_history history_service()->AddPage(GURL("https://www.website.com"), @@ -559,7 +585,7 @@ base::RunLoop().RunUntilIdle(); } -IN_PROC_BROWSER_TEST_F(ChromeBrowsingDataLifetimeManagerShutdownTest, +IN_PROC_BROWSER_TEST_P(ChromeBrowsingDataLifetimeManagerShutdownTest, PRE_BrowserShutdown) { // browsing_history VerifyHistorySize(1u); @@ -595,7 +621,7 @@ base::RunLoop().RunUntilIdle(); } -IN_PROC_BROWSER_TEST_F(ChromeBrowsingDataLifetimeManagerShutdownTest, +IN_PROC_BROWSER_TEST_P(ChromeBrowsingDataLifetimeManagerShutdownTest, BrowserShutdown) { // browsing_history VerifyHistorySize(0u); @@ -615,3 +641,49 @@ EXPECT_EQ(CONTENT_SETTING_ALLOW, host_setting.GetContentSetting()); } } + +INSTANTIATE_TEST_SUITE_P( + All, + ChromeBrowsingDataLifetimeManagerShutdownTest, + ::testing::ValuesIn(std::vector<FeatureConditions> { + {false, BrowsingDataDeletionCondition::SyncDisabled, + BrowserType::Incognito}, + {false, BrowsingDataDeletionCondition::SyncDisabled, + BrowserType::Default}, + {true, BrowsingDataDeletionCondition::SyncDisabled, + BrowserType::Incognito}, + {true, BrowsingDataDeletionCondition::SyncDisabled, + BrowserType::Default}, +#if !BUILDFLAG(IS_CHROMEOS) + {true, BrowsingDataDeletionCondition::BrowserSigninDisabled, + BrowserType::Incognito}, + { + true, BrowsingDataDeletionCondition::BrowserSigninDisabled, + BrowserType::Default + } +#endif // !BUILDFLAG(IS_CHROMEOS) + })); +#endif // !BUILDFLAG(IS_ANDROID) + +// Browser signin can only be tested on desktop after restart. +INSTANTIATE_TEST_SUITE_P( + All, + ChromeBrowsingDataLifetimeManagerScheduledRemovalTest, + ::testing::ValuesIn(std::vector<FeatureConditions> { + {false, BrowsingDataDeletionCondition::SyncDisabled, + BrowserType::Incognito}, + {false, BrowsingDataDeletionCondition::SyncDisabled, + BrowserType::Default}, + {true, BrowsingDataDeletionCondition::SyncDisabled, + BrowserType::Incognito}, + {true, BrowsingDataDeletionCondition::SyncDisabled, + BrowserType::Default}, +#if BUILDFLAG(IS_ANDROID) + {true, BrowsingDataDeletionCondition::BrowserSigninDisabled, + BrowserType::Incognito}, + { + true, BrowsingDataDeletionCondition::BrowserSigninDisabled, + BrowserType::Default + } +#endif // BUILDFLAG(IS_ANDROID) + }));
diff --git a/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager_factory.cc b/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager_factory.cc index 72d5e08..d12a043c 100644 --- a/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager_factory.cc +++ b/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager_factory.cc
@@ -9,10 +9,10 @@ #include "chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager.h" #include "chrome/browser/browsing_data/chrome_browsing_data_remover_delegate_factory.h" #include "chrome/browser/profiles/profile.h" +#include "chrome/browser/sync/sync_service_factory.h" #include "components/browsing_data/core/features.h" #include "content/public/browser/browser_context.h" #include "extensions/buildflags/buildflags.h" - // static ChromeBrowsingDataLifetimeManagerFactory* ChromeBrowsingDataLifetimeManagerFactory::GetInstance() { @@ -35,6 +35,7 @@ .WithGuest(ProfileSelection::kOffTheRecordOnly) .Build()) { DependsOn(ChromeBrowsingDataRemoverDelegateFactory::GetInstance()); + DependsOn(SyncServiceFactory::GetInstance()); } ChromeBrowsingDataLifetimeManagerFactory::
diff --git a/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager_unittest.cc b/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager_unittest.cc index 168c5d8a..4977e25 100644 --- a/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager_unittest.cc +++ b/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager_unittest.cc
@@ -11,11 +11,17 @@ #include "base/test/task_environment.h" #include "base/time/time.h" #include "chrome/browser/browsing_data/chrome_browsing_data_remover_constants.h" +#include "chrome/browser/signin/signin_util.h" +#include "chrome/browser/sync/sync_service_factory.h" #include "chrome/test/base/testing_profile.h" #include "components/browsing_data/core/features.h" #include "components/browsing_data/core/pref_names.h" #include "components/prefs/testing_pref_service.h" +#include "components/signin/public/base/signin_pref_names.h" #include "components/sync/base/pref_names.h" +#include "components/sync/test/test_sync_service.h" +#include "components/sync/test/test_sync_user_settings.h" +#include "components/sync_preferences/testing_pref_service_syncable.h" #include "content/public/browser/browsing_data_remover.h" #include "content/public/browser/browsing_data_remover_delegate.h" #include "content/public/test/browser_task_environment.h" @@ -24,6 +30,13 @@ #include "testing/gtest/include/gtest/gtest.h" #include "third_party/abseil-cpp/absl/types/optional.h" +namespace { +std::unique_ptr<KeyedService> CreateTestSyncService( + content::BrowserContext* context) { + return std::make_unique<syncer::TestSyncService>(); +} +} // namespace + TEST(ChromeBrowsingDataLifetimeManager, ScheduledRemoval) { base::test::ScopedFeatureList feature_list; feature_list.InitAndEnableFeature( @@ -59,41 +72,65 @@ chrome_browsing_data_remover::DATA_TYPE_HISTORY | chrome_browsing_data_remover::DATA_TYPE_PASSWORDS | chrome_browsing_data_remover::DATA_TYPE_FORM_DATA; + + base::Time current_time = base::Time::Now(); + base::Time delete_start_time = base::Time::Min(); + + // delete data up until the `time_to_live_in_hours` for every type. + base::Time delete_end_time_1 = current_time - base::Hours(1); + base::Time delete_end_time_2 = current_time - base::Hours(2); + base::Time delete_end_time_3 = current_time - base::Hours(3); + // Each scheduled removal is called once the prefs are set. delegate.ExpectCallDontCareAboutFilterBuilder( - base::Time::Min(), base::Time::Now() - base::Hours(1), - remove_mask_1_filterable, 0); + delete_start_time, delete_end_time_1, remove_mask_1_filterable, 0); delegate.ExpectCallDontCareAboutFilterBuilder( - base::Time::Min(), base::Time::Now() - base::Hours(1), - remove_mask_1_unfilterable, 0); + delete_start_time, delete_end_time_1, remove_mask_1_unfilterable, 0); delegate.ExpectCallDontCareAboutFilterBuilder( - base::Time::Min(), base::Time::Now() - base::Hours(2), remove_mask_2, - origin_mask_2); + delete_start_time, delete_end_time_2, remove_mask_2, origin_mask_2); delegate.ExpectCallDontCareAboutFilterBuilder( - base::Time::Min(), base::Time::Now() - base::Hours(3), - remove_mask_3_filterable, 0); + delete_start_time, delete_end_time_3, remove_mask_3_filterable, 0); delegate.ExpectCallDontCareAboutFilterBuilder( - base::Time::Min(), base::Time::Now() - base::Hours(3), - remove_mask_3_unfilterable, 0); + delete_start_time, delete_end_time_3, remove_mask_3_unfilterable, 0); testing_profile->GetPrefs()->Set(browsing_data::prefs::kBrowsingDataLifetime, *base::JSONReader::Read(kPref)); browser_task_environment.RunUntilIdle(); delegate.VerifyAndClearExpectations(); - // Each scheduled removal is called once every hour. + + // Data will be cleared after another 30 minutes. + delete_end_time_1 += base::Minutes(30); + delete_end_time_2 += base::Minutes(30); + delete_end_time_3 += base::Minutes(30); + delegate.ExpectCallDontCareAboutFilterBuilder( - base::Time::Min(), base::Time::Now(), remove_mask_1_filterable, 0); + delete_start_time, delete_end_time_1, remove_mask_1_filterable, 0); delegate.ExpectCallDontCareAboutFilterBuilder( - base::Time::Min(), base::Time::Now(), remove_mask_1_unfilterable, 0); + delete_start_time, delete_end_time_1, remove_mask_1_unfilterable, 0); delegate.ExpectCallDontCareAboutFilterBuilder( - base::Time::Min(), base::Time::Now() - base::Hours(1), remove_mask_2, - origin_mask_2); + delete_start_time, delete_end_time_2, remove_mask_2, origin_mask_2); delegate.ExpectCallDontCareAboutFilterBuilder( - base::Time::Min(), base::Time::Now() - base::Hours(2), - remove_mask_3_filterable, 0); + delete_start_time, delete_end_time_3, remove_mask_3_filterable, 0); delegate.ExpectCallDontCareAboutFilterBuilder( - base::Time::Min(), base::Time::Now() - base::Hours(2), - remove_mask_3_unfilterable, 0); + delete_start_time, delete_end_time_3, remove_mask_3_unfilterable, 0); + + // Data will be cleared after another 30 minutes. + delete_end_time_1 += base::Minutes(30); + delete_end_time_2 += base::Minutes(30); + delete_end_time_3 += base::Minutes(30); + + // Each scheduled removal is called once every 30 minutes. + delegate.ExpectCallDontCareAboutFilterBuilder( + delete_start_time, delete_end_time_1, remove_mask_1_filterable, 0); + delegate.ExpectCallDontCareAboutFilterBuilder( + delete_start_time, delete_end_time_1, remove_mask_1_unfilterable, 0); + delegate.ExpectCallDontCareAboutFilterBuilder( + delete_start_time, delete_end_time_2, remove_mask_2, origin_mask_2); + delegate.ExpectCallDontCareAboutFilterBuilder( + delete_start_time, delete_end_time_3, remove_mask_3_filterable, 0); + delegate.ExpectCallDontCareAboutFilterBuilder( + delete_start_time, delete_end_time_3, remove_mask_3_unfilterable, 0); + browser_task_environment.FastForwardBy(base::Hours(1)); delegate.VerifyAndClearExpectations(); } @@ -134,15 +171,272 @@ testing_profile->GetPrefs()->Set(syncer::prefs::internal::kSyncManaged, base::Value(true)); - // Each scheduled removal is called once every lowest time_to_live_in_hours, - // ere every 1 hour. + base::Time current_time = base::Time::Now(); + base::Time delete_start_time = base::Time::Min(); + + // Delete until 30 minutes from current delete end time because a task is + // scheduled for 30 minutes from now. + // Doing `delete_start_time` - 1 hour + 30 minutes is written in an expanded + // form for better understanding. + base::Time delete_end_time_1 = + current_time - base::Hours(1) + base::Minutes(30); + base::Time delete_end_time_2 = + current_time - base::Hours(2) + base::Minutes(30); + delegate.ExpectCallDontCareAboutFilterBuilder( - base::Time::Min(), base::Time::Now(), remove_mask_1_filterable, 0); + delete_start_time, delete_end_time_1, remove_mask_1_filterable, 0); delegate.ExpectCallDontCareAboutFilterBuilder( - base::Time::Min(), base::Time::Now(), remove_mask_1_unfilterable, 0); + delete_start_time, delete_end_time_1, remove_mask_1_unfilterable, 0); delegate.ExpectCallDontCareAboutFilterBuilder( - base::Time::Min(), base::Time::Now() - base::Hours(1), remove_mask_2, - origin_mask_2); + delete_start_time, delete_end_time_2, remove_mask_2, origin_mask_2); + + // Data will be cleared after another 30 minutes. + delete_end_time_1 += base::Minutes(30); + delete_end_time_2 += base::Minutes(30); + + // Each scheduled removal is called once every 30 minutes. + delegate.ExpectCallDontCareAboutFilterBuilder( + delete_start_time, delete_end_time_1, remove_mask_1_filterable, 0); + delegate.ExpectCallDontCareAboutFilterBuilder( + delete_start_time, delete_end_time_1, remove_mask_1_unfilterable, 0); + delegate.ExpectCallDontCareAboutFilterBuilder( + delete_start_time, delete_end_time_2, remove_mask_2, origin_mask_2); + browser_task_environment.FastForwardBy(base::Hours(1)); delegate.VerifyAndClearExpectations(); } + +#if !BUILDFLAG(IS_CHROMEOS) +TEST(ChromeBrowsingDataLifetimeManager, + ScheduledRemovalWithBrowserSigninDisabled_FeatureEnabled) { + base::test::ScopedFeatureList feature_list; + feature_list.InitAndEnableFeature( + browsing_data::features::kDataRetentionPoliciesDisableSyncTypesNeeded); + + signin_util::ResetForceSigninForTesting(); + content::BrowserTaskEnvironment browser_task_environment{ + base::test::TaskEnvironment::TimeSource::MOCK_TIME}; + TestingProfile::Builder builder; + builder.SetIsNewProfile(true); + auto testing_profile = builder.Build(); + + content::MockBrowsingDataRemoverDelegate delegate; + auto* remover = testing_profile->GetBrowsingDataRemover(); + remover->SetEmbedderDelegate(&delegate); + static constexpr char kPref[] = + R"([{"time_to_live_in_hours": 1, "data_types":["cached_images_and_files", + "site_settings"]}, {"time_to_live_in_hours": 2, "data_types": + ["cookies_and_other_site_data", "hosted_app_data"]}])"; + + uint64_t remove_mask_1_filterable = + content::BrowsingDataRemover::DATA_TYPE_CACHE; + uint64_t remove_mask_1_unfilterable = + chrome_browsing_data_remover::DATA_TYPE_CONTENT_SETTINGS; + uint64_t remove_mask_2 = chrome_browsing_data_remover::DATA_TYPE_SITE_DATA; + uint64_t origin_mask_2 = + content::BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB | + content::BrowsingDataRemover::ORIGIN_TYPE_PROTECTED_WEB; + + base::Time current_time = base::Time::Now(); + base::Time delete_start_time = base::Time::Min(); + + // delete data up until the `time_to_live_in_hours` for every type. + base::Time delete_end_time_1 = current_time - base::Hours(1); + base::Time delete_end_time_2 = current_time - base::Hours(2); + + delegate.ExpectCallDontCareAboutFilterBuilder( + delete_start_time, delete_end_time_1, remove_mask_1_filterable, 0); + delegate.ExpectCallDontCareAboutFilterBuilder( + delete_start_time, delete_end_time_1, remove_mask_1_unfilterable, 0); + delegate.ExpectCallDontCareAboutFilterBuilder( + delete_start_time, delete_end_time_2, remove_mask_2, origin_mask_2); + + // If browser sign in is disabled, the scheduled deletions should proceed as + // usual. + testing_profile->GetPrefs()->Set(prefs::kSigninAllowed, base::Value(false)); + + testing_profile->GetPrefs()->Set(browsing_data::prefs::kBrowsingDataLifetime, + *base::JSONReader::Read(kPref)); + + // Delete until 30 minutes from current delete end time because a task is + // scheduled for 30 minutes from now. + // Doing `delete_start_time` - 1 hour + 30 minutes is written in an expanded + // form for better understanding. + delete_end_time_1 += base::Minutes(30); + delete_end_time_2 += base::Minutes(30); + + delegate.ExpectCallDontCareAboutFilterBuilder( + delete_start_time, delete_end_time_1, remove_mask_1_filterable, 0); + delegate.ExpectCallDontCareAboutFilterBuilder( + delete_start_time, delete_end_time_1, remove_mask_1_unfilterable, 0); + delegate.ExpectCallDontCareAboutFilterBuilder( + delete_start_time, delete_end_time_2, remove_mask_2, origin_mask_2); + + // Data will be cleared after another 30 minutes. + delete_end_time_1 += base::Minutes(30); + delete_end_time_2 += base::Minutes(30); + + // Each scheduled removal is called once every 30 minutes. + delegate.ExpectCallDontCareAboutFilterBuilder( + delete_start_time, delete_end_time_1, remove_mask_1_filterable, 0); + delegate.ExpectCallDontCareAboutFilterBuilder( + delete_start_time, delete_end_time_1, remove_mask_1_unfilterable, 0); + delegate.ExpectCallDontCareAboutFilterBuilder( + delete_start_time, delete_end_time_2, remove_mask_2, origin_mask_2); + + browser_task_environment.FastForwardBy(base::Hours(1)); + delegate.VerifyAndClearExpectations(); +} + +TEST(ChromeBrowsingDataLifetimeManager, + ScheduledRemovalWithBrowserSigninDisabled_FeatureDisabled) { + base::test::ScopedFeatureList feature_list; + feature_list.InitAndDisableFeature( + browsing_data::features::kDataRetentionPoliciesDisableSyncTypesNeeded); + + signin_util::ResetForceSigninForTesting(); + content::BrowserTaskEnvironment browser_task_environment{ + base::test::TaskEnvironment::TimeSource::MOCK_TIME}; + TestingProfile::Builder builder; + builder.SetIsNewProfile(true); + auto testing_profile = builder.Build(); + + content::MockBrowsingDataRemoverDelegate delegate; + auto* remover = testing_profile->GetBrowsingDataRemover(); + remover->SetEmbedderDelegate(&delegate); + static constexpr char kPref[] = + R"([{"time_to_live_in_hours": 1, "data_types":["cached_images_and_files", + "site_settings"]}, {"time_to_live_in_hours": 2, "data_types": + ["cookies_and_other_site_data", "hosted_app_data"]}])"; + + // Sync is enabled, so no deletion should be made. + testing_profile->GetPrefs()->Set(browsing_data::prefs::kBrowsingDataLifetime, + *base::JSONReader::Read(kPref)); + browser_task_environment.RunUntilIdle(); + delegate.VerifyAndClearExpectations(); + + // Disabling browser signin should have no effect if the feature is disabled. + testing_profile.get()->GetTestingPrefService()->SetManagedPref( + prefs::kSigninAllowed, base::Value(false)); + + browser_task_environment.RunUntilIdle(); + delegate.VerifyAndClearExpectations(); +} +#endif + +TEST(ChromeBrowsingDataLifetimeManager, + ScheduledRemovalWithBrowserSyncTypeDisabled_FeatureEnabled) { + base::test::ScopedFeatureList feature_list; + feature_list.InitAndEnableFeature( + browsing_data::features::kDataRetentionPoliciesDisableSyncTypesNeeded); + + signin_util::ResetForceSigninForTesting(); + content::BrowserTaskEnvironment browser_task_environment{ + base::test::TaskEnvironment::TimeSource::MOCK_TIME}; + TestingProfile::Builder builder; + builder.SetIsNewProfile(true); + builder.AddTestingFactory(SyncServiceFactory::GetInstance(), + SyncServiceFactory::GetDefaultFactory()); + + auto testing_profile = builder.Build(); + syncer::TestSyncService* sync_service = static_cast<syncer::TestSyncService*>( + SyncServiceFactory::GetInstance()->SetTestingFactoryAndUse( + testing_profile.get(), base::BindRepeating(&CreateTestSyncService))); + + content::MockBrowsingDataRemoverDelegate delegate; + auto* remover = testing_profile->GetBrowsingDataRemover(); + remover->SetEmbedderDelegate(&delegate); + static constexpr char kPref[] = + R"([{"time_to_live_in_hours": 1, "data_types":["cached_images_and_files", + "site_settings"]}, {"time_to_live_in_hours": 2, "data_types": + ["cookies_and_other_site_data", "hosted_app_data"]}])"; + + uint64_t remove_mask_1_filterable = + content::BrowsingDataRemover::DATA_TYPE_CACHE; + uint64_t remove_mask_1_unfilterable = + chrome_browsing_data_remover::DATA_TYPE_CONTENT_SETTINGS; + uint64_t remove_mask_2 = chrome_browsing_data_remover::DATA_TYPE_SITE_DATA; + uint64_t origin_mask_2 = + content::BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB | + content::BrowsingDataRemover::ORIGIN_TYPE_PROTECTED_WEB; + + // Sync is enabled, so no deletion should be made. + testing_profile->GetPrefs()->Set(browsing_data::prefs::kBrowsingDataLifetime, + *base::JSONReader::Read(kPref)); + browser_task_environment.RunUntilIdle(); + delegate.VerifyAndClearExpectations(); + + // If required sync types get disabled and the feature is enabled, the + // scheduled deletions should proceed as usual. + sync_service->GetUserSettings()->SetTypeIsManaged( + syncer::UserSelectableType::kPreferences, true); + + base::Time current_time = base::Time::Now(); + base::Time delete_start_time = base::Time::Min(); + // Delete until 30 minutes from current delete end time because a task is + // scheduled for 30 minutes from now. + // Doing `delete_start_time` - 1 hour + 30 minutes is written in an expanded + // form for better understanding. + base::Time delete_end_time_1 = + current_time - base::Hours(1) + base::Minutes(30); + base::Time delete_end_time_2 = + current_time - base::Hours(2) + base::Minutes(30); + + delegate.ExpectCallDontCareAboutFilterBuilder( + delete_start_time, delete_end_time_1, remove_mask_1_filterable, 0); + delegate.ExpectCallDontCareAboutFilterBuilder( + delete_start_time, delete_end_time_1, remove_mask_1_unfilterable, 0); + delegate.ExpectCallDontCareAboutFilterBuilder( + delete_start_time, delete_end_time_2, remove_mask_2, origin_mask_2); + + // Data will be cleared after another 30 minutes. + delete_end_time_1 += base::Minutes(30); + delete_end_time_2 += base::Minutes(30); + + // Each scheduled removal is called once every 30 minutes. + delegate.ExpectCallDontCareAboutFilterBuilder( + delete_start_time, delete_end_time_1, remove_mask_1_filterable, 0); + delegate.ExpectCallDontCareAboutFilterBuilder( + delete_start_time, delete_end_time_1, remove_mask_1_unfilterable, 0); + delegate.ExpectCallDontCareAboutFilterBuilder( + delete_start_time, delete_end_time_2, remove_mask_2, origin_mask_2); + + browser_task_environment.FastForwardBy(base::Hours(1)); + delegate.VerifyAndClearExpectations(); +} + +TEST(ChromeBrowsingDataLifetimeManager, + ScheduledRemovalWithBrowserSyncTypeDisabled_FeatureDisabled) { + base::test::ScopedFeatureList feature_list; + feature_list.InitAndDisableFeature( + browsing_data::features::kDataRetentionPoliciesDisableSyncTypesNeeded); + + signin_util::ResetForceSigninForTesting(); + content::BrowserTaskEnvironment browser_task_environment{ + base::test::TaskEnvironment::TimeSource::MOCK_TIME}; + TestingProfile::Builder builder; + builder.SetIsNewProfile(true); + auto testing_profile = builder.Build(); + + content::MockBrowsingDataRemoverDelegate delegate; + auto* remover = testing_profile->GetBrowsingDataRemover(); + remover->SetEmbedderDelegate(&delegate); + static constexpr char kPref[] = + R"([{"time_to_live_in_hours": 1, "data_types":["cached_images_and_files", + "site_settings"]}, {"time_to_live_in_hours": 2, "data_types": + ["cookies_and_other_site_data", "hosted_app_data"]}])"; + + // Sync is enabled, so no deletion should be made. + testing_profile->GetPrefs()->Set(browsing_data::prefs::kBrowsingDataLifetime, + *base::JSONReader::Read(kPref)); + browser_task_environment.RunUntilIdle(); + delegate.VerifyAndClearExpectations(); + + // Disabling sync types should have no effect on the data if the feature is + // disabled. + testing_profile.get()->GetTestingPrefService()->SetManagedPref( + syncer::prefs::internal::kSyncPreferences, base::Value(false)); + + browser_task_environment.RunUntilIdle(); + delegate.VerifyAndClearExpectations(); +}
diff --git a/chrome/browser/chrome_service_worker_browsertest.cc b/chrome/browser/chrome_service_worker_browsertest.cc index 44ed24e..b3a0184 100644 --- a/chrome/browser/chrome_service_worker_browsertest.cc +++ b/chrome/browser/chrome_service_worker_browsertest.cc
@@ -9,6 +9,7 @@ #include "base/files/file_util.h" #include "base/files/scoped_temp_dir.h" #include "base/functional/bind.h" +#include "base/json/json_reader.h" #include "base/numerics/safe_conversions.h" #include "base/path_service.h" #include "base/run_loop.h" @@ -856,17 +857,23 @@ } std::string ExecutePNACLUrlLoaderTest(const std::string& mode) { - std::string result( - EvalJs( - browser()->tab_strip_model()->GetActiveWebContents(), - base::StringPrintf("reportOnFetch = false;" - "var iframe = document.createElement('iframe');" - "iframe.src='%s#%s';" - "document.body.appendChild(iframe);", - test_page_url_.c_str(), mode.c_str()), - content::EXECUTE_SCRIPT_USE_MANUAL_REPLY) - .ExtractString()); - EXPECT_EQ(base::StringPrintf("OnOpen%s", mode.c_str()), result); + content::DOMMessageQueue message_queue; + EXPECT_TRUE(content::ExecJs( + browser()->tab_strip_model()->GetActiveWebContents(), + base::StringPrintf("reportOnFetch = false;" + "var iframe = document.createElement('iframe');" + "iframe.src='%s#%s';" + "document.body.appendChild(iframe);", + test_page_url_.c_str(), mode.c_str()))); + + std::string json; + EXPECT_TRUE(message_queue.WaitForMessage(&json)); + + base::Value result = + base::JSONReader::Read(json, base::JSON_ALLOW_TRAILING_COMMAS).value(); + + EXPECT_TRUE(result.is_string()); + EXPECT_EQ(base::StringPrintf("OnOpen%s", mode.c_str()), result.GetString()); return EvalJs(browser()->tab_strip_model()->GetActiveWebContents(), "reportRequests();") .ExtractString();
diff --git a/chrome/browser/chromeos/app_mode/app_session_unittest.cc b/chrome/browser/chromeos/app_mode/app_session_unittest.cc index c36fe44..afd8f87 100644 --- a/chrome/browser/chromeos/app_mode/app_session_unittest.cc +++ b/chrome/browser/chromeos/app_mode/app_session_unittest.cc
@@ -945,14 +945,23 @@ void ShowTaskManager() override { task_manager_called_ = true; } + void OpenFeedbackPage(FeedbackSource source, + const std::string& description_template) override { + open_feedback_page_called_ = true; + } + bool is_new_window_called() const { return new_window_called_; } bool is_new_tab_called() const { return new_tab_called_; } bool is_task_manager_called() const { return task_manager_called_; } + bool is_open_feedback_page_called() const { + return open_feedback_page_called_; + } private: bool new_window_called_ = false; bool new_tab_called_ = false; bool task_manager_called_ = false; + bool open_feedback_page_called_ = false; }; // Tests actions after pressing troubleshooting shortcuts. Runs all tests for @@ -991,11 +1000,17 @@ return fake_new_window_delegate_->is_task_manager_called(); } + bool is_open_feedback_page_called() const { + return fake_new_window_delegate_->is_open_feedback_page_called(); + } + protected: ui::Accelerator new_window_accelerator = ui::Accelerator(ui::VKEY_N, ui::EF_CONTROL_DOWN); ui::Accelerator task_manager_accelerator = ui::Accelerator(ui::VKEY_ESCAPE, ui::EF_COMMAND_DOWN); + ui::Accelerator open_feedback_page_accelerator = + ui::Accelerator(ui::VKEY_I, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN); private: raw_ptr<FakeNewWindowDelegate> fake_new_window_delegate_; @@ -1063,6 +1078,32 @@ EXPECT_FALSE(is_task_manager_called()); } +TEST_P(AppSessionTroubleshootingShortcutsTest, + OpenFeedbackPageShortcutEnabled) { + SetUpKioskSession(); + UpdateTroubleshootingToolsPolicy(/*enable=*/true); + + ProcessInController(open_feedback_page_accelerator); + EXPECT_TRUE(is_open_feedback_page_called()); +} + +TEST_P(AppSessionTroubleshootingShortcutsTest, + OpenFeedbackPageShortcutNoActionByDefault) { + SetUpKioskSession(); + + ProcessInController(open_feedback_page_accelerator); + EXPECT_FALSE(is_open_feedback_page_called()); +} + +TEST_P(AppSessionTroubleshootingShortcutsTest, + OpenFeedbackPageShortcutNoActionIfPolicyDisabled) { + SetUpKioskSession(); + UpdateTroubleshootingToolsPolicy(/*enable=*/false); + + ProcessInController(open_feedback_page_accelerator); + EXPECT_FALSE(is_open_feedback_page_called()); +} + INSTANTIATE_TEST_SUITE_P(AppSessionTroubleshootingShortcuts, AppSessionTroubleshootingShortcutsTest, ::testing::Bool());
diff --git a/chrome/browser/chromeos/app_mode/kiosk_troubleshooting_controller_ash.cc b/chrome/browser/chromeos/app_mode/kiosk_troubleshooting_controller_ash.cc index 202547f..cb23c38 100644 --- a/chrome/browser/chromeos/app_mode/kiosk_troubleshooting_controller_ash.cc +++ b/chrome/browser/chromeos/app_mode/kiosk_troubleshooting_controller_ash.cc
@@ -50,6 +50,9 @@ case TroubleshootingAcceleratorAction::SHOW_TASK_MANAGER: accelerators::ShowTaskManager(); return true; + case TroubleshootingAcceleratorAction::OPEN_FEEDBACK_PAGE: + accelerators::OpenFeedbackPage(); + return true; } return false; @@ -80,6 +83,10 @@ {ui::Accelerator(ui::VKEY_ESCAPE, ui::EF_COMMAND_DOWN), TroubleshootingAcceleratorAction::SHOW_TASK_MANAGER}); + // Shift+Alt+I + accelerators_with_actions_.insert( + {ui::Accelerator(ui::VKEY_I, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN), + TroubleshootingAcceleratorAction::OPEN_FEEDBACK_PAGE}); Shell::Get()->accelerator_controller()->Register(GetAllAccelerators(), this); }
diff --git a/chrome/browser/chromeos/app_mode/kiosk_troubleshooting_controller_ash.h b/chrome/browser/chromeos/app_mode/kiosk_troubleshooting_controller_ash.h index f9b2acb..285fe3be 100644 --- a/chrome/browser/chromeos/app_mode/kiosk_troubleshooting_controller_ash.h +++ b/chrome/browser/chromeos/app_mode/kiosk_troubleshooting_controller_ash.h
@@ -36,6 +36,7 @@ SWITCH_WINDOWS_FORWARD, SWITCH_WINDOWS_BACKWARD, SHOW_TASK_MANAGER, + OPEN_FEEDBACK_PAGE, }; // ui::AcceleratorTarget:
diff --git a/chrome/browser/companion/core/BUILD.gn b/chrome/browser/companion/core/BUILD.gn index 0090dca..0a14098 100644 --- a/chrome/browser/companion/core/BUILD.gn +++ b/chrome/browser/companion/core/BUILD.gn
@@ -13,7 +13,6 @@ "constants.h", "features.cc", "features.h", - "msbb_delegate.h", "promo_handler.cc", "promo_handler.h", "signin_delegate.h",
diff --git a/chrome/browser/companion/core/companion_url_builder_unittest.cc b/chrome/browser/companion/core/companion_url_builder_unittest.cc index 58e31e2..e24f178 100644 --- a/chrome/browser/companion/core/companion_url_builder_unittest.cc +++ b/chrome/browser/companion/core/companion_url_builder_unittest.cc
@@ -32,6 +32,8 @@ MOCK_METHOD0(AllowedSignin, bool()); MOCK_METHOD0(IsSignedIn, bool()); MOCK_METHOD0(StartSigninFlow, void()); + MOCK_METHOD1(EnableMsbb, void(bool)); + MOCK_METHOD1(LoadExpsPromUrl, void(const GURL&)); }; } // namespace
diff --git a/chrome/browser/companion/core/mojom/companion.mojom b/chrome/browser/companion/core/mojom/companion.mojom index de36e72..8507cb4 100644 --- a/chrome/browser/companion/core/mojom/companion.mojom +++ b/chrome/browser/companion/core/mojom/companion.mojom
@@ -135,8 +135,12 @@ // Notify the backend that the UI is ready to be shown. ShowUI(); - // Called to notify the browser about user action on a promo. - OnPromoAction(PromoType promo_type, PromoAction promo_action); + // Called to notify the browser about user action of type `promo_action` on a + // promo of type `promo_type`. + // `exps_promo_url` is optionally used to pass the URL to be loaded for exps + // opt-in. + OnPromoAction(PromoType promo_type, PromoAction promo_action, + url.mojom.Url? exps_promo_url); // Called to notify the browser that user has clicked on region search button. OnRegionSearchClicked();
diff --git a/chrome/browser/companion/core/msbb_delegate.h b/chrome/browser/companion/core/msbb_delegate.h deleted file mode 100644 index 8740b6db..0000000 --- a/chrome/browser/companion/core/msbb_delegate.h +++ /dev/null
@@ -1,22 +0,0 @@ -// Copyright 2023 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef CHROME_BROWSER_COMPANION_CORE_MSBB_DELEGATE_H_ -#define CHROME_BROWSER_COMPANION_CORE_MSBB_DELEGATE_H_ - -namespace companion { - -// Helper class to read and write the setting for make searches and browsing -// better. -class MsbbDelegate { - public: - virtual ~MsbbDelegate() = default; - - // Enable the setting for make searches and browsing better. - virtual void EnableMsbb(bool enable_msbb) = 0; -}; - -} // namespace companion - -#endif // CHROME_BROWSER_COMPANION_CORE_MSBB_DELEGATE_H_
diff --git a/chrome/browser/companion/core/promo_handler.cc b/chrome/browser/companion/core/promo_handler.cc index de8362b..89edbb1 100644 --- a/chrome/browser/companion/core/promo_handler.cc +++ b/chrome/browser/companion/core/promo_handler.cc
@@ -6,7 +6,6 @@ #include "chrome/browser/companion/core/constants.h" #include "chrome/browser/companion/core/mojom/companion.mojom.h" -#include "chrome/browser/companion/core/msbb_delegate.h" #include "chrome/browser/companion/core/signin_delegate.h" #include "components/prefs/pref_registry_simple.h" #include "components/prefs/pref_service.h" @@ -14,11 +13,8 @@ namespace companion { PromoHandler::PromoHandler(PrefService* pref_service, - SigninDelegate* signin_delegate, - MsbbDelegate* msbb_delegate) - : pref_service_(pref_service), - signin_delegate_(signin_delegate), - msbb_delegate_(msbb_delegate) {} + SigninDelegate* signin_delegate) + : pref_service_(pref_service), signin_delegate_(signin_delegate) {} PromoHandler::~PromoHandler() = default; @@ -33,7 +29,8 @@ } void PromoHandler::OnPromoAction(PromoType promo_type, - PromoAction promo_action) { + PromoAction promo_action, + const absl::optional<GURL>& exps_promo_url) { switch (promo_type) { case PromoType::kSignin: OnSigninPromo(promo_action); @@ -42,7 +39,7 @@ OnMsbbPromo(promo_action); return; case PromoType::kExps: - OnExpsPromo(promo_action); + OnExpsPromo(promo_action, exps_promo_url); return; } } @@ -65,17 +62,20 @@ IncrementPref(kMsbbPromoDeclinedCountPref); } else if (promo_action == PromoAction::kAccepted) { // Turn on MSBB. - msbb_delegate_->EnableMsbb(true); + signin_delegate_->EnableMsbb(true); } } -void PromoHandler::OnExpsPromo(PromoAction promo_action) { +void PromoHandler::OnExpsPromo(PromoAction promo_action, + const absl::optional<GURL>& exps_promo_url) { if (promo_action == PromoAction::kShown) { IncrementPref(kExpsPromoShownCountPref); } else if (promo_action == PromoAction::kRejected) { IncrementPref(kExpsPromoDeclinedCountPref); } else if (promo_action == PromoAction::kAccepted) { - // TODO(b/272954072): Nothing to do. Just collect metrics. + if (exps_promo_url.has_value()) { + signin_delegate_->LoadExpsPromUrl(exps_promo_url.value()); + } } }
diff --git a/chrome/browser/companion/core/promo_handler.h b/chrome/browser/companion/core/promo_handler.h index a9b9dc68..b4195939 100644 --- a/chrome/browser/companion/core/promo_handler.h +++ b/chrome/browser/companion/core/promo_handler.h
@@ -11,6 +11,7 @@ #include "base/functional/callback.h" #include "base/memory/raw_ptr.h" #include "chrome/browser/companion/core/mojom/companion.mojom.h" +#include "url/gurl.h" class PrefRegistrySimple; class PrefService; @@ -19,16 +20,13 @@ using side_panel::mojom::PromoAction; using side_panel::mojom::PromoType; -class MsbbDelegate; class SigninDelegate; // Central class to handle user actions on various promos displayed in the // search companion. class PromoHandler { public: - PromoHandler(PrefService* pref_service, - SigninDelegate* signin_delegate, - MsbbDelegate* msbb_delegate); + PromoHandler(PrefService* pref_service, SigninDelegate* signin_delegate); ~PromoHandler(); // Disallow copy/assign. @@ -41,23 +39,23 @@ // Called in response to the mojo call from renderer. Takes necessary action // to handle the user action on the promo. - void OnPromoAction(PromoType promo_type, PromoAction promo_action); + void OnPromoAction(PromoType promo_type, + PromoAction promo_action, + const absl::optional<GURL>& exps_promo_url); private: void OnSigninPromo(PromoAction promo_action); void OnMsbbPromo(PromoAction promo_action); - void OnExpsPromo(PromoAction promo_action); + void OnExpsPromo(PromoAction promo_action, + const absl::optional<GURL>& exps_promo_url); void IncrementPref(const std::string& pref_name); // Lifetime of the PrefService is bound to profile which outlives the lifetime // of the companion page. raw_ptr<PrefService> pref_service_; - // Delegate to handle sign-in flow. + // Delegate to handle promo acceptance flow. raw_ptr<SigninDelegate> signin_delegate_; - - // Delegate to set MSBB. - raw_ptr<MsbbDelegate> msbb_delegate_; }; } // namespace companion
diff --git a/chrome/browser/companion/core/promo_handler_unittest.cc b/chrome/browser/companion/core/promo_handler_unittest.cc index a1e683e..d2c8439 100644 --- a/chrome/browser/companion/core/promo_handler_unittest.cc +++ b/chrome/browser/companion/core/promo_handler_unittest.cc
@@ -6,27 +6,23 @@ #include "chrome/browser/companion/core/constants.h" #include "chrome/browser/companion/core/mojom/companion.mojom.h" -#include "chrome/browser/companion/core/msbb_delegate.h" #include "chrome/browser/companion/core/signin_delegate.h" #include "components/prefs/pref_registry_simple.h" #include "components/prefs/testing_pref_service.h" #include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h" +#include "url/gurl.h" namespace companion { namespace { -class MockMsbbDelegate : public MsbbDelegate { - public: - MOCK_METHOD1(EnableMsbb, void(bool)); - MOCK_METHOD0(IsMsbbEnabled, bool()); -}; - class MockSigninDelegate : public SigninDelegate { public: MOCK_METHOD0(AllowedSignin, bool()); MOCK_METHOD0(IsSignedIn, bool()); MOCK_METHOD0(StartSigninFlow, void()); + MOCK_METHOD1(EnableMsbb, void(bool)); + MOCK_METHOD1(LoadExpsPromUrl, void(const GURL&)); }; } // namespace @@ -38,42 +34,52 @@ void SetUp() override { PromoHandler::RegisterProfilePrefs(pref_service_.registry()); - promo_handler_ = std::make_unique<PromoHandler>( - &pref_service_, &signin_delegate_, &msbb_delegate_); + promo_handler_ = + std::make_unique<PromoHandler>(&pref_service_, &signin_delegate_); } protected: TestingPrefServiceSimple pref_service_; MockSigninDelegate signin_delegate_; - MockMsbbDelegate msbb_delegate_; std::unique_ptr<PromoHandler> promo_handler_; }; TEST_F(PromoHandlerTest, MsbbPromo) { - promo_handler_->OnPromoAction(PromoType::kMsbb, PromoAction::kRejected); + promo_handler_->OnPromoAction(PromoType::kMsbb, PromoAction::kRejected, + absl::nullopt); EXPECT_EQ(1, pref_service_.GetInteger(kMsbbPromoDeclinedCountPref)); - EXPECT_CALL(msbb_delegate_, EnableMsbb(true)).Times(1); - promo_handler_->OnPromoAction(PromoType::kMsbb, PromoAction::kAccepted); + EXPECT_CALL(signin_delegate_, EnableMsbb(true)).Times(1); + promo_handler_->OnPromoAction(PromoType::kMsbb, PromoAction::kAccepted, + absl::nullopt); } TEST_F(PromoHandlerTest, SigninPromo) { - promo_handler_->OnPromoAction(PromoType::kSignin, PromoAction::kRejected); + promo_handler_->OnPromoAction(PromoType::kSignin, PromoAction::kRejected, + absl::nullopt); EXPECT_EQ(1, pref_service_.GetInteger(kSigninPromoDeclinedCountPref)); EXPECT_CALL(signin_delegate_, StartSigninFlow()).Times(1); - promo_handler_->OnPromoAction(PromoType::kSignin, PromoAction::kAccepted); + promo_handler_->OnPromoAction(PromoType::kSignin, PromoAction::kAccepted, + absl::nullopt); } TEST_F(PromoHandlerTest, ExpsPromo) { - promo_handler_->OnPromoAction(PromoType::kExps, PromoAction::kShown); + promo_handler_->OnPromoAction(PromoType::kExps, PromoAction::kShown, + absl::nullopt); EXPECT_EQ(1, pref_service_.GetInteger(kExpsPromoShownCountPref)); - promo_handler_->OnPromoAction(PromoType::kExps, PromoAction::kRejected); + promo_handler_->OnPromoAction(PromoType::kExps, PromoAction::kRejected, + absl::nullopt); EXPECT_EQ(1, pref_service_.GetInteger(kExpsPromoDeclinedCountPref)); - promo_handler_->OnPromoAction(PromoType::kExps, PromoAction::kAccepted); - // TODO(b/272954072): Add test. + EXPECT_CALL(signin_delegate_, LoadExpsPromUrl(testing::_)).Times(0); + promo_handler_->OnPromoAction(PromoType::kExps, PromoAction::kAccepted, + absl::nullopt); + + EXPECT_CALL(signin_delegate_, LoadExpsPromUrl(testing::_)).Times(1); + promo_handler_->OnPromoAction(PromoType::kExps, PromoAction::kAccepted, + GURL()); } } // namespace companion
diff --git a/chrome/browser/companion/core/signin_delegate.h b/chrome/browser/companion/core/signin_delegate.h index a87474e..4557dc18 100644 --- a/chrome/browser/companion/core/signin_delegate.h +++ b/chrome/browser/companion/core/signin_delegate.h
@@ -5,10 +5,7 @@ #ifndef CHROME_BROWSER_COMPANION_CORE_SIGNIN_DELEGATE_H_ #define CHROME_BROWSER_COMPANION_CORE_SIGNIN_DELEGATE_H_ -#include "base/functional/callback.h" -#include "base/memory/raw_ptr.h" - -class Profile; +#include "url/gurl.h" namespace companion { @@ -32,8 +29,11 @@ // Starts a signin and sync flow. virtual void StartSigninFlow() = 0; - // Creates the instance. - static std::unique_ptr<SigninDelegate> Create(Profile* profile); + // Enable the setting for make searches and browsing better. + virtual void EnableMsbb(bool enable_msbb) = 0; + + // Loads exps promo URL in the browser. + virtual void LoadExpsPromUrl(const GURL& exps_promo_url) = 0; }; } // namespace companion
diff --git a/chrome/browser/devtools/devtools_browsertest.cc b/chrome/browser/devtools/devtools_browsertest.cc index 60186ac..3a3892c 100644 --- a/chrome/browser/devtools/devtools_browsertest.cc +++ b/chrome/browser/devtools/devtools_browsertest.cc
@@ -188,14 +188,26 @@ script << (i ? "," : "") << '\"' << args_array[i] << '\"'; } script << "])"; - EXPECT_EQ("[OK]", content::EvalJs(wc, script.str(), - content::EXECUTE_SCRIPT_USE_MANUAL_REPLY)); + + content::DOMMessageQueue message_queue; + EXPECT_TRUE(content::ExecJs(wc, script.str())); + + std::string result; + EXPECT_TRUE(message_queue.WaitForMessage(&result)); + + EXPECT_EQ("\"[OK]\"", result); } void LoadLegacyFilesInFrontend(DevToolsWindow* window) { WebContents* wc = DevToolsWindowTesting::Get(window)->main_web_contents(); - ASSERT_EQ("[OK]", content::EvalJs(wc, "uiTests.setupLegacyFilesForTest();", - content::EXECUTE_SCRIPT_USE_MANUAL_REPLY)); + content::DOMMessageQueue message_queue; + EXPECT_TRUE(content::ExecJs(wc, "uiTests.setupLegacyFilesForTest();", + content::EXECUTE_SCRIPT_NO_RESOLVE_PROMISES)); + + std::string result; + EXPECT_TRUE(message_queue.WaitForMessage(&result)); + + ASSERT_EQ("\"[OK]\"", result); } template <typename... T>
diff --git a/chrome/browser/dips/dips_bounce_detector.cc b/chrome/browser/dips/dips_bounce_detector.cc index 6e20d40..81db125 100644 --- a/chrome/browser/dips/dips_bounce_detector.cc +++ b/chrome/browser/dips/dips_bounce_detector.cc
@@ -32,6 +32,7 @@ #include "content/public/browser/navigation_handle.h" #include "content/public/browser/navigation_handle_user_data.h" #include "content/public/browser/page.h" +#include "content/public/browser/render_frame_host.h" #include "content/public/browser/web_contents_observer.h" #include "services/metrics/public/cpp/ukm_recorder.h" #include "third_party/blink/public/mojom/devtools/inspector_issue.mojom.h" @@ -545,10 +546,8 @@ void DIPSWebContentsObserver::OnCookiesAccessed( content::RenderFrameHost* render_frame_host, const content::CookieAccessDetails& details) { - // TODO(crbug.com/1434764): handle same-site iframes. - if (!render_frame_host->IsInPrimaryMainFrame() || details.blocked_by_policy || - !net::SiteForCookies::FromUrl(details.first_party_url) - .IsFirstParty(details.url)) { + if (!IsInPrimaryPage(render_frame_host) || details.blocked_by_policy || + !IsSameSiteForDIPS(details.first_party_url, details.url)) { return; } @@ -578,9 +577,20 @@ void DIPSWebContentsObserver::OnCookiesAccessed( NavigationHandle* navigation_handle, const content::CookieAccessDetails& details) { - if (!navigation_handle->IsInPrimaryMainFrame() || details.blocked_by_policy || - !net::SiteForCookies::FromUrl(details.first_party_url) - .IsFirstParty(details.url)) { + // Discard all notifications that are: + // - From other page types like FencedFrames, and Prerendered. + // - Blocked by policies. + // - That are not same site (wrt GetSiteForDIPS()) with the first party URL. + // TODO(crbug.com/1445739): Treat partitioned 3P cookies as 1P cookies. + if (!IsInPrimaryPage(navigation_handle) || details.blocked_by_policy || + !IsSameSiteForDIPS(details.first_party_url, details.url)) { + return; + } + + // All access within the primary page iframes are attributed to the URL of the + // main frame (ie the first party URL). + if (IsInPrimaryPageIFrame(navigation_handle)) { + detector_.OnClientSiteDataAccessed(details.url, details.type); return; }
diff --git a/chrome/browser/dips/dips_bounce_detector_browsertest.cc b/chrome/browser/dips/dips_bounce_detector_browsertest.cc index ce4a36a6..7e27f617 100644 --- a/chrome/browser/dips/dips_bounce_detector_browsertest.cc +++ b/chrome/browser/dips/dips_bounce_detector_browsertest.cc
@@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +#include "base/functional/bind.h" #include "chrome/browser/dips/dips_bounce_detector.h" #include <memory> @@ -23,12 +24,16 @@ #include "chrome/test/base/chrome_test_utils.h" #include "content/public/browser/cookie_access_details.h" #include "content/public/browser/navigation_handle.h" +#include "content/public/browser/render_frame_host.h" #include "content/public/browser/web_contents.h" #include "content/public/common/content_paths.h" #include "content/public/test/browser_test.h" #include "content/public/test/browser_test_utils.h" +#include "content/public/test/fenced_frame_test_util.h" #include "content/public/test/hit_test_region_observer.h" +#include "content/public/test/prerender_test_util.h" #include "content/public/test/test_devtools_protocol_client.h" +#include "content/public/test/test_navigation_observer.h" #include "content/public/test/test_utils.h" #include "net/dns/mock_host_resolver.h" #include "net/test/embedded_test_server/http_request.h" @@ -192,6 +197,10 @@ void WCOCallbackLogger::DidFinishNavigation( NavigationHandle* navigation_handle) { + if (!IsInPrimaryPage(navigation_handle)) { + return; + } + // Android testing produces callbacks for a finished navigation to "blank" at // the beginning of a test. These should be ignored here. if (FormatURL(navigation_handle->GetURL()) == "blank" || @@ -259,7 +268,10 @@ class DIPSBounceDetectorBrowserTest : public PlatformBrowserTest { protected: - DIPSBounceDetectorBrowserTest() { + DIPSBounceDetectorBrowserTest() + : prerender_test_helper_(base::BindRepeating( + &DIPSBounceDetectorBrowserTest::GetActiveWebContents, + base::Unretained(this))) { scoped_feature_list_.InitWithFeatures( /*enabled_features=*/{}, /*disabled_features=*/{ @@ -275,6 +287,7 @@ } void SetUpOnMainThread() override { + prerender_test_helper_.SetUp(embedded_test_server()); ASSERT_TRUE(embedded_test_server()->Start()); host_resolver()->AddRule("a.test", "127.0.0.1"); host_resolver()->AddRule("b.test", "127.0.0.1"); @@ -382,9 +395,52 @@ /*world_id=*/1); } - private: - base::test::ScopedFeatureList scoped_feature_list_; + auto* fenced_frame_test_helper() { return &fenced_frame_test_helper_; } + auto* prerender_test_helper() { return &prerender_test_helper_; } + content::RenderFrameHost* GetIFrame() { + content::WebContents* web_contents = GetActiveWebContents(); + return ChildFrameAt(web_contents->GetPrimaryMainFrame(), 0); + } + + content::RenderFrameHost* GetNestedIFrame() { + return ChildFrameAt(GetIFrame(), 0); + } + + void CloseTab() { + content::WebContentsDestroyedWatcher destruction_watcher( + GetActiveWebContents()); + GetActiveWebContents()->Close(); + destruction_watcher.Wait(); + } + + void NavigateNestedIFrameTo(content::RenderFrameHost* parent_frame, + const std::string& iframe_id, + const GURL& url) { + content::TestNavigationObserver load_observer(GetActiveWebContents()); + std::string script = base::StringPrintf( + "var iframe = document.getElementById('%s');iframe.src='%s';", + iframe_id.c_str(), url.spec().c_str()); + ASSERT_TRUE(content::ExecJs(parent_frame, script, + content::EXECUTE_SCRIPT_NO_USER_GESTURE)); + load_observer.Wait(); + } + + void AccessCookieViaJSIn(content::RenderFrameHost* frame) { + FrameCookieAccessObserver observer(GetActiveWebContents(), frame, + CookieOperation::kChange); + ASSERT_TRUE(content::ExecJs(frame, "document.cookie = 'foo=bar';", + content::EXECUTE_SCRIPT_NO_USER_GESTURE)); + observer.Wait(); + } + + const base::FilePath kChromeTestDataDir = + base::FilePath(FILE_PATH_LITERAL("chrome/test/data")); + + private: + content::test::PrerenderTestHelper prerender_test_helper_; + content::test::FencedFrameTestHelper fenced_frame_test_helper_; + base::test::ScopedFeatureList scoped_feature_list_; raw_ptr<DIPSWebContentsObserver, DanglingUntriaged> web_contents_observer_ = nullptr; }; @@ -407,8 +463,7 @@ base::PathService::Get(content::DIR_TEST_DATA, &path); https_server_.SetSSLConfig(net::EmbeddedTestServer::CERT_TEST_NAMES); https_server_.ServeFilesFromDirectory(path); - https_server_.AddDefaultHandlers( - base::FilePath(FILE_PATH_LITERAL("chrome/test/data"))); + https_server_.AddDefaultHandlers(kChromeTestDataDir); ASSERT_TRUE(https_server_.Start()); } @@ -452,6 +507,282 @@ StorageType::INDEXED_DB)); IN_PROC_BROWSER_TEST_F(DIPSBounceDetectorBrowserTest, + AttributeSameSiteIframesCookieClientAccessTo1P) { + std::vector<std::string> redirects; + StartAppendingRedirectsTo(&redirects); + + const GURL primary_main_frame_url = + embedded_test_server()->GetURL("a.test", "/iframe_blank.html"); + ASSERT_TRUE( + content::NavigateToURL(GetActiveWebContents(), primary_main_frame_url)); + + const GURL iframe_url = + embedded_test_server()->GetURL("a.test", "/title1.html"); + ASSERT_TRUE( + content::NavigateIframeToURL(GetActiveWebContents(), "test", iframe_url)); + + AccessCookieViaJSIn(GetIFrame()); + + const GURL primary_main_frame_final_url = + embedded_test_server()->GetURL("d.test", "/title1.html"); + // Performs a Client-redirect to `primary_main_frame_final_url`. + ASSERT_TRUE(content::NavigateToURLFromRendererWithoutUserGesture( + GetActiveWebContents(), primary_main_frame_final_url)); + + CloseTab(); + EXPECT_THAT(redirects, ElementsAre(("[1/1] blank -> a.test/iframe_blank.html " + "(Write) -> d.test/title1.html"))); +} + +IN_PROC_BROWSER_TEST_F(DIPSBounceDetectorBrowserTest, + AttributeSameSiteIframesCookieServerAccessTo1P) { + net::EmbeddedTestServer https_server(net::EmbeddedTestServer::TYPE_HTTPS); + https_server.SetSSLConfig(net::EmbeddedTestServer::CERT_TEST_NAMES); + https_server.AddDefaultHandlers(kChromeTestDataDir); + ASSERT_TRUE(https_server.Start()); + + std::vector<std::string> redirects; + StartAppendingRedirectsTo(&redirects); + + const GURL primary_main_frame_url = + embedded_test_server()->GetURL("a.test", "/iframe_blank.html"); + ASSERT_TRUE( + content::NavigateToURL(GetActiveWebContents(), primary_main_frame_url)); + + const GURL iframe_url = + https_server.GetURL("a.test", "/set-cookie?foo=bar;SameSite=None;Secure"); + ASSERT_TRUE( + content::NavigateIframeToURL(GetActiveWebContents(), "test", iframe_url)); + + const GURL primary_main_frame_final_url = + embedded_test_server()->GetURL("d.test", "/title1.html"); + // Performs a Client-redirect to `primary_main_frame_final_url`. + ASSERT_TRUE(content::NavigateToURLFromRendererWithoutUserGesture( + GetActiveWebContents(), primary_main_frame_final_url)); + + CloseTab(); + EXPECT_THAT(redirects, ElementsAre(("[1/1] blank -> a.test/iframe_blank.html " + "(Write) -> d.test/title1.html"))); +} + +IN_PROC_BROWSER_TEST_F(DIPSBounceDetectorBrowserTest, + AttributeSameSiteNestedIframesCookieClientAccessTo1P) { + std::vector<std::string> redirects; + StartAppendingRedirectsTo(&redirects); + + const GURL primary_main_frame_url = + embedded_test_server()->GetURL("a.test", "/iframe_blank.html"); + ASSERT_TRUE( + content::NavigateToURL(GetActiveWebContents(), primary_main_frame_url)); + + const GURL iframe_url = + embedded_test_server()->GetURL("a.test", "/iframe_blank.html"); + ASSERT_TRUE( + content::NavigateIframeToURL(GetActiveWebContents(), "test", iframe_url)); + + const GURL nested_iframe_url = + embedded_test_server()->GetURL("a.test", "/title1.html"); + NavigateNestedIFrameTo(GetIFrame(), "test", nested_iframe_url); + + AccessCookieViaJSIn(GetNestedIFrame()); + + const GURL primary_main_frame_final_url = + embedded_test_server()->GetURL("d.test", "/title1.html"); + // Performs a Client-redirect to `primary_main_frame_final_url`. + ASSERT_TRUE(content::NavigateToURLFromRendererWithoutUserGesture( + GetActiveWebContents(), primary_main_frame_final_url)); + + CloseTab(); + EXPECT_THAT(redirects, ElementsAre(("[1/1] blank -> a.test/iframe_blank.html " + "(Write) -> d.test/title1.html"))); +} + +IN_PROC_BROWSER_TEST_F(DIPSBounceDetectorBrowserTest, + AttributeSameSiteNestedIframesCookieServerAccessTo1P) { + net::EmbeddedTestServer https_server(net::EmbeddedTestServer::TYPE_HTTPS); + https_server.SetSSLConfig(net::EmbeddedTestServer::CERT_TEST_NAMES); + https_server.AddDefaultHandlers(kChromeTestDataDir); + ASSERT_TRUE(https_server.Start()); + + std::vector<std::string> redirects; + StartAppendingRedirectsTo(&redirects); + + const GURL primary_main_frame_url = + embedded_test_server()->GetURL("a.test", "/iframe_blank.html"); + ASSERT_TRUE( + content::NavigateToURL(GetActiveWebContents(), primary_main_frame_url)); + + const GURL iframe_url = + embedded_test_server()->GetURL("a.test", "/iframe_blank.html"); + ASSERT_TRUE( + content::NavigateIframeToURL(GetActiveWebContents(), "test", iframe_url)); + + const GURL nested_iframe_url = + https_server.GetURL("a.test", "/set-cookie?foo=bar;SameSite=None;Secure"); + NavigateNestedIFrameTo(GetIFrame(), "test", nested_iframe_url); + + const GURL primary_main_frame_final_url = + embedded_test_server()->GetURL("d.test", "/title1.html"); + // Performs a Client-redirect to `primary_main_frame_final_url`. + ASSERT_TRUE(content::NavigateToURLFromRendererWithoutUserGesture( + GetActiveWebContents(), primary_main_frame_final_url)); + + CloseTab(); + EXPECT_THAT(redirects, ElementsAre(("[1/1] blank -> a.test/iframe_blank.html " + "(Write) -> d.test/title1.html"))); +} + +IN_PROC_BROWSER_TEST_F(DIPSBounceDetectorBrowserTest, + DiscardFencedFrameCookieClientAccess) { + std::vector<std::string> redirects; + StartAppendingRedirectsTo(&redirects); + + const GURL primary_main_frame_url = + embedded_test_server()->GetURL("a.test", "/title1.html"); + ASSERT_TRUE( + content::NavigateToURL(GetActiveWebContents(), primary_main_frame_url)); + + const GURL fenced_frame_url = + embedded_test_server()->GetURL("a.test", "/fenced_frames/title2.html"); + content::RenderFrameHostWrapper fenced_frame( + fenced_frame_test_helper()->CreateFencedFrame( + GetActiveWebContents()->GetPrimaryMainFrame(), fenced_frame_url)); + EXPECT_FALSE(fenced_frame.IsDestroyed()); + + AccessCookieViaJSIn(fenced_frame.get()); + + const GURL primary_main_frame_final_url = + embedded_test_server()->GetURL("d.test", "/title1.html"); + // Performs a Client-redirect to `primary_main_frame_final_url`. + ASSERT_TRUE(content::NavigateToURLFromRendererWithoutUserGesture( + GetActiveWebContents(), primary_main_frame_final_url)); + + CloseTab(); + EXPECT_THAT( + redirects, + ElementsAre( + ("[1/1] blank -> a.test/title1.html (None) -> d.test/title1.html"))); +} + +IN_PROC_BROWSER_TEST_F(DIPSBounceDetectorBrowserTest, + DiscardFencedFrameCookieServerAccess) { + std::vector<std::string> redirects; + StartAppendingRedirectsTo(&redirects); + + const GURL primary_main_frame_url = + embedded_test_server()->GetURL("a.test", "/title1.html"); + ASSERT_TRUE( + content::NavigateToURL(GetActiveWebContents(), primary_main_frame_url)); + + const GURL fenced_frame_url = embedded_test_server()->GetURL( + "a.test", "/fenced_frames/set_cookie_header.html"); + URLCookieAccessObserver observer(GetActiveWebContents(), fenced_frame_url, + CookieOperation::kChange); + content::RenderFrameHostWrapper fenced_frame( + fenced_frame_test_helper()->CreateFencedFrame( + GetActiveWebContents()->GetPrimaryMainFrame(), fenced_frame_url)); + EXPECT_FALSE(fenced_frame.IsDestroyed()); + observer.Wait(); + + const GURL primary_main_frame_final_url = + embedded_test_server()->GetURL("d.test", "/title1.html"); + // Performs a Client-redirect to `primary_main_frame_final_url`. + ASSERT_TRUE(content::NavigateToURLFromRendererWithoutUserGesture( + GetActiveWebContents(), primary_main_frame_final_url)); + + CloseTab(); + EXPECT_THAT( + redirects, + ElementsAre( + ("[1/1] blank -> a.test/title1.html (None) -> d.test/title1.html"))); +} + +IN_PROC_BROWSER_TEST_F(DIPSBounceDetectorBrowserTest, + DiscardPrerenderedPageCookieClientAccess) { + std::vector<std::string> redirects; + StartAppendingRedirectsTo(&redirects); + + const GURL primary_main_frame_url = + embedded_test_server()->GetURL("a.test", "/title1.html"); + ASSERT_TRUE( + content::NavigateToURL(GetActiveWebContents(), primary_main_frame_url)); + + const GURL prerendering_url = + embedded_test_server()->GetURL("a.test", "/title2.html"); + const int host_id = prerender_test_helper()->AddPrerender(prerendering_url); + prerender_test_helper()->WaitForPrerenderLoadCompletion(prerendering_url); + content::test::PrerenderHostObserver observer(*GetActiveWebContents(), + host_id); + EXPECT_FALSE(observer.was_activated()); + content::RenderFrameHost* prerender_frame = + prerender_test_helper()->GetPrerenderedMainFrameHost(host_id); + EXPECT_NE(prerender_frame, nullptr); + + AccessCookieViaJSIn(prerender_frame); + + prerender_test_helper()->CancelPrerenderedPage(host_id); + observer.WaitForDestroyed(); + + const GURL primary_main_frame_final_url = + embedded_test_server()->GetURL("d.test", "/title1.html"); + // Performs a Client-redirect to `primary_main_frame_final_url`. + ASSERT_TRUE(content::NavigateToURLFromRendererWithoutUserGesture( + GetActiveWebContents(), primary_main_frame_final_url)); + + CloseTab(); + EXPECT_THAT( + redirects, + ElementsAre( + ("[1/1] blank -> a.test/title1.html (None) -> d.test/title1.html"))); +} + +IN_PROC_BROWSER_TEST_F(DIPSBounceDetectorBrowserTest, + DiscardPrerenderedPageCookieServerAccess) { + std::vector<std::string> redirects; + StartAppendingRedirectsTo(&redirects); + + const GURL primary_main_frame_url = + embedded_test_server()->GetURL("a.test", "/title1.html"); + ASSERT_TRUE( + content::NavigateToURL(GetActiveWebContents(), primary_main_frame_url)); + + const GURL prerendering_url = + embedded_test_server()->GetURL("a.test", "/set_cookie_header.html"); + URLCookieAccessObserver observer(GetActiveWebContents(), prerendering_url, + CookieOperation::kChange); + const int host_id = prerender_test_helper()->AddPrerender(prerendering_url); + prerender_test_helper()->WaitForPrerenderLoadCompletion(prerendering_url); + observer.Wait(); + + content::test::PrerenderHostObserver prerender_observer( + *GetActiveWebContents(), host_id); + EXPECT_FALSE(prerender_observer.was_activated()); + prerender_test_helper()->CancelPrerenderedPage(host_id); + prerender_observer.WaitForDestroyed(); + + const GURL primary_main_frame_final_url = + embedded_test_server()->GetURL("d.test", "/title1.html"); + // Performs a Client-redirect to `primary_main_frame_final_url`. + ASSERT_TRUE(content::NavigateToURLFromRendererWithoutUserGesture( + GetActiveWebContents(), primary_main_frame_final_url)); + + // From the time the cookie was set by the prerendering page and now, the + // primary main page might have accessed (read) the cookie (when sending a + // request for a favicon after prerendering page already accessed (Write) the + // cookie). To prevent flakiness we check for any such access and test for the + // expected outcome accordingly. + // TODO(crbug.com/1447929): Investigate whether Prerendering pages (same-site) + // can be use for evasion. + const std::string expected_access_type = + observer.CookieAccessedInPrimaryPage() ? "Read" : "None"; + + CloseTab(); + EXPECT_THAT(redirects, + ElementsAre(("[1/1] blank -> a.test/title1.html (" + + expected_access_type + ") -> d.test/title1.html"))); +} + +IN_PROC_BROWSER_TEST_F(DIPSBounceDetectorBrowserTest, DetectStatefulBounce_ClientRedirect_SiteDataAccess) { std::vector<std::string> redirects; StartAppendingRedirectsTo(&redirects); @@ -599,8 +930,7 @@ // cookie, the cookie needs to be SameSite=None and Secure. net::EmbeddedTestServer https_server(net::EmbeddedTestServer::TYPE_HTTPS); https_server.SetSSLConfig(net::EmbeddedTestServer::CERT_TEST_NAMES); - https_server.AddDefaultHandlers( - base::FilePath(FILE_PATH_LITERAL("chrome/test/data"))); + https_server.AddDefaultHandlers(kChromeTestDataDir); https_server.RegisterDefaultHandler(base::BindRepeating( &HandleCrossSiteSameSiteNoneCookieRedirect, &https_server)); ASSERT_TRUE(https_server.Start()); @@ -706,8 +1036,7 @@ // cookie, it needs to be SameSite=None and Secure. net::EmbeddedTestServer https_server(net::EmbeddedTestServer::TYPE_HTTPS); https_server.SetSSLConfig(net::EmbeddedTestServer::CERT_TEST_NAMES); - https_server.AddDefaultHandlers( - base::FilePath(FILE_PATH_LITERAL("chrome/test/data"))); + https_server.AddDefaultHandlers(kChromeTestDataDir); https_server.RegisterDefaultHandler(base::BindRepeating( &HandleCrossSiteSameSiteNoneCookieRedirect, &https_server)); ASSERT_TRUE(https_server.Start());
diff --git a/chrome/browser/dips/dips_test_utils.cc b/chrome/browser/dips/dips_test_utils.cc index 304aa5d..38e25b1 100644 --- a/chrome/browser/dips/dips_test_utils.cc +++ b/chrome/browser/dips/dips_test_utils.cc
@@ -27,6 +27,8 @@ void URLCookieAccessObserver::OnCookiesAccessed( RenderFrameHost* render_frame_host, const CookieAccessDetails& details) { + cookie_accessed_in_primary_page_ = IsInPrimaryPage(render_frame_host); + if (details.type == access_type_ && details.url == url_) { run_loop_.Quit(); } @@ -35,11 +37,17 @@ void URLCookieAccessObserver::OnCookiesAccessed( NavigationHandle* navigation_handle, const CookieAccessDetails& details) { + cookie_accessed_in_primary_page_ = IsInPrimaryPage(navigation_handle); + if (details.type == access_type_ && details.url == url_) { run_loop_.Quit(); } } +bool URLCookieAccessObserver::CookieAccessedInPrimaryPage() const { + return cookie_accessed_in_primary_page_; +} + FrameCookieAccessObserver::FrameCookieAccessObserver( WebContents* web_contents, RenderFrameHost* render_frame_host,
diff --git a/chrome/browser/dips/dips_test_utils.h b/chrome/browser/dips/dips_test_utils.h index 268a54f..f3b9619 100644 --- a/chrome/browser/dips/dips_test_utils.h +++ b/chrome/browser/dips/dips_test_utils.h
@@ -97,6 +97,8 @@ void Wait(); + bool CookieAccessedInPrimaryPage() const; + private: // WebContentsObserver overrides void OnCookiesAccessed(content::RenderFrameHost* render_frame_host, @@ -106,6 +108,7 @@ GURL url_; CookieOperation access_type_; + bool cookie_accessed_in_primary_page_ = false; base::RunLoop run_loop_; };
diff --git a/chrome/browser/dips/dips_utils.h b/chrome/browser/dips/dips_utils.h index 52b941f..4eff726 100644 --- a/chrome/browser/dips/dips_utils.h +++ b/chrome/browser/dips/dips_utils.h
@@ -11,6 +11,7 @@ #include "base/strings/string_piece_forward.h" #include "base/time/time.h" #include "components/content_settings/browser/page_specific_content_settings.h" +#include "content/public/browser/navigation_handle.h" #include "services/network/public/mojom/cookie_access_observer.mojom.h" #include "third_party/abseil-cpp/absl/types/optional.h" #include "url/gurl.h" @@ -163,6 +164,35 @@ // and may change. std::string GetSiteForDIPS(const GURL& url); +// Returns `True` iff the `navigation_handle` represents a navigation happening +// in an iframe of the primary frame tree. +inline bool IsInPrimaryPageIFrame( + content::NavigationHandle* navigation_handle) { + return navigation_handle->GetParentFrame() + ? navigation_handle->GetParentFrame()->GetPage().IsPrimary() + : false; +} + +// Returns `True` iff both urls return a similar outcome off of +// `GetSiteForDIPS()`. +inline bool IsSameSiteForDIPS(const GURL& url1, const GURL& url2) { + return GetSiteForDIPS(url1) == GetSiteForDIPS(url2); +} + +// Returns `True` iff the `navigation_handle` represents a navigation happening +// in any frame of the primary page. +// NOTE: This does not include fenced frames. +inline bool IsInPrimaryPage(content::NavigationHandle* navigation_handle) { + return navigation_handle->GetParentFrame() + ? navigation_handle->GetParentFrame()->GetPage().IsPrimary() + : navigation_handle->IsInPrimaryMainFrame(); +} + +// Returns `True` iff the 'rfh' represents a frame in the primary page. +inline bool IsInPrimaryPage(content::RenderFrameHost* rfh) { + return rfh->GetPage().IsPrimary(); +} + enum class DIPSRecordedEvent { kStorage, kInteraction,
diff --git a/chrome/browser/enterprise/connectors/analysis/print_content_analysis_utils.cc b/chrome/browser/enterprise/connectors/analysis/print_content_analysis_utils.cc index 008ba3c..ad1813a 100644 --- a/chrome/browser/enterprise/connectors/analysis/print_content_analysis_utils.cc +++ b/chrome/browser/enterprise/connectors/analysis/print_content_analysis_utils.cc
@@ -54,7 +54,7 @@ void PrintIfAllowedByPolicy(scoped_refptr<base::RefCountedMemory> data, content::WebContents* initiator, - const std::string& printer_name, + std::string printer_name, base::OnceCallback<void(bool)> on_verdict, base::OnceClosure hide_preview) { ContentAnalysisDelegate::Data scanning_data; @@ -67,7 +67,7 @@ printing::features::kEnablePrintScanAfterPreview) && scanning_data.settings.cloud_or_local_settings.is_local_analysis()) { // Populate print metadata. - scanning_data.printer_name = printer_name; + scanning_data.printer_name = std::move(printer_name); // Hide the preview dialog so it doesn't cover the content analysis dialog // showing the status of the scanning.
diff --git a/chrome/browser/enterprise/connectors/analysis/print_content_analysis_utils.h b/chrome/browser/enterprise/connectors/analysis/print_content_analysis_utils.h index 987287d4..6644431 100644 --- a/chrome/browser/enterprise/connectors/analysis/print_content_analysis_utils.h +++ b/chrome/browser/enterprise/connectors/analysis/print_content_analysis_utils.h
@@ -26,7 +26,7 @@ // asynchronously. void PrintIfAllowedByPolicy(scoped_refptr<base::RefCountedMemory> data, content::WebContents* initiator, - const std::string& printer_name, + std::string printer_name, base::OnceCallback<void(bool)> on_verdict, base::OnceClosure hide_preview);
diff --git a/chrome/browser/extensions/api/declarative_webrequest/webrequest_action_unittest.cc b/chrome/browser/extensions/api/declarative_webrequest/webrequest_action_unittest.cc index 100470a..9ddb3b9 100644 --- a/chrome/browser/extensions/api/declarative_webrequest/webrequest_action_unittest.cc +++ b/chrome/browser/extensions/api/declarative_webrequest/webrequest_action_unittest.cc
@@ -47,10 +47,10 @@ std::unique_ptr<WebRequestActionSet> CreateSetOfActions(const char* json) { base::Value::List parsed_value = base::test::ParseJsonList(json); - WebRequestActionSet::Values actions; - for (const base::Value& entry : parsed_value) { + base::Value::List actions; + for (base::Value& entry : parsed_value) { CHECK(entry.is_dict()); - actions.push_back(entry.Clone()); + actions.Append(std::move(entry)); } std::string error; @@ -200,7 +200,7 @@ bool bad_message = false; std::unique_ptr<WebRequestActionSet> result; - WebRequestActionSet::Values input; + base::Value::List input; // Test empty input. error.clear(); @@ -220,7 +220,7 @@ base::Value::List wrong_format_action; // Test success. - input.emplace_back(std::move(correct_action)); + input.Append(std::move(correct_action)); error.clear(); result = WebRequestActionSet::Create(nullptr, nullptr, input, &error, &bad_message); @@ -233,7 +233,7 @@ EXPECT_EQ(10, result->GetMinimumPriority()); // Test failure. - input.emplace_back(std::move(incorrect_action)); + input.Append(std::move(incorrect_action)); error.clear(); result = WebRequestActionSet::Create(nullptr, nullptr, input, &error, &bad_message); @@ -241,7 +241,7 @@ EXPECT_FALSE(result.get()); // Test wrong data type passed. - input.emplace_back(std::move(wrong_format_action)); + input.Append(std::move(wrong_format_action)); error.clear(); result = WebRequestActionSet::Create(nullptr, nullptr, input, &error, &bad_message);
diff --git a/chrome/browser/extensions/api/declarative_webrequest/webrequest_rules_registry_unittest.cc b/chrome/browser/extensions/api/declarative_webrequest/webrequest_rules_registry_unittest.cc index 8d8677e25..3cd2659 100644 --- a/chrome/browser/extensions/api/declarative_webrequest/webrequest_rules_registry_unittest.cc +++ b/chrome/browser/extensions/api/declarative_webrequest/webrequest_rules_registry_unittest.cc
@@ -134,12 +134,12 @@ api::events::Rule rule; rule.id = kRuleId1; rule.priority = 100; - rule.actions.emplace_back(action_dict.Clone()); + rule.actions.Append(std::move(action_dict)); http_condition_dict.Set(keys2::kSchemesKey, std::move(scheme_http)); http_condition_url_filter.Set(keys::kUrlKey, std::move(http_condition_dict)); - rule.conditions.emplace_back(http_condition_url_filter.Clone()); - rule.conditions.emplace_back(https_condition_url_filter.Clone()); + rule.conditions.Append(std::move(http_condition_url_filter)); + rule.conditions.Append(std::move(https_condition_url_filter)); return rule; } @@ -154,8 +154,8 @@ api::events::Rule rule; rule.id = kRuleId2; rule.priority = 100; - rule.actions.emplace_back(action_dict.Clone()); - rule.conditions.emplace_back(condition_dict.Clone()); + rule.actions.Append(std::move(action_dict)); + rule.conditions.Append(std::move(condition_dict)); return rule; } @@ -170,8 +170,8 @@ api::events::Rule rule; rule.id = kRuleId3; rule.priority = 100; - rule.actions.emplace_back(action_dict.Clone()); - rule.conditions.emplace_back(condition_dict.Clone()); + rule.actions.Append(std::move(action_dict)); + rule.conditions.Append(std::move(condition_dict)); return rule; } @@ -191,8 +191,8 @@ api::events::Rule rule; rule.id = kRuleId4; rule.priority = 200; - rule.actions.emplace_back(action_dict.Clone()); - rule.conditions.emplace_back(condition_dict.Clone()); + rule.actions.Append(std::move(action_dict)); + rule.conditions.Append(std::move(condition_dict)); return rule; } @@ -220,9 +220,9 @@ api::events::Rule rule; rule.id = rule_id; rule.priority = 1; - rule.actions.emplace_back(action_dict.Clone()); + rule.actions.Append(std::move(action_dict)); for (auto* attribute : attributes) - rule.conditions.push_back(CreateCondition(*attribute)); + rule.conditions.Append(CreateCondition(*attribute)); return rule; } @@ -728,8 +728,8 @@ "} "; base::Value action_value = base::test::ParseJson(kAction); - WebRequestActionSet::Values actions; - actions.push_back(std::move(action_value)); + base::Value::List actions; + actions.Append(std::move(action_value)); std::string error; bool bad_message = false;
diff --git a/chrome/browser/extensions/api/settings_private/generated_pref.cc b/chrome/browser/extensions/api/settings_private/generated_pref.cc index 5276623d..ab80d8c1 100644 --- a/chrome/browser/extensions/api/settings_private/generated_pref.cc +++ b/chrome/browser/extensions/api/settings_private/generated_pref.cc
@@ -85,7 +85,7 @@ if (!pref_object->user_selectable_values) { pref_object->user_selectable_values.emplace(); } - pref_object->user_selectable_values->push_back(base::Value(value)); + pref_object->user_selectable_values->Append(value); } } // namespace settings_private
diff --git a/chrome/browser/extensions/extension_csp_bypass_browsertest.cc b/chrome/browser/extensions/extension_csp_bypass_browsertest.cc index 7b156d86..3c6b443e 100644 --- a/chrome/browser/extensions/extension_csp_bypass_browsertest.cc +++ b/chrome/browser/extensions/extension_csp_bypass_browsertest.cc
@@ -171,10 +171,13 @@ // Second, verify that adding an iframe to the page from the extension will // succeed. Click a button whose event handler runs in the extension's world // which bypasses CSP, and adds the iframe. - EXPECT_EQ(true, content::EvalJs( - web_contents(), - "document.querySelector('#addIframeButton').click();", - content::EXECUTE_SCRIPT_USE_MANUAL_REPLY)); + content::DOMMessageQueue message_queue; + EXPECT_TRUE( + content::ExecJs(browser()->tab_strip_model()->GetActiveWebContents(), + "document.querySelector('#addIframeButton').click();")); + std::string ack; + EXPECT_TRUE(message_queue.WaitForMessage(&ack)); + EXPECT_EQ("true", ack); frame = GetFrameByName("added-by-extension"); ASSERT_TRUE(frame); EXPECT_TRUE(WasFrameWithScriptLoaded(frame));
diff --git a/chrome/browser/extensions/extension_unload_browsertest.cc b/chrome/browser/extensions/extension_unload_browsertest.cc index 753eb0b..6e9a5a70 100644 --- a/chrome/browser/extensions/extension_unload_browsertest.cc +++ b/chrome/browser/extensions/extension_unload_browsertest.cc
@@ -120,10 +120,12 @@ // extension's) Origin header - this should succeed (given that // xhr.txt.mock-http-headers says `Access-Control-Allow-Origin: *`). const char kSendXhrScript[] = "document.getElementById('xhrButton').click();"; - EXPECT_EQ(true, - content::EvalJs( - browser()->tab_strip_model()->GetActiveWebContents(), - kSendXhrScript, content::EXECUTE_SCRIPT_USE_MANUAL_REPLY)); + content::DOMMessageQueue message_queue; + EXPECT_TRUE(content::ExecJs( + browser()->tab_strip_model()->GetActiveWebContents(), kSendXhrScript)); + std::string ack; + EXPECT_TRUE(message_queue.WaitForMessage(&ack)); + EXPECT_EQ("true", ack); DisableExtension(id); @@ -136,10 +138,10 @@ // The content script sends an XHR with the webpage's (rather than // extension's) Origin header - this should succeed (given that // xhr.txt.mock-http-headers says `Access-Control-Allow-Origin: *`). - EXPECT_EQ(true, - content::EvalJs( - browser()->tab_strip_model()->GetActiveWebContents(), - kSendXhrScript, content::EXECUTE_SCRIPT_USE_MANUAL_REPLY)); + EXPECT_TRUE(content::ExecJs( + browser()->tab_strip_model()->GetActiveWebContents(), kSendXhrScript)); + EXPECT_TRUE(message_queue.WaitForMessage(&ack)); + EXPECT_EQ("true", ack); // Ensure the process has not been killed. EXPECT_TRUE(browser()
diff --git a/chrome/browser/feed/android/java/res/layout/new_tab_page_multi_feed_header.xml b/chrome/browser/feed/android/java/res/layout/new_tab_page_multi_feed_header.xml index 9c7aa0f..483e954 100644 --- a/chrome/browser/feed/android/java/res/layout/new_tab_page_multi_feed_header.xml +++ b/chrome/browser/feed/android/java/res/layout/new_tab_page_multi_feed_header.xml
@@ -45,8 +45,8 @@ android:layout_width="wrap_content" android:layout_height="@dimen/feed_header_tab_layout_height" android:layout_gravity="center" - android:layout_marginTop="8dp" - android:layout_marginBottom="8dp" + android:layout_marginTop="@dimen/feed_header_tab_list_view_top_bottom_margin" + android:layout_marginBottom="@dimen/feed_header_tab_list_view_top_bottom_margin" style="@style/NtpHeaderTabLayoutStyle" /> <TextView
diff --git a/chrome/browser/feed/android/java/res/layout/new_tab_page_multi_sticky_feed_header.xml b/chrome/browser/feed/android/java/res/layout/new_tab_page_multi_sticky_feed_header.xml index 63ea7fc8..ef116d1 100644 --- a/chrome/browser/feed/android/java/res/layout/new_tab_page_multi_sticky_feed_header.xml +++ b/chrome/browser/feed/android/java/res/layout/new_tab_page_multi_sticky_feed_header.xml
@@ -46,8 +46,8 @@ android:layout_height="@dimen/feed_header_tab_layout_height" android:layout_centerHorizontal="true" android:layout_centerVertical="true" - android:layout_marginTop="8dp" - android:layout_marginBottom="8dp" + android:layout_marginTop="@dimen/feed_header_tab_list_view_top_bottom_margin" + android:layout_marginBottom="@dimen/feed_header_tab_list_view_top_bottom_margin" style="@style/NtpHeaderTabLayoutStyle" /> <TextView
diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json index 4fdae2c..50005edb 100644 --- a/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json
@@ -2953,6 +2953,11 @@ "expiry_milestone": 120 }, { + "name": "enable-openxr-android", + "owners": [ "alcooper", "bajones", "bialpio", "xr-dev@chromium.org" ], + "expiry_milestone": 127 + }, + { "name": "enable-os-feedback", "owners": [ "xiangdongkong", "cros-feedback-app@google.com" ], "expiry_milestone": 116 @@ -4360,6 +4365,11 @@ "expiry_milestone": 116 }, { + "name": "hide-content-suggestions-tiles", + "owners": [ "adamta@google.com", "bling-flags@google.com" ], + "expiry_milestone": 120 + }, + { "name": "hide-non-displayable-account-email", "owners": [ "ddac", "chrome-kids-eng@google.com" ], "expiry_milestone": 118
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc index 730db4c..7a6d4b8 100644 --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc
@@ -3478,6 +3478,8 @@ "attached hardware."; const char kWebXrRuntimeChoiceNone[] = "No Runtime"; +const char kWebXrRuntimeChoiceCardboard[] = "Cardboard"; +const char kWebXrRuntimeChoiceGVR[] = "Google VR Services"; const char kWebXrRuntimeChoiceOpenXR[] = "OpenXR"; const char kWebXrIncubationsName[] = "WebXR Incubations"; @@ -4427,6 +4429,12 @@ const char kCormorantName[] = "Cormorant"; const char kCormorantDescription[] = "Enables the experimental Cormorant UI."; +#if BUILDFLAG(ENABLE_VR) && BUILDFLAG(ENABLE_OPENXR) +const char kOpenXRName[] = "Enable OpenXR WebXR Runtime"; +const char kOpenXRDescription[] = + "Enables the use of the OpenXR runtime to create WebXR sessions."; +#endif + // Non-Android ----------------------------------------------------------------- #else // BUILDFLAG(IS_ANDROID)
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h index 7b439a34..a0138e6 100644 --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h
@@ -1992,6 +1992,8 @@ extern const char kWebXrForceRuntimeDescription[]; extern const char kWebXrRuntimeChoiceNone[]; +extern const char kWebXrRuntimeChoiceCardboard[]; +extern const char kWebXrRuntimeChoiceGVR[]; extern const char kWebXrRuntimeChoiceOpenXR[]; extern const char kWebXrIncubationsName[]; @@ -2530,6 +2532,11 @@ extern const char kXsurfaceMetricsReportingName[]; extern const char kXsurfaceMetricsReportingDescription[]; +#if BUILDFLAG(ENABLE_VR) && BUILDFLAG(ENABLE_OPENXR) +extern const char kOpenXRName[]; +extern const char kOpenXRDescription[]; +#endif + // Non-Android ---------------------------------------------------------------- #else // !BUILDFLAG(IS_ANDROID)
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java index 7d28c0b..23232d1 100644 --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
@@ -529,7 +529,6 @@ new CachedFlag(DELAY_TEMP_STRIP_REMOVAL, true); public static final CachedFlag sDiscoverMultiColumn = new CachedFlag(FEED_MULTI_COLUMN, true); public static final CachedFlag sEarlyLibraryLoad = new CachedFlag(EARLY_LIBRARY_LOAD, true); - public static final CachedFlag sEmptyStates = new CachedFlag(EMPTY_STATES, true); public static final CachedFlag sExperimentsForAgsa = new CachedFlag(EXPERIMENTS_FOR_AGSA, true); public static final CachedFlag sFeedLoadingPlaceholder = new CachedFlag(FEED_LOADING_PLACEHOLDER, false); @@ -628,7 +627,6 @@ sDelayTempStripRemoval, sDiscoverMultiColumn, sEarlyLibraryLoad, - sEmptyStates, sFeedLoadingPlaceholder, sFoldableJankFix, sHideNonDisplayableAccountEmail,
diff --git a/chrome/browser/hid/chrome_hid_delegate_unittest.cc b/chrome/browser/hid/chrome_hid_delegate_unittest.cc index 01a3045..d87dba81 100644 --- a/chrome/browser/hid/chrome_hid_delegate_unittest.cc +++ b/chrome/browser/hid/chrome_hid_delegate_unittest.cc
@@ -793,7 +793,7 @@ } #endif - void TestConnectionTrackerOpenDeviceNoConnectionCountUpdateNoNotification() { + void TestConnectionTrackerOpenDeviceNoConnectionCountUpdate() { mojo::Remote<blink::mojom::HidService> hid_service; ConnectToService(hid_service.BindNewPipeAndPassReceiver()); auto origin = url::Origin::Create(origin_url_); @@ -1032,11 +1032,13 @@ }; #if BUILDFLAG(ENABLE_EXTENSIONS) -class EnableWebHidOnExtensionServiceWorkerHelper { +class DisableWebHidOnExtensionServiceWorkerHelper { public: - EnableWebHidOnExtensionServiceWorkerHelper() { + DisableWebHidOnExtensionServiceWorkerHelper() { scoped_feature_list_.InitWithFeatures( - {features::kEnableWebHidOnExtensionServiceWorker}, {}); + /*enabled_features=*/{}, + /*disabled_features=*/{ + features::kEnableWebHidOnExtensionServiceWorker}); } private: @@ -1046,34 +1048,44 @@ class ChromeHidDelegateExtensionServiceWorkerTest : public ChromeHidDelegateServiceWorkerTestBase { public: + ChromeHidDelegateExtensionServiceWorkerTest() { + supports_hid_connection_tracker_ = true; + } // ChromeHidTestHelper void SetUpOriginUrl() override { SetUpExtensionOriginUrl(); } }; -class ChromeHidDelegateExtensionServiceWorkerFeatureEnabledTest +class ChromeHidDelegateExtensionServiceWorkerFeatureDisabledTest : public ChromeHidDelegateExtensionServiceWorkerTest, - public EnableWebHidOnExtensionServiceWorkerHelper { + public DisableWebHidOnExtensionServiceWorkerHelper { public: - ChromeHidDelegateExtensionServiceWorkerFeatureEnabledTest() { - supports_hid_connection_tracker_ = true; + ChromeHidDelegateExtensionServiceWorkerFeatureDisabledTest() { + // There is no hid connection tracker activity when + // features::kEnableWebHidOnExtensionServiceWorker is disabled. + supports_hid_connection_tracker_ = false; } }; -class ChromeHidDelegateServiceWorkerTestFeatureEnabledTest - : public ChromeHidDelegateServiceWorkerTest, - public EnableWebHidOnExtensionServiceWorkerHelper {}; - class ChromeHidDelegateExtensionRenderFrameTest : public ChromeHidDelegateRenderFrameTestBase { public: + ChromeHidDelegateExtensionRenderFrameTest() { + supports_hid_connection_tracker_ = true; + } // ChromeHidTestHelper void SetUpOriginUrl() override { SetUpExtensionOriginUrl(); } }; -class ChromeHidDelegateExtensionRenderFrameFeatureEnabledTest +class ChromeHidDelegateExtensionRenderFrameFeatureDisabledTest : public ChromeHidDelegateExtensionRenderFrameTest, - public EnableWebHidOnExtensionServiceWorkerHelper {}; - + public DisableWebHidOnExtensionServiceWorkerHelper { + public: + ChromeHidDelegateExtensionRenderFrameFeatureDisabledTest() { + supports_hid_connection_tracker_ = false; + } + // ChromeHidTestHelper + void SetUpOriginUrl() override { SetUpExtensionOriginUrl(); } +}; #endif // BUILDFLAG(ENABLE_EXTENSIONS) } // namespace @@ -1111,7 +1123,8 @@ TestConnectAndNavigateCrossDocument(web_contents()); } -TEST_F(ChromeHidDelegateExtensionServiceWorkerTest, HidServiceNotConnected) { +TEST_F(ChromeHidDelegateExtensionServiceWorkerFeatureDisabledTest, + HidServiceNotConnected) { TestHidServiceNotConnected(); } @@ -1119,11 +1132,6 @@ TestHidServiceNotConnected(); } -TEST_F(ChromeHidDelegateServiceWorkerTestFeatureEnabledTest, - HidServiceNotConnected) { - TestHidServiceNotConnected(); -} - #if BUILDFLAG(ENABLE_EXTENSIONS) TEST_F(ChromeHidDelegateExtensionRenderFrameTest, FidoDeviceAllowedWithPrivilegedOrigin) { @@ -1164,43 +1172,37 @@ TestConnectAndNavigateCrossDocument(web_contents()); } -TEST_F(ChromeHidDelegateExtensionRenderFrameTest, +TEST_F(ChromeHidDelegateExtensionRenderFrameFeatureDisabledTest, ConnectionTrackerOpenDeviceNoIndicatorNoNotification) { - TestConnectionTrackerOpenDeviceNoConnectionCountUpdateNoNotification(); + TestConnectionTrackerOpenDeviceNoConnectionCountUpdate(); } -TEST_F(ChromeHidDelegateExtensionServiceWorkerFeatureEnabledTest, - AddChangeRemoveDevice) { +TEST_F(ChromeHidDelegateExtensionServiceWorkerTest, AddChangeRemoveDevice) { TestAddChangeRemoveDevice(); } -TEST_F(ChromeHidDelegateExtensionServiceWorkerFeatureEnabledTest, - NoPermissionDevice) { +TEST_F(ChromeHidDelegateExtensionServiceWorkerTest, NoPermissionDevice) { TestNoPermissionDevice(); } -TEST_F(ChromeHidDelegateExtensionServiceWorkerFeatureEnabledTest, - ReconnectHidService) { +TEST_F(ChromeHidDelegateExtensionServiceWorkerTest, ReconnectHidService) { TestReconnectHidService(); } -TEST_F(ChromeHidDelegateExtensionServiceWorkerFeatureEnabledTest, - RevokeDevicePermission) { +TEST_F(ChromeHidDelegateExtensionServiceWorkerTest, RevokeDevicePermission) { TestRevokeDevicePermission(); } -TEST_F(ChromeHidDelegateExtensionServiceWorkerFeatureEnabledTest, +TEST_F(ChromeHidDelegateExtensionServiceWorkerTest, RevokeDevicePermissionEphemeral) { TestRevokeDevicePermissionEphemeral(); } -TEST_F(ChromeHidDelegateExtensionServiceWorkerFeatureEnabledTest, - ConnectAndDisconnect) { +TEST_F(ChromeHidDelegateExtensionServiceWorkerTest, ConnectAndDisconnect) { TestConnectAndDisconnect(/*web_contents=*/nullptr); } -TEST_F(ChromeHidDelegateExtensionServiceWorkerFeatureEnabledTest, - ConnectAndRemove) { +TEST_F(ChromeHidDelegateExtensionServiceWorkerTest, ConnectAndRemove) { TestConnectAndRemove(/*web_contents=*/nullptr); } #endif // BUILDFLAG(ENABLE_EXTENSIONS)
diff --git a/chrome/browser/hid/hid_browsertest.cc b/chrome/browser/hid/hid_browsertest.cc index 1ac336b..8ed93be8 100644 --- a/chrome/browser/hid/hid_browsertest.cc +++ b/chrome/browser/hid/hid_browsertest.cc
@@ -244,16 +244,6 @@ #endif // BUILDFLAG(IS_CHROMEOS_ASH) }; -// Test fixture with kEnableWebHidOnExtensionServiceWorker enabled. -class WebHidExtensionFeatureEnabledBrowserTest - : public WebHidExtensionBrowserTest { - public: - WebHidExtensionFeatureEnabledBrowserTest() { - scoped_feature_list_.InitWithFeatures( - {features::kEnableWebHidOnExtensionServiceWorker}, {}); - } -}; - // Test fixture with kEnableWebHidOnExtensionServiceWorker disabled. class WebHidExtensionFeatureDisabledBrowserTest : public WebHidExtensionBrowserTest { @@ -264,24 +254,6 @@ } }; -IN_PROC_BROWSER_TEST_F(WebHidExtensionBrowserTest, FeatureDefaultDisabled) { - extensions::TestExtensionDir test_dir; - - constexpr char kBackgroundJs[] = R"( - chrome.test.sendMessage("ready", async () => { - try { - chrome.test.assertEq(navigator.hid, undefined); - chrome.test.notifyPass(); - - } catch (e) { - chrome.test.fail(e.name + ':' + e.message); - } - }); - )"; - - LoadExtensionAndRunTest(kBackgroundJs); -} - IN_PROC_BROWSER_TEST_F(WebHidExtensionFeatureDisabledBrowserTest, FeatureDisabled) { extensions::TestExtensionDir test_dir; @@ -301,7 +273,7 @@ LoadExtensionAndRunTest(kBackgroundJs); } -IN_PROC_BROWSER_TEST_F(WebHidExtensionFeatureEnabledBrowserTest, GetDevices) { +IN_PROC_BROWSER_TEST_F(WebHidExtensionBrowserTest, GetDevices) { extensions::TestExtensionDir test_dir; auto device = CreateTestDeviceWithInputAndOutputReports(); @@ -322,8 +294,7 @@ LoadExtensionAndRunTest(kBackgroundJs); } -IN_PROC_BROWSER_TEST_F(WebHidExtensionFeatureEnabledBrowserTest, - RequestDevice) { +IN_PROC_BROWSER_TEST_F(WebHidExtensionBrowserTest, RequestDevice) { extensions::TestExtensionDir test_dir; constexpr char kBackgroundJs[] = R"( @@ -340,8 +311,7 @@ LoadExtensionAndRunTest(kBackgroundJs); } -IN_PROC_BROWSER_TEST_F(WebHidExtensionFeatureEnabledBrowserTest, - HidConnectionTracker) { +IN_PROC_BROWSER_TEST_F(WebHidExtensionBrowserTest, HidConnectionTracker) { auto device = CreateTestDeviceWithInputAndOutputReports(); hid_manager()->AddDevice(std::move(device));
diff --git a/chrome/browser/lacros/standalone_browser_test_controller.cc b/chrome/browser/lacros/standalone_browser_test_controller.cc index 7b85174..173aeceb 100644 --- a/chrome/browser/lacros/standalone_browser_test_controller.cc +++ b/chrome/browser/lacros/standalone_browser_test_controller.cc
@@ -180,6 +180,7 @@ auto info = std::make_unique<WebAppInstallInfo>(); info->start_url = GURL(sub_app_start_url); info->parent_app_id = parent_app_id; + info->title = u"Test Web App"; Profile* profile = ProfileManager::GetPrimaryUserProfile(); auto* provider = web_app::WebAppProvider::GetForWebApps(profile);
diff --git a/chrome/browser/metrics/desktop_session_duration/chrome_visibility_observer_interactive_uitest.cc b/chrome/browser/metrics/desktop_session_duration/chrome_visibility_observer_interactive_uitest.cc index 440d138..293a1ec 100644 --- a/chrome/browser/metrics/desktop_session_duration/chrome_visibility_observer_interactive_uitest.cc +++ b/chrome/browser/metrics/desktop_session_duration/chrome_visibility_observer_interactive_uitest.cc
@@ -15,6 +15,10 @@ #include "content/public/test/browser_test.h" #include "content/public/test/test_utils.h" +#if BUILDFLAG(IS_MAC) +#include "base/mac/mac_util.h" +#endif + namespace metrics { // Test class for |ChromeVisibilityObserver|. class ChromeVisibilityObserverInteractiveTest @@ -63,6 +67,12 @@ // separate sessions or not. IN_PROC_BROWSER_TEST_F(ChromeVisibilityObserverInteractiveTest, VisibilityTest) { +#if BUILDFLAG(IS_MAC) + if (base::mac::IsAtLeastOS13()) { + GTEST_SKIP() << "Broken on macOS 13: https://crbug.com/1447844"; + } +#endif + // Observer should now be active as there is one active browser. WaitForActive(/*active=*/true);
diff --git a/chrome/browser/new_tab_page/modules/history_clusters/history_clusters_module_service.cc b/chrome/browser/new_tab_page/modules/history_clusters/history_clusters_module_service.cc index 079148e..cbb89e7e 100644 --- a/chrome/browser/new_tab_page/modules/history_clusters/history_clusters_module_service.cc +++ b/chrome/browser/new_tab_page/modules/history_clusters/history_clusters_module_service.cc
@@ -190,6 +190,11 @@ in_progress_query_clusters_tasks_.erase(pending_task_id); + // Within each cluster, sort visits. + for (auto& cluster : clusters) { + history_clusters::StableSortVisits(cluster.visits); + } + // Do additional filtering on clusters. history_clusters::CoalesceRelatedSearches(clusters); @@ -291,11 +296,6 @@ return; } - // Within each cluster, sort visits. - for (auto& cluster : clusters) { - history_clusters::StableSortVisits(cluster.visits); - } - if (module_ranker_) { module_ranker_->RankClusters( std::move(clusters),
diff --git a/chrome/browser/new_tab_page/modules/history_clusters/history_clusters_module_service_unittest.cc b/chrome/browser/new_tab_page/modules/history_clusters/history_clusters_module_service_unittest.cc index 31fbfed..4ad8ba88 100644 --- a/chrome/browser/new_tab_page/modules/history_clusters/history_clusters_module_service_unittest.cc +++ b/chrome/browser/new_tab_page/modules/history_clusters/history_clusters_module_service_unittest.cc
@@ -162,7 +162,16 @@ sample_non_srp_visit.score = 0.9; std::vector<history::ClusterVisit> visits; - visits.insert(visits.end(), srp_visits, sample_srp_visit); + if (srp_visits > 0) { + for (size_t i = 0; i < (srp_visits - 1u); i++) { + history::ClusterVisit sample_srp_visit_modified = sample_srp_visit; + sample_srp_visit.url_for_display = + u"https://default-engine.com/search?q=not+top+search"; + sample_srp_visit.score = 0.3; + visits.push_back(sample_srp_visit_modified); + } + visits.push_back(sample_srp_visit); + } visits.insert(visits.end(), non_srp_visits, sample_non_srp_visit); std::string kSampleLabel = "LabelOne";
diff --git a/chrome/browser/performance_timeline_browsertest.cc b/chrome/browser/performance_timeline_browsertest.cc index 82ac94eb..83eeff2 100644 --- a/chrome/browser/performance_timeline_browsertest.cc +++ b/chrome/browser/performance_timeline_browsertest.cc
@@ -56,10 +56,13 @@ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), test_url)); // fetch resource from extension. - EXPECT_EQ(true, content::EvalJs( - web_contents(), - "document.querySelector('#fetchResourceButton').click();", - content::EXECUTE_SCRIPT_USE_MANUAL_REPLY)); + content::DOMMessageQueue message_queue; + EXPECT_TRUE(content::ExecJs( + web_contents(), + "document.querySelector('#fetchResourceButton').click();")); + std::string ack; + EXPECT_TRUE(message_queue.WaitForMessage(&ack)); + EXPECT_EQ("true", ack); // There should be 0 resource entry emitted. EXPECT_EQ(content::EvalJs(web_contents(), "getResourceTimingEntryCount();")
diff --git a/chrome/browser/policy/configuration_policy_handler_list_factory.cc b/chrome/browser/policy/configuration_policy_handler_list_factory.cc index a4c3144..eacae03 100644 --- a/chrome/browser/policy/configuration_policy_handler_list_factory.cc +++ b/chrome/browser/policy/configuration_policy_handler_list_factory.cc
@@ -827,6 +827,9 @@ { key::kEncryptedClientHelloEnabled, prefs::kEncryptedClientHelloEnabled, base::Value::Type::BOOLEAN }, + { key::kRSAKeyUsageForLocalAnchorsEnabled, + prefs::kRSAKeyUsageForLocalAnchorsEnabled, + base::Value::Type::BOOLEAN }, { key::kSSLErrorOverrideAllowed, prefs::kSSLErrorOverrideAllowed, base::Value::Type::BOOLEAN },
diff --git a/chrome/browser/policy/policy_network_browsertest.cc b/chrome/browser/policy/policy_network_browsertest.cc index 9bb7efd..e183834 100644 --- a/chrome/browser/policy/policy_network_browsertest.cc +++ b/chrome/browser/policy/policy_network_browsertest.cc
@@ -46,12 +46,20 @@ std::u16string title; }; - bool StartTestServer(const net::SSLServerConfig ssl_config) { + bool StartTestServer(const net::SSLServerConfig& ssl_config) { https_server_.SetSSLConfig(net::EmbeddedTestServer::CERT_OK, ssl_config); https_server_.ServeFilesFromSourceDirectory("chrome/test/data"); return https_server_.Start(); } + bool StartTestServer( + const net::EmbeddedTestServer::ServerCertificateConfig& cert_config, + const net::SSLServerConfig& ssl_config) { + https_server_.SetSSLConfig(cert_config, ssl_config); + https_server_.ServeFilesFromSourceDirectory("chrome/test/data"); + return https_server_.Start(); + } + bool GetBooleanPref(const std::string& pref_name) { return g_browser_process->local_state()->GetBoolean(pref_name); } @@ -341,4 +349,104 @@ EXPECT_EQ(u"Title Of More Awesomeness", result.title); } +class RSAKeyUsageDisabledPolicyTest : public SSLPolicyTest { + public: + RSAKeyUsageDisabledPolicyTest() { + scoped_feature_list_.InitAndDisableFeature( + net::features::kRSAKeyUsageForLocalAnchors); + } + + private: + base::test::ScopedFeatureList scoped_feature_list_; +}; + +IN_PROC_BROWSER_TEST_F(RSAKeyUsageDisabledPolicyTest, RSAKeyUsagePolicy) { + net::EmbeddedTestServer::ServerCertificateConfig cert_config; + cert_config.key_usages = {net::KEY_USAGE_BIT_KEY_ENCIPHERMENT}; + net::SSLServerConfig ssl_config; + ssl_config.version_max = net::SSL_PROTOCOL_VERSION_TLS1_2; + // 0xc02f is TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, which expects the + // digitalSignature key usage bit. + ssl_config.cipher_suite_for_testing = 0xc02f; + ASSERT_TRUE(StartTestServer(cert_config, ssl_config)); + + // By default, key usage is not checked by feature flag. + LoadResult result = LoadPage("/title2.html?1"); + EXPECT_TRUE(result.success); + EXPECT_EQ(u"Title Of Awesomeness", result.title); + + // Enable the check by policy. + PolicyMap policies; + SetPolicy(&policies, key::kRSAKeyUsageForLocalAnchorsEnabled, + base::Value(true)); + UpdateProviderPolicy(policies); + content::FlushNetworkServiceInstanceForTesting(); + + // The page load should now fail. + EXPECT_TRUE(GetBooleanPref(prefs::kRSAKeyUsageForLocalAnchorsEnabled)); + result = LoadPage("/title2.html?2"); + EXPECT_FALSE(result.success); + + // Disable the check by policy. + SetPolicy(&policies, key::kRSAKeyUsageForLocalAnchorsEnabled, + base::Value(false)); + UpdateProviderPolicy(policies); + content::FlushNetworkServiceInstanceForTesting(); + + // The page load should succeed again. + result = LoadPage("/title2.html?3"); + EXPECT_TRUE(result.success); + EXPECT_EQ(u"Title Of Awesomeness", result.title); +} + +class RSAKeyUsageEnabledPolicyTest : public SSLPolicyTest { + public: + RSAKeyUsageEnabledPolicyTest() { + scoped_feature_list_.InitAndEnableFeature( + net::features::kRSAKeyUsageForLocalAnchors); + } + + private: + base::test::ScopedFeatureList scoped_feature_list_; +}; + +IN_PROC_BROWSER_TEST_F(RSAKeyUsageEnabledPolicyTest, RSAKeyUsagePolicy) { + net::EmbeddedTestServer::ServerCertificateConfig cert_config; + cert_config.key_usages = {net::KEY_USAGE_BIT_KEY_ENCIPHERMENT}; + net::SSLServerConfig ssl_config; + ssl_config.version_max = net::SSL_PROTOCOL_VERSION_TLS1_2; + // 0xc02f is TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, which expects the + // digitalSignature key usage bit. + ssl_config.cipher_suite_for_testing = 0xc02f; + ASSERT_TRUE(StartTestServer(cert_config, ssl_config)); + + // By default, key usage is checked by feature flag. + LoadResult result = LoadPage("/title2.html?1"); + EXPECT_FALSE(result.success); + + // Disable the check by policy. + PolicyMap policies; + SetPolicy(&policies, key::kRSAKeyUsageForLocalAnchorsEnabled, + base::Value(false)); + UpdateProviderPolicy(policies); + content::FlushNetworkServiceInstanceForTesting(); + + // The page load should now succeed. + EXPECT_FALSE(GetBooleanPref(prefs::kRSAKeyUsageForLocalAnchorsEnabled)); + result = LoadPage("/title2.html?2"); + EXPECT_TRUE(result.success); + EXPECT_EQ(u"Title Of Awesomeness", result.title); + + // Enable the check by policy. + SetPolicy(&policies, key::kRSAKeyUsageForLocalAnchorsEnabled, + base::Value(true)); + UpdateProviderPolicy(policies); + content::FlushNetworkServiceInstanceForTesting(); + + // The page load should fail again. + EXPECT_TRUE(GetBooleanPref(prefs::kRSAKeyUsageForLocalAnchorsEnabled)); + result = LoadPage("/title2.html?3"); + EXPECT_FALSE(result.success); +} + } // namespace policy
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc index 9aa9afc..ffc921a 100644 --- a/chrome/browser/prefs/browser_prefs.cc +++ b/chrome/browser/prefs/browser_prefs.cc
@@ -848,6 +848,12 @@ "accessibility.screen_ai.scheduled_deletion_time"; #endif +// Deprecated 05/2023. +#if BUILDFLAG(IS_CHROMEOS_ASH) +const char kEventRemappedToRightClick[] = + "ash.settings.event_remapped_to_right_click"; +#endif + // Register local state used only for migration (clearing or moving to a new // key). void RegisterLocalStatePrefsForMigration(PrefRegistrySimple* registry) { @@ -1185,6 +1191,11 @@ #if BUILDFLAG(IS_CHROMEOS_ASH) registry->RegisterStringPref(kSamlPasswordSyncToken, std::string()); #endif // BUILDFLAG(IS_CHROMEOS_ASH) + +// Deprecated 05/2023. +#if BUILDFLAG(IS_CHROMEOS_ASH) + registry->RegisterBooleanPref(kEventRemappedToRightClick, false); +#endif // BUILDFLAG(IS_CHROMEOS_ASH) } } // namespace @@ -2248,6 +2259,11 @@ #endif // BUILDFLAG(IS_CHROMEOS_ASH) // Added 05/2023. +#if BUILDFLAG(IS_CHROMEOS_ASH) + profile_prefs->ClearPref(kEventRemappedToRightClick); +#endif // BUILDFLAG(IS_CHROMEOS_ASH) + +// Added 05/2023. #if BUILDFLAG(IS_ANDROID) profile_prefs->ClearPref(kTimesUPMAuthErrorShown); #endif // BUILDFLAG(IS_ANDROID)
diff --git a/chrome/browser/renderer_context_menu/render_view_context_menu.cc b/chrome/browser/renderer_context_menu/render_view_context_menu.cc index 7e25c4f..84517b5 100644 --- a/chrome/browser/renderer_context_menu/render_view_context_menu.cc +++ b/chrome/browser/renderer_context_menu/render_view_context_menu.cc
@@ -3563,7 +3563,7 @@ menu_model_.AddItemWithIcon( IDC_SEND_TAB_TO_SELF, l10n_util::GetStringUTF16(IDS_MENU_SEND_TAB_TO_SELF), - ui::ImageModel::FromVectorIcon(kLaptopAndSmartphoneIcon)); + ui::ImageModel::FromVectorIcon(kDevicesIcon)); #endif }
diff --git a/chrome/browser/resources/chromeos/login/BUILD.gn b/chrome/browser/resources/chromeos/login/BUILD.gn index edb9b2e..b454940 100644 --- a/chrome/browser/resources/chromeos/login/BUILD.gn +++ b/chrome/browser/resources/chromeos/login/BUILD.gn
@@ -216,6 +216,7 @@ "display_manager.js", "install_oobe_error_store.js", "i18n_setup.js", + "lazy_load_screens.js", "login_ui_tools.js", "multi_tap_detector.js", "oobe.css", @@ -225,6 +226,7 @@ "oobe_screen.css", "oobe_trace.js", "oobe_trace_start.js", + "priority_screens_oobe_flow.js", "screens.js", ] }
diff --git a/chrome/browser/resources/chromeos/login/lazy_load_screens.js b/chrome/browser/resources/chromeos/login/lazy_load_screens.js new file mode 100644 index 0000000..7fa8555 --- /dev/null +++ b/chrome/browser/resources/chromeos/login/lazy_load_screens.js
@@ -0,0 +1,62 @@ +// Copyright 2023 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +import { assert } from '//resources/ash/common/assert.js'; + +import {loadTimeData} from './i18n_setup.js'; +import {addScreensToMainContainer} from './login_ui_tools.js'; +import {TraceEvent, traceExecution} from './oobe_trace.js'; +import {commonScreensList, loginScreensList, oobeScreensList} from './screens.js'; + +// Add OOBE or LOGIN screens to the document. +const isOobeFlow = loadTimeData.getBoolean('isOobeFlow'); +const flowSpecificScreensList = isOobeFlow ? oobeScreensList : loginScreensList; +const lazyLoadingEnabled = loadTimeData.getBoolean('isOobeLazyLoadingEnabled'); + +if (lazyLoadingEnabled) { + addScreensAsync(); +} else { + addScreensSynchronously(); +} + +/** + * Add screens to the document synchronously, blocking the main thread. + */ +function addScreensSynchronously() { + addScreensToMainContainer(commonScreensList); + traceExecution(TraceEvent.COMMON_SCREENS_ADDED); + addScreensToMainContainer(flowSpecificScreensList); + traceExecution(TraceEvent.REMAINING_SCREENS_ADDED); + document.dispatchEvent(new CustomEvent('oobe-screens-loaded')); +} + +/** + * Add screens to the document asynchronously. Follows the same sequence logical + * sequence as its synchronous counterpart. However, instead of blocking the + * main thread, the actual adding of the screens are done via scheduling tasks. + */ +function addScreensAsync() { + if (commonScreensList.length > 0) { + const nextScreens = commonScreensList.pop(); + addScreensToMainContainer([nextScreens]); + setTimeout(addScreensAsync, 0); + + if (commonScreensList.length == 0) { + traceExecution(TraceEvent.COMMON_SCREENS_ADDED); + } + } else if (flowSpecificScreensList.length > 0) { + const nextScreens = flowSpecificScreensList.pop(); + addScreensToMainContainer([nextScreens]); + + if (flowSpecificScreensList.length > 0) { + setTimeout(addScreensAsync, 0); + } else { + traceExecution(TraceEvent.REMAINING_SCREENS_ADDED); + document.dispatchEvent(new CustomEvent('oobe-screens-loaded')); + // Finished + } + } else { + assert(false, 'NOTREACHED()'); + } +}
diff --git a/chrome/browser/resources/chromeos/login/oobe.html b/chrome/browser/resources/chromeos/login/oobe.html index 071b5cf..6b7d78c2 100644 --- a/chrome/browser/resources/chromeos/login/oobe.html +++ b/chrome/browser/resources/chromeos/login/oobe.html
@@ -22,6 +22,7 @@ <script type="module" src="./install_oobe_error_store.js"></script> <!-- OOBE Start Script --> + <link rel="modulepreload" href="chrome://oobe/screens.js"> <script type="module" src="./oobe.js"></script> </head> <custom-style>
diff --git a/chrome/browser/resources/chromeos/login/oobe.js b/chrome/browser/resources/chromeos/login/oobe.js index 7a9b918..bfd03a6e 100644 --- a/chrome/browser/resources/chromeos/login/oobe.js +++ b/chrome/browser/resources/chromeos/login/oobe.js
@@ -9,24 +9,23 @@ // clang-format on - import {assert} from '//resources/ash/common/assert.js'; import {$} from '//resources/ash/common/util.js'; import {refreshColorCss, startColorChangeUpdater} from '//resources/cr_components/color_change_listener/colors_css_updater.js'; +import {getTrustedScriptURL} from '//resources/js/static_types.js'; import {Oobe} from './cr_ui.js'; import * as OobeDebugger from './debug/debug.js'; import * as QuickStartDebugger from './debug/quick_start_debugger.js'; import * as OobeTestApi from './test_api/test_api.js'; import {loadTimeData} from './i18n_setup.js'; -import { addScreensToMainContainer } from './login_ui_tools.js'; +import {addScreensToMainContainer} from './login_ui_tools.js'; import {MultiTapDetector} from './multi_tap_detector.js'; -import { TraceEvent, traceExecution } from './oobe_trace.js'; -import {commonScreensList, loginScreensList, oobeScreensList} from './screens.js'; +import {TraceEvent, traceExecution} from './oobe_trace.js'; +import {priorityOobeScreenList} from './priority_screens_oobe_flow.js'; // Everything has been imported at this point. traceExecution(TraceEvent.FIRST_LINE_AFTER_IMPORTS); -chrome.send('initializeCoreHandler'); // Create the global values attached to `window` that are used // for accessing OOBE controls from the browser side. @@ -91,27 +90,63 @@ traceExecution(TraceEvent.OOBE_INITIALIZED); } +function initAfterDomLoaded() { + document.removeEventListener('oobe-screens-loaded', initAfterDomLoaded); + if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', initializeOobe); + } else { + initializeOobe(); + } +} + +/** + * Adds a separate script to the page that imports most of the screens used + * during OOBE. Once this script finishes, it fires the 'oobe-screens-loaded' + * event, which is then handled by |initAfterDomLoaded| function. This function + * fires the |priorityScreensLoaded| signal which is used to notify the browser + * that critical screens (Welcome) have been added to the document. + */ +function lazyLoadOobe() { + chrome.send('priorityScreensLoaded'); + document.addEventListener('oobe-screens-loaded', initAfterDomLoaded); + const script = document.createElement('script'); + script.type = 'module'; + script.src = getTrustedScriptURL`./lazy_load_screens.js`; + document.body.appendChild(script); +} + /** * ----------- OOBE Execution Begins ----------- + * |startOobe| is the main entry point for OOBE and it is invoked at the bottom + * of this file. Depending on the flow (OOBE vs. LOGIN) the following steps are + * performed: + * + * OOBE: + * 1. Add priority screens (Only 'Welcome' at this time) to the HTML document. + * 2. Jump to |lazyLoadOobe| which will add the remaining screens using a + * separate script and trigger the 'oobe-screens-loaded' event. + * 3. The 'oobe-screens-loaded' event is then handled by |initAfterDomLoaded|, + * which calls |initializeOobe|. + * + * LOGIN: + * For the 'login' flow, the steps are almost the same, with the only exception + * that there are no priority screens to be added, so it jumps immediately to + * step (2) and skips step (1). */ function startOobe() { // Ensure that there is a global error listener when OOBE starts. // This error listener is added in the main HTML document. assert(window.OobeErrorStore, 'OobeErrorStore not present on global object!'); + chrome.send('initializeCoreHandler'); + // Update localized strings at the document level. Oobe.updateDocumentLocalizedStrings(); prepareGlobalValues(); - // Add common screens to the document. - addScreensToMainContainer(commonScreensList); - traceExecution(TraceEvent.COMMON_SCREENS_ADDED); - // Add OOBE or LOGIN screens to the document. const isOobeFlow = loadTimeData.getBoolean('isOobeFlow'); - addScreensToMainContainer(isOobeFlow ? oobeScreensList : loginScreensList); - traceExecution(TraceEvent.REMAINING_SCREENS_ADDED); // The default is to have the class 'oobe-display' in <body> for the OOBE // flow. For the 'Add Person' flow, we remove it. @@ -123,10 +158,16 @@ 'The body of the document must contain oobe-display as a class for the OOBE flow!'); } + // For the OOBE flow, we prioritize the loading of the Welcome screen. + if (isOobeFlow) { + addScreensToMainContainer(priorityOobeScreenList); + traceExecution(TraceEvent.PRIORITY_SCREENS_ADDED); + } + if (document.readyState === 'loading') { - document.addEventListener('DOMContentLoaded', initializeOobe); + document.addEventListener('DOMContentLoaded', lazyLoadOobe); } else { - initializeOobe(); + lazyLoadOobe(); } }
diff --git a/chrome/browser/resources/chromeos/login/oobe_trace.js b/chrome/browser/resources/chromeos/login/oobe_trace.js index 0598321..c7f912a 100644 --- a/chrome/browser/resources/chromeos/login/oobe_trace.js +++ b/chrome/browser/resources/chromeos/login/oobe_trace.js
@@ -33,6 +33,7 @@ export const TraceEvent = { FIRST_INSTRUCTION: 'FIRST_INSTRUCTION', FIRST_LINE_AFTER_IMPORTS: 'FIRST_LINE_AFTER_IMPORTS', + PRIORITY_SCREENS_ADDED: 'PRIORITY_SCREENS_ADDED', COMMON_SCREENS_ADDED: 'COMMON_SCREENS_ADDED', REMAINING_SCREENS_ADDED: 'REMAINING_SCREENS_ADDED', DOM_CONTENT_LOADED: 'DOM_CONTENT_LOADED', @@ -127,6 +128,7 @@ const EventPrintOrder = [ TraceEvent.FIRST_INSTRUCTION, TraceEvent.FIRST_LINE_AFTER_IMPORTS, + TraceEvent.PRIORITY_SCREENS_ADDED, TraceEvent.COMMON_SCREENS_ADDED, TraceEvent.REMAINING_SCREENS_ADDED, TraceEvent.DOM_CONTENT_LOADED,
diff --git a/chrome/browser/resources/chromeos/login/priority_screens_oobe_flow.js b/chrome/browser/resources/chromeos/login/priority_screens_oobe_flow.js new file mode 100644 index 0000000..934facb --- /dev/null +++ b/chrome/browser/resources/chromeos/login/priority_screens_oobe_flow.js
@@ -0,0 +1,9 @@ +// Copyright 2023 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +import './screens/oobe/welcome.js'; + +export const priorityOobeScreenList = [ + {tag: 'oobe-welcome-element', id: 'connect'}, +];
diff --git a/chrome/browser/resources/chromeos/login/screens.js b/chrome/browser/resources/chromeos/login/screens.js index 6fc1750..a588850 100644 --- a/chrome/browser/resources/chromeos/login/screens.js +++ b/chrome/browser/resources/chromeos/login/screens.js
@@ -67,7 +67,6 @@ import './screens/oobe/packaged_license.js'; import './screens/oobe/quick_start.js'; import './screens/oobe/update.js'; -import './screens/oobe/welcome.js'; /** * List of screens that are used for both `oobe` and `login` flows. @@ -185,5 +184,4 @@ {tag: 'packaged-license-element', id: 'packaged-license'}, {tag: 'quick-start-element', id: 'quick-start'}, {tag: 'update-element', id: 'oobe-update'}, - {tag: 'oobe-welcome-element', id: 'connect'}, ];
diff --git a/chrome/browser/resources/chromeos/login/screens/oobe/welcome.js b/chrome/browser/resources/chromeos/login/screens/oobe/welcome.js index cd2b96c6..c1ed5e4 100644 --- a/chrome/browser/resources/chromeos/login/screens/oobe/welcome.js +++ b/chrome/browser/resources/chromeos/login/screens/oobe/welcome.js
@@ -9,6 +9,7 @@ import '//resources/cr_elements/cr_input/cr_input.js'; import '//resources/cr_elements/cr_shared_vars.css.js'; import '//resources/polymer/v3_0/iron-icon/iron-icon.js'; +import '../../components/oobe_a11y_option.js'; import '../../components/oobe_icons.html.js'; import '../../components/oobe_i18n_dropdown.js'; import '../../components/common_styles/oobe_common_styles.css.js';
diff --git a/chrome/browser/resources/chromeos/login/screens/oobe/welcome_dialog.html b/chrome/browser/resources/chromeos/login/screens/oobe/welcome_dialog.html index aba47b8..5f14f8f 100644 --- a/chrome/browser/resources/chromeos/login/screens/oobe/welcome_dialog.html +++ b/chrome/browser/resources/chromeos/login/screens/oobe/welcome_dialog.html
@@ -52,6 +52,14 @@ grid-template-columns: auto; } + #getStarted[disabled] { + opacity: 0; + } + + #getStarted { + transition: opacity 250ms linear 0ms; + } + #buttons { grid-column: 1 / span 1; grid-row: 1 / span 1; @@ -125,6 +133,7 @@ :host-context(.simon-enabled) #title { font-size: 52px; line-height: 60px; + margin-bottom: 48px; margin-top: auto; } @@ -135,11 +144,6 @@ line-height: 32px; margin-top: 16px; } - :host-context(.simon-enabled) #subtitle { - font-size: 22px; - line-height: 28px; - margin-top: 24px; - } :host-context([orientation='horizontal']) #subtitle { margin-bottom: 64px; @@ -147,9 +151,6 @@ :host-context([orientation='vertical']) #subtitle { margin-bottom: 40px; } - :host-context(.simon-enabled) #subtitle { - margin-bottom: 56px; - } .welcome-header-text { font-weight: var(--oobe-welcome-header-font-weight); @@ -170,9 +171,11 @@ <h1 id="title" class="welcome-header-text"> [[i18nDynamic(locale, 'welcomeScreenGreeting')]] </h1> - <div id="subtitle" class="welcome-header-text"> - [[i18nDynamic(locale, 'welcomeScreenGreetingSubtitle')]] - </div> + <template is="dom-if" if="[[!isSimon_]]"> + <div id="subtitle" class="welcome-header-text"> + [[i18nDynamic(locale, 'welcomeScreenGreetingSubtitle')]] + </div> + </template> <div id="content"> <div id="buttons" class="layout vertical"> <oobe-icon-button
diff --git a/chrome/browser/resources/chromeos/login/screens/oobe/welcome_dialog.js b/chrome/browser/resources/chromeos/login/screens/oobe/welcome_dialog.js index d7590d0..98fe29b0e 100644 --- a/chrome/browser/resources/chromeos/login/screens/oobe/welcome_dialog.js +++ b/chrome/browser/resources/chromeos/login/screens/oobe/welcome_dialog.js
@@ -8,6 +8,7 @@ import '../../components/oobe_icons.html.js'; import '../../components/common_styles/oobe_dialog_host_styles.css.js'; import '../../components/oobe_vars/oobe_shared_vars.css.js'; +import '../../components/buttons/oobe_icon_button.js'; import {assert} from '//resources/ash/common/assert.js'; import {loadTimeData} from '//resources/ash/common/load_time_data.m.js'; @@ -123,10 +124,34 @@ this.isQuickStartEnabled = false; } + ready() { + super.ready(); + if (loadTimeData.getBoolean('isOobeLazyLoadingEnabled')) { + // Disable the 'Get Started' & 'Enable Debugging' button until OOBE is + // fully initialized. + this.$.getStarted.disabled = true; + this.$.enableDebuggingButton.disabled = true; + document.addEventListener( + 'oobe-screens-loaded', this.enableButtonsWhenLoaded.bind(this)); + } + } + onBeforeShow() { this.setVideoPlay_(true); } + /** + * Since we prioritize the showing of the the Welcome Screen, it becomes + * visible before the remaining of the OOBE flow is fully loaded. For this + * reason, we listen to the |oobe-screens-loaded| signal and enable it. + */ + enableButtonsWhenLoaded(e) { + document.removeEventListener( + 'oobe-screens-loaded', this.enableButtonsWhenLoaded.bind(this)); + this.$.getStarted.disabled = false; + this.$.enableDebuggingButton.disabled = false; + } + onLanguageClicked_(e) { this.focusedElement_ = 'languageSelectionButton'; this.dispatchEvent(new CustomEvent('language-button-clicked', {
diff --git a/chrome/browser/resources/new_tab_page/modules/history_clusters/suggest_tile.html b/chrome/browser/resources/new_tab_page/modules/history_clusters/suggest_tile.html index 25c2474..c2b3244 100644 --- a/chrome/browser/resources/new_tab_page/modules/history_clusters/suggest_tile.html +++ b/chrome/browser/resources/new_tab_page/modules/history_clusters/suggest_tile.html
@@ -44,7 +44,7 @@ -webkit-mask-position: center; -webkit-mask-repeat: no-repeat; -webkit-mask-size: 20px; - background-color: var(--color-new-tab-page-primary-foreground); + background-color: var(--color-new-tab-page-secondary-foreground); background-position: center center; background-repeat: no-repeat; background-size: 20px;
diff --git a/chrome/browser/resources/new_tab_page/modules/history_clusters/tile.html b/chrome/browser/resources/new_tab_page/modules/history_clusters/tile.html index 51048ec..74f9f5a0 100644 --- a/chrome/browser/resources/new_tab_page/modules/history_clusters/tile.html +++ b/chrome/browser/resources/new_tab_page/modules/history_clusters/tile.html
@@ -71,6 +71,7 @@ } #icon { + background: white; height: 16px; margin-inline-end: 8px; width: 16px;
diff --git a/chrome/browser/resources/settings/chromeos/internet_page/hotspot_summary_item.ts b/chrome/browser/resources/settings/chromeos/internet_page/hotspot_summary_item.ts index dd21b50..c7ab4d8 100644 --- a/chrome/browser/resources/settings/chromeos/internet_page/hotspot_summary_item.ts +++ b/chrome/browser/resources/settings/chromeos/internet_page/hotspot_summary_item.ts
@@ -31,7 +31,7 @@ Constructor<PolymerElement&I18nMixinInterface& CrPolicyNetworkBehaviorMojoInterface>; -class HotspotSummaryItemElement extends HotspotSummaryItemElementBase { +export class HotspotSummaryItemElement extends HotspotSummaryItemElementBase { static get is() { return 'hotspot-summary-item' as const; }
diff --git a/chrome/browser/resources/settings/chromeos/kerberos_page/kerberos_add_account_dialog.ts b/chrome/browser/resources/settings/chromeos/kerberos_page/kerberos_add_account_dialog.ts index 5a83914..94ecbee 100644 --- a/chrome/browser/resources/settings/chromeos/kerberos_page/kerberos_add_account_dialog.ts +++ b/chrome/browser/resources/settings/chromeos/kerberos_page/kerberos_add_account_dialog.ts
@@ -42,8 +42,8 @@ } /** - * The default placeholder that is shown in the username field - * of authentication dialog. + * The default placeholder that is shown in the username field of the + * authentication dialog. */ const DEFAULT_USERNAME_PLACEHOLDER: string = 'user@example.com'; @@ -95,11 +95,6 @@ value: '', }, - rememberPassword_: { - type: Boolean, - value: false, - }, - generalErrorText_: { type: String, value: '', @@ -136,7 +131,17 @@ }, /** - * Whether the remember password options is allowed by policy. + * Whether the password should be remembered by default. + */ + rememberPasswordByDefault_: { + type: Boolean, + value() { + return loadTimeData.getBoolean('kerberosRememberPasswordByDefault'); + }, + }, + + /** + * Whether the remember password option is allowed by policy. */ rememberPasswordEnabled_: { type: Boolean, @@ -182,6 +187,7 @@ private passwordErrorText_: string; private password_: string; private prefillDomain_: string; + private rememberPasswordByDefault_: boolean; private rememberPasswordEnabled_: boolean; private rememberPassword_: boolean; private showAdvancedConfig_: boolean; @@ -194,6 +200,8 @@ super(); this.useRememberedPassword_ = false; + this.rememberPassword_ = this.rememberPasswordByDefault_ && + this.rememberPasswordEnabled_ && !this.isGuestMode_; this.config_ = ''; this.title_ = ''; this.actionButtonLabel_ = '';
diff --git a/chrome/browser/resources/settings/chromeos/os_settings.ts b/chrome/browser/resources/settings/chromeos/os_settings.ts index 52dfb7a..231d9be 100644 --- a/chrome/browser/resources/settings/chromeos/os_settings.ts +++ b/chrome/browser/resources/settings/chromeos/os_settings.ts
@@ -126,6 +126,7 @@ export {SettingsPerDeviceTouchpadElement} from './device_page/per_device_touchpad.js'; export {SettingsPerDeviceTouchpadSubsectionElement} from './device_page/per_device_touchpad_subsection.js'; export {OsSettingsCellularSetupDialogElement} from './internet_page/cellular_setup_dialog.js'; +export {HotspotSummaryItemElement} from './internet_page/hotspot_summary_item.js'; export {InternetPageBrowserProxy, InternetPageBrowserProxyImpl} from './internet_page/internet_page_browser_proxy.js'; export {NetworkSummaryElement} from './internet_page/network_summary.js'; export {NetworkSummaryItemElement} from './internet_page/network_summary_item.js';
diff --git a/chrome/browser/resources/side_panel/companion/companion.ts b/chrome/browser/resources/side_panel/companion/companion.ts index 09228c9..f7b475c 100644 --- a/chrome/browser/resources/side_panel/companion/companion.ts +++ b/chrome/browser/resources/side_panel/companion/companion.ts
@@ -32,6 +32,7 @@ // Arguments for MethodType.kOnPromoAction. PROMO_ACTION = 'promoAction', PROMO_TYPE = 'promoType', + EXPS_PROMO_URL = 'expsPromoUrl', // Arguments for MethodType.kOnPhFeedback. PH_FEEDBACK = 'phFeedback', @@ -183,8 +184,11 @@ } else if (methodType === MethodType.kOnPromoAction) { const promoType = data[ParamType.PROMO_TYPE]; const promoAction = data[ParamType.PROMO_ACTION]; + const expsPromoUrl = new Url(); + expsPromoUrl.url = data[ParamType.EXPS_PROMO_URL] || ''; if (validatePromoArguments(promoType, promoAction)) { - companionProxy.handler.onPromoAction(promoType, promoAction); + companionProxy.handler.onPromoAction( + promoType, promoAction, expsPromoUrl); } } else if (methodType === MethodType.kOnExpsOptInStatusAvailable) { companionProxy.handler.onExpsOptInStatusAvailable(
diff --git a/chrome/browser/resources/side_panel/read_anything/app.ts b/chrome/browser/resources/side_panel/read_anything/app.ts index a549df2..184b2fe 100644 --- a/chrome/browser/resources/side_panel/read_anything/app.ts +++ b/chrome/browser/resources/side_panel/read_anything/app.ts
@@ -72,30 +72,30 @@ // Called by ReadAnythingPageHandler via callback router. // //////////////////////////////////////////////////////////// -// The chrome.readAnything context is created by the ReadAnythingAppController +// The chrome.readingMode context is created by the ReadAnythingAppController // which is only instantiated when the kReadAnything feature is enabled. This -// check if chrome.readAnything exists prevents runtime errors when the feature +// check if chrome.readingMode exists prevents runtime errors when the feature // is disabled. -if (chrome.readAnything) { - chrome.readAnything.updateContent = () => { +if (chrome.readingMode) { + chrome.readingMode.updateContent = () => { const readAnythingApp = document.querySelector('read-anything-app'); assert(readAnythingApp); readAnythingApp.updateContent(); }; - chrome.readAnything.updateSelection = () => { + chrome.readingMode.updateSelection = () => { const readAnythingApp = document.querySelector('read-anything-app'); assert(readAnythingApp); readAnythingApp.updateSelection(); }; - chrome.readAnything.updateTheme = () => { + chrome.readingMode.updateTheme = () => { const readAnythingApp = document.querySelector('read-anything-app'); assert(readAnythingApp); readAnythingApp.updateTheme(); }; - chrome.readAnything.showLoading = () => { + chrome.readingMode.showLoading = () => { const readAnythingApp = document.querySelector('read-anything-app'); assert(readAnythingApp); readAnythingApp.showLoading(); @@ -141,8 +141,8 @@ override connectedCallback() { super.connectedCallback(); - if (chrome.readAnything) { - chrome.readAnything.onConnected(); + if (chrome.readingMode) { + chrome.readingMode.onConnected(); } this.showLoading(); @@ -162,25 +162,25 @@ const anchorNodeId = this.domNodeToAxNodeIdMap_.get(anchorNode); const focusNodeId = this.domNodeToAxNodeIdMap_.get(focusNode); assert(anchorNodeId && focusNodeId); - chrome.readAnything.onSelectionChange( + chrome.readingMode.onSelectionChange( anchorNodeId, anchorOffset, focusNodeId, focusOffset); }; document.onscroll = () => { - chrome.readAnything.onScroll(this.scrollingOnSelection_); + chrome.readingMode.onScroll(this.scrollingOnSelection_); this.scrollingOnSelection_ = false; }; // Pass copy commands to main page. Copy commands will not work if they are // disabled on the main page. document.oncopy = () => { - chrome.readAnything.onCopy(); + chrome.readingMode.onCopy(); return false; }; } private buildSubtree_(nodeId: number): Node { - let htmlTag = chrome.readAnything.getHtmlTag(nodeId); + let htmlTag = chrome.readingMode.getHtmlTag(nodeId); // Text nodes do not have an html tag. if (!htmlTag.length) { @@ -195,18 +195,18 @@ const element = document.createElement(htmlTag); this.domNodeToAxNodeIdMap_.set(element, nodeId); - const direction = chrome.readAnything.getTextDirection(nodeId); + const direction = chrome.readingMode.getTextDirection(nodeId); if (direction) { element.setAttribute('dir', direction); } - const url = chrome.readAnything.getUrl(nodeId); + const url = chrome.readingMode.getUrl(nodeId); if (url && element.nodeName === 'A') { element.setAttribute('href', url); element.onclick = () => { - chrome.readAnything.onLinkClicked(nodeId); + chrome.readingMode.onLinkClicked(nodeId); }; } - const language = chrome.readAnything.getLanguage(nodeId); + const language = chrome.readingMode.getLanguage(nodeId); if (language) { element.setAttribute('lang', language); } @@ -216,18 +216,18 @@ } private appendChildSubtrees_(node: Node, nodeId: number) { - for (const childNodeId of chrome.readAnything.getChildren(nodeId)) { + for (const childNodeId of chrome.readingMode.getChildren(nodeId)) { const childNode = this.buildSubtree_(childNodeId); node.appendChild(childNode); } } private createTextNode_(nodeId: number): Node { - const textContent = chrome.readAnything.getTextContent(nodeId); + const textContent = chrome.readingMode.getTextContent(nodeId); const textNode = document.createTextNode(textContent); this.domNodeToAxNodeIdMap_.set(textNode, nodeId); - const shouldBold = chrome.readAnything.shouldBold(nodeId); - const isOverline = chrome.readAnything.isOverline(nodeId); + const shouldBold = chrome.readingMode.shouldBold(nodeId); + const isOverline = chrome.readingMode.isOverline(nodeId); if (!shouldBold && !isOverline) { return textNode; @@ -270,7 +270,7 @@ // would create a shadow node element representing each AXNode, because // experimentation found the shadow node creation to be ~8-10x slower than // constructing and appending nodes directly to the container element. - const rootId = chrome.readAnything.rootId; + const rootId = chrome.readingMode.rootId; if (!rootId) { return; } @@ -280,7 +280,7 @@ // The empty state header tells the user to select text to distill. Some web // pages don't work with selection, so we show a different message. if (!node.textContent) { - if (chrome.readAnything.isSelectable()) { + if (chrome.readingMode.isSelectable()) { this.emptyStateHeading_ = loadTimeData.getString('emptyStateHeader'); } else { this.emptyStateHeading_ = loadTimeData.getString('notSelectableHeader'); @@ -305,10 +305,10 @@ selection.removeAllRanges(); const range = new Range(); - const startNodeId = chrome.readAnything.startNodeId; - const startOffset = chrome.readAnything.startOffset; - const endNodeId = chrome.readAnything.endNodeId; - const endOffset = chrome.readAnything.endOffset; + const startNodeId = chrome.readingMode.startNodeId; + const startOffset = chrome.readingMode.startOffset; + const endNodeId = chrome.readingMode.endNodeId; + const endOffset = chrome.readingMode.endOffset; const startNode = this.domNodeToAxNodeIdMap_.keyFrom(startNodeId); const endNode = this.domNodeToAxNodeIdMap_.keyFrom(endNodeId); if (!startNode || !endNode) { @@ -333,7 +333,7 @@ private validatedFontName_(): string { // Validate that the given font name is a valid choice, or use the default. const validFontName = this.validFontNames_.find( - (f: {name: string}) => f.name === chrome.readAnything.fontName); + (f: {name: string}) => f.name === chrome.readingMode.fontName); return validFontName ? validFontName.css : this.defaultFontName_; } @@ -367,17 +367,17 @@ updateTheme() { const foregroundColor: - SkColor = {value: chrome.readAnything.foregroundColor}; + SkColor = {value: chrome.readingMode.foregroundColor}; const backgroundColor: - SkColor = {value: chrome.readAnything.backgroundColor}; + SkColor = {value: chrome.readingMode.backgroundColor}; const linkColor = this.getLinkColor_(backgroundColor); this.updateStyles({ '--font-family': this.validatedFontName_(), - '--font-size': chrome.readAnything.fontSize + 'em', + '--font-size': chrome.readingMode.fontSize + 'em', '--foreground-color': skColorToRgba(foregroundColor), - '--letter-spacing': chrome.readAnything.letterSpacing + 'em', - '--line-height': chrome.readAnything.lineSpacing, + '--letter-spacing': chrome.readingMode.letterSpacing + 'em', + '--line-height': chrome.readingMode.lineSpacing, '--link-color': linkColor.default, '--selection-color': this.getSelectionColor_(backgroundColor), '--sp-empty-state-heading-color': skColorToRgba(foregroundColor),
diff --git a/chrome/browser/resources/side_panel/read_anything/read_anything.d.ts b/chrome/browser/resources/side_panel/read_anything/read_anything.d.ts index 47e3125..81140bf 100644 --- a/chrome/browser/resources/side_panel/read_anything/read_anything.d.ts +++ b/chrome/browser/resources/side_panel/read_anything/read_anything.d.ts
@@ -2,10 +2,10 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -/** @fileoverview Definitions for chrome.readAnything API */ +/** @fileoverview Definitions for chrome.readingMode API */ declare namespace chrome { - export namespace readAnything { + export namespace readingMode { ///////////////////////////////////////////////////////////////////// // Implemented in read_anything_app_controller.cc and consumed by ts. /////////////////////////////////////////////////////////////////////
diff --git a/chrome/browser/safe_browsing/generated_safe_browsing_pref.cc b/chrome/browser/safe_browsing/generated_safe_browsing_pref.cc index 9af589fd..db87110 100644 --- a/chrome/browser/safe_browsing/generated_safe_browsing_pref.cc +++ b/chrome/browser/safe_browsing/generated_safe_browsing_pref.cc
@@ -184,9 +184,9 @@ &pref_object, reporting_pref); pref_object.user_selectable_values.emplace(); - pref_object.user_selectable_values->emplace_back( + pref_object.user_selectable_values->Append( base::to_underlying(SafeBrowsingSetting::STANDARD)); - pref_object.user_selectable_values->emplace_back( + pref_object.user_selectable_values->Append( base::to_underlying(SafeBrowsingSetting::DISABLED)); } }
diff --git a/chrome/browser/safe_browsing/tailored_security/consented_message_android.cc b/chrome/browser/safe_browsing/tailored_security/consented_message_android.cc index 61e1fe1..a742d22 100644 --- a/chrome/browser/safe_browsing/tailored_security/consented_message_android.cc +++ b/chrome/browser/safe_browsing/tailored_security/consented_message_android.cc
@@ -60,12 +60,17 @@ safe_browsing::kTailoredSecurityUpdatedMessages)) { description = l10n_util::GetStringUTF16( IDS_TAILORED_SECURITY_CONSENTED_ENABLE_MESSAGE_DESCRIPTION_UPDATED); + icon_resource_id = + ResourceMapper::MapToJavaDrawableId(IDR_ANDROID_MESSAGE_SHIELD_BLUE); + // Need to disable tint here because it removes a shade of blue from the + // shield which distorts the image. + message_->DisableIconTint(); } else { description = l10n_util::GetStringUTF16( IDS_TAILORED_SECURITY_CONSENTED_ENABLE_MESSAGE_DESCRIPTION); + icon_resource_id = + ResourceMapper::MapToJavaDrawableId(IDR_ANDROID_MESSAGE_SAFETY_CHECK); } - icon_resource_id = - ResourceMapper::MapToJavaDrawableId(IDR_ANDROID_MESSAGE_SAFETY_CHECK); } else { title = l10n_util::GetStringUTF16( IDS_TAILORED_SECURITY_CONSENTED_DISABLE_MESSAGE_TITLE); @@ -73,12 +78,14 @@ safe_browsing::kTailoredSecurityUpdatedMessages)) { description = l10n_util::GetStringUTF16( IDS_TAILORED_SECURITY_CONSENTED_DISABLE_MESSAGE_DESCRIPTION_UPDATED); + icon_resource_id = + ResourceMapper::MapToJavaDrawableId(IDR_ANDROID_MESSAGE_SHIELD_GRAY); } else { description = l10n_util::GetStringUTF16( IDS_TAILORED_SECURITY_CONSENTED_DISABLE_MESSAGE_DESCRIPTION); + icon_resource_id = + ResourceMapper::MapToJavaDrawableId(IDR_ANDROID_MESSAGE_SHIELD); } - icon_resource_id = - ResourceMapper::MapToJavaDrawableId(IDR_ANDROID_MESSAGE_SHIELD); message_->DisableIconTint(); } message_->SetTitle(title);
diff --git a/chrome/browser/safe_browsing/tailored_security/unconsented_message_android.cc b/chrome/browser/safe_browsing/tailored_security/unconsented_message_android.cc index b3d9a98b..19e51a0 100644 --- a/chrome/browser/safe_browsing/tailored_security/unconsented_message_android.cc +++ b/chrome/browser/safe_browsing/tailored_security/unconsented_message_android.cc
@@ -114,43 +114,52 @@ } } - if (is_in_flow_) { - signin::IdentityManager* identity_manager = - IdentityManagerFactory::GetForProfile( - Profile::FromBrowserContext(web_contents_->GetBrowserContext())); - if (identity_manager && - identity_manager->HasPrimaryAccount(signin::ConsentLevel::kSignin)) { - gfx::ImageSkia avatar_image = - identity_manager - ->FindExtendedAccountInfoByAccountId( - identity_manager->GetPrimaryAccountId( - signin::ConsentLevel::kSignin)) - .account_image.AsImageSkia(); - - gfx::ImageSkia sized_avatar_image = - gfx::ImageSkiaOperations::CreateResizedImage( - avatar_image, skia::ImageOperations::RESIZE_BEST, - gfx::Size(kAvatarSize, kAvatarSize)); - gfx::ImageSkia cropped_avatar_image = - gfx::ImageSkiaOperations::CreateMaskedImage( - sized_avatar_image, - gfx::CanvasImageSource::MakeImageSkia<CircleImageSource>( - sized_avatar_image.width(), SK_ColorWHITE)); - gfx::ImageSkia final_avatar_image = - gfx::ImageSkiaOperations::CreateSuperimposedImage( - gfx::CanvasImageSource::MakeImageSkia<CircleImageSource>( - kAvatarWithBorderSize, gfx::kGoogleBlue400), - cropped_avatar_image); - gfx::ImageSkia badge = gfx::CreateVectorIcon(kSafetyCheckIcon, kBadgeSize, - gfx::kGoogleBlue500); - icon_ = gfx::ImageSkiaOperations::CreateIconWithBadge(final_avatar_image, - badge); - message_->SetIcon(*icon_.bitmap()); - message_->DisableIconTint(); - } - } else { + if (base::FeatureList::IsEnabled( + safe_browsing::kTailoredSecurityUpdatedMessages)) { message_->SetIconResourceId( - ResourceMapper::MapToJavaDrawableId(IDR_ANDROID_MESSAGE_SAFETY_CHECK)); + ResourceMapper::MapToJavaDrawableId(IDR_ANDROID_MESSAGE_SHIELD_BLUE)); + // Need to disable tint here because it removes a shade of blue from the + // shield which distorts the image. + message_->DisableIconTint(); + } else { + if (is_in_flow_) { + signin::IdentityManager* identity_manager = + IdentityManagerFactory::GetForProfile( + Profile::FromBrowserContext(web_contents_->GetBrowserContext())); + if (identity_manager && + identity_manager->HasPrimaryAccount(signin::ConsentLevel::kSignin)) { + gfx::ImageSkia avatar_image = + identity_manager + ->FindExtendedAccountInfoByAccountId( + identity_manager->GetPrimaryAccountId( + signin::ConsentLevel::kSignin)) + .account_image.AsImageSkia(); + + gfx::ImageSkia sized_avatar_image = + gfx::ImageSkiaOperations::CreateResizedImage( + avatar_image, skia::ImageOperations::RESIZE_BEST, + gfx::Size(kAvatarSize, kAvatarSize)); + gfx::ImageSkia cropped_avatar_image = + gfx::ImageSkiaOperations::CreateMaskedImage( + sized_avatar_image, + gfx::CanvasImageSource::MakeImageSkia<CircleImageSource>( + sized_avatar_image.width(), SK_ColorWHITE)); + gfx::ImageSkia final_avatar_image = + gfx::ImageSkiaOperations::CreateSuperimposedImage( + gfx::CanvasImageSource::MakeImageSkia<CircleImageSource>( + kAvatarWithBorderSize, gfx::kGoogleBlue400), + cropped_avatar_image); + gfx::ImageSkia badge = gfx::CreateVectorIcon( + kSafetyCheckIcon, kBadgeSize, gfx::kGoogleBlue500); + icon_ = gfx::ImageSkiaOperations::CreateIconWithBadge( + final_avatar_image, badge); + message_->SetIcon(*icon_.bitmap()); + message_->DisableIconTint(); + } + } else { + message_->SetIconResourceId(ResourceMapper::MapToJavaDrawableId( + IDR_ANDROID_MESSAGE_SAFETY_CHECK)); + } } LogMessageOutcome(TailoredSecurityOutcome::kShown, is_in_flow_);
diff --git a/chrome/browser/screen_ai/screen_ai_install_state.cc b/chrome/browser/screen_ai/screen_ai_install_state.cc index 3dcfd97..19d29f3 100644 --- a/chrome/browser/screen_ai/screen_ai_install_state.cc +++ b/chrome/browser/screen_ai/screen_ai_install_state.cc
@@ -162,10 +162,6 @@ } bool ScreenAIInstallState::IsComponentAvailable() { - // Make sure the library becomes available only when it's needed. - CHECK(get_component_binary_path().empty() || - features::IsScreenAIServiceNeeded()); - return !get_component_binary_path().empty(); }
diff --git a/chrome/browser/sharing/shared_clipboard/remote_copy_message_handler.cc b/chrome/browser/sharing/shared_clipboard/remote_copy_message_handler.cc index 770dbae..2c7b2b7 100644 --- a/chrome/browser/sharing/shared_clipboard/remote_copy_message_handler.cc +++ b/chrome/browser/sharing/shared_clipboard/remote_copy_message_handler.cc
@@ -277,7 +277,7 @@ TRACE_EVENT0("sharing", "RemoteCopyMessageHandler::ShowNotification"); message_center::RichNotificationData rich_notification_data; - rich_notification_data.vector_small_image = &kLaptopAndSmartphoneIcon; + rich_notification_data.vector_small_image = &kDevicesIcon; rich_notification_data.renotify = true; ui::Accelerator paste_accelerator(ui::VKEY_V, ui::EF_PLATFORM_ACCELERATOR);
diff --git a/chrome/browser/sharing_hub/sharing_hub_model.cc b/chrome/browser/sharing_hub/sharing_hub_model.cc index 806908b..f3725c7 100644 --- a/chrome/browser/sharing_hub/sharing_hub_model.cc +++ b/chrome/browser/sharing_hub/sharing_hub_model.cc
@@ -115,7 +115,7 @@ first_party_action_list_.emplace_back( IDC_SEND_TAB_TO_SELF, l10n_util::GetStringUTF16(IDS_SEND_TAB_TO_SELF), - &kLaptopAndSmartphoneIcon, "SharingHubDesktop.SendTabToSelfSelected", 0); + &kDevicesIcon, "SharingHubDesktop.SendTabToSelfSelected", 0); first_party_action_list_.emplace_back( IDC_QRCODE_GENERATOR,
diff --git a/chrome/browser/ssl/ssl_config_service_manager.cc b/chrome/browser/ssl/ssl_config_service_manager.cc index 682a006..6b92472 100644 --- a/chrome/browser/ssl/ssl_config_service_manager.cc +++ b/chrome/browser/ssl/ssl_config_service_manager.cc
@@ -143,6 +143,9 @@ local_state_callback); insecure_hash_enabled_.Init(prefs::kInsecureHashesInTLSHandshakesEnabled, local_state, local_state_callback); + rsa_key_usage_for_local_anchors_enabled_.Init( + prefs::kRSAKeyUsageForLocalAnchorsEnabled, local_state, + local_state_callback); local_state_change_registrar_.Init(local_state); local_state_change_registrar_.Add(prefs::kCipherSuiteBlacklist, @@ -175,10 +178,13 @@ default_context_config.post_quantum_enabled); registry->RegisterBooleanPref(prefs::kEncryptedClientHelloEnabled, default_context_config.ech_enabled); - // Default value for this pref doesn't matter since it is only used when + + // Default value for these prefs don't matter since they are only used when // managed. registry->RegisterBooleanPref(prefs::kInsecureHashesInTLSHandshakesEnabled, false); + registry->RegisterBooleanPref(prefs::kRSAKeyUsageForLocalAnchorsEnabled, + false); } void SSLConfigServiceManager::AddToNetworkContextParams( @@ -256,6 +262,16 @@ config->insecure_hash_override = network::mojom::OptionalBool::kUnset; } + if (rsa_key_usage_for_local_anchors_enabled_.IsManaged()) { + config->rsa_key_usage_for_local_anchors_override = + rsa_key_usage_for_local_anchors_enabled_.GetValue() + ? network::mojom::OptionalBool::kTrue + : network::mojom::OptionalBool::kFalse; + } else { + config->rsa_key_usage_for_local_anchors_override = + network::mojom::OptionalBool::kUnset; + } + return config; }
diff --git a/chrome/browser/ssl/ssl_config_service_manager.h b/chrome/browser/ssl/ssl_config_service_manager.h index bcf2815..ab39800 100644 --- a/chrome/browser/ssl/ssl_config_service_manager.h +++ b/chrome/browser/ssl/ssl_config_service_manager.h
@@ -68,6 +68,7 @@ BooleanPrefMember post_quantum_enabled_; BooleanPrefMember ech_enabled_; BooleanPrefMember insecure_hash_enabled_; + BooleanPrefMember rsa_key_usage_for_local_anchors_enabled_; // The cached list of disabled SSL cipher suites. std::vector<uint16_t> disabled_cipher_suites_;
diff --git a/chrome/browser/subresource_filter/ad_tagging_browsertest.cc b/chrome/browser/subresource_filter/ad_tagging_browsertest.cc index 117c33d..03947db4 100644 --- a/chrome/browser/subresource_filter/ad_tagging_browsertest.cc +++ b/chrome/browser/subresource_filter/ad_tagging_browsertest.cc
@@ -805,6 +805,7 @@ blink::mojom::FrameCreationStackEvidence::kNotCreatedByAdScript)); NavigateFrame(test_frame, GetURL("frame_factory.html")); + test_frame = content::ChildFrameAt(web_contents()->GetPrimaryMainFrame(), 0); EXPECT_FALSE(observer.GetIsAdFrame(test_frame->GetFrameTreeNodeId())); EXPECT_TRUE(EvidenceForFrameComprises( test_frame, /*parent_is_ad=*/false, @@ -815,6 +816,7 @@ blink::mojom::FrameCreationStackEvidence::kNotCreatedByAdScript)); NavigateFrame(test_frame, GetURL("frame_factory.html?allowed=true")); + test_frame = content::ChildFrameAt(web_contents()->GetPrimaryMainFrame(), 0); EXPECT_FALSE(observer.GetIsAdFrame(test_frame->GetFrameTreeNodeId())); EXPECT_TRUE(EvidenceForFrameComprises( test_frame, /*parent_is_ad=*/false, @@ -825,6 +827,7 @@ blink::mojom::FrameCreationStackEvidence::kNotCreatedByAdScript)); NavigateFrame(test_frame, GetURL("frame_factory.html?ad=true")); + test_frame = content::ChildFrameAt(web_contents()->GetPrimaryMainFrame(), 0); EXPECT_TRUE(observer.GetIsAdFrame(test_frame->GetFrameTreeNodeId())); EXPECT_TRUE(EvidenceForFrameComprises( test_frame, /*parent_is_ad=*/false, @@ -835,6 +838,7 @@ blink::mojom::FrameCreationStackEvidence::kNotCreatedByAdScript)); NavigateFrame(test_frame, GetURL("frame_factory.html")); + test_frame = content::ChildFrameAt(web_contents()->GetPrimaryMainFrame(), 0); EXPECT_TRUE(observer.GetIsAdFrame(test_frame->GetFrameTreeNodeId())); EXPECT_TRUE(EvidenceForFrameComprises( test_frame, /*parent_is_ad=*/false,
diff --git a/chrome/browser/subresource_filter/subresource_filter_browsertest.cc b/chrome/browser/subresource_filter/subresource_filter_browsertest.cc index a14bfe83..9829a294 100644 --- a/chrome/browser/subresource_filter/subresource_filter_browsertest.cc +++ b/chrome/browser/subresource_filter/subresource_filter_browsertest.cc
@@ -1367,9 +1367,9 @@ const GURL kSameOriginEmbedUrl( embedded_test_server()->GetURL(kMainFrameOrigin, "/title1.html")); + ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), kMainFrameUrl)); content::RenderFrameHost* render_frame_host = - ui_test_utils::NavigateToURL(browser(), kMainFrameUrl); - ASSERT_TRUE(render_frame_host); + web_contents()->GetPrimaryMainFrame(); InitTestPage(render_frame_host); @@ -1403,6 +1403,7 @@ // LazyEmbeds and LazyAds must be disabled when the page is reloaded. EXPECT_TRUE(render_frame_host->Reload()); EXPECT_TRUE(content::WaitForLoadStop(web_contents())); + render_frame_host = web_contents()->GetPrimaryMainFrame(); InitTestPage(render_frame_host); AddAdIframe(render_frame_host, kAdUrl); AddIframe(render_frame_host, kEmbedUrl);
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn index bd2941b..1ab3276 100644 --- a/chrome/browser/ui/BUILD.gn +++ b/chrome/browser/ui/BUILD.gn
@@ -289,8 +289,12 @@ "tab_modal_confirm_dialog.h", "tab_ui_helper.cc", "tab_ui_helper.h", + "toolbar/chrome_labs_model.cc", + "toolbar/chrome_labs_model.h", "toolbar/chrome_labs_prefs.cc", "toolbar/chrome_labs_prefs.h", + "toolbar/chrome_labs_utils.cc", + "toolbar/chrome_labs_utils.h", "toolbar/chrome_location_bar_model_delegate.cc", "toolbar/chrome_location_bar_model_delegate.h", "translate/partial_translate_bubble_model.h", @@ -1540,8 +1544,6 @@ "uma_browsing_activity_observer.h", "unload_controller.cc", "unload_controller.h", - "user_education/active_tab_tracker.cc", - "user_education/active_tab_tracker.h", "user_education/browser_feature_promo_snooze_service.cc", "user_education/browser_feature_promo_snooze_service.h", "user_education/browser_tutorial_service.cc", @@ -1800,7 +1802,8 @@ "webui/side_panel/companion/companion_page_handler.h", "webui/side_panel/companion/companion_side_panel_untrusted_ui.cc", "webui/side_panel/companion/companion_side_panel_untrusted_ui.h", - "webui/side_panel/companion/signin_delegate.cc", + "webui/side_panel/companion/signin_delegate_impl.cc", + "webui/side_panel/companion/signin_delegate_impl.h", "webui/side_panel/customize_chrome/customize_chrome_colors.cc", "webui/side_panel/customize_chrome/customize_chrome_colors.h", "webui/side_panel/customize_chrome/customize_chrome_page_handler.cc", @@ -5466,10 +5469,6 @@ "views/toolbar/chrome_labs_coordinator.h", "views/toolbar/chrome_labs_item_view.cc", "views/toolbar/chrome_labs_item_view.h", - "views/toolbar/chrome_labs_model.cc", - "views/toolbar/chrome_labs_model.h", - "views/toolbar/chrome_labs_utils.cc", - "views/toolbar/chrome_labs_utils.h", "views/toolbar/chrome_labs_view_controller.cc", "views/toolbar/chrome_labs_view_controller.h", "views/toolbar/home_button.cc", @@ -5513,8 +5512,6 @@ "views/user_education/browser_feature_promo_controller.h", "views/user_education/browser_user_education_service.cc", "views/user_education/browser_user_education_service.h", - "views/user_education/tip_marquee_view.cc", - "views/user_education/tip_marquee_view.h", "views/web_apps/file_handler_launch_dialog_view.cc", "views/web_apps/file_handler_launch_dialog_view.h", "views/web_apps/frame_toolbar/system_app_accessible_name.cc",
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd index dc89261..22371bb0 100644 --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -4050,12 +4050,6 @@ Incognito mode </message> - <message name="IDS_TABSWITCHER_NO_TABS_EMPTY_STATE" desc="Text appearing on an empty tab switcher that indicates that tabs opened will appear here."> - You’ll find your tabs here - </message> - <message name="IDS_TABSWITCHER_NO_TABS_OPEN_TO_VISIT_DIFFERENT_PAGES" desc="Text appearing on an empty tab switcher that indicates that users can open tabs here to visit different pages."> - Open tabs to visit different pages at the same time - </message> <message name="IDS_ACCESSIBILITY_TOOLBAR_BTN_TABSWITCHER_TOGGLE_DEFAULT" desc="Placeholder content description for the button that enters or leaves the tab switcher."> Switch or close tabs </message>
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_TABSWITCHER_NO_TABS_EMPTY_STATE.png.sha1 b/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_TABSWITCHER_NO_TABS_EMPTY_STATE.png.sha1 deleted file mode 100644 index 2b70fb4..0000000 --- a/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_TABSWITCHER_NO_TABS_EMPTY_STATE.png.sha1 +++ /dev/null
@@ -1 +0,0 @@ -41ca5b064f646b79720ff99dbfff8cac553a98ab \ No newline at end of file
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_TABSWITCHER_NO_TABS_OPEN_TO_VISIT_DIFFERENT_PAGES.png.sha1 b/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_TABSWITCHER_NO_TABS_OPEN_TO_VISIT_DIFFERENT_PAGES.png.sha1 deleted file mode 100644 index 2b70fb4..0000000 --- a/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_TABSWITCHER_NO_TABS_OPEN_TO_VISIT_DIFFERENT_PAGES.png.sha1 +++ /dev/null
@@ -1 +0,0 @@ -41ca5b064f646b79720ff99dbfff8cac553a98ab \ No newline at end of file
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarPhone.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarPhone.java index 0a54c72..ecc029b 100644 --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarPhone.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarPhone.java
@@ -2760,8 +2760,11 @@ if (!mShouldShowModernizeVisualUpdate) { return; } + mDropdownListScrolled = true; - mLocationBar.setStatusIconBackgroundVisibility(true); + if (!OmniboxFeatures.shouldShowActiveColorOnOmnibox()) { + mLocationBar.setStatusIconBackgroundVisibility(true); + } updateToolbarAndLocationBarColor(); } @@ -2770,8 +2773,11 @@ if (!mShouldShowModernizeVisualUpdate) { return; } + mDropdownListScrolled = false; - mLocationBar.setStatusIconBackgroundVisibility(false); + if (!OmniboxFeatures.shouldShowActiveColorOnOmnibox()) { + mLocationBar.setStatusIconBackgroundVisibility(false); + } updateToolbarAndLocationBarColor(); }
diff --git a/chrome/browser/ui/ash/sharesheet/sharesheet_header_view.cc b/chrome/browser/ui/ash/sharesheet/sharesheet_header_view.cc index 9e3eab4..4be37ec9 100644 --- a/chrome/browser/ui/ash/sharesheet/sharesheet_header_view.cc +++ b/chrome/browser/ui/ash/sharesheet/sharesheet_header_view.cc
@@ -440,7 +440,7 @@ case (TextPlaceholderIcon::kGenericText): return chromeos::kTextIcon; case (TextPlaceholderIcon::kLink): - return kSharesheetLinkIcon; + return kLinkIcon; } }
diff --git a/chrome/browser/ui/browser_command_controller.cc b/chrome/browser/ui/browser_command_controller.cc index 16e3819..c1f28eb 100644 --- a/chrome/browser/ui/browser_command_controller.cc +++ b/chrome/browser/ui/browser_command_controller.cc
@@ -788,6 +788,9 @@ SidePanelOpenTrigger::kAppMenu); break; #endif + case IDC_SHOW_CHROME_LABS: + window()->ShowChromeLabs(); + break; case IDC_SHOW_BOOKMARK_BAR: ToggleBookmarkBar(browser_); break; @@ -1328,6 +1331,9 @@ command_updater_.UpdateCommandEnabled(IDC_READING_LIST_MENU_SHOW_UI, true); } + if (base::FeatureList::IsEnabled(features::kChromeLabs)) { + command_updater_.UpdateCommandEnabled(IDC_SHOW_CHROME_LABS, true); + } } // Initialize other commands whose state changes based on various conditions.
diff --git a/chrome/browser/ui/browser_window.h b/chrome/browser/ui/browser_window.h index fbb6ed97..9786d3e 100644 --- a/chrome/browser/ui/browser_window.h +++ b/chrome/browser/ui/browser_window.h
@@ -646,6 +646,9 @@ absl::optional<SidePanelEntryId> entry_id = absl::nullopt, absl::optional<SidePanelOpenTrigger> open_trigger = absl::nullopt) = 0; + // Shows the Chrome Labs bubble if enabled. + virtual void ShowChromeLabs() = 0; + protected: friend class BrowserCloseManager; friend class BrowserView;
diff --git a/chrome/browser/ui/layout_constants.cc b/chrome/browser/ui/layout_constants.cc index a51a95fb..b7e16be 100644 --- a/chrome/browser/ui/layout_constants.cc +++ b/chrome/browser/ui/layout_constants.cc
@@ -14,10 +14,6 @@ #include "ui/base/ui_base_features.h" #include "ui/gfx/geometry/insets.h" -#if BUILDFLAG(IS_CHROMEOS) -#include "chromeos/constants/chromeos_features.h" -#endif // IS_CHROMEOS - int GetLayoutConstant(LayoutConstant constant) { const bool touch_ui = ui::TouchUiController::Get()->touch_ui(); switch (constant) { @@ -77,11 +73,6 @@ case TAB_ALERT_INDICATOR_ICON_WIDTH: return touch_ui ? 12 : 16; case TAB_HEIGHT: -#if BUILDFLAG(IS_CHROMEOS) - if (chromeos::features::IsJellyrollEnabled()) { - return 34 + GetLayoutConstant(TABSTRIP_TOOLBAR_OVERLAP); - } -#endif // IS_CHROMEOS return (touch_ui ? 41 : 34) + GetLayoutConstant(TABSTRIP_TOOLBAR_OVERLAP); case TAB_PRE_TITLE_PADDING: return 8;
diff --git a/chrome/browser/ui/passwords/password_generation_popup_controller_impl.cc b/chrome/browser/ui/passwords/password_generation_popup_controller_impl.cc index 97869d8..950aa5b 100644 --- a/chrome/browser/ui/passwords/password_generation_popup_controller_impl.cc +++ b/chrome/browser/ui/passwords/password_generation_popup_controller_impl.cc
@@ -482,6 +482,8 @@ case PasswordGenerationVariation::kConvenience: return l10n_util::GetStringUTF16( IDS_PASSWORD_GENERATION_SUGGESTION_CONVENIENCE); + default: + break; } } #endif // !BUILDFLAG(IS_ANDROID)
diff --git a/chrome/browser/ui/passwords/password_generation_popup_view_browsertest.cc b/chrome/browser/ui/passwords/password_generation_popup_view_browsertest.cc index 541ee0f..c2aff5e9 100644 --- a/chrome/browser/ui/passwords/password_generation_popup_view_browsertest.cc +++ b/chrome/browser/ui/passwords/password_generation_popup_view_browsertest.cc
@@ -513,6 +513,7 @@ testing::Values("trusted_advice", "safety_first", "try_something_new", - "convenience")); + "convenience", + "cross_device")); } // namespace autofill
diff --git a/chrome/browser/ui/tabs/saved_tab_groups/saved_tab_group_controller.h b/chrome/browser/ui/tabs/saved_tab_groups/saved_tab_group_controller.h index c19edfd..6b1ea2e 100644 --- a/chrome/browser/ui/tabs/saved_tab_groups/saved_tab_group_controller.h +++ b/chrome/browser/ui/tabs/saved_tab_groups/saved_tab_group_controller.h
@@ -42,9 +42,9 @@ virtual void DisconnectLocalTabGroup( const tab_groups::TabGroupId& group_id) = 0; - // Begins listening to the Tab Group in the TabStrip. Adds the local tab group - // id and web content tokens. - virtual void ConnectLocalTabGroup( + // Begins listening to the Tab Group in the TabStrip if a local to saved group + // connection can be made. Adds the local tab group id and web content tokens. + virtual void ConnectLocalTabGroupIfPossible( const tab_groups::TabGroupId& local_group_id, const base::Uuid& saved_group_guid) = 0; };
diff --git a/chrome/browser/ui/tabs/saved_tab_groups/saved_tab_group_keyed_service.cc b/chrome/browser/ui/tabs/saved_tab_groups/saved_tab_group_keyed_service.cc index 0e672c1..d66680d 100644 --- a/chrome/browser/ui/tabs/saved_tab_groups/saved_tab_group_keyed_service.cc +++ b/chrome/browser/ui/tabs/saved_tab_groups/saved_tab_group_keyed_service.cc
@@ -90,8 +90,7 @@ // crashed session / window. This means we will have to manually trigger the // local to saved group linking. if (model()->is_loaded()) { - model_.OnGroupOpenedInTabStrip(saved_guid, local_group_id); - ConnectLocalTabGroup(local_group_id, saved_guid); + ConnectLocalTabGroupIfPossible(local_group_id, saved_guid); } else { saved_guid_to_local_group_id_mapping_.emplace_back(saved_guid, local_group_id); @@ -265,7 +264,7 @@ model_.OnGroupClosedInTabStrip(group_id); } -void SavedTabGroupKeyedService::ConnectLocalTabGroup( +void SavedTabGroupKeyedService::ConnectLocalTabGroupIfPossible( const tab_groups::TabGroupId& local_group_id, const base::Uuid& saved_guid) { const TabStripModel* tab_strip_model = @@ -277,16 +276,21 @@ const gfx::Range& tab_range = tab_group->ListTabs(); const SavedTabGroup* const saved_group = model_.Get(saved_guid); CHECK(saved_group); - CHECK(tab_range.length() == saved_group->saved_tabs().size()); + + if (tab_range.length() != saved_group->saved_tabs().size()) { + return; + } std::vector<std::pair<content::WebContents*, base::Uuid>> web_contents_to_guid_mapping; - for (size_t i = tab_range.start(); i < tab_range.end(); ++i) { - content::WebContents* web_contents = tab_strip_model->GetWebContentsAt(i); + for (size_t index_in_tabstrip = tab_range.start(); + index_in_tabstrip < tab_range.end(); ++index_in_tabstrip) { + content::WebContents* web_contents = + tab_strip_model->GetWebContentsAt(index_in_tabstrip); CHECK(web_contents); - const size_t saved_tab_index = i - tab_range.start(); + const int saved_tab_index = index_in_tabstrip - tab_range.start(); const SavedTabGroupTab& saved_tab = saved_group->saved_tabs()[saved_tab_index]; @@ -294,6 +298,7 @@ saved_tab.saved_tab_guid()); } + model_.OnGroupOpenedInTabStrip(saved_guid, local_group_id); listener_.ConnectToLocalTabGroup(*model_.Get(saved_guid), std::move(web_contents_to_guid_mapping)); @@ -307,8 +312,7 @@ continue; } - model_.OnGroupOpenedInTabStrip(saved_guid, local_group_id); - ConnectLocalTabGroup(local_group_id, saved_guid); + ConnectLocalTabGroupIfPossible(local_group_id, saved_guid); } // Clear `saved_guid_to_local_group_id_mapping_` to save space when finished.
diff --git a/chrome/browser/ui/tabs/saved_tab_groups/saved_tab_group_keyed_service.h b/chrome/browser/ui/tabs/saved_tab_groups/saved_tab_group_keyed_service.h index bf71931..3d6a19e 100644 --- a/chrome/browser/ui/tabs/saved_tab_groups/saved_tab_group_keyed_service.h +++ b/chrome/browser/ui/tabs/saved_tab_groups/saved_tab_group_keyed_service.h
@@ -50,8 +50,9 @@ const base::Uuid& saved_group_guid, const tab_groups::TabGroupId& group_id) override; void DisconnectLocalTabGroup(const tab_groups::TabGroupId& group_id) override; - void ConnectLocalTabGroup(const tab_groups::TabGroupId& group_id, - const base::Uuid& saved_group_guid) override; + void ConnectLocalTabGroupIfPossible( + const tab_groups::TabGroupId& group_id, + const base::Uuid& saved_group_guid) override; // SavedTabGroupModelObserver void SavedTabGroupModelLoaded() override;
diff --git a/chrome/browser/ui/tabs/tab_menu_model.cc b/chrome/browser/ui/tabs/tab_menu_model.cc index 56692985..e0da843 100644 --- a/chrome/browser/ui/tabs/tab_menu_model.cc +++ b/chrome/browser/ui/tabs/tab_menu_model.cc
@@ -157,7 +157,7 @@ #else AddItemWithIcon(TabStripModel::CommandSendTabToSelf, l10n_util::GetStringUTF16(IDS_MENU_SEND_TAB_TO_SELF), - ui::ImageModel::FromVectorIcon(kLaptopAndSmartphoneIcon)); + ui::ImageModel::FromVectorIcon(kDevicesIcon)); #endif }
diff --git a/chrome/browser/ui/test/test_browser_dialog.cc b/chrome/browser/ui/test/test_browser_dialog.cc index 0e3f611a..6c2b39b 100644 --- a/chrome/browser/ui/test/test_browser_dialog.cc +++ b/chrome/browser/ui/test/test_browser_dialog.cc
@@ -27,7 +27,6 @@ #if defined(TOOLKIT_VIEWS) #include "base/functional/callback_helpers.h" #include "base/strings/strcat.h" -#include "ui/base/ui_base_features.h" #include "ui/display/display.h" #include "ui/display/screen.h" #include "ui/views/test/widget_test.h" @@ -116,10 +115,6 @@ } views::Widget* dialog_widget = *(added.begin()); -// TODO(https://crbug.com/958242) support Mac for pixel tests. -// TODO(crbug.com/1052397): Revisit the macro expression once build flag switch -// of lacros-chrome is complete. -#if BUILDFLAG(IS_WIN) || (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) dialog_widget->SetBlockCloseForTesting(true); // Deactivate before taking screenshot. Deactivated dialog pixel outputs // is more predictable than activated dialog. @@ -134,21 +129,13 @@ const std::string screenshot_name = base::StrCat( {test_info->test_case_name(), "_", test_info->name(), "_", baseline_}); - // For the CR2023 screenshots add a "CR2023" prefix so that they are compared - // exclusively with previous CR2023 screenshots. We would like Skia Gold to - // catch regressions in both CR2023 and non-CR2023. - // TODO(crbug.com/1444466): remove this after CR2023 launch. - const std::string screenshot_prefix = features::IsChromeRefresh2023() - ? "CR2023_BrowserUiDialog" - : "BrowserUiDialog"; - - if (!VerifyPixelUi(dialog_widget, screenshot_prefix, screenshot_name)) { + if (VerifyPixelUi(dialog_widget, "BrowserUiDialog", screenshot_name) == + ui::test::ActionResult::kFailed) { LOG(INFO) << "VerifyUi(): Pixel compare failed."; return false; } if (is_active) dialog_widget->Activate(); -#endif // BUILDFLAG(IS_MAC) if (!should_verify_dialog_bounds_) return true;
diff --git a/chrome/browser/ui/test/test_browser_ui.cc b/chrome/browser/ui/test/test_browser_ui.cc index 16bcef0..21e248d 100644 --- a/chrome/browser/ui/test/test_browser_ui.cc +++ b/chrome/browser/ui/test/test_browser_ui.cc
@@ -9,6 +9,7 @@ #include "base/test/test_switches.h" #include "build/build_config.h" #include "build/chromeos_buildflags.h" +#include "ui/base/ui_base_features.h" #include "ui/base/ui_base_switches.h" #if defined(USE_AURA) @@ -30,6 +31,13 @@ #include "ui/views/widget/widget.h" #endif +// TODO(https://crbug.com/958242) support Mac for pixel tests. +// TODO(crbug.com/1052397): Revisit the macro expression once build flag switch +// of lacros-chrome is complete. +#if BUILDFLAG(IS_WIN) || (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) +#define SUPPORTS_PIXEL_TEST +#endif + namespace { // Extracts the |name| argument for ShowUi() from the current test case name. @@ -75,8 +83,7 @@ SetPixelMatchAlgorithm( std::make_unique<ui::test::FuzzySkiaGoldMatchingAlgorithm>( /*max_different_pixels=*/1000, /*pixel_delta_threshold=*/255 * 3)); -#elif BUILDFLAG(IS_WIN) || \ - (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) +#elif defined(SUPPORTS_PIXEL_TEST) // Default to fuzzy diff. The magic number is chosen based on // past experiments. SetPixelMatchAlgorithm( @@ -86,23 +93,22 @@ TestBrowserUi::~TestBrowserUi() = default; -// TODO(https://crbug.com/958242) support Mac for pixel tests. -// TODO(crbug.com/1052397): Revisit the macro expression once build flag switch -// of lacros-chrome is complete. -#if BUILDFLAG(IS_WIN) || (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) -bool TestBrowserUi::VerifyPixelUi(views::Widget* widget, - const std::string& screenshot_prefix, - const std::string& screenshot_name) { +ui::test::ActionResult TestBrowserUi::VerifyPixelUi( + views::Widget* widget, + const std::string& screenshot_prefix, + const std::string& screenshot_name) { return VerifyPixelUi(widget->GetContentsView(), screenshot_prefix, screenshot_name); } -bool TestBrowserUi::VerifyPixelUi(views::View* view, - const std::string& screenshot_prefix, - const std::string& screenshot_name) { +ui::test::ActionResult TestBrowserUi::VerifyPixelUi( + views::View* view, + const std::string& screenshot_prefix, + const std::string& screenshot_name) { +#ifdef SUPPORTS_PIXEL_TEST if (!base::CommandLine::ForCurrentProcess()->HasSwitch( "browser-ui-tests-verify-pixels")) - return true; + return ui::test::ActionResult::kNotAttempted; // Disable and hide cursor to prvent any interference with the // screenshots. @@ -120,23 +126,34 @@ ui::DrawWaiterForTest::WaitForCompositingEnded(compositor); views::ViewSkiaGoldPixelDiff pixel_diff; - pixel_diff.Init(screenshot_prefix); - return pixel_diff.CompareViewScreenshot(screenshot_name, view, - GetPixelMatchAlgorithm()); + pixel_diff.Init( + // For the CR2023 screenshots add a "CR2023" prefix so that they are + // compared exclusively with previous CR2023 screenshots. We would like + // Skia Gold to catch regressions in both CR2023 and non-CR2023. + // TODO(crbug.com/1444466): remove this after CR2023 launch. + features::IsChromeRefresh2023() ? "CR2023_" + screenshot_prefix + : screenshot_prefix); + bool success = pixel_diff.CompareViewScreenshot(screenshot_name, view, + GetPixelMatchAlgorithm()); + return success ? ui::test::ActionResult::kSucceeded + : ui::test::ActionResult::kFailed; +#else + return ui::test::ActionResult::kKnownIncompatible; +#endif } void TestBrowserUi::SetPixelMatchAlgorithm( std::unique_ptr<ui::test::SkiaGoldMatchingAlgorithm> algorithm) { algorithm_ = std::move(algorithm); } -#endif void TestBrowserUi::ShowAndVerifyUi() { PreShow(); #if BUILDFLAG(IS_WIN) // Gold files for pixel tests are for light mode, so if dark mode is not // forced, and host is in dark mode, skip test. - if (!base::CommandLine::ForCurrentProcess()->HasSwitch( + if (!IsInteractiveUi() && + !base::CommandLine::ForCurrentProcess()->HasSwitch( switches::kForceDarkMode) && ui::NativeTheme::GetInstanceForNativeUi()->ShouldUseDarkColors()) { GTEST_SKIP() << "Host is in dark mode; skipping test";
diff --git a/chrome/browser/ui/test/test_browser_ui.h b/chrome/browser/ui/test/test_browser_ui.h index 2619dbb4..ed3bd07 100644 --- a/chrome/browser/ui/test/test_browser_ui.h +++ b/chrome/browser/ui/test/test_browser_ui.h
@@ -11,18 +11,14 @@ #include "build/build_config.h" #include "build/chromeos_buildflags.h" #include "chrome/test/base/in_process_browser_test.h" +#include "ui/base/interaction/interaction_test_util.h" +#include "ui/base/test/skia_gold_matching_algorithm.h" namespace views { class Widget; class View; } // namespace views -namespace ui { -namespace test { -class SkiaGoldMatchingAlgorithm; -} // namespace test -} // namespace ui - // TestBrowserUi provides a way to register an InProcessBrowserTest testing // harness with a framework that invokes Chrome browser UI in a consistent way. // It optionally provides a way to invoke UI "interactively". This allows @@ -97,18 +93,17 @@ // successfully shown. virtual bool VerifyUi() = 0; -// TODO(crbug.com/1052397): Revisit the macro expression once build flag switch -// of lacros-chrome is complete. -#if BUILDFLAG(IS_WIN) || (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) - // Can be called by VerifyUi() to ensure pixel correctness. - bool VerifyPixelUi(views::Widget* widget, - const std::string& screenshot_prefix, - const std::string& screenshot_name); + // Returns ActionResult::Succeeded if the screenshot matches the golden image. + // Returns ActionResult::kFailed if the matching fails. + // Returns ActionResult::kKnownIncompatible if pixel tests are unsupported. + ui::test::ActionResult VerifyPixelUi(views::Widget* widget, + const std::string& screenshot_prefix, + const std::string& screenshot_name); // Can be called by VerifyUi() to ensure pixel correctness. - bool VerifyPixelUi(views::View* view, - const std::string& screenshot_prefix, - const std::string& screenshot_name); + ui::test::ActionResult VerifyPixelUi(views::View* view, + const std::string& screenshot_prefix, + const std::string& screenshot_name); // Own |algorithm|. void SetPixelMatchAlgorithm( @@ -116,7 +111,6 @@ ui::test::SkiaGoldMatchingAlgorithm* GetPixelMatchAlgorithm() { return algorithm_.get(); } -#endif // Called by ShowAndVerifyUi() after VerifyUi(), in the case where the test is // interactive. This should block until the UI has been dismissed. @@ -137,12 +131,7 @@ bool IsInteractiveUi() const; private: -// TODO(crbug.com/1052397): Revisit the macro expression once build flag switch -// of lacros-chrome is complete. -#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || \ - (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) std::unique_ptr<ui::test::SkiaGoldMatchingAlgorithm> algorithm_; -#endif }; // Helper to mix in a TestBrowserUi to an existing test harness. |Base| must be
diff --git a/chrome/browser/ui/toolbar/OWNERS b/chrome/browser/ui/toolbar/OWNERS index ee2739b..f7e3c0f 100644 --- a/chrome/browser/ui/toolbar/OWNERS +++ b/chrome/browser/ui/toolbar/OWNERS
@@ -2,6 +2,7 @@ per-file browser_actions_bar_browsertest*=rdevlin.cronin@chromium.org per-file *toolbar_action*=rdevlin.cronin@chromium.org per-file *toolbar_action*=emiliapaz@chromium.org +per-file chrome_labs*=elainechien@chromium.org # Media Router Action Files per-file *media_router*=file://chrome/browser/media/router/OWNERS
diff --git a/chrome/browser/ui/toolbar/app_menu_model.cc b/chrome/browser/ui/toolbar/app_menu_model.cc index 295a934..e5205eb6 100644 --- a/chrome/browser/ui/toolbar/app_menu_model.cc +++ b/chrome/browser/ui/toolbar/app_menu_model.cc
@@ -43,6 +43,8 @@ #include "chrome/browser/ui/tabs/tab_strip_model.h" #include "chrome/browser/ui/toolbar/app_menu_icon_controller.h" #include "chrome/browser/ui/toolbar/bookmark_sub_menu_model.h" +#include "chrome/browser/ui/toolbar/chrome_labs_prefs.h" +#include "chrome/browser/ui/toolbar/chrome_labs_utils.h" #include "chrome/browser/ui/toolbar/recent_tabs_sub_menu_model.h" #include "chrome/browser/ui/ui_features.h" #include "chrome/browser/ui/web_applications/web_app_launch_utils.h" @@ -66,6 +68,7 @@ #include "components/password_manager/core/common/password_manager_features.h" #include "components/password_manager/core/common/password_manager_pref_names.h" #include "components/performance_manager/public/features.h" +#include "components/prefs/pref_member.h" #include "components/prefs/pref_service.h" #include "components/profile_metrics/browser_profile_type.h" #include "components/signin/public/base/signin_metrics.h" @@ -122,6 +125,7 @@ DEFINE_CLASS_ELEMENT_IDENTIFIER_VALUE(AppMenuModel, kIncognitoMenuItem); DEFINE_CLASS_ELEMENT_IDENTIFIER_VALUE(AppMenuModel, kPasswordManagerMenuItem); DEFINE_CLASS_ELEMENT_IDENTIFIER_VALUE(ToolsMenuModel, kPerformanceMenuItem); +DEFINE_CLASS_ELEMENT_IDENTIFIER_VALUE(ToolsMenuModel, kChromeLabsMenuItem); DEFINE_CLASS_ELEMENT_IDENTIFIER_VALUE(ExtensionsMenuModel, kManageExtensionsMenuItem); DEFINE_CLASS_ELEMENT_IDENTIFIER_VALUE(ExtensionsMenuModel, @@ -177,6 +181,17 @@ url.DomainIs(password_manager::kChromeUIPasswordManagerHost); } +void SetCommandIcon(ui::SimpleMenuModel* model, + int command_id, + const gfx::VectorIcon& vector_icon) { + auto index = model->GetIndexOfCommandId(command_id); + if (index) { + model->SetIcon(index.value(), ui::ImageModel::FromVectorIcon( + vector_icon, ui::kColorMenuIcon, + ui::SimpleMenuModel::kDefaultIconSize)); + } +} + } // namespace //////////////////////////////////////////////////////////////////////////////// @@ -225,18 +240,13 @@ #endif AddItemWithStringId(IDC_ABOUT, IDS_ABOUT); if (features::IsChromeRefresh2023()) { - SetIcon( - GetIndexOfCommandId(IDC_ABOUT).value(), - ui::ImageModel::FromVectorIcon(vector_icons::kInfoRefreshIcon, - ui::kColorMenuIcon, kDefaultIconSize)); + SetCommandIcon(this, IDC_ABOUT, vector_icons::kInfoRefreshIcon); } #if BUILDFLAG(GOOGLE_CHROME_BRANDING) if (base::FeatureList::IsEnabled(features::kChromeWhatsNewUI)) { AddItemWithStringId(IDC_CHROME_WHATS_NEW, IDS_CHROME_WHATS_NEW); if (features::IsChromeRefresh2023()) { - SetIcon(GetIndexOfCommandId(IDC_CHROME_WHATS_NEW).value(), - ui::ImageModel::FromVectorIcon( - kReleaseAlertIcon, ui::kColorMenuIcon, kDefaultIconSize)); + SetCommandIcon(this, IDC_CHROME_WHATS_NEW, kReleaseAlertIcon); } } #endif // BUILDFLAG(GOOGLE_CHROME_BRANDING) @@ -246,17 +256,13 @@ SetIcon(GetIndexOfCommandId(IDC_HELP_PAGE_VIA_MENU).value(), ui::ImageModel::FromImage(rb.GetNativeImageNamed(IDR_HELP_MENU))); } else if (features::IsChromeRefresh2023()) { - SetIcon(GetIndexOfCommandId(IDC_HELP_PAGE_VIA_MENU).value(), - ui::ImageModel::FromVectorIcon(kHelpMenuIcon, ui::kColorMenuIcon, - kDefaultIconSize)); + SetCommandIcon(this, IDC_HELP_PAGE_VIA_MENU, kHelpMenuIcon); } if (browser->profile()->GetPrefs()->GetBoolean( prefs::kUserFeedbackAllowed)) { AddItemWithStringId(IDC_FEEDBACK, IDS_FEEDBACK); if (features::IsChromeRefresh2023()) { - SetIcon(GetIndexOfCommandId(IDC_FEEDBACK).value(), - ui::ImageModel::FromVectorIcon(kReportIcon, ui::kColorMenuIcon, - kDefaultIconSize)); + SetCommandIcon(this, IDC_FEEDBACK, kReportIcon); } } } @@ -279,18 +285,22 @@ // - Developer tools. // - Option to enable profiling. void ToolsMenuModel::Build(Browser* browser) { - AddItemWithStringId(IDC_SAVE_PAGE, IDS_SAVE_PAGE); + if (!features::IsChromeRefresh2023()) { + AddItemWithStringId(IDC_SAVE_PAGE, IDS_SAVE_PAGE); - AddItemWithStringId(IDC_CREATE_SHORTCUT, IDS_ADD_TO_OS_LAUNCH_SURFACE); + AddItemWithStringId(IDC_CREATE_SHORTCUT, IDS_ADD_TO_OS_LAUNCH_SURFACE); + } AddItemWithStringId(IDC_NAME_WINDOW, IDS_NAME_WINDOW); if (commander::IsEnabled()) AddItemWithStringId(IDC_TOGGLE_QUICK_COMMANDS, IDS_TOGGLE_QUICK_COMMANDS); AddSeparator(ui::NORMAL_SEPARATOR); - AddItemWithStringId(IDC_CLEAR_BROWSING_DATA, IDS_CLEAR_BROWSING_DATA); - if (!base::FeatureList::IsEnabled(features::kExtensionsMenuInAppMenu) && - !features::IsChromeRefresh2023()) { - AddItemWithStringId(IDC_MANAGE_EXTENSIONS, IDS_SHOW_EXTENSIONS); + if (!features::IsChromeRefresh2023()) { + AddItemWithStringId(IDC_CLEAR_BROWSING_DATA, IDS_CLEAR_BROWSING_DATA); + if (!base::FeatureList::IsEnabled(features::kExtensionsMenuInAppMenu) && + !features::IsChromeRefresh2023()) { + AddItemWithStringId(IDC_MANAGE_EXTENSIONS, IDS_SHOW_EXTENSIONS); + } } AddItemWithStringId(IDC_PERFORMANCE, IDS_SHOW_PERFORMANCE); SetElementIdentifierAt(GetIndexOfCommandId(IDC_PERFORMANCE).value(), @@ -307,6 +317,33 @@ AddSeparator(ui::NORMAL_SEPARATOR); AddCheckItemWithStringId(IDC_PROFILING_ENABLED, IDS_PROFILING_ENABLED); } + if (features::IsChromeRefresh2023()) { + if (base::FeatureList::IsEnabled(features::kChromeLabs)) { + auto* profile = browser->profile(); + chrome_labs_model_ = std::make_unique<ChromeLabsModel>(); + UpdateChromeLabsNewBadgePrefs(profile, chrome_labs_model_.get()); + if (ShouldShowChromeLabsUI(chrome_labs_model_.get(), profile)) { + BooleanPrefMember show_chrome_labs_item; + show_chrome_labs_item.Init(chrome_labs_prefs::kBrowserLabsEnabled, + profile->GetPrefs()); + if (show_chrome_labs_item.GetValue()) { + AddSeparator(ui::NORMAL_SEPARATOR); + AddItemWithStringIdAndIcon( + IDC_SHOW_CHROME_LABS, IDS_CHROMELABS, + ui::ImageModel::FromVectorIcon(kChromeLabsChromeRefreshIcon, + kDefaultIconSize)); + SetElementIdentifierAt( + GetIndexOfCommandId(IDC_SHOW_CHROME_LABS).value(), + kChromeLabsMenuItem); + } + } + } + SetCommandIcon(this, IDC_NAME_WINDOW, kNameWindowIcon); + SetCommandIcon(this, IDC_TOGGLE_QUICK_COMMANDS, kQuickCommandsIcon); + SetCommandIcon(this, IDC_PERFORMANCE, kPerformanceIcon); + SetCommandIcon(this, IDC_TASK_MANAGER, kTaskManagerIcon); + SetCommandIcon(this, IDC_DEV_TOOLS, kDeveloperToolsIcon); + } } //////////////////////////////////////////////////////////////////////////////// @@ -338,17 +375,11 @@ .value(), kVisitChromeWebStoreMenuItem); if (features::IsChromeRefresh2023()) { - SetIcon( - GetIndexOfCommandId(IDC_EXTENSIONS_SUBMENU_MANAGE_EXTENSIONS).value(), - ui::ImageModel::FromVectorIcon( - vector_icons::kExtensionChromeRefreshIcon, ui::kColorMenuIcon, - kDefaultIconSize)); + SetCommandIcon(this, IDC_EXTENSIONS_SUBMENU_MANAGE_EXTENSIONS, + vector_icons::kExtensionChromeRefreshIcon); #if BUILDFLAG(GOOGLE_CHROME_BRANDING) - SetIcon( - GetIndexOfCommandId(IDC_EXTENSIONS_SUBMENU_VISIT_CHROME_WEB_STORE) - .value(), - ui::ImageModel::FromVectorIcon(vector_icons::kGoogleChromeWebstoreIcon, - ui::kColorMenuIcon, kDefaultIconSize)); + SetCommandIcon(this, IDC_EXTENSIONS_SUBMENU_VISIT_CHROME_WEB_STORE, + vector_icons::kGoogleChromeWebstoreIcon); #endif } } @@ -769,6 +800,13 @@ } LogMenuAction(MENU_ACTION_PROFILING_ENABLED); break; + case IDC_SHOW_CHROME_LABS: + if (!uma_action_recorded_) { + UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.ShowChromeLabs", + delta); + } + LogMenuAction(MENU_ACTION_SHOW_CHROME_LABS); + break; // Zoom menu case IDC_ZOOM_MINUS: @@ -1105,10 +1143,8 @@ SetElementIdentifierAt(GetIndexOfCommandId(IDC_EXTENSIONS_SUBMENU).value(), kExtensionsMenuItem); if (features::IsChromeRefresh2023()) { - SetIcon(GetIndexOfCommandId(IDC_EXTENSIONS_SUBMENU).value(), - ui::ImageModel::FromVectorIcon( - vector_icons::kExtensionChromeRefreshIcon, ui::kColorMenuIcon, - kDefaultIconSize)); + SetCommandIcon(this, IDC_EXTENSIONS_SUBMENU, + vector_icons::kExtensionChromeRefreshIcon); } } @@ -1148,10 +1184,7 @@ GetInstallPWAAppMenuItemName(browser_)) { AddItem(IDC_INSTALL_PWA, *name); if (features::IsChromeRefresh2023()) { - SetIcon( - GetIndexOfCommandId(IDC_INSTALL_PWA).value(), - ui::ImageModel::FromVectorIcon(kInstallDesktopChromeRefreshIcon, - ui::kColorMenuIcon, kDefaultIconSize)); + SetCommandIcon(this, IDC_INSTALL_PWA, kInstallDesktopChromeRefreshIcon); } } else if (absl::optional<web_app::AppId> app_id = web_app::GetWebAppForActiveTab(browser_)) { @@ -1168,9 +1201,8 @@ IDC_OPEN_IN_PWA_WINDOW, l10n_util::GetStringFUTF16(IDS_OPEN_IN_APP_WINDOW, truncated_name)); if (features::IsChromeRefresh2023()) { - SetIcon(GetIndexOfCommandId(IDC_OPEN_IN_PWA_WINDOW).value(), - ui::ImageModel::FromVectorIcon( - kDesktopWindowsIcon, ui::kColorMenuIcon, kDefaultIconSize)); + SetCommandIcon(this, IDC_OPEN_IN_PWA_WINDOW, + kDesktopWindowsChromeRefreshIcon); } } } @@ -1272,35 +1304,28 @@ #endif // !BUILDFLAG(IS_CHROMEOS_ASH) if (features::IsChromeRefresh2023()) { - auto set_icon = [this](int command_id, const gfx::VectorIcon& vector_icon) { - auto index = GetIndexOfCommandId(command_id); - if (index) { - SetIcon(index.value(), - ui::ImageModel::FromVectorIcon(vector_icon, ui::kColorMenuIcon, - kDefaultIconSize)); - } - }; - set_icon(IDC_NEW_TAB, kNewTabRefreshIcon); - set_icon(IDC_NEW_WINDOW, kNewWindowIcon); - set_icon(IDC_NEW_INCOGNITO_WINDOW, kIncognitoRefreshMenuIcon); - set_icon(IDC_RECENT_TABS_MENU, kHistoryIcon); - set_icon(IDC_SHOW_DOWNLOADS, kDownloadMenuIcon); - set_icon(IDC_BOOKMARKS_MENU, kBookmarksListsMenuIcon); - set_icon(IDC_VIEW_PASSWORDS, kKeyChromeRefreshIcon); - set_icon(IDC_ZOOM_MENU, kZoomInIcon); - set_icon(IDC_PRINT, kPrintMenuIcon); - set_icon(IDC_TRANSLATE_PAGE, kTranslateChromeRefreshIcon); - set_icon(IDC_ROUTE_MEDIA, kCastMenuIcon); - set_icon(IDC_FIND_AND_EDIT_MENU, kSearchMenuIcon); - set_icon(IDC_PASSWORDS_AND_AUTOFILL_MENU, kKeyChromeRefreshIcon); - set_icon(IDC_MORE_TOOLS_MENU, kMoreToolsMenuIcon); - set_icon(IDC_OPTIONS, kSettingsMenuIcon); + SetCommandIcon(this, IDC_NEW_TAB, kNewTabRefreshIcon); + SetCommandIcon(this, IDC_NEW_WINDOW, kNewWindowIcon); + SetCommandIcon(this, IDC_NEW_INCOGNITO_WINDOW, kIncognitoRefreshMenuIcon); + SetCommandIcon(this, IDC_RECENT_TABS_MENU, kHistoryIcon); + SetCommandIcon(this, IDC_SHOW_DOWNLOADS, kDownloadMenuIcon); + SetCommandIcon(this, IDC_BOOKMARKS_MENU, kBookmarksListsMenuIcon); + SetCommandIcon(this, IDC_VIEW_PASSWORDS, kKeyChromeRefreshIcon); + SetCommandIcon(this, IDC_ZOOM_MENU, kZoomInIcon); + SetCommandIcon(this, IDC_PRINT, kPrintMenuIcon); + SetCommandIcon(this, IDC_TRANSLATE_PAGE, kTranslateChromeRefreshIcon); + SetCommandIcon(this, IDC_ROUTE_MEDIA, kCastChromeRefreshIcon); + SetCommandIcon(this, IDC_FIND_AND_EDIT_MENU, kSearchMenuIcon); + SetCommandIcon(this, IDC_PASSWORDS_AND_AUTOFILL_MENU, + kKeyChromeRefreshIcon); + SetCommandIcon(this, IDC_MORE_TOOLS_MENU, kMoreToolsMenuIcon); + SetCommandIcon(this, IDC_OPTIONS, kSettingsMenuIcon); #if BUILDFLAG(GOOGLE_CHROME_BRANDING) - set_icon(IDC_HELP_MENU, kHelpMenuIcon); - set_icon(IDC_SHOW_SEARCH_COMPANION, - vector_icons::kGoogleGLogoMonochromeIcon); + SetCommandIcon(this, IDC_HELP_MENU, kHelpMenuIcon); + SetCommandIcon(this, IDC_SHOW_SEARCH_COMPANION, + vector_icons::kGoogleGLogoMonochromeIcon); #endif - set_icon(IDC_EXIT, kExitMenuIcon); + SetCommandIcon(this, IDC_EXIT, kExitMenuIcon); } uma_action_recorded_ = false;
diff --git a/chrome/browser/ui/toolbar/app_menu_model.h b/chrome/browser/ui/toolbar/app_menu_model.h index 33fd495..8648fcc 100644 --- a/chrome/browser/ui/toolbar/app_menu_model.h +++ b/chrome/browser/ui/toolbar/app_menu_model.h
@@ -14,6 +14,7 @@ #include "build/chromeos_buildflags.h" #include "chrome/app/chrome_command_ids.h" #include "chrome/browser/ui/tabs/tab_strip_model_observer.h" +#include "chrome/browser/ui/toolbar/chrome_labs_model.h" #include "components/prefs/pref_change_registrar.h" #include "content/public/browser/host_zoom_map.h" #include "content/public/browser/web_contents_observer.h" @@ -85,6 +86,8 @@ MENU_ACTION_VISIT_CHROME_WEB_STORE = 57, MENU_ACTION_PASSWORD_MANAGER = 58, MENU_ACTION_TRANSLATE_PAGE = 59, + // ToolsMenuModel + MENU_ACTION_SHOW_CHROME_LABS = 60, LIMIT_MENU_ACTION }; @@ -110,6 +113,7 @@ class ToolsMenuModel : public ui::SimpleMenuModel { public: DECLARE_CLASS_ELEMENT_IDENTIFIER_VALUE(kPerformanceMenuItem); + DECLARE_CLASS_ELEMENT_IDENTIFIER_VALUE(kChromeLabsMenuItem); ToolsMenuModel(ui::SimpleMenuModel::Delegate* delegate, Browser* browser); @@ -120,6 +124,8 @@ private: void Build(Browser* browser); + + std::unique_ptr<ChromeLabsModel> chrome_labs_model_ = nullptr; }; class ExtensionsMenuModel : public ui::SimpleMenuModel {
diff --git a/chrome/browser/ui/toolbar/app_menu_model_unittest.cc b/chrome/browser/ui/toolbar/app_menu_model_unittest.cc index 4b7d663..f03b324 100644 --- a/chrome/browser/ui/toolbar/app_menu_model_unittest.cc +++ b/chrome/browser/ui/toolbar/app_menu_model_unittest.cc
@@ -4,6 +4,10 @@ #include "chrome/browser/ui/toolbar/app_menu_model.h" +#include <algorithm> +#include <vector> + +#include "base/functional/callback.h" #include "base/memory/ptr_util.h" #include "base/test/scoped_feature_list.h" #include "build/branding_buildflags.h" @@ -28,6 +32,7 @@ #include "components/performance_manager/public/features.h" #include "components/sync_preferences/testing_pref_service_syncable.h" #include "testing/gtest/include/gtest/gtest.h" +#include "ui/base/ui_base_features.h" #include "ui/gfx/color_palette.h" #if BUILDFLAG(IS_CHROMEOS) @@ -49,9 +54,7 @@ class MenuError : public GlobalError { public: explicit MenuError(int command_id) - : command_id_(command_id), - execute_count_(0) { - } + : command_id_(command_id), execute_count_(0) {} MenuError(const MenuError&) = delete; MenuError& operator=(const MenuError&) = delete; @@ -86,7 +89,7 @@ } }; -} // namespace +} // namespace class AppMenuModelTest : public BrowserWithTestWindowTest, public ui::AcceleratorProvider { @@ -125,8 +128,17 @@ public testing::WithParamInterface<bool> { public: ExtensionsMenuModelTest() { - feature_list_.InitWithFeatureState(features::kExtensionsMenuInAppMenu, - GetParam()); + std::vector<base::test::FeatureRef> enabled_features; + std::vector<base::test::FeatureRef> disabled_features; + if (GetParam()) { + enabled_features = {features::kExtensionsMenuInAppMenu}; + disabled_features = {features::kChromeRefresh2023}; + } else { + enabled_features = {}; + disabled_features = {features::kExtensionsMenuInAppMenu, + features::kChromeRefresh2023}; + } + feature_list_.InitWithFeatures(enabled_features, disabled_features); } ExtensionsMenuModelTest(const ExtensionsMenuModelTest&) = delete; @@ -140,6 +152,18 @@ ExtensionsMenuModelTest, /* features::kNewExtensionsTopLevelMenu enabled */ testing::Bool()); +class TestAppMenuModelCR2023 : public AppMenuModelTest { + public: + TestAppMenuModelCR2023() { + feature_list_.InitWithFeatures({features::kChromeRefresh2023}, {}); + } + + TestAppMenuModelCR2023(const TestAppMenuModelCR2023&) = delete; + TestAppMenuModelCR2023& operator=(const TestAppMenuModelCR2023&) = delete; + + ~TestAppMenuModelCR2023() override = default; +}; + // Copies parts of MenuModelTest::Delegate and combines them with the // AppMenuModel since AppMenuModel is now a SimpleMenuModel::Delegate and // not derived from SimpleMenuModel. @@ -240,7 +264,7 @@ for (size_t i = 0; i < item_count; ++i) { if (model.GetTypeAt(i) == ui::MenuModel::TYPE_SUBMENU) { // The bookmarks submenu comes after the Tabs and Downloads items. - bookmarks_model_index = i + 2; + bookmarks_model_index = i + (features::IsChromeRefresh2023() ? 3 : 2); break; } } @@ -319,6 +343,51 @@ EXPECT_TRUE(toolModel.IsEnabledAt(performance_index)); } +TEST_F(TestAppMenuModelCR2023, ModelHasIcons) { + // Skip the items that are either not supposed to have an icon, or are not + // ready to be tested. Remove items once they're ready for testing. + static const std::vector<int> skip_commands = { + IDC_RECENT_TABS_MENU, IDC_ABOUT, IDC_PIN_TO_START_SCREEN, + IDC_EXTENSIONS_SUBMENU_VISIT_CHROME_WEB_STORE, IDC_TAKE_SCREENSHOT}; + AppMenuModel model(this, browser()); + model.Init(); + + const auto check_for_icons = [](std::u16string menu_name, + ui::MenuModel* model) -> void { + auto check_for_icons_impl = [](std::u16string menu_name, + ui::MenuModel* model, + auto& check_for_icons_ref) -> void { + // Except where noted by the above vector, all menu items in CR2023 must + // have icons. + for (size_t i = 0; i < model->GetItemCount(); ++i) { + auto menu_type = model->GetTypeAt(i); + if (menu_type != ui::MenuModel::TYPE_ACTIONABLE_SUBMENU && + menu_type != ui::MenuModel::TYPE_SUBMENU && + std::find(skip_commands.cbegin(), skip_commands.cend(), + model->GetCommandIdAt(i)) != skip_commands.cend()) { + continue; + } + if (menu_type != ui::MenuModel::TYPE_SEPARATOR && + menu_type != ui::MenuModel::TYPE_TITLE) { + EXPECT_TRUE(!model->GetIconAt(i).IsEmpty()) + << "\"" << menu_name << "\" menu item \"" << model->GetLabelAt(i) + << "\" is missing the icon!"; + } + if ((menu_type == ui::MenuModel::TYPE_SUBMENU || + menu_type == ui::MenuModel::TYPE_ACTIONABLE_SUBMENU) && + std::find(skip_commands.cbegin(), skip_commands.cend(), + model->GetCommandIdAt(i)) == skip_commands.cend()) { + check_for_icons_ref(model->GetLabelAt(i), model->GetSubmenuModelAt(i), + check_for_icons_ref); + } + } + }; + check_for_icons_impl(menu_name, model, check_for_icons_impl); + }; + + check_for_icons(u"<Root Menu>", &model); +} + #if BUILDFLAG(IS_CHROMEOS) // Tests settings menu items is disabled in the app menu when // kSystemFeaturesDisableList is set.
diff --git a/chrome/browser/ui/views/toolbar/chrome_labs_model.cc b/chrome/browser/ui/toolbar/chrome_labs_model.cc similarity index 96% rename from chrome/browser/ui/views/toolbar/chrome_labs_model.cc rename to chrome/browser/ui/toolbar/chrome_labs_model.cc index e83dfe5..e6c102d2 100644 --- a/chrome/browser/ui/views/toolbar/chrome_labs_model.cc +++ b/chrome/browser/ui/toolbar/chrome_labs_model.cc
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "chrome/browser/ui/views/toolbar/chrome_labs_model.h" +#include "chrome/browser/ui/toolbar/chrome_labs_model.h" #include "base/no_destructor.h" #include "base/strings/utf_string_conversions.h" @@ -22,10 +22,11 @@ } void SetLabInfoForTesting(const std::vector<LabInfo>& test_feature_info) { - if (test_feature_info.empty()) + if (test_feature_info.empty()) { GetTestData().reset(); - else + } else { GetTestData() = test_feature_info; + } } // TODO(elainechien): Explore better ways to allow developers to add their @@ -33,8 +34,9 @@ // Experiments featured in labs must have feature entries of type FEATURE_VALUE // (Default, Enabled, Disabled states) or FEATURE_WITH_PARAMS_VALUE const std::vector<LabInfo>& GetData() { - if (GetTestData()) + if (GetTestData()) { return GetTestData().value(); + } static const base::NoDestructor<std::vector<LabInfo>> lab_info_([]() { std::vector<LabInfo> lab_info;
diff --git a/chrome/browser/ui/views/toolbar/chrome_labs_model.h b/chrome/browser/ui/toolbar/chrome_labs_model.h similarity index 91% rename from chrome/browser/ui/views/toolbar/chrome_labs_model.h rename to chrome/browser/ui/toolbar/chrome_labs_model.h index 7160c7a..641bc80a 100644 --- a/chrome/browser/ui/views/toolbar/chrome_labs_model.h +++ b/chrome/browser/ui/toolbar/chrome_labs_model.h
@@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef CHROME_BROWSER_UI_VIEWS_TOOLBAR_CHROME_LABS_MODEL_H_ -#define CHROME_BROWSER_UI_VIEWS_TOOLBAR_CHROME_LABS_MODEL_H_ +#ifndef CHROME_BROWSER_UI_TOOLBAR_CHROME_LABS_MODEL_H_ +#define CHROME_BROWSER_UI_TOOLBAR_CHROME_LABS_MODEL_H_ #include <string> #include <vector> @@ -60,4 +60,4 @@ void SetModelDataForTesting(const std::vector<LabInfo>& test_feature_info); }; -#endif // CHROME_BROWSER_UI_VIEWS_TOOLBAR_CHROME_LABS_MODEL_H_ +#endif // CHROME_BROWSER_UI_TOOLBAR_CHROME_LABS_MODEL_H_
diff --git a/chrome/browser/ui/views/toolbar/chrome_labs_model_unittest.cc b/chrome/browser/ui/toolbar/chrome_labs_model_unittest.cc similarity index 97% rename from chrome/browser/ui/views/toolbar/chrome_labs_model_unittest.cc rename to chrome/browser/ui/toolbar/chrome_labs_model_unittest.cc index 9bbc2071..a62a73bd 100644 --- a/chrome/browser/ui/views/toolbar/chrome_labs_model_unittest.cc +++ b/chrome/browser/ui/toolbar/chrome_labs_model_unittest.cc
@@ -2,12 +2,12 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +#include "chrome/browser/ui/toolbar/chrome_labs_model.h" #include "base/i18n/case_conversion.h" #include "base/strings/string_piece.h" #include "base/strings/string_util.h" #include "base/test/icu_test_util.h" #include "chrome/browser/about_flags.h" -#include "chrome/browser/ui/views/toolbar/chrome_labs_model.h" #include "chrome/test/views/chrome_views_test_base.h" #include "components/flags_ui/feature_entry.h" #include "testing/gtest/include/gtest/gtest.h"
diff --git a/chrome/browser/ui/views/toolbar/chrome_labs_utils.cc b/chrome/browser/ui/toolbar/chrome_labs_utils.cc similarity index 78% rename from chrome/browser/ui/views/toolbar/chrome_labs_utils.cc rename to chrome/browser/ui/toolbar/chrome_labs_utils.cc index 6194ddb..eeb49421 100644 --- a/chrome/browser/ui/views/toolbar/chrome_labs_utils.cc +++ b/chrome/browser/ui/toolbar/chrome_labs_utils.cc
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "chrome/browser/ui/views/toolbar/chrome_labs_utils.h" +#include "chrome/browser/ui/toolbar/chrome_labs_utils.h" #include "base/containers/contains.h" #include "base/ranges/algorithm.h" @@ -90,8 +90,9 @@ } } - for (const std::string& key : entries_to_remove) + for (const std::string& key : entries_to_remove) { new_badge_prefs.Remove(key); + } } bool ShouldShowChromeLabsUI(const ChromeLabsModel* model, Profile* profile) { @@ -108,3 +109,28 @@ return IsChromeLabsFeatureValid(lab, profile); }); } + +bool AreNewChromeLabsExperimentsAvailable(const ChromeLabsModel* model, + Profile* profile) { +#if BUILDFLAG(IS_CHROMEOS_ASH) + ScopedDictPrefUpdate update( + profile->GetPrefs(), chrome_labs_prefs::kChromeLabsNewBadgeDictAshChrome); +#else + ScopedDictPrefUpdate update(g_browser_process->local_state(), + chrome_labs_prefs::kChromeLabsNewBadgeDict); +#endif + + base::Value::Dict& new_badge_prefs = update.Get(); + + std::vector<std::string> lab_internal_names; + const std::vector<LabInfo>& all_labs = model->GetLabInfo(); + + return base::ranges::any_of( + all_labs.begin(), all_labs.end(), [&new_badge_prefs](const LabInfo& lab) { + absl::optional<int> new_badge_pref_value = + new_badge_prefs.FindInt(lab.internal_name); + // Show the dot indicator if new experiments have not been seen yet. + return new_badge_pref_value == + chrome_labs_prefs::kChromeLabsNewExperimentPrefValue; + }); +}
diff --git a/chrome/browser/ui/views/toolbar/chrome_labs_utils.h b/chrome/browser/ui/toolbar/chrome_labs_utils.h similarity index 61% rename from chrome/browser/ui/views/toolbar/chrome_labs_utils.h rename to chrome/browser/ui/toolbar/chrome_labs_utils.h index 5b0f1372..ad64834 100644 --- a/chrome/browser/ui/views/toolbar/chrome_labs_utils.h +++ b/chrome/browser/ui/toolbar/chrome_labs_utils.h
@@ -2,10 +2,10 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef CHROME_BROWSER_UI_VIEWS_TOOLBAR_CHROME_LABS_UTILS_H_ -#define CHROME_BROWSER_UI_VIEWS_TOOLBAR_CHROME_LABS_UTILS_H_ +#ifndef CHROME_BROWSER_UI_TOOLBAR_CHROME_LABS_UTILS_H_ +#define CHROME_BROWSER_UI_TOOLBAR_CHROME_LABS_UTILS_H_ -#include "chrome/browser/ui/views/toolbar/chrome_labs_model.h" +#include "chrome/browser/ui/toolbar/chrome_labs_model.h" class Profile; @@ -21,4 +21,9 @@ // menu item, etc..) be shown. bool ShouldShowChromeLabsUI(const ChromeLabsModel* model, Profile* profile); -#endif // CHROME_BROWSER_UI_VIEWS_TOOLBAR_CHROME_LABS_UTILS_H_ +// This will return true if there are new experiments and they haven't yet been +// seen. +bool AreNewChromeLabsExperimentsAvailable(const ChromeLabsModel* model, + Profile* profile); + +#endif // CHROME_BROWSER_UI_TOOLBAR_CHROME_LABS_UTILS_H_
diff --git a/chrome/browser/ui/ui_features.cc b/chrome/browser/ui/ui_features.cc index e7b7278..f030c830 100644 --- a/chrome/browser/ui/ui_features.cc +++ b/chrome/browser/ui/ui_features.cc
@@ -41,7 +41,7 @@ // with submenu to manage extensions and visit chrome web store. BASE_FEATURE(kExtensionsMenuInAppMenu, "ExtensionsMenuInAppMenu", - base::FEATURE_DISABLED_BY_DEFAULT); + base::FEATURE_ENABLED_BY_DEFAULT); #if !defined(ANDROID) // Enables "Access Code Cast" UI.
diff --git a/chrome/browser/ui/user_education/active_tab_tracker.cc b/chrome/browser/ui/user_education/active_tab_tracker.cc deleted file mode 100644 index f7de8a0f..0000000 --- a/chrome/browser/ui/user_education/active_tab_tracker.cc +++ /dev/null
@@ -1,65 +0,0 @@ -// Copyright 2018 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "chrome/browser/ui/user_education/active_tab_tracker.h" - -#include <utility> - -#include "base/time/tick_clock.h" -#include "chrome/browser/ui/tabs/tab_strip_model.h" - -ActiveTabTracker::ActiveTabTracker(const base::TickClock* clock, - ActiveTabClosedCallback callback) - : clock_(clock), active_tab_closed_callback_(std::move(callback)) { - DCHECK(active_tab_closed_callback_); -} - -ActiveTabTracker::~ActiveTabTracker() { - // All tab strip models should have been removed before destruction. - DCHECK(active_tab_changed_times_.empty()); -} - -void ActiveTabTracker::AddTabStripModel(TabStripModel* tab_strip_model) { - active_tab_changed_times_[tab_strip_model] = clock_->NowTicks(); - tab_strip_model->AddObserver(this); -} - -void ActiveTabTracker::RemoveTabStripModel(TabStripModel* tab_strip_model) { - // Get |std::map| iterator in |active_tab_changed_times_|. - auto it = active_tab_changed_times_.find(tab_strip_model); - DCHECK(it != active_tab_changed_times_.end()); - - // Stop observing and remove map element. - tab_strip_model->RemoveObserver(this); - active_tab_changed_times_.erase(it); -} - -void ActiveTabTracker::OnTabStripModelChanged( - TabStripModel* model, - const TabStripModelChange& change, - const TabStripSelectionChange& selection) { - DCHECK(active_tab_changed_times_.find(model) != - active_tab_changed_times_.end()); - - const absl::optional<size_t> prev_active_tab_index = - selection.old_model.active(); - - if (change.type() == TabStripModelChange::Type::kRemoved) { - auto* remove = change.GetRemove(); - // If the closing tab was the active tab, call the callback. - // Ignore if the tab isn't being closed (this would happen if it were - // dragged to a different tab strip). - for (const auto& contents : remove->contents) { - if (contents.remove_reason == - TabStripModelChange::RemoveReason::kDeleted && - static_cast<size_t>(contents.index) == prev_active_tab_index) { - active_tab_closed_callback_.Run( - model, clock_->NowTicks() - active_tab_changed_times_[model]); - } - } - } - - if (selection.active_tab_changed()) - active_tab_changed_times_[model] = clock_->NowTicks(); -}
diff --git a/chrome/browser/ui/user_education/active_tab_tracker.h b/chrome/browser/ui/user_education/active_tab_tracker.h deleted file mode 100644 index 590fa652..0000000 --- a/chrome/browser/ui/user_education/active_tab_tracker.h +++ /dev/null
@@ -1,61 +0,0 @@ -// Copyright 2018 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef CHROME_BROWSER_UI_USER_EDUCATION_ACTIVE_TAB_TRACKER_H_ -#define CHROME_BROWSER_UI_USER_EDUCATION_ACTIVE_TAB_TRACKER_H_ - -#include <unordered_map> - -#include "base/functional/callback.h" -#include "base/memory/raw_ptr.h" -#include "base/time/time.h" -#include "chrome/browser/ui/tabs/tab_strip_model_observer.h" - -namespace base { -class TickClock; -} - -class TabStripModel; - -// Tracks when tabs become active and notifies client when active tabs are -// closed. The client must register and unregister |TabStripModel|s and set a -// callback to be called when an active tab is closed. -class ActiveTabTracker : public TabStripModelObserver { - public: - // Callback to be called when an active tab is closed. The callback takes two - // arguments: the TabStripModel that changed and how long the tab was active. - using ActiveTabClosedCallback = - base::RepeatingCallback<void(TabStripModel*, base::TimeDelta)>; - - ActiveTabTracker(const base::TickClock* clock, - ActiveTabClosedCallback callback); - - ActiveTabTracker(const ActiveTabTracker&) = delete; - ActiveTabTracker& operator=(const ActiveTabTracker&) = delete; - - ~ActiveTabTracker() override; - - // Observes |tab_strip_model|. Its last activation time is set to the current - // time. - void AddTabStripModel(TabStripModel* tab_strip_model); - - // Stops observing |tab_strip_model|. The |tab_strip_model| must have been - // previously added. - void RemoveTabStripModel(TabStripModel* tab_strip_model); - - private: - // TabStripModelObserver: - void OnTabStripModelChanged( - TabStripModel* model, - const TabStripModelChange& change, - const TabStripSelectionChange& selection) override; - - const raw_ptr<const base::TickClock> clock_; - const ActiveTabClosedCallback active_tab_closed_callback_; - // Map containing the latest time the active tab changed for each tab strip - // model. Also serves as the list of all registered |TabStripModel|s. - std::unordered_map<TabStripModel*, base::TimeTicks> active_tab_changed_times_; -}; - -#endif // CHROME_BROWSER_UI_USER_EDUCATION_ACTIVE_TAB_TRACKER_H_
diff --git a/chrome/browser/ui/user_education/active_tab_tracker_unittest.cc b/chrome/browser/ui/user_education/active_tab_tracker_unittest.cc deleted file mode 100644 index 71f670f8..0000000 --- a/chrome/browser/ui/user_education/active_tab_tracker_unittest.cc +++ /dev/null
@@ -1,204 +0,0 @@ -// Copyright 2018 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "chrome/browser/ui/user_education/active_tab_tracker.h" - -#include <memory> -#include <utility> - -#include "base/test/mock_callback.h" -#include "base/test/simple_test_tick_clock.h" -#include "chrome/browser/ui/tabs/tab_enums.h" -#include "chrome/browser/ui/tabs/tab_strip_model.h" -#include "chrome/browser/ui/tabs/tab_strip_user_gesture_details.h" -#include "chrome/browser/ui/tabs/test_tab_strip_model_delegate.h" -#include "chrome/test/base/testing_profile.h" -#include "content/public/browser/web_contents.h" -#include "content/public/test/browser_task_environment.h" -#include "testing/gtest/include/gtest/gtest.h" -#include "ui/base/models/list_selection_model.h" - -using ::testing::_; -using ::testing::InSequence; -using ::testing::Mock; - -namespace { - -class TestTabStripModelDelegateNoUnloadListener - : public TestTabStripModelDelegate { - public: - TestTabStripModelDelegateNoUnloadListener() = default; - ~TestTabStripModelDelegateNoUnloadListener() override = default; - - bool RunUnloadListenerBeforeClosing(content::WebContents* contents) override { - return false; - } -}; - -constexpr base::TimeDelta kTimeStep = base::Seconds(1); - -} // namespace - -class ActiveTabTrackerTest : public ::testing::Test { - protected: - void SetUp() override { - TestingProfile::Builder profile_builder; - profile_ = profile_builder.Build(); - } - - void AddTab(TabStripModel* model) { - std::unique_ptr<content::WebContents> contents = - content::WebContents::Create( - content::WebContents::CreateParams(profile_.get())); - model->AppendWebContents(std::move(contents), true); - } - - void CloseTabAt(TabStripModel* model, int index) { - model->CloseWebContentsAt(index, TabCloseTypes::CLOSE_USER_GESTURE); - } - - Profile* profile() { return profile_.get(); } - base::SimpleTestTickClock* clock() { return &clock_; } - - private: - // A |BrowserTaskEnvironment| is needed for creating and using - // |WebContents|es in a unit test. - content::BrowserTaskEnvironment task_environment_; - std::unique_ptr<TestingProfile> profile_; - base::SimpleTestTickClock clock_; -}; - -TEST_F(ActiveTabTrackerTest, NotifiesOnActiveTabClosed) { - TestTabStripModelDelegateNoUnloadListener delegate; - TabStripModel model(&delegate, profile()); - - base::MockCallback<ActiveTabTracker::ActiveTabClosedCallback> cb; - ActiveTabTracker tracker(clock(), cb.Get()); - tracker.AddTabStripModel(&model); - - AddTab(&model); - AddTab(&model); - clock()->Advance(kTimeStep); - - model.ActivateTabAt(0, TabStripUserGestureDetails( - TabStripUserGestureDetails::GestureType::kOther)); - - clock()->Advance(kTimeStep); - - EXPECT_CALL(cb, Run(&model, kTimeStep)).Times(1); - CloseTabAt(&model, 0); - - tracker.RemoveTabStripModel(&model); - - model.DetachAndDeleteWebContentsAt(0); -} - -TEST_F(ActiveTabTrackerTest, UpdatesTimes) { - TestTabStripModelDelegateNoUnloadListener delegate; - TabStripModel model(&delegate, profile()); - - base::MockCallback<ActiveTabTracker::ActiveTabClosedCallback> cb; - ActiveTabTracker tracker(clock(), cb.Get()); - tracker.AddTabStripModel(&model); - - AddTab(&model); - AddTab(&model); - model.ActivateTabAt(0, TabStripUserGestureDetails( - TabStripUserGestureDetails::GestureType::kOther)); - - clock()->Advance(kTimeStep); - - model.ActivateTabAt(1, TabStripUserGestureDetails( - TabStripUserGestureDetails::GestureType::kOther)); - model.ActivateTabAt(0, TabStripUserGestureDetails( - TabStripUserGestureDetails::GestureType::kOther)); - - EXPECT_CALL(cb, Run(&model, base::TimeDelta())).Times(1); - CloseTabAt(&model, 0); - - tracker.RemoveTabStripModel(&model); - - model.DetachAndDeleteWebContentsAt(0); -} - -TEST_F(ActiveTabTrackerTest, IgnoresInactiveTabs) { - TestTabStripModelDelegateNoUnloadListener delegate; - TabStripModel model(&delegate, profile()); - - base::MockCallback<ActiveTabTracker::ActiveTabClosedCallback> cb; - ActiveTabTracker tracker(clock(), cb.Get()); - tracker.AddTabStripModel(&model); - - AddTab(&model); - AddTab(&model); - model.ActivateTabAt(0, TabStripUserGestureDetails( - TabStripUserGestureDetails::GestureType::kOther)); - - EXPECT_CALL(cb, Run(_, _)).Times(0); - CloseTabAt(&model, 1); - - tracker.RemoveTabStripModel(&model); - - model.DetachAndDeleteWebContentsAt(0); -} - -TEST_F(ActiveTabTrackerTest, TracksMultipleTabStripModels) { - TestTabStripModelDelegateNoUnloadListener delegate; - TabStripModel model_1(&delegate, profile()); - TabStripModel model_2(&delegate, profile()); - - base::MockCallback<ActiveTabTracker::ActiveTabClosedCallback> cb; - ActiveTabTracker tracker(clock(), cb.Get()); - tracker.AddTabStripModel(&model_1); - tracker.AddTabStripModel(&model_2); - - AddTab(&model_1); - AddTab(&model_1); - AddTab(&model_2); - AddTab(&model_2); - - clock()->Advance(kTimeStep); - model_1.ActivateTabAt(0, - TabStripUserGestureDetails( - TabStripUserGestureDetails::GestureType::kOther)); - - clock()->Advance(kTimeStep); - model_2.ActivateTabAt(0, - TabStripUserGestureDetails( - TabStripUserGestureDetails::GestureType::kOther)); - - { - InSequence seq; - EXPECT_CALL(cb, Run(&model_1, kTimeStep)).Times(1); - EXPECT_CALL(cb, Run(&model_2, base::TimeDelta())).Times(1); - } - - CloseTabAt(&model_1, 0); - CloseTabAt(&model_2, 0); - - tracker.RemoveTabStripModel(&model_1); - tracker.RemoveTabStripModel(&model_2); - - model_1.DetachAndDeleteWebContentsAt(0); - model_2.DetachAndDeleteWebContentsAt(0); -} - -TEST_F(ActiveTabTrackerTest, StopsObservingUponRemove) { - TestTabStripModelDelegateNoUnloadListener delegate; - TabStripModel model(&delegate, profile()); - - base::MockCallback<ActiveTabTracker::ActiveTabClosedCallback> cb; - ActiveTabTracker tracker(clock(), cb.Get()); - tracker.AddTabStripModel(&model); - - AddTab(&model); - AddTab(&model); - - tracker.RemoveTabStripModel(&model); - - EXPECT_CALL(cb, Run(_, _)).Times(0); - CloseTabAt(&model, 0); - - model.DetachAndDeleteWebContentsAt(0); -}
diff --git a/chrome/browser/ui/views/autofill/popup/popup_pixel_test.h b/chrome/browser/ui/views/autofill/popup/popup_pixel_test.h index 757f992..9bc5f0b 100644 --- a/chrome/browser/ui/views/autofill/popup/popup_pixel_test.h +++ b/chrome/browser/ui/views/autofill/popup/popup_pixel_test.h
@@ -92,15 +92,9 @@ return false; } - // VerifyPixelUi works only for these platforms. - // TODO(crbug.com/958242): Revise this if supported platforms change. -#if BUILDFLAG(IS_WIN) || (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) auto* test_info = testing::UnitTest::GetInstance()->current_test_info(); return VerifyPixelUi(widget, test_info->test_case_name(), - test_info->name()); -#else - return true; -#endif + test_info->name()) != ui::test::ActionResult::kFailed; } void WaitForUserDismissal() override {}
diff --git a/chrome/browser/ui/views/autofill/popup/popup_row_strategy.cc b/chrome/browser/ui/views/autofill/popup/popup_row_strategy.cc index 3967b31..d8722f0 100644 --- a/chrome/browser/ui/views/autofill/popup/popup_row_strategy.cc +++ b/chrome/browser/ui/views/autofill/popup/popup_row_strategy.cc
@@ -157,7 +157,7 @@ } if (icon_str == "device") { - return ImageViewFromVectorIcon(kLaptopAndSmartphoneIcon); + return ImageViewFromVectorIcon(kDevicesIcon); } if (icon_str == "google") {
diff --git a/chrome/browser/ui/views/desktop_capture/desktop_media_picker_views.cc b/chrome/browser/ui/views/desktop_capture/desktop_media_picker_views.cc index 347b221d..df454eb 100644 --- a/chrome/browser/ui/views/desktop_capture/desktop_media_picker_views.cc +++ b/chrome/browser/ui/views/desktop_capture/desktop_media_picker_views.cc
@@ -279,6 +279,12 @@ } // namespace +// Enable an updated dialog UI for the getDisplayMedia picker dialog under the +// preferCurrentTab constraint. +BASE_FEATURE(kShareThisTabDialog, + "ShareThisTabDialog", + base::FEATURE_ENABLED_BY_DEFAULT); + DEFINE_CLASS_ELEMENT_IDENTIFIER_VALUE(DesktopMediaPickerDialogView, kDesktopMediaPickerDialogViewIdentifier); @@ -981,7 +987,7 @@ // static std::unique_ptr<DesktopMediaPicker> DesktopMediaPicker::Create( const content::MediaStreamRequest* request) { - if (base::FeatureList::IsEnabled(media::kShareThisTabDialog) && request && + if (base::FeatureList::IsEnabled(kShareThisTabDialog) && request && request->video_type == blink::mojom::MediaStreamType::DISPLAY_VIDEO_CAPTURE_THIS_TAB) { return std::make_unique<ShareThisTabDialogViews>();
diff --git a/chrome/browser/ui/views/desktop_capture/desktop_media_picker_views.h b/chrome/browser/ui/views/desktop_capture/desktop_media_picker_views.h index 2130d086..01fc095 100644 --- a/chrome/browser/ui/views/desktop_capture/desktop_media_picker_views.h +++ b/chrome/browser/ui/views/desktop_capture/desktop_media_picker_views.h
@@ -7,6 +7,7 @@ #include <string> +#include "base/feature_list.h" #include "base/memory/raw_ptr.h" #include "build/build_config.h" #include "chrome/browser/media/webrtc/desktop_media_picker.h" @@ -25,6 +26,8 @@ class DesktopMediaPickerViews; +BASE_DECLARE_FEATURE(kShareThisTabDialog); + // Dialog view used for DesktopMediaPickerViews. // // TODO(crbug.com/987001): Consider renaming this class.
diff --git a/chrome/browser/ui/views/desktop_capture/share_this_tab_dialog_views.cc b/chrome/browser/ui/views/desktop_capture/share_this_tab_dialog_views.cc index 7b5525e..21966f5 100644 --- a/chrome/browser/ui/views/desktop_capture/share_this_tab_dialog_views.cc +++ b/chrome/browser/ui/views/desktop_capture/share_this_tab_dialog_views.cc
@@ -61,6 +61,11 @@ RecordUma(GDMPreferCurrentTabResult::kUserSelectedThisTab); } +// The length of the initial delay during which the "Allow"-button is disabled +// in the share-this-tab dialog. +const base::FeatureParam<int> kShareThisTabDialogActivationDelayMs{ + &kShareThisTabDialog, "activation_delay_ms", 500}; + } // namespace ShareThisTabDialogView::ShareThisTabDialogView( @@ -131,8 +136,7 @@ const base::TimeDelta activation_delay = (ShouldAutoAccept() || ShouldAutoReject()) ? base::Milliseconds(0) - : base::Milliseconds( - media::kShareThisTabDialogActivationDelayMs.Get()); + : base::Milliseconds(kShareThisTabDialogActivationDelayMs.Get()); activation_timer_.Start(FROM_HERE, activation_delay, base::BindOnce(&ShareThisTabDialogView::Activate, weak_factory_.GetWeakPtr()));
diff --git a/chrome/browser/ui/views/eye_dropper/eye_dropper_browsertest.cc b/chrome/browser/ui/views/eye_dropper/eye_dropper_browsertest.cc index c7e2fa8..5c212120 100644 --- a/chrome/browser/ui/views/eye_dropper/eye_dropper_browsertest.cc +++ b/chrome/browser/ui/views/eye_dropper/eye_dropper_browsertest.cc
@@ -17,6 +17,7 @@ #include "content/public/test/browser_test.h" #include "ui/display/display_switches.h" +// TODO(crbug.com/1448244): enable this test on all supported platforms. #if BUILDFLAG(IS_WIN) #include "chrome/browser/ui/views/eye_dropper/eye_dropper_view.h" #endif @@ -52,7 +53,8 @@ auto* test_info = testing::UnitTest::GetInstance()->current_test_info(); const std::string screenshot_name = base::StrCat({test_info->test_case_name(), "_", test_info->name()}); - return VerifyPixelUi(widget, "EyeDropperBrowserTest", screenshot_name); + return VerifyPixelUi(widget, "EyeDropperBrowserTest", screenshot_name) != + ui::test::ActionResult::kFailed; #else return true; #endif @@ -70,8 +72,7 @@ }; // Invokes the eye dropper. -// Flaky: https://crbug.com/1131319 -IN_PROC_BROWSER_TEST_P(EyeDropperBrowserTest, DISABLED_InvokeUi_default) { +IN_PROC_BROWSER_TEST_P(EyeDropperBrowserTest, InvokeUi_default) { ShowAndVerifyUi(); }
diff --git a/chrome/browser/ui/views/file_system_access/file_system_access_icon_view.cc b/chrome/browser/ui/views/file_system_access/file_system_access_icon_view.cc index 695865c..5b8d0660ad 100644 --- a/chrome/browser/ui/views/file_system_access/file_system_access_icon_view.cc +++ b/chrome/browser/ui/views/file_system_access/file_system_access_icon_view.cc
@@ -97,7 +97,7 @@ } const gfx::VectorIcon& FileSystemAccessIconView::GetVectorIcon() const { - return has_write_access_ ? vector_icons::kSaveOriginalFileIcon + return has_write_access_ ? kFileSaveIcon : vector_icons::kInsertDriveFileOutlineIcon; }
diff --git a/chrome/browser/ui/views/frame/browser_view.cc b/chrome/browser/ui/views/frame/browser_view.cc index 3cfc3b2..39a1660c 100644 --- a/chrome/browser/ui/views/frame/browser_view.cc +++ b/chrome/browser/ui/views/frame/browser_view.cc
@@ -153,6 +153,7 @@ #include "chrome/browser/ui/views/tabs/tab_strip.h" #include "chrome/browser/ui/views/theme_copying_widget.h" #include "chrome/browser/ui/views/toolbar/browser_app_menu_button.h" +#include "chrome/browser/ui/views/toolbar/chrome_labs_button.h" #include "chrome/browser/ui/views/toolbar/reload_button.h" #include "chrome/browser/ui/views/toolbar/toolbar_view.h" #include "chrome/browser/ui/views/translate/translate_bubble_controller.h" @@ -596,7 +597,7 @@ gfx::RectF bounds_f(browser_view_->frame()->GetBoundsForTabStripRegion( tabstrip_minimum_size)); views::View::ConvertRectToTarget(browser_view_->parent(), browser_view_, - &bounds_f); + &bounds_f); return gfx::ToEnclosingRect(bounds_f); } @@ -972,8 +973,9 @@ auto* global_registry = extensions::ExtensionCommandsGlobalRegistry::Get(browser_->profile()); if (global_registry->registry_for_active_window() == - extension_keybinding_registry_.get()) + extension_keybinding_registry_.get()) { global_registry->set_registry_for_active_window(nullptr); + } // The TabStrip attaches a listener to the model. Make sure we shut down the // TabStrip first so that it can cleanly remove the listener. @@ -1015,9 +1017,9 @@ BrowserView* BrowserView::GetBrowserViewForNativeWindow( gfx::NativeWindow window) { views::Widget* widget = views::Widget::GetWidgetForNativeWindow(window); - return widget ? - reinterpret_cast<BrowserView*>(widget->GetNativeWindowProperty( - kBrowserViewKey)) : nullptr; + return widget ? reinterpret_cast<BrowserView*>( + widget->GetNativeWindowProperty(kBrowserViewKey)) + : nullptr; } // static @@ -1457,22 +1459,22 @@ if (should_animate) { #if BUILDFLAG(IS_CHROMEOS_ASH) - loading_animation_tracker_.emplace( + loading_animation_tracker_.emplace( GetWidget()->GetCompositor()->RequestNewThroughputTracker()); - loading_animation_tracker_->Start(ash::metrics_util::ForSmoothness( + loading_animation_tracker_->Start(ash::metrics_util::ForSmoothness( base::BindRepeating(&RecordTabLoadingSmoothness))); #endif - // Loads are happening, and the timer isn't running, so start it. - loading_animation_start_ = base::TimeTicks::Now(); - loading_animation_timer_.Start(FROM_HERE, base::Milliseconds(30), this, - &BrowserView::LoadingAnimationCallback); + // Loads are happening, and the timer isn't running, so start it. + loading_animation_start_ = base::TimeTicks::Now(); + loading_animation_timer_.Start(FROM_HERE, base::Milliseconds(30), this, + &BrowserView::LoadingAnimationCallback); } else { loading_animation_timer_.Stop(); #if BUILDFLAG(IS_CHROMEOS_ASH) - loading_animation_tracker_->Stop(); + loading_animation_tracker_->Stop(); #endif - // Loads are now complete, update the state if a task was scheduled. - LoadingAnimationCallback(); + // Loads are now complete, update the state if a task was scheduled. + LoadingAnimationCallback(); } } @@ -1515,8 +1517,7 @@ // some work. This also prevents extra events from being reported by the // Visibility API under Windows, as ChangeWebContents will briefly hide // the WebContents window. - bool change_tab_contents = - contents_web_view_->web_contents() != new_contents; + bool change_tab_contents = contents_web_view_->web_contents() != new_contents; #if BUILDFLAG(IS_MAC) // Widget::IsActive is inconsistent between Mac and Aura, so don't check for @@ -1554,8 +1555,7 @@ // callback to us and trigger layout. if (bookmark_bar_view_.get()) { bookmark_bar_view_->SetBookmarkBarState( - browser_->bookmark_bar_state(), - BookmarkBar::DONT_ANIMATE_STATE_CHANGE); + browser_->bookmark_bar_state(), BookmarkBar::DONT_ANIMATE_STATE_CHANGE); } infobar_container_->ChangeInfoBarManager( @@ -1658,8 +1658,8 @@ const AppMenuButton* app_menu_button = toolbar_button_provider()->GetAppMenuButton(); bool app_menu_showing = app_menu_button && app_menu_button->IsMenuShowing(); - toolbar_button_provider() - ->ZoomChangedForActiveTab(can_show_bubble && !app_menu_showing); + toolbar_button_provider()->ZoomChangedForActiveTab(can_show_bubble && + !app_menu_showing); } gfx::Rect BrowserView::GetRestoredBounds() const { @@ -2219,6 +2219,13 @@ side_panel_coordinator()->Show(entry_id, open_trigger); } +void BrowserView::ShowChromeLabs() { + if (toolbar()->chrome_labs_button() && + toolbar()->chrome_labs_button()->GetVisible()) { + toolbar()->chrome_labs_button()->GetChromeLabsCoordinator()->ShowOrHide(); + } +} + bool BrowserView::AppUsesBorderlessMode() const { return browser()->app_controller() && browser()->app_controller()->AppUsesBorderlessMode(); @@ -2643,8 +2650,8 @@ return ShowTranslateBubbleResult::BROWSER_WINDOW_MINIMIZED; PageActionIconView* translate_icon = - toolbar_button_provider() - ->GetPageActionIconView(PageActionIconType::kTranslate); + toolbar_button_provider()->GetPageActionIconView( + PageActionIconType::kTranslate); TranslateBubbleController::GetOrCreate(web_contents) ->ShowTranslateBubble(toolbar_button_provider()->GetAnchorView( PageActionIconType::kTranslate), @@ -3383,8 +3390,8 @@ // its desired height, since the toolbar is considered part of the // window's client area as far as GetWindowBoundsForClientBounds is // concerned... - bounds->set_height( - bounds->height() + toolbar_->GetPreferredSize().height()); + bounds->set_height(bounds->height() + + toolbar_->GetPreferredSize().height()); } gfx::Rect rect = @@ -4072,8 +4079,7 @@ std::make_unique<BookmarkBarView>(browser_.get(), this); bookmark_bar_view_->set_owned_by_client(); bookmark_bar_view_->SetBookmarkBarState( - browser_->bookmark_bar_state(), - BookmarkBar::DONT_ANIMATE_STATE_CHANGE); + browser_->bookmark_bar_state(), BookmarkBar::DONT_ANIMATE_STATE_CHANGE); GetBrowserViewLayout()->set_bookmark_bar(bookmark_bar_view_.get()); } // Don't change the visibility of the BookmarkBarView. BrowserViewLayout @@ -4113,11 +4119,11 @@ return true; } -void BrowserView::UpdateDevToolsForContents( - WebContents* web_contents, bool update_devtools_web_contents) { +void BrowserView::UpdateDevToolsForContents(WebContents* web_contents, + bool update_devtools_web_contents) { DevToolsContentsResizingStrategy strategy; - WebContents* devtools = DevToolsWindow::GetInTabWebContents( - web_contents, &strategy); + WebContents* devtools = + DevToolsWindow::GetInTabWebContents(web_contents, &strategy); if (!devtools_web_view_->web_contents() && devtools && !devtools_focus_tracker_.get()) { @@ -4364,27 +4370,43 @@ switch (app_command_id) { // NOTE: The order here matches the APPCOMMAND declaration order in the // Windows headers. - case APPCOMMAND_BROWSER_BACKWARD: return IDC_BACK; - case APPCOMMAND_BROWSER_FORWARD: return IDC_FORWARD; - case APPCOMMAND_BROWSER_REFRESH: return IDC_RELOAD; - case APPCOMMAND_BROWSER_HOME: return IDC_HOME; - case APPCOMMAND_BROWSER_STOP: return IDC_STOP; - case APPCOMMAND_BROWSER_SEARCH: return IDC_FOCUS_SEARCH; - case APPCOMMAND_HELP: return IDC_HELP_PAGE_VIA_KEYBOARD; - case APPCOMMAND_NEW: return IDC_NEW_TAB; - case APPCOMMAND_OPEN: return IDC_OPEN_FILE; - case APPCOMMAND_CLOSE: return IDC_CLOSE_TAB; - case APPCOMMAND_SAVE: return IDC_SAVE_PAGE; - case APPCOMMAND_PRINT: return IDC_PRINT; - case APPCOMMAND_COPY: return IDC_COPY; - case APPCOMMAND_CUT: return IDC_CUT; - case APPCOMMAND_PASTE: return IDC_PASTE; + case APPCOMMAND_BROWSER_BACKWARD: + return IDC_BACK; + case APPCOMMAND_BROWSER_FORWARD: + return IDC_FORWARD; + case APPCOMMAND_BROWSER_REFRESH: + return IDC_RELOAD; + case APPCOMMAND_BROWSER_HOME: + return IDC_HOME; + case APPCOMMAND_BROWSER_STOP: + return IDC_STOP; + case APPCOMMAND_BROWSER_SEARCH: + return IDC_FOCUS_SEARCH; + case APPCOMMAND_HELP: + return IDC_HELP_PAGE_VIA_KEYBOARD; + case APPCOMMAND_NEW: + return IDC_NEW_TAB; + case APPCOMMAND_OPEN: + return IDC_OPEN_FILE; + case APPCOMMAND_CLOSE: + return IDC_CLOSE_TAB; + case APPCOMMAND_SAVE: + return IDC_SAVE_PAGE; + case APPCOMMAND_PRINT: + return IDC_PRINT; + case APPCOMMAND_COPY: + return IDC_COPY; + case APPCOMMAND_CUT: + return IDC_CUT; + case APPCOMMAND_PASTE: + return IDC_PASTE; // TODO(pkasting): http://b/1113069 Handle these. case APPCOMMAND_UNDO: case APPCOMMAND_REDO: case APPCOMMAND_SPELL_CHECK: - default: return -1; + default: + return -1; } #else // App commands are Windows-specific so there's nothing to do here. @@ -4592,9 +4614,8 @@ event_name); } -bool BrowserView::DoCutCopyPasteForWebContents( - WebContents* contents, - void (WebContents::*method)()) { +bool BrowserView::DoCutCopyPasteForWebContents(WebContents* contents, + void (WebContents::*method)()) { // It's possible for a non-null WebContents to have a null RWHV if it's // crashed or otherwise been killed. content::RenderWidgetHostView* rwhv = contents->GetRenderWidgetHostView();
diff --git a/chrome/browser/ui/views/frame/browser_view.h b/chrome/browser/ui/views/frame/browser_view.h index c8ac187f..3e81238 100644 --- a/chrome/browser/ui/views/frame/browser_view.h +++ b/chrome/browser/ui/views/frame/browser_view.h
@@ -521,6 +521,7 @@ void ShowSidePanel( absl::optional<SidePanelEntryId> entry_id, absl::optional<SidePanelOpenTrigger> open_trigger) override; + void ShowChromeLabs() override; SharingDialog* ShowSharingDialog(content::WebContents* contents, SharingDialogData data) override;
diff --git a/chrome/browser/ui/views/frame/tab_strip_region_view.cc b/chrome/browser/ui/views/frame/tab_strip_region_view.cc index 4b7cdb5..546c06ed 100644 --- a/chrome/browser/ui/views/frame/tab_strip_region_view.cc +++ b/chrome/browser/ui/views/frame/tab_strip_region_view.cc
@@ -20,7 +20,6 @@ #include "chrome/browser/ui/views/tabs/tab_strip_scroll_container.h" #include "chrome/browser/ui/views/tabs/tab_style_views.h" #include "chrome/browser/ui/views/toolbar/toolbar_view.h" -#include "chrome/browser/ui/views/user_education/tip_marquee_view.h" #include "chrome/grit/generated_resources.h" #include "ui/accessibility/ax_node_data.h" #include "ui/base/clipboard/clipboard_constants.h" @@ -119,17 +118,6 @@ const auto control_padding = gfx::Insets::TLBR( 0, 0, 0, GetLayoutConstant(TABSTRIP_REGION_VIEW_CONTROL_PADDING)); - tip_marquee_view_ = AddChildView(std::make_unique<TipMarqueeView>()); - tip_marquee_view_->SetProperty( - views::kFlexBehaviorKey, - views::FlexSpecification( - views::LayoutOrientation::kHorizontal, - views::MinimumFlexSizeRule::kPreferredSnapToMinimum) - .WithOrder(2)); - tip_marquee_view_->SetProperty(views::kCrossAxisAlignmentKey, - views::LayoutAlignment::kCenter); - tip_marquee_view_->SetProperty(views::kMarginsKey, control_padding); - SetProperty(views::kElementIdentifierKey, kTabStripRegionElementId); #if BUILDFLAG(IS_CHROMEOS)
diff --git a/chrome/browser/ui/views/frame/tab_strip_region_view.h b/chrome/browser/ui/views/frame/tab_strip_region_view.h index 7c1270b..2dad820 100644 --- a/chrome/browser/ui/views/frame/tab_strip_region_view.h +++ b/chrome/browser/ui/views/frame/tab_strip_region_view.h
@@ -18,7 +18,6 @@ class NewTabButton; class TabSearchButton; class TabStrip; -class TipMarqueeView; class TabStripScrollContainer; // Container for the tabstrip and the other views sharing space with it - @@ -45,8 +44,6 @@ TabSearchButton* tab_search_button() { return tab_search_button_; } - TipMarqueeView* tip_marquee_view() { return tip_marquee_view_; } - views::View* reserved_grab_handle_space_for_testing() { return reserved_grab_handle_space_; } @@ -87,7 +84,6 @@ tab_strip_scroll_container_ = nullptr; raw_ptr<NewTabButton, DanglingUntriaged> new_tab_button_ = nullptr; raw_ptr<TabSearchButton, DanglingUntriaged> tab_search_button_ = nullptr; - raw_ptr<TipMarqueeView, DanglingUntriaged> tip_marquee_view_ = nullptr; const base::CallbackListSubscription subscription_ = ui::TouchUiController::Get()->RegisterCallback(
diff --git a/chrome/browser/ui/views/omnibox/omnibox_view_views.cc b/chrome/browser/ui/views/omnibox/omnibox_view_views.cc index a284925..03d8766 100644 --- a/chrome/browser/ui/views/omnibox/omnibox_view_views.cc +++ b/chrome/browser/ui/views/omnibox/omnibox_view_views.cc
@@ -1949,8 +1949,7 @@ index, IDC_SEND_TAB_TO_SELF, l10n_util::GetStringUTF16(IDS_MENU_SEND_TAB_TO_SELF)); #if !BUILDFLAG(IS_MAC) - menu_contents->SetIcon( - index, ui::ImageModel::FromVectorIcon(kLaptopAndSmartphoneIcon)); + menu_contents->SetIcon(index, ui::ImageModel::FromVectorIcon(kDevicesIcon)); #endif menu_contents->InsertSeparatorAt(++index, ui::NORMAL_SEPARATOR); }
diff --git a/chrome/browser/ui/views/page_info/page_info_view_factory.cc b/chrome/browser/ui/views/page_info/page_info_view_factory.cc index 2fe9a3a..79c855a 100644 --- a/chrome/browser/ui/views/page_info/page_info_view_factory.cc +++ b/chrome/browser/ui/views/page_info/page_info_view_factory.cc
@@ -352,9 +352,8 @@ : &vector_icons::kBluetoothScanningChromeRefreshIcon; break; case ContentSettingsType::FILE_SYSTEM_WRITE_GUARD: - icon = show_blocked_badge - ? &vector_icons::kSaveOriginalFileOffChromeRefreshIcon - : &vector_icons::kSaveOriginalFileChromeRefreshIcon; + icon = show_blocked_badge ? &kFileSaveOffChromeRefreshIcon + : &kFileSaveChromeRefreshIcon; break; case ContentSettingsType::VR: icon = show_blocked_badge @@ -465,7 +464,7 @@ icon = &vector_icons::kBluetoothScanningIcon; break; case ContentSettingsType::FILE_SYSTEM_WRITE_GUARD: - icon = &vector_icons::kSaveOriginalFileIcon; + icon = &kFileSaveIcon; break; case ContentSettingsType::VR: case ContentSettingsType::AR:
diff --git a/chrome/browser/ui/views/passwords/password_generation_popup_view_views.cc b/chrome/browser/ui/views/passwords/password_generation_popup_view_views.cc index bbc1ad5..6bf1a8c 100644 --- a/chrome/browser/ui/views/passwords/password_generation_popup_view_views.cc +++ b/chrome/browser/ui/views/passwords/password_generation_popup_view_views.cc
@@ -12,6 +12,7 @@ #include "base/strings/utf_string_conversions.h" #include "chrome/browser/ui/passwords/password_generation_popup_controller.h" #include "chrome/browser/ui/passwords/ui_utils.h" +#include "chrome/browser/ui/views/accessibility/non_accessible_image_view.h" #include "chrome/browser/ui/views/chrome_layout_provider.h" #include "chrome/browser/ui/views/chrome_typography.h" #include "chrome/browser/ui/views/passwords/views_utils.h" @@ -39,6 +40,7 @@ #include "ui/views/controls/styled_label.h" #include "ui/views/layout/box_layout.h" #include "ui/views/layout/fill_layout.h" +#include "ui/views/layout/flex_layout_view.h" #include "ui/views/widget/widget.h" namespace { @@ -121,9 +123,66 @@ return IDS_PASSWORD_GENERATION_HELP_TEXT_TRY_SOMETHING_NEW; case PasswordGenerationVariation::kConvenience: return IDS_PASSWORD_GENERATION_HELP_TEXT_CONVENIENCE; + case PasswordGenerationVariation::kCrossDevice: + return IDS_PASSWORD_GENERATION_HELP_TEXT; } } +std::unique_ptr<views::FlexLayoutView> CreateLabelWithCheckIcon( + const std::u16string& label_text) { + auto label_with_icon = std::make_unique<views::FlexLayoutView>(); + + // TODO(crbug.com/1444070): Add correct check icon (without circle). + auto icon = std::make_unique<NonAccessibleImageView>(); + icon->SetImage(ui::ImageModel::FromVectorIcon( + vector_icons::kCheckCircleIcon, ui::kColorIconSecondary, kIconSize)); + label_with_icon->AddChildView(std::move(icon)); + + auto spacer = std::make_unique<views::View>(); + spacer->SetPreferredSize( + gfx::Size(autofill::PopupBaseView::GetHorizontalPadding(), /*height=*/1)); + label_with_icon->AddChildView(std::move(spacer)); + + label_with_icon->AddChildView( + std::make_unique<views::Label>(label_text, CONTEXT_DIALOG_BODY_TEXT_SMALL, + views::style::STYLE_SECONDARY)); + + return label_with_icon; +} + +// Creates help text listing benefits of password generation in bullet points. +std::unique_ptr<views::View> CreateCrossDeviceFooter( + const std::u16string& primary_account_email, + base::RepeatingClosure open_password_manager_closure) { + auto cross_device_footer = std::make_unique<views::View>(); + + auto* layout = + cross_device_footer->SetLayoutManager(std::make_unique<views::BoxLayout>( + views::BoxLayout::Orientation::kVertical)); + layout->set_cross_axis_alignment( + views::BoxLayout::CrossAxisAlignment::kStart); + + cross_device_footer->AddChildView(std::make_unique<views::Label>( + l10n_util::GetStringUTF16(IDS_PASSWORD_GENERATION_BENEFITS), + CONTEXT_DIALOG_BODY_TEXT_SMALL, views::style::STYLE_SECONDARY)); + cross_device_footer->AddChildView(CreateLabelWithCheckIcon( + l10n_util::GetStringUTF16(IDS_PASSWORD_GENERATION_CROSS_DEVICE))); + cross_device_footer->AddChildView(CreateLabelWithCheckIcon( + l10n_util::GetStringUTF16(IDS_PASSWORD_GENERATION_SECURITY))); + cross_device_footer->AddChildView(CreateLabelWithCheckIcon( + l10n_util::GetStringUTF16(IDS_PASSWORD_GENERATION_PROACTIVE_CHECK))); + + views::StyledLabel* help_label = + cross_device_footer->AddChildView(CreateGooglePasswordManagerLabel( + GetHelpTextMessageId(), + /*link_message_id=*/ + IDS_PASSWORD_BUBBLES_PASSWORD_MANAGER_LINK_TEXT_SYNCED_TO_ACCOUNT, + primary_account_email, open_password_manager_closure)); + help_label->SetDisplayedOnBackgroundColor(ui::kColorBubbleFooterBackground); + + return cross_device_footer; +} + } // namespace // Class that shows the generated password and associated UI (currently an @@ -379,6 +438,15 @@ }, base::Unretained(this)); + if (password_manager::features::kPasswordGenerationExperimentVariationParam + .Get() == PasswordGenerationVariation::kCrossDevice) { + auto* cross_device_footer = AddChildView(CreateCrossDeviceFooter( + controller_->GetPrimaryAccountEmail(), open_password_manager_closure)); + cross_device_footer->SetBorder(views::CreateEmptyBorder( + gfx::Insets::VH(kVerticalPadding, kHorizontalMargin))); + return; + } + views::StyledLabel* help_label = AddChildView(CreateGooglePasswordManagerLabel( GetHelpTextMessageId(),
diff --git a/chrome/browser/ui/views/permissions/permission_request_chip_browsertest.cc b/chrome/browser/ui/views/permissions/permission_request_chip_browsertest.cc index 96e402d..ffb7014 100644 --- a/chrome/browser/ui/views/permissions/permission_request_chip_browsertest.cc +++ b/chrome/browser/ui/views/permissions/permission_request_chip_browsertest.cc
@@ -372,16 +372,11 @@ if (!chip) return false; -// TODO(olesiamrukhno): VerifyPixelUi works only for these platforms, revise -// this if supported platforms change. -#if BUILDFLAG(IS_WIN) || (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) auto* test_info = testing::UnitTest::GetInstance()->current_test_info(); const std::string screenshot_name = base::StrCat({test_info->test_case_name(), "_", test_info->name()}); - return VerifyPixelUi(chip, "BrowserUi", screenshot_name); -#else - return true; -#endif + return VerifyPixelUi(chip, "BrowserUi", screenshot_name) != + ui::test::ActionResult::kFailed; } void WaitForUserDismissal() override {
diff --git a/chrome/browser/ui/views/profiles/enterprise_profile_welcome_ui_browsertest.cc b/chrome/browser/ui/views/profiles/enterprise_profile_welcome_ui_browsertest.cc index 3997a35..334a4fc 100644 --- a/chrome/browser/ui/views/profiles/enterprise_profile_welcome_ui_browsertest.cc +++ b/chrome/browser/ui/views/profiles/enterprise_profile_welcome_ui_browsertest.cc
@@ -179,7 +179,7 @@ base::StrCat({test_info->test_case_name(), "_", test_info->name()}); return VerifyPixelUi(widget, "EnterpriseWelcomeUIWindowPixelTest", - screenshot_name); + screenshot_name) != ui::test::ActionResult::kFailed; } void WaitForUserDismissal() override {
diff --git a/chrome/browser/ui/views/profiles/first_run_intro_browsertest.cc b/chrome/browser/ui/views/profiles/first_run_intro_browsertest.cc index 6904b25..fea6fac 100644 --- a/chrome/browser/ui/views/profiles/first_run_intro_browsertest.cc +++ b/chrome/browser/ui/views/profiles/first_run_intro_browsertest.cc
@@ -122,7 +122,8 @@ const std::string screenshot_name = base::StrCat({test_info->test_case_name(), "_", test_info->name()}); - return VerifyPixelUi(widget, "FirstRunIntroPixelTest", screenshot_name); + return VerifyPixelUi(widget, "FirstRunIntroPixelTest", screenshot_name) != + ui::test::ActionResult::kFailed; } void WaitForUserDismissal() override {
diff --git a/chrome/browser/ui/views/profiles/profile_picker_ui_browsertest.cc b/chrome/browser/ui/views/profiles/profile_picker_ui_browsertest.cc index 37193e5..c7bb012 100644 --- a/chrome/browser/ui/views/profiles/profile_picker_ui_browsertest.cc +++ b/chrome/browser/ui/views/profiles/profile_picker_ui_browsertest.cc
@@ -121,7 +121,8 @@ const std::string screenshot_name = base::StrCat({test_info->test_case_name(), "_", test_info->name()}); - return VerifyPixelUi(widget, "ProfilePickerUIPixelTest", screenshot_name); + return VerifyPixelUi(widget, "ProfilePickerUIPixelTest", screenshot_name) != + ui::test::ActionResult::kFailed; } void WaitForUserDismissal() override {
diff --git a/chrome/browser/ui/views/profiles/profile_type_choice_ui_browsertest.cc b/chrome/browser/ui/views/profiles/profile_type_choice_ui_browsertest.cc index 1b4226f..b0455bf8a 100644 --- a/chrome/browser/ui/views/profiles/profile_type_choice_ui_browsertest.cc +++ b/chrome/browser/ui/views/profiles/profile_type_choice_ui_browsertest.cc
@@ -115,7 +115,7 @@ base::StrCat({test_info->test_case_name(), "_", test_info->name()}); return VerifyPixelUi(widget, "ProfileTypeChoiceUIPixelTest", - screenshot_name); + screenshot_name) != ui::test::ActionResult::kFailed; } void WaitForUserDismissal() override {
diff --git a/chrome/browser/ui/views/profiles/sync_confirmation_ui_browsertest.cc b/chrome/browser/ui/views/profiles/sync_confirmation_ui_browsertest.cc index 028d6fa..1dd4d59 100644 --- a/chrome/browser/ui/views/profiles/sync_confirmation_ui_browsertest.cc +++ b/chrome/browser/ui/views/profiles/sync_confirmation_ui_browsertest.cc
@@ -184,7 +184,7 @@ base::StrCat({test_info->test_case_name(), "_", test_info->name()}); return VerifyPixelUi(widget, "SyncConfirmationUIWindowPixelTest", - screenshot_name); + screenshot_name) != ui::test::ActionResult::kFailed; } void WaitForUserDismissal() override {
diff --git a/chrome/browser/ui/views/send_tab_to_self/send_tab_to_self_icon_view.cc b/chrome/browser/ui/views/send_tab_to_self/send_tab_to_self_icon_view.cc index eb1ab65..444969d9 100644 --- a/chrome/browser/ui/views/send_tab_to_self/send_tab_to_self_icon_view.cc +++ b/chrome/browser/ui/views/send_tab_to_self/send_tab_to_self_icon_view.cc
@@ -110,7 +110,7 @@ PageActionIconView::ExecuteSource execute_source) {} const gfx::VectorIcon& SendTabToSelfIconView::GetVectorIcon() const { - return kLaptopAndSmartphoneIcon; + return kDevicesIcon; } SendTabToSelfBubbleController* SendTabToSelfIconView::GetController() const {
diff --git a/chrome/browser/ui/views/send_tab_to_self/send_tab_to_self_toolbar_icon_view.cc b/chrome/browser/ui/views/send_tab_to_self/send_tab_to_self_toolbar_icon_view.cc index 6b152ad..4f6b969 100644 --- a/chrome/browser/ui/views/send_tab_to_self/send_tab_to_self_toolbar_icon_view.cc +++ b/chrome/browser/ui/views/send_tab_to_self/send_tab_to_self_toolbar_icon_view.cc
@@ -26,12 +26,11 @@ SendTabToSelfToolbarIconView::SendTabToSelfToolbarIconView( BrowserView* browser_view) - : ImageView(ui::ImageModel::FromVectorIcon( - features::IsChromeRefresh2023() - ? kLaptopAndSmartphoneChromeRefreshIcon - : kLaptopAndSmartphoneIcon, - ui::kColorIcon, - gfx::kFaviconSize)), + : ImageView(ui::ImageModel::FromVectorIcon(features::IsChromeRefresh2023() + ? kDevicesChromeRefreshIcon + : kDevicesIcon, + ui::kColorIcon, + gfx::kFaviconSize)), browser_(browser_view->browser()), browser_view_(browser_view) { SetAccessibleName(l10n_util::GetStringUTF16(
diff --git a/chrome/browser/ui/views/side_panel/search_companion/companion_page_browsertest.cc b/chrome/browser/ui/views/side_panel/search_companion/companion_page_browsertest.cc index de2b25d..d25002dc 100644 --- a/chrome/browser/ui/views/side_panel/search_companion/companion_page_browsertest.cc +++ b/chrome/browser/ui/views/side_panel/search_companion/companion_page_browsertest.cc
@@ -12,6 +12,7 @@ #include "base/test/bind.h" #include "base/test/metrics/histogram_tester.h" #include "base/test/scoped_feature_list.h" +#include "build/buildflag.h" #include "chrome/browser/companion/core/companion_metrics_logger.h" #include "chrome/browser/companion/core/constants.h" #include "chrome/browser/companion/core/features.h" @@ -68,6 +69,8 @@ const char kHost[] = "foo.com"; const char kSearchQueryUrl[] = "https://www.google.com/search?q=xyz"; +const char kExpectedExpsPromoUrl[] = "https://foobar.com/"; + } // namespace // Helper class to generate a script that sends a postmessage to the browser @@ -80,6 +83,7 @@ // to the postmessage. absl::optional<PromoType> promo_type; absl::optional<PromoAction> promo_action; + absl::optional<std::string> exps_promo_url; absl::optional<bool> is_exps_opted_in; absl::optional<UiSurface> ui_surface; absl::optional<int> ui_surface_position; @@ -116,6 +120,10 @@ << ";"; } + if (exps_promo_url.has_value()) { + ss << "message['expsPromoUrl'] = '" << exps_promo_url.value() << "';"; + } + if (is_exps_opted_in.has_value()) { ss << "message['isExpsOptedIn'] = " << base::NumberToString(is_exps_opted_in.value()) << ";"; @@ -345,6 +353,12 @@ companion::features::kSidePanelCompanion, params); } + void WaitForTabCount(int expected) { + while (browser()->tab_strip_model()->count() != expected) { + base::RunLoop().RunUntilIdle(); + } + } + void WaitForHistogram(const std::string& histogram_name) { // Continue if histogram was already recorded. if (base::StatisticsRecorder::FindHistogram(histogram_name)) { @@ -706,6 +720,67 @@ static_cast<int>(companion::PromoEvent::kMsbbRejected)); } +IN_PROC_BROWSER_TEST_F(CompanionPageBrowserTest, ExpsPromoURLLoadsInNewTab) { + ukm::TestAutoSetUkmRecorder ukm_recorder; + // Load a page on the active tab. + ASSERT_TRUE( + ui_test_utils::NavigateToURL(browser(), CreateUrl(kHost, kRelativeUrl1))); + ASSERT_EQ(side_panel_coordinator()->GetCurrentEntryId(), absl::nullopt); + + EXPECT_EQ(1, browser()->tab_strip_model()->count()); + + // Open companion companion via toolbar entry point. + side_panel_coordinator()->Show(SidePanelEntry::Id::kSearchCompanion); + EXPECT_TRUE(side_panel_coordinator()->IsSidePanelShowing()); + + WaitForCompanionToBeLoaded(); + EXPECT_EQ(side_panel_coordinator()->GetCurrentEntryId(), + SidePanelEntry::Id::kSearchCompanion); + + // Show exps promo, user accepts it. + CompanionScriptBuilder builder(MethodType::kOnPromoAction); + builder.promo_type = PromoType::kExps; + builder.promo_action = PromoAction::kAccepted; + builder.exps_promo_url = kExpectedExpsPromoUrl; + EXPECT_TRUE(ExecJs(builder.Build())); + + // Verify that a new tab opens up to load the exps URL. + WaitForTabCount(2); + EXPECT_TRUE(web_contents()->GetVisibleURL().spec().starts_with( + kExpectedExpsPromoUrl)); +} + +#if !BUILDFLAG(IS_CHROMEOS_ASH) && !BUILDFLAG(IS_CHROMEOS_LACROS) +IN_PROC_BROWSER_TEST_F(CompanionPageBrowserTest, SigninLoadsInNewTab) { + ukm::TestAutoSetUkmRecorder ukm_recorder; + // Load a page on the active tab. + ASSERT_TRUE( + ui_test_utils::NavigateToURL(browser(), CreateUrl(kHost, kRelativeUrl1))); + ASSERT_EQ(side_panel_coordinator()->GetCurrentEntryId(), absl::nullopt); + + EXPECT_EQ(1, browser()->tab_strip_model()->count()); + + // Open companion companion via toolbar entry point. + side_panel_coordinator()->Show(SidePanelEntry::Id::kSearchCompanion); + EXPECT_TRUE(side_panel_coordinator()->IsSidePanelShowing()); + + WaitForCompanionToBeLoaded(); + EXPECT_EQ(side_panel_coordinator()->GetCurrentEntryId(), + SidePanelEntry::Id::kSearchCompanion); + + // Show sign-in promo, user accepts it. + CompanionScriptBuilder builder(MethodType::kOnPromoAction); + builder.promo_type = PromoType::kSignin; + builder.promo_action = PromoAction::kAccepted; + EXPECT_TRUE(ExecJs(builder.Build())); + + // Verify that a new tab opens up to load the sign-in URL. + WaitForTabCount(2); + EXPECT_TRUE(web_contents()->GetVisibleURL().spec().starts_with( + "https://accounts.google.com/signin/chrome/sync")); +} +#endif + IN_PROC_BROWSER_TEST_F(CompanionPageBrowserTest, RegionSearchClick) { ukm::TestAutoSetUkmRecorder ukm_recorder;
diff --git a/chrome/browser/ui/views/tabs/fade_label_view.cc b/chrome/browser/ui/views/tabs/fade_label_view.cc index 2520738..0d41ecc6 100644 --- a/chrome/browser/ui/views/tabs/fade_label_view.cc +++ b/chrome/browser/ui/views/tabs/fade_label_view.cc
@@ -21,7 +21,7 @@ void FadeLabel::SetData(const FadeLabelViewData& data) { data_ = data; std::u16string text = data.text; - absl::optional<bool> is_filename = data.is_filename; + const bool is_filename = data.is_filename; SetElideBehavior(is_filename ? gfx::NO_ELIDE : gfx::ELIDE_TAIL); if (is_filename) { text = TruncateFilenameToTwoLines(text);
diff --git a/chrome/browser/ui/views/toolbar/chrome_labs_browsertest.cc b/chrome/browser/ui/views/toolbar/chrome_labs_browsertest.cc index 5fe583ca..a439f91 100644 --- a/chrome/browser/ui/views/toolbar/chrome_labs_browsertest.cc +++ b/chrome/browser/ui/views/toolbar/chrome_labs_browsertest.cc
@@ -7,10 +7,10 @@ #include "chrome/browser/about_flags.h" #include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/test/test_browser_dialog.h" +#include "chrome/browser/ui/toolbar/chrome_labs_model.h" #include "chrome/browser/ui/ui_features.h" #include "chrome/browser/ui/views/frame/browser_view.h" #include "chrome/browser/ui/views/toolbar/chrome_labs_button.h" -#include "chrome/browser/ui/views/toolbar/chrome_labs_model.h" #include "chrome/browser/ui/views/toolbar/toolbar_view.h" #include "components/flags_ui/feature_entry_macros.h" #include "components/version_info/channel.h"
diff --git a/chrome/browser/ui/views/toolbar/chrome_labs_bubble_view.cc b/chrome/browser/ui/views/toolbar/chrome_labs_bubble_view.cc index 3209c04..e9de43f 100644 --- a/chrome/browser/ui/views/toolbar/chrome_labs_bubble_view.cc +++ b/chrome/browser/ui/views/toolbar/chrome_labs_bubble_view.cc
@@ -13,9 +13,9 @@ #include "chrome/browser/about_flags.h" #include "chrome/browser/flag_descriptions.h" #include "chrome/browser/ui/browser.h" +#include "chrome/browser/ui/toolbar/chrome_labs_model.h" #include "chrome/browser/ui/views/toolbar/chrome_labs_button.h" #include "chrome/browser/ui/views/toolbar/chrome_labs_item_view.h" -#include "chrome/browser/ui/views/toolbar/chrome_labs_model.h" #include "chrome/browser/ui/webui/flags/flags_ui.h" #include "chrome/grit/generated_resources.h" #include "chrome/grit/google_chrome_strings.h"
diff --git a/chrome/browser/ui/views/toolbar/chrome_labs_button.cc b/chrome/browser/ui/views/toolbar/chrome_labs_button.cc index f001bdf57..ca4c0f3 100644 --- a/chrome/browser/ui/views/toolbar/chrome_labs_button.cc +++ b/chrome/browser/ui/views/toolbar/chrome_labs_button.cc
@@ -11,10 +11,10 @@ #include "chrome/browser/profiles/profile.h" #include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/toolbar/chrome_labs_prefs.h" +#include "chrome/browser/ui/toolbar/chrome_labs_utils.h" #include "chrome/browser/ui/views/frame/browser_view.h" #include "chrome/browser/ui/views/toolbar/chrome_labs_bubble_view.h" #include "chrome/browser/ui/views/toolbar/chrome_labs_coordinator.h" -#include "chrome/browser/ui/views/toolbar/chrome_labs_utils.h" #include "chrome/browser/ui/webui/flags/flags_ui.h" #include "chrome/grit/generated_resources.h" #include "ui/base/l10n/l10n_util.h" @@ -24,14 +24,6 @@ #include "ui/views/controls/button/button_controller.h" #include "ui/views/controls/dot_indicator.h" -#if BUILDFLAG(IS_CHROMEOS_ASH) -#include "ash/constants/ash_switches.h" -#include "base/system/sys_info.h" -#include "chrome/browser/ash/ownership/owner_settings_service_ash.h" -#include "chrome/browser/ash/ownership/owner_settings_service_ash_factory.h" -#include "chrome/browser/ash/profiles/profile_helper.h" -#endif - ChromeLabsButton::ChromeLabsButton(BrowserView* browser_view, const ChromeLabsModel* model) : ToolbarButton(base::BindRepeating(&ChromeLabsButton::ButtonPressed, @@ -73,76 +65,12 @@ } void ChromeLabsButton::ButtonPressed() { - // On Chrome OS if we are still waiting for IsOwnerAsync to return abort - // button clicks. -#if BUILDFLAG(IS_CHROMEOS_ASH) - if (is_waiting_to_show_) { - return; - } -#endif - - if (chrome_labs_coordinator_->BubbleExists()) { - chrome_labs_coordinator_->Hide(); - return; - } - - // Ash-chrome uses a different FlagsStorage if the user is the owner. On - // ChromeOS verifying if the owner is signed in is async operation. - // Asynchronously check if the user is the owner and show the Chrome Labs - // bubble only after we have this information. -#if BUILDFLAG(IS_CHROMEOS_ASH) - // Bypass possible incognito profile same as chrome://flags does. - Profile* original_profile = - browser_view_->browser()->profile()->GetOriginalProfile(); - if ((base::SysInfo::IsRunningOnChromeOS() || - should_circumvent_device_check_for_testing_) && - ash::OwnerSettingsServiceAshFactory::GetForBrowserContext( - original_profile)) { - ash::OwnerSettingsServiceAsh* service = - ash::OwnerSettingsServiceAshFactory::GetForBrowserContext( - original_profile); - is_waiting_to_show_ = true; - service->IsOwnerAsync(base::BindOnce( - [](ChromeLabsButton* button, base::WeakPtr<BrowserView> browser_view, - ChromeLabsCoordinator* coordinator, bool is_owner) { - // BrowserView may have been destroyed before async function returns - if (!browser_view) - return; - is_owner - ? coordinator->Show( - ChromeLabsCoordinator::ShowUserType::kChromeOsOwnerUserType) - : coordinator->Show(); - button->is_waiting_to_show_ = false; - }, - this, browser_view_->GetAsWeakPtr(), chrome_labs_coordinator_.get())); - return; - } -#endif - chrome_labs_coordinator_->Show(); + chrome_labs_coordinator_->ShowOrHide(); } void ChromeLabsButton::UpdateDotIndicator() { -#if BUILDFLAG(IS_CHROMEOS_ASH) - ScopedDictPrefUpdate update( - browser_view_->browser()->profile()->GetPrefs(), - chrome_labs_prefs::kChromeLabsNewBadgeDictAshChrome); -#else - ScopedDictPrefUpdate update(g_browser_process->local_state(), - chrome_labs_prefs::kChromeLabsNewBadgeDict); -#endif - - base::Value::Dict& new_badge_prefs = update.Get(); - - std::vector<std::string> lab_internal_names; - const std::vector<LabInfo>& all_labs = model_->GetLabInfo(); - - bool should_show_dot_indicator = base::ranges::any_of( - all_labs.begin(), all_labs.end(), [&new_badge_prefs](const LabInfo& lab) { - absl::optional<int> new_badge_pref_value = - new_badge_prefs.FindInt(lab.internal_name); - // Show the dot indicator if new experiments have not been seen yet. - return new_badge_pref_value == chrome_labs_prefs::kChromeLabsNewExperimentPrefValue; - }); + bool should_show_dot_indicator = AreNewChromeLabsExperimentsAvailable( + model_, browser_view_->browser()->profile()); if (should_show_dot_indicator) new_experiments_indicator_->Show();
diff --git a/chrome/browser/ui/views/toolbar/chrome_labs_button.h b/chrome/browser/ui/views/toolbar/chrome_labs_button.h index 4a43def..3f7fb47 100644 --- a/chrome/browser/ui/views/toolbar/chrome_labs_button.h +++ b/chrome/browser/ui/views/toolbar/chrome_labs_button.h
@@ -7,8 +7,8 @@ #include "base/memory/raw_ptr.h" #include "build/chromeos_buildflags.h" +#include "chrome/browser/ui/toolbar/chrome_labs_model.h" #include "chrome/browser/ui/views/toolbar/chrome_labs_coordinator.h" -#include "chrome/browser/ui/views/toolbar/chrome_labs_model.h" #include "chrome/browser/ui/views/toolbar/toolbar_button.h" #include "ui/base/metadata/metadata_header_macros.h" #include "ui/views/controls/dot_indicator.h" @@ -29,34 +29,21 @@ void HideDotIndicator(); -#if BUILDFLAG(IS_CHROMEOS_ASH) - - void SetShouldCircumventDeviceCheckForTesting(bool should_circumvent) { - should_circumvent_device_check_for_testing_ = should_circumvent; - } -#endif + void ButtonPressed(); bool GetDotIndicatorVisibilityForTesting() const { return new_experiments_indicator_->GetVisible(); } - ChromeLabsCoordinator* GetChromeLabsCoordinatorForTesting() { + ChromeLabsCoordinator* GetChromeLabsCoordinator() { return chrome_labs_coordinator_.get(); } private: - void ButtonPressed(); - void UpdateDotIndicator(); raw_ptr<BrowserView, DanglingUntriaged> browser_view_; -#if BUILDFLAG(IS_CHROMEOS_ASH) - bool is_waiting_to_show_ = false; - // Used to circumvent the IsRunningOnChromeOS() check in ash-chrome tests. - bool should_circumvent_device_check_for_testing_ = false; -#endif - raw_ptr<const ChromeLabsModel, DanglingUntriaged> model_; raw_ptr<views::DotIndicator> new_experiments_indicator_;
diff --git a/chrome/browser/ui/views/toolbar/chrome_labs_button_unittest.cc b/chrome/browser/ui/views/toolbar/chrome_labs_button_unittest.cc index 86c236c8..a1837cf 100644 --- a/chrome/browser/ui/views/toolbar/chrome_labs_button_unittest.cc +++ b/chrome/browser/ui/views/toolbar/chrome_labs_button_unittest.cc
@@ -7,12 +7,12 @@ #include "base/memory/raw_ptr.h" #include "base/test/scoped_feature_list.h" #include "chrome/browser/about_flags.h" +#include "chrome/browser/ui/toolbar/chrome_labs_model.h" #include "chrome/browser/ui/toolbar/chrome_labs_prefs.h" #include "chrome/browser/ui/ui_features.h" #include "chrome/browser/ui/views/frame/browser_view.h" #include "chrome/browser/ui/views/frame/test_with_browser_view.h" #include "chrome/browser/ui/views/toolbar/chrome_labs_bubble_view.h" -#include "chrome/browser/ui/views/toolbar/chrome_labs_model.h" #include "chrome/browser/ui/views/toolbar/toolbar_view.h" #include "chrome/browser/unexpire_flags.h" #include "components/flags_ui/feature_entry_macros.h" @@ -96,13 +96,13 @@ TEST_F(ChromeLabsButtonTest, ShowAndHideChromeLabsBubbleOnPress) { ChromeLabsButton* labs_button = browser_view()->toolbar()->chrome_labs_button(); - ChromeLabsCoordinator* coordinator = - labs_button->GetChromeLabsCoordinatorForTesting(); + ChromeLabsCoordinator* coordinator = labs_button->GetChromeLabsCoordinator(); #if BUILDFLAG(IS_CHROMEOS_ASH) ash::OwnerSettingsServiceAsh* service_ = ash::OwnerSettingsServiceAshFactory::GetForBrowserContext(GetProfile()); - labs_button->SetShouldCircumventDeviceCheckForTesting(true); + labs_button->GetChromeLabsCoordinator() + ->SetShouldCircumventDeviceCheckForTesting(true); #endif EXPECT_FALSE(coordinator->BubbleExists());
diff --git a/chrome/browser/ui/views/toolbar/chrome_labs_coordinator.cc b/chrome/browser/ui/views/toolbar/chrome_labs_coordinator.cc index 30a105d..dcde2fdc 100644 --- a/chrome/browser/ui/views/toolbar/chrome_labs_coordinator.cc +++ b/chrome/browser/ui/views/toolbar/chrome_labs_coordinator.cc
@@ -10,6 +10,7 @@ #include "chrome/browser/browser_process.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/ui/browser.h" +#include "chrome/browser/ui/views/frame/browser_view.h" #include "chrome/browser/ui/views/toolbar/chrome_labs_bubble_view.h" #include "chrome/browser/ui/views/toolbar/chrome_labs_button.h" #include "chrome/browser/ui/views/toolbar/chrome_labs_view_controller.h" @@ -17,6 +18,8 @@ #include "ui/views/bubble/bubble_dialog_delegate_view.h" #if BUILDFLAG(IS_CHROMEOS_ASH) +#include "ash/constants/ash_switches.h" +#include "base/system/sys_info.h" #include "chrome/browser/ash/ownership/owner_settings_service_ash.h" #include "chrome/browser/ash/ownership/owner_settings_service_ash_factory.h" #include "chrome/browser/ash/settings/about_flags.h" @@ -41,7 +44,6 @@ void ChromeLabsCoordinator::Show(ShowUserType user_type) { #if BUILDFLAG(IS_CHROMEOS_ASH) - // Bypass possible incognito profile same as chrome://flags does. Profile* original_profile = browser_->profile()->GetOriginalProfile(); if (user_type == ShowUserType::kChromeOsOwnerUserType) { @@ -94,6 +96,50 @@ } } +void ChromeLabsCoordinator::ShowOrHide() { +#if BUILDFLAG(IS_CHROMEOS_ASH) + if (is_waiting_to_show_) { + return; + } +#endif + if (BubbleExists()) { + Hide(); + } + // Ash-chrome uses a different FlagsStorage if the user is the owner. On + // ChromeOS verifying if the owner is signed in is async operation. + // Asynchronously check if the user is the owner and show the Chrome Labs + // bubble only after we have this information. +#if BUILDFLAG(IS_CHROMEOS_ASH) + // Bypass possible incognito profile same as chrome://flags does. + Profile* original_profile = browser_->profile()->GetOriginalProfile(); + if ((base::SysInfo::IsRunningOnChromeOS() || + should_circumvent_device_check_for_testing_) && + ash::OwnerSettingsServiceAshFactory::GetForBrowserContext( + original_profile)) { + ash::OwnerSettingsServiceAsh* service = + ash::OwnerSettingsServiceAshFactory::GetForBrowserContext( + original_profile); + is_waiting_to_show_ = true; + service->IsOwnerAsync(base::BindOnce( + [](base::WeakPtr<BrowserView> browser_view, + ChromeLabsCoordinator* coordinator, bool is_owner) { + // BrowserView may have been destroyed before async function returns + if (!browser_view) { + return; + } + is_owner + ? coordinator->Show( + ChromeLabsCoordinator::ShowUserType::kChromeOsOwnerUserType) + : coordinator->Show(); + coordinator->is_waiting_to_show_ = false; + }, + BrowserView::GetBrowserViewForBrowser(browser_)->GetAsWeakPtr(), this)); + return; + } +#endif + Show(); +} + void ChromeLabsCoordinator::OnViewIsDeleting(views::View* observed_view) { chrome_labs_bubble_view_ = nullptr; }
diff --git a/chrome/browser/ui/views/toolbar/chrome_labs_coordinator.h b/chrome/browser/ui/views/toolbar/chrome_labs_coordinator.h index 0f3c75b..d21836d 100644 --- a/chrome/browser/ui/views/toolbar/chrome_labs_coordinator.h +++ b/chrome/browser/ui/views/toolbar/chrome_labs_coordinator.h
@@ -6,7 +6,9 @@ #define CHROME_BROWSER_UI_VIEWS_TOOLBAR_CHROME_LABS_COORDINATOR_H_ #include "base/memory/raw_ptr.h" -#include "chrome/browser/ui/views/toolbar/chrome_labs_model.h" +#include "build/buildflag.h" +#include "build/chromeos_buildflags.h" +#include "chrome/browser/ui/toolbar/chrome_labs_model.h" #include "components/flags_ui/flags_state.h" #include "components/flags_ui/flags_storage.h" #include "ui/views/view_observer.h" @@ -26,7 +28,8 @@ kChromeOsOwnerUserType, }; - ChromeLabsCoordinator(ChromeLabsButton* anchor_view, Browser* browser, + ChromeLabsCoordinator(ChromeLabsButton* anchor_view, + Browser* browser, const ChromeLabsModel* model); ~ChromeLabsCoordinator() override; @@ -36,6 +39,9 @@ void Hide(); + // Toggles the visibility of the bubble. + void ShowOrHide(); + ChromeLabsBubbleView* GetChromeLabsBubbleViewForTesting() { return chrome_labs_bubble_view_; } @@ -46,6 +52,12 @@ return controller_.get(); } +#if BUILDFLAG(IS_CHROMEOS_ASH) + void SetShouldCircumventDeviceCheckForTesting(bool should_circumvent) { + should_circumvent_device_check_for_testing_ = should_circumvent; + } +#endif + private: // views::ViewObserver void OnViewIsDeleting(views::View* observed_view) override; @@ -59,6 +71,10 @@ std::unique_ptr<flags_ui::FlagsStorage> flags_storage_; raw_ptr<flags_ui::FlagsState> flags_state_; std::unique_ptr<ChromeLabsViewController> controller_; +#if BUILDFLAG(IS_CHROMEOS_ASH) + bool is_waiting_to_show_ = false; + bool should_circumvent_device_check_for_testing_ = false; +#endif }; #endif // CHROME_BROWSER_UI_VIEWS_TOOLBAR_CHROME_LABS_COORDINATOR_H_
diff --git a/chrome/browser/ui/views/toolbar/chrome_labs_item_view.cc b/chrome/browser/ui/views/toolbar/chrome_labs_item_view.cc index d02f6e5..415f6b6 100644 --- a/chrome/browser/ui/views/toolbar/chrome_labs_item_view.cc +++ b/chrome/browser/ui/views/toolbar/chrome_labs_item_view.cc
@@ -11,9 +11,9 @@ #include "chrome/browser/flag_descriptions.h" #include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/chrome_pages.h" +#include "chrome/browser/ui/toolbar/chrome_labs_model.h" #include "chrome/browser/ui/views/chrome_layout_provider.h" #include "chrome/browser/ui/views/chrome_typography.h" -#include "chrome/browser/ui/views/toolbar/chrome_labs_model.h" #include "chrome/grit/generated_resources.h" #include "components/flags_ui/feature_entry.h" #include "components/user_education/views/new_badge_label.h" @@ -161,16 +161,16 @@ if (!lab.visible_name.empty()) GetViewAccessibility().OverrideName(lab.visible_name); - // There is currently a MacOS VoiceOver screen reader bug where VoiceOver does - // not announce the accessible description for groups (crbug.com/1197159). The - // MacOS specific code here provides a temporary mitigation for screen reader - // users and moves announcing the description to when the user interacts with - // the combobox of that experiment. Don’t add an accessible description for - // now to prevent the screen reader from announcing the description twice in - // the time between when the VoiceOver bug is fixed and this code gets - // removed. - // TODO(elainechien): Remove MacOS specific code for experiment description - // when VoiceOver bug is fixed. + // There is currently a MacOS VoiceOver screen reader bug where VoiceOver + // does not announce the accessible description for groups + // (crbug.com/1197159). The MacOS specific code here provides a temporary + // mitigation for screen reader users and moves announcing the description + // to when the user interacts with the combobox of that experiment. Don’t + // add an accessible description for now to prevent the screen reader from + // announcing the description twice in the time between when the VoiceOver + // bug is fixed and this code gets removed. + // TODO(elainechien): Remove MacOS specific code for experiment description + // when VoiceOver bug is fixed. #if !BUILDFLAG(IS_MAC) if (!lab.visible_description.empty())
diff --git a/chrome/browser/ui/views/toolbar/chrome_labs_unittest.cc b/chrome/browser/ui/views/toolbar/chrome_labs_unittest.cc index a3a743c2..ffe451a 100644 --- a/chrome/browser/ui/views/toolbar/chrome_labs_unittest.cc +++ b/chrome/browser/ui/views/toolbar/chrome_labs_unittest.cc
@@ -9,7 +9,9 @@ #include "base/test/task_environment.h" #include "base/time/time.h" #include "chrome/browser/about_flags.h" +#include "chrome/browser/ui/toolbar/chrome_labs_model.h" #include "chrome/browser/ui/toolbar/chrome_labs_prefs.h" +#include "chrome/browser/ui/toolbar/chrome_labs_utils.h" #include "chrome/browser/ui/ui_features.h" #include "chrome/browser/ui/views/frame/browser_view.h" #include "chrome/browser/ui/views/frame/test_with_browser_view.h" @@ -17,8 +19,6 @@ #include "chrome/browser/ui/views/toolbar/chrome_labs_button.h" #include "chrome/browser/ui/views/toolbar/chrome_labs_coordinator.h" #include "chrome/browser/ui/views/toolbar/chrome_labs_item_view.h" -#include "chrome/browser/ui/views/toolbar/chrome_labs_model.h" -#include "chrome/browser/ui/views/toolbar/chrome_labs_utils.h" #include "chrome/browser/ui/views/toolbar/chrome_labs_view_controller.h" #include "chrome/browser/ui/views/toolbar/toolbar_view.h" #include "chrome/browser/unexpire_flags.h"
diff --git a/chrome/browser/ui/views/toolbar/chrome_labs_view_controller.cc b/chrome/browser/ui/views/toolbar/chrome_labs_view_controller.cc index f248ee9..c9712ce 100644 --- a/chrome/browser/ui/views/toolbar/chrome_labs_view_controller.cc +++ b/chrome/browser/ui/views/toolbar/chrome_labs_view_controller.cc
@@ -21,11 +21,11 @@ #include "chrome/browser/flag_descriptions.h" #include "chrome/browser/lifetime/application_lifetime.h" #include "chrome/browser/ui/browser.h" +#include "chrome/browser/ui/toolbar/chrome_labs_model.h" #include "chrome/browser/ui/toolbar/chrome_labs_prefs.h" +#include "chrome/browser/ui/toolbar/chrome_labs_utils.h" #include "chrome/browser/ui/views/toolbar/chrome_labs_bubble_view.h" #include "chrome/browser/ui/views/toolbar/chrome_labs_item_view.h" -#include "chrome/browser/ui/views/toolbar/chrome_labs_model.h" -#include "chrome/browser/ui/views/toolbar/chrome_labs_utils.h" #include "chrome/common/buildflags.h" #include "components/flags_ui/feature_entry.h" #include "components/flags_ui/flags_state.h" @@ -105,8 +105,10 @@ } // namespace ChromeLabsViewController::ChromeLabsViewController( - const ChromeLabsModel* model, ChromeLabsBubbleView* chrome_labs_bubble_view, - Browser* browser, flags_ui::FlagsState* flags_state, + const ChromeLabsModel* model, + ChromeLabsBubbleView* chrome_labs_bubble_view, + Browser* browser, + flags_ui::FlagsState* flags_state, flags_ui::FlagsStorage* flags_storage) : model_(model), chrome_labs_bubble_view_(chrome_labs_bubble_view),
diff --git a/chrome/browser/ui/views/toolbar/toolbar_view.cc b/chrome/browser/ui/views/toolbar/toolbar_view.cc index 1f92f101..4682fa0 100644 --- a/chrome/browser/ui/views/toolbar/toolbar_view.cc +++ b/chrome/browser/ui/views/toolbar/toolbar_view.cc
@@ -41,7 +41,9 @@ #include "chrome/browser/ui/layout_constants.h" #include "chrome/browser/ui/side_search/side_search_utils.h" #include "chrome/browser/ui/tabs/tab_strip_model.h" +#include "chrome/browser/ui/toolbar/chrome_labs_model.h" #include "chrome/browser/ui/toolbar/chrome_labs_prefs.h" +#include "chrome/browser/ui/toolbar/chrome_labs_utils.h" #include "chrome/browser/ui/ui_features.h" #include "chrome/browser/ui/view_ids.h" #include "chrome/browser/ui/views/bookmarks/bookmark_bubble_view.h" @@ -67,8 +69,6 @@ #include "chrome/browser/ui/views/toolbar/back_forward_button.h" #include "chrome/browser/ui/views/toolbar/browser_app_menu_button.h" #include "chrome/browser/ui/views/toolbar/chrome_labs_button.h" -#include "chrome/browser/ui/views/toolbar/chrome_labs_model.h" -#include "chrome/browser/ui/views/toolbar/chrome_labs_utils.h" #include "chrome/browser/ui/views/toolbar/home_button.h" #include "chrome/browser/ui/views/toolbar/reload_button.h" #include "chrome/browser/ui/views/toolbar/side_panel_toolbar_button.h"
diff --git a/chrome/browser/ui/views/toolbar/toolbar_view.h b/chrome/browser/ui/views/toolbar/toolbar_view.h index 42165ce8..c38f2b0 100644 --- a/chrome/browser/ui/views/toolbar/toolbar_view.h +++ b/chrome/browser/ui/views/toolbar/toolbar_view.h
@@ -15,13 +15,13 @@ #include "chrome/browser/ui/page_action/page_action_icon_type.h" #include "chrome/browser/ui/toolbar/app_menu_icon_controller.h" #include "chrome/browser/ui/toolbar/back_forward_menu_model.h" +#include "chrome/browser/ui/toolbar/chrome_labs_model.h" #include "chrome/browser/ui/views/frame/browser_root_view.h" #include "chrome/browser/ui/views/frame/toolbar_button_provider.h" #include "chrome/browser/ui/views/intent_picker_bubble_view.h" #include "chrome/browser/ui/views/location_bar/custom_tab_bar_view.h" #include "chrome/browser/ui/views/location_bar/location_bar_view.h" #include "chrome/browser/ui/views/profiles/avatar_toolbar_button.h" -#include "chrome/browser/ui/views/toolbar/chrome_labs_model.h" #include "chrome/browser/ui/views/toolbar/side_panel_toolbar_button.h" #include "components/prefs/pref_member.h" #include "third_party/abseil-cpp/absl/types/optional.h"
diff --git a/chrome/browser/ui/views/user_education/tip_marquee_view.cc b/chrome/browser/ui/views/user_education/tip_marquee_view.cc deleted file mode 100644 index 37289154..0000000 --- a/chrome/browser/ui/views/user_education/tip_marquee_view.cc +++ /dev/null
@@ -1,370 +0,0 @@ -// Copyright 2020 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "chrome/browser/ui/views/user_education/tip_marquee_view.h" - -#include <memory> - -#include "base/command_line.h" -#include "base/functional/bind.h" -#include "base/memory/raw_ptr.h" -#include "base/strings/utf_string_conversions.h" -#include "chrome/browser/resources_util.h" -#include "chrome/grit/theme_resources.h" -#include "components/strings/grit/components_strings.h" -#include "ui/base/l10n/l10n_util.h" -#include "ui/base/metadata/metadata_header_macros.h" -#include "ui/base/metadata/metadata_impl_macros.h" -#include "ui/base/resource/resource_bundle.h" -#include "ui/base/theme_provider.h" -#include "ui/gfx/geometry/insets.h" -#include "ui/gfx/paint_vector_icon.h" -#include "ui/gfx/text_constants.h" -#include "ui/views/background.h" -#include "ui/views/border.h" -#include "ui/views/bubble/bubble_border.h" -#include "ui/views/bubble/bubble_dialog_delegate_view.h" -#include "ui/views/controls/button/md_text_button.h" -#include "ui/views/controls/styled_label.h" -#include "ui/views/layout/fill_layout.h" -#include "ui/views/layout/flex_layout.h" -#include "ui/views/layout/flex_layout_types.h" -#include "ui/views/layout/layout_types.h" -#include "ui/views/style/typography.h" -#include "ui/views/view_class_properties.h" - -namespace { - -constexpr char16_t kTipMarqueeViewSeparator[] = u" - "; - -// TODO(crbug.com/1171654): move to localized strings when out of tech demo mode -constexpr char16_t kTipMarqueeViewGotIt[] = u"Got it"; -constexpr char16_t kTipMarqueeViewClickToHideTip[] = u"Click to hide tip"; -constexpr char16_t kTipMarqueeViewClickToShowTip[] = u"Click to show tip"; -constexpr char16_t kTipMarqueeViewClickToLearnMore[] = u"Click to learn more"; - -// ------------------------------------------------------------------ -// TODO(crbug.com/1171654): remove the entire section below before this code -// ships, once the UX demo is over. -// -// This section provides the ability to show a demo tip marquee on startup with -// placeholder text, for UX evaluation only. This code should be removed before -// beta roll. -// -// Valid command-line arguments are: -// --tip-marquee-view-test=simple -// Displays a tip with no "learn more" link -// --tip-marquee-view-test=learn-more -// Displays a tip with a "learn more" link that displays a sample bubble -// -constexpr char kTipMarqueeViewTestSwitch[] = "tip-marquee-view-test"; -constexpr char kTipMarqueeViewTestTypeSimple[] = "simple"; -constexpr char kTipMarqueeViewTestTypeLearnMore[] = "learn-more"; -constexpr char16_t kTipMarqueeViewTestTitleText[] = u"Lorem Ipsum"; -constexpr char16_t kTipMarqueeViewTestText[] = - u"Lorem ipsum dolor sit amet consectetur"; -constexpr char16_t kTipMarqueeViewTestBodyText[] = - u"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod " - u"tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim " - u"veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea " - u"commodo consequat."; - -class TestTipMarqueeViewLearnMoreBubble - : public views::BubbleDialogDelegateView { - public: - explicit TestTipMarqueeViewLearnMoreBubble(TipMarqueeView* marquee) - : BubbleDialogDelegateView(marquee, views::BubbleBorder::TOP_LEFT), - marquee_(marquee) { - SetButtons(ui::DIALOG_BUTTON_OK | ui::DIALOG_BUTTON_CANCEL); - SetButtonLabel(ui::DIALOG_BUTTON_OK, kTipMarqueeViewGotIt); - SetButtonLabel(ui::DIALOG_BUTTON_CANCEL, - l10n_util::GetStringUTF16(IDS_CLOSE)); - SetAcceptCallback(base::BindOnce( - &TestTipMarqueeViewLearnMoreBubble::OnAccept, base::Unretained(this))); - set_close_on_deactivate(true); - SetOwnedByWidget(true); - - auto* const layout = - SetLayoutManager(std::make_unique<views::FlexLayout>()); - layout->SetOrientation(views::LayoutOrientation::kHorizontal); - layout->SetCrossAxisAlignment(views::LayoutAlignment::kStart); - layout->SetInteriorMargin(gfx::Insets::TLBR(10, 0, 0, 0)); - views::View* const placeholder_image = - AddChildView(std::make_unique<views::View>()); - placeholder_image->SetPreferredSize(gfx::Size(150, 175)); - // In real UI, we wouldn't use kColorMidground directly, but rather create - // a new color ID mapped to it (or similar). - placeholder_image->SetBackground( - views::CreateThemedSolidBackground(ui::kColorMidground)); - - views::View* const rhs_view = AddChildView(std::make_unique<views::View>()); - auto* const rhs_layout = - rhs_view->SetLayoutManager(std::make_unique<views::FlexLayout>()); - rhs_layout->SetOrientation(views::LayoutOrientation::kVertical); - rhs_layout->SetCrossAxisAlignment(views::LayoutAlignment::kStart); - rhs_layout->SetInteriorMargin(gfx::Insets::TLBR(0, 16, 0, 0)); - - auto* const title_text = - rhs_view->AddChildView(std::make_unique<views::Label>( - kTipMarqueeViewTestTitleText, views::style::CONTEXT_DIALOG_TITLE)); - title_text->SetProperty(views::kMarginsKey, gfx::Insets::TLBR(6, 0, 10, 0)); - - auto* const body_text = rhs_view->AddChildView( - std::make_unique<views::Label>(kTipMarqueeViewTestBodyText, - views::style::CONTEXT_DIALOG_BODY_TEXT)); - body_text->SetMultiLine(true); - body_text->SetMaximumWidth(250); - body_text->SetHorizontalAlignment(gfx::HorizontalAlignment::ALIGN_LEFT); - } - - private: - void OnAccept() { marquee_->ClearAndHideTip(); } - - const raw_ptr<TipMarqueeView> marquee_; -}; - -void ShowTestTipMarqueeViewLearnMoreBubble(TipMarqueeView* marquee) { - views::BubbleDialogDelegateView::CreateBubble( - std::make_unique<TestTipMarqueeViewLearnMoreBubble>(marquee)) - ->Show(); -} - -void MaybeShowTestTipMarqueeView(TipMarqueeView* marquee) { - base::CommandLine* const command_line = - base::CommandLine::ForCurrentProcess(); - if (command_line->HasSwitch(kTipMarqueeViewTestSwitch)) { - const std::string test_type = - command_line->GetSwitchValueASCII(kTipMarqueeViewTestSwitch); - if (test_type == kTipMarqueeViewTestTypeSimple) { - marquee->SetAndShowTip(kTipMarqueeViewTestText); - } else if (test_type == kTipMarqueeViewTestTypeLearnMore) { - marquee->SetAndShowTip( - kTipMarqueeViewTestText, - base::BindRepeating(&ShowTestTipMarqueeViewLearnMoreBubble)); - } else { - LOG(WARNING) << "Invalid switch value: --" << kTipMarqueeViewTestSwitch - << "=" << test_type; - } - } -} - -// TODO(crbug.com/1171654): remove the entire section above before this code -// ships, once the UX demo is over. -// ------------------------------------------------------------------ - -// The width of the multiline text display in the overflow bubble. -constexpr int kTipMarqueeViewOverflowTextWidth = 250; - -class TipMarqueeOverflowBubbleView : public views::BubbleDialogDelegateView { - public: - METADATA_HEADER(TipMarqueeOverflowBubbleView); - TipMarqueeOverflowBubbleView(TipMarqueeView* tip_marquee_view, - const std::u16string& text) - : BubbleDialogDelegateView(tip_marquee_view, - views::BubbleBorder::TOP_LEFT), - tip_marquee_view_(tip_marquee_view) { - SetButtons(ui::DIALOG_BUTTON_OK); - SetButtonLabel(ui::DIALOG_BUTTON_OK, kTipMarqueeViewGotIt); - SetAcceptCallback(base::BindOnce(&TipMarqueeOverflowBubbleView::OnAccept, - base::Unretained(this))); - set_close_on_deactivate(true); - SetOwnedByWidget(true); - - auto* const label = AddChildView(std::make_unique<views::Label>( - text, views::style::CONTEXT_DIALOG_BODY_TEXT)); - label->SetMultiLine(true); - label->SetMaximumWidth(kTipMarqueeViewOverflowTextWidth); - label->SetHorizontalAlignment(gfx::HorizontalAlignment::ALIGN_LEFT); - SetLayoutManager(std::make_unique<views::FillLayout>()); - } - ~TipMarqueeOverflowBubbleView() override = default; - - private: - void OnAccept() { - LOG(WARNING) << "OnAccept()"; - tip_marquee_view_->ClearAndHideTip(); - } - - const raw_ptr<TipMarqueeView> tip_marquee_view_; -}; - -BEGIN_METADATA(TipMarqueeOverflowBubbleView, views::BubbleDialogDelegateView) -END_METADATA - -} // namespace - -constexpr int TipMarqueeView::kTipMarqueeIconSize; -constexpr int TipMarqueeView::kTipMarqueeIconPadding; -constexpr int TipMarqueeView::kTipMarqueeIconTotalWidth; - -TipMarqueeView::TipMarqueeView() { - tip_text_label_ = AddChildView(std::make_unique<views::StyledLabel>()); - tip_text_label_->SetTextContext(views::style::CONTEXT_LABEL); - tip_text_label_->SetDefaultTextStyle(views::style::STYLE_PRIMARY); - // TODO(dfried): Figure out how to set elide behavior. - // tip_text_label_->SetElideBehavior(gfx::ElideBehavior::ELIDE_TAIL); - - SetBorder(views::CreateEmptyBorder( - gfx::Insets::TLBR(0, kTipMarqueeIconTotalWidth, 0, 0))); - - SetVisible(false); - - MaybeShowTestTipMarqueeView(this); -} - -TipMarqueeView::~TipMarqueeView() = default; - -bool TipMarqueeView::SetAndShowTip( - const std::u16string& tip_text, - LearnMoreLinkClickedCallback learn_more_link_clicked_callback) { - tip_text_ = tip_text; - std::u16string full_tip = tip_text; - const std::u16string separator = kTipMarqueeViewSeparator; - const size_t tip_text_length = tip_text.length(); - const bool has_learn_more_link = !learn_more_link_clicked_callback.is_null(); - full_tip.append(separator); - if (has_learn_more_link) - full_tip.append(l10n_util::GetStringUTF16(IDS_LEARN_MORE)); - else - full_tip.append(kTipMarqueeViewGotIt); - tip_text_label_->SetText(full_tip); - tip_text_label_->AddStyleRange( - gfx::Range(tip_text_length + separator.length(), full_tip.length()), - views::StyledLabel::RangeStyleInfo::CreateForLink(base::BindRepeating( - &TipMarqueeView::LinkClicked, base::Unretained(this)))); - learn_more_link_clicked_callback_ = learn_more_link_clicked_callback; - collapsed_ = false; - SetVisible(true); - return !collapsed_; -} - -void TipMarqueeView::ClearAndHideTip() { - if (show_tip_widget_) - show_tip_widget_->Close(); - tip_text_label_->SetText(std::u16string()); - tip_text_.clear(); - learn_more_link_clicked_callback_.Reset(); - SetVisible(false); -} - -bool TipMarqueeView::OnMousePressed(const ui::MouseEvent& event) { - if (!IsPointInIcon(event.location())) - return false; - if (!GetFitsInLayout()) { - if (learn_more_link_clicked_callback_) - LinkClicked(); - else - ToggleOverflowWidget(); - } else { - collapsed_ = !collapsed_; - InvalidateLayout(); - } - return true; -} - -gfx::Size TipMarqueeView::CalculatePreferredSize() const { - if (collapsed_) - return GetMinimumSize(); - - const gfx::Size label_size = tip_text_label_->GetPreferredSize(); - const int width = label_size.width() + kTipMarqueeIconTotalWidth; - const int height = std::max(label_size.height(), kTipMarqueeIconSize); - return gfx::Size(width, height); -} - -gfx::Size TipMarqueeView::GetMinimumSize() const { - return gfx::Size(kTipMarqueeIconSize, kTipMarqueeIconSize); -} - -void TipMarqueeView::Layout() { - // TODO(dfried): animate label - if (collapsed_ || size().width() < GetPreferredSize().width()) { - tip_text_label_->SetVisible(false); - } else { - tip_text_label_->SetVisible(true); - gfx::Rect text_rect = GetContentsBounds(); - text_rect.Inset(gfx::Insets::VH( - std::max(0, (text_rect.height() - - tip_text_label_->GetPreferredSize().height()) / - 2), - 0)); - tip_text_label_->SetBoundsRect(text_rect); - } -} - -void TipMarqueeView::OnPaint(gfx::Canvas* canvas) { - View::OnPaint(canvas); - gfx::ImageSkia* const icon = - ui::ResourceBundle::GetSharedInstance().GetImageSkiaNamed( - IDR_PRODUCT_LOGO_16); - canvas->DrawImageInt(*icon, 0, 0, kTipMarqueeIconSize, kTipMarqueeIconSize, 0, - (height() - kTipMarqueeIconSize) / 2, - kTipMarqueeIconSize, kTipMarqueeIconSize, true); -} - -std::u16string TipMarqueeView::GetTooltipText(const gfx::Point& p) const { - if (!GetVisible() || !IsPointInIcon(p)) - return View::GetTooltipText(p); - - // TODO(pkasting): Localize - if (tip_text_label_->GetVisible()) - return kTipMarqueeViewClickToHideTip; - if (GetFitsInLayout()) - return kTipMarqueeViewClickToShowTip; - std::u16string result = tip_text_; - if (learn_more_link_clicked_callback_) { - result.append(kTipMarqueeViewSeparator); - result.append(kTipMarqueeViewClickToLearnMore); - } - return result; -} - -void TipMarqueeView::LinkClicked() { - if (!learn_more_link_clicked_callback_) { - ClearAndHideTip(); - return; - } - if (GetProperty(views::kAnchoredDialogKey)) - return; - learn_more_link_clicked_callback_.Run(this); -} - -bool TipMarqueeView::GetFitsInLayout() const { - const views::SizeBounds available = parent()->GetAvailableSize(this); - if (!available.width().is_bounded()) - return true; - return available.width().value() >= - tip_text_label_->GetPreferredSize().width() + - kTipMarqueeIconTotalWidth; -} - -bool TipMarqueeView::IsPointInIcon(const gfx::Point& p) const { - const int pos = GetMirroredXInView(p.x()); - return pos < kTipMarqueeIconTotalWidth; -} - -void TipMarqueeView::ToggleOverflowWidget() { - if (show_tip_widget_) { - show_tip_widget_->Close(); - return; - } - - DCHECK(!tip_text_.empty()); - DCHECK(!show_tip_widget_); - show_tip_widget_ = views::BubbleDialogDelegateView::CreateBubble( - std::make_unique<TipMarqueeOverflowBubbleView>(this, tip_text_)); - widget_observer_.Observe(show_tip_widget_.get()); - show_tip_widget_->Show(); -} - -void TipMarqueeView::OnWidgetDestroying(views::Widget* widget) { - widget_observer_.Reset(); - if (widget != show_tip_widget_) - return; - show_tip_widget_ = nullptr; -} - -BEGIN_METADATA(TipMarqueeView, views::View) -ADD_READONLY_PROPERTY_METADATA(bool, FitsInLayout) -END_METADATA
diff --git a/chrome/browser/ui/views/user_education/tip_marquee_view.h b/chrome/browser/ui/views/user_education/tip_marquee_view.h deleted file mode 100644 index e7e0e1c8..0000000 --- a/chrome/browser/ui/views/user_education/tip_marquee_view.h +++ /dev/null
@@ -1,98 +0,0 @@ -// Copyright 2020 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef CHROME_BROWSER_UI_VIEWS_USER_EDUCATION_TIP_MARQUEE_VIEW_H_ -#define CHROME_BROWSER_UI_VIEWS_USER_EDUCATION_TIP_MARQUEE_VIEW_H_ - -#include "base/functional/callback.h" -#include "base/functional/callback_forward.h" -#include "base/memory/raw_ptr.h" -#include "base/scoped_observation.h" -#include "ui/base/metadata/metadata_header_macros.h" -#include "ui/gfx/canvas.h" -#include "ui/views/layout/flex_layout_types.h" -#include "ui/views/metadata/view_factory.h" -#include "ui/views/style/typography.h" -#include "ui/views/view.h" -#include "ui/views/view_observer.h" -#include "ui/views/widget/widget.h" -#include "ui/views/widget/widget_observer.h" - -namespace views { -class StyledLabel; -} - -// Displays a tip that can scroll out from a Chrome icon to a full sentence, -// optionally with a clickable tip. -// -// 🌏 Did you know that Chrome can display web pages? [ LEARN MORE ] -// 🌏 Did you know that Chrome ca... -// 🌏 -class TipMarqueeView : public views::View, public views::WidgetObserver { - public: - METADATA_HEADER(TipMarqueeView); - - using LearnMoreLinkClickedCallback = - base::RepeatingCallback<void(TipMarqueeView*)>; - - // Constructs a tip marquee view which will display text - TipMarqueeView(); - ~TipMarqueeView() override; - - // Sets the tip and shows the view if there is adequate space. |tip_text| will - // be displayed as plain text, and if |learn_more_link_clicked_callback| is - // specified, a "learn more" link will be present that will call the callback - // when clicked. - // - // Returns true if there is sufficient space in the parent view's layout to - // display the fully expanded tip text and (if applicable) Learn More link. - bool SetAndShowTip( - const std::u16string& tip_text, - LearnMoreLinkClickedCallback learn_more_link_clicked_callback = - LearnMoreLinkClickedCallback()); - - // Clears the tip and hides the view. - void ClearAndHideTip(); - - // views::View: - gfx::Size GetMinimumSize() const override; - std::u16string GetTooltipText(const gfx::Point& p) const override; - void Layout() override; - bool OnMousePressed(const ui::MouseEvent& event) override; - - static constexpr int kTipMarqueeIconSize = 16; - static constexpr int kTipMarqueeIconPadding = 6; - static constexpr int kTipMarqueeIconTotalWidth = - kTipMarqueeIconSize + kTipMarqueeIconPadding; - - private: - // views::View: - gfx::Size CalculatePreferredSize() const override; - void OnPaint(gfx::Canvas* canvas) override; - - // views::WidgetObserver: - void OnWidgetDestroying(views::Widget* widget) override; - - void LinkClicked(); - bool GetFitsInLayout() const; - - bool IsPointInIcon(const gfx::Point& p) const; - - void ToggleOverflowWidget(); - - std::u16string tip_text_; - raw_ptr<views::StyledLabel> tip_text_label_ = nullptr; - LearnMoreLinkClickedCallback learn_more_link_clicked_callback_; - bool collapsed_ = false; - raw_ptr<views::Widget> show_tip_widget_ = nullptr; - base::ScopedObservation<views::Widget, views::WidgetObserver> - widget_observer_{this}; -}; - -BEGIN_VIEW_BUILDER(/*no export */, TipMarqueeView, views::View) -END_VIEW_BUILDER - -DEFINE_VIEW_BUILDER(/*no export */, TipMarqueeView) - -#endif // CHROME_BROWSER_UI_VIEWS_USER_EDUCATION_TIP_MARQUEE_VIEW_H_
diff --git a/chrome/browser/ui/views/user_education/tip_marquee_view_browsertest.cc b/chrome/browser/ui/views/user_education/tip_marquee_view_browsertest.cc deleted file mode 100644 index c120caa..0000000 --- a/chrome/browser/ui/views/user_education/tip_marquee_view_browsertest.cc +++ /dev/null
@@ -1,41 +0,0 @@ -// Copyright 2020 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "base/strings/utf_string_conversions.h" -#include "chrome/browser/ui/views/user_education/tip_marquee_view.h" - -#include "chrome/browser/ui/views/frame/browser_view.h" -#include "chrome/browser/ui/views/frame/tab_strip_region_view.h" -#include "chrome/test/base/in_process_browser_test.h" -#include "content/public/test/browser_test.h" - -class TipMarqueeViewBrowserTest : public InProcessBrowserTest { - public: - TabStripRegionView* tab_strip_region_view() { - return BrowserView::GetBrowserViewForBrowser(browser()) - ->tab_strip_region_view(); - } - - TipMarqueeView* tip_marquee_view() { - return tab_strip_region_view()->tip_marquee_view(); - } -}; - -IN_PROC_BROWSER_TEST_F(TipMarqueeViewBrowserTest, MarqueeStartsInvisibile) { - EXPECT_FALSE(tip_marquee_view()->GetVisible()); -} - -IN_PROC_BROWSER_TEST_F(TipMarqueeViewBrowserTest, - VisibilityChangesOnSetAndClearTip) { - tip_marquee_view()->SetAndShowTip(u"Tip Text"); - EXPECT_TRUE(tip_marquee_view()->GetVisible()); - tip_marquee_view()->ClearAndHideTip(); - EXPECT_FALSE(tip_marquee_view()->GetVisible()); -} - -IN_PROC_BROWSER_TEST_F(TipMarqueeViewBrowserTest, TipStartsExpanded) { - tip_marquee_view()->SetAndShowTip(u"Tip Text"); - RunScheduledLayouts(); - EXPECT_EQ(tip_marquee_view()->GetPreferredSize(), tip_marquee_view()->size()); -}
diff --git a/chrome/browser/ui/views/user_education/tip_marquee_view_unittest.cc b/chrome/browser/ui/views/user_education/tip_marquee_view_unittest.cc deleted file mode 100644 index 226527db..0000000 --- a/chrome/browser/ui/views/user_education/tip_marquee_view_unittest.cc +++ /dev/null
@@ -1,299 +0,0 @@ -// Copyright 2020 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "chrome/browser/ui/views/user_education/tip_marquee_view.h" -#include <cstddef> - -#include "base/functional/bind.h" -#include "base/memory/raw_ptr.h" -#include "base/run_loop.h" -#include "base/scoped_observation.h" -#include "base/strings/utf_string_conversions.h" -#include "base/test/bind.h" -#include "testing/gtest/include/gtest/gtest.h" -#include "ui/events/base_event_utils.h" -#include "ui/events/event.h" -#include "ui/events/event_constants.h" -#include "ui/events/keycodes/dom/dom_code.h" -#include "ui/events/types/event_type.h" -#include "ui/views/bubble/bubble_dialog_delegate_view.h" -#include "ui/views/controls/button/label_button.h" -#include "ui/views/layout/flex_layout_types.h" -#include "ui/views/layout/flex_layout_view.h" -#include "ui/views/layout/layout_types.h" -#include "ui/views/test/views_test_base.h" -#include "ui/views/test/views_test_utils.h" -#include "ui/views/test/widget_test.h" -#include "ui/views/view_class_properties.h" -#include "ui/views/widget/widget.h" -#include "ui/views/window/dialog_delegate.h" - -namespace { - -static constexpr gfx::Size kTipMarqueeWidgetSize(1000, 60); -static constexpr gfx::Size kSpacerPreferredSize(100, 60); - -class LearnMoreCallback { - public: - TipMarqueeView::LearnMoreLinkClickedCallback Callback() { - return base::BindRepeating(&LearnMoreCallback::IncrementCount, - base::Unretained(this)); - } - int count() const { return count_; } - - private: - void IncrementCount(TipMarqueeView*) { ++count_; } - int count_ = 0; -}; - -} // anonymous namespace - -class TipMarqueeViewTest : public views::ViewsTestBase { - public: - TipMarqueeViewTest() = default; - ~TipMarqueeViewTest() override = default; - - void SetUp() override { - ViewsTestBase::SetUp(); - - widget_ = std::make_unique<views::Widget>(); - views::Widget::InitParams params = - CreateParams(views::Widget::InitParams::TYPE_WINDOW_FRAMELESS); - params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; - params.bounds = gfx::Rect(gfx::Point(), kTipMarqueeWidgetSize); - widget_->Init(std::move(params)); - widget_->SetContentsView( - views::Builder<views::FlexLayoutView>() - .SetOrientation(views::LayoutOrientation::kHorizontal) - .AddChildren( - views::Builder<views::View>() - .CopyAddressTo(&spacer_) - .SetPreferredSize(kSpacerPreferredSize) - .SetProperty(views::kFlexBehaviorKey, - views::FlexSpecification( - views::LayoutOrientation::kHorizontal, - views::MinimumFlexSizeRule::kPreferred, - views::MaximumFlexSizeRule::kUnbounded)), - views::Builder<TipMarqueeView>( - std::make_unique<TipMarqueeView>()) - .CopyAddressTo(&marquee_) - .SetProperty( - views::kFlexBehaviorKey, - views::FlexSpecification( - views::LayoutOrientation::kHorizontal, - views::MinimumFlexSizeRule::kPreferredSnapToMinimum) - .WithOrder(2)) - .SetProperty(views::kCrossAxisAlignmentKey, - views::LayoutAlignment::kCenter)) - .Build()); - - widget_->Show(); - } - - void TearDown() override { - widget_.reset(); - spacer_ = nullptr; - marquee_ = nullptr; - ViewsTestBase::TearDown(); - } - - // Send mouse down and mouse up event at |point| within the marquee, ensuring - // that the event is delivered to the correct view (which could be the marquee - // or a child view). - void SimulateMarqueeClick(gfx::Point point) { - point.Offset(marquee_->x(), marquee_->y()); - ui::MouseEvent press(ui::ET_MOUSE_PRESSED, point, point, - ui::EventTimeForNow(), ui::EF_LEFT_MOUSE_BUTTON, - ui::EF_LEFT_MOUSE_BUTTON); - ui::MouseEvent release(ui::ET_MOUSE_RELEASED, point, point, - ui::EventTimeForNow(), ui::EF_LEFT_MOUSE_BUTTON, - ui::EF_LEFT_MOUSE_BUTTON); - widget_->GetRootView()->OnMouseEvent(&press); - widget_->GetRootView()->OnMouseEvent(&release); - } - - protected: - std::unique_ptr<views::Widget> widget_; - raw_ptr<views::View> spacer_ = nullptr; - raw_ptr<TipMarqueeView> marquee_ = nullptr; -}; - -TEST_F(TipMarqueeViewTest, NotVisibleWhenNoTip) { - views::test::RunScheduledLayout(marquee_); - EXPECT_FALSE(marquee_->GetVisible()); -} - -TEST_F(TipMarqueeViewTest, VisibleWhenTipSet) { - marquee_->SetAndShowTip(u"Tip Text"); - views::test::RunScheduledLayout(marquee_); - EXPECT_TRUE(marquee_->GetVisible()); -} - -TEST_F(TipMarqueeViewTest, ClearTipHidesView) { - marquee_->SetAndShowTip(u"Tip Text"); - views::test::RunScheduledLayout(marquee_); - EXPECT_TRUE(marquee_->GetVisible()); - EXPECT_EQ(marquee_->GetPreferredSize(), marquee_->size()); - marquee_->ClearAndHideTip(); - views::test::RunScheduledLayout(marquee_); - EXPECT_FALSE(marquee_->GetVisible()); -} - -TEST_F(TipMarqueeViewTest, TipStartsExpanded) { - marquee_->SetAndShowTip(u"Tip Text"); - views::test::RunScheduledLayout(marquee_); - EXPECT_GT(marquee_->width(), marquee_->GetMinimumSize().width()); -} - -TEST_F(TipMarqueeViewTest, TipCollapsesWhenNotEnoughSpace) { - marquee_->SetAndShowTip(u"Tip Text"); - views::test::RunScheduledLayout(marquee_); - gfx::Size spacer_size = spacer_->size(); - spacer_size.Enlarge(1, 0); - spacer_->SetPreferredSize(spacer_size); - views::test::RunScheduledLayout(marquee_); - EXPECT_EQ(marquee_->width(), marquee_->GetMinimumSize().width()); -} - -TEST_F(TipMarqueeViewTest, TipCollapsesAndExpandsWhenIconIsClicked) { - marquee_->SetAndShowTip(u"Tip Text"); - views::test::RunScheduledLayout(marquee_); - - // This location should be comfortably inside the icon area. - constexpr gfx::Point kPressPoint(10, 10); - - // Collapse. - marquee_->OnMousePressed(ui::MouseEvent( - ui::ET_MOUSE_PRESSED, kPressPoint, kPressPoint, ui::EventTimeForNow(), - ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON)); - views::test::RunScheduledLayout(marquee_); - EXPECT_EQ(marquee_->width(), marquee_->GetMinimumSize().width()); - - // Expand. - marquee_->OnMousePressed(ui::MouseEvent( - ui::ET_MOUSE_PRESSED, kPressPoint, kPressPoint, ui::EventTimeForNow(), - ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON)); - views::test::RunScheduledLayout(marquee_); - EXPECT_GT(marquee_->width(), marquee_->GetMinimumSize().width()); -} - -TEST_F(TipMarqueeViewTest, TipDoesNotExpandWhenInsufficientSpace) { - marquee_->SetAndShowTip(u"Tip Text"); - views::test::RunScheduledLayout(marquee_); - gfx::Size spacer_size = spacer_->size(); - spacer_size.Enlarge(1, 0); - spacer_->SetPreferredSize(spacer_size); - views::test::RunScheduledLayout(marquee_); - EXPECT_EQ(marquee_->width(), marquee_->GetMinimumSize().width()); - - // This location should be comfortably inside the icon area. - constexpr gfx::Point kPressPoint(10, 10); - SimulateMarqueeClick(kPressPoint); - views::test::RunScheduledLayout(marquee_); - EXPECT_EQ(marquee_->width(), marquee_->GetMinimumSize().width()); -} - -TEST_F(TipMarqueeViewTest, ClickLearnMoreLink) { - LearnMoreCallback callback; - marquee_->SetAndShowTip(u"Tip Text", callback.Callback()); - views::test::RunScheduledLayout(marquee_); - EXPECT_GT(marquee_->width(), marquee_->GetMinimumSize().width()); - - // This location should be comfortably inside the "learn more" link. - const gfx::Point click_point(marquee_->width() - 10, marquee_->height() / 2); - EXPECT_EQ(0, callback.count()); - SimulateMarqueeClick(click_point); - EXPECT_EQ(1, callback.count()); -} - -TEST_F(TipMarqueeViewTest, ClickNotInLearnMoreLinkHasNoEffect) { - LearnMoreCallback callback; - marquee_->SetAndShowTip(u"Tip Text", callback.Callback()); - views::test::RunScheduledLayout(marquee_); - EXPECT_GT(marquee_->width(), marquee_->GetMinimumSize().width()); - - // This location should be comfortably inside the tip text but not the link. - const gfx::Point click_point(TipMarqueeView::kTipMarqueeIconTotalWidth + 10, - marquee_->height() / 2); - EXPECT_EQ(0, callback.count()); - SimulateMarqueeClick(click_point); - EXPECT_EQ(0, callback.count()); -} - -TEST_F(TipMarqueeViewTest, ClickWhenForcedCollapsedCallsLearnMore) { - LearnMoreCallback callback; - marquee_->SetAndShowTip(u"Tip Text", callback.Callback()); - views::test::RunScheduledLayout(marquee_); - gfx::Size spacer_size = spacer_->size(); - spacer_size.Enlarge(1, 0); - spacer_->SetPreferredSize(spacer_size); - views::test::RunScheduledLayout(marquee_); - EXPECT_EQ(marquee_->width(), marquee_->GetMinimumSize().width()); - - // This location should be comfortably inside the icon area. - constexpr gfx::Point kPressPoint(10, 10); - EXPECT_EQ(0, callback.count()); - SimulateMarqueeClick(kPressPoint); - EXPECT_EQ(1, callback.count()); -} - -TEST_F(TipMarqueeViewTest, ClickWhenForcedCollapsedDisplaysOverflow) { - marquee_->SetAndShowTip(u"Tip Text"); - views::test::RunScheduledLayout(marquee_); - gfx::Size spacer_size = spacer_->size(); - spacer_size.Enlarge(1, 0); - spacer_->SetPreferredSize(spacer_size); - views::test::RunScheduledLayout(marquee_); - ASSERT_EQ(marquee_->width(), marquee_->GetMinimumSize().width()); - - // This location should be comfortably inside the icon area. - constexpr gfx::Point kPressPoint(10, 10); - SimulateMarqueeClick(kPressPoint); - views::DialogDelegate* const delegate = - marquee_->GetProperty(views::kAnchoredDialogKey); - EXPECT_NE(static_cast<views::DialogDelegate*>(nullptr), delegate); -} - -TEST_F(TipMarqueeViewTest, OverflowBubbleCancelDoesNotDismissTip) { - marquee_->SetAndShowTip(u"Tip Text"); - views::test::RunScheduledLayout(marquee_); - gfx::Size spacer_size = spacer_->size(); - spacer_size.Enlarge(1, 0); - spacer_->SetPreferredSize(spacer_size); - views::test::RunScheduledLayout(marquee_); - ASSERT_EQ(marquee_->width(), marquee_->GetMinimumSize().width()); - - // This location should be comfortably inside the icon area. - constexpr gfx::Point kPressPoint(10, 10); - SimulateMarqueeClick(kPressPoint); - views::DialogDelegate* const delegate = - marquee_->GetProperty(views::kAnchoredDialogKey); - views::Widget* const overflow_widget = delegate->GetWidget(); - ASSERT_NE(static_cast<views::Widget*>(nullptr), overflow_widget); - views::test::WidgetDestroyedWaiter waiter(overflow_widget); - ui::KeyEvent press_esc(ui::ET_KEY_PRESSED, ui::VKEY_ESCAPE, 0); - overflow_widget->OnKeyEvent(&press_esc); - waiter.Wait(); - EXPECT_TRUE(marquee_->GetVisible()); -} - -TEST_F(TipMarqueeViewTest, OverflowBubbleGotItDismissesTip) { - marquee_->SetAndShowTip(u"Tip Text"); - views::test::RunScheduledLayout(marquee_); - gfx::Size spacer_size = spacer_->size(); - spacer_size.Enlarge(1, 0); - spacer_->SetPreferredSize(spacer_size); - views::test::RunScheduledLayout(marquee_); - ASSERT_EQ(marquee_->width(), marquee_->GetMinimumSize().width()); - - // This location should be comfortably inside the icon area. - constexpr gfx::Point kPressPoint(10, 10); - SimulateMarqueeClick(kPressPoint); - views::DialogDelegate* const delegate = - marquee_->GetProperty(views::kAnchoredDialogKey); - views::test::WidgetDestroyedWaiter waiter(delegate->GetWidget()); - delegate->AcceptDialog(); - waiter.Wait(); - EXPECT_FALSE(marquee_->GetVisible()); -}
diff --git a/chrome/browser/ui/webui/ash/login/core_oobe_handler.cc b/chrome/browser/ui/webui/ash/login/core_oobe_handler.cc index ae4adff..bfcbf31 100644 --- a/chrome/browser/ui/webui/ash/login/core_oobe_handler.cc +++ b/chrome/browser/ui/webui/ash/login/core_oobe_handler.cc
@@ -65,6 +65,8 @@ &CoreOobeHandler::HandleInitializeCoreHandler); AddCallback("screenStateInitialize", &CoreOobeHandler::HandleScreenStateInitialize); + AddCallback("priorityScreensLoaded", + &CoreOobeHandler::HandlePrriorityScreensLoaded); AddCallback("updateCurrentScreen", &CoreOobeHandler::HandleUpdateCurrentScreen); @@ -92,7 +94,10 @@ void CoreOobeHandler::ShowScreenWithData( const OobeScreenId& screen, absl::optional<base::Value::Dict> data) { - CHECK(ui_init_state_ == UiState::kFullyInitialized); + const bool is_safe_priority_call = + IsPriorityScreen(screen.name) && + ui_init_state_ == UiState::kPriorityScreensLoaded; + CHECK(ui_init_state_ == UiState::kFullyInitialized || is_safe_priority_call); base::Value::Dict screen_params; screen_params.Set("id", screen.name); @@ -164,6 +169,16 @@ CallJS("cr.ui.Oobe.setBluetoothDeviceInfo", bluetooth_name); } +bool CoreOobeHandler::IsPriorityScreen(const std::string& screen_name) { + // List of screens that are supported for prioritization. Currently, only the + // Welcome Screen ('connect') is supported. + const std::vector<std::string> supported_screens{"connect"}; + + const auto iter = std::find(supported_screens.begin(), + supported_screens.end(), screen_name); + return iter != supported_screens.end(); +} + void CoreOobeHandler::HandleInitializeCoreHandler() { VLOG(3) << "CoreOobeHandler::HandleInitializeCoreHandler"; CHECK(ui_init_state_ == UiState::kUninitialized); @@ -173,9 +188,17 @@ UiState::kCoreHandlerInitialized); } +void CoreOobeHandler::HandlePrriorityScreensLoaded() { + VLOG(3) << "CoreOobeHandler::HandlePrriorityScreensLoaded"; + CHECK(ui_init_state_ == UiState::kCoreHandlerInitialized); + ui_init_state_ = UiState::kPriorityScreensLoaded; + GetOobeUI()->GetCoreOobe()->UpdateUiInitState( + UiState::kPriorityScreensLoaded); +} + void CoreOobeHandler::HandleScreenStateInitialize() { VLOG(3) << "CoreOobeHandler::HandleScreenStateInitialize"; - CHECK(ui_init_state_ == UiState::kCoreHandlerInitialized); + CHECK(ui_init_state_ == UiState::kPriorityScreensLoaded); ui_init_state_ = UiState::kFullyInitialized; GetOobeUI()->GetCoreOobe()->UpdateUiInitState(UiState::kFullyInitialized); }
diff --git a/chrome/browser/ui/webui/ash/login/core_oobe_handler.h b/chrome/browser/ui/webui/ash/login/core_oobe_handler.h index ebc6bef..6631a55f 100644 --- a/chrome/browser/ui/webui/ash/login/core_oobe_handler.h +++ b/chrome/browser/ui/webui/ash/login/core_oobe_handler.h
@@ -27,6 +27,7 @@ enum class UiState { kUninitialized, // Start of things kCoreHandlerInitialized, // First oobe.js instruction + kPriorityScreensLoaded, // Priority screens are loaded and could be shown. kFullyInitialized, // Fully initialized a.k.a 'screenStateInitialize' }; @@ -54,6 +55,10 @@ virtual void SetVirtualKeyboardShown(bool shown) = 0; virtual void SetOsVersionLabelText(const std::string& label_text) = 0; virtual void SetBluetoothDeviceInfo(const std::string& bluetooth_name) = 0; + + // Whether the screen being checked belongs to the group of screens that are + // prioritized during OOBE's initialization. + virtual bool IsPriorityScreen(const std::string& screen_name) = 0; }; // The core handler for Javascript messages related to the "oobe" view. @@ -94,10 +99,12 @@ void SetVirtualKeyboardShown(bool shown) override; void SetOsVersionLabelText(const std::string& label_text) override; void SetBluetoothDeviceInfo(const std::string& bluetooth_name) override; + bool IsPriorityScreen(const std::string& screen_name) override; // ---- END --- CoreOobeView // ---- Handlers for JS WebUI messages. void HandleInitializeCoreHandler(); + void HandlePrriorityScreensLoaded(); void HandleScreenStateInitialize(); void HandleEnableShelfButtons(bool enable); void HandleUpdateCurrentScreen(const std::string& screen);
diff --git a/chrome/browser/ui/webui/ash/login/oobe_ui.cc b/chrome/browser/ui/webui/ash/login/oobe_ui.cc index 7f5ea2dd..adb669f 100644 --- a/chrome/browser/ui/webui/ash/login/oobe_ui.cc +++ b/chrome/browser/ui/webui/ash/login/oobe_ui.cc
@@ -290,6 +290,8 @@ const bool is_oobe_flow = display_type == OobeUI::kOobeDisplay; source->AddBoolean("isOsInstallAllowed", switches::IsOsInstallAllowed()); source->AddBoolean("isOobeFlow", is_oobe_flow); + source->AddBoolean("isOobeLazyLoadingEnabled", + features::IsOobeLazyLoadingEnabled()); // TODO (b/268463435) Cleanup OobeJelly source->AddBoolean("isOobeJellyEnabled", features::IsOobeJellyEnabled()); // TODO (b/269117729) Cleanup OobeSimon
diff --git a/chrome/browser/ui/webui/policy/policy_ui.cc b/chrome/browser/ui/webui/policy/policy_ui.cc index 7f1930f2..1dbab17 100644 --- a/chrome/browser/ui/webui/policy/policy_ui.cc +++ b/chrome/browser/ui/webui/policy/policy_ui.cc
@@ -6,6 +6,9 @@ #include <memory> +#include "base/json/json_writer.h" +#include "base/strings/stringprintf.h" +#include "base/system/sys_info.h" #include "build/build_config.h" #include "build/chromeos_buildflags.h" #include "chrome/browser/profiles/profile.h" @@ -15,28 +18,21 @@ #include "chrome/grit/chromium_strings.h" #include "components/grit/policy_resources.h" #include "components/grit/policy_resources_map.h" +#include "components/policy/core/common/policy_logger.h" #include "components/strings/grit/components_strings.h" +#include "components/version_info/version_info.h" +#include "components/version_ui/version_handler_helper.h" #include "content/public/browser/web_ui.h" +#include "content/public/common/user_agent.h" #include "services/network/public/mojom/content_security_policy.mojom.h" #include "ui/base/webui/web_ui_util.h" -#if BUILDFLAG(IS_ANDROID) -#include "base/json/json_writer.h" -#include "base/strings/stringprintf.h" -#include "base/system/sys_info.h" -#include "components/policy/core/common/policy_logger.h" -#include "components/version_info/version_info.h" -#include "components/version_ui/version_handler_helper.h" -#include "content/public/common/user_agent.h" -#endif // BUILDFLAG(IS_ANDROID) - namespace { - -#if BUILDFLAG(IS_ANDROID) // Returns the operating system information to be displayed on // chrome://policy/logs page. std::string GetOsInfo() { - // The base format for the OS version and build +#if BUILDFLAG(IS_ANDROID) + // The base format for the OS version and build. constexpr char kOSVersionAndBuildFormat[] = "Android %s %s"; return base::StringPrintf( kOSVersionAndBuildFormat, @@ -44,6 +40,11 @@ (content::GetAndroidOSInfo(content::IncludeAndroidBuildNumber::Include, content::IncludeAndroidModel::Include)) .c_str()); +#else + return base::StringPrintf("%s %s", + base::SysInfo::OperatingSystemName().c_str(), + base::SysInfo::OperatingSystemVersion().c_str()); +#endif // BUILDFLAG (IS_ANDROID) } // Returns the version information to be displayed on the chrome://policy/logs @@ -58,7 +59,6 @@ return version_info; } -#endif void CreateAndAddPolicyUIHtmlSource(Profile* profile) { content::WebUIDataSource* source = content::WebUIDataSource::CreateAndAdd( @@ -143,7 +143,6 @@ }; source->AddLocalizedStrings(kPolicyLogsStrings); -#if BUILDFLAG(IS_ANDROID) source->AddBoolean( "loggingEnabled", policy::PolicyLogger::GetInstance()->IsPolicyLoggingEnabled()); @@ -157,7 +156,6 @@ source->AddResourcePath("logs/", IDR_POLICY_LOGS_POLICY_LOGS_HTML); source->AddResourcePath("logs", IDR_POLICY_LOGS_POLICY_LOGS_HTML); -#endif // BUILDFLAG(IS_ANDROID) webui::SetupWebUIDataSource( source, base::make_span(kPolicyResources, kPolicyResourcesSize),
diff --git a/chrome/browser/ui/webui/policy/policy_ui_handler.cc b/chrome/browser/ui/webui/policy/policy_ui_handler.cc index a289111b..c9183518 100644 --- a/chrome/browser/ui/webui/policy/policy_ui_handler.cc +++ b/chrome/browser/ui/webui/policy/policy_ui_handler.cc
@@ -55,6 +55,7 @@ #include "components/policy/core/common/cloud/cloud_policy_refresh_scheduler.h" #include "components/policy/core/common/cloud/cloud_policy_util.h" #include "components/policy/core/common/policy_details.h" +#include "components/policy/core/common/policy_logger.h" #include "components/policy/core/common/policy_scheduler.h" #include "components/policy/core/common/policy_types.h" #include "components/policy/core/common/remote_commands/remote_commands_service.h" @@ -73,10 +74,6 @@ #include "ui/base/l10n/l10n_util.h" #include "ui/base/webui/web_ui_util.h" -#if BUILDFLAG(IS_ANDROID) -#include "components/policy/core/common/policy_logger.h" -#endif // BUILDFLAG(IS_ANDROID) - #if BUILDFLAG(IS_CHROMEOS_ASH) #include "chrome/browser/ash/policy/core/browser_policy_connector_ash.h" #include "chrome/browser/ash/policy/core/device_cloud_policy_store_ash.h" @@ -180,12 +177,10 @@ base::BindRepeating(&PolicyUIHandler::HandleCopyPoliciesJson, base::Unretained(this))); -#if BUILDFLAG(IS_ANDROID) web_ui()->RegisterMessageCallback( "getPolicyLogs", base::BindRepeating(&PolicyUIHandler::HandleGetPolicyLogs, base::Unretained(this))); -#endif // BUILDFLAG(IS_ANDROID) #if !BUILDFLAG(IS_CHROMEOS) web_ui()->RegisterMessageCallback( @@ -297,14 +292,12 @@ scw.WriteText(base::UTF8ToUTF16(policies_json)); } -#if BUILDFLAG(IS_ANDROID) void PolicyUIHandler::HandleGetPolicyLogs(const base::Value::List& args) { DCHECK(policy::PolicyLogger::GetInstance()->IsPolicyLoggingEnabled()); AllowJavascript(); ResolveJavascriptCallback(args[0], policy::PolicyLogger::GetInstance()->GetAsList()); } -#endif // BUILDFLAG(IS_ANDROID) #if !BUILDFLAG(IS_CHROMEOS) void PolicyUIHandler::HandleUploadReport(const base::Value::List& args) {
diff --git a/chrome/browser/ui/webui/policy/policy_ui_handler.h b/chrome/browser/ui/webui/policy/policy_ui_handler.h index a6a320f0..50e613f4a 100644 --- a/chrome/browser/ui/webui/policy/policy_ui_handler.h +++ b/chrome/browser/ui/webui/policy/policy_ui_handler.h
@@ -63,10 +63,8 @@ void HandleUploadReport(const base::Value::List& args); #endif -#if BUILDFLAG(IS_ANDROID) // Handler functions for chrome://policy/logs. void HandleGetPolicyLogs(const base::Value::List& args); -#endif // BUILDFLAG(IS_ANDROID) // Send information about the current policy values to the UI. Information is // sent in two parts to the UI:
diff --git a/chrome/browser/ui/webui/print_preview/print_preview_handler.cc b/chrome/browser/ui/webui/print_preview/print_preview_handler.cc index 09a53e9..71cf6794 100644 --- a/chrome/browser/ui/webui/print_preview/print_preview_handler.cc +++ b/chrome/browser/ui/webui/print_preview/print_preview_handler.cc
@@ -745,7 +745,7 @@ ReportUserActionHistogram(user_action); #if BUILDFLAG(ENABLE_PRINT_CONTENT_ANALYSIS) - const std::string device_name = *settings.FindString(kSettingDeviceName); + std::string device_name = *settings.FindString(kSettingDeviceName); auto on_verdict = base::BindOnce(&PrintPreviewHandler::OnVerdictByEnterprisePolicy,
diff --git a/chrome/browser/ui/webui/settings/ash/kerberos_accounts_handler.cc b/chrome/browser/ui/webui/settings/ash/kerberos_accounts_handler.cc index fce6f00..36617c9 100644 --- a/chrome/browser/ui/webui/settings/ash/kerberos_accounts_handler.cc +++ b/chrome/browser/ui/webui/settings/ash/kerberos_accounts_handler.cc
@@ -7,6 +7,7 @@ #include <string> #include <utility> +#include "ash/constants/ash_features.h" #include "base/functional/bind.h" #include "base/memory/ptr_util.h" #include "base/strings/string_util.h" @@ -123,6 +124,11 @@ "kerberosRememberPasswordEnabled", local_state->GetBoolean(::prefs::kKerberosRememberPasswordEnabled)); + // Whether the 'Remember password' checkbox should be checked by default. + html_source->AddBoolean( + "kerberosRememberPasswordByDefault", + features::IsKerberosRememberPasswordByDefaultEnabled()); + // Prefilled domain if policy is enabled. Note that Kerberos // domains should be in all uppercase. html_source->AddString("kerberosDomainAutocomplete",
diff --git a/chrome/browser/ui/webui/side_panel/companion/companion_page_handler.cc b/chrome/browser/ui/webui/side_panel/companion/companion_page_handler.cc index bc78b28..eaf9aa2 100644 --- a/chrome/browser/ui/webui/side_panel/companion/companion_page_handler.cc +++ b/chrome/browser/ui/webui/side_panel/companion/companion_page_handler.cc
@@ -9,7 +9,6 @@ #include "chrome/browser/companion/core/companion_permission_utils.h" #include "chrome/browser/companion/core/companion_url_builder.h" #include "chrome/browser/companion/core/promo_handler.h" -#include "chrome/browser/companion/core/signin_delegate.h" #include "chrome/browser/companion/text_finder/text_finder_manager.h" #include "chrome/browser/companion/text_finder/text_highlighter_manager.h" #include "chrome/browser/profiles/profile.h" @@ -20,6 +19,7 @@ #include "chrome/browser/ui/side_panel/companion/companion_tab_helper.h" #include "chrome/browser/ui/side_panel/companion/companion_utils.h" #include "chrome/browser/ui/webui/side_panel/companion/companion_side_panel_untrusted_ui.h" +#include "chrome/browser/ui/webui/side_panel/companion/signin_delegate_impl.h" #include "chrome/browser/unified_consent/unified_consent_service_factory.h" #include "chrome/common/webui_url_constants.h" #include "components/lens/buildflags.h" @@ -41,13 +41,13 @@ : receiver_(this, std::move(receiver)), page_(std::move(page)), companion_untrusted_ui_(companion_untrusted_ui), - signin_delegate_(SigninDelegate::Create(GetProfile())), + signin_delegate_(std::make_unique<SigninDelegateImpl>( + companion_untrusted_ui_->web_ui()->GetWebContents())), url_builder_( std::make_unique<CompanionUrlBuilder>(GetProfile()->GetPrefs(), signin_delegate_.get())), promo_handler_(std::make_unique<PromoHandler>(GetProfile()->GetPrefs(), - signin_delegate_.get(), - this)), + signin_delegate_.get())), consent_helper_(unified_consent::UrlKeyedDataCollectionConsentHelper:: NewAnonymizedDataCollectionConsentHelper( GetProfile()->GetPrefs())) { @@ -187,8 +187,9 @@ void CompanionPageHandler::OnPromoAction( side_panel::mojom::PromoType promo_type, - side_panel::mojom::PromoAction promo_action) { - promo_handler_->OnPromoAction(promo_type, promo_action); + side_panel::mojom::PromoAction promo_action, + const absl::optional<GURL>& exps_promo_url) { + promo_handler_->OnPromoAction(promo_type, promo_action, exps_promo_url); metrics_logger_->OnPromoAction(promo_type, promo_action); } @@ -210,7 +211,7 @@ } void CompanionPageHandler::OnOpenInNewTabButtonURLChanged( - const ::GURL& url_to_open) { + const GURL& url_to_open) { auto* companion_helper = companion::CompanionTabHelper::FromWebContents(web_contents()); DCHECK(companion_helper); @@ -257,12 +258,6 @@ text_directive); } -void CompanionPageHandler::EnableMsbb(bool enable_msbb) { - auto* consent_service = - UnifiedConsentServiceFactory::GetForProfile(GetProfile()); - consent_service->SetUrlKeyedAnonymizedDataCollectionEnabled(enable_msbb); -} - Browser* CompanionPageHandler::GetBrowser() { auto* webui_contents = companion_untrusted_ui_->web_ui()->GetWebContents(); auto* browser = companion::GetBrowserForWebContents(webui_contents);
diff --git a/chrome/browser/ui/webui/side_panel/companion/companion_page_handler.h b/chrome/browser/ui/webui/side_panel/companion/companion_page_handler.h index a33e540..ab8f934 100644 --- a/chrome/browser/ui/webui/side_panel/companion/companion_page_handler.h +++ b/chrome/browser/ui/webui/side_panel/companion/companion_page_handler.h
@@ -9,7 +9,6 @@ #include "base/memory/weak_ptr.h" #include "chrome/browser/companion/core/constants.h" #include "chrome/browser/companion/core/mojom/companion.mojom.h" -#include "chrome/browser/companion/core/msbb_delegate.h" #include "chrome/browser/ui/side_panel/side_panel_enums.h" #include "components/lens/buildflags.h" #include "components/unified_consent/url_keyed_data_collection_consent_helper.h" @@ -33,7 +32,6 @@ class CompanionPageHandler : public side_panel::mojom::CompanionPageHandler, public content::WebContentsObserver, - public MsbbDelegate, public unified_consent::UrlKeyedDataCollectionConsentHelper::Observer { public: CompanionPageHandler( @@ -47,10 +45,11 @@ // side_panel::mojom::CompanionPageHandler: void ShowUI() override; void OnPromoAction(side_panel::mojom::PromoType promo_type, - side_panel::mojom::PromoAction promo_action) override; + side_panel::mojom::PromoAction promo_action, + const absl::optional<GURL>& exps_promo_url) override; void OnRegionSearchClicked() override; void OnExpsOptInStatusAvailable(bool is_exps_opted_in) override; - void OnOpenInNewTabButtonURLChanged(const ::GURL& url_to_open) override; + void OnOpenInNewTabButtonURLChanged(const GURL& url_to_open) override; void RecordUiSurfaceShown(side_panel::mojom::UiSurface ui_surface, uint32_t ui_surface_position, uint32_t child_element_available_count, @@ -78,9 +77,6 @@ void OnImageQuery(side_panel::mojom::ImageQuery image_query); private: - // MsbbDelegate overrides. - void EnableMsbb(bool enable_msbb) override; - // Notifies the companion side panel about the URL of the main frame. Based on // the call site, either does a full reload of the side panel or does a // postmessage() update. Reload is done during initial load of the side panel,
diff --git a/chrome/browser/ui/webui/side_panel/companion/signin_delegate.cc b/chrome/browser/ui/webui/side_panel/companion/signin_delegate.cc deleted file mode 100644 index 4be83e1e..0000000 --- a/chrome/browser/ui/webui/side_panel/companion/signin_delegate.cc +++ /dev/null
@@ -1,72 +0,0 @@ -// Copyright 2023 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "chrome/browser/companion/core/signin_delegate.h" - -#include "base/functional/callback.h" -#include "chrome/browser/profiles/profile.h" -#include "chrome/browser/signin/identity_manager_factory.h" -#include "chrome/browser/signin/signin_ui_util.h" -#include "chrome/browser/sync/sync_service_factory.h" -#include "components/prefs/pref_service.h" -#include "components/signin/public/base/consent_level.h" -#include "components/signin/public/base/signin_metrics.h" -#include "components/signin/public/base/signin_pref_names.h" -#include "components/signin/public/identity_manager/identity_manager.h" - -namespace companion { -namespace { -class SigninDelegateImpl : public SigninDelegate { - public: - explicit SigninDelegateImpl(Profile* profile); - ~SigninDelegateImpl() override; - - bool AllowedSignin() override; - bool IsSignedIn() override; - void StartSigninFlow() override; - - private: - raw_ptr<Profile> profile_; -}; - -SigninDelegateImpl::SigninDelegateImpl(Profile* profile) : profile_(profile) {} - -SigninDelegateImpl::~SigninDelegateImpl() = default; - -bool SigninDelegateImpl::AllowedSignin() { - if (!profile_->GetPrefs()->GetBoolean(prefs::kSigninAllowed)) { - return false; - } - - if (!SyncServiceFactory::IsSyncAllowed(profile_)) { - return false; - } - - return true; -} - -bool SigninDelegateImpl::IsSignedIn() { - return IdentityManagerFactory::GetForProfile(profile_)->HasPrimaryAccount( - signin::ConsentLevel::kSignin); -} - -void SigninDelegateImpl::StartSigninFlow() { - DCHECK(AllowedSignin()); - - // Show the promo here. - signin_ui_util::EnableSyncFromSingleAccountPromo( - profile_, - IdentityManagerFactory::GetForProfile(profile_)->GetPrimaryAccountInfo( - signin::ConsentLevel::kSignin), - signin_metrics::AccessPoint::ACCESS_POINT_SEARCH_COMPANION); -} - -} // namespace - -// static -std::unique_ptr<SigninDelegate> SigninDelegate::Create(Profile* profile) { - return std::make_unique<SigninDelegateImpl>(profile); -} - -} // namespace companion
diff --git a/chrome/browser/ui/webui/side_panel/companion/signin_delegate_impl.cc b/chrome/browser/ui/webui/side_panel/companion/signin_delegate_impl.cc new file mode 100644 index 0000000..1f5ec929 --- /dev/null +++ b/chrome/browser/ui/webui/side_panel/companion/signin_delegate_impl.cc
@@ -0,0 +1,82 @@ +// Copyright 2023 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/ui/webui/side_panel/companion/signin_delegate_impl.h" + +#include "base/functional/callback.h" +#include "chrome/browser/profiles/profile.h" +#include "chrome/browser/signin/identity_manager_factory.h" +#include "chrome/browser/signin/signin_ui_util.h" +#include "chrome/browser/sync/sync_service_factory.h" +#include "chrome/browser/ui/browser.h" +#include "chrome/browser/ui/side_panel/companion/companion_side_panel_controller_utils.h" +#include "chrome/browser/unified_consent/unified_consent_service_factory.h" +#include "components/prefs/pref_service.h" +#include "components/signin/public/base/consent_level.h" +#include "components/signin/public/base/signin_metrics.h" +#include "components/signin/public/base/signin_pref_names.h" +#include "components/signin/public/identity_manager/identity_manager.h" +#include "components/unified_consent/unified_consent_service.h" +#include "content/public/browser/page_navigator.h" +#include "content/public/browser/web_contents.h" + +namespace companion { + +SigninDelegateImpl::SigninDelegateImpl(content::WebContents* webui_contents) + : webui_contents_(webui_contents) {} + +SigninDelegateImpl::~SigninDelegateImpl() = default; + +bool SigninDelegateImpl::AllowedSignin() { + if (!GetProfile()->GetPrefs()->GetBoolean(prefs::kSigninAllowed)) { + return false; + } + + if (!SyncServiceFactory::IsSyncAllowed(GetProfile())) { + return false; + } + + return true; +} + +bool SigninDelegateImpl::IsSignedIn() { + return IdentityManagerFactory::GetForProfile(GetProfile()) + ->HasPrimaryAccount(signin::ConsentLevel::kSignin); +} + +void SigninDelegateImpl::StartSigninFlow() { + if (IsSignedIn()) { + return; + } + + DCHECK(AllowedSignin()); + + // Show the promo here. + signin_ui_util::EnableSyncFromSingleAccountPromo( + GetProfile(), + IdentityManagerFactory::GetForProfile(GetProfile()) + ->GetPrimaryAccountInfo(signin::ConsentLevel::kSignin), + signin_metrics::AccessPoint::ACCESS_POINT_SEARCH_COMPANION); +} + +void SigninDelegateImpl::EnableMsbb(bool enable_msbb) { + auto* consent_service = + UnifiedConsentServiceFactory::GetForProfile(GetProfile()); + consent_service->SetUrlKeyedAnonymizedDataCollectionEnabled(enable_msbb); +} + +void SigninDelegateImpl::LoadExpsPromUrl(const GURL& exps_promo_url) { + content::OpenURLParams params(exps_promo_url, content::Referrer(), + WindowOpenDisposition::NEW_FOREGROUND_TAB, + ui::PAGE_TRANSITION_AUTO_TOPLEVEL, + /*is_renderer_initiated*/ false); + auto* browser = companion::GetBrowserForWebContents(webui_contents_); + browser->OpenURL(params); +} + +Profile* SigninDelegateImpl::GetProfile() { + return Profile::FromBrowserContext(webui_contents_->GetBrowserContext()); +} + +} // namespace companion
diff --git a/chrome/browser/ui/webui/side_panel/companion/signin_delegate_impl.h b/chrome/browser/ui/webui/side_panel/companion/signin_delegate_impl.h new file mode 100644 index 0000000..741443a --- /dev/null +++ b/chrome/browser/ui/webui/side_panel/companion/signin_delegate_impl.h
@@ -0,0 +1,44 @@ +// Copyright 2023 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROME_BROWSER_UI_WEBUI_SIDE_PANEL_COMPANION_SIGNIN_DELEGATE_IMPL_H_ +#define CHROME_BROWSER_UI_WEBUI_SIDE_PANEL_COMPANION_SIGNIN_DELEGATE_IMPL_H_ + +#include "base/memory/raw_ptr.h" +#include "chrome/browser/companion/core/signin_delegate.h" + +class Profile; + +namespace content { +class WebContents; +} // namespace content + +namespace companion { + +class SigninDelegateImpl : public SigninDelegate { + public: + explicit SigninDelegateImpl(content::WebContents* webui_contents); + ~SigninDelegateImpl() override; + + // Disallow copy/assign. + SigninDelegateImpl(const SigninDelegateImpl&) = delete; + SigninDelegateImpl& operator=(const SigninDelegateImpl&) = delete; + + // SigninDelegate implementation. + bool AllowedSignin() override; + bool IsSignedIn() override; + void StartSigninFlow() override; + void EnableMsbb(bool enable_msbb) override; + void LoadExpsPromUrl(const GURL& exps_promo_url) override; + + private: + Profile* GetProfile(); + + // The WebContents associated with the companion page. + raw_ptr<content::WebContents> webui_contents_; +}; + +} // namespace companion + +#endif // CHROME_BROWSER_UI_WEBUI_SIDE_PANEL_COMPANION_SIGNIN_DELEGATE_IMPL_H_
diff --git a/chrome/browser/vr/chrome_xr_integration_client.cc b/chrome/browser/vr/chrome_xr_integration_client.cc index e636d8ff..0c336f96 100644 --- a/chrome/browser/vr/chrome_xr_integration_client.cc +++ b/chrome/browser/vr/chrome_xr_integration_client.cc
@@ -16,6 +16,7 @@ #include "content/public/browser/browser_xr_runtime.h" #include "content/public/browser/media_stream_request.h" #include "content/public/browser/xr_install_helper.h" +#include "content/public/common/content_switches.h" #include "device/vr/buildflags/buildflags.h" #include "device/vr/public/cpp/features.h" #include "device/vr/public/cpp/vr_device_provider.h" @@ -97,6 +98,25 @@ std::unique_ptr<content::MediaStreamUI> ui_; }; +#if BUILDFLAG(IS_ANDROID) +// If none of the runtimes are enabled, this function will be unused. +// This is a bit more scalable than wrapping it in all the typedefs +[[maybe_unused]] bool IsEnabled(const base::CommandLine* command_line, + const std::string& name, + const base::Feature* maybe_feature = nullptr) { + // If we don't have a forced runtime we just need to check if the feature is + // enabled. + if (!command_line->HasSwitch(switches::kWebXrForceRuntime)) { + // Either we were passed a feature, in which case we need to check if it's + // enabled. Or we weren't, in which case the feature should be enabled. + return maybe_feature ? base::FeatureList::IsEnabled(*maybe_feature) : true; + } + + return (base::CompareCaseInsensitiveASCII( + command_line->GetSwitchValueASCII(switches::kWebXrForceRuntime), + name) == 0); +} +#endif } // namespace namespace vr { @@ -124,16 +144,20 @@ #if BUILDFLAG(IS_ANDROID) // May be unused if all runtimes are disabled. [[maybe_unused]] bool preferred_vr_runtime_added = false; + [[maybe_unused]] const base::CommandLine* command_line = + base::CommandLine::ForCurrentProcess(); #if BUILDFLAG(ENABLE_OPENXR) if (!preferred_vr_runtime_added && - base::FeatureList::IsEnabled(device::features::kOpenXR)) { + IsEnabled(command_line, switches::kWebXrRuntimeOpenXr, + &device::features::kOpenXR)) { providers.emplace_back(std::make_unique<webxr::OpenXrDeviceProvider>()); preferred_vr_runtime_added = true; } #endif // BUILDFLAG(ENABLE_OPENXR) #if BUILDFLAG(ENABLE_CARDBOARD) if (!preferred_vr_runtime_added && - base::FeatureList::IsEnabled(device::features::kEnableCardboard)) { + IsEnabled(command_line, switches::kWebXrRuntimeCardboard, + &device::features::kEnableCardboard)) { base::android::ScopedJavaLocalRef<jobject> j_vr_compositor_delegate_provider = vr::Java_VrCompositorDelegateProviderImpl_Constructor( @@ -145,7 +169,8 @@ } #endif // BUILDFLAG(ENABLE_CARDBOARD) #if BUILDFLAG(ENABLE_GVR_SERVICES) - if (!preferred_vr_runtime_added) { + if (!preferred_vr_runtime_added && + IsEnabled(command_line, switches::kWebXrRuntimeGVR)) { providers.push_back(std::make_unique<device::GvrDeviceProvider>()); preferred_vr_runtime_added = true; }
diff --git a/chrome/build/lacros64.pgo.txt b/chrome/build/lacros64.pgo.txt index 2d006aa..3550725d 100644 --- a/chrome/build/lacros64.pgo.txt +++ b/chrome/build/lacros64.pgo.txt
@@ -1 +1 @@ -chrome-chromeos-amd64-generic-main-1684843186-0b7ea4613220a6150a5b4743b8289af87653634d.profdata +chrome-chromeos-amd64-generic-main-1684857571-35fa0914b2941546c62053cead1c48f1ad2659ad.profdata
diff --git a/chrome/build/linux.pgo.txt b/chrome/build/linux.pgo.txt index 3da2dfe..3f9872a 100644 --- a/chrome/build/linux.pgo.txt +++ b/chrome/build/linux.pgo.txt
@@ -1 +1 @@ -chrome-linux-main-1684843186-2f2099b9e76515128f51374611bf7e9a1026034f.profdata +chrome-linux-main-1684864756-9ab147ace0ed71ea016c69410f36a2e38465c266.profdata
diff --git a/chrome/build/mac-arm.pgo.txt b/chrome/build/mac-arm.pgo.txt index 5384c2e7..1972c9a 100644 --- a/chrome/build/mac-arm.pgo.txt +++ b/chrome/build/mac-arm.pgo.txt
@@ -1 +1 @@ -chrome-mac-arm-main-1684857571-07a51ba45bc74a4663a0be33b2abec569c33f563.profdata +chrome-mac-arm-main-1684871861-47fc1dc1c9568bafb6aa4d0538f28856d7c876ed.profdata
diff --git a/chrome/build/win32.pgo.txt b/chrome/build/win32.pgo.txt index 15fe2e1..4a288df 100644 --- a/chrome/build/win32.pgo.txt +++ b/chrome/build/win32.pgo.txt
@@ -1 +1 @@ -chrome-win32-main-1684843186-b56da8f73c9e56f6052e109a34cd6288e928d19a.profdata +chrome-win32-main-1684853959-9f6d579048a1bae28ed2cc1d1dd9b0ad5f25b576.profdata
diff --git a/chrome/build/win64.pgo.txt b/chrome/build/win64.pgo.txt index c2d0ea5..7b98a17 100644 --- a/chrome/build/win64.pgo.txt +++ b/chrome/build/win64.pgo.txt
@@ -1 +1 @@ -chrome-win64-main-1684843186-f6524f6aadef092f7ede3c5339550e687a405caf.profdata +chrome-win64-main-1684853959-87454ba8a64b69b178450cd4b66a34fab0e27f3c.profdata
diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc index 521bf9b..6c74a02 100644 --- a/chrome/common/chrome_features.cc +++ b/chrome/common/chrome_features.cc
@@ -399,7 +399,7 @@ // Enable WebHID on extension service workers. BASE_FEATURE(kEnableWebHidOnExtensionServiceWorker, "EnableWebHidOnExtensionServiceWorker", - base::FEATURE_DISABLED_BY_DEFAULT); + base::FEATURE_ENABLED_BY_DEFAULT); #endif // Enable WebUSB on extension service workers.
diff --git a/chrome/common/pref_names.cc b/chrome/common/pref_names.cc index b297018..aaf856b 100644 --- a/chrome/common/pref_names.cc +++ b/chrome/common/pref_names.cc
@@ -2334,6 +2334,12 @@ const char kInsecureHashesInTLSHandshakesEnabled[] = "ssl.insecure_hash_enabled"; +// If true, checks the X.509 keyUsage extension in TLS 1.2 for RSA +// certificates that chain to a local trust anchor. If false, the checks are +// disabled. +const char kRSAKeyUsageForLocalAnchorsEnabled[] = + "ssl.rsa_key_usage_for_local_anchors_enabled"; + // Boolean that specifies whether the built-in asynchronous DNS client is used. const char kBuiltInDnsClientEnabled[] = "async_dns.enabled";
diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h index c5595dd..48bc5bc 100644 --- a/chrome/common/pref_names.h +++ b/chrome/common/pref_names.h
@@ -863,6 +863,7 @@ extern const char kPostQuantumEnabled[]; extern const char kEncryptedClientHelloEnabled[]; extern const char kInsecureHashesInTLSHandshakesEnabled[]; +extern const char kRSAKeyUsageForLocalAnchorsEnabled[]; extern const char kBuiltInDnsClientEnabled[]; extern const char kDnsOverHttpsMode[];
diff --git a/chrome/renderer/accessibility/read_anything_app_controller.cc b/chrome/renderer/accessibility/read_anything_app_controller.cc index 9646144..df91c5a6 100644 --- a/chrome/renderer/accessibility/read_anything_app_controller.cc +++ b/chrome/renderer/accessibility/read_anything_app_controller.cc
@@ -364,7 +364,7 @@ v8::Local<v8::Object> chrome = content::GetOrCreateChromeObject(isolate, context); - chrome->Set(context, gin::StringToV8(isolate, "readAnything"), handle.ToV8()) + chrome->Set(context, gin::StringToV8(isolate, "readingMode"), handle.ToV8()) .Check(); return controller; } @@ -422,7 +422,7 @@ // TODO(b/1266555): Use v8::Function rather than javascript. If possible, // replace this function call with firing an event. - std::string script = "chrome.readAnything.showLoading();"; + std::string script = "chrome.readingMode.showLoading();"; render_frame_->ExecuteJavaScript(base::ASCIIToUTF16(script)); // When the UI first constructs, this function may be called before tree_id @@ -516,7 +516,7 @@ // -- that is, it is awaiting distillation or never requested distillation. // TODO(abigailbklein): Use v8::Function rather than javascript. If possible, // replace this function call with firing an event. - std::string script = "chrome.readAnything.updateContent();"; + std::string script = "chrome.readingMode.updateContent();"; render_frame_->ExecuteJavaScript(base::ASCIIToUTF16(script)); } @@ -525,7 +525,7 @@ // -- that is, it is awaiting distillation or never requested distillation. // TODO(abigailbklein): Use v8::Function rather than javascript. If possible, // replace this function call with firing an event. - std::string script = "chrome.readAnything.updateSelection();"; + std::string script = "chrome.readingMode.updateSelection();"; render_frame_->ExecuteJavaScript(base::ASCIIToUTF16(script)); } @@ -534,7 +534,7 @@ // TODO(abigailbklein): Use v8::Function rather than javascript. If possible, // replace this function call with firing an event. - std::string script = "chrome.readAnything.updateTheme();"; + std::string script = "chrome.readingMode.updateTheme();"; render_frame_->ExecuteJavaScript(base::ASCIIToUTF16(script)); }
diff --git a/chrome/renderer/accessibility/read_anything_app_controller.h b/chrome/renderer/accessibility/read_anything_app_controller.h index 28f1f65..0f0f336 100644 --- a/chrome/renderer/accessibility/read_anything_app_controller.h +++ b/chrome/renderer/accessibility/read_anything_app_controller.h
@@ -66,7 +66,7 @@ ReadAnythingAppController& operator=(const ReadAnythingAppController&) = delete; - // Installs v8 context for Read Anything and adds chrome.readAnything binding + // Installs v8 context for Read Anything and adds chrome.readingMode binding // to page. static ReadAnythingAppController* Install(content::RenderFrame* render_frame);
diff --git a/chrome/renderer/chrome_render_frame_observer.cc b/chrome/renderer/chrome_render_frame_observer.cc index b00d0a9..4a94cfd 100644 --- a/chrome/renderer/chrome_render_frame_observer.cc +++ b/chrome/renderer/chrome_render_frame_observer.cc
@@ -325,7 +325,7 @@ // Install ReadAnythingAppController on render frames with the Read Anything // url, which is chrome-untrusted. ReadAnythingAppController installs v8 - // bindings in the chrome.readAnything namespace which are consumed by + // bindings in the chrome.readingMode namespace which are consumed by // read_anything/app.ts, the resource of the Read Anything WebUI. if (features::IsReadAnythingEnabled() && render_frame()->GetWebFrame()->GetDocument().Url() ==
diff --git a/chrome/services/speech/soda/proto/soda_api.proto b/chrome/services/speech/soda/proto/soda_api.proto index ccffa62..aed4795 100644 --- a/chrome/services/speech/soda/proto/soda_api.proto +++ b/chrome/services/speech/soda/proto/soda_api.proto
@@ -13,7 +13,7 @@ option optimize_for = LITE_RUNTIME; option java_multiple_files = true; -// Next ID to use: 16 +// Next ID to use: 17 message ExtendedSodaConfigMsg { // Number of channels in RAW audio that will be provided to SODA. optional int32 channel_count = 1; @@ -77,6 +77,9 @@ // In order to enable multilang, ExtendedSodaConfigMsg.language_pack_directory // must correctly specify the LP for the primary locale. optional MultilangConfig multilang_config = 15; + + // Whether to mask / leave offensive words in recognition. + optional bool mask_offensive_words = 16 [default = false]; } // Next ID: 3 @@ -208,10 +211,33 @@ } message SodaLangIdEvent { + enum AsrSwitchResult { + // No switch is attempted when: + // 1. Multilang is disabled. + // 2. top_language_confidence did not meet the sensitivity threshold. + // 3. the top detected language is the same as the one currently being + // transcribed. + // 4. The LangId results were jittery and this event was ignored for being + // too short. + DEFAULT_NO_SWITCH = 0; + // ASR successfully switched to this locale. + SWITCH_SUCCEEDED = 1; + // ASR attempted to switch to this locale, but could not load the provided + // LP. + SWITCH_FAILED = 2; + // ASR did not attempt to switch because no LP was provided for the locale, + // but top_language_confidence met the sensitivity threshold. + SWITCH_SKIPPED_NO_LP = 3; + } + // Locale, e.g. "en-us" or "af-za" optional string language = 1; + // Equal to the internal enum from langid confidence. optional int32 confidence_level = 2; + + // Flag indicating whether ASR successfully switched to this locale. + optional AsrSwitchResult asr_switch_result = 3; } message SodaResponse {
diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn index 13df3f6..3a578fa 100644 --- a/chrome/test/BUILD.gn +++ b/chrome/test/BUILD.gn
@@ -289,6 +289,7 @@ "//chrome/common/search:mojo_bindings", "//components/autofill/content/renderer:test_support", "//components/enterprise:enterprise", + "//components/network_session_configurator/common:common", "//components/reporting/util:test_callbacks_support", "//components/safe_browsing/content/renderer/phishing_classifier:unit_tests_support", "//components/security_interstitials/content:security_interstitial_page", @@ -3699,7 +3700,6 @@ "../browser/ui/views/translate/translate_bubble_view_browsertest.cc", "../browser/ui/views/upgrade_notification_controller_browsertest.cc", "../browser/ui/views/user_education/help_bubble_factory_views_browsertest.cc", - "../browser/ui/views/user_education/tip_marquee_view_browsertest.cc", "../browser/ui/views/web_apps/web_app_uninstall_dialog_browsertest.cc", ] if (is_win) { @@ -7289,6 +7289,7 @@ "../browser/ui/toolbar/app_menu_icon_controller_unittest.cc", "../browser/ui/toolbar/app_menu_model_unittest.cc", "../browser/ui/toolbar/back_forward_menu_model_unittest.cc", + "../browser/ui/toolbar/chrome_labs_model_unittest.cc", "../browser/ui/toolbar/chrome_location_bar_model_delegate_unittest.cc", "../browser/ui/toolbar/location_bar_model_unittest.cc", "../browser/ui/toolbar/media_router_action_controller_unittest.cc", @@ -7300,7 +7301,6 @@ "../browser/ui/toolbar/recent_tabs_sub_menu_model_unittest.cc", "../browser/ui/toolbar/toolbar_actions_model_unittest.cc", "../browser/ui/url_identity_unittest.cc", - "../browser/ui/user_education/active_tab_tracker_unittest.cc", "../browser/ui/views/autofill/address_editor_view_unittest.cc", "../browser/ui/views/autofill/edit_address_profile_view_unittest.cc", "../browser/ui/views/autofill/save_address_profile_view_unittest.cc", @@ -9262,7 +9262,6 @@ "../browser/ui/views/tabs/tab_strip_unittest.cc", "../browser/ui/views/tabs/tab_unittest.cc", "../browser/ui/views/toolbar/chrome_labs_button_unittest.cc", - "../browser/ui/views/toolbar/chrome_labs_model_unittest.cc", "../browser/ui/views/toolbar/chrome_labs_unittest.cc", "../browser/ui/views/toolbar/reload_button_unittest.cc", "../browser/ui/views/toolbar/side_panel_toolbar_button_unittest.cc", @@ -9275,7 +9274,6 @@ "../browser/ui/views/translate/translate_bubble_view_unittest.cc", "../browser/ui/views/user_education/browser_feature_promo_controller_unittest.cc", "../browser/ui/views/user_education/help_bubble_view_timeout_unittest.cc", - "../browser/ui/views/user_education/tip_marquee_view_unittest.cc", "../browser/ui/views/user_education/views_tutorial_unittest.cc", "../browser/ui/window_name_prompt/window_name_prompt_unittest.cc", ]
diff --git a/chrome/test/DEPS b/chrome/test/DEPS index f3a5dee..3c799481 100644 --- a/chrome/test/DEPS +++ b/chrome/test/DEPS
@@ -46,6 +46,7 @@ "+components/nacl/browser", "+components/nacl/common", "+components/nacl/renderer", + "+components/network_session_configurator/common", "+components/network_time", "+components/offline_pages/buildflags", "+components/offline_pages/core",
diff --git a/chrome/test/base/chromeos/ash_browser_test_starter.cc b/chrome/test/base/chromeos/ash_browser_test_starter.cc index 857980a..a4a551e1 100644 --- a/chrome/test/base/chromeos/ash_browser_test_starter.cc +++ b/chrome/test/base/chromeos/ash_browser_test_starter.cc
@@ -9,7 +9,7 @@ #include "base/command_line.h" #include "base/environment.h" #include "base/files/file_util.h" -#include "base/strings/string_number_conversions.h" +#include "base/strings/stringprintf.h" #include "base/task/thread_pool.h" #include "base/test/bind.h" #include "base/test/test_switches.h" @@ -22,19 +22,52 @@ #include "chrome/browser/ui/browser_commands.h" #include "chrome/common/chrome_switches.h" #include "chrome/test/base/in_process_browser_test.h" +#include "components/network_session_configurator/common/network_switches.h" +#include "google_apis/gaia/gaia_switches.h" +#include "net/test/embedded_test_server/http_response.h" #include "testing/gtest/include/gtest/gtest.h" #include "ui/views/views_switches.h" namespace test { -AshBrowserTestStarter::AshBrowserTestStarter() = default; +namespace { + +using ::net::test_server::HungResponse; + +std::unique_ptr<net::test_server::HttpResponse> HandleGaiaURL( + const GURL& base_url, + const net::test_server::HttpRequest& request) { + // Simulate failure for Gaia url request. + return std::make_unique<HungResponse>(); +} + +} // namespace + AshBrowserTestStarter::~AshBrowserTestStarter() = default; +AshBrowserTestStarter::AshBrowserTestStarter() + : https_server_(net::EmbeddedTestServer::TYPE_HTTPS) { + https_server()->RegisterRequestHandler( + base::BindRepeating(&HandleGaiaURL, base_url())); + + bool success = https_server()->InitializeAndListen(); + CHECK(success); + https_server()->StartAcceptingConnections(); +} + bool AshBrowserTestStarter::HasLacrosArgument() const { return base::CommandLine::ForCurrentProcess()->HasSwitch( ash::switches::kLacrosChromePath); } +net::EmbeddedTestServer* AshBrowserTestStarter::https_server() { + return &https_server_; +} + +GURL AshBrowserTestStarter::base_url() { + return https_server()->base_url(); +} + bool AshBrowserTestStarter::PrepareEnvironmentForLacros() { DCHECK(HasLacrosArgument()); std::unique_ptr<base::Environment> env(base::Environment::Create()); @@ -89,8 +122,21 @@ command_line->AppendSwitch(ash::switches::kDisableLacrosKeepAliveForTesting); command_line->AppendSwitch(ash::switches::kDisableLoginLacrosOpening); command_line->AppendSwitch(switches::kNoStartupWindow); + + std::vector<std::string> lacros_args; + lacros_args.emplace_back(base::StringPrintf("--%s", switches::kNoFirstRun)); + lacros_args.emplace_back( + base::StringPrintf("--%s", switches::kIgnoreCertificateErrors)); + // Override Gaia url in Lacros so that the gaia requests will NOT be handled + // with the real internet connection, but with the embedded test server. The + // embedded test server will simulate failure of the Gaia url requests which + // is expected in testing environment for Gaia authentication flow. This is a + // workaround for fixing crbug/1371655. + lacros_args.emplace_back(base::StringPrintf("--%s=%s", switches::kGaiaUrl, + base_url().spec().c_str())); command_line->AppendSwitchASCII(ash::switches::kLacrosChromeAdditionalArgs, - "--no-first-run"); + base::JoinString(lacros_args, "####")); + return true; }
diff --git a/chrome/test/base/chromeos/ash_browser_test_starter.h b/chrome/test/base/chromeos/ash_browser_test_starter.h index 7e97331..2038d3ac 100644 --- a/chrome/test/base/chromeos/ash_browser_test_starter.h +++ b/chrome/test/base/chromeos/ash_browser_test_starter.h
@@ -7,6 +7,8 @@ #include "base/files/scoped_temp_dir.h" #include "base/test/scoped_feature_list.h" +#include "net/test/embedded_test_server/embedded_test_server.h" +#include "url/gurl.h" class InProcessBrowserTest; @@ -33,10 +35,14 @@ // this no earlier than SetUpOnMainThread(). void StartLacros(InProcessBrowserTest* test_class_obj); + net::EmbeddedTestServer* https_server(); + GURL base_url(); + private: // This is XDG_RUNTIME_DIR. base::ScopedTempDir scoped_temp_dir_xdg_; base::test::ScopedFeatureList scoped_feature_list_; + net::EmbeddedTestServer https_server_; }; } // namespace test
diff --git a/chrome/test/base/test_browser_window.h b/chrome/test/base/test_browser_window.h index 67adcd3c..270bf56 100644 --- a/chrome/test/base/test_browser_window.h +++ b/chrome/test/base/test_browser_window.h
@@ -147,6 +147,7 @@ void ShowSidePanel( absl::optional<SidePanelEntryId> entry_id, absl::optional<SidePanelOpenTrigger> open_trigger) override {} + void ShowChromeLabs() override {} SharingDialog* ShowSharingDialog(content::WebContents* contents, SharingDialogData data) override; void ShowUpdateChromeDialog() override {}
diff --git a/chrome/test/data/extensions/webui_untrusted/sanity_check_available_apis_read_anything.js b/chrome/test/data/extensions/webui_untrusted/sanity_check_available_apis_read_anything.js index c770f2f..5ea27b4 100644 --- a/chrome/test/data/extensions/webui_untrusted/sanity_check_available_apis_read_anything.js +++ b/chrome/test/data/extensions/webui_untrusted/sanity_check_available_apis_read_anything.js
@@ -15,9 +15,9 @@ // Deprecated proprietary Chrome APIs unrelated to Extensions. 'csi', 'loadTimes', - // chrome.readAnything is available in + // chrome.readingMode is available in // chrome-untrusted://read-anything-side-panel.top-chrome. - 'readAnything', + 'readingMode', // chrome.runtime is always available for chrome-untrusted://. 'runtime', ];
diff --git a/chrome/test/data/webui/chromeos/personalization_app/wallpaper_collections_element_test.ts b/chrome/test/data/webui/chromeos/personalization_app/wallpaper_collections_element_test.ts index aeccf595..983b195 100644 --- a/chrome/test/data/webui/chromeos/personalization_app/wallpaper_collections_element_test.ts +++ b/chrome/test/data/webui/chromeos/personalization_app/wallpaper_collections_element_test.ts
@@ -5,7 +5,7 @@ import 'chrome://personalization/strings.m.js'; import 'chrome://webui-test/mojo_webui_test_support.js'; -import {emptyState, GooglePhotosEnablementState, kDefaultImageSymbol, PersonalizationRouter, WallpaperActionName, WallpaperCollections, WallpaperGridItem, WallpaperImage} from 'chrome://personalization/js/personalization_app.js'; +import {emptyState, GooglePhotosEnablementState, kDefaultImageSymbol, PersonalizationRouter, WallpaperActionName, WallpaperCollection, WallpaperCollections, WallpaperGridItem, WallpaperImage} from 'chrome://personalization/js/personalization_app.js'; import {loadTimeData} from 'chrome://resources/js/load_time_data.js'; import {assertDeepEquals, assertEquals, assertGE, assertTrue} from 'chrome://webui-test/chai_assert.js'; import {waitAfterNextRender} from 'chrome://webui-test/polymer_test_util.js'; @@ -22,6 +22,20 @@ const routerOriginal = PersonalizationRouter.instance; const routerMock = TestMock.fromClass(PersonalizationRouter); + // A simplified representation of WallpaperCollectionElement tile for + // testing. + interface Tile { + id: string; + type: string; + } + function getTiles(): Tile[] { + // Access a private field for testing because iron-list hides elements + // that are out of the viewport. Pick just id and type fields for + // simpler testing. + return (wallpaperCollectionsElement as any) + .tiles_.map(({id, type}: Tile) => ({id, type})); + } + setup(function() { const mocks = baseSetup(); wallpaperProvider = mocks.wallpaperProvider; @@ -268,20 +282,6 @@ const timeOfDayCollectionId = loadTimeData.getString('timeOfDayWallpaperCollectionId'); - // A simplified representation of WallpaperCollectionElement tile for - // testing. - interface Tile { - id: string; - type: string; - } - function getTiles(): Tile[] { - // Access a private field for testing because iron-list hides elements - // that are out of the viewport. Pick just id and type fields for - // simpler testing. - return (wallpaperCollectionsElement as any) - .tiles_.map(({id, type}: Tile) => ({id, type})); - } - personalizationStore.data = emptyState(); // Local images are still loading. personalizationStore.data.wallpaper.loading.local.images = true; @@ -380,4 +380,89 @@ assertDeepEquals(expectedTiles, tiles, 'tiles expected to match'); }); } + + test('no error reopening wallpaper subpage', async () => { + // Wallpaper collections are loaded when first navigating to the + // wallpaper subpage. First the list of collections, then each + // collection, is requested from server - the component somewhat relies + // on this order to render correctly. Test what happens when user + // navigates to, then away from, and back to the wallpaper collections + // subpage. This begins reloading wallpaper while existing wallpaper + // data is already populated. + + // Needs a lot of collections to reproduce the error - there must be more + // wallpaper collections than tiles that fit on the screen. + const generatedCollections: WallpaperCollection[] = + Array.from({length: 20}, (i: number) => ({ + id: `generated_collection_${i}`, + name: `Generated Collection ${i}`, + descriptionContent: '', + previews: [{url: createSvgDataUrl(`${i}`)}], + })); + wallpaperProvider.setCollections([ + ...wallpaperProvider.collections!, + ...generatedCollections, + ]); + + loadTimeData.overrideValues({isTimeOfDayWallpaperEnabled: true}); + + personalizationStore.setReducersEnabled(true); + personalizationStore.expectAction( + WallpaperActionName.SET_IMAGES_FOR_COLLECTION); + + wallpaperCollectionsElement = initElement(WallpaperCollections); + + await personalizationStore.waitForAction( + WallpaperActionName.SET_IMAGES_FOR_COLLECTION); + + const expectedTilesAfterLoading = [ + { + id: '_time_of_day_chromebook_collection', + type: 'image_online', + }, + {id: 'local_', type: 'image_local'}, + {id: 'google_photos_', 'type': 'loading'}, + {id: 'id_0', type: 'image_online'}, + {id: 'id_1', type: 'image_online'}, + {id: 'id_2', type: 'image_online'}, + ...generatedCollections.map(({id}) => ({id, type: 'image_online'})), + ]; + + assertDeepEquals( + expectedTilesAfterLoading, getTiles(), 'expected tiles should match'); + + await teardownElement(wallpaperCollectionsElement); + + // Do not use initElement because it flushes startup tasks, but test + // needs to verify an initial state. + wallpaperCollectionsElement = + document.createElement(WallpaperCollections.is) as + WallpaperCollections & + HTMLElement; + + // Sets up loading tiles again. + assertDeepEquals( + [ + {id: '_time_of_day_chromebook_collection', type: 'loading'}, + {id: 'local_', type: 'loading'}, + {id: 'google_photos_', type: 'loading'}, + ], + getTiles().slice(0, 3), 'first special tiles should match'); + assertGE(getTiles().length, 6, 'at least 6 tiles at first'); + getTiles().slice(3).forEach((tile, i) => { + assertDeepEquals({id: `backdrop_collection_${i}`, type: 'loading'}, tile); + }); + + // Put the element on the page and wait for network requests to re-fetch + // wallpaper collections. + personalizationStore.expectAction( + WallpaperActionName.SET_IMAGES_FOR_COLLECTION); + document.body.appendChild(wallpaperCollectionsElement); + await personalizationStore.waitForAction( + WallpaperActionName.SET_IMAGES_FOR_COLLECTION); + + assertDeepEquals( + expectedTilesAfterLoading, getTiles(), + 'expected tiles match the second time'); + }); });
diff --git a/chrome/test/data/webui/settings/chromeos/BUILD.gn b/chrome/test/data/webui/settings/chromeos/BUILD.gn index 420b2d9d..2833a96 100644 --- a/chrome/test/data/webui/settings/chromeos/BUILD.gn +++ b/chrome/test/data/webui/settings/chromeos/BUILD.gn
@@ -46,7 +46,6 @@ "fake_users_private.js", "hotspot_config_dialog_tests.js", "hotspot_subpage_tests.js", - "hotspot_summary_item_tests.js", "input_page_test.js", "internet_config_test.js", "internet_detail_menu_test.js", @@ -160,6 +159,7 @@ "guest_os/test_guest_os_browser_proxy.ts", "internet_page/cellular_setup_dialog_test.ts", + "internet_page/hotspot_summary_item_test.ts", "internet_page/internet_detail_subpage_tests.js", "internet_page/network_summary_item_test.ts", "internet_page/network_summary_test.ts",
diff --git a/chrome/test/data/webui/settings/chromeos/hotspot_summary_item_tests.js b/chrome/test/data/webui/settings/chromeos/hotspot_summary_item_tests.js deleted file mode 100644 index 52ac5eb..0000000 --- a/chrome/test/data/webui/settings/chromeos/hotspot_summary_item_tests.js +++ /dev/null
@@ -1,322 +0,0 @@ -// Copyright 2022 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import {Router, routes} from 'chrome://os-settings/os_settings.js'; -import {setHotspotConfigForTesting} from 'chrome://resources/ash/common/hotspot/cros_hotspot_config.js'; -import {HotspotAllowStatus, HotspotControlResult, HotspotState} from 'chrome://resources/ash/common/hotspot/cros_hotspot_config.mojom-webui.js'; -import {FakeHotspotConfig} from 'chrome://resources/ash/common/hotspot/fake_hotspot_config.js'; -import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; -import {assertEquals, assertFalse, assertTrue} from 'chrome://webui-test/chai_assert.js'; -import {eventToPromise} from 'chrome://webui-test/test_util.js'; - -suite('HotspotSummaryItemTest', function() { - /** @type {HotspotSummaryItemElement} */ - let hotspotSummaryItem = null; - - /** @type {?CrosHotspotConfigInterface} */ - let hotspotConfig_ = null; - - /** - * @type {!CrosHotspotConfigObserverInterface} - */ - let hotspotConfigObserver; - - suiteSetup(function() { - hotspotConfig_ = new FakeHotspotConfig(); - setHotspotConfigForTesting(hotspotConfig_); - }); - - setup(async function() { - PolymerTest.clearBody(); - - hotspotSummaryItem = document.createElement('hotspot-summary-item'); - document.body.appendChild(hotspotSummaryItem); - flush(); - - hotspotConfigObserver = { - /** override */ - onHotspotInfoChanged() { - hotspotConfig_.getHotspotInfo().then(response => { - hotspotSummaryItem.hotspotInfo = response.hotspotInfo; - }); - }, - }; - hotspotConfig_.addObserver(hotspotConfigObserver); - - hotspotConfig_.setFakeHotspotInfo({ - state: HotspotState.kDisabled, - allowStatus: HotspotAllowStatus.kAllowed, - }); - await flushAsync(); - }); - - teardown(function() { - hotspotSummaryItem.remove(); - hotspotSummaryItem = null; - Router.getInstance().resetRouteForTesting(); - hotspotConfig_.reset(); - }); - - function flushAsync() { - flush(); - // Use setTimeout to wait for the next macrotask. - return new Promise(resolve => setTimeout(resolve)); - } - - test( - 'clicking on subpage arrow routes to hotspot subpage when allowed', - async function() { - const subpageArrow = hotspotSummaryItem.shadowRoot.querySelector( - '#hotspotSummaryItemRowArrowIcon'); - assertTrue(!!subpageArrow, 'Subpage arrow should exist'); - subpageArrow.click(); - assertEquals(routes.HOTSPOT_DETAIL, Router.getInstance().currentRoute); - }); - - test( - 'clicking on hotspot summary row routes to hotspot subpage when allowed', - async function() { - const hotspotSummaryRow = hotspotSummaryItem.shadowRoot.querySelector( - '#hotspotSummaryItemRow'); - assertTrue(!!hotspotSummaryRow, 'Hotspot summary row should exist'); - hotspotSummaryRow.click(); - assertEquals(routes.HOTSPOT_DETAIL, Router.getInstance().currentRoute); - }); - - test('UI state when hotspot is allowed and state is off', async function() { - const hotspotStateSublabel = - hotspotSummaryItem.shadowRoot.querySelector('#hotspotStateSublabel'); - const hotspotDisabledSublabelLink = - hotspotSummaryItem.shadowRoot.querySelector( - '#hotspotDisabledSublabelLink'); - const enableToggle = - hotspotSummaryItem.shadowRoot.querySelector('#enableHotspotToggle'); - const hotspotIcon = - hotspotSummaryItem.shadowRoot.querySelector('#hotspotIcon'); - const subpageArrow = hotspotSummaryItem.shadowRoot.querySelector( - '#hotspotSummaryItemRowArrowIcon'); - const policyIndicator = - hotspotSummaryItem.shadowRoot.querySelector('#policyIndicator'); - - assertFalse(enableToggle.disabled, 'Toggle should be enabled'); - assertTrue(!!subpageArrow, 'Subpage arrow should exist'); - assertFalse(!!policyIndicator, 'Policy indicator should not exist'); - assertEquals('os-settings:hotspot-disabled', hotspotIcon.icon); - assertFalse(hotspotStateSublabel.hidden, 'State sublabel should show'); - assertEquals( - hotspotSummaryItem.i18n('hotspotSummaryStateOff'), - hotspotStateSublabel.textContent.trim()); - assertTrue( - hotspotDisabledSublabelLink.hidden, - 'Disabled sublabel link should hide'); - }); - - test('UI state when hotspot is allowed and state is on', async function() { - hotspotConfig_.setFakeHotspotState(HotspotState.kEnabled); - await flushAsync(); - - const hotspotStateSublabel = - hotspotSummaryItem.shadowRoot.querySelector('#hotspotStateSublabel'); - const hotspotDisabledSublabelLink = - hotspotSummaryItem.shadowRoot.querySelector( - '#hotspotDisabledSublabelLink'); - const enableToggle = - hotspotSummaryItem.shadowRoot.querySelector('#enableHotspotToggle'); - const hotspotIcon = - hotspotSummaryItem.shadowRoot.querySelector('#hotspotIcon'); - const subpageArrow = hotspotSummaryItem.shadowRoot.querySelector( - '#hotspotSummaryItemRowArrowIcon'); - const policyIndicator = - hotspotSummaryItem.shadowRoot.querySelector('#policyIndicator'); - - assertFalse(enableToggle.disabled, 'Toggle should be enabled'); - assertTrue(!!subpageArrow, 'Subpage arrow should exist'); - assertFalse(!!policyIndicator, 'Policy indicator should not exist'); - assertEquals('os-settings:hotspot-enabled', hotspotIcon.icon); - assertFalse(hotspotStateSublabel.hidden, 'State sublabel should show'); - assertEquals( - hotspotSummaryItem.i18n('hotspotSummaryStateOn'), - hotspotStateSublabel.textContent.trim()); - assertTrue( - hotspotDisabledSublabelLink.hidden, - 'Disabled sublabel link should hide'); - }); - - test('UI state when disallowed by policy', async function() { - hotspotConfig_.setFakeHotspotAllowStatus( - HotspotAllowStatus.kDisallowedByPolicy); - await flushAsync(); - - const hotspotStateSublabel = - hotspotSummaryItem.shadowRoot.querySelector('#hotspotStateSublabel'); - const hotspotDisabledSublabelLink = - hotspotSummaryItem.shadowRoot.querySelector( - '#hotspotDisabledSublabelLink'); - const enableToggle = - hotspotSummaryItem.shadowRoot.querySelector('#enableHotspotToggle'); - const hotspotIcon = - hotspotSummaryItem.shadowRoot.querySelector('#hotspotIcon'); - const subpageArrow = hotspotSummaryItem.shadowRoot.querySelector( - '#hotspotSummaryItemRowArrowIcon'); - const policyIndicator = - hotspotSummaryItem.shadowRoot.querySelector('#policyIndicator'); - - // Toggle should be disabled, subpage arrow should not show. - assertTrue(enableToggle.disabled, 'Toggle should be disabled'); - assertFalse(!!subpageArrow, 'Subpage arrow should not exist'); - assertTrue(!!policyIndicator, 'Policy indicator should exist'); - assertEquals('os-settings:hotspot-disabled', hotspotIcon.icon); - assertFalse(hotspotStateSublabel.hidden, 'State sublabel should show'); - assertEquals( - hotspotSummaryItem.i18n('hotspotSummaryStateOff'), - hotspotStateSublabel.textContent.trim()); - assertTrue( - hotspotDisabledSublabelLink.hidden, - 'Disabled sublabel link should hide'); - - // Verify toggle is able to turn on/off by CrosHotspotConfig even when it is - // disabled by policy. - hotspotConfig_.setFakeHotspotState(HotspotState.kEnabled); - await flushAsync(); - assertEquals( - hotspotSummaryItem.i18n('hotspotSummaryStateOn'), - hotspotStateSublabel.textContent.trim()); - assertEquals('os-settings:hotspot-enabled', hotspotIcon.icon); - - hotspotConfig_.setFakeHotspotState(HotspotState.kDisabled); - await flushAsync(); - assertEquals( - hotspotSummaryItem.i18n('hotspotSummaryStateOff'), - hotspotStateSublabel.textContent.trim()); - assertEquals('os-settings:hotspot-disabled', hotspotIcon.icon); - }); - - test( - 'UI state when mobile data plan doesn\'t support hotspot', - async function() { - hotspotConfig_.setFakeHotspotAllowStatus( - HotspotAllowStatus.kDisallowedReadinessCheckFail); - await flushAsync(); - - const hotspotStateSublabel = - hotspotSummaryItem.shadowRoot.querySelector( - '#hotspotStateSublabel'); - const hotspotDisabledSublabelLink = - hotspotSummaryItem.shadowRoot.querySelector( - '#hotspotDisabledSublabelLink'); - const enableToggle = - hotspotSummaryItem.shadowRoot.querySelector('#enableHotspotToggle'); - const hotspotIcon = - hotspotSummaryItem.shadowRoot.querySelector('#hotspotIcon'); - const subpageArrow = hotspotSummaryItem.shadowRoot.querySelector( - '#hotspotSummaryItemRowArrowIcon'); - const policyIndicator = - hotspotSummaryItem.shadowRoot.querySelector('#policyIndicator'); - - // Toggle should be disabled, subpage arrow should not show. - assertTrue(enableToggle.disabled, 'Toggle should be disabled'); - assertFalse(!!subpageArrow, 'Subpage arrow should not exist'); - assertFalse(!!policyIndicator, 'Policy indicator should not exist'); - assertEquals('os-settings:hotspot-disabled', hotspotIcon.icon); - assertTrue(hotspotStateSublabel.hidden, 'State sublabel should hide'); - assertFalse( - hotspotDisabledSublabelLink.hidden, - 'Disabled sublabel link should show'); - assertEquals( - hotspotSummaryItem - .i18nAdvanced('hotspotMobileDataNotSupportedSublabelWithLink') - .toString(), - hotspotDisabledSublabelLink.localizedString); - }); - - test('UI state when no mobile data connection', async function() { - hotspotConfig_.setFakeHotspotAllowStatus( - HotspotAllowStatus.kDisallowedNoMobileData); - await flushAsync(); - - const hotspotStateSublabel = - hotspotSummaryItem.shadowRoot.querySelector('#hotspotStateSublabel'); - const hotspotDisabledSublabelLink = - hotspotSummaryItem.shadowRoot.querySelector( - '#hotspotDisabledSublabelLink'); - const enableToggle = - hotspotSummaryItem.shadowRoot.querySelector('#enableHotspotToggle'); - const hotspotIcon = - hotspotSummaryItem.shadowRoot.querySelector('#hotspotIcon'); - const subpageArrow = hotspotSummaryItem.shadowRoot.querySelector( - '#hotspotSummaryItemRowArrowIcon'); - const policyIndicator = - hotspotSummaryItem.shadowRoot.querySelector('#policyIndicator'); - - // Toggle should be disabled, subpage arrow should not show. - assertTrue(enableToggle.disabled, 'Toggle should be disabled'); - assertFalse(!!subpageArrow, 'Subpage arrow should not exist'); - assertFalse(!!policyIndicator, 'Policy indicator should not exist'); - assertEquals('os-settings:hotspot-disabled', hotspotIcon.icon); - assertTrue(hotspotStateSublabel.hidden, 'State sublabel should hide'); - assertFalse( - hotspotDisabledSublabelLink.hidden, - 'Disabled sublabel link should show'); - assertEquals( - hotspotSummaryItem.i18nAdvanced('hotspotNoMobileDataSublabelWithLink') - .toString(), - hotspotDisabledSublabelLink.localizedString); - }); - - test('Toggle button state', async function() { - const enableHotspotToggle = - hotspotSummaryItem.shadowRoot.querySelector('#enableHotspotToggle'); - assertTrue(!!enableHotspotToggle, 'Hotspot enable toggl should exist'); - assertFalse(enableHotspotToggle.checked); - - // Simulate clicking toggle to turn on hotspot and fail. - hotspotConfig_.setFakeEnableHotspotResult( - HotspotControlResult.kNetworkSetupFailure); - enableHotspotToggle.click(); - await flushAsync(); - // Toggle should be off. - assertFalse(enableHotspotToggle.checked); - assertFalse(enableHotspotToggle.disabled); - - // Simulate clicking toggle to turn on hotspot and succeed. - let a11yMessagesEventPromise = - eventToPromise('cr-a11y-announcer-messages-sent', document.body); - hotspotConfig_.setFakeEnableHotspotResult(HotspotControlResult.kSuccess); - enableHotspotToggle.click(); - await flushAsync(); - // Toggle should be on this time. - assertTrue(enableHotspotToggle.checked); - assertFalse(enableHotspotToggle.disabled); - let a11yMessagesEvent = await a11yMessagesEventPromise; - assertTrue(a11yMessagesEvent.detail.messages.includes( - hotspotSummaryItem.i18n('hotspotEnabledA11yLabel'))); - - // Simulate clicking on toggle to turn off hotspot and succeed. - a11yMessagesEventPromise = - eventToPromise('cr-a11y-announcer-messages-sent', document.body); - hotspotConfig_.setFakeDisableHotspotResult(HotspotControlResult.kSuccess); - enableHotspotToggle.click(); - await flushAsync(); - // Toggle should be off - assertFalse(enableHotspotToggle.checked); - assertFalse(enableHotspotToggle.disabled); - a11yMessagesEvent = await a11yMessagesEventPromise; - assertTrue(a11yMessagesEvent.detail.messages.includes( - hotspotSummaryItem.i18n('hotspotDisabledA11yLabel'))); - - // Simulate state becoming kEnabling. - hotspotConfig_.setFakeHotspotState(HotspotState.kEnabling); - await flushAsync(); - // Toggle should be disabled. - assertTrue(enableHotspotToggle.disabled); - hotspotConfig_.setFakeHotspotState(HotspotState.kDisabled); - - // Simulate AllowStatus becoming kDisallowedByPolicy. - hotspotConfig_.setFakeHotspotAllowStatus( - HotspotAllowStatus.kDisallowedByPolicy); - await flushAsync(); - // Toggle should be disabled. - assertTrue(enableHotspotToggle.disabled); - }); -});
diff --git a/chrome/test/data/webui/settings/chromeos/internet_page/hotspot_summary_item_test.ts b/chrome/test/data/webui/settings/chromeos/internet_page/hotspot_summary_item_test.ts new file mode 100644 index 0000000..20be47c --- /dev/null +++ b/chrome/test/data/webui/settings/chromeos/internet_page/hotspot_summary_item_test.ts
@@ -0,0 +1,329 @@ +// Copyright 2022 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +import 'chrome://os-settings/os_settings.js'; + +import {CrToggleElement, HotspotSummaryItemElement, LocalizedLinkElement, Router, routes} from 'chrome://os-settings/os_settings.js'; +import {setHotspotConfigForTesting} from 'chrome://resources/ash/common/hotspot/cros_hotspot_config.js'; +import {CrosHotspotConfigInterface, CrosHotspotConfigObserverInterface, CrosHotspotConfigObserverRemote, HotspotAllowStatus, HotspotControlResult, HotspotState, WiFiSecurityMode} from 'chrome://resources/ash/common/hotspot/cros_hotspot_config.mojom-webui.js'; +import {FakeHotspotConfig} from 'chrome://resources/ash/common/hotspot/fake_hotspot_config.js'; +import {CrPolicyIndicatorElement} from 'chrome://resources/cr_elements/policy/cr_policy_indicator.js'; +import {IronIconElement} from 'chrome://resources/polymer/v3_0/iron-icon/iron-icon.js'; +import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; +import {assertEquals, assertFalse, assertNull, assertTrue} from 'chrome://webui-test/chai_assert.js'; +import {eventToPromise} from 'chrome://webui-test/test_util.js'; + +suite('<hotspot-summary-item>', () => { + let hotspotSummaryItem: HotspotSummaryItemElement; + let hotspotConfig_: CrosHotspotConfigInterface&FakeHotspotConfig; + let hotspotConfigObserver: CrosHotspotConfigObserverInterface; + + function queryHotspotStateSublabel(): HTMLElement|null { + return hotspotSummaryItem.shadowRoot!.querySelector<HTMLElement>( + '#hotspotStateSublabel'); + } + + function queryHotspotDisabledSublabelLink(): LocalizedLinkElement|null { + return hotspotSummaryItem.shadowRoot!.querySelector<LocalizedLinkElement>( + '#hotspotDisabledSublabelLink'); + } + + function queryEnableHotspotToggle(): CrToggleElement|null { + return hotspotSummaryItem.shadowRoot!.querySelector<CrToggleElement>( + '#enableHotspotToggle'); + } + + function queryHotspotIcon(): IronIconElement|null { + return hotspotSummaryItem.shadowRoot!.querySelector<IronIconElement>( + '#hotspotIcon'); + } + + function queryHotspotSummaryItemRowArrowIcon(): HTMLElement|null { + return hotspotSummaryItem.shadowRoot!.querySelector( + '#hotspotSummaryItemRowArrowIcon'); + } + + function queryPolicyIndicator(): CrPolicyIndicatorElement|null { + return hotspotSummaryItem.shadowRoot!.querySelector('#policyIndicator'); + } + + suiteSetup(() => { + hotspotConfig_ = new FakeHotspotConfig(); + setHotspotConfigForTesting(hotspotConfig_); + }); + + function flushAsync() { + flush(); + // Use setTimeout to wait for the next macrotask. + return new Promise(resolve => setTimeout(resolve)); + } + + setup(async () => { + hotspotSummaryItem = document.createElement('hotspot-summary-item'); + document.body.appendChild(hotspotSummaryItem); + flush(); + + hotspotConfigObserver = { + async onHotspotInfoChanged() { + const response = await hotspotConfig_.getHotspotInfo(); + hotspotSummaryItem.hotspotInfo = response.hotspotInfo; + }, + }; + hotspotConfig_.addObserver( + hotspotConfigObserver as CrosHotspotConfigObserverRemote); + + hotspotConfig_.setFakeHotspotInfo({ + state: HotspotState.kDisabled, + allowStatus: HotspotAllowStatus.kAllowed, + clientCount: 0, + allowedWifiSecurityModes: [ + WiFiSecurityMode.MIN_VALUE, + ], + }); + await flushAsync(); + }); + + teardown(() => { + hotspotSummaryItem.remove(); + Router.getInstance().resetRouteForTesting(); + hotspotConfig_.reset(); + }); + + test( + 'clicking on subpage arrow routes to hotspot subpage when allowed', + () => { + const subpageArrow = queryHotspotSummaryItemRowArrowIcon(); + assertTrue(!!subpageArrow, 'Subpage arrow should exist'); + subpageArrow.click(); + assertEquals(routes.HOTSPOT_DETAIL, Router.getInstance().currentRoute); + }); + + test( + 'clicking on hotspot summary row routes to hotspot subpage when allowed', + () => { + const hotspotSummaryRow = + hotspotSummaryItem.shadowRoot!.querySelector<HTMLElement>( + '#hotspotSummaryItemRow'); + assertTrue(!!hotspotSummaryRow, 'Hotspot summary row should exist'); + hotspotSummaryRow.click(); + assertEquals(routes.HOTSPOT_DETAIL, Router.getInstance().currentRoute); + }); + + test('UI state when hotspot is allowed and state is off', () => { + const hotspotStateSublabel = queryHotspotStateSublabel(); + assertTrue(!!hotspotStateSublabel); + const hotspotDisabledSublabelLink = queryHotspotDisabledSublabelLink(); + assertTrue(!!hotspotDisabledSublabelLink); + const enableToggle = queryEnableHotspotToggle(); + assertTrue(!!enableToggle); + const hotspotIcon = queryHotspotIcon(); + assertTrue(!!hotspotIcon); + const subpageArrow = queryHotspotSummaryItemRowArrowIcon(); + const policyIndicator = queryPolicyIndicator(); + + assertFalse(enableToggle.disabled, 'Toggle should be enabled'); + assertTrue(!!subpageArrow, 'Subpage arrow should exist'); + assertNull(policyIndicator, 'Policy indicator should not exist'); + assertEquals('os-settings:hotspot-disabled', hotspotIcon.icon); + assertFalse(hotspotStateSublabel.hidden, 'State sublabel should show'); + assertEquals( + hotspotSummaryItem.i18n('hotspotSummaryStateOff'), + hotspotStateSublabel.textContent!.trim()); + assertTrue( + hotspotDisabledSublabelLink.hidden, + 'Disabled sublabel link should hide'); + }); + + test('UI state when hotspot is allowed and state is on', async () => { + hotspotConfig_.setFakeHotspotState(HotspotState.kEnabled); + await flushAsync(); + + const hotspotStateSublabel = queryHotspotStateSublabel(); + assertTrue(!!hotspotStateSublabel); + const hotspotDisabledSublabelLink = queryHotspotDisabledSublabelLink(); + assertTrue(!!hotspotDisabledSublabelLink); + const enableToggle = queryEnableHotspotToggle(); + assertTrue(!!enableToggle); + const hotspotIcon = queryHotspotIcon(); + assertTrue(!!hotspotIcon); + const subpageArrow = queryHotspotSummaryItemRowArrowIcon(); + const policyIndicator = queryPolicyIndicator(); + + assertFalse(enableToggle.disabled, 'Toggle should be enabled'); + assertTrue(!!subpageArrow, 'Subpage arrow should exist'); + assertNull(policyIndicator, 'Policy indicator should not exist'); + assertEquals('os-settings:hotspot-enabled', hotspotIcon.icon); + assertFalse(hotspotStateSublabel.hidden, 'State sublabel should show'); + assertEquals( + hotspotSummaryItem.i18n('hotspotSummaryStateOn'), + hotspotStateSublabel.textContent!.trim()); + assertTrue( + hotspotDisabledSublabelLink.hidden, + 'Disabled sublabel link should hide'); + }); + + test('UI state when disallowed by policy', async () => { + hotspotConfig_.setFakeHotspotAllowStatus( + HotspotAllowStatus.kDisallowedByPolicy); + await flushAsync(); + + const hotspotStateSublabel = queryHotspotStateSublabel(); + assertTrue(!!hotspotStateSublabel); + const hotspotDisabledSublabelLink = queryHotspotDisabledSublabelLink(); + assertTrue(!!hotspotDisabledSublabelLink); + const enableToggle = queryEnableHotspotToggle(); + assertTrue(!!enableToggle); + const hotspotIcon = queryHotspotIcon(); + assertTrue(!!hotspotIcon); + const subpageArrow = queryHotspotSummaryItemRowArrowIcon(); + const policyIndicator = queryPolicyIndicator(); + + // Toggle should be disabled, subpage arrow should not show. + assertTrue(enableToggle.disabled, 'Toggle should be disabled'); + assertNull(subpageArrow, 'Subpage arrow should not exist'); + assertTrue(!!policyIndicator, 'Policy indicator should exist'); + assertEquals('os-settings:hotspot-disabled', hotspotIcon.icon); + assertFalse(hotspotStateSublabel.hidden, 'State sublabel should show'); + assertEquals( + hotspotSummaryItem.i18n('hotspotSummaryStateOff'), + hotspotStateSublabel.textContent!.trim()); + assertTrue( + hotspotDisabledSublabelLink.hidden, + 'Disabled sublabel link should hide'); + + // Verify toggle is able to turn on/off by CrosHotspotConfig even when it is + // disabled by policy. + hotspotConfig_.setFakeHotspotState(HotspotState.kEnabled); + await flushAsync(); + assertEquals( + hotspotSummaryItem.i18n('hotspotSummaryStateOn'), + hotspotStateSublabel.textContent!.trim()); + assertEquals('os-settings:hotspot-enabled', hotspotIcon.icon); + + hotspotConfig_.setFakeHotspotState(HotspotState.kDisabled); + await flushAsync(); + assertEquals( + hotspotSummaryItem.i18n('hotspotSummaryStateOff'), + hotspotStateSublabel.textContent!.trim()); + assertEquals('os-settings:hotspot-disabled', hotspotIcon.icon); + }); + + test('UI state when mobile data plan doesn\'t support hotspot', async () => { + hotspotConfig_.setFakeHotspotAllowStatus( + HotspotAllowStatus.kDisallowedReadinessCheckFail); + await flushAsync(); + + const hotspotStateSublabel = queryHotspotStateSublabel(); + assertTrue(!!hotspotStateSublabel); + const hotspotDisabledSublabelLink = queryHotspotDisabledSublabelLink(); + assertTrue(!!hotspotDisabledSublabelLink); + const enableToggle = queryEnableHotspotToggle(); + assertTrue(!!enableToggle); + const hotspotIcon = queryHotspotIcon(); + assertTrue(!!hotspotIcon); + const subpageArrow = queryHotspotSummaryItemRowArrowIcon(); + const policyIndicator = queryPolicyIndicator(); + + // Toggle should be disabled, subpage arrow should not show. + assertTrue(enableToggle.disabled, 'Toggle should be disabled'); + assertNull(subpageArrow, 'Subpage arrow should not exist'); + assertNull(policyIndicator, 'Policy indicator should not exist'); + assertEquals('os-settings:hotspot-disabled', hotspotIcon.icon); + assertTrue(hotspotStateSublabel.hidden, 'State sublabel should hide'); + assertFalse( + hotspotDisabledSublabelLink.hidden, + 'Disabled sublabel link should show'); + assertEquals( + hotspotSummaryItem + .i18nAdvanced('hotspotMobileDataNotSupportedSublabelWithLink') + .toString(), + hotspotDisabledSublabelLink.localizedString); + }); + + test('UI state when no mobile data connection', async () => { + hotspotConfig_.setFakeHotspotAllowStatus( + HotspotAllowStatus.kDisallowedNoMobileData); + await flushAsync(); + + const hotspotStateSublabel = queryHotspotStateSublabel(); + assertTrue(!!hotspotStateSublabel); + const hotspotDisabledSublabelLink = queryHotspotDisabledSublabelLink(); + assertTrue(!!hotspotDisabledSublabelLink); + const enableToggle = queryEnableHotspotToggle(); + assertTrue(!!enableToggle); + const hotspotIcon = queryHotspotIcon(); + assertTrue(!!hotspotIcon); + const subpageArrow = queryHotspotSummaryItemRowArrowIcon(); + const policyIndicator = queryPolicyIndicator(); + + // Toggle should be disabled, subpage arrow should not show. + assertTrue(enableToggle.disabled, 'Toggle should be disabled'); + assertNull(subpageArrow, 'Subpage arrow should not exist'); + assertNull(policyIndicator, 'Policy indicator should not exist'); + assertEquals('os-settings:hotspot-disabled', hotspotIcon.icon); + assertTrue(hotspotStateSublabel.hidden, 'State sublabel should hide'); + assertFalse( + hotspotDisabledSublabelLink.hidden, + 'Disabled sublabel link should show'); + assertEquals( + hotspotSummaryItem.i18nAdvanced('hotspotNoMobileDataSublabelWithLink') + .toString(), + hotspotDisabledSublabelLink.localizedString); + }); + + test('Toggle button state', async () => { + const enableHotspotToggle = queryEnableHotspotToggle(); + assertTrue(!!enableHotspotToggle, 'Hotspot enable toggl should exist'); + assertFalse(enableHotspotToggle.checked); + + // Simulate clicking toggle to turn on hotspot and fail. + hotspotConfig_.setFakeEnableHotspotResult( + HotspotControlResult.kNetworkSetupFailure); + enableHotspotToggle.click(); + await flushAsync(); + // Toggle should be off. + assertFalse(enableHotspotToggle.checked); + assertFalse(enableHotspotToggle.disabled); + + // Simulate clicking toggle to turn on hotspot and succeed. + let a11yMessagesEventPromise = + eventToPromise('cr-a11y-announcer-messages-sent', document.body); + hotspotConfig_.setFakeEnableHotspotResult(HotspotControlResult.kSuccess); + enableHotspotToggle.click(); + await flushAsync(); + // Toggle should be on this time. + assertTrue(enableHotspotToggle.checked); + assertFalse(enableHotspotToggle.disabled); + let a11yMessagesEvent = await a11yMessagesEventPromise; + assertTrue(a11yMessagesEvent.detail.messages.includes( + hotspotSummaryItem.i18n('hotspotEnabledA11yLabel'))); + + // Simulate clicking on toggle to turn off hotspot and succeed. + a11yMessagesEventPromise = + eventToPromise('cr-a11y-announcer-messages-sent', document.body); + hotspotConfig_.setFakeDisableHotspotResult(HotspotControlResult.kSuccess); + enableHotspotToggle.click(); + await flushAsync(); + // Toggle should be off + assertFalse(enableHotspotToggle.checked); + assertFalse(enableHotspotToggle.disabled); + a11yMessagesEvent = await a11yMessagesEventPromise; + assertTrue(a11yMessagesEvent.detail.messages.includes( + hotspotSummaryItem.i18n('hotspotDisabledA11yLabel'))); + + // Simulate state becoming kEnabling. + hotspotConfig_.setFakeHotspotState(HotspotState.kEnabling); + await flushAsync(); + // Toggle should be disabled. + assertTrue(enableHotspotToggle.disabled); + hotspotConfig_.setFakeHotspotState(HotspotState.kDisabled); + + // Simulate AllowStatus becoming kDisallowedByPolicy. + hotspotConfig_.setFakeHotspotAllowStatus( + HotspotAllowStatus.kDisallowedByPolicy); + await flushAsync(); + // Toggle should be disabled. + assertTrue(enableHotspotToggle.disabled); + }); +});
diff --git a/chrome/test/data/webui/settings/chromeos/kerberos_page/kerberos_accounts_subpage_test.js b/chrome/test/data/webui/settings/chromeos/kerberos_page/kerberos_accounts_subpage_test.js index e3ad29f..ae0d73d 100644 --- a/chrome/test/data/webui/settings/chromeos/kerberos_page/kerberos_accounts_subpage_test.js +++ b/chrome/test/data/webui/settings/chromeos/kerberos_page/kerberos_accounts_subpage_test.js
@@ -370,6 +370,9 @@ browserProxy = new TestKerberosAccountsBrowserProxy(); KerberosAccountsBrowserProxyImpl.setInstanceForTesting(browserProxy); PolymerTest.clearBody(); + + // Start test with the "Remember password by default" feature enabled. + loadTimeData.overrideValues({kerberosRememberPasswordByDefault: true}); createDialog(null); }); @@ -454,14 +457,25 @@ flush(); } - // Verifies expected states if no account is preset. - test('StatesWithoutPresetAccount', async () => { + // Verifies expected states if no account is preset and password should be + // remembered by default. + test('StatesWithoutPresetAccountPasswordRemembered', async () => { assertTrue(title.startsWith('Add')); assertEquals('Add', actionButton.innerText); assertFalse(username.disabled); assertEquals('', username.value); assertEquals('', password.value); assertConfig(loadTimeData.getString('defaultKerberosConfig')); + assertTrue(rememberPassword.checked); + }); + + // Verifies the rememberPassword state if no account is preset and password + // should not be remembered by default. + test('StatesWithoutPresetAccountPasswordNotRemembered', async () => { + loadTimeData.overrideValues({kerberosRememberPasswordByDefault: false}); + createDialog(null); + flush(); + assertFalse(rememberPassword.checked); }); @@ -477,16 +491,31 @@ // depends on the passwordWasRemembered property of the account. }); - // The password input field is empty and 'Remember password' is not preset - // if |passwordWasRemembered| is false. + // The password input field is empty and 'Remember password' is checked if + // |passwordWasRemembered| is false and the password should be remembered by + // default. test('PasswordNotPresetIfPasswordWasNotRemembered', function() { assertFalse(TEST_KERBEROS_ACCOUNTS[0].passwordWasRemembered); createDialog(TEST_KERBEROS_ACCOUNTS[0]); assertEquals('', password.value); + assertTrue(rememberPassword.checked); + }); + + // The password input field is empty and 'Remember password' is not checked if + // |passwordWasRemembered| is false and the password should not be remembered + // by default. + test('PasswordPresetIfPasswordWasNotRememberedAndFeatureEnabled', function() { + loadTimeData.overrideValues({kerberosRememberPasswordByDefault: false}); + createDialog(null); + flush(); + + assertFalse(TEST_KERBEROS_ACCOUNTS[0].passwordWasRemembered); + createDialog(TEST_KERBEROS_ACCOUNTS[0]); + assertEquals('', password.value); assertFalse(rememberPassword.checked); }); - // The password input field is not empty and 'Remember password' is preset + // The password input field is not empty and 'Remember password' is checked // if |passwordWasRemembered| is true. test('PasswordPresetIfPasswordWasRemembered', function() { assertTrue(TEST_KERBEROS_ACCOUNTS[1].passwordWasRemembered); @@ -523,22 +552,24 @@ loadTimeData.overrideValues({kerberosRememberPasswordEnabled: true}); }); - test('RememberPasswordVisibleOnUserSessions', function() { + test('RememberPasswordVisibleAndCheckedOnUserSessions', function() { assertFalse(loadTimeData.getBoolean('isGuest')); createDialog(null); flush(); assertFalse( dialog.shadowRoot.querySelector('#rememberPasswordContainer').hidden); + assertTrue(rememberPassword.checked); }); - test('RememberPasswordHiddenOnMgs', function() { + test('RememberPasswordHiddenAndNotCheckedOnMgs', function() { loadTimeData.overrideValues({isGuest: true}); createDialog(null); flush(); assertTrue( dialog.shadowRoot.querySelector('#rememberPasswordContainer').hidden); + assertFalse(rememberPassword.checked); // Reset for further tests. loadTimeData.overrideValues({isGuest: false});
diff --git a/chrome/test/data/webui/settings/chromeos/os_settings_browsertest.js b/chrome/test/data/webui/settings/chromeos/os_settings_browsertest.js index c1491f9..fb39561a 100644 --- a/chrome/test/data/webui/settings/chromeos/os_settings_browsertest.js +++ b/chrome/test/data/webui/settings/chromeos/os_settings_browsertest.js
@@ -321,11 +321,6 @@ 'hotspot_subpage_tests.js', {enabled: ['ash::features::kHotspot']}, ], - [ - 'HotspotSummaryItem', - 'hotspot_summary_item_tests.js', - {enabled: ['ash::features::kHotspot']}, - ], ['InputPage', 'input_page_test.js'], ['InternetConfig', 'internet_config_test.js'], ['InternetDetailMenu', 'internet_detail_menu_test.js'], @@ -350,6 +345,11 @@ 'internet_page/cellular_setup_dialog_test.js' ], [ + 'InternetPageHotspotSummaryItem', + 'internet_page/hotspot_summary_item_test.js', + {enabled: ['ash::features::kHotspot']}, + ], + [ 'InternetPageInternetDetailSubpage', 'internet_page/internet_detail_subpage_tests.js', { enabled: [
diff --git a/chrome/test/data/webui/side_panel/read_anything/connected_callback_show_loading_screen.js b/chrome/test/data/webui/side_panel/read_anything/connected_callback_show_loading_screen.js index 561191a..2a61f5e 100644 --- a/chrome/test/data/webui/side_panel/read_anything/connected_callback_show_loading_screen.js +++ b/chrome/test/data/webui/side_panel/read_anything/connected_callback_show_loading_screen.js
@@ -9,7 +9,7 @@ // ReadAnythingAppController, onConnected creates mojo pipes to connect to the // rest of the Read Anything feature, which we are not testing here. (() => { - chrome.readAnything.onConnected = () => {}; + chrome.readingMode.onConnected = () => {}; const readAnythingApp = document.querySelector('read-anything-app').shadowRoot;
diff --git a/chrome/test/data/webui/side_panel/read_anything/on_selection_change_nothing_selected_on_loading_screen_selection.js b/chrome/test/data/webui/side_panel/read_anything/on_selection_change_nothing_selected_on_loading_screen_selection.js index c749988..dc8f710 100644 --- a/chrome/test/data/webui/side_panel/read_anything/on_selection_change_nothing_selected_on_loading_screen_selection.js +++ b/chrome/test/data/webui/side_panel/read_anything/on_selection_change_nothing_selected_on_loading_screen_selection.js
@@ -10,14 +10,14 @@ // ReadAnythingAppController, onConnected creates mojo pipes to connect to the // rest of the Read Anything feature, which we are not testing here. (() => { - chrome.readAnything.onConnected = () => {}; + chrome.readingMode.onConnected = () => {}; const readAnythingApp = document.querySelector('read-anything-app').shadowRoot; const emptyState = readAnythingApp.getElementById('empty-state-container'); let selectionChanged = false; - chrome.readAnything.onSelectionChange = + chrome.readingMode.onSelectionChange = (_anchorNodeId, _anchorOffset, _focusNodeId, _focusOffset) => { selectionChanged = true; };
diff --git a/chrome/test/data/webui/side_panel/read_anything/update_content_clear_container.js b/chrome/test/data/webui/side_panel/read_anything/update_content_clear_container.js index 021ab62..f346ab3 100644 --- a/chrome/test/data/webui/side_panel/read_anything/update_content_clear_container.js +++ b/chrome/test/data/webui/side_panel/read_anything/update_content_clear_container.js
@@ -11,7 +11,7 @@ // ReadAnythingAppController, onConnected creates mojo pipes to connect to the // rest of the Read Anything feature, which we are not testing here. (() => { - chrome.readAnything.onConnected = () => {}; + chrome.readingMode.onConnected = () => {}; const readAnythingApp = document.querySelector('read-anything-app').shadowRoot; @@ -52,7 +52,7 @@ }, ], }; - chrome.readAnything.setContentForTesting(axTree1, [2]); + chrome.readingMode.setContentForTesting(axTree1, [2]); const expected1 = '<div>First set of content.</div>'; assertContainerInnerHTML(expected1); @@ -74,7 +74,7 @@ }, ], }; - chrome.readAnything.setContentForTesting(axTree2, [2]); + chrome.readingMode.setContentForTesting(axTree2, [2]); const expected2 = '<div>Second set of content.</div>'; assertContainerInnerHTML(expected2);
diff --git a/chrome/test/data/webui/side_panel/read_anything/update_content_heading.js b/chrome/test/data/webui/side_panel/read_anything/update_content_heading.js index ccff9a10..cb5ed96 100644 --- a/chrome/test/data/webui/side_panel/read_anything/update_content_heading.js +++ b/chrome/test/data/webui/side_panel/read_anything/update_content_heading.js
@@ -9,7 +9,7 @@ // ReadAnythingAppController, onConnected creates mojo pipes to connect to the // rest of the Read Anything feature, which we are not testing here. (() => { - chrome.readAnything.onConnected = () => {}; + chrome.readingMode.onConnected = () => {}; const readAnythingApp = document.querySelector('read-anything-app').shadowRoot; @@ -122,7 +122,7 @@ }, ], }; - chrome.readAnything.setContentForTesting(axTree, [2, 4, 6, 8, 10, 12]); + chrome.readingMode.setContentForTesting(axTree, [2, 4, 6, 8, 10, 12]); const expected = '<div><h1>This is an h1.</h1><h2>This is an h2.</h2>' + '<h3>This is an h3.</h3><h4>This is an h4.</h4>' + '<h5>This is an h5.</h5><h6>This is an h6.</h6></div>';
diff --git a/chrome/test/data/webui/side_panel/read_anything/update_content_hides_loading_screen.js b/chrome/test/data/webui/side_panel/read_anything/update_content_hides_loading_screen.js index c13d797..76968b2 100644 --- a/chrome/test/data/webui/side_panel/read_anything/update_content_hides_loading_screen.js +++ b/chrome/test/data/webui/side_panel/read_anything/update_content_hides_loading_screen.js
@@ -9,7 +9,7 @@ // ReadAnythingAppController, onConnected creates mojo pipes to connect to the // rest of the Read Anything feature, which we are not testing here. (() => { - chrome.readAnything.onConnected = () => {}; + chrome.readingMode.onConnected = () => {}; const readAnythingApp = document.querySelector('read-anything-app').shadowRoot; @@ -51,7 +51,7 @@ }, ], }; - chrome.readAnything.setContentForTesting(axTree, [2]); + chrome.readingMode.setContentForTesting(axTree, [2]); assertEquals( readAnythingApp.getElementById('empty-state-container').hidden, true);
diff --git a/chrome/test/data/webui/side_panel/read_anything/update_content_interactive_element.js b/chrome/test/data/webui/side_panel/read_anything/update_content_interactive_element.js index 384a410..6f4ade6 100644 --- a/chrome/test/data/webui/side_panel/read_anything/update_content_interactive_element.js +++ b/chrome/test/data/webui/side_panel/read_anything/update_content_interactive_element.js
@@ -9,7 +9,7 @@ // ReadAnythingAppController, onConnected creates mojo pipes to connect to the // rest of the Read Anything feature, which we are not testing here. (() => { - chrome.readAnything.onConnected = () => {}; + chrome.readingMode.onConnected = () => {}; const readAnythingApp = document.querySelector('read-anything-app').shadowRoot; @@ -70,7 +70,7 @@ }, ], }; - chrome.readAnything.setContentForTesting(axTree, [2, 4]); + chrome.readingMode.setContentForTesting(axTree, [2, 4]); const expected = '<div><p>hello world</p></div>'; assertContainerInnerHTML(expected);
diff --git a/chrome/test/data/webui/side_panel/read_anything/update_content_language_child_node_diff_lang.js b/chrome/test/data/webui/side_panel/read_anything/update_content_language_child_node_diff_lang.js index a4097df..ab7fea921 100644 --- a/chrome/test/data/webui/side_panel/read_anything/update_content_language_child_node_diff_lang.js +++ b/chrome/test/data/webui/side_panel/read_anything/update_content_language_child_node_diff_lang.js
@@ -10,7 +10,7 @@ // ReadAnythingAppController, onConnected creates mojo pipes to connect to the // rest of the Read Anything feature, which we are not testing here. (() => { - chrome.readAnything.onConnected = () => {}; + chrome.readingMode.onConnected = () => {}; const readAnythingApp = document.querySelector('read-anything-app').shadowRoot; @@ -88,7 +88,7 @@ }, ], }; - chrome.readAnything.setContentForTesting(axTree, [2, 4]); + chrome.readingMode.setContentForTesting(axTree, [2, 4]); const expected = '<div><p lang="en">This is in English</p>' + '<p lang="es">Esto es en español' + '<a href="http://www.google.cn/" lang="zh">' +
diff --git a/chrome/test/data/webui/side_panel/read_anything/update_content_language_parent_lang_set.js b/chrome/test/data/webui/side_panel/read_anything/update_content_language_parent_lang_set.js index 81e38c0..8aa8651 100644 --- a/chrome/test/data/webui/side_panel/read_anything/update_content_language_parent_lang_set.js +++ b/chrome/test/data/webui/side_panel/read_anything/update_content_language_parent_lang_set.js
@@ -9,7 +9,7 @@ // ReadAnythingAppController, onConnected creates mojo pipes to connect to the // rest of the Read Anything feature, which we are not testing here. (() => { - chrome.readAnything.onConnected = () => {}; + chrome.readingMode.onConnected = () => {}; const readAnythingApp = document.querySelector('read-anything-app').shadowRoot; @@ -72,7 +72,7 @@ }, ], }; - chrome.readAnything.setContentForTesting(axTree, [2]); + chrome.readingMode.setContentForTesting(axTree, [2]); const expected = '<div><p lang="en">This is in English' + '<a href="http://www.google.com/">This link has no language set</a>' + '</p></div>';
diff --git a/chrome/test/data/webui/side_panel/read_anything/update_content_link.js b/chrome/test/data/webui/side_panel/read_anything/update_content_link.js index b1503f4..761db336 100644 --- a/chrome/test/data/webui/side_panel/read_anything/update_content_link.js +++ b/chrome/test/data/webui/side_panel/read_anything/update_content_link.js
@@ -9,7 +9,7 @@ // ReadAnythingAppController, onConnected creates mojo pipes to connect to the // rest of the Read Anything feature, which we are not testing here. (() => { - chrome.readAnything.onConnected = () => {}; + chrome.readingMode.onConnected = () => {}; const readAnythingApp = document.querySelector('read-anything-app').shadowRoot; @@ -72,7 +72,7 @@ }, ], }; - chrome.readAnything.setContentForTesting(axTree, [2, 4]); + chrome.readingMode.setContentForTesting(axTree, [2, 4]); const expected = '<div><a href="http://www.google.com">This is a link.' + '</a><a href="http://www.youtube.com">This is another link.</a></div>'; assertContainerInnerHTML(expected);
diff --git a/chrome/test/data/webui/side_panel/read_anything/update_content_link_bad_input.js b/chrome/test/data/webui/side_panel/read_anything/update_content_link_bad_input.js index f0beeb5..fc028b03 100644 --- a/chrome/test/data/webui/side_panel/read_anything/update_content_link_bad_input.js +++ b/chrome/test/data/webui/side_panel/read_anything/update_content_link_bad_input.js
@@ -9,7 +9,7 @@ // ReadAnythingAppController, onConnected creates mojo pipes to connect to the // rest of the Read Anything feature, which we are not testing here. (() => { - chrome.readAnything.onConnected = () => {}; + chrome.readingMode.onConnected = () => {}; const readAnythingApp = document.querySelector('read-anything-app').shadowRoot; @@ -64,7 +64,7 @@ }, ], }; - chrome.readAnything.setContentForTesting(axTree, [2, 4]); + chrome.readingMode.setContentForTesting(axTree, [2, 4]); const expected = '<div><a>This link does not have a url.</a><img></div>'; assertContainerInnerHTML(expected);
diff --git a/chrome/test/data/webui/side_panel/read_anything/update_content_no_content_nodes.js b/chrome/test/data/webui/side_panel/read_anything/update_content_no_content_nodes.js index a5cd96f..5dba870 100644 --- a/chrome/test/data/webui/side_panel/read_anything/update_content_no_content_nodes.js +++ b/chrome/test/data/webui/side_panel/read_anything/update_content_no_content_nodes.js
@@ -9,7 +9,7 @@ // ReadAnythingAppController, onConnected creates mojo pipes to connect to the // rest of the Read Anything feature, which we are not testing here. (() => { - chrome.readAnything.onConnected = () => {}; + chrome.readingMode.onConnected = () => {}; const readAnythingApp = document.querySelector('read-anything-app').shadowRoot; @@ -50,7 +50,7 @@ }, ], }; - chrome.readAnything.setContentForTesting(axTree, []); + chrome.readingMode.setContentForTesting(axTree, []); const expected = ''; assertContainerInnerHTML(expected);
diff --git a/chrome/test/data/webui/side_panel/read_anything/update_content_paragraph.js b/chrome/test/data/webui/side_panel/read_anything/update_content_paragraph.js index 1b7fd54..7768c00 100644 --- a/chrome/test/data/webui/side_panel/read_anything/update_content_paragraph.js +++ b/chrome/test/data/webui/side_panel/read_anything/update_content_paragraph.js
@@ -9,7 +9,7 @@ // ReadAnythingAppController, onConnected creates mojo pipes to connect to the // rest of the Read Anything feature, which we are not testing here. (() => { - chrome.readAnything.onConnected = () => {}; + chrome.readingMode.onConnected = () => {}; const readAnythingApp = document.querySelector('read-anything-app').shadowRoot; @@ -70,7 +70,7 @@ }, ], }; - chrome.readAnything.setContentForTesting(axTree, [2, 4]); + chrome.readingMode.setContentForTesting(axTree, [2, 4]); const expected = '<div><p>This is a paragraph</p>' + '<p>This is a second paragraph</p></div>'; assertContainerInnerHTML(expected);
diff --git a/chrome/test/data/webui/side_panel/read_anything/update_content_selection.js b/chrome/test/data/webui/side_panel/read_anything/update_content_selection.js index 3d48fca..cc3207e 100644 --- a/chrome/test/data/webui/side_panel/read_anything/update_content_selection.js +++ b/chrome/test/data/webui/side_panel/read_anything/update_content_selection.js
@@ -9,7 +9,7 @@ // ReadAnythingAppController, onConnected creates mojo pipes to connect to the // rest of the Read Anything feature, which we are not testing here. (() => { - chrome.readAnything.onConnected = () => {}; + chrome.readingMode.onConnected = () => {}; const readAnythingApp = document.querySelector('read-anything-app').shadowRoot; @@ -41,7 +41,7 @@ // asynchronously, the test must wait for this function to be called; // therefore we fire a custom event on-selection-change-for-text here // for the test to await. - chrome.readAnything.onSelectionChange = + chrome.readingMode.onSelectionChange = (anchorNodeId, anchorOffset, focusNodeId, focusOffset) => { readAnythingApp.dispatchEvent( new CustomEvent('on-selection-change-for-test', { @@ -120,7 +120,7 @@ }, }; setOnSelectionChangeForTest(); - chrome.readAnything.setContentForTesting(axTree, []); + chrome.readingMode.setContentForTesting(axTree, []); // The expected string contains the complete text of each node in the // selection. const expected = '<div><p>World</p><p>Friend!</p></div>';
diff --git a/chrome/test/data/webui/side_panel/read_anything/update_content_selection_backwards.js b/chrome/test/data/webui/side_panel/read_anything/update_content_selection_backwards.js index 84cdcc5e..e561d1c 100644 --- a/chrome/test/data/webui/side_panel/read_anything/update_content_selection_backwards.js +++ b/chrome/test/data/webui/side_panel/read_anything/update_content_selection_backwards.js
@@ -9,7 +9,7 @@ // ReadAnythingAppController, onConnected creates mojo pipes to connect to the // rest of the Read Anything feature, which we are not testing here. (() => { - chrome.readAnything.onConnected = () => {}; + chrome.readingMode.onConnected = () => {}; const readAnythingApp = document.querySelector('read-anything-app').shadowRoot; @@ -41,7 +41,7 @@ // asynchronously, the test must wait for this function to be called; // therefore we fire a custom event on-selection-change-for-text here // for the test to await. - chrome.readAnything.onSelectionChange = + chrome.readingMode.onSelectionChange = (anchorNodeId, anchorOffset, focusNodeId, focusOffset) => { readAnythingApp.dispatchEvent( new CustomEvent('on-selection-change-for-test', { @@ -120,7 +120,7 @@ }, }; setOnSelectionChangeForTest(); - chrome.readAnything.setContentForTesting(axTree, []); + chrome.readingMode.setContentForTesting(axTree, []); // The expected string contains the complete text of each node in the // selection. const expected = '<div><p>Hello</p><p>World</p><p>Friend!</p></div>';
diff --git a/chrome/test/data/webui/side_panel/read_anything/update_content_selection_backwards_with_inline_text.js b/chrome/test/data/webui/side_panel/read_anything/update_content_selection_backwards_with_inline_text.js index ee6a1e25..b6dbfc3 100644 --- a/chrome/test/data/webui/side_panel/read_anything/update_content_selection_backwards_with_inline_text.js +++ b/chrome/test/data/webui/side_panel/read_anything/update_content_selection_backwards_with_inline_text.js
@@ -9,7 +9,7 @@ // ReadAnythingAppController, onConnected creates mojo pipes to connect to the // rest of the Read Anything feature, which we are not testing here. (() => { - chrome.readAnything.onConnected = () => {}; + chrome.readingMode.onConnected = () => {}; const readAnythingApp = document.querySelector('read-anything-app').shadowRoot; @@ -41,7 +41,7 @@ // asynchronously, the test must wait for this function to be called; // therefore we fire a custom event on-selection-change-for-text here // for the test to await. - chrome.readAnything.onSelectionChange = + chrome.readingMode.onSelectionChange = (anchorNodeId, anchorOffset, focusNodeId, focusOffset) => { readAnythingApp.dispatchEvent( new CustomEvent('on-selection-change-for-test', { @@ -116,7 +116,7 @@ }, }; setOnSelectionChangeForTest(); - chrome.readAnything.setContentForTesting(axTree, []); + chrome.readingMode.setContentForTesting(axTree, []); // The expected string contains the complete text of each node in the // selection. const expected = '<div><p>World<a>Friend</a></p></div>';
diff --git a/chrome/test/data/webui/side_panel/read_anything/update_content_selection_outside_distilled_content.js b/chrome/test/data/webui/side_panel/read_anything/update_content_selection_outside_distilled_content.js index 547742e..c36f03f9 100644 --- a/chrome/test/data/webui/side_panel/read_anything/update_content_selection_outside_distilled_content.js +++ b/chrome/test/data/webui/side_panel/read_anything/update_content_selection_outside_distilled_content.js
@@ -10,7 +10,7 @@ // ReadAnythingAppController, onConnected creates mojo pipes to connect to the // rest of the Read Anything feature, which we are not testing here. (() => { - chrome.readAnything.onConnected = () => {}; + chrome.readingMode.onConnected = () => {}; const readAnythingApp = document.querySelector('read-anything-app').shadowRoot; @@ -97,7 +97,7 @@ is_backward: false, }, }; - chrome.readAnything.setContentForTesting(axTree, [2]); + chrome.readingMode.setContentForTesting(axTree, [2]); // The selection is outside the content nodes.The expected string contains // the complete text of each node in the selection. const expected = '<div><p>World</p><p>Friend!</p></div>';
diff --git a/chrome/test/data/webui/side_panel/read_anything/update_content_selection_partially_outside_distilled_content.js b/chrome/test/data/webui/side_panel/read_anything/update_content_selection_partially_outside_distilled_content.js index 86b8deb..6317f412 100644 --- a/chrome/test/data/webui/side_panel/read_anything/update_content_selection_partially_outside_distilled_content.js +++ b/chrome/test/data/webui/side_panel/read_anything/update_content_selection_partially_outside_distilled_content.js
@@ -10,7 +10,7 @@ // ReadAnythingAppController, onConnected creates mojo pipes to connect to the // rest of the Read Anything feature, which we are not testing here. (() => { - chrome.readAnything.onConnected = () => {}; + chrome.readingMode.onConnected = () => {}; const readAnythingApp = document.querySelector('read-anything-app').shadowRoot; @@ -97,7 +97,7 @@ is_backward: false, }, }; - chrome.readAnything.setContentForTesting(axTree, [2, 4]); + chrome.readingMode.setContentForTesting(axTree, [2, 4]); // The selection has content inside and outside the content nodes. The // expected string contains the complete text of each node in the selection. const expected = '<div><p>Hello</p><p>World</p><p>Friend!</p></div>';
diff --git a/chrome/test/data/webui/side_panel/read_anything/update_content_selection_with_inline_text.js b/chrome/test/data/webui/side_panel/read_anything/update_content_selection_with_inline_text.js index 0002a96..7472c49 100644 --- a/chrome/test/data/webui/side_panel/read_anything/update_content_selection_with_inline_text.js +++ b/chrome/test/data/webui/side_panel/read_anything/update_content_selection_with_inline_text.js
@@ -9,7 +9,7 @@ // ReadAnythingAppController, onConnected creates mojo pipes to connect to the // rest of the Read Anything feature, which we are not testing here. (() => { - chrome.readAnything.onConnected = () => {}; + chrome.readingMode.onConnected = () => {}; const readAnythingApp = document.querySelector('read-anything-app').shadowRoot; @@ -41,7 +41,7 @@ // asynchronously, the test must wait for this function to be called; // therefore we fire a custom event on-selection-change-for-text here // for the test to await. - chrome.readAnything.onSelectionChange = + chrome.readingMode.onSelectionChange = (anchorNodeId, anchorOffset, focusNodeId, focusOffset) => { readAnythingApp.dispatchEvent( new CustomEvent('on-selection-change-for-test', { @@ -115,7 +115,7 @@ }, }; setOnSelectionChangeForTest(); - chrome.readAnything.setContentForTesting(axTree, []); + chrome.readingMode.setContentForTesting(axTree, []); // The expected string contains the complete text of each node in the // selection. const expected = '<div><p>World<a>Friend</a></p></div>';
diff --git a/chrome/test/data/webui/side_panel/read_anything/update_content_set_selected_text.js b/chrome/test/data/webui/side_panel/read_anything/update_content_set_selected_text.js index 72e2e4e..ef5f411 100644 --- a/chrome/test/data/webui/side_panel/read_anything/update_content_set_selected_text.js +++ b/chrome/test/data/webui/side_panel/read_anything/update_content_set_selected_text.js
@@ -9,7 +9,7 @@ // ReadAnythingAppController, onConnected creates mojo pipes to connect to the // rest of the Read Anything feature, which we are not testing here. (() => { - chrome.readAnything.onConnected = () => {}; + chrome.readingMode.onConnected = () => {}; const readAnythingApp = document.querySelector('read-anything-app').shadowRoot; @@ -41,7 +41,7 @@ // asynchronously, the test must wait for this function to be called; // therefore we fire a custom event on-selection-change-for-text here // for the test to await. - chrome.readAnything.onSelectionChange = + chrome.readingMode.onSelectionChange = (anchorNodeId, anchorOffset, focusNodeId, focusOffset) => { readAnythingApp.dispatchEvent( new CustomEvent('on-selection-change-for-test', { @@ -86,12 +86,12 @@ ], }; setOnSelectionChangeForTest(); - chrome.readAnything.setContentForTesting(axTree, [1]); + chrome.readingMode.setContentForTesting(axTree, [1]); const expected = '<div>HelloWorldFriend</div>'; assertContainerInnerHTML(expected); // When the selection is set, readAnythingApp listens for the selection - // change event and calls chrome.readAnything.onSelectionChange. This test + // change event and calls chrome.readingMode.onSelectionChange. This test // overrides that method and fires a custom event // 'on-selection-change-for-test' with the parameters to onSelectionChange // stored in details. Here, we check the values of the parameters of
diff --git a/chrome/test/data/webui/side_panel/read_anything/update_content_static_text.js b/chrome/test/data/webui/side_panel/read_anything/update_content_static_text.js index 6777e81..6fea34f 100644 --- a/chrome/test/data/webui/side_panel/read_anything/update_content_static_text.js +++ b/chrome/test/data/webui/side_panel/read_anything/update_content_static_text.js
@@ -9,7 +9,7 @@ // ReadAnythingAppController, onConnected creates mojo pipes to connect to the // rest of the Read Anything feature, which we are not testing here. (() => { - chrome.readAnything.onConnected = () => {}; + chrome.readingMode.onConnected = () => {}; const readAnythingApp = document.querySelector('read-anything-app').shadowRoot; @@ -56,7 +56,7 @@ }, ], }; - chrome.readAnything.setContentForTesting(axTree, [2, 3]); + chrome.readingMode.setContentForTesting(axTree, [2, 3]); const expected = '<div>This is some text.This is some more text.</div>'; assertContainerInnerHTML(expected);
diff --git a/chrome/test/data/webui/side_panel/read_anything/update_content_static_text_bad_input.js b/chrome/test/data/webui/side_panel/read_anything/update_content_static_text_bad_input.js index d8755b5..3f1feec6 100644 --- a/chrome/test/data/webui/side_panel/read_anything/update_content_static_text_bad_input.js +++ b/chrome/test/data/webui/side_panel/read_anything/update_content_static_text_bad_input.js
@@ -9,7 +9,7 @@ // ReadAnythingAppController, onConnected creates mojo pipes to connect to the // rest of the Read Anything feature, which we are not testing here. (() => { - chrome.readAnything.onConnected = () => {}; + chrome.readingMode.onConnected = () => {}; const readAnythingApp = document.querySelector('read-anything-app').shadowRoot; @@ -49,7 +49,7 @@ }, ], }; - chrome.readAnything.setContentForTesting(axTree, [2]); + chrome.readingMode.setContentForTesting(axTree, [2]); const expected = ''; assertContainerInnerHTML(expected);
diff --git a/chrome/test/data/webui/side_panel/read_anything/update_content_text_direction.js b/chrome/test/data/webui/side_panel/read_anything/update_content_text_direction.js index 30c01e8..83d5afa 100644 --- a/chrome/test/data/webui/side_panel/read_anything/update_content_text_direction.js +++ b/chrome/test/data/webui/side_panel/read_anything/update_content_text_direction.js
@@ -9,7 +9,7 @@ // ReadAnythingAppController, onConnected creates mojo pipes to connect to the // rest of the Read Anything feature, which we are not testing here. (() => { - chrome.readAnything.onConnected = () => {}; + chrome.readingMode.onConnected = () => {}; const readAnythingApp = document.querySelector('read-anything-app').shadowRoot; @@ -72,7 +72,7 @@ }, ], }; - chrome.readAnything.setContentForTesting(axTree, [2, 4]); + chrome.readingMode.setContentForTesting(axTree, [2, 4]); const expected = '<div><p dir="ltr">This is left to right writing</p>' + '<p dir="rtl">This is right to left writing</p></div>'; assertContainerInnerHTML(expected);
diff --git a/chrome/test/data/webui/side_panel/read_anything/update_content_text_direction_parent_node_diff_dir.js b/chrome/test/data/webui/side_panel/read_anything/update_content_text_direction_parent_node_diff_dir.js index b5d3734..7f6cf6e8 100644 --- a/chrome/test/data/webui/side_panel/read_anything/update_content_text_direction_parent_node_diff_dir.js +++ b/chrome/test/data/webui/side_panel/read_anything/update_content_text_direction_parent_node_diff_dir.js
@@ -10,7 +10,7 @@ // ReadAnythingAppController, onConnected creates mojo pipes to connect to the // rest of the Read Anything feature, which we are not testing here. (() => { - chrome.readAnything.onConnected = () => {}; + chrome.readingMode.onConnected = () => {}; const readAnythingApp = document.querySelector('read-anything-app').shadowRoot; @@ -74,7 +74,7 @@ }, ], }; - chrome.readAnything.setContentForTesting(axTree, [2]); + chrome.readingMode.setContentForTesting(axTree, [2]); const expected = '<div><p dir="ltr">This is ltr' + '<a dir="rtl" href="http://www.google.com/">' + 'This link is rtl</a></p></div>';
diff --git a/chrome/test/data/webui/side_panel/read_anything/update_content_text_direction_vertical_dir.js b/chrome/test/data/webui/side_panel/read_anything/update_content_text_direction_vertical_dir.js index d028cbe..2c10709 100644 --- a/chrome/test/data/webui/side_panel/read_anything/update_content_text_direction_vertical_dir.js +++ b/chrome/test/data/webui/side_panel/read_anything/update_content_text_direction_vertical_dir.js
@@ -9,7 +9,7 @@ // ReadAnythingAppController, onConnected creates mojo pipes to connect to the // rest of the Read Anything feature, which we are not testing here. (() => { - chrome.readAnything.onConnected = () => {}; + chrome.readingMode.onConnected = () => {}; const readAnythingApp = document.querySelector('read-anything-app').shadowRoot; @@ -72,7 +72,7 @@ }, ], }; - chrome.readAnything.setContentForTesting(axTree, [2, 4]); + chrome.readingMode.setContentForTesting(axTree, [2, 4]); const expected = '<div><p dir="auto">This should be auto</p>' + '<p dir="auto">This should be also be auto</p></div>'; assertContainerInnerHTML(expected);
diff --git a/chrome/test/data/webui/side_panel/read_anything/update_content_text_style_bold.js b/chrome/test/data/webui/side_panel/read_anything/update_content_text_style_bold.js index c56093b1..cc34b58 100644 --- a/chrome/test/data/webui/side_panel/read_anything/update_content_text_style_bold.js +++ b/chrome/test/data/webui/side_panel/read_anything/update_content_text_style_bold.js
@@ -9,7 +9,7 @@ // ReadAnythingAppController, onConnected creates mojo pipes to connect to the // rest of the Read Anything feature, which we are not testing here. (() => { - chrome.readAnything.onConnected = () => {}; + chrome.readingMode.onConnected = () => {}; const readAnythingApp = document.querySelector('read-anything-app').shadowRoot; @@ -85,7 +85,7 @@ }, ], }; - chrome.readAnything.setContentForTesting(axTree, [2, 5]); + chrome.readingMode.setContentForTesting(axTree, [2, 5]); const expected = '<div><p>Regular text.<b>This should be bolded.</b></p>' + '<p><b>Bolded text.</b><b>Bolded text.</b></p></div>'; assertContainerInnerHTML(expected);
diff --git a/chrome/test/data/webui/side_panel/read_anything/update_content_text_style_overline.js b/chrome/test/data/webui/side_panel/read_anything/update_content_text_style_overline.js index 8894d050..245c433e 100644 --- a/chrome/test/data/webui/side_panel/read_anything/update_content_text_style_overline.js +++ b/chrome/test/data/webui/side_panel/read_anything/update_content_text_style_overline.js
@@ -9,7 +9,7 @@ // ReadAnythingAppController, onConnected creates mojo pipes to connect to the // rest of the Read Anything feature, which we are not testing here. (() => { - chrome.readAnything.onConnected = () => {}; + chrome.readingMode.onConnected = () => {}; const readAnythingApp = document.querySelector('read-anything-app').shadowRoot; @@ -72,7 +72,7 @@ }, ], }; - chrome.readAnything.setContentForTesting(axTree, [2]); + chrome.readingMode.setContentForTesting(axTree, [2]); const expected = '<div><p><span style="text-decoration: overline;">This ' + 'should be overlined.</span>Regular text.<b style="text-decoration: ' + 'overline;">This is overlined and bolded.</b></p></div>';
diff --git a/chrome/test/data/webui/side_panel/read_anything/update_theme_background_color.js b/chrome/test/data/webui/side_panel/read_anything/update_theme_background_color.js index e9b7ee6..192347b 100644 --- a/chrome/test/data/webui/side_panel/read_anything/update_theme_background_color.js +++ b/chrome/test/data/webui/side_panel/read_anything/update_theme_background_color.js
@@ -9,13 +9,13 @@ // ReadAnythingAppController, onConnected creates mojo pipes to connect to the // rest of the Read Anything feature, which we are not testing here. (() => { - chrome.readAnything.onConnected = () => {}; + chrome.readingMode.onConnected = () => {}; const readAnythingApp = document.querySelector('read-anything-app').shadowRoot; const container = readAnythingApp.getElementById('container'); - chrome.readAnything.setThemeForTesting( + chrome.readingMode.setThemeForTesting( 'f', 1, 0, /* SkColorSetRGB(0xFD, 0xE2, 0x93) = */ 4294828691, 1, 0); const expected = 'rgb(253, 226, 147)'; // #FDE293 const actual = getComputedStyle(container).backgroundColor;
diff --git a/chrome/test/data/webui/side_panel/read_anything/update_theme_font_name.js b/chrome/test/data/webui/side_panel/read_anything/update_theme_font_name.js index 51e2dd4c..3ccf571 100644 --- a/chrome/test/data/webui/side_panel/read_anything/update_theme_font_name.js +++ b/chrome/test/data/webui/side_panel/read_anything/update_theme_font_name.js
@@ -9,7 +9,7 @@ // ReadAnythingAppController, onConnected creates mojo pipes to connect to the // rest of the Read Anything feature, which we are not testing here. (() => { - chrome.readAnything.onConnected = () => {}; + chrome.readingMode.onConnected = () => {}; const readAnythingApp = document.querySelector('read-anything-app').shadowRoot; @@ -31,25 +31,25 @@ assertEquals(expected, getComputedStyle(container).fontFamily); }; - chrome.readAnything.setThemeForTesting('Poppins', 18.0, 0, 0, 1, 0); + chrome.readingMode.setThemeForTesting('Poppins', 18.0, 0, 0, 1, 0); assertFontName('Poppins'); - chrome.readAnything.setThemeForTesting('Sans-serif', 18.0, 0, 0, 1, 0); + chrome.readingMode.setThemeForTesting('Sans-serif', 18.0, 0, 0, 1, 0); assertFontName('sans-serif'); - chrome.readAnything.setThemeForTesting('Serif', 18.0, 0, 0, 1, 0); + chrome.readingMode.setThemeForTesting('Serif', 18.0, 0, 0, 1, 0); assertFontName('serif'); - chrome.readAnything.setThemeForTesting('Comic Neue', 18.0, 0, 0, 1, 0); + chrome.readingMode.setThemeForTesting('Comic Neue', 18.0, 0, 0, 1, 0); assertFontName('"Comic Neue"'); - chrome.readAnything.setThemeForTesting('Lexend Deca', 18.0, 0, 0, 1, 0); + chrome.readingMode.setThemeForTesting('Lexend Deca', 18.0, 0, 0, 1, 0); assertFontName('"Lexend Deca"'); - chrome.readAnything.setThemeForTesting('EB Garamond', 18.0, 0, 0, 1, 0); + chrome.readingMode.setThemeForTesting('EB Garamond', 18.0, 0, 0, 1, 0); assertFontName('"EB Garamond"'); - chrome.readAnything.setThemeForTesting('STIX Two Text', 18.0, 0, 0, 1, 0); + chrome.readingMode.setThemeForTesting('STIX Two Text', 18.0, 0, 0, 1, 0); assertFontName('"STIX Two Text"'); return result;
diff --git a/chrome/test/data/webui/side_panel/read_anything/update_theme_font_size.js b/chrome/test/data/webui/side_panel/read_anything/update_theme_font_size.js index 5de1eeb..c0e5c19 100644 --- a/chrome/test/data/webui/side_panel/read_anything/update_theme_font_size.js +++ b/chrome/test/data/webui/side_panel/read_anything/update_theme_font_size.js
@@ -9,13 +9,13 @@ // ReadAnythingAppController, onConnected creates mojo pipes to connect to the // rest of the Read Anything feature, which we are not testing here. (() => { - chrome.readAnything.onConnected = () => {}; + chrome.readingMode.onConnected = () => {}; const readAnythingApp = document.querySelector('read-anything-app').shadowRoot; const container = readAnythingApp.getElementById('container'); - chrome.readAnything.setThemeForTesting('Poppins', 1.0, 0, 0, 1, 0); + chrome.readingMode.setThemeForTesting('Poppins', 1.0, 0, 0, 1, 0); const expected = '16px'; // 1em = 16px const actual = getComputedStyle(container).fontSize; const isEqual = actual === expected;
diff --git a/chrome/test/data/webui/side_panel/read_anything/update_theme_foreground_color.js b/chrome/test/data/webui/side_panel/read_anything/update_theme_foreground_color.js index 0fa9379..836864f 100644 --- a/chrome/test/data/webui/side_panel/read_anything/update_theme_foreground_color.js +++ b/chrome/test/data/webui/side_panel/read_anything/update_theme_foreground_color.js
@@ -9,13 +9,13 @@ // ReadAnythingAppController, onConnected creates mojo pipes to connect to the // rest of the Read Anything feature, which we are not testing here. (() => { - chrome.readAnything.onConnected = () => {}; + chrome.readingMode.onConnected = () => {}; const readAnythingApp = document.querySelector('read-anything-app').shadowRoot; const container = readAnythingApp.getElementById('container'); - chrome.readAnything.setThemeForTesting( + chrome.readingMode.setThemeForTesting( 'f', 1, /* SkColorSetRGB(0x33, 0x36, 0x39) = */ 4281546297, 0, 1, 0); const expected = 'rgb(51, 54, 57)'; // #333639 const actual = getComputedStyle(container).color;
diff --git a/chrome/test/data/webui/side_panel/read_anything/update_theme_letter_spacing.js b/chrome/test/data/webui/side_panel/read_anything/update_theme_letter_spacing.js index f4c2213b..e1a7e82 100644 --- a/chrome/test/data/webui/side_panel/read_anything/update_theme_letter_spacing.js +++ b/chrome/test/data/webui/side_panel/read_anything/update_theme_letter_spacing.js
@@ -9,13 +9,13 @@ // ReadAnythingAppController, onConnected creates mojo pipes to connect to the // rest of the Read Anything feature, which we are not testing here. (() => { - chrome.readAnything.onConnected = () => {}; + chrome.readingMode.onConnected = () => {}; const readAnythingApp = document.querySelector('read-anything-app').shadowRoot; const container = readAnythingApp.getElementById('container'); - chrome.readAnything.setThemeForTesting('f', 1, 0, 0, 1, 3); + chrome.readingMode.setThemeForTesting('f', 1, 0, 0, 1, 3); // Very loose letter letter spacing = 0.1em, font size = 1em = 16px const expected = '1.6px'; const actual = getComputedStyle(container).letterSpacing;
diff --git a/chrome/test/data/webui/side_panel/read_anything/update_theme_line_spacing.js b/chrome/test/data/webui/side_panel/read_anything/update_theme_line_spacing.js index 8f50cdc..9943a62 100644 --- a/chrome/test/data/webui/side_panel/read_anything/update_theme_line_spacing.js +++ b/chrome/test/data/webui/side_panel/read_anything/update_theme_line_spacing.js
@@ -9,13 +9,13 @@ // ReadAnythingAppController, onConnected creates mojo pipes to connect to the // rest of the Read Anything feature, which we are not testing here. (() => { - chrome.readAnything.onConnected = () => {}; + chrome.readingMode.onConnected = () => {}; const readAnythingApp = document.querySelector('read-anything-app').shadowRoot; const container = readAnythingApp.getElementById('container'); - chrome.readAnything.setThemeForTesting('Poppins', 1.0, 0, 0, 2, 0); + chrome.readingMode.setThemeForTesting('Poppins', 1.0, 0, 0, 2, 0); const expected = '24px'; // 1.5 times the 1em (16px) font size const actual = getComputedStyle(container).lineHeight; const isEqual = actual === expected;
diff --git a/chrome/test/interaction/interaction_test_util_browser.cc b/chrome/test/interaction/interaction_test_util_browser.cc index 9bf46d97..d736baa 100644 --- a/chrome/test/interaction/interaction_test_util_browser.cc +++ b/chrome/test/interaction/interaction_test_util_browser.cc
@@ -6,12 +6,14 @@ #include <memory> +#include "base/command_line.h" #include "base/strings/strcat.h" #include "build/build_config.h" #include "build/chromeos_buildflags.h" #include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/browser_list.h" #include "chrome/browser/ui/browser_window.h" +#include "chrome/browser/ui/test/test_browser_ui.h" #include "chrome/browser/ui/views/frame/browser_view.h" #include "chrome/browser/ui/views/omnibox/omnibox_view_views.h" #include "chrome/browser/ui/views/tabs/tab.h" @@ -22,7 +24,6 @@ #include "ui/base/interaction/element_tracker.h" #include "ui/base/interaction/interaction_test_util.h" #include "ui/base/test/ui_controls.h" -#include "ui/base/ui_base_features.h" #include "ui/events/event.h" #include "ui/events/types/event_type.h" #include "ui/views/controls/webview/webview.h" @@ -36,18 +37,8 @@ #include "ui/base/interaction/interaction_test_util_mac.h" #endif -#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) -#define SUPPORTS_PIXEL_TESTS 1 -#include "base/command_line.h" -#include "chrome/browser/ui/test/test_browser_ui.h" -#else -#define SUPPORTS_PIXEL_TESTS 0 -#endif - namespace { -#if SUPPORTS_PIXEL_TESTS - // Facilitates pixel testing with more versatile naming than TestBrowserUi. class PixelTestUi : public TestBrowserUi { public: @@ -62,19 +53,14 @@ void WaitForUserDismissal() override { NOTREACHED(); } bool VerifyUi() override { + return VerifyUiWithResult() != ui::test::ActionResult::kFailed; + } + + ui::test::ActionResult VerifyUiWithResult() { auto* const test_info = testing::UnitTest::GetInstance()->current_test_info(); - std::string test_name = + const std::string test_name = base::StrCat({test_info->test_case_name(), "_", test_info->name()}); - - // For the CR2023 screenshots add a "CR2023" prefix so that they are - // compared exclusively with previous CR2023 screenshots. We would like Skia - // Gold to catch regressions in both CR2023 and non-CR2023. - // TODO(crbug.com/1444466): remove this after CR2023 launch. - if (features::IsChromeRefresh2023()) { - test_name = "CR2023_" + test_name; - } - const std::string screenshot_name = screenshot_name_.empty() ? baseline_ @@ -88,8 +74,6 @@ std::string baseline_; }; -#endif // SUPPORTS_PIXEL_TESTS - // Special handler for browsers and browser tab strips that enables SelectTab(). class InteractionTestUtilSimulatorBrowser : public ui::test::InteractionTestUtil::Simulator { @@ -256,7 +240,6 @@ return ui::test::ActionResult::kNotAttempted; } -#if SUPPORTS_PIXEL_TESTS // pixel_browser_tests and pixel_interactive_ui_tests specify this command // line, which is checked by TestBrowserUi before attempting any screen // capture; otherwise screenshotting is a silent no-op. @@ -269,10 +252,9 @@ } PixelTestUi pixel_test_ui(view, screenshot_name, baseline); - return pixel_test_ui.VerifyUi() ? ui::test::ActionResult::kSucceeded - : ui::test::ActionResult::kFailed; -#else // !SUPPORTS_PIXEL_TESTS - LOG(WARNING) << "Current platform does not support pixel tests."; - return ui::test::ActionResult::kKnownIncompatible; -#endif + ui::test::ActionResult result = pixel_test_ui.VerifyUiWithResult(); + if (result == ui::test::ActionResult::kKnownIncompatible) { + LOG(WARNING) << "Current platform does not support pixel tests."; + } + return result; }
diff --git a/chrome/updater/updater.cc b/chrome/updater/updater.cc index f942115..ee4eef83 100644 --- a/chrome/updater/updater.cc +++ b/chrome/updater/updater.cc
@@ -224,7 +224,7 @@ } constexpr const char* BuildFlavor() { -#if defined(NBEDUG) +#if defined(NDEBUG) return "opt"; #else return "debug";
diff --git a/chromecast/browser/webui/cast_webui.cc b/chromecast/browser/webui/cast_webui.cc index f6c627ac..299f9f5 100644 --- a/chromecast/browser/webui/cast_webui.cc +++ b/chromecast/browser/webui/cast_webui.cc
@@ -69,7 +69,7 @@ } void CastWebUI::CallJavascriptFunction(const std::string& function, - std::vector<base::Value> args) { + base::Value::List args) { message_handler_->CallJavascriptFunction( function, std::vector<const base::ValueView>(args.begin(), args.end())); }
diff --git a/chromecast/browser/webui/cast_webui.h b/chromecast/browser/webui/cast_webui.h index 127c60a..7285f1c 100644 --- a/chromecast/browser/webui/cast_webui.h +++ b/chromecast/browser/webui/cast_webui.h
@@ -52,7 +52,7 @@ const std::string& message, mojo::PendingRemote<mojom::MessageCallback> callback) override; void CallJavascriptFunction(const std::string& function, - std::vector<base::Value> args) override; + base::Value::List args) override; // Pointer to the generic message handler owned by the Web UI. The message // handler is guaranteed to outlive CastWebUI since |this| is the first member
diff --git a/chromecast/browser/webui/mojom/webui.mojom b/chromecast/browser/webui/mojom/webui.mojom index 4cbaa3c5..9d379e6 100644 --- a/chromecast/browser/webui/mojom/webui.mojom +++ b/chromecast/browser/webui/mojom/webui.mojom
@@ -28,7 +28,7 @@ RegisterMessageCallback(string message, pending_remote<MessageCallback> cb); // Execute a Javascript |function| with |args|. - CallJavascriptFunction(string function, array<mojo_base.mojom.Value> args); + CallJavascriptFunction(string function, mojo_base.mojom.ListValue args); }; // Implement this interface to provide resources for a given host. This @@ -52,4 +52,3 @@ CreateResources(string host, pending_receiver<Resources> resources); }; -
diff --git a/chromeos/ash/components/osauth/impl/BUILD.gn b/chromeos/ash/components/osauth/impl/BUILD.gn index 2a211225..55378fd 100644 --- a/chromeos/ash/components/osauth/impl/BUILD.gn +++ b/chromeos/ash/components/osauth/impl/BUILD.gn
@@ -19,10 +19,13 @@ "//chromeos/ash/components/login/auth/public:authpublic", ] sources = [ + "auth_hub_common.h", "auth_hub_impl.cc", "auth_hub_impl.h", "auth_hub_mode_lifecycle.cc", "auth_hub_mode_lifecycle.h", + "auth_hub_vector_lifecycle.cc", + "auth_hub_vector_lifecycle.h", "auth_parts_impl.cc", "auth_parts_impl.h", "auth_session_storage_impl.cc", @@ -47,6 +50,7 @@ sources = [ "auth_hub_impl_test.cc", "auth_hub_mode_lifecycle_unittest.cc", + "auth_hub_vector_lifecycle_unittest.cc", "auth_session_storage_impl_unittest.cc", ] }
diff --git a/chromeos/ash/components/osauth/impl/auth_hub_common.h b/chromeos/ash/components/osauth/impl/auth_hub_common.h new file mode 100644 index 0000000..5650f8de --- /dev/null +++ b/chromeos/ash/components/osauth/impl/auth_hub_common.h
@@ -0,0 +1,27 @@ +// Copyright 2023 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROMEOS_ASH_COMPONENTS_OSAUTH_IMPL_AUTH_HUB_COMMON_H_ +#define CHROMEOS_ASH_COMPONENTS_OSAUTH_IMPL_AUTH_HUB_COMMON_H_ + +#include "base/containers/flat_map.h" +#include "base/memory/raw_ptr.h" +#include "chromeos/ash/components/osauth/public/auth_factor_engine.h" +#include "chromeos/ash/components/osauth/public/common_types.h" + +namespace ash { + +using AuthEnginesMap = + base::flat_map<AshAuthFactor, base::raw_ptr<AuthFactorEngine>>; + +struct AuthAttemptVector { + AccountId account; + AuthPurpose purpose; + + bool operator==(const AuthAttemptVector&) const = default; +}; + +} // namespace ash + +#endif // CHROMEOS_ASH_COMPONENTS_OSAUTH_IMPL_AUTH_HUB_COMMON_H_
diff --git a/chromeos/ash/components/osauth/impl/auth_hub_impl.cc b/chromeos/ash/components/osauth/impl/auth_hub_impl.cc index 2e9dd31..c4267e5f 100644 --- a/chromeos/ash/components/osauth/impl/auth_hub_impl.cc +++ b/chromeos/ash/components/osauth/impl/auth_hub_impl.cc
@@ -5,8 +5,13 @@ #include "chromeos/ash/components/osauth/impl/auth_hub_impl.h" #include "base/functional/callback.h" +#include "base/logging.h" +#include "chromeos/ash/components/osauth/impl/auth_hub_common.h" +#include "chromeos/ash/components/osauth/impl/auth_hub_mode_lifecycle.h" +#include "chromeos/ash/components/osauth/impl/auth_hub_vector_lifecycle.h" #include "chromeos/ash/components/osauth/public/auth_factor_engine_factory.h" #include "chromeos/ash/components/osauth/public/auth_parts.h" +#include "chromeos/ash/components/osauth/public/string_utils.h" namespace ash { @@ -17,19 +22,16 @@ AuthHubImpl::~AuthHubImpl() = default; void AuthHubImpl::InitializeForMode(AuthHubMode target) { + if (vector_lifecycle_ && !vector_lifecycle_->IsIdle()) { + target_mode_ = target; + // Eventually, after the current attempt gets canceled, `OnIdle()` will be + // triggered, which then switches the mode to `target_mode_`. + vector_lifecycle_->CancelAttempt(); + return; + } mode_lifecycle_->SwitchToMode(target); } -void AuthHubImpl::OnReadyForMode( - AuthHubMode mode, - AuthHubModeLifecycle::EnginesMap available_engines) { - on_initialized_listeners_.Notify(); -} - -void AuthHubImpl::OnExitedMode(AuthHubMode mode) {} - -void AuthHubImpl::OnModeShutdown() {} - void AuthHubImpl::EnsureInitialized(base::OnceClosure on_initialized) { if (mode_lifecycle_->IsReady()) { std::move(on_initialized).Run(); @@ -38,4 +40,182 @@ on_initialized_listeners_.AddUnsafe(std::move(on_initialized)); } +void AuthHubImpl::StartAuthentication(AccountId account_id, + AuthPurpose purpose, + AuthAttemptConsumer* consumer) { + if (!PurposeMatchesMode(purpose, mode_lifecycle_->GetCurrentMode())) { + LOG(ERROR) << "Attempt for " << purpose + << " rejected due to incorrect mode " + << mode_lifecycle_->GetCurrentMode(); + consumer->OnUserAuthAttemptRejected(); + return; + } + + CHECK(vector_lifecycle_); + AuthAttemptVector attempt{account_id, purpose}; + + if (current_attempt_.has_value()) { + // If we have two login attempts, let new attempt take + // over the existing one. + if (AttemptShouldOverrideAnother(attempt, *current_attempt_)) { + LOG(WARNING) << "Overriding ongoing attempt"; + pending_attempt_ = attempt; + pending_consumer_ = consumer; + vector_lifecycle_->CancelAttempt(); + return; + } + if (AttemptShouldOverrideAnother(*current_attempt_, attempt)) { + LOG(WARNING) << "Attempt rejected: another higher-priority attempt"; + consumer->OnUserAuthAttemptRejected(); + return; + } + // Neither attempt is considered "Stronger" one, + // so we should preserve ongoing one. + LOG(WARNING) << "Attempt rejected: another same-priority attempt"; + consumer->OnUserAuthAttemptRejected(); + return; + } + if (pending_attempt_.has_value()) { + // If we have two login attempts, let new attempt take + // over the pending one. + if (AttemptShouldOverrideAnother(attempt, *pending_attempt_)) { + LOG(WARNING) << "Overriding pending attempt"; + pending_consumer_->OnUserAuthAttemptRejected(); + // Override pending attempt. + pending_attempt_ = attempt; + pending_consumer_ = consumer; + return; + } + if (AttemptShouldOverrideAnother(*pending_attempt_, attempt)) { + LOG(WARNING) + << "Attempt rejected: another higher-priority pending attempt"; + consumer->OnUserAuthAttemptRejected(); + return; + } + // Neither attempt is considered "Stronger" one, + // so we should preserve pending one. + LOG(WARNING) << "Attempt rejected: pending same-priority attempt"; + consumer->OnUserAuthAttemptRejected(); + return; + } + + CHECK(!attempt_consumer_); + attempt_consumer_ = consumer; + current_attempt_ = attempt; + vector_lifecycle_->StartAttempt(attempt); +} + +bool AuthHubImpl::PurposeMatchesMode(AuthPurpose purpose, AuthHubMode mode) { + switch (mode) { + case kLoginScreen: + return purpose == AuthPurpose::kLogin; + case kInSession: + return purpose != AuthPurpose::kLogin; + case kNone: + NOTREACHED_NORETURN(); + } +} + +bool AuthHubImpl::AttemptShouldOverrideAnother( + const AuthAttemptVector& first, + const AuthAttemptVector& second) { + if (first.purpose == AuthPurpose::kLogin && + second.purpose == AuthPurpose::kLogin) { + // New login attempt always overrides previous. + return true; + } + // All login cases should be covered by check above + `PurposeMatchesMode`. + CHECK_NE(first.purpose, AuthPurpose::kLogin); + CHECK_NE(second.purpose, AuthPurpose::kLogin); + if (first.purpose == AuthPurpose::kScreenUnlock) { + // Lock screen always overrides any other attempt. + return true; + } + if (second.purpose == AuthPurpose::kScreenUnlock) { + // Nothing in-session can override lock screen. + return false; + } + // Currently various in-session attempts should not override ongoing attempt. + return false; +} + +// AuthHubModeLifecycle::Owner: + +void AuthHubImpl::OnReadyForMode(AuthHubMode mode, + AuthEnginesMap available_engines) { + CHECK(engines_.empty()); + CHECK(!vector_lifecycle_); + + engines_ = std::move(available_engines); + vector_lifecycle_ = + std::make_unique<AuthHubVectorLifecycle>(this, mode, engines_); + + on_initialized_listeners_.Notify(); +} + +void AuthHubImpl::OnExitedMode(AuthHubMode mode) {} + +void AuthHubImpl::OnModeShutdown() {} + +// AuthHubVectorLifecycle::Owner: + +AuthFactorEngine::FactorEngineObserver* AuthHubImpl::AsEngineObserver() { + return this; +} + +void AuthHubImpl::OnAttemptStarted(const AuthAttemptVector& attempt, + AuthFactorsSet available_factors, + AuthFactorsSet failed_factors) { + base::raw_ptr<AuthFactorStatusConsumer> status_consumer; + attempt_consumer_->OnUserAuthAttemptConfirmed(nullptr, status_consumer); +} + +void AuthHubImpl::OnAttemptFinished(const AuthAttemptVector& attempt) { + CHECK(attempt == *current_attempt_); + attempt_consumer_ = nullptr; + current_attempt_ = absl::nullopt; +} + +void AuthHubImpl::OnIdle() { + if (target_mode_.has_value()) { + if (pending_attempt_.has_value()) { + // Cancel pending attempt. + pending_consumer_->OnUserAuthAttemptRejected(); + target_mode_ = absl::nullopt; + pending_consumer_ = nullptr; + } + vector_lifecycle_.release(); + AuthHubMode mode = *target_mode_; + target_mode_ = absl::nullopt; + InitializeForMode(mode); + return; + } + + if (pending_attempt_.has_value()) { + AuthAttemptVector attempt = *pending_attempt_; + AuthAttemptConsumer* consumer = pending_consumer_.get(); + + pending_consumer_ = nullptr; + pending_attempt_ = absl::nullopt; + + StartAuthentication(attempt.account, attempt.purpose, consumer); + return; + } +} + +// AuthFactorEngine::FactorEngineObserver: +void AuthHubImpl::OnFactorPresenceChecked(AshAuthFactor factor, + bool factor_present) { + // Ignored, checked by AuthHubVectorLifecycle, results are + // passed to OnAttemptStarted. +} + +void AuthHubImpl::OnFactorAttempt(AshAuthFactor factor) {} +void AuthHubImpl::OnFactorAttemptResult(AshAuthFactor factor, bool success) {} +void AuthHubImpl::OnPolicyChanged(AshAuthFactor factor) {} +void AuthHubImpl::OnLockoutChanged(AshAuthFactor factor) {} +void AuthHubImpl::OnOrientationRestrictionsChanged(AshAuthFactor factor) {} +void AuthHubImpl::OnCriticalError(AshAuthFactor factor) {} +void AuthHubImpl::OnFactorCustomSignal(AshAuthFactor factor) {} + } // namespace ash
diff --git a/chromeos/ash/components/osauth/impl/auth_hub_impl.h b/chromeos/ash/components/osauth/impl/auth_hub_impl.h index c336fe4..903341f 100644 --- a/chromeos/ash/components/osauth/impl/auth_hub_impl.h +++ b/chromeos/ash/components/osauth/impl/auth_hub_impl.h
@@ -11,7 +11,10 @@ #include "base/component_export.h" #include "base/containers/flat_map.h" #include "base/memory/weak_ptr.h" +#include "chromeos/ash/components/osauth/impl/auth_hub_common.h" #include "chromeos/ash/components/osauth/impl/auth_hub_mode_lifecycle.h" +#include "chromeos/ash/components/osauth/impl/auth_hub_vector_lifecycle.h" +#include "chromeos/ash/components/osauth/public/auth_attempt_consumer.h" #include "chromeos/ash/components/osauth/public/auth_factor_engine.h" #include "chromeos/ash/components/osauth/public/auth_hub.h" #include "chromeos/ash/components/osauth/public/common_types.h" @@ -20,7 +23,9 @@ class COMPONENT_EXPORT(CHROMEOS_ASH_COMPONENTS_OSAUTH) AuthHubImpl : public AuthHub, - public AuthHubModeLifecycle::Owner { + public AuthHubModeLifecycle::Owner, + public AuthHubVectorLifecycle::Owner, + public AuthFactorEngine::FactorEngineObserver { public: explicit AuthHubImpl(); ~AuthHubImpl() override; @@ -31,15 +36,58 @@ void InitializeForMode(AuthHubMode target) override; void EnsureInitialized(base::OnceClosure on_initialized) override; - // ----- AuthHubModeLifecycle implementation: - void OnReadyForMode( - AuthHubMode mode, - AuthHubModeLifecycle::EnginesMap available_engines) override; + void StartAuthentication(AccountId accountId, + AuthPurpose purpose, + AuthAttemptConsumer* consumer) override; + + // AuthHubModeLifecycle::Owner: + void OnReadyForMode(AuthHubMode mode, + AuthEnginesMap available_engines) override; void OnExitedMode(AuthHubMode mode) override; void OnModeShutdown() override; + // AuthHubVectorLifecycle::Owner: + AuthFactorEngine::FactorEngineObserver* AsEngineObserver() override; + void OnAttemptStarted(const AuthAttemptVector& attempt, + AuthFactorsSet available_factors, + AuthFactorsSet failed_factors) override; + void OnAttemptFinished(const AuthAttemptVector& attempt) override; + void OnIdle() override; + + // AuthFactorEngine::FactorEngineObserver: + void OnFactorPresenceChecked(AshAuthFactor factor, + bool factor_present) override; + void OnFactorAttempt(AshAuthFactor factor) override; + void OnFactorAttemptResult(AshAuthFactor factor, bool success) override; + void OnPolicyChanged(AshAuthFactor factor) override; + void OnLockoutChanged(AshAuthFactor factor) override; + void OnOrientationRestrictionsChanged(AshAuthFactor factor) override; + void OnCriticalError(AshAuthFactor factor) override; + void OnFactorCustomSignal(AshAuthFactor factor) override; + private: + bool PurposeMatchesMode(AuthPurpose purpose, AuthHubMode mode); + // Checks if `first` attempt have higher priority and should + // override `second`. + bool AttemptShouldOverrideAnother(const AuthAttemptVector& first, + const AuthAttemptVector& second); + + AuthEnginesMap engines_; + + absl::optional<AuthAttemptVector> current_attempt_; + base::raw_ptr<AuthAttemptConsumer> attempt_consumer_ = nullptr; + + absl::optional<AuthAttemptVector> pending_attempt_; + base::raw_ptr<AuthAttemptConsumer> pending_consumer_ = nullptr; + + // Target mode for initialization, used to store last request when + // some extra actions are required before mode can be switched. + // If another mode change is requested during such actions, it + // is safe to just replace target_mode_. + absl::optional<AuthHubMode> target_mode_; + base::OnceCallbackList<void()> on_initialized_listeners_; + std::unique_ptr<AuthHubVectorLifecycle> vector_lifecycle_; std::unique_ptr<AuthHubModeLifecycle> mode_lifecycle_; base::WeakPtrFactory<AuthHubImpl> weak_factory_{this}; };
diff --git a/chromeos/ash/components/osauth/impl/auth_hub_impl_test.cc b/chromeos/ash/components/osauth/impl/auth_hub_impl_test.cc index fd23f6b..9fe6f57 100644 --- a/chromeos/ash/components/osauth/impl/auth_hub_impl_test.cc +++ b/chromeos/ash/components/osauth/impl/auth_hub_impl_test.cc
@@ -15,24 +15,30 @@ #include "chromeos/ash/components/osauth/impl/auth_hub_impl.h" #include "chromeos/ash/components/osauth/impl/auth_parts_impl.h" #include "chromeos/ash/components/osauth/public/auth_hub.h" +#include "chromeos/ash/components/osauth/test_support/mock_auth_attempt_consumer.h" #include "chromeos/ash/components/osauth/test_support/mock_auth_factor_engine.h" #include "chromeos/ash/components/osauth/test_support/mock_auth_factor_engine_factory.h" +#include "chromeos/ash/components/osauth/test_support/mock_auth_factor_status_consumer.h" #include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h" namespace ash { -constexpr AshAuthFactor kOneFactor = AshAuthFactor::kGaiaPassword; +constexpr AshAuthFactor kFactor = AshAuthFactor::kGaiaPassword; using base::test::RunOnceCallback; using testing::_; +using testing::AnyNumber; using testing::ByMove; +using testing::Eq; +using testing::Invoke; using testing::Return; +using testing::SaveArg; using testing::StrictMock; -class AuthHubTestMode : public ::testing::Test { +class AuthHubTestBase : public ::testing::Test { protected: - AuthHubTestMode() { + AuthHubTestBase() { parts_ = AuthPartsImpl::CreateTestInstance(); parts_->SetAuthHub(std::make_unique<AuthHubImpl>()); @@ -41,22 +47,41 @@ engine_ = engine.get(); - EXPECT_CALL(*factory, GetFactor()).WillRepeatedly(Return(kOneFactor)); - EXPECT_CALL(*engine, GetFactor()).WillRepeatedly(Return(kOneFactor)); + EXPECT_CALL(*factory, GetFactor()).WillRepeatedly(Return(kFactor)); + EXPECT_CALL(*engine, GetFactor()).WillRepeatedly(Return(kFactor)); + EXPECT_CALL(*engine, InitializeCommon(_)) + .Times(AnyNumber()) + .WillRepeatedly(RunOnceCallback<0>(kFactor)); + EXPECT_CALL(*engine, ShutdownCommon(_)) + .Times(AnyNumber()) + .WillRepeatedly(RunOnceCallback<0>(kFactor)); + EXPECT_CALL(*factory, CreateEngine(_)) .WillOnce(Return(ByMove(std::move(engine)))); - parts_->RegisterEngineFactory(std::move(factory)); } + void ExpectEngineStart(AuthAttemptVector vector) { + EXPECT_CALL(*engine_, + StartAuthFlow(Eq(vector.account), Eq(vector.purpose), _)) + .WillOnce(SaveArg<2>(&engine_observer_)); + EXPECT_CALL(*engine_, UpdateObserver(_)) + .Times(AnyNumber()) + .WillRepeatedly(SaveArg<0>(&engine_observer_)); + } + base::test::TaskEnvironment task_environment_{ base::test::TaskEnvironment::TimeSource::MOCK_TIME}; std::unique_ptr<AuthPartsImpl> parts_; base::raw_ptr<MockAuthFactorEngine> engine_; + base::raw_ptr<AuthFactorEngine::FactorEngineObserver> engine_observer_ = + nullptr; }; +using AuthHubTestMode = AuthHubTestBase; + TEST_F(AuthHubTestMode, CheckEnsureInitialized) { base::test::TestFuture<void> init_future; @@ -70,9 +95,62 @@ EXPECT_FALSE(init_future.IsReady()); - std::move(init_callback).Run(kOneFactor); + std::move(init_callback).Run(kFactor); EXPECT_TRUE(init_future.IsReady()); } +class AuthHubTestVector : public AuthHubTestBase { + protected: + AuthHubTestVector() { + account_ = AccountId::FromUserEmail("user1@example.com"); + attempt_ = AuthAttemptVector{account_, AuthPurpose::kLogin}; + } + + void ExpectAttemptConfirmation() { + EXPECT_CALL(attempt_consumer_, OnUserAuthAttemptConfirmed(_, _)) + .WillOnce(Invoke([&](AuthHubConnector* connector, + raw_ptr<AuthFactorStatusConsumer>& out_consumer) { + connector_ = connector; + out_consumer = &status_consumer_; + })); + } + + AccountId account_; + AuthAttemptVector attempt_; + base::raw_ptr<AuthHubConnector> connector_ = nullptr; + StrictMock<MockAuthAttemptConsumer> attempt_consumer_; + StrictMock<MockAuthFactorStatusConsumer> status_consumer_; +}; + +TEST_F(AuthHubTestVector, InvalidPurposeOnLoginScreen) { + AuthHub::Get()->InitializeForMode(AuthHubMode::kLoginScreen); + + EXPECT_CALL(attempt_consumer_, OnUserAuthAttemptRejected()); + AuthHub::Get()->StartAuthentication(account_, AuthPurpose::kWebAuthN, + &attempt_consumer_); +} +TEST_F(AuthHubTestVector, InvalidPurposeInSession) { + AuthHub::Get()->InitializeForMode(AuthHubMode::kInSession); + + EXPECT_CALL(attempt_consumer_, OnUserAuthAttemptRejected()); + AuthHub::Get()->StartAuthentication(account_, AuthPurpose::kLogin, + &attempt_consumer_); +} + +TEST_F(AuthHubTestVector, SingleFactorSuccess) { + AuthHub::Get()->InitializeForMode(AuthHubMode::kLoginScreen); + + ExpectEngineStart(attempt_); + ExpectAttemptConfirmation(); + + AuthHub::Get()->StartAuthentication(attempt_.account, attempt_.purpose, + &attempt_consumer_); + + ASSERT_NE(engine_observer_, nullptr); + engine_observer_->OnFactorPresenceChecked(kFactor, true); +} + +// TODO (b/271248265): add tests for preemption during initialization. + } // namespace ash
diff --git a/chromeos/ash/components/osauth/impl/auth_hub_mode_lifecycle.cc b/chromeos/ash/components/osauth/impl/auth_hub_mode_lifecycle.cc index 29420025..c5b0fac 100644 --- a/chromeos/ash/components/osauth/impl/auth_hub_mode_lifecycle.cc +++ b/chromeos/ash/components/osauth/impl/auth_hub_mode_lifecycle.cc
@@ -11,6 +11,7 @@ #include "chromeos/ash/components/osauth/public/auth_factor_engine.h" #include "chromeos/ash/components/osauth/public/auth_factor_engine_factory.h" #include "chromeos/ash/components/osauth/public/auth_parts.h" +#include "chromeos/ash/components/osauth/public/string_utils.h" namespace ash { namespace { @@ -29,6 +30,20 @@ kStopped }; +std::ostream& operator<<(std::ostream& out, EngineStatus status) { + switch (status) { +#define PRINT(s) \ + case EngineStatus::k##s: \ + return out << #s; + PRINT(Starting) + PRINT(Started) + PRINT(Failed) + PRINT(ShuttingDown) + PRINT(Stopped) +#undef PRINT + } +} + } // namespace struct AuthHubModeLifecycle::EngineState { @@ -41,6 +56,8 @@ AuthHubModeLifecycle::~AuthHubModeLifecycle() = default; +AuthHubModeLifecycle::Owner::~Owner() = default; + void AuthHubModeLifecycle::SwitchToMode(AuthHubMode target) { CHECK_NE(target, AuthHubMode::kNone); SwitchToModeImpl(target); @@ -123,7 +140,7 @@ for (auto& engine_state : engines_) { if (engine_state.second.status == EngineStatus::kStarting) { engine_state.second.status = EngineStatus::kFailed; - LOG(ERROR) << "Factor " << static_cast<int>(engine_state.first) + LOG(ERROR) << "Factor " << engine_state.first << " did not initialize in time"; engine_state.second.engine->InitializationTimedOut(); } @@ -143,9 +160,8 @@ break; case EngineStatus::kShuttingDown: case EngineStatus::kStopped: - LOG(FATAL) << "Engine " << static_cast<int>(engine_state.first) - << " is in invalid state " - << static_cast<int>(engine_state.second.status); + LOG(FATAL) << "Engine " << engine_state.first << " is in invalid state " + << engine_state.second.status; } } if (all_initialized) { @@ -203,7 +219,7 @@ for (auto& engine_state : engines_) { if (engine_state.second.status == EngineStatus::kShuttingDown) { engine_state.second.status = EngineStatus::kFailed; - LOG(ERROR) << "Factor " << static_cast<int>(engine_state.first) + LOG(ERROR) << "Factor " << engine_state.first << " did not shut down in time"; engine_state.second.engine->ShutdownTimedOut(); } @@ -225,9 +241,8 @@ break; case EngineStatus::kStarting: case EngineStatus::kStarted: - LOG(FATAL) << "Engine " << static_cast<int>(engine_state.first) - << " is in invalid state " - << static_cast<int>(engine_state.second.status); + LOG(FATAL) << "Engine " << engine_state.first << " is in invalid state " + << engine_state.second.status; } } @@ -252,9 +267,16 @@ return stage_ == Stage::kStarted; } -AuthHubModeLifecycle::EnginesMap AuthHubModeLifecycle::GetAvailableEngines() { +AuthHubMode AuthHubModeLifecycle::GetCurrentMode() const { + if (stage_ != Stage::kStarted) { + return AuthHubMode::kNone; + } + return mode_; +} + +AuthEnginesMap AuthHubModeLifecycle::GetAvailableEngines() { CHECK_EQ(stage_, Stage::kStarted); - AuthHubModeLifecycle::EnginesMap result; + AuthEnginesMap result; for (const auto& engine_state : engines_) { if (engine_state.second.status == EngineStatus::kStarted) { result[engine_state.first] = engine_state.second.engine.get();
diff --git a/chromeos/ash/components/osauth/impl/auth_hub_mode_lifecycle.h b/chromeos/ash/components/osauth/impl/auth_hub_mode_lifecycle.h index 3553277..cb27a52 100644 --- a/chromeos/ash/components/osauth/impl/auth_hub_mode_lifecycle.h +++ b/chromeos/ash/components/osauth/impl/auth_hub_mode_lifecycle.h
@@ -9,6 +9,7 @@ #include "base/containers/flat_map.h" #include "base/memory/weak_ptr.h" #include "base/timer/timer.h" +#include "chromeos/ash/components/osauth/impl/auth_hub_common.h" #include "chromeos/ash/components/osauth/public/auth_factor_engine.h" #include "chromeos/ash/components/osauth/public/common_types.h" @@ -32,26 +33,28 @@ // complete; // * Destroying all engine instances; // * Switching to another mode if necessary. +// `AuthHubModeLifecycle` correctly handles attempt mode +// initialization/shutdown, even if request to switch mode/shut down was +// requested in the middle of ongoing init/shutdown sequence. + class COMPONENT_EXPORT(CHROMEOS_ASH_COMPONENTS_OSAUTH) AuthHubModeLifecycle { public: - using EnginesMap = - base::flat_map<AshAuthFactor, base::raw_ptr<AuthFactorEngine>>; - // Interface to interact with owning AuthHub: - class Owner { + class COMPONENT_EXPORT(CHROMEOS_ASH_COMPONENTS_OSAUTH) Owner { public: + virtual ~Owner(); virtual void OnReadyForMode(AuthHubMode mode, - EnginesMap available_engines) = 0; + AuthEnginesMap available_engines) = 0; virtual void OnExitedMode(AuthHubMode mode) = 0; virtual void OnModeShutdown() = 0; - virtual ~Owner() = default; }; explicit AuthHubModeLifecycle(Owner* owner); ~AuthHubModeLifecycle(); bool IsReady(); - EnginesMap GetAvailableEngines(); + AuthEnginesMap GetAvailableEngines(); + AuthHubMode GetCurrentMode() const; void SwitchToMode(AuthHubMode mode); void Shutdown();
diff --git a/chromeos/ash/components/osauth/impl/auth_hub_mode_lifecycle_unittest.cc b/chromeos/ash/components/osauth/impl/auth_hub_mode_lifecycle_unittest.cc index b9cabc63..87d85253 100644 --- a/chromeos/ash/components/osauth/impl/auth_hub_mode_lifecycle_unittest.cc +++ b/chromeos/ash/components/osauth/impl/auth_hub_mode_lifecycle_unittest.cc
@@ -12,6 +12,7 @@ #include "base/test/gmock_move_support.h" #include "base/test/task_environment.h" #include "base/test/test_future.h" +#include "chromeos/ash/components/osauth/impl/auth_hub_common.h" #include "chromeos/ash/components/osauth/impl/auth_hub_impl.h" #include "chromeos/ash/components/osauth/impl/auth_hub_mode_lifecycle.h" #include "chromeos/ash/components/osauth/impl/auth_parts_impl.h" @@ -41,10 +42,7 @@ MockModeLifecycleOwner() = default; ~MockModeLifecycleOwner() override = default; - MOCK_METHOD(void, - OnReadyForMode, - (AuthHubMode, AuthHubModeLifecycle::EnginesMap), - (override)); + MOCK_METHOD(void, OnReadyForMode, (AuthHubMode, AuthEnginesMap), (override)); MOCK_METHOD(void, OnExitedMode, (AuthHubMode), (override)); MOCK_METHOD(void, OnModeShutdown, (), (override)); }; @@ -131,7 +129,7 @@ EXPECT_FALSE(lifecycle_.IsReady()); Mock::VerifyAndClearExpectations(&owner_); - AuthHubModeLifecycle::EnginesMap engines; + AuthEnginesMap engines; EXPECT_CALL(owner_, OnReadyForMode(Eq(AuthHubMode::kLoginScreen), _)) .WillOnce(MoveArg<1>(&engines)); @@ -233,7 +231,7 @@ // Should finish shutdown and proceed to initialization for second // requested mode. - AuthHubModeLifecycle::EnginesMap engines; + AuthEnginesMap engines; EXPECT_CALL(owner_, OnReadyForMode(Eq(AuthHubMode::kInSession), _)) .WillOnce(MoveArg<1>(&engines)); @@ -264,7 +262,7 @@ EXPECT_CALL(*engines_[kOneFactor], InitializationTimedOut()); - AuthHubModeLifecycle::EnginesMap engines; + AuthEnginesMap engines; EXPECT_CALL(owner_, OnReadyForMode(Eq(AuthHubMode::kLoginScreen), _)) .WillOnce(MoveArg<1>(&engines)); @@ -295,7 +293,7 @@ ExpectLoginFactor(kOneFactor); ExpectLoginFactor(kAnotherFactor); - AuthHubModeLifecycle::EnginesMap engines; + AuthEnginesMap engines; EXPECT_CALL(owner_, OnReadyForMode(Eq(AuthHubMode::kLoginScreen), _)) .WillOnce(MoveArg<1>(&engines));
diff --git a/chromeos/ash/components/osauth/impl/auth_hub_vector_lifecycle.cc b/chromeos/ash/components/osauth/impl/auth_hub_vector_lifecycle.cc new file mode 100644 index 0000000..4b0a38e --- /dev/null +++ b/chromeos/ash/components/osauth/impl/auth_hub_vector_lifecycle.cc
@@ -0,0 +1,298 @@ +// Copyright 2023 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chromeos/ash/components/osauth/impl/auth_hub_vector_lifecycle.h" + +#include "base/debug/dump_without_crashing.h" +#include "base/functional/callback.h" +#include "base/logging.h" +#include "base/memory/raw_ptr.h" +#include "base/ranges/algorithm.h" +#include "base/time/time.h" +#include "chromeos/ash/components/osauth/public/auth_factor_engine.h" +#include "chromeos/ash/components/osauth/public/auth_factor_engine_factory.h" +#include "chromeos/ash/components/osauth/public/auth_parts.h" +#include "chromeos/ash/components/osauth/public/string_utils.h" +#include "third_party/abseil-cpp/absl/types/optional.h" + +namespace ash { + +namespace { + +// TODO (b/271248265): Review timeout values. +#if !defined(NDEBUG) +constexpr base::TimeDelta kWatchdogTimeout = base::Seconds(5); +#else +constexpr base::TimeDelta kWatchdogTimeout = base::Seconds(10); +#endif + +enum class EngineAttemptStatus { + kIdle, + kStarting, + kNoFactor, + kStarted, + kFailed, + kCriticalError, + kFinishing, +}; + +} // namespace + +struct AuthHubVectorLifecycle::FactorAttemptState { + base::raw_ptr<AuthFactorEngine> engine; + EngineAttemptStatus status; +}; + +AuthHubVectorLifecycle::AuthHubVectorLifecycle(Owner* owner, + AuthHubMode mode, + const AuthEnginesMap& engines) + : available_engines_(engines), owner_(owner) { + CHECK(!engines.empty()); +} + +AuthHubVectorLifecycle::~AuthHubVectorLifecycle() = default; + +AuthHubVectorLifecycle::Owner::~Owner() = default; + +void AuthHubVectorLifecycle::StartAttempt(const AuthAttemptVector& attempt) { + target_attempt_ = attempt; + switch (stage_) { + case Stage::kIdle: + StartForTargetAttempt(); + break; + case Stage::kStarted: + FinishAttempt(); + break; + case Stage::kStartingAttempt: + // Set up new target mode, but do not modify initializing_for_, + // `ProceedIfAllFactorsStarted` would trigger re-initialization. + break; + case Stage::kFinishingAttempt: + // Just update the target mode, `ProceedIfAllFactorsFinished` would + // trigger new attempt. + break; + } +} + +void AuthHubVectorLifecycle::CancelAttempt() { + switch (stage_) { + case Stage::kIdle: + LOG(WARNING) << "Request to cancel attempt without actual attempt"; + break; + case Stage::kStarted: + target_attempt_ = absl::nullopt; + FinishAttempt(); + break; + case Stage::kStartingAttempt: + case Stage::kFinishingAttempt: + target_attempt_ = absl::nullopt; + break; + } +} + +bool AuthHubVectorLifecycle::IsIdle() const { + return stage_ == Stage::kIdle; +} + +void AuthHubVectorLifecycle::StartForTargetAttempt() { + CHECK_EQ(stage_, Stage::kIdle); + CHECK(target_attempt_.has_value()); + + stage_ = Stage::kStartingAttempt; + initializing_for_ = target_attempt_; + + CHECK(engines_.empty()); + for (const auto& engine : available_engines_) { + engines_[engine.first] = + FactorAttemptState{engine.second, EngineAttemptStatus::kStarting}; + } + + watchdog_.Stop(); + watchdog_.Start( + FROM_HERE, kWatchdogTimeout, + base::BindOnce(&AuthHubVectorLifecycle::OnAttemptStartWatchdog, + weak_factory_.GetWeakPtr())); + for (auto& state : engines_) { + state.second.engine->StartAuthFlow(target_attempt_->account, + target_attempt_->purpose, this); + } +} + +void AuthHubVectorLifecycle::OnAttemptStartWatchdog() { + LOG(ERROR) << "Attempt start watchdog triggered"; + CHECK_EQ(stage_, Stage::kStartingAttempt); + + for (auto& state : engines_) { + if (state.second.status == EngineAttemptStatus::kStarting) { + state.second.status = EngineAttemptStatus::kFailed; + LOG(ERROR) << "Factor " << state.first << " did not start in time"; + state.second.engine->StartFlowTimedOut(); + } + } + ProceedIfAllFactorsStarted(); +} + +void AuthHubVectorLifecycle::ProceedIfAllFactorsStarted() { + CHECK_EQ(stage_, Stage::kStartingAttempt); + for (const auto& state : engines_) { + if (state.second.status == EngineAttemptStatus::kStarting) { + return; + } + } + watchdog_.Stop(); + stage_ = Stage::kStarted; + if (initializing_for_ != target_attempt_) { + // Not notifying owner, just restart for new target. + initializing_for_ = absl::nullopt; + FinishAttempt(); + return; + } + CHECK(target_attempt_.has_value()); + + current_attempt_ = target_attempt_; + + AuthFactorsSet present; + AuthFactorsSet failed; + + for (const auto& state : engines_) { + switch (state.second.status) { + case EngineAttemptStatus::kStarted: + present.Put(state.first); + state.second.engine->UpdateObserver(owner_->AsEngineObserver()); + break; + case EngineAttemptStatus::kNoFactor: + // Just ignore them + break; + case EngineAttemptStatus::kCriticalError: + case EngineAttemptStatus::kFailed: + failed.Put(state.first); + break; + case EngineAttemptStatus::kStarting: + case EngineAttemptStatus::kIdle: + case EngineAttemptStatus::kFinishing: + NOTREACHED_NORETURN(); + } + } + owner_->OnAttemptStarted(*current_attempt_, present, failed); +} + +void AuthHubVectorLifecycle::FinishAttempt() { + CHECK_EQ(stage_, Stage::kStarted); + stage_ = Stage::kFinishingAttempt; + for (auto& state : engines_) { + state.second.status = EngineAttemptStatus::kFinishing; + } + watchdog_.Stop(); + watchdog_.Start( + FROM_HERE, kWatchdogTimeout, + base::BindOnce(&AuthHubVectorLifecycle::OnAttemptFinishWatchdog, + weak_factory_.GetWeakPtr())); + + // TODO(b/277929602): metrics on initialization time. + for (auto& state : engines_) { + state.second.engine->UpdateObserver(this); + state.second.engine->StopAuthFlow(base::BindOnce( + &AuthHubVectorLifecycle::OnFactorFinished, weak_factory_.GetWeakPtr())); + } +} + +void AuthHubVectorLifecycle::OnFactorFinished(AshAuthFactor factor) { + CHECK_EQ(stage_, Stage::kFinishingAttempt); + CHECK(engines_.contains(factor)); + engines_[factor].status = EngineAttemptStatus::kIdle; + ProceedIfAllFactorsFinished(); +} + +void AuthHubVectorLifecycle::OnAttemptFinishWatchdog() { + LOG(ERROR) << "Attempt finish watchdog triggered"; + CHECK_EQ(stage_, Stage::kFinishingAttempt); + + for (auto& state : engines_) { + if (state.second.status == EngineAttemptStatus::kFinishing) { + state.second.status = EngineAttemptStatus::kFailed; + LOG(ERROR) << "Factor " << state.first << " did not finish in time"; + state.second.engine->StopFlowTimedOut(); + } + } + ProceedIfAllFactorsFinished(); +} + +void AuthHubVectorLifecycle::ProceedIfAllFactorsFinished() { + CHECK_EQ(stage_, Stage::kFinishingAttempt); + for (const auto& state : engines_) { + if (state.second.status == EngineAttemptStatus::kFinishing) { + return; + } + } + engines_.clear(); + + watchdog_.Stop(); + stage_ = Stage::kIdle; + + if (current_attempt_.has_value()) { + // We have notified owner about attempt start, so + // we need to notify about finish. + owner_->OnAttemptFinished(*current_attempt_); + } + current_attempt_ = absl::nullopt; + + if (target_attempt_.has_value()) { + StartForTargetAttempt(); + } else { + owner_->OnIdle(); + } +} + +// AuthFactorEngine::FactorEngineObserver: +void AuthHubVectorLifecycle::OnFactorPresenceChecked(AshAuthFactor factor, + bool factor_present) { + CHECK_EQ(stage_, Stage::kStartingAttempt); + CHECK(engines_.contains(factor)); + + engines_[factor].status = factor_present ? EngineAttemptStatus::kStarted + : EngineAttemptStatus::kNoFactor; + ProceedIfAllFactorsStarted(); +} + +void AuthHubVectorLifecycle::OnFactorAttempt(AshAuthFactor factor) { + // Ignored + // Should not happen, as factors start in disabled state. + base::debug::DumpWithoutCrashing(); +} +void AuthHubVectorLifecycle::OnFactorAttemptResult(AshAuthFactor factor, + bool success) { + // Ignored + // Should not happen, as factors start in disabled state. + base::debug::DumpWithoutCrashing(); +} + +void AuthHubVectorLifecycle::OnPolicyChanged(AshAuthFactor factor) { + // Ignored +} +void AuthHubVectorLifecycle::OnLockoutChanged(AshAuthFactor factor) { + // Ignored +} +void AuthHubVectorLifecycle::OnOrientationRestrictionsChanged( + AshAuthFactor factor) { + // Ignored +} +void AuthHubVectorLifecycle::OnFactorCustomSignal(AshAuthFactor factor) { + // Ignored +} + +void AuthHubVectorLifecycle::OnCriticalError(AshAuthFactor factor) { + CHECK(stage_ == Stage::kStartingAttempt || + stage_ == Stage::kFinishingAttempt); + + CHECK(engines_.contains(factor)); + engines_[factor].status = EngineAttemptStatus::kCriticalError; + + if (stage_ == Stage::kStartingAttempt) { + ProceedIfAllFactorsStarted(); + } else { + ProceedIfAllFactorsFinished(); + } +} + +} // namespace ash
diff --git a/chromeos/ash/components/osauth/impl/auth_hub_vector_lifecycle.h b/chromeos/ash/components/osauth/impl/auth_hub_vector_lifecycle.h new file mode 100644 index 0000000..c8984408 --- /dev/null +++ b/chromeos/ash/components/osauth/impl/auth_hub_vector_lifecycle.h
@@ -0,0 +1,108 @@ +// Copyright 2023 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROMEOS_ASH_COMPONENTS_OSAUTH_IMPL_AUTH_HUB_VECTOR_LIFECYCLE_H_ +#define CHROMEOS_ASH_COMPONENTS_OSAUTH_IMPL_AUTH_HUB_VECTOR_LIFECYCLE_H_ + +#include "base/callback_list.h" +#include "base/containers/flat_map.h" +#include "base/memory/weak_ptr.h" +#include "base/timer/timer.h" +#include "chromeos/ash/components/osauth/impl/auth_hub_common.h" +#include "chromeos/ash/components/osauth/public/auth_factor_engine.h" +#include "chromeos/ash/components/osauth/public/common_types.h" +#include "third_party/abseil-cpp/absl/types/optional.h" + +namespace ash { + +// This class manages inner lifecycle of the auth hub. +// Outer lifecycle includes switching between `AuthAttemptVector`s, +// basically a combination of `AccountId`+`AuthPurpose`. +// This class is re-created every time owning `AuthHub` changes mode, +// and receives initialized engines as parameter. +// Lifecycle is: +// * Call each engine's `StartAuthFlow` with auth vector, and wait for +// completion. +// * Notify `Owner` about available / failed auth factors. +// * Once attempt is finished, call each engine's `StopAuthFlow`, and wait for +// completion. +// * Notify `Owner` that attempt is finished. +// `AuthHubVectorLifecycle` correctly handles attempt start/finish, even if +// request to start/finish was requested in the middle of ongoing start/finish +// sequence. + +class COMPONENT_EXPORT(CHROMEOS_ASH_COMPONENTS_OSAUTH) AuthHubVectorLifecycle + : public AuthFactorEngine::FactorEngineObserver { + public: + // Interface to interact with owning AuthHub: + class COMPONENT_EXPORT(CHROMEOS_ASH_COMPONENTS_OSAUTH) Owner { + public: + virtual ~Owner(); + virtual AuthFactorEngine::FactorEngineObserver* AsEngineObserver() = 0; + virtual void OnAttemptStarted(const AuthAttemptVector& attempt, + AuthFactorsSet available_factors, + AuthFactorsSet failed_factors) = 0; + virtual void OnAttemptFinished(const AuthAttemptVector& attempt) = 0; + virtual void OnIdle() = 0; + }; + + AuthHubVectorLifecycle(Owner* owner, + AuthHubMode mode, + const AuthEnginesMap& engines); + ~AuthHubVectorLifecycle() override; + + void StartAttempt(const AuthAttemptVector& vector); + void OnFactorInitialized(AshAuthFactor factor); + void CancelAttempt(); + bool IsIdle() const; + + // AuthFactorEngine::FactorEngineObserver: + void OnFactorPresenceChecked(AshAuthFactor factor, + bool factor_present) override; + void OnFactorAttempt(AshAuthFactor factor) override; + void OnFactorAttemptResult(AshAuthFactor factor, bool success) override; + void OnPolicyChanged(AshAuthFactor factor) override; + void OnLockoutChanged(AshAuthFactor factor) override; + void OnOrientationRestrictionsChanged(AshAuthFactor factor) override; + void OnCriticalError(AshAuthFactor factor) override; + void OnFactorCustomSignal(AshAuthFactor factor) override; + + private: + enum class Stage { + kIdle, + kStartingAttempt, + kStarted, + kFinishingAttempt, + }; + + struct FactorAttemptState; + + void StartForTargetAttempt(); + void OnAttemptStartWatchdog(); + void ProceedIfAllFactorsStarted(); + + void FinishAttempt(); + void OnFactorFinished(AshAuthFactor factor); + void OnAttemptFinishWatchdog(); + void ProceedIfAllFactorsFinished(); + + Stage stage_ = Stage::kIdle; + + absl::optional<AuthAttemptVector> current_attempt_; + absl::optional<AuthAttemptVector> target_attempt_; + absl::optional<AuthAttemptVector> initializing_for_; + absl::optional<AuthAttemptVector> last_started_attempt_; + + AuthEnginesMap available_engines_; + + base::flat_map<AshAuthFactor, FactorAttemptState> engines_; + + base::OneShotTimer watchdog_; + base::raw_ptr<Owner> owner_; + base::WeakPtrFactory<AuthHubVectorLifecycle> weak_factory_{this}; +}; + +} // namespace ash + +#endif // CHROMEOS_ASH_COMPONENTS_OSAUTH_IMPL_AUTH_HUB_VECTOR_LIFECYCLE_H_
diff --git a/chromeos/ash/components/osauth/impl/auth_hub_vector_lifecycle_unittest.cc b/chromeos/ash/components/osauth/impl/auth_hub_vector_lifecycle_unittest.cc new file mode 100644 index 0000000..87a45150 --- /dev/null +++ b/chromeos/ash/components/osauth/impl/auth_hub_vector_lifecycle_unittest.cc
@@ -0,0 +1,374 @@ +// Copyright 2023 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chromeos/ash/components/osauth/impl/auth_hub_vector_lifecycle.h" + +#include <memory> + +#include "base/functional/callback_helpers.h" +#include "base/memory/raw_ptr.h" +#include "base/test/gmock_callback_support.h" +#include "base/test/gmock_move_support.h" +#include "base/test/task_environment.h" +#include "base/test/test_future.h" +#include "chromeos/ash/components/osauth/impl/auth_hub_impl.h" +#include "chromeos/ash/components/osauth/impl/auth_parts_impl.h" +#include "chromeos/ash/components/osauth/public/auth_hub.h" +#include "chromeos/ash/components/osauth/test_support/mock_auth_attempt_consumer.h" +#include "chromeos/ash/components/osauth/test_support/mock_auth_factor_engine.h" +#include "chromeos/ash/components/osauth/test_support/mock_auth_factor_engine_factory.h" +#include "chromeos/ash/components/osauth/test_support/mock_auth_factor_status_consumer.h" +#include "testing/gmock/include/gmock/gmock.h" +#include "testing/gtest/include/gtest/gtest.h" + +namespace ash { + +constexpr base::TimeDelta kLongTime = base::Minutes(1); +constexpr AshAuthFactor kFactor = AshAuthFactor::kGaiaPassword; +constexpr AshAuthFactor kSpecialFactor = AshAuthFactor::kCryptohomePin; + +using base::test::RunOnceCallback; +using base::test::RunOnceClosure; +using testing::_; +using testing::AnyNumber; +using testing::AtMost; +using testing::ByMove; +using testing::DoAll; +using testing::Eq; +using testing::Invoke; +using testing::Mock; +using testing::Return; +using testing::SaveArg; +using testing::StrictMock; + +class MockVectorLifecycleOwner : public AuthHubVectorLifecycle::Owner { + public: + MockVectorLifecycleOwner() = default; + ~MockVectorLifecycleOwner() override = default; + + MOCK_METHOD(AuthFactorEngine::FactorEngineObserver*, + AsEngineObserver, + (), + (override)); + MOCK_METHOD(void, + OnAttemptStarted, + (const AuthAttemptVector&, AuthFactorsSet, AuthFactorsSet), + (override)); + MOCK_METHOD(void, OnAttemptFinished, (const AuthAttemptVector&), (override)); + MOCK_METHOD(void, OnIdle, (), (override)); +}; + +class AuthHubVectorLifecycleTest : public ::testing::Test { + protected: + AuthHubVectorLifecycleTest() { + parts_ = AuthPartsImpl::CreateTestInstance(); + account_ = AccountId::FromUserEmail("user1@example.com"); + } + + void SetUp() override {} + + void InitLifecycle() { + AuthEnginesMap engines; + for (const auto& engine : engines_) { + engines[engine.first] = engine.second.get(); + } + lifecycle_ = std::make_unique<AuthHubVectorLifecycle>( + &owner_, AuthHubMode::kLoginScreen, engines); + EXPECT_CALL(owner_, AsEngineObserver()) + .Times(AnyNumber()) + .WillRepeatedly(Return(&owner_engine_observer_)); + } + + void ExpectOwnerAttemptStartCalled(AuthAttemptVector attempt) { + EXPECT_CALL(owner_, OnAttemptStarted(Eq(attempt), _, _)) + .WillOnce(Invoke([&](const AuthAttemptVector&, AuthFactorsSet usable, + AuthFactorsSet failed) { + usable_factors_ = usable; + failed_factors_ = failed; + })); + } + + void TriggerTimeout() { task_environment_.FastForwardBy(kLongTime); } + + void ExpectFactorAvailability(AuthFactorsSet usable, AuthFactorsSet failed) { + ASSERT_EQ(usable_factors_, usable); + ASSERT_EQ(failed_factors_, failed); + } + + void StartAttemptWithAllFactors(AuthAttemptVector attempt) { + AuthFactorsSet all_factors; + lifecycle_->StartAttempt(attempt); + ExpectOwnerAttemptStartCalled(attempt); + for (const auto& observer : engine_obvservers_) { + all_factors.Put(observer.first); + observer.second->OnFactorPresenceChecked(observer.first, true); + } + ExpectFactorAvailability(all_factors, AuthFactorsSet{}); + for (const auto& observer : engine_obvservers_) { + EXPECT_EQ(observer.second.get(), &owner_engine_observer_); + } + } + + void ExpectAllFactorsShutdown() { + for (const auto& engine : engines_) { + EXPECT_CALL(*engine.second, StopAuthFlow(_)) + .WillOnce(RunOnceCallback<0>(engine.first)); + } + } + + void ExpectAuthOnEngine(AshAuthFactor factor, AuthAttemptVector attempt) { + StrictMock<MockAuthFactorEngine>* engine = engines_[factor].get(); + + EXPECT_CALL(*engine, + StartAuthFlow(Eq(attempt.account), Eq(attempt.purpose), _)) + .WillOnce(Invoke( + [&, factor](AccountId, AuthPurpose, + AuthFactorEngine::FactorEngineObserver* observer) { + engine_obvservers_[factor] = observer; + })); + } + + StrictMock<MockAuthFactorEngine>* SetUpEngine(AshAuthFactor factor) { + engines_[factor] = std::make_unique<StrictMock<MockAuthFactorEngine>>(); + StrictMock<MockAuthFactorEngine>* engine = engines_[factor].get(); + + ExpectAuthOnEngine(factor, + AuthAttemptVector{account_, AuthPurpose::kLogin}); + + EXPECT_CALL(*engine, UpdateObserver(_)) + .Times(AnyNumber()) + .WillRepeatedly(Invoke( + [&, factor](AuthFactorEngine::FactorEngineObserver* observer) { + engine_obvservers_[factor] = observer; + })); + return engine; + } + + base::test::TaskEnvironment task_environment_{ + base::test::TaskEnvironment::TimeSource::MOCK_TIME}; + + AccountId account_; + std::unique_ptr<AuthPartsImpl> parts_; + StrictMock<MockVectorLifecycleOwner> owner_; + StrictMock<MockAuthFactorEngineObserver> owner_engine_observer_; + + base::flat_map<AshAuthFactor, + std::unique_ptr<StrictMock<MockAuthFactorEngine>>> + engines_; + base::flat_map<AshAuthFactor, + base::raw_ptr<AuthFactorEngine::FactorEngineObserver>> + engine_obvservers_; + AuthFactorsSet usable_factors_; + AuthFactorsSet failed_factors_; + + std::unique_ptr<AuthHubVectorLifecycle> lifecycle_; + + base::raw_ptr<AuthHubConnector> connector_; +}; + +// Standard init/shutdown flow. +TEST_F(AuthHubVectorLifecycleTest, SingleFactorAttemptStartCancel) { + auto* engine = SetUpEngine(kFactor); + InitLifecycle(); + + EXPECT_TRUE(lifecycle_->IsIdle()); + + AuthAttemptVector attempt{account_, AuthPurpose::kLogin}; + + // Start auth attempt, Lifecycle sets observer to engine. + lifecycle_->StartAttempt(attempt); + + EXPECT_FALSE(lifecycle_->IsIdle()); + + ExpectOwnerAttemptStartCalled(attempt); + + // Report that engine is ready. + engine_obvservers_[kFactor]->OnFactorPresenceChecked(kFactor, true); + + // Upon initialization Lifecycle should report usable factors, and + // update Observer to Owner for them. + ExpectFactorAvailability(AuthFactorsSet{kFactor}, AuthFactorsSet{}); + + EXPECT_EQ(engine_obvservers_[kFactor].get(), &owner_engine_observer_); + EXPECT_FALSE(lifecycle_->IsIdle()); + + Mock::VerifyAndClearExpectations(&owner_); + + AuthFactorEngine::ShutdownCallback callback; + EXPECT_CALL(*engine, StopAuthFlow(_)).WillOnce(MoveArg<0>(&callback)); + + // Upon attempt cancellation, Lifecycle should provide callback. + lifecycle_->CancelAttempt(); + + ASSERT_FALSE(callback.is_null()); + + EXPECT_CALL(owner_, OnAttemptFinished(Eq(attempt))); + EXPECT_CALL(owner_, OnIdle()); + + // Once engine finishes attempt cleanup, Lifecycle should notify + // the Owner. + std::move(callback).Run(kFactor); + + EXPECT_TRUE(lifecycle_->IsIdle()); +} + +TEST_F(AuthHubVectorLifecycleTest, FactorNotPresent) { + SetUpEngine(kFactor); + SetUpEngine(kSpecialFactor); + InitLifecycle(); + + EXPECT_TRUE(lifecycle_->IsIdle()); + + AuthAttemptVector attempt{account_, AuthPurpose::kLogin}; + // Start auth attempt, Lifecycle sets observer to engine. + lifecycle_->StartAttempt(attempt); + EXPECT_FALSE(lifecycle_->IsIdle()); + + ExpectOwnerAttemptStartCalled(attempt); + + engine_obvservers_[kFactor]->OnFactorPresenceChecked(kFactor, true); + engine_obvservers_[kSpecialFactor]->OnFactorPresenceChecked(kSpecialFactor, + false); + + // Upon initialization Lifecycle should report usable factors, and + // update Observer to Owner for them. + // Note that as kSpecialFactor is just not configured, it is not reported + // neither in `failed_factors` nor in `usable_factors`, it's observer is not + // changed. + + ExpectFactorAvailability(AuthFactorsSet{kFactor}, AuthFactorsSet{}); + + EXPECT_EQ(engine_obvservers_[kFactor].get(), &owner_engine_observer_); + EXPECT_NE(engine_obvservers_[kSpecialFactor].get(), &owner_engine_observer_); + EXPECT_FALSE(lifecycle_->IsIdle()); + + // Upon cleanup, non-present factor should still be asked + // to stop auth flow. + ExpectAllFactorsShutdown(); + + EXPECT_CALL(owner_, OnAttemptFinished(_)); + EXPECT_CALL(owner_, OnIdle()); + + lifecycle_->CancelAttempt(); +} + +TEST_F(AuthHubVectorLifecycleTest, FactorTimedOutDuringInit) { + SetUpEngine(kFactor); + auto* timeout_engine = SetUpEngine(kSpecialFactor); + InitLifecycle(); + + EXPECT_TRUE(lifecycle_->IsIdle()); + + AuthAttemptVector attempt{account_, AuthPurpose::kLogin}; + // Start auth attempt, Lifecycle sets observer to engine. + lifecycle_->StartAttempt(attempt); + EXPECT_FALSE(lifecycle_->IsIdle()); + + ExpectOwnerAttemptStartCalled(attempt); + + engine_obvservers_[kFactor]->OnFactorPresenceChecked(kFactor, true); + EXPECT_CALL(*timeout_engine, StartFlowTimedOut()); + + TriggerTimeout(); + + // Upon initialization Lifecycle should report usable and failed factors, and + // update Observer to Owner for usable ones. + ExpectFactorAvailability(AuthFactorsSet{kFactor}, + AuthFactorsSet{kSpecialFactor}); + + EXPECT_EQ(engine_obvservers_[kFactor].get(), &owner_engine_observer_); + EXPECT_NE(engine_obvservers_[kSpecialFactor].get(), &owner_engine_observer_); + EXPECT_FALSE(lifecycle_->IsIdle()); + + // Upon cleanup, timed-out factor should still be asked + // to stop auth flow. + ExpectAllFactorsShutdown(); + + EXPECT_CALL(owner_, OnAttemptFinished(_)); + EXPECT_CALL(owner_, OnIdle()); + + lifecycle_->CancelAttempt(); +} + +TEST_F(AuthHubVectorLifecycleTest, FactorCriticalErrorDuringInit) { + SetUpEngine(kFactor); + SetUpEngine(kSpecialFactor); + InitLifecycle(); + + EXPECT_TRUE(lifecycle_->IsIdle()); + + AuthAttemptVector attempt{account_, AuthPurpose::kLogin}; + // Start auth attempt, Lifecycle sets observer to engine. + lifecycle_->StartAttempt(attempt); + EXPECT_FALSE(lifecycle_->IsIdle()); + + ExpectOwnerAttemptStartCalled(attempt); + + engine_obvservers_[kFactor]->OnFactorPresenceChecked(kFactor, true); + engine_obvservers_[kFactor]->OnCriticalError(kSpecialFactor); + + // Upon initialization Lifecycle should report usable and failed factors, and + // update Observer to Owner for usable ones. + + ExpectFactorAvailability(AuthFactorsSet{kFactor}, + AuthFactorsSet{kSpecialFactor}); + + EXPECT_EQ(engine_obvservers_[kFactor].get(), &owner_engine_observer_); + EXPECT_NE(engine_obvservers_[kSpecialFactor].get(), &owner_engine_observer_); + EXPECT_FALSE(lifecycle_->IsIdle()); + + // Upon cleanup, failed factor should still be asked to stop auth flow. + ExpectAllFactorsShutdown(); + + EXPECT_CALL(owner_, OnAttemptFinished(_)); + EXPECT_CALL(owner_, OnIdle()); + + lifecycle_->CancelAttempt(); +} + +TEST_F(AuthHubVectorLifecycleTest, FactorTimedOutDuringShutdown) { + auto* engine = SetUpEngine(kFactor); + auto* timeout_engine = SetUpEngine(kSpecialFactor); + InitLifecycle(); + + AuthAttemptVector attempt{account_, AuthPurpose::kLogin}; + StartAttemptWithAllFactors(attempt); + + EXPECT_CALL(*engine, StopAuthFlow(_)).WillOnce(RunOnceCallback<0>(kFactor)); + AuthFactorEngine::ShutdownCallback callback; + EXPECT_CALL(*timeout_engine, StopAuthFlow(_)).WillOnce(MoveArg<0>(&callback)); + lifecycle_->CancelAttempt(); + + ASSERT_FALSE(callback.is_null()); + + EXPECT_CALL(owner_, OnAttemptFinished(_)); + EXPECT_CALL(owner_, OnIdle()); + EXPECT_CALL(*timeout_engine, StopFlowTimedOut()); + + TriggerTimeout(); +} + +TEST_F(AuthHubVectorLifecycleTest, SwitchAttemptDuringInit) { + auto* engine = SetUpEngine(kFactor); + InitLifecycle(); + + AuthAttemptVector attempt1{account_, AuthPurpose::kLogin}; + AuthAttemptVector attempt2{AccountId::FromUserEmail("user2@example.com"), + AuthPurpose::kLogin}; + + lifecycle_->StartAttempt(attempt1); + + EXPECT_CALL(*engine, StopAuthFlow(_)).WillOnce(RunOnceCallback<0>(kFactor)); + ExpectAuthOnEngine(kFactor, attempt2); + + lifecycle_->StartAttempt(attempt2); + // Now 1st attempt should be finished and 2nd attempt should take over. + engine_obvservers_[kFactor]->OnFactorPresenceChecked(kFactor, true); + + ExpectOwnerAttemptStartCalled(attempt2); + // Now the second attempt should be going. + engine_obvservers_[kFactor]->OnFactorPresenceChecked(kFactor, true); +} + +} // namespace ash
diff --git a/chromeos/ash/components/osauth/public/BUILD.gn b/chromeos/ash/components/osauth/public/BUILD.gn index a1fd21d..998c8c1 100644 --- a/chromeos/ash/components/osauth/public/BUILD.gn +++ b/chromeos/ash/components/osauth/public/BUILD.gn
@@ -22,5 +22,7 @@ "auth_parts.h", "auth_session_storage.h", "common_types.h", + "string_utils.cc", + "string_utils.h", ] }
diff --git a/chromeos/ash/components/osauth/public/auth_factor_engine.h b/chromeos/ash/components/osauth/public/auth_factor_engine.h index bc4e72f..ae3a2a5 100644 --- a/chromeos/ash/components/osauth/public/auth_factor_engine.h +++ b/chromeos/ash/components/osauth/public/auth_factor_engine.h
@@ -23,14 +23,15 @@ // giving them a chance to wait for underlying services to become ready. // * Once authentication attempt starts (for user/purpose), AuthHub // invokes `StartAuthFlow` on each factor engine to query if the factor -// is present for the user/purpose. +// is present for the user/purpose. Factors are started in `kDisabled` state +// and would be enabled by AuthHub once all factors are ready. // * If factor is not present, `StopAuthFlow` would eventually be called on // corresponding engine to release resources. // * If factor is present, AuthHub would check if there are any restrictions // on using this factor, by querying methods like `IsDisabledByPolicy`. // Once all restrictions are checked, factor might be disabled via calling -// `SetEnabled(false)` method. Disabled factor should not allow any -// authentication attempts. +// `SetUsageAllowed(kDisabled)` method. Disabled factor should not allow +// any authentication attempts. // * While authentication is active, factor engine should notify AuthHub // about any events that might change factor restrictions: policy changes, // factor lockout, etc. @@ -63,6 +64,7 @@ // When notifying methods, engine should identify itself by // providing `factor` value same as one returned by `GetFactor()`. class FactorEngineObserver { + public: virtual ~FactorEngineObserver() = default; // Notify AuthHub about result of factor presence check. @@ -123,14 +125,15 @@ AuthPurpose purpose, FactorEngineObserver* observer) = 0; + // The way for the owning object to change the object that would + // be notified about engine events. + // All events after this call should be sent using new `observer`. + virtual void UpdateObserver(FactorEngineObserver* observer) = 0; + // After this call Engine should stop notifying an `observer` set in // `StartAttempt`, and release any resources allocated as a result of // starting attempt. - // User/purpose are provided for convenience, they would match - // the ones passed in `StartAuthFlow` call. - virtual void StopAuthFlow(const AccountId& account, - AuthPurpose purpose, - ShutdownCallback callback) = 0; + virtual void StopAuthFlow(ShutdownCallback callback) = 0; // Used by AuthHub to control if authentication attempts can be performed // by the engine. Most relevant for factors like fingerprint that can not @@ -158,6 +161,8 @@ // timeout during relevant lifecycle operations. virtual void InitializationTimedOut() {} virtual void ShutdownTimedOut() {} + virtual void StartFlowTimedOut() {} + virtual void StopFlowTimedOut() {} }; } // namespace ash
diff --git a/chromeos/ash/components/osauth/public/auth_factor_status_consumer.h b/chromeos/ash/components/osauth/public/auth_factor_status_consumer.h index 2744f39..e818993 100644 --- a/chromeos/ash/components/osauth/public/auth_factor_status_consumer.h +++ b/chromeos/ash/components/osauth/public/auth_factor_status_consumer.h
@@ -21,13 +21,14 @@ enum class COMPONENT_EXPORT(CHROMEOS_ASH_COMPONENTS_OSAUTH) AuthFactorState { kCheckingForPresence, kEngineError, + kNoFactor, kFactorReady, kDisabledByPolicy, kDisabledStrongFactorRequired, kLockedOutIndefinite, kLockedOutTemporary, - kDisabledParallelAttempt, kDisabledFactorSpecific, + kDisabledParallelAttempt, kOngoingAttempt, kMaxValue = kOngoingAttempt, };
diff --git a/chromeos/ash/components/osauth/public/auth_hub.h b/chromeos/ash/components/osauth/public/auth_hub.h index 3afd7d38..1b17b925c7 100644 --- a/chromeos/ash/components/osauth/public/auth_hub.h +++ b/chromeos/ash/components/osauth/public/auth_hub.h
@@ -9,9 +9,12 @@ #include "base/functional/callback.h" #include "chromeos/ash/components/osauth/public/auth_parts.h" #include "chromeos/ash/components/osauth/public/common_types.h" +#include "components/account_id/account_id.h" namespace ash { +class AuthAttemptConsumer; + // Main entry point for ChromeOS local Authentication. class COMPONENT_EXPORT(CHROMEOS_ASH_COMPONENTS_OSAUTH) AuthHub { public: @@ -28,10 +31,16 @@ // * Until ChromeOS multi-profile is made obsolette by Lacros // AuthHub would need to go `kInSession`->`kLoginScreen`->`kInSession` // when showing/hiding "Add user" screen. + // This method should not be called from other AuthHub callbacks + // to prevent reenterant loops. virtual void InitializeForMode(AuthHubMode target) = 0; virtual void EnsureInitialized(base::OnceClosure on_initialized) = 0; + virtual void StartAuthentication(AccountId accountId, + AuthPurpose purpose, + AuthAttemptConsumer* consumer) = 0; + virtual ~AuthHub() = default; };
diff --git a/chromeos/ash/components/osauth/public/string_utils.cc b/chromeos/ash/components/osauth/public/string_utils.cc new file mode 100644 index 0000000..6f1f715d --- /dev/null +++ b/chromeos/ash/components/osauth/public/string_utils.cc
@@ -0,0 +1,51 @@ +// Copyright 2023 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chromeos/ash/components/osauth/public/string_utils.h" + +namespace ash { + +std::ostream& operator<<(std::ostream& out, AuthPurpose purpose) { + switch (purpose) { +#define PRINT(s) \ + case AuthPurpose::k##s: \ + return out << #s; + PRINT(Login) + PRINT(AuthSettings) + PRINT(ScreenUnlock) + PRINT(WebAuthN) + PRINT(UserVerification) +#undef PRINT + } +} + +std::ostream& operator<<(std::ostream& out, AshAuthFactor factor) { + switch (factor) { +#define PRINT(s) \ + case AshAuthFactor::k##s: \ + return out << #s; + PRINT(GaiaPassword) + PRINT(CryptohomePin) + PRINT(SmartCard) + PRINT(SmartUnlock) + PRINT(Recovery) + PRINT(LegacyPin) + PRINT(LegacyFingerprint) +#undef PRINT + } +} + +std::ostream& operator<<(std::ostream& out, AuthHubMode mode) { + switch (mode) { +#define PRINT(s) \ + case AuthHubMode::k##s: \ + return out << #s; + PRINT(None) + PRINT(LoginScreen) + PRINT(InSession) +#undef PRINT + } +} + +} // namespace ash
diff --git a/chromeos/ash/components/osauth/public/string_utils.h b/chromeos/ash/components/osauth/public/string_utils.h new file mode 100644 index 0000000..b3d5477 --- /dev/null +++ b/chromeos/ash/components/osauth/public/string_utils.h
@@ -0,0 +1,27 @@ +// Copyright 2023 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROMEOS_ASH_COMPONENTS_OSAUTH_PUBLIC_STRING_UTILS_H_ +#define CHROMEOS_ASH_COMPONENTS_OSAUTH_PUBLIC_STRING_UTILS_H_ + +#include <ostream> + +#include "base/component_export.h" +#include "chromeos/ash/components/osauth/public/common_types.h" + +namespace ash { + +// Output operators for logging. +COMPONENT_EXPORT(CHROMEOS_ASH_COMPONENTS_OSAUTH) +std::ostream& operator<<(std::ostream& out, AuthPurpose purpose); + +COMPONENT_EXPORT(CHROMEOS_ASH_COMPONENTS_OSAUTH) +std::ostream& operator<<(std::ostream& out, AshAuthFactor factor); + +COMPONENT_EXPORT(CHROMEOS_ASH_COMPONENTS_OSAUTH) +std::ostream& operator<<(std::ostream& out, AuthHubMode mode); + +} // namespace ash + +#endif // CHROMEOS_ASH_COMPONENTS_OSAUTH_PUBLIC_STRING_UTILS_H_
diff --git a/chromeos/ash/components/osauth/test_support/BUILD.gn b/chromeos/ash/components/osauth/test_support/BUILD.gn index 5cce5006..71a19bc 100644 --- a/chromeos/ash/components/osauth/test_support/BUILD.gn +++ b/chromeos/ash/components/osauth/test_support/BUILD.gn
@@ -20,9 +20,13 @@ "//testing/gtest", ] sources = [ + "mock_auth_attempt_consumer.cc", + "mock_auth_attempt_consumer.h", "mock_auth_factor_engine.cc", "mock_auth_factor_engine.h", "mock_auth_factor_engine_factory.cc", "mock_auth_factor_engine_factory.h", + "mock_auth_factor_status_consumer.cc", + "mock_auth_factor_status_consumer.h", ] }
diff --git a/chromeos/ash/components/osauth/test_support/mock_auth_attempt_consumer.cc b/chromeos/ash/components/osauth/test_support/mock_auth_attempt_consumer.cc new file mode 100644 index 0000000..99bd91a --- /dev/null +++ b/chromeos/ash/components/osauth/test_support/mock_auth_attempt_consumer.cc
@@ -0,0 +1,13 @@ +// Copyright 2023 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chromeos/ash/components/osauth/test_support/mock_auth_attempt_consumer.h" + +namespace ash { + +MockAuthAttemptConsumer::MockAuthAttemptConsumer() = default; + +MockAuthAttemptConsumer::~MockAuthAttemptConsumer() = default; + +} // namespace ash
diff --git a/chromeos/ash/components/osauth/test_support/mock_auth_attempt_consumer.h b/chromeos/ash/components/osauth/test_support/mock_auth_attempt_consumer.h new file mode 100644 index 0000000..31d7514 --- /dev/null +++ b/chromeos/ash/components/osauth/test_support/mock_auth_attempt_consumer.h
@@ -0,0 +1,36 @@ +// Copyright 2023 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROMEOS_ASH_COMPONENTS_OSAUTH_TEST_SUPPORT_MOCK_AUTH_ATTEMPT_CONSUMER_H_ +#define CHROMEOS_ASH_COMPONENTS_OSAUTH_TEST_SUPPORT_MOCK_AUTH_ATTEMPT_CONSUMER_H_ + +#include "chromeos/ash/components/osauth/public/auth_attempt_consumer.h" +#include "testing/gmock/include/gmock/gmock.h" + +namespace ash { + +class MockAuthAttemptConsumer : public AuthAttemptConsumer { + public: + MockAuthAttemptConsumer(); + MockAuthAttemptConsumer(const MockAuthAttemptConsumer&) = delete; + MockAuthAttemptConsumer& operator=(const MockAuthAttemptConsumer&) = delete; + ~MockAuthAttemptConsumer() override; + + MOCK_METHOD(void, OnUserAuthAttemptRejected, (), (override)); + MOCK_METHOD(void, + OnUserAuthAttemptConfirmed, + (AuthHubConnector*, raw_ptr<AuthFactorStatusConsumer>&), + (override)); + MOCK_METHOD(void, OnAccountNotFound, (), (override)); + MOCK_METHOD(void, OnUserAuthAttemptCancelled, (), (override)); + MOCK_METHOD(void, OnFactorAttemptFailed, (AshAuthFactor), (override)); + MOCK_METHOD(void, + OnUserAuthSuccess, + (AshAuthFactor, const AuthProofToken&), + (override)); +}; + +} // namespace ash + +#endif // CHROMEOS_ASH_COMPONENTS_OSAUTH_TEST_SUPPORT_MOCK_AUTH_ATTEMPT_CONSUMER_H_
diff --git a/chromeos/ash/components/osauth/test_support/mock_auth_factor_engine.cc b/chromeos/ash/components/osauth/test_support/mock_auth_factor_engine.cc index 5098de1..2b205fc 100644 --- a/chromeos/ash/components/osauth/test_support/mock_auth_factor_engine.cc +++ b/chromeos/ash/components/osauth/test_support/mock_auth_factor_engine.cc
@@ -4,12 +4,14 @@ #include "chromeos/ash/components/osauth/test_support/mock_auth_factor_engine.h" -#include <memory> - namespace ash { MockAuthFactorEngine::MockAuthFactorEngine() = default; MockAuthFactorEngine::~MockAuthFactorEngine() = default; +MockAuthFactorEngineObserver::MockAuthFactorEngineObserver() = default; + +MockAuthFactorEngineObserver::~MockAuthFactorEngineObserver() = default; + } // namespace ash
diff --git a/chromeos/ash/components/osauth/test_support/mock_auth_factor_engine.h b/chromeos/ash/components/osauth/test_support/mock_auth_factor_engine.h index 7e1596c..3459ba6 100644 --- a/chromeos/ash/components/osauth/test_support/mock_auth_factor_engine.h +++ b/chromeos/ash/components/osauth/test_support/mock_auth_factor_engine.h
@@ -24,16 +24,39 @@ StartAuthFlow, (const AccountId&, AuthPurpose, FactorEngineObserver*), (override)); - MOCK_METHOD(void, - StopAuthFlow, - (const AccountId&, AuthPurpose, ShutdownCallback), - (override)); + MOCK_METHOD(void, UpdateObserver, (FactorEngineObserver*), (override)); + MOCK_METHOD(void, StopAuthFlow, (ShutdownCallback), (override)); MOCK_METHOD(void, SetUsageAllowed, (UsageAllowed), (override)); MOCK_METHOD(bool, IsDisabledByPolicy, (), (override)); MOCK_METHOD(bool, IsLockedOut, (), (override)); MOCK_METHOD(bool, IsOrientationRestricted, (), (override)); MOCK_METHOD(void, InitializationTimedOut, (), (override)); MOCK_METHOD(void, ShutdownTimedOut, (), (override)); + MOCK_METHOD(void, StartFlowTimedOut, (), (override)); + MOCK_METHOD(void, StopFlowTimedOut, (), (override)); +}; + +class MockAuthFactorEngineObserver + : public AuthFactorEngine::FactorEngineObserver { + public: + MockAuthFactorEngineObserver(); + MockAuthFactorEngineObserver(const MockAuthFactorEngineObserver&) = delete; + MockAuthFactorEngineObserver& operator=(const MockAuthFactorEngineObserver&) = + delete; + ~MockAuthFactorEngineObserver() override; + + MOCK_METHOD(void, OnFactorPresenceChecked, (AshAuthFactor, bool), (override)); + MOCK_METHOD(void, OnFactorAttempt, (AshAuthFactor), (override)); + MOCK_METHOD(void, OnFactorAttemptResult, (AshAuthFactor, bool), (override)); + + MOCK_METHOD(void, OnPolicyChanged, (AshAuthFactor), (override)); + MOCK_METHOD(void, OnLockoutChanged, (AshAuthFactor), (override)); + MOCK_METHOD(void, + OnOrientationRestrictionsChanged, + (AshAuthFactor), + (override)); + MOCK_METHOD(void, OnCriticalError, (AshAuthFactor), (override)); + MOCK_METHOD(void, OnFactorCustomSignal, (AshAuthFactor), (override)); }; } // namespace ash
diff --git a/chromeos/ash/components/osauth/test_support/mock_auth_factor_status_consumer.cc b/chromeos/ash/components/osauth/test_support/mock_auth_factor_status_consumer.cc new file mode 100644 index 0000000..03fbeba --- /dev/null +++ b/chromeos/ash/components/osauth/test_support/mock_auth_factor_status_consumer.cc
@@ -0,0 +1,13 @@ +// Copyright 2023 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chromeos/ash/components/osauth/test_support/mock_auth_factor_status_consumer.h" + +namespace ash { + +MockAuthFactorStatusConsumer::MockAuthFactorStatusConsumer() = default; + +MockAuthFactorStatusConsumer::~MockAuthFactorStatusConsumer() = default; + +} // namespace ash
diff --git a/chromeos/ash/components/osauth/test_support/mock_auth_factor_status_consumer.h b/chromeos/ash/components/osauth/test_support/mock_auth_factor_status_consumer.h new file mode 100644 index 0000000..f6a213e --- /dev/null +++ b/chromeos/ash/components/osauth/test_support/mock_auth_factor_status_consumer.h
@@ -0,0 +1,34 @@ +// Copyright 2023 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROMEOS_ASH_COMPONENTS_OSAUTH_TEST_SUPPORT_MOCK_AUTH_FACTOR_STATUS_CONSUMER_H_ +#define CHROMEOS_ASH_COMPONENTS_OSAUTH_TEST_SUPPORT_MOCK_AUTH_FACTOR_STATUS_CONSUMER_H_ + +#include "chromeos/ash/components/osauth/public/auth_factor_status_consumer.h" +#include "testing/gmock/include/gmock/gmock.h" + +namespace ash { + +class MockAuthFactorStatusConsumer : public AuthFactorStatusConsumer { + public: + MockAuthFactorStatusConsumer(); + MockAuthFactorStatusConsumer(const MockAuthFactorStatusConsumer&) = delete; + MockAuthFactorStatusConsumer& operator=(const MockAuthFactorStatusConsumer&) = + delete; + ~MockAuthFactorStatusConsumer() override; + + MOCK_METHOD(void, + InitializeUi, + (AuthFactorsSet, AuthHubConnector*), + (override)); + MOCK_METHOD(void, OnFactorListChanged, (FactorsStatusMap), (override)); + MOCK_METHOD(void, OnFactorStatusesChanged, (FactorsStatusMap), (override)); + MOCK_METHOD(void, OnFactorAuthFailure, (AshAuthFactor), (override)); + MOCK_METHOD(void, OnFactorAuthSuccess, (AshAuthFactor), (override)); + MOCK_METHOD(void, OnEndAuthentication, (), (override)); +}; + +} // namespace ash + +#endif // CHROMEOS_ASH_COMPONENTS_OSAUTH_TEST_SUPPORT_MOCK_AUTH_FACTOR_STATUS_CONSUMER_H_
diff --git a/chromeos/ash/components/proximity_auth/BUILD.gn b/chromeos/ash/components/proximity_auth/BUILD.gn index 0c57e65..584df23 100644 --- a/chromeos/ash/components/proximity_auth/BUILD.gn +++ b/chromeos/ash/components/proximity_auth/BUILD.gn
@@ -16,7 +16,6 @@ "metrics.cc", "metrics.h", "proximity_auth_client.h", - "proximity_auth_pref_manager.h", "proximity_auth_pref_names.cc", "proximity_auth_pref_names.h", "proximity_auth_profile_pref_manager.cc",
diff --git a/chromeos/ash/components/proximity_auth/mock_proximity_auth_client.h b/chromeos/ash/components/proximity_auth/mock_proximity_auth_client.h index 1b24443..36ddeba4 100644 --- a/chromeos/ash/components/proximity_auth/mock_proximity_auth_client.h +++ b/chromeos/ash/components/proximity_auth/mock_proximity_auth_client.h
@@ -28,7 +28,6 @@ MOCK_METHOD1(FinalizeUnlock, void(bool success)); MOCK_METHOD1(FinalizeSignin, void(const std::string& secret)); MOCK_CONST_METHOD0(GetAuthenticatedUsername, std::string(void)); - MOCK_METHOD0(GetPrefManager, ProximityAuthPrefManager*(void)); }; } // namespace proximity_auth
diff --git a/chromeos/ash/components/proximity_auth/proximity_auth_client.h b/chromeos/ash/components/proximity_auth/proximity_auth_client.h index 2d8c25b..a02697c 100644 --- a/chromeos/ash/components/proximity_auth/proximity_auth_client.h +++ b/chromeos/ash/components/proximity_auth/proximity_auth_client.h
@@ -6,7 +6,6 @@ #define CHROMEOS_ASH_COMPONENTS_PROXIMITY_AUTH_PROXIMITY_AUTH_CLIENT_H_ #include "ash/public/cpp/smartlock_state.h" -#include "chromeos/ash/components/proximity_auth/proximity_auth_pref_manager.h" #include "chromeos/ash/services/device_sync/proto/cryptauth_api.pb.h" namespace proximity_auth { @@ -26,9 +25,6 @@ // the screen is unlocked; otherwise, the auth attempt is rejected. An auth // attempt must be in progress before calling this function. virtual void FinalizeUnlock(bool success) = 0; - - // Returns the manager responsible for EasyUnlock preferences. - virtual ProximityAuthPrefManager* GetPrefManager() = 0; }; } // namespace proximity_auth
diff --git a/chromeos/ash/components/proximity_auth/proximity_auth_pref_manager.h b/chromeos/ash/components/proximity_auth/proximity_auth_pref_manager.h deleted file mode 100644 index ace8f18..0000000 --- a/chromeos/ash/components/proximity_auth/proximity_auth_pref_manager.h +++ /dev/null
@@ -1,58 +0,0 @@ -// Copyright 2015 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef CHROMEOS_ASH_COMPONENTS_PROXIMITY_AUTH_PROXIMITY_AUTH_PREF_MANAGER_H_ -#define CHROMEOS_ASH_COMPONENTS_PROXIMITY_AUTH_PROXIMITY_AUTH_PREF_MANAGER_H_ - -#include <stdint.h> - -namespace proximity_auth { - -// Interface for setting and getting persistent user preferences. There is an -// implementation for a logged in profile and the device local state when the -// user is logged out. -// TODO(b/227674947): Now that Sign in with Smart Lock is removed, this class is -// no longer needed before a user logs in. ProximityAuthPrefManager and -// ProximityAuthProfilePrefManager can be combined into one class. -class ProximityAuthPrefManager { - public: - ProximityAuthPrefManager() {} - - ProximityAuthPrefManager(const ProximityAuthPrefManager&) = delete; - ProximityAuthPrefManager& operator=(const ProximityAuthPrefManager&) = delete; - - virtual ~ProximityAuthPrefManager() {} - - // Returns true if EasyUnlock is allowed. Note: there is no corresponding - // setter because this pref is pushed through an enterprise policy. Note that - // this pref completely disables EasyUnlock, hiding even the UI. See - // IsEasyUnlockEnabled() for comparison. - virtual bool IsEasyUnlockAllowed() const = 0; - - // Returns true if EasyUnlock is enabled, i.e. the user has gone through the - // setup flow and has at least one phone as an unlock key. Compare to - // IsEasyUnlockAllowed(), which completely removes the feature from existence. - virtual void SetIsEasyUnlockEnabled(bool is_easy_unlock_enabled) const = 0; - virtual bool IsEasyUnlockEnabled() const = 0; - - // Returns true if EasyUnlock has ever been enabled, regardless of whether the - // feature is currently enabled or disabled. Compare to IsEasyUnlockEnabled(), - // which flags the latter case. - virtual void SetEasyUnlockEnabledStateSet() const = 0; - virtual bool IsEasyUnlockEnabledStateSet() const = 0; - - // Setter and getter for the timestamp of the last time the promotion was - // shown to the user. - virtual void SetLastPromotionCheckTimestampMs(int64_t timestamp_ms) = 0; - virtual int64_t GetLastPromotionCheckTimestampMs() const = 0; - - // Setter and getter for the number of times the promotion was shown to the - // user. - virtual void SetPromotionShownCount(int count) = 0; - virtual int GetPromotionShownCount() const = 0; -}; - -} // namespace proximity_auth - -#endif // CHROMEOS_ASH_COMPONENTS_PROXIMITY_AUTH_PROXIMITY_AUTH_PREF_MANAGER_H_
diff --git a/chromeos/ash/components/proximity_auth/proximity_auth_profile_pref_manager.h b/chromeos/ash/components/proximity_auth/proximity_auth_profile_pref_manager.h index 4492d039..116c72cd 100644 --- a/chromeos/ash/components/proximity_auth/proximity_auth_profile_pref_manager.h +++ b/chromeos/ash/components/proximity_auth/proximity_auth_profile_pref_manager.h
@@ -7,7 +7,6 @@ #include "base/memory/raw_ptr.h" #include "base/memory/weak_ptr.h" -#include "chromeos/ash/components/proximity_auth/proximity_auth_pref_manager.h" #include "chromeos/ash/services/multidevice_setup/public/cpp/multidevice_setup_client.h" #include "components/account_id/account_id.h" @@ -19,11 +18,10 @@ namespace proximity_auth { -// Implementation of ProximityAuthPrefManager for a logged in session with a -// user profile. +// Interface for setting and getting persistent user preferences for a logged in +// session with a user profile. class ProximityAuthProfilePrefManager - : public ProximityAuthPrefManager, - public ash::multidevice_setup::MultiDeviceSetupClient::Observer { + : public ash::multidevice_setup::MultiDeviceSetupClient::Observer { public: // Creates a pref manager backed by preferences registered in // |pref_service| (persistent across browser restarts). |pref_service| should @@ -43,16 +41,33 @@ // Registers the prefs used by this class to the given |pref_service|. static void RegisterPrefs(user_prefs::PrefRegistrySyncable* registry); - // ProximityAuthPrefManager: - bool IsEasyUnlockAllowed() const override; - void SetIsEasyUnlockEnabled(bool is_easy_unlock_enabled) const override; - bool IsEasyUnlockEnabled() const override; - void SetEasyUnlockEnabledStateSet() const override; - bool IsEasyUnlockEnabledStateSet() const override; - void SetLastPromotionCheckTimestampMs(int64_t timestamp_ms) override; - int64_t GetLastPromotionCheckTimestampMs() const override; - void SetPromotionShownCount(int count) override; - int GetPromotionShownCount() const override; + // Returns true if EasyUnlock is allowed. Note: there is no corresponding + // setter because this pref is pushed through an enterprise policy. Note that + // this pref completely disables EasyUnlock, hiding even the UI. See + // IsEasyUnlockEnabled() for comparison. + bool IsEasyUnlockAllowed() const; + + // Returns true if EasyUnlock is enabled, i.e. the user has gone through the + // setup flow and has at least one phone as an unlock key. Compare to + // IsEasyUnlockAllowed(), which completely removes the feature from existence. + void SetIsEasyUnlockEnabled(bool is_easy_unlock_enabled) const; + bool IsEasyUnlockEnabled() const; + + // Returns true if EasyUnlock has ever been enabled, regardless of whether the + // feature is currently enabled or disabled. Compare to IsEasyUnlockEnabled(), + // which flags the latter case. + void SetEasyUnlockEnabledStateSet() const; + bool IsEasyUnlockEnabledStateSet() const; + + // Setter and getter for the timestamp of the last time the promotion was + // shown to the user. + void SetLastPromotionCheckTimestampMs(int64_t timestamp_ms); + int64_t GetLastPromotionCheckTimestampMs() const; + + // Setter and getter for the number of times the promotion was shown to the + // user. + void SetPromotionShownCount(int count); + int GetPromotionShownCount() const; // ash::multidevice_setup::MultiDeviceSetupClient::Observer: void OnFeatureStatesChanged(
diff --git a/chromeos/ash/components/proximity_auth/proximity_auth_system_unittest.cc b/chromeos/ash/components/proximity_auth/proximity_auth_system_unittest.cc index 1479993..8fda5036 100644 --- a/chromeos/ash/components/proximity_auth/proximity_auth_system_unittest.cc +++ b/chromeos/ash/components/proximity_auth/proximity_auth_system_unittest.cc
@@ -101,7 +101,7 @@ TestableProximityAuthSystem( ash::secure_channel::SecureChannelClient* secure_channel_client, std::unique_ptr<UnlockManager> unlock_manager, - ProximityAuthPrefManager* pref_manager) + ProximityAuthProfilePrefManager* pref_manager) : ProximityAuthSystem(secure_channel_client, std::move(unlock_manager)), life_cycle_(nullptr) {}
diff --git a/chromeos/ui/frame/caption_buttons/frame_caption_button_container_view.cc b/chromeos/ui/frame/caption_buttons/frame_caption_button_container_view.cc index 747fc38..b92a221 100644 --- a/chromeos/ui/frame/caption_buttons/frame_caption_button_container_view.cc +++ b/chromeos/ui/frame/caption_buttons/frame_caption_button_container_view.cc
@@ -10,11 +10,9 @@ #include <tuple> #include "base/command_line.h" -#include "base/i18n/rtl.h" #include "base/memory/raw_ptr.h" #include "base/metrics/histogram_macros.h" #include "base/metrics/user_metrics.h" -#include "chromeos/constants/chromeos_features.h" #include "chromeos/strings/grit/chromeos_strings.h" #include "chromeos/ui/base/display_util.h" #include "chromeos/ui/base/tablet_state.h" @@ -40,11 +38,9 @@ #include "ui/gfx/canvas.h" #include "ui/gfx/geometry/insets.h" #include "ui/gfx/geometry/point.h" -#include "ui/gfx/geometry/size.h" #include "ui/gfx/vector_icon_types.h" #include "ui/strings/grit/ui_strings.h" // Accessibility names #include "ui/views/background.h" -#include "ui/views/border.h" #include "ui/views/layout/box_layout.h" #include "ui/views/widget/widget.h" #include "ui/views/widget/widget_delegate.h" @@ -428,22 +424,7 @@ menu_button_->SetPreferredSize(size); minimize_button_->SetPreferredSize(size); size_button_->SetPreferredSize(size); - if (features::IsJellyrollEnabled()) { - // When feature Jellyroll is enabled, make the target width of close button - // 8 DIP wider on the right side than other caption buttons. - constexpr int kExtraTargetSpaceForCloseButton = 8; - close_button_->SetPreferredSize(gfx::Size( - size.width() + kExtraTargetSpaceForCloseButton, size.height())); - // Since we want the space between the caption buttons to remain the same, - // the extra space for the close button should be added to the right side of - // it if RTL is disabled, otherwise the extra space should be added to the - // left side. - close_button_->SetBorder(views::CreateEmptyBorder(gfx::Insets::TLBR( - 0, base::i18n::IsRTL() ? kExtraTargetSpaceForCloseButton : 0, 0, - base::i18n::IsRTL() ? 0 : kExtraTargetSpaceForCloseButton))); - } else { - close_button_->SetPreferredSize(size); - } + close_button_->SetPreferredSize(size); SetMinimumCrossAxisSize(size.height()); }
diff --git a/components/browser_ui/styles/android/java/res/values-night/colors.xml b/components/browser_ui/styles/android/java/res/values-night/colors.xml index bdcdb30..b74f81b 100644 --- a/components/browser_ui/styles/android/java/res/values-night/colors.xml +++ b/components/browser_ui/styles/android/java/res/values-night/colors.xml
@@ -20,5 +20,4 @@ <color name="empty_state_icon_bg_color">@color/material_primary_20</color> <color name="empty_state_icon_bg_background_color">@color/material_primary_10</color> <color name="empty_state_icon_bg_foreground_color">@color/material_primary_20</color> - <color name="empty_state_icon_tabswitcher_bg_color">@macro/default_bg_color_elev_0</color> </resources>
diff --git a/components/browser_ui/styles/android/java/res/values/colors.xml b/components/browser_ui/styles/android/java/res/values/colors.xml index c4bf1308..2b1fb42 100644 --- a/components/browser_ui/styles/android/java/res/values/colors.xml +++ b/components/browser_ui/styles/android/java/res/values/colors.xml
@@ -57,5 +57,4 @@ <color name="empty_state_icon_bg_background_color">@color/material_primary_95</color> <color name="empty_state_icon_bg_foreground_color">@color/material_primary_90</color> <color name="empty_state_icon_color">@color/material_primary_40</color> - <color name="empty_state_icon_tabswitcher_bg_color">@color/material_primary_95</color> </resources>
diff --git a/components/exo/wayland/fuzzer/harness.cc.tmpl b/components/exo/wayland/fuzzer/harness.cc.tmpl index ddcd0ce..e672b29 100644 --- a/components/exo/wayland/fuzzer/harness.cc.tmpl +++ b/components/exo/wayland/fuzzer/harness.cc.tmpl
@@ -177,11 +177,16 @@ } Harness::~Harness() { - for (auto ifc : wl_display_list_) { - if (ifc) { - wl_display_disconnect(ifc); + {% for interface in interfaces %} + for (auto ifc : {{interface.name}}_list_) { + if (ifc) + {% if interface.name == "wl_display" %} + wl_display_disconnect(ifc); + {% else %} + free(ifc); + {% endif %} } - } + {% endfor %} } void Harness::Run(const actions::actions& all_steps) {
diff --git a/components/feedback/redaction_tool/redaction_tool.cc b/components/feedback/redaction_tool/redaction_tool.cc index 07d1950..814ac96 100644 --- a/components/feedback/redaction_tool/redaction_tool.cc +++ b/components/feedback/redaction_tool/redaction_tool.cc
@@ -876,7 +876,7 @@ // Timestamps in ms have a surprisingly high number of false positives. // Also log entries but those usually only match if there are several spaces // tying unrelated numbers together. - if (post_sequence.contains("ms")) { + if (post_sequence.find("ms") != re2::StringPiece::npos) { RecordCreditCardRedactionHistogram(CreditCardDetection::kTimestamp); result.append(sequence.data(), sequence.size()); result.append(post_sequence.data(), post_sequence.size()); @@ -1105,7 +1105,7 @@ bool IsUrlExempt(re2::StringPiece url, const char* const* first_party_extension_ids) { // We do not exempt anything with a query parameter. - if (url.contains("?")) { + if (url.find("?") != re2::StringPiece::npos) { return false; }
diff --git a/components/metrics/structured/BUILD.gn b/components/metrics/structured/BUILD.gn index aa6c083..f08d1d12 100644 --- a/components/metrics/structured/BUILD.gn +++ b/components/metrics/structured/BUILD.gn
@@ -16,6 +16,8 @@ "key_data.h", "persistent_proto.cc", "persistent_proto.h", + "reporting/structured_metrics_log_metrics.cc", + "reporting/structured_metrics_log_metrics.h", "reporting/structured_metrics_reporting_service.cc", "reporting/structured_metrics_reporting_service.h", "structured_metrics_prefs.cc",
diff --git a/components/metrics/structured/reporting/structured_metrics_log_metrics.cc b/components/metrics/structured/reporting/structured_metrics_log_metrics.cc new file mode 100644 index 0000000..eb30779 --- /dev/null +++ b/components/metrics/structured/reporting/structured_metrics_log_metrics.cc
@@ -0,0 +1,29 @@ +// Copyright 2023 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "components/metrics/structured/reporting/structured_metrics_log_metrics.h" + +#include "base/metrics/histogram_functions.h" + +namespace metrics::structured::reporting { +void StructuredMetricsLogMetrics::RecordCompressionRatio(size_t compressed_size, + size_t original_size) { + CHECK(original_size != 0); + double ratio = static_cast<double>(compressed_size) / original_size; + base::UmaHistogramPercentage("StructuredMetrics.LogStore.CompressionRatio", + static_cast<int>(100 * ratio)); +} + +void StructuredMetricsLogMetrics::RecordDroppedLogSize(size_t size) { + const size_t size_kb = size / 1024; + base::UmaHistogramCounts10000("StructuredMetrics.LogStore.DroppedSize", + size_kb); +} + +void StructuredMetricsLogMetrics::RecordDroppedLogsNum(int dropped_logs_num) { + base::UmaHistogramCounts100000("StructuredMetrics.LogStore.Dropped", + dropped_logs_num); +} + +} // namespace metrics::structured::reporting
diff --git a/components/metrics/structured/reporting/structured_metrics_log_metrics.h b/components/metrics/structured/reporting/structured_metrics_log_metrics.h new file mode 100644 index 0000000..14532b8 --- /dev/null +++ b/components/metrics/structured/reporting/structured_metrics_log_metrics.h
@@ -0,0 +1,28 @@ +// Copyright 2023 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef COMPONENTS_METRICS_STRUCTURED_REPORTING_STRUCTURED_METRICS_LOG_METRICS_H_ +#define COMPONENTS_METRICS_STRUCTURED_REPORTING_STRUCTURED_METRICS_LOG_METRICS_H_ + +#include "components/metrics/unsent_log_store_metrics.h" + +namespace metrics::structured::reporting { + +class StructuredMetricsLogMetrics : public UnsentLogStoreMetrics { + public: + StructuredMetricsLogMetrics() = default; + + ~StructuredMetricsLogMetrics() override = default; + + void RecordCompressionRatio(size_t compressed_size, + size_t original_size) override; + + void RecordDroppedLogSize(size_t size) override; + + void RecordDroppedLogsNum(int dropped_logs_num) override; +}; + +} // namespace metrics::structured::reporting + +#endif // COMPONENTS_METRICS_STRUCTURED_REPORTING_STRUCTURED_METRICS_LOG_METRICS_H_
diff --git a/components/metrics/structured/reporting/structured_metrics_reporting_service.cc b/components/metrics/structured/reporting/structured_metrics_reporting_service.cc index 896a9f6..671c127e 100644 --- a/components/metrics/structured/reporting/structured_metrics_reporting_service.cc +++ b/components/metrics/structured/reporting/structured_metrics_reporting_service.cc
@@ -5,8 +5,8 @@ #include "components/metrics/structured/reporting/structured_metrics_reporting_service.h" #include "base/metrics/histogram_functions.h" #include "components/metrics/metrics_service_client.h" +#include "components/metrics/structured/reporting/structured_metrics_log_metrics.h" #include "components/metrics/structured/structured_metrics_prefs.h" -#include "components/metrics/unsent_log_store_metrics_impl.h" #include "components/metrics/url_constants.h" #include "components/prefs/pref_registry_simple.h" @@ -19,7 +19,7 @@ local_state, storage_limits.max_log_size, /*logs_event_manager=*/nullptr), - log_store_(std::make_unique<metrics::UnsentLogStoreMetricsImpl>(), + log_store_(std::make_unique<StructuredMetricsLogMetrics>(), local_state, prefs::kLogStoreName, /* metadata_pref_name=*/nullptr,
diff --git a/components/ntp_tiles/features.cc b/components/ntp_tiles/features.cc index 2604911..0d1ee2bf 100644 --- a/components/ntp_tiles/features.cc +++ b/components/ntp_tiles/features.cc
@@ -25,23 +25,23 @@ "UsePopularSitesSuggestions", base::FEATURE_ENABLED_BY_DEFAULT); -BASE_FEATURE(kNewTabPageRetention, - "IOSNewTabPageRetention", +BASE_FEATURE(kNewTabPageFieldTrial, + "IOSNewTabPageFieldTrials", base::FEATURE_DISABLED_BY_DEFAULT); -const char kNewTabPageRetentionName[] = "IOSNewTabPageRetention"; +const char kNewTabPageFieldTrialName[] = "IOSNewTabPageFieldTrials"; -const char kNewTabPageRetentionParam[] = "NewTabPageRetentionParam"; +const char kNewTabPageFieldTrialParam[] = "NewTabPageFieldTrialParam"; -NewTabPageRetentionExperimentBehavior GetNewTabPageRetentionExperimentType() { - if (base::FeatureList::IsEnabled(kNewTabPageRetention)) { - return (NewTabPageRetentionExperimentBehavior) - base::GetFieldTrialParamByFeatureAsInt(kNewTabPageRetention, - kNewTabPageRetentionParam, +NewTabPageFieldTrialExperimentBehavior GetNewTabPageFieldTrialExperimentType() { + if (base::FeatureList::IsEnabled(kNewTabPageFieldTrial)) { + return (NewTabPageFieldTrialExperimentBehavior) + base::GetFieldTrialParamByFeatureAsInt(kNewTabPageFieldTrial, + kNewTabPageFieldTrialParam, /*default_value=*/0); } - return NewTabPageRetentionExperimentBehavior::kDefault; + return NewTabPageFieldTrialExperimentBehavior::kDefault; } } // namespace ntp_tiles
diff --git a/components/ntp_tiles/features.h b/components/ntp_tiles/features.h index 3d42045f..81c6ff5 100644 --- a/components/ntp_tiles/features.h +++ b/components/ntp_tiles/features.h
@@ -9,8 +9,8 @@ namespace ntp_tiles { -// Experiment groups for the new tab page retention experiments. -enum class NewTabPageRetentionExperimentBehavior { +// Experiment groups for the new tab page field trial experiments. +enum class NewTabPageFieldTrialExperimentBehavior { // Default. kDefault = 0, // Hides all NTP tiles for new users. @@ -36,20 +36,20 @@ // If this feature is enabled, we enable popular sites in the suggestions UI. BASE_DECLARE_FEATURE(kUsePopularSitesSuggestions); -// Feature flag to enable new tab page retention experiment on IOS. -// Use `GetDefaultNTPRetentionExperimentType()` instead of this +// Feature flag to enable new tab page field trial experiment on IOS. +// Use `GetNewTabPageFieldTrialExperimentType()` instead of this // constant directly. -BASE_DECLARE_FEATURE(kNewTabPageRetention); +BASE_DECLARE_FEATURE(kNewTabPageFieldTrial); -// Feature name for the NTP retention field trial. -extern const char kNewTabPageRetentionName[]; +// Feature name for the NTP field trial. +extern const char kNewTabPageFieldTrialName[]; -// Feature parameters for the new tab page retention experiment. -extern const char kNewTabPageRetentionParam[]; +// Feature parameters for the new tab page experiment. +extern const char kNewTabPageFieldTrialParam[]; -// Returns the currently enabled NTP retention experiment type. If none are +// Returns the currently enabled NTP field trial experiment type. If none are // enabled, returns the default value. -NewTabPageRetentionExperimentBehavior GetNewTabPageRetentionExperimentType(); +NewTabPageFieldTrialExperimentBehavior GetNewTabPageFieldTrialExperimentType(); } // namespace ntp_tiles
diff --git a/components/omnibox/browser/actions/omnibox_action_in_suggest.cc b/components/omnibox/browser/actions/omnibox_action_in_suggest.cc index 66ddd87..add69a9 100644 --- a/components/omnibox/browser/actions/omnibox_action_in_suggest.cc +++ b/components/omnibox/browser/actions/omnibox_action_in_suggest.cc
@@ -78,14 +78,17 @@ } } // namespace -OmniboxActionInSuggest::OmniboxActionInSuggest(omnibox::ActionInfo action_info) +OmniboxActionInSuggest::OmniboxActionInSuggest( + omnibox::ActionInfo action_info, + absl::optional<TemplateURLRef::SearchTermsArgs> search_terms_args) : OmniboxAction(OmniboxAction::LabelStrings( ToActionHint(action_info.action_type()), ToActionContents(action_info.action_type()), IDS_ACC_OMNIBOX_ACTION_IN_SUGGEST_SUFFIX, IDS_ACC_OMNIBOX_ACTION_IN_SUGGEST), {}), - action_info_{std::move(action_info)} {} + action_info{std::move(action_info)}, + search_terms_args{std::move(search_terms_args)} {} OmniboxActionInSuggest::~OmniboxActionInSuggest() = default; @@ -94,8 +97,8 @@ OmniboxActionInSuggest::GetOrCreateJavaObject(JNIEnv* env) const { if (!j_omnibox_action_) { j_omnibox_action_.Reset(BuildOmniboxActionInSuggest( - env, strings_.hint, action_info_.action_type(), - action_info_.action_uri())); + env, strings_.hint, action_info.action_type(), + action_info.action_uri())); } return base::android::ScopedJavaLocalRef<jobject>(j_omnibox_action_); } @@ -104,10 +107,10 @@ void OmniboxActionInSuggest::RecordActionShown(size_t position, bool executed) const { base::UmaHistogramEnumeration("Omnibox.ActionInSuggest.Shown", - ToUmaActionType(action_info_.action_type())); + ToUmaActionType(action_info.action_type())); if (executed) { base::UmaHistogramEnumeration("Omnibox.ActionInSuggest.Used", - ToUmaActionType(action_info_.action_type())); + ToUmaActionType(action_info.action_type())); } } @@ -125,12 +128,18 @@ // static const OmniboxActionInSuggest* OmniboxActionInSuggest::FromAction( const OmniboxAction* action) { + return FromAction(const_cast<OmniboxAction*>(action)); +} + +// static +OmniboxActionInSuggest* OmniboxActionInSuggest::FromAction( + OmniboxAction* action) { if (action && action->ActionId() == OmniboxActionId::ACTION_IN_SUGGEST) { - return static_cast<const OmniboxActionInSuggest*>(action); + return static_cast<OmniboxActionInSuggest*>(action); } return nullptr; } omnibox::ActionInfo::ActionType OmniboxActionInSuggest::Type() const { - return action_info_.action_type(); + return action_info.action_type(); }
diff --git a/components/omnibox/browser/actions/omnibox_action_in_suggest.h b/components/omnibox/browser/actions/omnibox_action_in_suggest.h index 839b567..143334b7 100644 --- a/components/omnibox/browser/actions/omnibox_action_in_suggest.h +++ b/components/omnibox/browser/actions/omnibox_action_in_suggest.h
@@ -5,14 +5,19 @@ #ifndef COMPONENTS_OMNIBOX_BROWSER_ACTIONS_OMNIBOX_ACTION_IN_SUGGEST_H_ #define COMPONENTS_OMNIBOX_BROWSER_ACTIONS_OMNIBOX_ACTION_IN_SUGGEST_H_ +#include <optional> + #include "components/omnibox/browser/actions/omnibox_action.h" #include "components/omnibox/browser/autocomplete_result.h" +#include "components/search_engines/template_url.h" #include "components/strings/grit/components_strings.h" #include "third_party/omnibox_proto/entity_info.pb.h" class OmniboxActionInSuggest : public OmniboxAction { public: - explicit OmniboxActionInSuggest(omnibox::ActionInfo action_info); + OmniboxActionInSuggest( + omnibox::ActionInfo action_info, + absl::optional<TemplateURLRef::SearchTermsArgs> search_terms_args); #if BUILDFLAG(IS_ANDROID) base::android::ScopedJavaLocalRef<jobject> GetOrCreateJavaObject( @@ -28,15 +33,14 @@ // Downcasts the given OmniboxAction to an OmniboxActionInSuggest if the // supplied instance represents one, otherwise returns nullptr. static const OmniboxActionInSuggest* FromAction(const OmniboxAction* action); + static OmniboxActionInSuggest* FromAction(OmniboxAction* action); + + omnibox::ActionInfo action_info{}; + absl::optional<TemplateURLRef::SearchTermsArgs> search_terms_args{}; private: - FRIEND_TEST_ALL_PREFIXES(OmniboxActionInSuggestTest, - ReportMetricsForUnknownType); - FRIEND_TEST_ALL_PREFIXES(BaseSearchProviderTest, - CreateActionInSuggest_BuildActionURL); ~OmniboxActionInSuggest() override; - omnibox::ActionInfo action_info_{}; #if BUILDFLAG(IS_ANDROID) mutable base::android::ScopedJavaGlobalRef<jobject> j_omnibox_action_; #endif
diff --git a/components/omnibox/browser/actions/omnibox_action_in_suggest_unittest.cc b/components/omnibox/browser/actions/omnibox_action_in_suggest_unittest.cc index facb364..7129215 100644 --- a/components/omnibox/browser/actions/omnibox_action_in_suggest_unittest.cc +++ b/components/omnibox/browser/actions/omnibox_action_in_suggest_unittest.cc
@@ -95,8 +95,8 @@ ActionInfo action_info; action_info.set_action_type(test_case.action_type); - auto action = - base::MakeRefCounted<OmniboxActionInSuggest>(std::move(action_info)); + auto action = base::MakeRefCounted<OmniboxActionInSuggest>( + std::move(action_info), absl::nullopt); EXPECT_EQ(OmniboxActionId::ACTION_IN_SUGGEST, action->ActionId()) << "while evaluatin action " << ToString(test_case.action_type); EXPECT_EQ(test_case.action_type, action->Type()); @@ -128,7 +128,8 @@ action_info.set_action_type(test_case); scoped_refptr<OmniboxAction> upcasted_action = - base::MakeRefCounted<OmniboxActionInSuggest>(std::move(action_info)); + base::MakeRefCounted<OmniboxActionInSuggest>(std::move(action_info), + absl::nullopt); auto* downcasted_action = OmniboxActionInSuggest::FromAction(upcasted_action.get()); @@ -162,8 +163,8 @@ action_info.set_action_type(ActionType(type)); // This is a valid action type. Object MUST build. - auto action = - base::MakeRefCounted<OmniboxActionInSuggest>(std::move(action_info)); + auto action = base::MakeRefCounted<OmniboxActionInSuggest>( + std::move(action_info), absl::nullopt); // This is a valid action type. Object MUST be able to report metrics. { base::HistogramTester histograms; @@ -208,7 +209,8 @@ ActionInfo action_info; action_info.set_action_type(test_case.first); scoped_refptr<OmniboxAction> action = - base::MakeRefCounted<OmniboxActionInSuggest>(std::move(action_info)); + base::MakeRefCounted<OmniboxActionInSuggest>(std::move(action_info), + absl::nullopt); { // Just show.
diff --git a/components/omnibox/browser/autocomplete_controller.cc b/components/omnibox/browser/autocomplete_controller.cc index 032d496..5d8d86cc 100644 --- a/components/omnibox/browser/autocomplete_controller.cc +++ b/components/omnibox/browser/autocomplete_controller.cc
@@ -40,6 +40,7 @@ #include "base/trace_event/trace_event.h" #include "build/build_config.h" #include "components/history_clusters/core/config.h" +#include "components/omnibox/browser/actions/omnibox_action_in_suggest.h" #include "components/omnibox/browser/actions/omnibox_pedal_provider.h" #include "components/omnibox/browser/autocomplete_input.h" #include "components/omnibox/browser/autocomplete_match_type.h" @@ -797,18 +798,27 @@ void AutocompleteController::SetMatchDestinationURL( AutocompleteMatch* match) const { TRACE_EVENT0("omnibox", "AutocompleteController::SetMatchDestinationURL"); - const TemplateURL* template_url = - match->GetTemplateURL(template_url_service_, false); - if (!template_url) - return; - - match->destination_url = GURL(template_url->url_ref().ReplaceSearchTerms( - *match->search_terms_args, template_url_service_->search_terms_data())); + auto url = ComputeURLFromSearchTermsArgs( + match->GetTemplateURL(template_url_service_, false), + *match->search_terms_args); + if (url.is_valid()) { + match->destination_url = std::move(url); + } #if BUILDFLAG(IS_ANDROID) match->UpdateJavaDestinationUrl(); #endif } +GURL AutocompleteController::ComputeURLFromSearchTermsArgs( + TemplateURL* template_url, + const TemplateURLRef::SearchTermsArgs& search_terms_args) const { + if (!template_url) { + return GURL::EmptyGURL(); + } + return GURL(template_url->url_ref().ReplaceSearchTerms( + search_terms_args, template_url_service_->search_terms_data())); +} + const AutocompleteResult& AutocompleteController::result() const { return DebouncingEnabled() ? published_result_ : result_; } @@ -1342,6 +1352,32 @@ } match->search_terms_args->assisted_query_stats = base::StringPrintf( "chrome.%s.%s", selected_index.c_str(), autocompletions.c_str()); + + // Duplicate AQS/SBS for eligible ActionsInSuggest. + // TODO(1418077): rather than computing the `action_uri`, keep the + // updated search_terms_args, and apply the query formulation time the + // moment the action is selected. + for (auto& scoped_action : match->actions) { + auto* action_in_suggest = + OmniboxActionInSuggest::FromAction(scoped_action.get()); + + if (action_in_suggest == nullptr || + !action_in_suggest->search_terms_args.has_value()) { + continue; + } + auto& search_terms_args = action_in_suggest->search_terms_args.value(); + search_terms_args.searchbox_stats.mutable_assisted_query_info() + ->MergeFrom( + match->search_terms_args->searchbox_stats.assisted_query_info()); + search_terms_args.assisted_query_stats = + match->search_terms_args->assisted_query_stats; + + action_in_suggest->action_info.set_action_uri( + ComputeURLFromSearchTermsArgs( + match->GetTemplateURL(template_url_service_, false), + search_terms_args) + .spec()); + } } }
diff --git a/components/omnibox/browser/autocomplete_controller.h b/components/omnibox/browser/autocomplete_controller.h index 987a3d2..70c1fa7 100644 --- a/components/omnibox/browser/autocomplete_controller.h +++ b/components/omnibox/browser/autocomplete_controller.h
@@ -396,6 +396,13 @@ // `OnUrlScoringModelDone()` and its completion callback from being called. void CancelUrlScoringModel(); + // Constructs a destination URL from supplied search terms args. + // TODO(1418077): look for a way to dissolve this function into direct + // application where it's needed. + GURL ComputeURLFromSearchTermsArgs( + TemplateURL* template_url, + const TemplateURLRef::SearchTermsArgs& args) const; + base::ObserverList<Observer> observers_; // The client passed to the providers.
diff --git a/components/omnibox/browser/autocomplete_match_unittest.cc b/components/omnibox/browser/autocomplete_match_unittest.cc index f6ab72f..c5bc08e 100644 --- a/components/omnibox/browser/autocomplete_match_unittest.cc +++ b/components/omnibox/browser/autocomplete_match_unittest.cc
@@ -1223,8 +1223,8 @@ for (auto& action_type : test_case.types_to_add) { omnibox::ActionInfo info; info.set_action_type(action_type); - match.actions.push_back( - base::MakeRefCounted<OmniboxActionInSuggest>(std::move(info))); + match.actions.push_back(base::MakeRefCounted<OmniboxActionInSuggest>( + std::move(info), absl::nullopt)); } match.FilterAndSortActionsInSuggest();
diff --git a/components/omnibox/browser/autocomplete_result_unittest.cc b/components/omnibox/browser/autocomplete_result_unittest.cc index eef8467..a13e2df 100644 --- a/components/omnibox/browser/autocomplete_result_unittest.cc +++ b/components/omnibox/browser/autocomplete_result_unittest.cc
@@ -3141,8 +3141,8 @@ if (action_id == OmniboxActionId::ACTION_IN_SUGGEST) { omnibox::ActionInfo info; info.set_action_type(omnibox::ActionInfo_ActionType_DIRECTIONS); - match.actions.push_back( - base::MakeRefCounted<OmniboxActionInSuggest>(std::move(info))); + match.actions.push_back(base::MakeRefCounted<OmniboxActionInSuggest>( + std::move(info), absl::nullopt)); } else { match.actions.push_back( base::MakeRefCounted<FakeOmniboxAction>(action_id));
diff --git a/components/omnibox/browser/base_search_provider.cc b/components/omnibox/browser/base_search_provider.cc index 13f59ffc..39564ff 100644 --- a/components/omnibox/browser/base_search_provider.cc +++ b/components/omnibox/browser/base_search_provider.cc
@@ -213,12 +213,13 @@ const TemplateURLRef& search_url, const TemplateURLRef::SearchTermsArgs& original_search_terms_args, const SearchTermsData& search_terms_data) { + absl::optional<TemplateURLRef::SearchTermsArgs> action_search_terms_args; // If the Action's URL is empty, but the Action supplies additional search // parameters, compute new URL based on the base URL (that is specific to // the entire suggestion). if (action_info.action_uri().empty() && !action_info.search_parameters().empty()) { - auto action_search_terms_args = original_search_terms_args; + action_search_terms_args = original_search_terms_args; std::string query_params; for (const auto& param : action_info.search_parameters()) { // Supply additional Query Parameters as instructed by the provider. @@ -227,14 +228,11 @@ } query_params += param.first + "=" + param.second; } - action_search_terms_args.additional_query_params = query_params; - action_info.set_action_uri( - GURL(search_url.ReplaceSearchTerms(action_search_terms_args, - search_terms_data)) - .spec()); + action_search_terms_args->additional_query_params = query_params; } - return base::MakeRefCounted<OmniboxActionInSuggest>(std::move(action_info)); + return base::MakeRefCounted<OmniboxActionInSuggest>( + std::move(action_info), std::move(action_search_terms_args)); } // static
diff --git a/components/omnibox/browser/base_search_provider_unittest.cc b/components/omnibox/browser/base_search_provider_unittest.cc index 5d5a8f8..77e816de 100644 --- a/components/omnibox/browser/base_search_provider_unittest.cc +++ b/components/omnibox/browser/base_search_provider_unittest.cc
@@ -514,87 +514,36 @@ const char* base_url; const char* action_url; std::vector<std::pair<const char*, const char*>> search_params; - // query params order is not guaranteed to be the same across all platforms - // or even across multiple runs. - const char* expected_start_url; - std::vector<const char*> expect_query_param; - const char* expected_end_url; + // or even across multiple runs. the vector below captures possible + // variants. + std::vector<const char*> expect_query_params; } test_cases[]{ // clang-format off // Cases explicitly not meant to produce any changes. { "no change: no supplied url, no search params", "https://www.google.com", // ActionInfo action_uri and search_params: - "", {}, - // Resulting action_uri: head, params, tail: - "", {}, ""}, + "", {}, {}}, { "no change: supplied url, no search params", "https://www.google.com", // ActionInfo action_uri and search_params: - "https://maps.google.com", {}, - // Resulting action_uri: head, params, tail: - "https://maps.google.com", {}, ""}, - - { "no change: supplied url, search params ignored", - "https://www.google.com", - // ActionInfo action_uri and search_params: - "https://maps.google.com", {{"a", "3"}}, - // Resulting action_uri: head, params, tail: - "https://maps.google.com", {}, ""}, - - { "no change: uri is serialized data", - "https://g.co:119/search?q=a#f", - // ActionInfo action_uri and search_params: - "fce2", {{"a", "3"}, {"b", "7"}}, - // Resulting action_uri: head, params, tail: - "fce2", {}, ""}, + "https://maps.google.com", {}, {}}, // Cases meant to generate new URL: // - action_uri has to be empty, // - search_params have to be non-empty. - { "generate: domain only; single query param", + { "generate: single query param", "https://g.co", // ActionInfo action_uri and search_params: - "", {{"a", "3"}}, - // Resulting action_uri: head, params, tail: - "https://g.co/?", {"a=3"}, ""}, + "", {{"a", "3"}}, {"a=3"}}, - { "generate: domain and path; single query param", - "https://g.co/search", - // ActionInfo action_uri and search_params: - "", {{"a", "3"}}, - // Resulting action_uri: head, params, tail: - "https://g.co/search?", {"a=3"}, ""}, - - { "generate: domain, path, query; single query param", - "https://g.co/search?q=abc&oq=def", - // ActionInfo action_uri and search_params: - "", {{"a", "3"}}, - // Resulting action_uri: head, params, tail: - "https://g.co/search?", {"a=3", "q=abc", "oq=def"}, ""}, - - { "generate: domain, path, query, fragment; single query param", - "https://g.co/search?q=abc&oq=def#fragment", - // ActionInfo action_uri and search_params: - "", {{"a", "3"}}, - // Resulting action_uri: head, params, tail: - "https://g.co/search?", {"a=3", "q=abc", "oq=def"}, "#fragment"}, - - { "generate: domain, port, path, query, fragment; single query param", - "https://g.co:119/search?q=abc&oq=def#fragment", - // ActionInfo action_uri and search_params: - "", {{"a", "3"}}, - // Resulting action_uri: head, params, tail: - "https://g.co:119/search?", {"a=3", "q=abc", "oq=def"}, "#fragment"}, - - { "generate: domain, port, path, query, fragment; multiple params", + { "generate: multiple query params", "https://g.co:119/search?q=a#f", // ActionInfo action_uri and search_params: - "", {{"a", "3"}, {"aa", "7"}}, - // Resulting action_uri: head, params, tail: - "https://g.co:119/search?", {"a=3", "aa=7", "q=a"}, "#f"}, + "", {{"a", "3"}, {"A", "7"}}, + {"A=7&a=3", "a=3&A=7"}}, // clang-format on }; @@ -619,17 +568,21 @@ auto* action_in_suggest = OmniboxActionInSuggest::FromAction(action.get()); - const auto& action_uri = action_in_suggest->action_info_.action_uri(); - - EXPECT_THAT(action_uri, testing::StartsWith(test_case.expected_start_url)) + // order of elements in ProtobufMap is not guaranteed, and in fact changes, + // even within the same platform. Instead of trying to decompose the params + // just check the params against variants that we specified in the + // expect_query_params. + EXPECT_EQ(action_in_suggest->search_terms_args.has_value(), + !test_case.expect_query_params.empty()) << "while evaluating case `" << test_case.test_name << '`'; - EXPECT_THAT(action_uri, testing::EndsWith(test_case.expected_end_url)) - << "while evaluating case `" << test_case.test_name << '`'; - - for (auto* query_param : test_case.expect_query_param) { - EXPECT_THAT(action_uri, testing::HasSubstr(query_param)) - << "while evaluating case `" << test_case.test_name << '`'; + bool found_matching_param_sequence = test_case.expect_query_params.empty(); + for (auto* param_sequence : test_case.expect_query_params) { + found_matching_param_sequence |= + action_in_suggest->search_terms_args->additional_query_params == + param_sequence; } + EXPECT_TRUE(found_matching_param_sequence) + << "while evaluating case `" << test_case.test_name << '`'; } }
diff --git a/components/omnibox/common/omnibox_features.cc b/components/omnibox/common/omnibox_features.cc index 613289d..a52313e 100644 --- a/components/omnibox/common/omnibox_features.cc +++ b/components/omnibox/common/omnibox_features.cc
@@ -334,7 +334,7 @@ // Feature used to enable Pedals in the NTP Realbox. BASE_FEATURE(kNtpRealboxPedals, "NtpRealboxPedals", - base::FEATURE_ENABLED_BY_DEFAULT); + base::FEATURE_DISABLED_BY_DEFAULT); // Feature used to enable URL suggestions for inputs that may contain typos. BASE_FEATURE(kOmniboxFuzzyUrlSuggestions,
diff --git a/components/page_load_metrics/browser/observers/use_counter/ukm_features.cc b/components/page_load_metrics/browser/observers/use_counter/ukm_features.cc index 9d6e2b81..2a9737ca 100644 --- a/components/page_load_metrics/browser/observers/use_counter/ukm_features.cc +++ b/components/page_load_metrics/browser/observers/use_counter/ukm_features.cc
@@ -291,6 +291,7 @@ WebFeature::kServiceWorkerBypassFetchHandlerForMainResource, WebFeature:: kServiceWorkerBypassFetchHandlerForMainResourceByOriginTrial, - WebFeature::kCascadedCSSZoomNotEqualToOne})); + WebFeature::kCascadedCSSZoomNotEqualToOne, + WebFeature::kV8Window_QueryLocalFonts_Method})); return *opt_in_features; }
diff --git a/components/password_manager/core/browser/login_database.cc b/components/password_manager/core/browser/login_database.cc index 50fe061d..6b2e8f9 100644 --- a/components/password_manager/core/browser/login_database.cc +++ b/components/password_manager/core/browser/login_database.cc
@@ -62,7 +62,7 @@ namespace password_manager { // The current version number of the login database schema. -constexpr int kCurrentVersionNumber = 34; +constexpr int kCurrentVersionNumber = 35; // The oldest version of the schema such that a legacy Chrome client using that // version can still read/write the current database. constexpr int kCompatibleVersionNumber = 33; @@ -207,6 +207,8 @@ raw_ptr<SQLTableBuilder> password_notes; raw_ptr<SQLTableBuilder> passwords_sync_entities_metadata; raw_ptr<SQLTableBuilder> passwords_sync_model_metadata; + raw_ptr<SQLTableBuilder> incoming_sharing_invitation_sync_entities_metadata; + raw_ptr<SQLTableBuilder> incoming_sharing_invitation_sync_model_metadata; }; base::span<const uint8_t> PickleToSpan(const base::Pickle& pickle) { @@ -305,18 +307,30 @@ constexpr char kPasswordsSyncEntitiesMetadataTableName[] = "sync_entities_metadata"; +constexpr char kIncomingSharingInvitationSyncModelMetadataTableName[] = + "incoming_sharing_invitation_sync_model_metadata"; +constexpr char kIncomingSharingInvitationSyncEntitiesMetadataTableName[] = + "incoming_sharing_invitation_sync_entities_metadata"; + const char* SyncModelMetadataTableName(syncer::ModelType model_type) { - CHECK_EQ(model_type, syncer::PASSWORDS); - return kPasswordsSyncModelMetadataTableName; + CHECK(model_type == syncer::PASSWORDS || + model_type == syncer::INCOMING_PASSWORD_SHARING_INVITATION); + return model_type == syncer::PASSWORDS + ? kPasswordsSyncModelMetadataTableName + : kIncomingSharingInvitationSyncModelMetadataTableName; } const char* SyncEntitiesMetadataTableName(syncer::ModelType model_type) { - CHECK_EQ(model_type, syncer::PASSWORDS); - return kPasswordsSyncEntitiesMetadataTableName; + CHECK(model_type == syncer::PASSWORDS || + model_type == syncer::INCOMING_PASSWORD_SHARING_INVITATION); + return model_type == syncer::PASSWORDS + ? kPasswordsSyncEntitiesMetadataTableName + : kIncomingSharingInvitationSyncEntitiesMetadataTableName; } bool ClearAllSyncMetadata(sql::Database* db, syncer::ModelType model_type) { - CHECK_EQ(model_type, syncer::PASSWORDS); + CHECK(model_type == syncer::PASSWORDS || + model_type == syncer::INCOMING_PASSWORD_SHARING_INVITATION); sql::Statement s1(db->GetCachedStatement( SQL_FROM_HERE, base::StringPrintf("DELETE FROM %s", SyncModelMetadataTableName(model_type)) @@ -352,6 +366,17 @@ unsigned passwords_sync_model_metadata_version = builders.passwords_sync_model_metadata->SealVersion(); DCHECK_EQ(expected_version, passwords_sync_model_metadata_version); + + unsigned incoming_sharing_invitation_sync_entities_metadata_version = + builders.incoming_sharing_invitation_sync_entities_metadata + ->SealVersion(); + CHECK_EQ(expected_version, + incoming_sharing_invitation_sync_entities_metadata_version); + + unsigned incoming_sharing_invitation_sync_model_metadata_version = + builders.incoming_sharing_invitation_sync_model_metadata->SealVersion(); + CHECK_EQ(expected_version, + incoming_sharing_invitation_sync_model_metadata_version); } // Teaches |builders| about the different DB schemes in different versions. @@ -525,6 +550,17 @@ "INTEGER NOT NULL DEFAULT 0"); SealVersion(builders, /*expected_version=*/34u); + // Version 35. + builders.incoming_sharing_invitation_sync_entities_metadata + ->AddPrimaryKeyColumn("storage_key"); + builders.incoming_sharing_invitation_sync_entities_metadata->AddColumn( + "metadata", "VARCHAR NOT NULL"); + builders.incoming_sharing_invitation_sync_model_metadata->AddPrimaryKeyColumn( + "id"); + builders.incoming_sharing_invitation_sync_model_metadata->AddColumn( + "model_metadata", "VARCHAR NOT NULL"); + SealVersion(builders, /*expected_version=*/35u); + DCHECK_EQ(static_cast<size_t>(COLUMN_NUM), builders.logins->NumberOfColumns()) << "Adjust LoginDatabaseTableColumns if you change column definitions " "here."; @@ -691,6 +727,16 @@ return false; } + if (!builders.incoming_sharing_invitation_sync_entities_metadata->MigrateFrom( + current_version, db)) { + return false; + } + + if (!builders.incoming_sharing_invitation_sync_model_metadata->MigrateFrom( + current_version, db)) { + return false; + } + // Data changes, not covered by the schema migration above. if (current_version <= 8) { sql::Statement fix_time_format; @@ -888,10 +934,18 @@ kPasswordsSyncEntitiesMetadataTableName); SQLTableBuilder passwords_sync_model_metadata_builder( kPasswordsSyncModelMetadataTableName); - SQLTableBuilders builders = {&logins_builder, &insecure_credentials_builder, - &password_notes_builder, - &passwords_sync_entities_metadata_builder, - &passwords_sync_model_metadata_builder}; + SQLTableBuilder incoming_sharing_invitation_sync_entities_metadata_builder( + kIncomingSharingInvitationSyncEntitiesMetadataTableName); + SQLTableBuilder incoming_sharing_invitation_sync_model_metadata_builder( + kIncomingSharingInvitationSyncModelMetadataTableName); + SQLTableBuilders builders = { + &logins_builder, + &insecure_credentials_builder, + &password_notes_builder, + &passwords_sync_entities_metadata_builder, + &passwords_sync_model_metadata_builder, + &incoming_sharing_invitation_sync_entities_metadata_builder, + &incoming_sharing_invitation_sync_model_metadata_builder}; InitializeBuilders(builders); InitializeStatementStrings(logins_builder); @@ -921,6 +975,23 @@ password_notes_table_.Init(&db_); field_info_table_.Init(&db_); + if (!incoming_sharing_invitation_sync_entities_metadata_builder.CreateTable( + &db_)) { + LOG(ERROR) << "Failed to create the " + "'incoming_sharing_invitation_sync_entities_metadata' table"; + transaction.Rollback(); + db_.Close(); + return false; + } + + if (!incoming_sharing_invitation_sync_model_metadata_builder.CreateTable( + &db_)) { + LOG(ERROR) << "Failed to create the " + "'incoming_sharing_invitation_sync_model_metadata' table"; + transaction.Rollback(); + db_.Close(); + return false; + } int current_version = meta_table_.GetVersionNumber(); bool migration_success = FixVersionIfNeeded(&db_, ¤t_version); @@ -1720,7 +1791,8 @@ std::unique_ptr<syncer::MetadataBatch> LoginDatabase::SyncMetadataStore::GetAllSyncEntityMetadata( syncer::ModelType model_type) { - CHECK_EQ(model_type, syncer::PASSWORDS); + CHECK(model_type == syncer::PASSWORDS || + model_type == syncer::INCOMING_PASSWORD_SHARING_INVITATION); auto metadata_batch = std::make_unique<syncer::MetadataBatch>(); sql::Statement s(db_->GetCachedStatement( SQL_FROM_HERE, @@ -1758,7 +1830,8 @@ std::unique_ptr<sync_pb::ModelTypeState> LoginDatabase::SyncMetadataStore::GetModelTypeState( syncer::ModelType model_type) { - CHECK_EQ(model_type, syncer::PASSWORDS); + CHECK(model_type == syncer::PASSWORDS || + model_type == syncer::INCOMING_PASSWORD_SHARING_INVITATION); auto state = std::make_unique<sync_pb::ModelTypeState>(); sql::Statement s(db_->GetCachedStatement( SQL_FROM_HERE, @@ -1785,7 +1858,8 @@ LoginDatabase::SyncMetadataStore::GetAllSyncMetadata( syncer::ModelType model_type) { TRACE_EVENT0("passwords", "SyncMetadataStore::GetAllSyncMetadata"); - CHECK_EQ(model_type, syncer::PASSWORDS); + CHECK(model_type == syncer::PASSWORDS || + model_type == syncer::INCOMING_PASSWORD_SHARING_INVITATION); std::unique_ptr<syncer::MetadataBatch> metadata_batch = GetAllSyncEntityMetadata(model_type); if (metadata_batch == nullptr) { @@ -1805,9 +1879,15 @@ void LoginDatabase::SyncMetadataStore::DeleteAllSyncMetadata( syncer::ModelType model_type) { TRACE_EVENT0("passwords", "SyncMetadataStore::DeleteAllSyncMetadata"); + CHECK(model_type == syncer::PASSWORDS || + model_type == syncer::INCOMING_PASSWORD_SHARING_INVITATION); + if (model_type != syncer::PASSWORDS) { + ClearAllSyncMetadata(db_, model_type); + return; + } CHECK_EQ(model_type, syncer::PASSWORDS); bool had_unsynced_password_deletions = HasUnsyncedPasswordDeletions(); - ClearAllSyncMetadata(db_, model_type); + ClearAllSyncMetadata(db_, syncer::PASSWORDS); if (had_unsynced_password_deletions && password_deletions_have_synced_callback_) { // Note: At this point we can't be fully sure whether the deletions actually @@ -1823,7 +1903,8 @@ const std::string& storage_key, const sync_pb::EntityMetadata& metadata) { TRACE_EVENT0("passwords", "SyncMetadataStore::UpdateSyncMetadata"); - DCHECK_EQ(model_type, syncer::PASSWORDS); + CHECK(model_type == syncer::PASSWORDS || + model_type == syncer::INCOMING_PASSWORD_SHARING_INVITATION); int storage_key_int = 0; if (!base::StringToInt(storage_key, &storage_key_int)) { @@ -1848,7 +1929,10 @@ s.BindInt(0, storage_key_int); s.BindString(1, encrypted_metadata); - + if (model_type != syncer::PASSWORDS) { + return s.Run(); + } + CHECK_EQ(model_type, syncer::PASSWORDS); bool had_unsynced_deletions = HasUnsyncedPasswordDeletions(); bool result = s.Run(); if (result && had_unsynced_deletions && !HasUnsyncedPasswordDeletions() && @@ -1862,7 +1946,8 @@ syncer::ModelType model_type, const std::string& storage_key) { TRACE_EVENT0("passwords", "SyncMetadataStore::ClearSyncMetadata"); - DCHECK_EQ(model_type, syncer::PASSWORDS); + CHECK(model_type == syncer::PASSWORDS || + model_type == syncer::INCOMING_PASSWORD_SHARING_INVITATION); int storage_key_int = 0; if (!base::StringToInt(storage_key, &storage_key_int)) { @@ -1877,7 +1962,10 @@ SyncEntitiesMetadataTableName(model_type)) .c_str())); s.BindInt(0, storage_key_int); - + if (model_type != syncer::PASSWORDS) { + return s.Run(); + } + CHECK_EQ(model_type, syncer::PASSWORDS); bool had_unsynced_deletions = HasUnsyncedPasswordDeletions(); bool result = s.Run(); if (result && had_unsynced_deletions && !HasUnsyncedPasswordDeletions() && @@ -1891,7 +1979,8 @@ syncer::ModelType model_type, const sync_pb::ModelTypeState& model_type_state) { TRACE_EVENT0("passwords", "SyncMetadataStore::UpdateModelTypeState"); - DCHECK_EQ(model_type, syncer::PASSWORDS); + CHECK(model_type == syncer::PASSWORDS || + model_type == syncer::INCOMING_PASSWORD_SHARING_INVITATION); // Make sure only one row is left by storing it in the entry with id=1 // every time. @@ -1909,7 +1998,8 @@ bool LoginDatabase::SyncMetadataStore::ClearModelTypeState( syncer::ModelType model_type) { TRACE_EVENT0("passwords", "SyncMetadataStore::ClearModelTypeState"); - DCHECK_EQ(model_type, syncer::PASSWORDS); + CHECK(model_type == syncer::PASSWORDS || + model_type == syncer::INCOMING_PASSWORD_SHARING_INVITATION); sql::Statement s(db_->GetCachedStatement( SQL_FROM_HERE, base::StringPrintf("DELETE FROM %s WHERE id=1",
diff --git a/components/password_manager/core/browser/login_database_unittest.cc b/components/password_manager/core/browser/login_database_unittest.cc index 8557059..03903b4 100644 --- a/components/password_manager/core/browser/login_database_unittest.cc +++ b/components/password_manager/core/browser/login_database_unittest.cc
@@ -1625,16 +1625,23 @@ "PasswordManager.AccountStore.InaccessiblePasswords3", 0, 1); } -TEST_F(LoginDatabaseTest, NoMetadata) { +class LoginDatabaseSyncMetadataTest + : public LoginDatabaseTest, + public testing::WithParamInterface<syncer::ModelType> { + public: + syncer::ModelType SyncModelType() { return GetParam(); } +}; + +TEST_P(LoginDatabaseSyncMetadataTest, NoMetadata) { std::unique_ptr<syncer::MetadataBatch> metadata_batch = - db().password_sync_metadata_store().GetAllSyncMetadata(syncer::PASSWORDS); + db().password_sync_metadata_store().GetAllSyncMetadata(SyncModelType()); ASSERT_THAT(metadata_batch, testing::NotNull()); EXPECT_EQ(0u, metadata_batch->TakeAllMetadata().size()); EXPECT_EQ(sync_pb::ModelTypeState().SerializeAsString(), metadata_batch->GetModelTypeState().SerializeAsString()); } -TEST_F(LoginDatabaseTest, GetAllSyncMetadata) { +TEST_P(LoginDatabaseSyncMetadataTest, GetAllSyncMetadata) { sync_pb::EntityMetadata metadata; PasswordStoreSync::MetadataStore& password_sync_metadata_store = db().password_sync_metadata_store(); @@ -1644,21 +1651,21 @@ metadata.set_sequence_number(1); EXPECT_TRUE(password_sync_metadata_store.UpdateEntityMetadata( - syncer::PASSWORDS, kStorageKey1, metadata)); + SyncModelType(), kStorageKey1, metadata)); sync_pb::ModelTypeState model_type_state; model_type_state.set_initial_sync_state( sync_pb::ModelTypeState_InitialSyncState_INITIAL_SYNC_DONE); EXPECT_TRUE(password_sync_metadata_store.UpdateModelTypeState( - syncer::PASSWORDS, model_type_state)); + SyncModelType(), model_type_state)); metadata.set_sequence_number(2); EXPECT_TRUE(password_sync_metadata_store.UpdateEntityMetadata( - syncer::PASSWORDS, kStorageKey2, metadata)); + SyncModelType(), kStorageKey2, metadata)); std::unique_ptr<syncer::MetadataBatch> metadata_batch = - password_sync_metadata_store.GetAllSyncMetadata(syncer::PASSWORDS); + password_sync_metadata_store.GetAllSyncMetadata(SyncModelType()); ASSERT_THAT(metadata_batch, testing::NotNull()); EXPECT_EQ(metadata_batch->GetModelTypeState().initial_sync_state(), @@ -1675,17 +1682,17 @@ model_type_state.set_initial_sync_state( sync_pb::ModelTypeState_InitialSyncState_INITIAL_SYNC_STATE_UNSPECIFIED); EXPECT_TRUE(password_sync_metadata_store.UpdateModelTypeState( - syncer::PASSWORDS, model_type_state)); + SyncModelType(), model_type_state)); metadata_batch = - password_sync_metadata_store.GetAllSyncMetadata(syncer::PASSWORDS); + password_sync_metadata_store.GetAllSyncMetadata(SyncModelType()); ASSERT_THAT(metadata_batch, testing::NotNull()); EXPECT_EQ( metadata_batch->GetModelTypeState().initial_sync_state(), sync_pb::ModelTypeState_InitialSyncState_INITIAL_SYNC_STATE_UNSPECIFIED); } -TEST_F(LoginDatabaseTest, DeleteAllSyncMetadata) { +TEST_P(LoginDatabaseSyncMetadataTest, DeleteAllSyncMetadata) { sync_pb::EntityMetadata metadata; PasswordStoreSync::MetadataStore& password_sync_metadata_store = db().password_sync_metadata_store(); @@ -1695,33 +1702,33 @@ metadata.set_sequence_number(1); EXPECT_TRUE(password_sync_metadata_store.UpdateEntityMetadata( - syncer::PASSWORDS, kStorageKey1, metadata)); + SyncModelType(), kStorageKey1, metadata)); sync_pb::ModelTypeState model_type_state; model_type_state.set_initial_sync_state( sync_pb::ModelTypeState_InitialSyncState_INITIAL_SYNC_DONE); EXPECT_TRUE(password_sync_metadata_store.UpdateModelTypeState( - syncer::PASSWORDS, model_type_state)); + SyncModelType(), model_type_state)); metadata.set_sequence_number(2); EXPECT_TRUE(password_sync_metadata_store.UpdateEntityMetadata( - syncer::PASSWORDS, kStorageKey2, metadata)); + SyncModelType(), kStorageKey2, metadata)); std::unique_ptr<syncer::MetadataBatch> metadata_batch = - password_sync_metadata_store.GetAllSyncMetadata(syncer::PASSWORDS); + password_sync_metadata_store.GetAllSyncMetadata(SyncModelType()); ASSERT_THAT(metadata_batch, testing::NotNull()); ASSERT_EQ(metadata_batch->TakeAllMetadata().size(), 2u); - password_sync_metadata_store.DeleteAllSyncMetadata(syncer::PASSWORDS); + password_sync_metadata_store.DeleteAllSyncMetadata(SyncModelType()); std::unique_ptr<syncer::MetadataBatch> empty_metadata_batch = - password_sync_metadata_store.GetAllSyncMetadata(syncer::PASSWORDS); + password_sync_metadata_store.GetAllSyncMetadata(SyncModelType()); ASSERT_THAT(empty_metadata_batch, testing::NotNull()); EXPECT_EQ(empty_metadata_batch->TakeAllMetadata().size(), 0u); } -TEST_F(LoginDatabaseTest, WriteThenDeleteSyncMetadata) { +TEST_P(LoginDatabaseSyncMetadataTest, WriteThenDeleteSyncMetadata) { sync_pb::EntityMetadata metadata; PasswordStoreSync::MetadataStore& password_sync_metadata_store = db().password_sync_metadata_store(); @@ -1735,15 +1742,15 @@ // Write the data into the store. EXPECT_TRUE(password_sync_metadata_store.UpdateEntityMetadata( - syncer::PASSWORDS, kStorageKey, metadata)); + SyncModelType(), kStorageKey, metadata)); EXPECT_TRUE(password_sync_metadata_store.UpdateModelTypeState( - syncer::PASSWORDS, model_type_state)); + SyncModelType(), model_type_state)); // Delete the data we just wrote. - EXPECT_TRUE(password_sync_metadata_store.ClearEntityMetadata( - syncer::PASSWORDS, kStorageKey)); + EXPECT_TRUE(password_sync_metadata_store.ClearEntityMetadata(SyncModelType(), + kStorageKey)); std::unique_ptr<syncer::MetadataBatch> metadata_batch = - password_sync_metadata_store.GetAllSyncMetadata(syncer::PASSWORDS); + password_sync_metadata_store.GetAllSyncMetadata(SyncModelType()); ASSERT_THAT(metadata_batch, testing::NotNull()); // It shouldn't be there any more. @@ -1753,15 +1760,21 @@ // Now delete the model type state. EXPECT_TRUE( - password_sync_metadata_store.ClearModelTypeState(syncer::PASSWORDS)); + password_sync_metadata_store.ClearModelTypeState(SyncModelType())); metadata_batch = - password_sync_metadata_store.GetAllSyncMetadata(syncer::PASSWORDS); + password_sync_metadata_store.GetAllSyncMetadata(SyncModelType()); ASSERT_THAT(metadata_batch, testing::NotNull()); EXPECT_EQ(sync_pb::ModelTypeState().SerializeAsString(), metadata_batch->GetModelTypeState().SerializeAsString()); } +INSTANTIATE_TEST_SUITE_P( + SyncModelTypes, + LoginDatabaseSyncMetadataTest, + testing::Values(syncer::PASSWORDS, + syncer::INCOMING_PASSWORD_SHARING_INVITATION)); + #if BUILDFLAG(IS_POSIX) // Only the current user has permission to read the database. //
diff --git a/components/password_manager/core/common/password_manager_features.h b/components/password_manager/core/common/password_manager_features.h index ef7c190..7dd5e0a 100644 --- a/components/password_manager/core/common/password_manager_features.h +++ b/components/password_manager/core/common/password_manager_features.h
@@ -111,6 +111,8 @@ kTrySomethingNew = 3, // Adjusts the language focusing on the convenience of use. kConvenience = 4, + // Adjusts the language of the help text pointing out the benefits. + kCrossDevice = 5, }; inline constexpr base::FeatureParam<PasswordGenerationVariation>::Option @@ -119,6 +121,7 @@ {PasswordGenerationVariation::kSafetyFirst, "safety_first"}, {PasswordGenerationVariation::kTrySomethingNew, "try_something_new"}, {PasswordGenerationVariation::kConvenience, "convenience"}, + {PasswordGenerationVariation::kCrossDevice, "cross_device"}, }; inline constexpr base::FeatureParam<PasswordGenerationVariation>
diff --git a/components/policy/core/common/BUILD.gn b/components/policy/core/common/BUILD.gn index e4e80b5..2584346b 100644 --- a/components/policy/core/common/BUILD.gn +++ b/components/policy/core/common/BUILD.gn
@@ -527,6 +527,7 @@ "management/management_service_unittest.cc", "policy_bundle_unittest.cc", "policy_loader_command_line_unittest.cc", + "policy_logger_unittest.cc", "policy_map_unittest.cc", "policy_proto_decoders_unittest.cc", "policy_service_impl_unittest.cc", @@ -596,9 +597,7 @@ } else { sources += [ "async_policy_provider_unittest.cc" ] } - if (is_android || is_ios) { - sources += [ "policy_logger_unittest.cc" ] - } else { + if (!is_android && !is_ios) { sources += [ "cloud/cloud_external_data_store_unittest.cc", "cloud/component_cloud_policy_service_unittest.cc",
diff --git a/components/policy/core/common/cloud/user_cloud_policy_store.cc b/components/policy/core/common/cloud/user_cloud_policy_store.cc index af3fac0..fd071b1 100644 --- a/components/policy/core/common/cloud/user_cloud_policy_store.cc +++ b/components/policy/core/common/cloud/user_cloud_policy_store.cc
@@ -17,6 +17,7 @@ #include "base/sequence_checker.h" #include "base/task/sequenced_task_runner.h" #include "components/policy/core/common/cloud/cloud_policy_constants.h" +#include "components/policy/core/common/policy_logger.h" #include "components/policy/proto/cloud_policy.pb.h" #include "components/policy/proto/device_management_backend.pb.h" #include "components/policy/proto/policy_signing_key.pb.h" @@ -205,7 +206,7 @@ break; case LOAD_RESULT_NO_POLICY_FILE: - DVLOG(1) << "No policy found on disk"; + DVLOG_POLICY(1, POLICY_FETCHING) << "No cloud policy found on disk"; NotifyStoreLoaded(); break; @@ -223,7 +224,8 @@ // rotation - make sure we request a new key from the server on our // next fetch. doing_key_rotation = true; - DLOG(WARNING) << "Verification key rotation detected"; + DLOG_POLICY(WARNING, POLICY_FETCHING) + << "Verification key rotation detected"; } Validate(std::move(cloud_policy), std::move(key), validate_in_background, @@ -343,7 +345,8 @@ void DesktopCloudPolicyStore::OnPolicyToStoreValidated( UserCloudPolicyValidator* validator) { validation_result_ = validator->GetValidationResult(); - DVLOG(1) << "Policy validation complete: status = " << validator->status(); + DVLOG_POLICY(1, POLICY_FETCHING) + << "Policy validation complete: status = " << validator->status(); if (!validator->success()) { status_ = STATUS_VALIDATION_ERROR; NotifyStoreError();
diff --git a/components/policy/core/common/features.cc b/components/policy/core/common/features.cc index cf0390b..31818c99 100644 --- a/components/policy/core/common/features.cc +++ b/components/policy/core/common/features.cc
@@ -42,6 +42,12 @@ base::FEATURE_ENABLED_BY_DEFAULT); #endif // BUILDFLAG(IS_IOS) +#if !BUILDFLAG(IS_IOS) || !BUILDFLAG(IS_ANDROID) +BASE_FEATURE(kPolicyLogsPageDesktop, + "PolicyLogsPageDesktop", + base::FEATURE_ENABLED_BY_DEFAULT); +#endif // !BUILDFLAG(IS_IOS) || !!BUILDFLAG(IS_ANDROID) + } // namespace features } // namespace policy
diff --git a/components/policy/core/common/features.h b/components/policy/core/common/features.h index ec09f7f9..3823cbe 100644 --- a/components/policy/core/common/features.h +++ b/components/policy/core/common/features.h
@@ -44,6 +44,10 @@ POLICY_EXPORT BASE_DECLARE_FEATURE(kPolicyLogsPageIOS); #endif // BUILDFLAG(IS_IOS) +#if !BUILDFLAG(IS_IOS) || !BUILDFLAG(IS_ANDROID) +POLICY_EXPORT BASE_DECLARE_FEATURE(kPolicyLogsPageDesktop); +#endif // !BUILDFLAG(IS_IOS) || !!BUILDFLAG(IS_ANDROID) + } // namespace features } // namespace policy
diff --git a/components/policy/core/common/policy_logger.cc b/components/policy/core/common/policy_logger.cc index db32aa3..915178a 100644 --- a/components/policy/core/common/policy_logger.cc +++ b/components/policy/core/common/policy_logger.cc
@@ -168,7 +168,11 @@ return log_dict; } -PolicyLogger::PolicyLogger() = default; +PolicyLogger::PolicyLogger() { + if (base::SequencedTaskRunner::HasCurrentDefault()) { + logging_sequence_ = base::SequencedTaskRunner::GetCurrentDefault(); + } +} PolicyLogger::~PolicyLogger() { DCHECK_CALLED_ON_VALID_SEQUENCE(logs_list_sequence_checker_); @@ -176,6 +180,27 @@ void PolicyLogger::AddLog(PolicyLogger::Log&& new_log) { if (IsPolicyLoggingEnabled()) { + // Skip logging for tests with no task environments. + if (!logging_sequence_) { + return; + } + + // Add the log from the sequence that created the logger if it is not being + // added on the same sequence now. + if (logging_sequence_ != base::SequencedTaskRunner::GetCurrentDefault()) { + logging_sequence_->PostTask( + FROM_HERE, + base::BindOnce(&PolicyLogger::AddLogImpl, weak_factory_.GetWeakPtr(), + std::move(new_log))); + return; + } + + AddLogImpl(std::move(new_log)); + } +} + +void PolicyLogger::AddLogImpl(PolicyLogger::Log&& new_log) { + if (IsPolicyLoggingEnabled()) { DCHECK_CALLED_ON_VALID_SEQUENCE(logs_list_sequence_checker_); logs_.emplace_back(std::move(new_log)); @@ -199,7 +224,7 @@ } void PolicyLogger::ScheduleOldLogsDeletion() { - base::SequencedTaskRunner::GetCurrentDefault()->PostDelayedTask( + logging_sequence_->PostDelayedTask( FROM_HERE, base::BindOnce(&PolicyLogger::DeleteOldLogs, weak_factory_.GetWeakPtr()), kTimeToLive); @@ -221,7 +246,14 @@ #elif BUILDFLAG(IS_IOS) return base::FeatureList::IsEnabled(policy::features::kPolicyLogsPageIOS); #else - return false; + // Check that FeatureList is available as a protection against early startup + // crashes. Some policy providers are initialized very early even before + // base::FeatureList is available, but when policies are finally applied, the + // feature stack is fully initialized. The instance check ensures that the + // final decision is delayed until all features are initialized, without any + // other downstream effect. + return base::FeatureList::GetInstance() && + base::FeatureList::IsEnabled(policy::features::kPolicyLogsPageDesktop); #endif // BUILDFLAG(IS_ANDROID) } @@ -241,4 +273,7 @@ is_log_deletion_enabled_ = false; } +void PolicyLogger::ResetLoggerTaskRunnerForTest() { + logging_sequence_ = base::SequencedTaskRunner::GetCurrentDefault(); +} } // namespace policy
diff --git a/components/policy/core/common/policy_logger.h b/components/policy/core/common/policy_logger.h index 2886fda..7afee35f6 100644 --- a/components/policy/core/common/policy_logger.h +++ b/components/policy/core/common/policy_logger.h
@@ -21,7 +21,6 @@ // messages logged with DLOG are still important to be seen on the // chrome://policy/logs page in release mode. The DLOG call in StreamLog() will // do the check as usual for command line logging. -#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_IOS) #define LOG_POLICY(log_severity, log_source) \ LOG_POLICY_##log_severity(::policy::PolicyLogger::LogHelper::LogType::kLog, \ log_source) @@ -50,12 +49,6 @@ ::policy::PolicyLogger::LogHelper( \ log_type, ::policy::PolicyLogger::Log::Severity::kError, \ ::policy::PolicyLogger::LogHelper::kNoVerboseLog, log_source, FROM_HERE) -#else -#define LOG_POLICY(log_severity, log_source) LOG(log_severity) -#define DLOG_POLICY(log_severity, log_source) DLOG(log_severity) -#define VLOG_POLICY(log_verbosity, log_source) VLOG(log_verbosity) -#define DVLOG_POLICY(log_verbosity, log_source) DVLOG(log_verbosity) -#endif // BUILDFLAG(IS_ANDROID) #define POLICY_AUTH ::policy::PolicyLogger::Log::Source::kAuthentication #define POLICY_PROCESSING ::policy::PolicyLogger::Log::Source::kPolicyProcessing @@ -108,7 +101,7 @@ // Helper class to temporarily hold log information before adding it as a Log // object to the logs list when it is destroyed. - class LogHelper { + class POLICY_EXPORT LogHelper { public: // Value indicating that the log is not from VLOG, DVLOG, and other verbose // log macros. @@ -171,10 +164,18 @@ // test. void ResetLoggerAfterTest(); + // Resets the sequenced task runner after the task environment changes between + // tests in the same test suite. + void ResetLoggerTaskRunnerForTest(); + private: + // Calls `AddLogImpl` or schedules it if called from the wrong sequence to add + // the new log to the logs list. + void AddLog(Log&& new_log); + // Adds a new log to the logs_ list and calls `ScheduleOldLogsDeletion` if // there is no deletion task scheduled. - void AddLog(Log&& new_log); + void AddLogImpl(Log&& new_log); // Deletes logs in the list that have been in the list for `kTimeToLive` // minutes to an hour. @@ -195,6 +196,8 @@ std::vector<Log> logs_ GUARDED_BY_CONTEXT(logs_list_sequence_checker_); + scoped_refptr<base::SequencedTaskRunner> logging_sequence_; + SEQUENCE_CHECKER(logs_list_sequence_checker_); base::WeakPtrFactory<PolicyLogger> weak_factory_{this};
diff --git a/components/policy/core/common/policy_logger_unittest.cc b/components/policy/core/common/policy_logger_unittest.cc index a6ffbac..f893260 100644 --- a/components/policy/core/common/policy_logger_unittest.cc +++ b/components/policy/core/common/policy_logger_unittest.cc
@@ -35,7 +35,11 @@ #elif BUILDFLAG(IS_IOS) scoped_feature_list_.InitWithFeatureState( policy::features::kPolicyLogsPageIOS, true); +#else + scoped_feature_list_.InitWithFeatureState( + policy::features::kPolicyLogsPageDesktop, true); #endif + policy::PolicyLogger::GetInstance()->ResetLoggerTaskRunnerForTest(); } ~PolicyLoggerTest() override = default; @@ -108,6 +112,9 @@ #elif BUILDFLAG(IS_IOS) scoped_feature_list_.InitWithFeatureState( policy::features::kPolicyLogsPageIOS, false); +#else + scoped_feature_list_.InitWithFeatureState( + policy::features::kPolicyLogsPageDesktop, false); #endif PolicyLogger* policy_logger = policy::PolicyLogger::GetInstance();
diff --git a/components/policy/resources/templates/policies.yaml b/components/policy/resources/templates/policies.yaml index ee50a12..8de85897 100644 --- a/components/policy/resources/templates/policies.yaml +++ b/components/policy/resources/templates/policies.yaml
@@ -1108,6 +1108,7 @@ 1107: GoogleSearchSidePanelEnabled 1108: PdfUseSkiaRendererEnabled 1109: DataUrlInSvgUseEnabled + 1110: RSAKeyUsageForLocalAnchorsEnabled atomic_groups: 1: Homepage 2: RemoteAccess
diff --git a/components/policy/resources/templates/policy_definitions/Miscellaneous/RSAKeyUsageForLocalAnchorsEnabled.yaml b/components/policy/resources/templates/policy_definitions/Miscellaneous/RSAKeyUsageForLocalAnchorsEnabled.yaml new file mode 100644 index 0000000..37494dec --- /dev/null +++ b/components/policy/resources/templates/policy_definitions/Miscellaneous/RSAKeyUsageForLocalAnchorsEnabled.yaml
@@ -0,0 +1,60 @@ +caption: Check RSA key usage for server certicates issued by local trust anchors +default: null +desc: |- + The X.509 key usage extension declares how the key in a certificate may be + used. Such instructions ensure certificates are not used in an unintended + context, which protects against a class of cross-protocol attacks on HTTPS and + other protocols. For this to work, HTTPS clients must check that server + certificates match the connection's TLS parameters. + + If this policy is set to enabled, + <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph> will perform this check. + This helps prevent attacks where an attacker manipulates the browser into + interpreting a key in ways that the certificate owner did not intend. + + If this policy is set to disabled, + <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph> will skip this check in + HTTPS connections that both negotiate TLS 1.2 and use an RSA certificate that + chains to a local trust anchor. Examples of local trust anchors include + policy-provided or user-installed root certificates. In all other cases, the + check is performed independent of this policy's setting. + + If the policy is not configured, + <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph> will behave as if the + policy is disabled. + + This policy is available for administrators to preview the behavior of a + future release, which will enable this check by default. At that point, this + policy will remain temporarily available for administrators that need more + time to update. + + Connections which fail this check will fail with the error + ERR_SSL_KEY_USAGE_INCOMPATIBLE. Sites which fail with this error likely have a + misconfigured certificate. Modern ECDHE_RSA cipher suites use the + "digitalSignature" key usage option, while legacy RSA decryption cipher suites + use the "keyEncipherment" key usage option. If unsure, adminstrators should + include both in RSA certificates meant for HTTPS. +example_value: true +features: + dynamic_refresh: true + per_profile: false +items: +- caption: Enable RSA key usage checking + value: true +- caption: Disable RSA key usage checking + value: false +- caption: Use the default setting for RSA key usage checking + value: null +owners: +- davidben@chromium.org +- trusty-transport@chromium.org +schema: + type: boolean +supported_on: +- chrome.*:115- +- chrome_os:115- +- android:115- +- fuchsia:115- +tags: +- system-security +type: main
diff --git a/components/policy/resources/webui/BUILD.gn b/components/policy/resources/webui/BUILD.gn index d7e644e..3ae86bc 100644 --- a/components/policy/resources/webui/BUILD.gn +++ b/components/policy/resources/webui/BUILD.gn
@@ -10,12 +10,9 @@ static_files = [ "policy.html", "policy.css", + "logs/policy_logs.html", ] - if (is_android || is_ios) { - static_files += [ "logs/policy_logs.html" ] - } - # Files holding a Custom element definition AND have an equivalent .html file. web_component_files = [ "policy_conflict.ts", @@ -28,13 +25,9 @@ non_web_component_files = [ "policy_base.ts", "policy.ts", + "logs/types.ts", + "logs/policy_logs.ts", ] - if (is_android || is_ios) { - non_web_component_files += [ - "logs/types.ts", - "logs/policy_logs.ts", - ] - } ts_composite = true ts_definitions = [ "//tools/typescript/definitions/chrome_send.d.ts" ]
diff --git a/components/policy/test/data/policy_test_cases.json b/components/policy/test/data/policy_test_cases.json index 933cd970..3b3e0f50 100644 --- a/components/policy/test/data/policy_test_cases.json +++ b/components/policy/test/data/policy_test_cases.json
@@ -7865,6 +7865,50 @@ } ] }, + "RSAKeyUsageForLocalAnchorsEnabled": { + "os": [ + "win", + "linux", + "mac", + "chromeos_ash", + "chromeos_lacros", + "android", + "fuchsia" + ], + "policy_pref_mapping_tests": [ + { + "note": "Default value (no policies set).", + "prefs": { + "ssl.rsa_key_usage_for_local_anchors_enabled": { + "default_value": false, + "location": "local_state" + } + } + }, + { + "policies": { + "RSAKeyUsageForLocalAnchorsEnabled": false + }, + "prefs": { + "ssl.rsa_key_usage_for_local_anchors_enabled": { + "value": false, + "location": "local_state" + } + } + }, + { + "policies": { + "RSAKeyUsageForLocalAnchorsEnabled": true + }, + "prefs": { + "ssl.rsa_key_usage_for_local_anchors_enabled": { + "value": true, + "location": "local_state" + } + } + } + ] + }, "TripleDESEnabled": { "reason_for_missing_test": "Policy was removed" },
diff --git a/components/reporting/util/BUILD.gn b/components/reporting/util/BUILD.gn index d76c2a6..dadbbf6 100644 --- a/components/reporting/util/BUILD.gn +++ b/components/reporting/util/BUILD.gn
@@ -105,6 +105,18 @@ ] } +source_set("rate_limiter_slide_window") { + sources = [ + "rate_limiter_slide_window.cc", + "rate_limiter_slide_window.h", + ] + + deps = [ + ":rate_limiter_interface", + "//base", + ] +} + # All unit tests are built as part of the //components:components_unittests # target. source_set("unit_tests") { @@ -112,6 +124,7 @@ sources = [ "disconnectable_client_unittest.cc", "file_unittest.cc", + "rate_limiter_slide_window_unittest.cc", "refcounted_closure_list_unittest.cc", "status_macros_unittest.cc", "status_unittest.cc", @@ -122,6 +135,7 @@ ":disconnectable_client", ":file", ":rate_limiter_interface", + ":rate_limiter_slide_window", ":refcounted_closure_list", ":status", ":status_macros",
diff --git a/components/reporting/util/rate_limiter_slide_window.cc b/components/reporting/util/rate_limiter_slide_window.cc new file mode 100644 index 0000000..26313c6 --- /dev/null +++ b/components/reporting/util/rate_limiter_slide_window.cc
@@ -0,0 +1,91 @@ +// Copyright 2023 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "components/reporting/util/rate_limiter_slide_window.h" + +#include <cstddef> +#include <utility> + +#include "base/check.h" +#include "base/memory/weak_ptr.h" +#include "base/sequence_checker.h" +#include "base/time/time.h" + +namespace reporting { + +RateLimiterSlideWindow::RateLimiterSlideWindow(size_t total_size, + base::TimeDelta time_window, + size_t bucket_count) + : total_size_(total_size), + time_bucket_(time_window / bucket_count), + bucket_count_(bucket_count), + start_timestamp_(base::Time::Min()) { + DCHECK_GT(total_size, 0u); + DCHECK_GT(time_window, base::TimeDelta()); + DCHECK_GT(bucket_count, 0u); + DETACH_FROM_SEQUENCE(sequence_checker_); +} + +RateLimiterSlideWindow::~RateLimiterSlideWindow() { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); +} + +void RateLimiterSlideWindow::BucketsShift() { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + DCHECK(!bucket_events_size_.empty()); + const auto now = base::Time::Now(); + const auto earliest_time = now - bucket_count_ * time_bucket_; + // If the earliet bucket is obsolete, drop it. + if (start_timestamp_ <= earliest_time) { + DCHECK_GE(current_size_, bucket_events_size_.front()); + current_size_ -= bucket_events_size_.front(); + bucket_events_size_.pop(); + start_timestamp_ += time_bucket_; + } + // If more buckets are there, repeat once the earliest bucket becomes + // obsolete. + if (!bucket_events_size_.empty()) { + base::SequencedTaskRunner::GetCurrentDefault()->PostDelayedTask( + FROM_HERE, + base::BindOnce(&RateLimiterSlideWindow::BucketsShift, + weak_ptr_factory_.GetWeakPtr()), + time_bucket_); + } +} + +bool RateLimiterSlideWindow::Acquire(size_t event_size) { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + const auto now = base::Time::Now(); + // Check whether the new event size fits. + if (current_size_ + event_size > total_size_) { + return false; // Too large, cannot add. + } + // Event size fits in the window. + if (bucket_events_size_.empty()) { + // Window is empty, populate it with the new event only. + bucket_events_size_.push(event_size); + current_size_ = event_size; + start_timestamp_ = now; + // Initiate bucket purging, there are non-empty buckets now. + base::SequencedTaskRunner::GetCurrentDefault()->PostDelayedTask( + FROM_HERE, + base::BindOnce(&RateLimiterSlideWindow::BucketsShift, + weak_ptr_factory_.GetWeakPtr()), + time_bucket_); + } else { + // Window is not empty, pad it with 0 buckets if necessary. + for (auto next_timestamp = + start_timestamp_ + bucket_events_size_.size() * time_bucket_; + next_timestamp <= now; next_timestamp += time_bucket_) { + bucket_events_size_.push(0u); + } + // Add the new event to the last bucket (which could be empty). + DCHECK_LE(bucket_events_size_.size(), bucket_count_); + bucket_events_size_.back() += event_size; + current_size_ += event_size; + // No need to initiate bucket purging - it is already scheduled. + } + return true; +} +} // namespace reporting
diff --git a/components/reporting/util/rate_limiter_slide_window.h b/components/reporting/util/rate_limiter_slide_window.h new file mode 100644 index 0000000..03b770a --- /dev/null +++ b/components/reporting/util/rate_limiter_slide_window.h
@@ -0,0 +1,71 @@ +// Copyright 2023 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef COMPONENTS_REPORTING_UTIL_RATE_LIMITER_SLIDE_WINDOW_H_ +#define COMPONENTS_REPORTING_UTIL_RATE_LIMITER_SLIDE_WINDOW_H_ + +#include <cstddef> +#include <queue> + +#include "base/functional/bind.h" +#include "base/memory/weak_ptr.h" +#include "base/sequence_checker.h" +#include "base/task/sequenced_task_runner.h" +#include "base/time/time.h" +#include "components/reporting/util/rate_limiter_interface.h" + +namespace reporting { + +// Rate limiter implementation of the bucket slide window algorithm. +// It limits the total size of the events by `total_size` and tracks them +// using `bucket_count` buckets comprising `time_window` (thus each bucket +// tracks a period of `time_window / bucket_count`). +class RateLimiterSlideWindow : public RateLimiterInterface { + public: + RateLimiterSlideWindow(size_t total_size, + base::TimeDelta time_window, + size_t bucket_count); + + RateLimiterSlideWindow(const RateLimiterSlideWindow&) = delete; + RateLimiterSlideWindow& operator=(const RateLimiterSlideWindow&) = delete; + + ~RateLimiterSlideWindow() override; + + // If the event is allowed, the method returns `true` and updates state to + // prepare for the next call. Otherwise returns false. + bool Acquire(size_t event_size) override; + + private: + // Called every `time_bucket_` as long as `bucket_events_size_` is not empty. + // Shifts buckets by one (drops the oldest bucket, adds a new empty one). + void BucketsShift(); + + SEQUENCE_CHECKER(sequence_checker_); + + // Total size of all events to be accepted in the window. + const size_t total_size_; + + // Window bucket time period. Must be positive. + const base::TimeDelta time_bucket_; + + // Window time span is determined as `bucket_count_` * `time_bucket_`. + // Must be positive. + const size_t bucket_count_; + + // The events size aggregated over `bucket_count_` * `time_bucket_`. + size_t current_size_ GUARDED_BY_CONTEXT(sequence_checker_) = 0u; + + // Events sizes per bucket; undefined if empty, otherwise `front()` matches + // `[start_timestamp_, start_timestamp_ + time_bucket_)` interval. + std::queue<size_t> bucket_events_size_ GUARDED_BY_CONTEXT(sequence_checker_); + + // First bucket timestamp. + base::Time start_timestamp_ GUARDED_BY_CONTEXT(sequence_checker_); + + // Weak ptr factory. + base::WeakPtrFactory<RateLimiterSlideWindow> weak_ptr_factory_{this}; +}; +} // namespace reporting + +#endif // COMPONENTS_REPORTING_UTIL_RATE_LIMITER_SLIDE_WINDOW_H_
diff --git a/components/reporting/util/rate_limiter_slide_window_unittest.cc b/components/reporting/util/rate_limiter_slide_window_unittest.cc new file mode 100644 index 0000000..7b14a95 --- /dev/null +++ b/components/reporting/util/rate_limiter_slide_window_unittest.cc
@@ -0,0 +1,63 @@ +// Copyright 2023 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "components/reporting/util/rate_limiter_slide_window.h" + +#include <cstddef> + +#include "base/rand_util.h" +#include "base/test/task_environment.h" +#include "base/time/time.h" +#include "testing/gmock/include/gmock/gmock.h" +#include "testing/gtest/include/gtest/gtest.h" + +namespace reporting { +namespace { + +constexpr size_t kTotalSize = 1024u; +constexpr base::TimeDelta kTimeWindow = base::Seconds(16); +constexpr size_t kBucketCount = 8; +constexpr base::TimeDelta kBucket = kTimeWindow / kBucketCount; + +class RateLimiterSlideWindowTest : public ::testing::Test { + protected: + base::test::TaskEnvironment task_environment_{ + base::test::TaskEnvironment::TimeSource::MOCK_TIME}; + + RateLimiterSlideWindow rate_limiter_{kTotalSize, kTimeWindow, kBucketCount}; +}; + +TEST_F(RateLimiterSlideWindowTest, SingularEvent) { + ASSERT_FALSE(rate_limiter_.Acquire(kTotalSize + 1)); + ASSERT_TRUE(rate_limiter_.Acquire(kTotalSize)); + ASSERT_FALSE(rate_limiter_.Acquire(1u)); + task_environment_.FastForwardBy(kTimeWindow - kBucket); + ASSERT_FALSE(rate_limiter_.Acquire(kTotalSize)); + task_environment_.FastForwardBy(kBucket); + ASSERT_TRUE(rate_limiter_.Acquire(kTotalSize)); + ASSERT_FALSE(rate_limiter_.Acquire(1u)); +} + +TEST_F(RateLimiterSlideWindowTest, SteadyEventsStream) { + for (size_t i = 0; i < 2 * kBucketCount; ++i) { + ASSERT_TRUE(rate_limiter_.Acquire(kTotalSize / kBucketCount)); + if (i >= kBucketCount) { + ASSERT_FALSE(rate_limiter_.Acquire(1u)); + } + task_environment_.FastForwardBy(kBucket); + } +} + +TEST_F(RateLimiterSlideWindowTest, RandomizedEventsStream) { + for (size_t i = 0; i < 2 * kBucketCount; ++i) { + ASSERT_TRUE(rate_limiter_.Acquire(kTotalSize / kBucketCount)); + if (i >= kBucketCount) { + ASSERT_FALSE(rate_limiter_.Acquire(1u)); + } + task_environment_.FastForwardBy(kBucket + + base::Milliseconds(base::RandInt(0, 100))); + } +} +} // namespace +} // namespace reporting
diff --git a/components/resources/default_100_percent/autofill/metadata/amex.png b/components/resources/default_100_percent/autofill/metadata/amex.png index 44efed3..1da7b43 100644 --- a/components/resources/default_100_percent/autofill/metadata/amex.png +++ b/components/resources/default_100_percent/autofill/metadata/amex.png Binary files differ
diff --git a/components/resources/default_200_percent/autofill/metadata/amex.png b/components/resources/default_200_percent/autofill/metadata/amex.png index d970ef08..b449737 100644 --- a/components/resources/default_200_percent/autofill/metadata/amex.png +++ b/components/resources/default_200_percent/autofill/metadata/amex.png Binary files differ
diff --git a/components/resources/default_300_percent/autofill/metadata/amex.png b/components/resources/default_300_percent/autofill/metadata/amex.png index f5571bb8..58a97399d 100644 --- a/components/resources/default_300_percent/autofill/metadata/amex.png +++ b/components/resources/default_300_percent/autofill/metadata/amex.png Binary files differ
diff --git a/components/safe_browsing/core/browser/db/BUILD.gn b/components/safe_browsing/core/browser/db/BUILD.gn index e9a3fc1..7536ab93 100644 --- a/components/safe_browsing/core/browser/db/BUILD.gn +++ b/components/safe_browsing/core/browser/db/BUILD.gn
@@ -130,6 +130,7 @@ ":v4_protocol_manager_util", ":v4_store", "//base", + "//components/safe_browsing/core/common", "//components/safe_browsing/core/common/proto:webui_proto", ] }
diff --git a/components/safe_browsing/core/browser/db/v4_database.cc b/components/safe_browsing/core/browser/db/v4_database.cc index eb5f11a..d894987 100644 --- a/components/safe_browsing/core/browser/db/v4_database.cc +++ b/components/safe_browsing/core/browser/db/v4_database.cc
@@ -18,6 +18,7 @@ #include "base/task/sequenced_task_runner.h" #include "base/time/time.h" #include "build/build_config.h" +#include "components/safe_browsing/core/common/features.h" #include "components/safe_browsing/core/common/proto/webui.pb.h" #if BUILDFLAG(IS_APPLE) @@ -274,22 +275,35 @@ } void V4Database::GetStoresMatchingFullHash( - const FullHashStr& full_hash, + const std::vector<FullHashStr>& full_hashes, const StoresToCheck& stores_to_check, - StoreAndHashPrefixes* matched_store_and_hash_prefixes) { + base::OnceCallback<void(FullHashToStoreAndHashPrefixesMap)> callback) { + FullHashToStoreAndHashPrefixesMap results; DCHECK_CALLED_ON_VALID_SEQUENCE(sb_sequence_checker_); - matched_store_and_hash_prefixes->clear(); - for (const ListIdentifier& identifier : stores_to_check) { - if (!IsStoreAvailable(identifier)) - continue; - const auto& store_pair = store_map_->find(identifier); - DCHECK(store_pair != store_map_->end()); - const std::unique_ptr<V4Store>& store = store_pair->second; - HashPrefixStr hash_prefix = store->GetMatchingHashPrefix(full_hash); - if (!hash_prefix.empty()) { - matched_store_and_hash_prefixes->emplace_back(identifier, hash_prefix); + for (const auto& full_hash : full_hashes) { + for (const ListIdentifier& identifier : stores_to_check) { + if (!IsStoreAvailable(identifier)) { + continue; + } + const auto& store_pair = store_map_->find(identifier); + DCHECK(store_pair != store_map_->end()); + const std::unique_ptr<V4Store>& store = store_pair->second; + HashPrefixStr hash_prefix = store->GetMatchingHashPrefix(full_hash); + if (!hash_prefix.empty()) { + results[full_hash].emplace_back(identifier, hash_prefix); + } } } + + if (base::FeatureList::IsEnabled(kMmapSafeBrowsingDatabase) && + kMmapSafeBrowsingDatabaseAsync.Get()) { + // Until this is asynchronous for accessing memory mapped files on + // background threads, simulate this being async. + base::SequencedTaskRunner::GetCurrentDefault()->PostTask( + FROM_HERE, base::BindOnce(std::move(callback), std::move(results))); + } else { + std::move(callback).Run(std::move(results)); + } } void V4Database::ResetStores(
diff --git a/components/safe_browsing/core/browser/db/v4_database.h b/components/safe_browsing/core/browser/db/v4_database.h index c81bf3e..54de287 100644 --- a/components/safe_browsing/core/browser/db/v4_database.h +++ b/components/safe_browsing/core/browser/db/v4_database.h
@@ -150,13 +150,14 @@ virtual bool AreAnyStoresAvailable( const StoresToCheck& stores_to_check) const; - // Searches for a hash prefix matching the |full_hash| in stores in the - // database, filtered by |stores_to_check|, and returns the identifier of the - // store along with the matching hash prefix in |matched_hash_prefix_map|. + // Searches for hash prefixes matching the |full_hashes| in stores in the + // database, filtered by |stores_to_check|. The callback is run synchronously, + // or asynchronously if MmapSafeBrowsingDatabaseAsync is enabled, with the + // identifier of the stores along with the matching hash prefixes. virtual void GetStoresMatchingFullHash( - const FullHashStr& full_hash, + const std::vector<FullHashStr>& full_hashes, const StoresToCheck& stores_to_check, - StoreAndHashPrefixes* matched_store_and_full_hashes); + base::OnceCallback<void(FullHashToStoreAndHashPrefixesMap)> callback); // Returns the file size of the store in bytes. Returns 0 if the store is not // found.
diff --git a/components/safe_browsing/core/browser/db/v4_database_unittest.cc b/components/safe_browsing/core/browser/db/v4_database_unittest.cc index eaecd949..a9ca7fc2 100644 --- a/components/safe_browsing/core/browser/db/v4_database_unittest.cc +++ b/components/safe_browsing/core/browser/db/v4_database_unittest.cc
@@ -12,6 +12,7 @@ #include "base/run_loop.h" #include "base/task/sequenced_task_runner.h" #include "base/test/task_environment.h" +#include "base/test/test_future.h" #include "base/test/test_simple_task_runner.h" #include "components/safe_browsing/core/browser/db/v4_database.h" #include "components/safe_browsing/core/browser/db/v4_store.h" @@ -361,9 +362,11 @@ EXPECT_EQ(true, created_and_called_back_); StoresToCheck stores_to_check({linux_malware_id_, win_malware_id_}); - StoreAndHashPrefixes store_and_hash_prefixes; - v4_database_->GetStoresMatchingFullHash("anything", stores_to_check, - &store_and_hash_prefixes); + base::test::TestFuture<FullHashToStoreAndHashPrefixesMap> results; + v4_database_->GetStoresMatchingFullHash({"anything"}, stores_to_check, + results.GetCallback()); + FullHashToStoreAndHashPrefixesMap map = results.Get(); + StoreAndHashPrefixes store_and_hash_prefixes = map["anything"]; EXPECT_EQ(2u, store_and_hash_prefixes.size()); StoresToCheck stores_found; for (const auto& it : store_and_hash_prefixes) { @@ -383,10 +386,12 @@ WaitForTasksOnTaskRunner(); EXPECT_EQ(true, created_and_called_back_); - StoreAndHashPrefixes store_and_hash_prefixes; + base::test::TestFuture<FullHashToStoreAndHashPrefixesMap> results; v4_database_->GetStoresMatchingFullHash( - "anything", StoresToCheck({linux_malware_id_, win_malware_id_}), - &store_and_hash_prefixes); + {"anything"}, StoresToCheck({linux_malware_id_, win_malware_id_}), + results.GetCallback()); + FullHashToStoreAndHashPrefixesMap map = results.Get(); + StoreAndHashPrefixes store_and_hash_prefixes = map["anything"]; EXPECT_TRUE(store_and_hash_prefixes.empty()); } @@ -407,10 +412,12 @@ v4_database_->store_map_->at(win_malware_id_).get()); store->set_hash_prefix_matches(true); - StoreAndHashPrefixes store_and_hash_prefixes; + base::test::TestFuture<FullHashToStoreAndHashPrefixesMap> results; v4_database_->GetStoresMatchingFullHash( - "anything", StoresToCheck({linux_malware_id_, win_malware_id_}), - &store_and_hash_prefixes); + {"anything"}, StoresToCheck({linux_malware_id_, win_malware_id_}), + results.GetCallback()); + FullHashToStoreAndHashPrefixesMap map = results.Get(); + StoreAndHashPrefixes store_and_hash_prefixes = map["anything"]; EXPECT_EQ(1u, store_and_hash_prefixes.size()); EXPECT_EQ(store_and_hash_prefixes.begin()->list_id, win_malware_id_); EXPECT_FALSE(store_and_hash_prefixes.begin()->hash_prefix.empty()); @@ -430,9 +437,11 @@ EXPECT_EQ(true, created_and_called_back_); // Don't add win_malware_id_ to the StoresToCheck. - StoreAndHashPrefixes store_and_hash_prefixes; + base::test::TestFuture<FullHashToStoreAndHashPrefixesMap> results; v4_database_->GetStoresMatchingFullHash( - "anything", StoresToCheck({linux_malware_id_}), &store_and_hash_prefixes); + {"anything"}, StoresToCheck({linux_malware_id_}), results.GetCallback()); + FullHashToStoreAndHashPrefixesMap map = results.Get(); + StoreAndHashPrefixes store_and_hash_prefixes = map["anything"]; EXPECT_EQ(1u, store_and_hash_prefixes.size()); EXPECT_EQ(store_and_hash_prefixes.begin()->list_id, linux_malware_id_); EXPECT_FALSE(store_and_hash_prefixes.begin()->hash_prefix.empty());
diff --git a/components/safe_browsing/core/browser/db/v4_get_hash_protocol_manager.h b/components/safe_browsing/core/browser/db/v4_get_hash_protocol_manager.h index 1fea353..edfd2ab 100644 --- a/components/safe_browsing/core/browser/db/v4_get_hash_protocol_manager.h +++ b/components/safe_browsing/core/browser/db/v4_get_hash_protocol_manager.h
@@ -42,11 +42,6 @@ class V4GetHashProtocolManagerFuzzer; -// The matching hash prefixes and corresponding stores, for each full hash -// generated for a given URL. -typedef std::unordered_map<FullHashStr, StoreAndHashPrefixes> - FullHashToStoreAndHashPrefixesMap; - // ---------------------------------------------------------------- // All information about a particular full hash i.e. negative TTL, store for
diff --git a/components/safe_browsing/core/browser/db/v4_local_database_manager.cc b/components/safe_browsing/core/browser/db/v4_local_database_manager.cc index 7057aea4..b1080396 100644 --- a/components/safe_browsing/core/browser/db/v4_local_database_manager.cc +++ b/components/safe_browsing/core/browser/db/v4_local_database_manager.cc
@@ -271,6 +271,25 @@ } } +bool GetPrefixMatchesIsAsync() { + return base::FeatureList::IsEnabled(kMmapSafeBrowsingDatabase) && + kMmapSafeBrowsingDatabaseAsync.Get(); +} + +void HandleUrlCallback(base::OnceCallback<void(bool)> callback, + FullHashToStoreAndHashPrefixesMap results) { + bool allowed = !results.empty(); + if (GetPrefixMatchesIsAsync()) { + // This callback was already run asynchronously so no need for another + // thread hop. + std::move(callback).Run(allowed); + } else { + // Need a thread hop to avoid reentrancy. + base::SequencedTaskRunner::GetCurrentDefault()->PostTask( + FROM_HERE, base::BindOnce(std::move(callback), allowed)); + } +} + } // namespace V4LocalDatabaseManager::PendingCheck::PendingCheck( @@ -529,12 +548,8 @@ std::vector<GURL>(1, url), MechanismExperimentHashDatabaseCache::kNoExperiment); - AsyncMatch result = - HandleAllowlistCheck(std::move(check), /*allow_async_check=*/false); - DCHECK_NE(AsyncMatch::ASYNC, result); - sb_task_runner()->PostTask( - FROM_HERE, - base::BindOnce(std::move(callback), result == AsyncMatch::MATCH)); + HandleAllowlistCheck(std::move(check), /*allow_async_full_hash_check=*/false, + std::move(callback)); } bool V4LocalDatabaseManager::CheckUrlForSubresourceFilter(const GURL& url, @@ -580,7 +595,9 @@ std::vector<GURL>(1, url), MechanismExperimentHashDatabaseCache::kNoExperiment); - return HandleAllowlistCheck(std::move(check), /*allow_async_check=*/true); + return HandleAllowlistCheck(std::move(check), + /*allow_async_full_hash_check=*/true, + base::OnceCallback<void(bool)>()); } void V4LocalDatabaseManager::MatchDownloadAllowlistUrl( @@ -733,23 +750,14 @@ } } -bool V4LocalDatabaseManager::GetPrefixMatches( - const std::unique_ptr<PendingCheck>& check) { +void V4LocalDatabaseManager::GetPrefixMatches( + PendingCheck* check, + base::OnceCallback<void(FullHashToStoreAndHashPrefixesMap)> callback) { DCHECK(sb_task_runner()->RunsTasksInCurrentSequence()); DCHECK(enabled_); - check->full_hash_to_store_and_hash_prefixes.clear(); - for (const auto& full_hash : check->full_hashes) { - StoreAndHashPrefixes matched_store_and_hash_prefixes; - v4_database_->GetStoresMatchingFullHash(full_hash, check->stores_to_check, - &matched_store_and_hash_prefixes); - if (!matched_store_and_hash_prefixes.empty()) { - (check->full_hash_to_store_and_hash_prefixes)[full_hash] = - matched_store_and_hash_prefixes; - } - } - - return !check->full_hash_to_store_and_hash_prefixes.empty(); + v4_database_->GetStoresMatchingFullHash( + check->full_hashes, check->stores_to_check, std::move(callback)); } void V4LocalDatabaseManager::GetSeverestThreatTypeAndMetadata( @@ -803,37 +811,107 @@ AsyncMatch V4LocalDatabaseManager::HandleAllowlistCheck( std::unique_ptr<PendingCheck> check, - bool allow_async_check) { + bool allow_async_full_hash_check, + base::OnceCallback<void(bool)> callback) { // We don't bother queuing allowlist checks since the DB will // normally be available already -- allowlists are used after page load, // and navigations are blocked until the DB is ready and dequeues checks. // The caller should have already checked that the DB is ready. DCHECK(v4_database_); - GetPrefixMatches(check); + PendingCheck* check_ptr = check.get(); + AsyncMatch match; + + GetPrefixMatches( + check_ptr, + base::BindOnce(&V4LocalDatabaseManager::HandleAllowlistCheckContinuation, + weak_factory_.GetWeakPtr(), std::move(check), + allow_async_full_hash_check, std::move(callback), + GetPrefixMatchesIsAsync() ? nullptr : &match)); + + if (GetPrefixMatchesIsAsync()) { + AddPendingCheck(check_ptr); + return AsyncMatch::ASYNC; + } + + return match; +} + +void V4LocalDatabaseManager::HandleAllowlistCheckContinuation( + std::unique_ptr<PendingCheck> check, + bool allow_async_full_hash_check, + base::OnceCallback<void(bool)> callback, + AsyncMatch* match, + FullHashToStoreAndHashPrefixesMap results) { + DCHECK(sb_task_runner()->RunsTasksInCurrentSequence()); + + AsyncMatch local_match; + if (GetPrefixMatchesIsAsync()) { + if (!enabled_) { + DCHECK(pending_checks_.empty()); + return; + } + + const auto it = pending_checks_.find(check.get()); + if (it == pending_checks_.end()) { + // The check has since been cancelled. + return; + } + + RemovePendingCheck(it); + match = &local_match; + } + + check->full_hash_to_store_and_hash_prefixes = results; GetArtificialPrefixMatches(check); if (check->full_hash_to_store_and_hash_prefixes.empty() && check->artificial_full_hash_to_store_and_hash_prefixes.empty()) { - return AsyncMatch::NO_MATCH; - } + *match = AsyncMatch::NO_MATCH; + } else { + // Look for any full-length hash in the matches. If there is one, + // there's no need for a full-hash check. This saves bandwidth for + // very popular sites since they'll have full-length hashes locally. + // These loops will have exactly 1 entry most of the time. + bool found = false; + for (const auto& entry : check->full_hash_to_store_and_hash_prefixes) { + for (const auto& store_and_prefix : entry.second) { + if (store_and_prefix.hash_prefix.size() == kMaxHashPrefixLength) { + *match = AsyncMatch::MATCH; + found = true; + break; + } + } + } - // Look for any full-length hash in the matches. If there is one, - // there's no need for a full-hash check. This saves bandwidth for - // very popular sites since they'll have full-length hashes locally. - // These loops will have exactly 1 entry most of the time. - for (const auto& entry : check->full_hash_to_store_and_hash_prefixes) { - for (const auto& store_and_prefix : entry.second) { - if (store_and_prefix.hash_prefix.size() == kMaxHashPrefixLength) { - return AsyncMatch::MATCH; + if (!found) { + if (!allow_async_full_hash_check) { + *match = AsyncMatch::NO_MATCH; + } else { + *match = AsyncMatch::ASYNC; + ScheduleFullHashCheck(std::move(check)); + return; } } } - if (!allow_async_check) { - return AsyncMatch::NO_MATCH; + if (check->client_callback_type == ClientCallbackType::CHECK_OTHER) { + bool result = *match == AsyncMatch::MATCH; + if (GetPrefixMatchesIsAsync()) { + // This is already asynchronous so no need for another PostTask. + std::move(callback).Run(result); + } else { + sb_task_runner()->PostTask(FROM_HERE, + base::BindOnce(std::move(callback), result)); + } + } else if (check->client_callback_type == + ClientCallbackType::CHECK_CSD_ALLOWLIST) { + if (GetPrefixMatchesIsAsync()) { + check->most_severe_threat_type = SB_THREAT_TYPE_CSD_ALLOWLIST; + RespondToClient(std::move(check)); + } + } else { + NOTREACHED(); } - ScheduleFullHashCheck(std::move(check)); - return AsyncMatch::ASYNC; } bool V4LocalDatabaseManager::HandleCheck(std::unique_ptr<PendingCheck> check) { @@ -842,15 +920,57 @@ return false; } - GetPrefixMatches(check); + PendingCheck* check_ptr = check.get(); + AsyncMatch match; + GetPrefixMatches( + check_ptr, + base::BindOnce(&V4LocalDatabaseManager::HandleCheckContinuation, + weak_factory_.GetWeakPtr(), std::move(check), + GetPrefixMatchesIsAsync() ? nullptr : &match)); + + if (GetPrefixMatchesIsAsync()) { + AddPendingCheck(check_ptr); + return false; + } + + return match == AsyncMatch::NO_MATCH; +} + +void V4LocalDatabaseManager::HandleCheckContinuation( + std::unique_ptr<PendingCheck> check, + AsyncMatch* match, + FullHashToStoreAndHashPrefixesMap results) { + AsyncMatch local_match; + if (GetPrefixMatchesIsAsync()) { + if (!enabled_) { + DCHECK(pending_checks_.empty()); + return; + } + + const auto it = pending_checks_.find(check.get()); + if (it == pending_checks_.end()) { + // The check has since been cancelled. + return; + } + + RemovePendingCheck(it); + match = &local_match; + } + + check->full_hash_to_store_and_hash_prefixes = results; GetArtificialPrefixMatches(check); if (check->full_hash_to_store_and_hash_prefixes.empty() && check->artificial_full_hash_to_store_and_hash_prefixes.empty()) { - return true; - } + *match = AsyncMatch::NO_MATCH; - ScheduleFullHashCheck(std::move(check)); - return false; + if (GetPrefixMatchesIsAsync()) { + RespondToClient(std::move(check)); + } + } else { + *match = AsyncMatch::ASYNC; + + ScheduleFullHashCheck(std::move(check)); + } } void V4LocalDatabaseManager::PopulateArtificialDatabase() { @@ -917,8 +1037,8 @@ std::vector<GURL>(1, url), MechanismExperimentHashDatabaseCache::kNoExperiment); - sb_task_runner()->PostTask( - FROM_HERE, base::BindOnce(std::move(callback), GetPrefixMatches(check))); + GetPrefixMatches(check.get(), + base::BindOnce(&HandleUrlCallback, std::move(callback))); } void V4LocalDatabaseManager::OnFullHashResponse( @@ -977,12 +1097,42 @@ checks.swap(queued_checks_); for (auto& it : checks) { - if (!GetPrefixMatches(it)) { - RespondToClient(std::move(it)); - } else { - AddPendingCheck(it.get()); - PerformFullHashCheck(std::move(it)); + PendingCheck* check_ptr = it.get(); + + if (GetPrefixMatchesIsAsync()) { + AddPendingCheck(check_ptr); } + + GetPrefixMatches( + check_ptr, + base::BindOnce(&V4LocalDatabaseManager::ProcessQueuedChecksContinuation, + weak_factory_.GetWeakPtr(), std::move(it))); + } +} + +void V4LocalDatabaseManager::ProcessQueuedChecksContinuation( + std::unique_ptr<PendingCheck> check, + FullHashToStoreAndHashPrefixesMap results) { + if (GetPrefixMatchesIsAsync()) { + if (!enabled_) { + DCHECK(pending_checks_.empty()); + return; + } + + const auto it = pending_checks_.find(check.get()); + if (it == pending_checks_.end()) { + // The check has since been cancelled. + return; + } + + RemovePendingCheck(it); + } + + if (results.empty()) { + RespondToClient(std::move(check)); + } else { + AddPendingCheck(check.get()); + PerformFullHashCheck(std::move(check)); } }
diff --git a/components/safe_browsing/core/browser/db/v4_local_database_manager.h b/components/safe_browsing/core/browser/db/v4_local_database_manager.h index 04a04ca8..920593a 100644 --- a/components/safe_browsing/core/browser/db/v4_local_database_manager.h +++ b/components/safe_browsing/core/browser/db/v4_local_database_manager.h
@@ -260,8 +260,12 @@ void GetArtificialPrefixMatches(const std::unique_ptr<PendingCheck>& check); // Identifies the prefixes and the store they matched in, for a given |check|. - // Returns true if one or more hash prefix matches are found; false otherwise. - bool GetPrefixMatches(const std::unique_ptr<PendingCheck>& check); + // The callback is run synchronously, or asynchronously if + // MmapSafeBrowsingDatabaseAsync is enabled, with the identifier of the stores + // along with the matching hash prefixes. + void GetPrefixMatches( + PendingCheck* check, + base::OnceCallback<void(FullHashToStoreAndHashPrefixesMap)> callback); // Goes over the |full_hash_infos| and stores the most severe SBThreatType in // |most_severe_threat_type|, the corresponding metadata in |metadata|, and @@ -285,13 +289,29 @@ // schedules a task to perform full hash check and returns false. bool HandleCheck(std::unique_ptr<PendingCheck> check); + // `match` is only valid if kMmapSafeBrowsingDatabaseAsync is false. + void HandleCheckContinuation(std::unique_ptr<PendingCheck> check, + AsyncMatch* match, + FullHashToStoreAndHashPrefixesMap results); + // Like HandleCheck, but for allowlists that have both full-hashes and - // partial hashes in the DB. If |allow_async_check| is false, it will only - // return either MATCH or NO_MATCH. If |allow_async_check| is true, it returns + // partial hashes in the DB. If |allow_async_full_hash_check| is false, it + // will only return either MATCH or NO_MATCH unless + // kMmapSafeBrowsingDatabaseAsync is enabled in which case it will return + // ASYNC. If |allow_async_full_hash_check| is true, it returns // MATCH, NO_MATCH, or ASYNC. In the ASYNC case, it will schedule performing // the full hash check. AsyncMatch HandleAllowlistCheck(std::unique_ptr<PendingCheck> check, - bool allow_async_check); + bool allow_async_full_hash_check, + base::OnceCallback<void(bool)> callback); + + // `match` is only valid if async is kMmapSafeBrowsingDatabaseAsync is false. + void HandleAllowlistCheckContinuation( + std::unique_ptr<PendingCheck> check, + bool allow_async_full_hash_check, + base::OnceCallback<void(bool)> callback, + AsyncMatch* match, + FullHashToStoreAndHashPrefixesMap results); // Computes the hashes of URLs that have artificially been marked as unsafe // using any of the following command line flags: "mark_as_phishing", @@ -322,6 +342,10 @@ // while the database was loading from disk. void ProcessQueuedChecks(); + void ProcessQueuedChecksContinuation( + std::unique_ptr<PendingCheck> check, + FullHashToStoreAndHashPrefixesMap results); + // Called on StopOnSBThread, it responds to the clients that are (1) waiting // for the database to become available with the verdict as SAFE, or (2) // waiting for a full hash response from the SafeBrowsing service. @@ -417,10 +441,13 @@ // name of the file on disk that would contain the prefixes, if applicable. ListInfos list_infos_; - // The checks awaiting for a full hash response from the SafeBrowsing service. // These are used to avoid responding to a client if it cancels a pending // check, and to respond back "safe" to all waiting clients if SafeBrowsing is - // stopped. + // stopped. This occurs in two conditions: + // 1) If kMmapSafeBrowsingDatabaseAsync is enabled then the hash prefix map + // lookup is asynchronous. + // 2) Checks are awaiting for a full hash response from the SafeBrowsing + // service. PendingChecks pending_checks_; // The checks that need to be scheduled when the database becomes ready for
diff --git a/components/safe_browsing/core/browser/db/v4_local_database_manager_unittest.cc b/components/safe_browsing/core/browser/db/v4_local_database_manager_unittest.cc index 572bdc4..1b3b625 100644 --- a/components/safe_browsing/core/browser/db/v4_local_database_manager_unittest.cc +++ b/components/safe_browsing/core/browser/db/v4_local_database_manager_unittest.cc
@@ -27,6 +27,7 @@ #include "components/safe_browsing/core/browser/db/v4_database.h" #include "components/safe_browsing/core/browser/db/v4_protocol_manager_util.h" #include "components/safe_browsing/core/browser/db/v4_test_util.h" +#include "components/safe_browsing/core/common/features.h" #include "crypto/sha2.h" #include "services/network/public/cpp/shared_url_loader_factory.h" #include "services/network/public/cpp/weak_wrapper_shared_url_loader_factory.h" @@ -171,18 +172,29 @@ // V4Database implementation void GetStoresMatchingFullHash( - const FullHashStr& full_hash, + const std::vector<FullHashStr>& full_hashes, const StoresToCheck& stores_to_check, - StoreAndHashPrefixes* store_and_hash_prefixes) override { - store_and_hash_prefixes->clear(); - for (const StoreAndHashPrefix& stored_sahp : store_and_hash_prefixes_) { - if (stores_to_check.count(stored_sahp.list_id) == 0) { - continue; + base::OnceCallback<void(FullHashToStoreAndHashPrefixesMap)> callback) + override { + FullHashToStoreAndHashPrefixesMap results; + for (const auto& full_hash : full_hashes) { + for (const StoreAndHashPrefix& stored_sahp : store_and_hash_prefixes_) { + if (stores_to_check.count(stored_sahp.list_id) == 0) { + continue; + } + const PrefixSize& prefix_size = stored_sahp.hash_prefix.size(); + if (!full_hash.compare(0, prefix_size, stored_sahp.hash_prefix)) { + results[full_hash].push_back(stored_sahp); + } } - const PrefixSize& prefix_size = stored_sahp.hash_prefix.size(); - if (!full_hash.compare(0, prefix_size, stored_sahp.hash_prefix)) { - store_and_hash_prefixes->push_back(stored_sahp); - } + } + if (base::FeatureList::IsEnabled(kMmapSafeBrowsingDatabase) && + kMmapSafeBrowsingDatabaseAsync.Get()) { + // Simulate async behavior of real implementation. + base::SequencedTaskRunner::GetCurrentDefault()->PostTask( + FROM_HERE, base::BindOnce(std::move(callback), std::move(results))); + } else { + std::move(callback).Run(std::move(results)); } } @@ -557,10 +569,21 @@ TEST_F(V4LocalDatabaseManagerTest, TestCheckBrowseUrlWithEmptyStoresReturnsNoMatch) { WaitForTasksOnTaskRunner(); - // Both the stores are empty right now so CheckBrowseUrl should return true. - EXPECT_TRUE(v4_local_database_manager_->CheckBrowseUrl( - GURL("http://example.com/a/"), usual_threat_types_, nullptr, - MechanismExperimentHashDatabaseCache::kNoExperiment)); + const GURL url("http://example.com/a/"); + TestClient client(SB_THREAT_TYPE_SAFE, url); + bool result = v4_local_database_manager_->CheckBrowseUrl( + url, usual_threat_types_, &client, + MechanismExperimentHashDatabaseCache::kNoExperiment); + + if (kMmapSafeBrowsingDatabaseAsync.Get()) { + EXPECT_FALSE(result); + EXPECT_FALSE(client.on_check_browse_url_result_called()); + WaitForTasksOnTaskRunner(); + EXPECT_TRUE(client.on_check_browse_url_result_called()); + } else { + // Both the stores are empty right now so CheckBrowseUrl should return true. + EXPECT_TRUE(result); + } } TEST_F(V4LocalDatabaseManagerTest, TestCheckBrowseUrlWithFakeDbReturnsMatch) { @@ -661,14 +684,22 @@ ReplaceV4Database(store_and_hash_prefixes, /* stores_available= */ true); TestAllowlistClient client( - /* match_expected= */ false, + /* match_expected= */ true, /* expected_sb_threat_type= */ SB_THREAT_TYPE_CSD_ALLOWLIST); const GURL url_check("https://" + url_safe_no_scheme); - EXPECT_EQ(AsyncMatch::MATCH, v4_local_database_manager_->CheckCsdAllowlistUrl( - url_check, &client)); + auto result = + v4_local_database_manager_->CheckCsdAllowlistUrl(url_check, &client); - WaitForTasksOnTaskRunner(); - EXPECT_FALSE(client.callback_called()); + if (kMmapSafeBrowsingDatabaseAsync.Get()) { + EXPECT_EQ(AsyncMatch::ASYNC, result); + EXPECT_FALSE(client.callback_called()); + WaitForTasksOnTaskRunner(); + EXPECT_TRUE(client.callback_called()); + } else { + EXPECT_EQ(AsyncMatch::MATCH, result); + WaitForTasksOnTaskRunner(); + EXPECT_FALSE(client.callback_called()); + } } TEST_F(V4LocalDatabaseManagerTest, TestCheckCsdAllowlistWithNoMatch) { @@ -688,12 +719,19 @@ /* match_expected= */ true, /* expected_sb_threat_type= */ SB_THREAT_TYPE_CSD_ALLOWLIST); const GURL url_check("https://other.com/"); - EXPECT_EQ( - AsyncMatch::NO_MATCH, - v4_local_database_manager_->CheckCsdAllowlistUrl(url_check, &client)); + auto result = + v4_local_database_manager_->CheckCsdAllowlistUrl(url_check, &client); - WaitForTasksOnTaskRunner(); - EXPECT_FALSE(client.callback_called()); + if (kMmapSafeBrowsingDatabaseAsync.Get()) { + EXPECT_EQ(AsyncMatch::ASYNC, result); + EXPECT_FALSE(client.callback_called()); + WaitForTasksOnTaskRunner(); + EXPECT_TRUE(client.callback_called()); + } else { + EXPECT_EQ(AsyncMatch::NO_MATCH, result); + WaitForTasksOnTaskRunner(); + EXPECT_FALSE(client.callback_called()); + } } // When allowlist is unavailable, all URLS should be allowed. @@ -1445,13 +1483,24 @@ MechanismExperimentHashDatabaseCache::kNoExperiment)); // PerformFullHashCheck will not be called if there is a match within the // artificial database + WaitForTasksOnTaskRunner(); EXPECT_FALSE(FakeV4LocalDatabaseManager::PerformFullHashCheckCalled( v4_local_database_manager_)); const GURL url_good("https://other.example.com"); - EXPECT_TRUE(v4_local_database_manager_->CheckBrowseUrl( - url_good, usual_threat_types_, nullptr, - MechanismExperimentHashDatabaseCache::kNoExperiment)); + TestClient client(SB_THREAT_TYPE_SAFE, url_good); + bool result = v4_local_database_manager_->CheckBrowseUrl( + url_good, usual_threat_types_, &client, + MechanismExperimentHashDatabaseCache::kNoExperiment); + + if (kMmapSafeBrowsingDatabaseAsync.Get()) { + EXPECT_FALSE(result); + EXPECT_FALSE(client.on_check_browse_url_result_called()); + WaitForTasksOnTaskRunner(); + EXPECT_TRUE(client.on_check_browse_url_result_called()); + } else { + EXPECT_TRUE(result); + } WaitForTasksOnTaskRunner(); StopLocalDatabaseManager(); @@ -1469,13 +1518,24 @@ MechanismExperimentHashDatabaseCache::kNoExperiment)); // PerformFullHashCheck will not be called if there is a match within the // artificial database + WaitForTasksOnTaskRunner(); EXPECT_FALSE(FakeV4LocalDatabaseManager::PerformFullHashCheckCalled( v4_local_database_manager_)); const GURL url_good("https://other.example.com"); - EXPECT_TRUE(v4_local_database_manager_->CheckBrowseUrl( - url_good, usual_threat_types_, nullptr, - MechanismExperimentHashDatabaseCache::kNoExperiment)); + TestClient client(SB_THREAT_TYPE_SAFE, url_good); + bool result = v4_local_database_manager_->CheckBrowseUrl( + url_good, usual_threat_types_, &client, + MechanismExperimentHashDatabaseCache::kNoExperiment); + + if (kMmapSafeBrowsingDatabaseAsync.Get()) { + EXPECT_FALSE(result); + EXPECT_FALSE(client.on_check_browse_url_result_called()); + WaitForTasksOnTaskRunner(); + EXPECT_TRUE(client.on_check_browse_url_result_called()); + } else { + EXPECT_TRUE(result); + } WaitForTasksOnTaskRunner(); StopLocalDatabaseManager(); @@ -1493,13 +1553,24 @@ MechanismExperimentHashDatabaseCache::kNoExperiment)); // PerformFullHashCheck will not be called if there is a match within the // artificial database + WaitForTasksOnTaskRunner(); EXPECT_FALSE(FakeV4LocalDatabaseManager::PerformFullHashCheckCalled( v4_local_database_manager_)); const GURL url_good("https://other.example.com"); - EXPECT_TRUE(v4_local_database_manager_->CheckBrowseUrl( - url_good, usual_threat_types_, nullptr, - MechanismExperimentHashDatabaseCache::kNoExperiment)); + TestClient client(SB_THREAT_TYPE_SAFE, url_good); + bool result = v4_local_database_manager_->CheckBrowseUrl( + url_good, usual_threat_types_, &client, + MechanismExperimentHashDatabaseCache::kNoExperiment); + + if (kMmapSafeBrowsingDatabaseAsync.Get()) { + EXPECT_FALSE(result); + EXPECT_FALSE(client.on_check_browse_url_result_called()); + WaitForTasksOnTaskRunner(); + EXPECT_TRUE(client.on_check_browse_url_result_called()); + } else { + EXPECT_TRUE(result); + } WaitForTasksOnTaskRunner(); StopLocalDatabaseManager(); @@ -1532,14 +1603,24 @@ MechanismExperimentHashDatabaseCache::kNoExperiment)); // PerformFullHashCheck will not be called if there is a match within the // artificial database + WaitForTasksOnTaskRunner(); EXPECT_FALSE(FakeV4LocalDatabaseManager::PerformFullHashCheckCalled( v4_local_database_manager_)); const GURL url_good("https://other.example.com"); TestClient client_good(SB_THREAT_TYPE_SAFE, url_good); - EXPECT_TRUE(v4_local_database_manager_->CheckBrowseUrl( + bool result = v4_local_database_manager_->CheckBrowseUrl( url_good, usual_threat_types_, &client_good, - MechanismExperimentHashDatabaseCache::kNoExperiment)); + MechanismExperimentHashDatabaseCache::kNoExperiment); + + if (kMmapSafeBrowsingDatabaseAsync.Get()) { + EXPECT_FALSE(result); + EXPECT_FALSE(client_good.on_check_browse_url_result_called()); + WaitForTasksOnTaskRunner(); + EXPECT_TRUE(client_good.on_check_browse_url_result_called()); + } else { + EXPECT_TRUE(result); + } StopLocalDatabaseManager(); }
diff --git a/components/safe_browsing/core/browser/db/v4_protocol_manager_util.h b/components/safe_browsing/core/browser/db/v4_protocol_manager_util.h index ff7c9316..ab38c57 100644 --- a/components/safe_browsing/core/browser/db/v4_protocol_manager_util.h +++ b/components/safe_browsing/core/browser/db/v4_protocol_manager_util.h
@@ -308,6 +308,11 @@ // matched. using StoreAndHashPrefixes = std::vector<StoreAndHashPrefix>; +// The matching hash prefixes and corresponding stores, for each full hash +// generated for a given URL. +using FullHashToStoreAndHashPrefixesMap = + std::unordered_map<FullHashStr, StoreAndHashPrefixes>; + // Enumerate failures for histogramming purposes. DO NOT CHANGE THE // ORDERING OF THESE VALUES. enum V4OperationResult {
diff --git a/components/safe_browsing/core/common/features.cc b/components/safe_browsing/core/common/features.cc index 613f580b..ade82b1 100644 --- a/components/safe_browsing/core/common/features.cc +++ b/components/safe_browsing/core/common/features.cc
@@ -51,7 +51,7 @@ BASE_FEATURE(kComponentUpdaterAndroidProtegoAllowlist, "SafeBrowsingComponentUpdaterAndroidProtegoAllowlist", - base::FEATURE_DISABLED_BY_DEFAULT); + base::FEATURE_ENABLED_BY_DEFAULT); BASE_FEATURE(kDelayedWarnings, "SafeBrowsingDelayedWarnings", @@ -175,6 +175,10 @@ "MmapSafeBrowsingDatabase", base::FEATURE_DISABLED_BY_DEFAULT); +constexpr base::FeatureParam<bool> kMmapSafeBrowsingDatabaseAsync{ + &kMmapSafeBrowsingDatabase, "MmapSafeBrowsingDatabaseAsync", + /*default_value=*/false}; + BASE_FEATURE(kNestedArchives, "SafeBrowsingArchiveImprovements", base::FEATURE_DISABLED_BY_DEFAULT);
diff --git a/components/safe_browsing/core/common/features.h b/components/safe_browsing/core/common/features.h index cedf44e..26bc68f 100644 --- a/components/safe_browsing/core/common/features.h +++ b/components/safe_browsing/core/common/features.h
@@ -174,6 +174,10 @@ // mapped into memory. BASE_DECLARE_FEATURE(kMmapSafeBrowsingDatabase); +// Whether hash prefix lookups are done on a background thread when +// kMmapSafeBrowsingDatabase is enabled. +extern const base::FeatureParam<bool> kMmapSafeBrowsingDatabaseAsync; + // Enables unpacking of nested archives during downloads. BASE_DECLARE_FEATURE(kNestedArchives);
diff --git a/components/segmentation_platform/embedder/input_delegate/tab_rank_dispatcher.cc b/components/segmentation_platform/embedder/input_delegate/tab_rank_dispatcher.cc index c1afc1b..3bde2ffa 100644 --- a/components/segmentation_platform/embedder/input_delegate/tab_rank_dispatcher.cc +++ b/components/segmentation_platform/embedder/input_delegate/tab_rank_dispatcher.cc
@@ -7,6 +7,8 @@ #include <queue> #include <vector> #include "base/memory/scoped_refptr.h" +#include "base/metrics/histogram_functions.h" +#include "base/metrics/histogram_macros.h" #include "base/strings/string_piece_forward.h" #include "base/time/time.h" #include "components/segmentation_platform/embedder/tab_fetcher.h" @@ -22,6 +24,49 @@ namespace { constexpr uint32_t kTabCandidateLimit = 30; +void RecordDelayFromStartupToFirstSyncUpdate( + base::TimeDelta sync_delay_duration) { + base::UmaHistogramLongTimes100( + "SegmentationPlatform.SyncSessions.TimeFromStartupToFirstSyncUpdate", + sync_delay_duration); +} + +void RecordDelayFromTabLoadToSyncUpdate(base::TimeDelta sync_delay_duration) { + base::UmaHistogramLongTimes100( + "SegmentationPlatform.SyncSessions.TimeFromTabLoadedToSyncUpdate", + sync_delay_duration); +} + +void RecordTabCountAtStartup(long cross_device_tab_count) { + base::UmaHistogramCounts1000( + "SegmentationPlatform.SyncSessions.TabsCountAtStartup", + cross_device_tab_count); +} + +void RecordTabCountFromStartupToSyncUpdate(long cross_device_tab_count) { + base::UmaHistogramCounts1000( + "SegmentationPlatform.SyncSessions.TabsCountAtFirstSyncUpdate", + cross_device_tab_count); +} + +void RecordRecent1HourTabCountAtFirstSyncUpdate(long cross_device_tab_count) { + base::UmaHistogramCounts1000( + "SegmentationPlatform.SyncSessions.Recent1HourTabCountAtFirstSyncUpdate", + cross_device_tab_count); +} + +void RecordRecent1DayTabCountAtFirstSyncUpdate(long cross_device_tab_count) { + base::UmaHistogramCounts1000( + "SegmentationPlatform.SyncSessions.Recent1DayTabCountAtFirstSyncUpdate", + cross_device_tab_count); +} + +void RecordTabCountAtSyncUpdate(long cross_device_tab_count) { + base::UmaHistogramCounts1000( + "SegmentationPlatform.SyncSessions.RecordTabCountAtSyncUpdate", + cross_device_tab_count); +} + } // namespace TabRankDispatcher::TabRankDispatcher( @@ -29,8 +74,14 @@ sync_sessions::SessionSyncService* session_sync_service, std::unique_ptr<TabFetcher> tab_fetcher) : tab_fetcher_(std::move(tab_fetcher)), + chrome_startup_timestamp_(base::Time::Now()), segmentation_service_(segmentation_service), - session_sync_service_(session_sync_service) {} + session_sync_service_(session_sync_service) { + RecordTabCountAtStartup( + tab_fetcher_->GetRemoteTabsCountAfterTime(base::Time())); + + SubscribeToForeignSessionsChanged(); +} TabRankDispatcher::~TabRankDispatcher() = default; @@ -102,4 +153,44 @@ std::move(callback)); } +void TabRankDispatcher::SubscribeToForeignSessionsChanged() { + foreign_session_updated_subscription_ = + session_sync_service_->SubscribeToForeignSessionsChanged( + base::BindRepeating(&TabRankDispatcher::OnForeignSessionUpdated, + weak_factory_.GetWeakPtr())); +} + +void TabRankDispatcher::OnForeignSessionUpdated() { + base::Time foreign_session_updated_time = base::Time::Now(); + RecordTabCountAtSyncUpdate( + tab_fetcher_->GetRemoteTabsCountAfterTime(base::Time())); + + absl::optional<base::Time> sync_session_modified_timestamp = + tab_fetcher_->GetLatestRemoteSessionModifiedTime(); + + if (!sync_session_modified_timestamp.has_value()) { + return; + } + if (session_updated_counter_ == 0 && + chrome_startup_timestamp_ > sync_session_modified_timestamp.value()) { + // Delay Metrics. + RecordDelayFromStartupToFirstSyncUpdate(foreign_session_updated_time - + chrome_startup_timestamp_); + // Tab Count Metrics. + RecordTabCountFromStartupToSyncUpdate( + tab_fetcher_->GetRemoteTabsCountAfterTime(base::Time())); + RecordRecent1HourTabCountAtFirstSyncUpdate( + tab_fetcher_->GetRemoteTabsCountAfterTime(foreign_session_updated_time - + base::Hours(1))); + RecordRecent1DayTabCountAtFirstSyncUpdate( + tab_fetcher_->GetRemoteTabsCountAfterTime(foreign_session_updated_time - + base::Days(1))); + + } else { + RecordDelayFromTabLoadToSyncUpdate(foreign_session_updated_time - + sync_session_modified_timestamp.value()); + } + session_updated_counter_++; +} + } // namespace segmentation_platform
diff --git a/components/segmentation_platform/embedder/input_delegate/tab_rank_dispatcher.h b/components/segmentation_platform/embedder/input_delegate/tab_rank_dispatcher.h index 46b4a17..8256062 100644 --- a/components/segmentation_platform/embedder/input_delegate/tab_rank_dispatcher.h +++ b/components/segmentation_platform/embedder/input_delegate/tab_rank_dispatcher.h
@@ -80,6 +80,18 @@ const AnnotatedNumericResult& result); const std::unique_ptr<TabFetcher> tab_fetcher_; + + // Subscribes to the sync session changes. SessionSyncService has a repeating + // callback to notify of all the session change updates. + void SubscribeToForeignSessionsChanged(); + + // Called every time when the sync session is updated. Using this to record + // few metrics for sync latency and cross device tabs count. + void OnForeignSessionUpdated(); + + base::Time chrome_startup_timestamp_; + int session_updated_counter_{0}; + base::CallbackListSubscription foreign_session_updated_subscription_; const raw_ptr<SegmentationPlatformService> segmentation_service_; const raw_ptr<sync_sessions::SessionSyncService> session_sync_service_;
diff --git a/components/segmentation_platform/embedder/tab_fetcher.cc b/components/segmentation_platform/embedder/tab_fetcher.cc index ec85ce9..5cb4630 100644 --- a/components/segmentation_platform/embedder/tab_fetcher.cc +++ b/components/segmentation_platform/embedder/tab_fetcher.cc
@@ -12,14 +12,17 @@ namespace segmentation_platform { namespace { -void FillTabsFromSessions( +void FillTabsFromSessionsAfterTime( const std::vector<const sync_sessions::SyncedSession*> sessions, - std::vector<TabFetcher::TabEntry>& tabs) { + std::vector<TabFetcher::TabEntry>& tabs, + base::Time tabs_loaded_after_timestamp) { for (const auto* session : sessions) { for (const auto& session_and_window : session->windows) { const auto& window = session_and_window.second->wrapped_window; for (const auto& tab : window.tabs) { - tabs.emplace_back(tab->tab_id, session->GetSessionTag()); + if (tab->timestamp >= tabs_loaded_after_timestamp) { + tabs.emplace_back(tab->tab_id, session->GetSessionTag()); + } } } } @@ -47,7 +50,20 @@ } std::vector<const sync_sessions::SyncedSession*> sessions; open_ui_delegate->GetAllForeignSessions(&sessions); - FillTabsFromSessions(sessions, tabs); + FillTabsFromSessionsAfterTime(sessions, tabs, base::Time()); + return true; +} + +bool TabFetcher::FillAllRemoteTabsAfterTime( + std::vector<TabEntry>& tabs, + base::Time tabs_loaded_after_timestamp) { + auto* open_ui_delegate = session_sync_service_->GetOpenTabsUIDelegate(); + if (!open_ui_delegate) { + return false; + } + std::vector<const sync_sessions::SyncedSession*> sessions; + open_ui_delegate->GetAllForeignSessions(&sessions); + FillTabsFromSessionsAfterTime(sessions, tabs, tabs_loaded_after_timestamp); return true; } @@ -81,7 +97,7 @@ if (!local_session) { return false; } - FillTabsFromSessions({local_session}, tabs); + FillTabsFromSessionsAfterTime({local_session}, tabs, base::Time()); return true; } @@ -104,4 +120,25 @@ return base::TimeDelta::Max(); } +size_t TabFetcher::GetRemoteTabsCountAfterTime( + base::Time tabs_loaded_after_timestamp) { + std::vector<TabFetcher::TabEntry> all_tabs; + FillAllRemoteTabsAfterTime(all_tabs, tabs_loaded_after_timestamp); + return all_tabs.size(); +} + +absl::optional<base::Time> TabFetcher::GetLatestRemoteSessionModifiedTime() { + auto* open_ui_delegate = session_sync_service_->GetOpenTabsUIDelegate(); + if (!open_ui_delegate) { + return absl::nullopt; + } + std::vector<const sync_sessions::SyncedSession*> sessions; + open_ui_delegate->GetAllForeignSessions(&sessions); + if (sessions.empty()) { + return absl::nullopt; + } + // Get latest session modified time. + return sessions[0]->GetModifiedTime(); +} + } // namespace segmentation_platform
diff --git a/components/segmentation_platform/embedder/tab_fetcher.h b/components/segmentation_platform/embedder/tab_fetcher.h index a2697c8..fe58533 100644 --- a/components/segmentation_platform/embedder/tab_fetcher.h +++ b/components/segmentation_platform/embedder/tab_fetcher.h
@@ -62,6 +62,11 @@ // Appends a list of all remote tabs to `tabs`. bool FillAllRemoteTabs(std::vector<TabEntry>& tabs); + // Appends a list of all remote tabs to `tabs` loaded after the given + // timestamp. + bool FillAllRemoteTabsAfterTime(std::vector<TabEntry>& tabs, + base::Time tabs_loaded_after_timestamp); + // Appends a list of all local tabs to `tabs`. bool FillAllLocalTabs(std::vector<TabEntry>& tabs); @@ -72,6 +77,13 @@ // tab was killed, returns TimeDelta::Max(). base::TimeDelta GetTimeSinceModified(const TabEntry& tab_entry); + // Returns the count of remote tabs loaded after the given timestamp till now. + size_t GetRemoteTabsCountAfterTime(base::Time tabs_loaded_after_timestamp); + + // Returns the modified time for the latest remote sync session if sync is + // enabled. + absl::optional<base::Time> GetLatestRemoteSessionModifiedTime(); + protected: // Fills all the local tabs from the tab models in `tabs`. virtual bool FillAllLocalTabsFromTabModel(std::vector<TabEntry>& tabs);
diff --git a/components/subresource_filter/content/browser/navigation_console_logger_unittest.cc b/components/subresource_filter/content/browser/navigation_console_logger_unittest.cc index c4bc93a..721ee5c 100644 --- a/components/subresource_filter/content/browser/navigation_console_logger_unittest.cc +++ b/components/subresource_filter/content/browser/navigation_console_logger_unittest.cc
@@ -11,6 +11,7 @@ #include "content/public/browser/web_contents_observer.h" #include "content/public/test/navigation_simulator.h" #include "content/public/test/test_renderer_host.h" +#include "content/public/test/test_utils.h" #include "net/base/net_errors.h" #include "testing/gtest/include/gtest/gtest.h" @@ -113,9 +114,13 @@ navigation->GetNavigationHandle(), blink::mojom::ConsoleMessageLevel::kWarning, "foo"); navigation->Commit(); + EXPECT_EQ(1u, GetConsoleMessages(main_rfh()).size()); } + content::RenderFrameHostTester::For(main_rfh())->ClearConsoleMessages(); + EXPECT_TRUE(GetConsoleMessages(main_rfh()).empty()); + NavigateAndCommit(GURL("http://example.test/")); - EXPECT_EQ(1u, GetConsoleMessages(main_rfh()).size()); + EXPECT_TRUE(GetConsoleMessages(main_rfh()).empty()); } TEST_F(NavigationConsoleLoggerTest, MultipleMessages) {
diff --git a/components/test/data/password_manager/login_db_v35.sql b/components/test/data/password_manager/login_db_v35.sql new file mode 100644 index 0000000..7a744c5c --- /dev/null +++ b/components/test/data/password_manager/login_db_v35.sql
@@ -0,0 +1,174 @@ +BEGIN TRANSACTION; +CREATE TABLE meta(key LONGVARCHAR NOT NULL UNIQUE PRIMARY KEY, value LONGVARCHAR); +INSERT INTO "meta" VALUES('last_compatible_version','33'); +INSERT INTO "meta" VALUES('version','35'); +CREATE TABLE logins ( +origin_url VARCHAR NOT NULL, +action_url VARCHAR, +username_element VARCHAR, +username_value VARCHAR, +password_element VARCHAR, +password_value BLOB, +submit_element VARCHAR, +signon_realm VARCHAR NOT NULL, +date_created INTEGER NOT NULL, +blacklisted_by_user INTEGER NOT NULL, +scheme INTEGER NOT NULL, +password_type INTEGER, +times_used INTEGER, +form_data BLOB, +display_name VARCHAR, +icon_url VARCHAR, +federation_url VARCHAR, +skip_zero_click INTEGER, +generation_upload_status INTEGER, +possible_username_pairs BLOB, +id INTEGER PRIMARY KEY AUTOINCREMENT, +date_last_used INTEGER, +moving_blocked_for BLOB, +date_password_modified INTEGER, +UNIQUE (origin_url, username_element, username_value, password_element, signon_realm)); +INSERT INTO "logins" (origin_url,action_url,username_element,username_value,password_element,password_value,submit_element,signon_realm,date_created,blacklisted_by_user,scheme,password_type,times_used,form_data,display_name,icon_url,federation_url,skip_zero_click,generation_upload_status,possible_username_pairs,date_last_used,moving_blocked_for,date_password_modified) VALUES( +'https://accounts.google.com/ServiceLogin', /* origin_url */ +'https://accounts.google.com/ServiceLoginAuth', /* action_url */ +'Email', /* username_element */ +'theerikchen', /* username_value */ +'Passwd', /* password_element */ +X'', /* password_value */ +'', /* submit_element */ +'https://accounts.google.com/', /* signon_realm */ +13047429345000000, /* date_created */ +0, /* blacklisted_by_user */ +0, /* scheme */ +0, /* password_type */ +1, /* times_used */ +X'18000000020000000000000000000000000000000000000000000000', /* form_data */ +'', /* display_name */ +'', /* icon_url */ +'', /* federation_url */ +1, /* skip_zero_click */ +0, /* generation_upload_status */ +X'00000000', /* possible_username_pairs */ +0, /* date_last_used */ +X'', /* moving_blocked_for */ +0 /* date_password_modified */ +); +INSERT INTO "logins" (origin_url,action_url,username_element,username_value,password_element,password_value,submit_element,signon_realm,date_created,blacklisted_by_user,scheme,password_type,times_used,form_data,display_name,icon_url,federation_url,skip_zero_click,generation_upload_status,possible_username_pairs,date_last_used,moving_blocked_for,date_password_modified) VALUES( +'https://accounts.google.com/ServiceLogin', /* origin_url */ +'https://accounts.google.com/ServiceLoginAuth', /* action_url */ +'Email', /* username_element */ +'theerikchen2', /* username_value */ +'Passwd', /* password_element */ +X'', /* password_value */ +'non-empty', /* submit_element */ +'https://accounts.google.com/', /* signon_realm */ +13047423600000000, /* date_created */ +0, /* blacklisted_by_user */ +0, /* scheme */ +0, /* password_type */ +1, /* times_used */ +X'18000000020000000000000000000000000000000000000000000000', /* form_data */ +'', /* display_name */ +'https://www.google.com/icon', /* icon_url */ +'', /* federation_url */ +1, /* skip_zero_click */ +0, /* generation_upload_status */ +X'00000000', /* possible_username_pairs */ +0, /* date_last_used */ +X'2400000020000000931DDD1C53CCD2CE11C30C3027798FF7E31CCFE83FB086F3A7797F404D647332', /* moving_blocked_for */ +13047423610000000 /* date_password_modified */ +); +INSERT INTO "logins" (origin_url,action_url,username_element,username_value,password_element,password_value,submit_element,signon_realm,date_created,blacklisted_by_user,scheme,password_type,times_used,form_data,display_name,icon_url,federation_url,skip_zero_click,generation_upload_status,possible_username_pairs,date_last_used,moving_blocked_for,date_password_modified) VALUES( +'http://example.com', /* origin_url */ +'http://example.com/landing', /* action_url */ +'', /* username_element */ +'user', /* username_value */ +'', /* password_element */ +X'', /* password_value */ +'non-empty', /* submit_element */ +'http://example.com', /* signon_realm */ +13047423600000000, /* date_created */ +0, /* blacklisted_by_user */ +1, /* scheme */ +0, /* password_type */ +1, /* times_used */ +X'18000000020000000000000000000000000000000000000000000000', /* form_data */ +'', /* display_name */ +'https://www.google.com/icon', /* icon_url */ +'', /* federation_url */ +1, /* skip_zero_click */ +0, /* generation_upload_status */ +X'00000000', /* possible_username_pairs */ +0, /* date_last_used */ +X'', /* moving_blocked_for */ +13047423610000000 /* date_password_modified */ +); +CREATE INDEX logins_signon ON logins (signon_realm); +CREATE TABLE stats ( +origin_domain VARCHAR NOT NULL, +username_value VARCHAR, +dismissal_count INTEGER, +update_time INTEGER NOT NULL, +UNIQUE(origin_domain, username_value)); +CREATE INDEX stats_origin ON stats(origin_domain); +CREATE TABLE sync_entities_metadata ( + storage_key INTEGER PRIMARY KEY AUTOINCREMENT, + metadata VARCHAR NOT NULL +); +CREATE TABLE sync_model_metadata ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + metadata VARCHAR NOT NULL +); +CREATE TABLE insecure_credentials ( +parent_id INTEGER REFERENCES logins ON UPDATE CASCADE ON DELETE CASCADE + DEFERRABLE INITIALLY DEFERRED, +insecurity_type INTEGER NOT NULL, +create_time INTEGER NOT NULL, +is_muted INTEGER NOT NULL DEFAULT 0, +trigger_notification_from_backend INTEGER NOT NULL DEFAULT 0, +UNIQUE (parent_id, insecurity_type)); +CREATE INDEX foreign_key_index ON insecure_credentials (parent_id); +INSERT INTO "insecure_credentials" + (parent_id,insecurity_type,create_time,is_muted,trigger_notification_from_backend) VALUES( +1, /* parent_id */ +0, /* compromise_type */ +13047423600000000, /* create_time */ +0, /* is_muted */ +0 /* trigger_notification_from_backend */ +); +INSERT INTO "insecure_credentials" + (parent_id,insecurity_type,create_time,is_muted, trigger_notification_from_backend) VALUES( +1, /* parent_id */ +1, /* compromise_type */ +13047423600000000, /* create_time */ +0, /* is_muted */ +0 /* trigger_notification_from_backend */ +); +CREATE TABLE password_notes ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + parent_id INTEGER NOT NULL REFERENCES logins ON UPDATE CASCADE + ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED, + key VARCHAR NOT NULL, + value BLOB, + date_created INTEGER NOT NULL, + confidential BOOL, + UNIQUE (parent_id, key) +); +CREATE INDEX foreign_key_index_notes ON password_notes (parent_id); +INSERT INTO "password_notes" + (parent_id, key, value, date_created, confidential) VALUES( +1, /* parent_id */ +'', /* key */ +X'', /* value */ +13047423600000000, /* date_created */ +0 /* confidential */ +); +CREATE TABLE incoming_sharing_invitation_sync_entities_metadata ( + storage_key INTEGER PRIMARY KEY AUTOINCREMENT, + metadata VARCHAR NOT NULL +); +CREATE TABLE incoming_sharing_invitation_sync_model_metadata ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + metadata VARCHAR NOT NULL +); +COMMIT;
diff --git a/components/test/data/password_manager/unit_tests_bundle_data.filelist b/components/test/data/password_manager/unit_tests_bundle_data.filelist index 8833d4b..d95b8964 100644 --- a/components/test/data/password_manager/unit_tests_bundle_data.filelist +++ b/components/test/data/password_manager/unit_tests_bundle_data.filelist
@@ -50,6 +50,7 @@ //components/test/data/password_manager/login_db_v32.sql //components/test/data/password_manager/login_db_v33.sql //components/test/data/password_manager/login_db_v34.sql +//components/test/data/password_manager/login_db_v35.sql //components/test/data/password_manager/login_db_v3_broken.sql //components/test/data/password_manager/login_db_v4.sql //components/test/data/password_manager/login_db_v5.sql
diff --git a/components/user_education/common/help_bubble_factory_registry.cc b/components/user_education/common/help_bubble_factory_registry.cc index 55d1082..6448c2327 100644 --- a/components/user_education/common/help_bubble_factory_registry.cc +++ b/components/user_education/common/help_bubble_factory_registry.cc
@@ -60,19 +60,12 @@ for (const auto& pr : help_bubbles_) { if (pr.first->GetContext() == context && pr.first->ToggleFocusForAccessibility()) { - toggle_focus_callbacks_.Notify(pr.first); return true; } } return false; } -base::CallbackListSubscription -HelpBubbleFactoryRegistry::AddToggleFocusCallback( - ToggleFocusCallback callback) { - return toggle_focus_callbacks_.Add(std::move(callback)); -} - HelpBubble* HelpBubbleFactoryRegistry::GetHelpBubble( ui::ElementContext context) { for (const auto& pr : help_bubbles_) {
diff --git a/components/user_education/common/help_bubble_factory_registry.h b/components/user_education/common/help_bubble_factory_registry.h index 947427b..76b9bc0 100644 --- a/components/user_education/common/help_bubble_factory_registry.h +++ b/components/user_education/common/help_bubble_factory_registry.h
@@ -25,8 +25,6 @@ // that instances can be created multiple times in a test environment. class HelpBubbleFactoryRegistry { public: - using ToggleFocusCallback = base::RepeatingCallback<void(HelpBubble*)>; - HelpBubbleFactoryRegistry(); ~HelpBubbleFactoryRegistry(); HelpBubbleFactoryRegistry(const HelpBubbleFactoryRegistry&) = delete; @@ -51,10 +49,6 @@ // bubble or nothing can be focused. bool ToggleFocusForAccessibility(ui::ElementContext context); - // Listens for ToggleFocusForAccessibility() calls for metrics purposes. - base::CallbackListSubscription AddToggleFocusCallback( - ToggleFocusCallback callback); - // Gets the first visible help bubble in the given context, or null if none // exists. HelpBubble* GetHelpBubble(ui::ElementContext context); @@ -74,10 +68,6 @@ // The list of known help bubbles. std::map<HelpBubble*, base::CallbackListSubscription> help_bubbles_; - - // For listening - base::RepeatingCallbackList<typename ToggleFocusCallback::RunType> - toggle_focus_callbacks_; }; } // namespace user_education
diff --git a/components/user_education/common/tutorial_service.cc b/components/user_education/common/tutorial_service.cc index c5045cd..fde1ebc 100644 --- a/components/user_education/common/tutorial_service.cc +++ b/components/user_education/common/tutorial_service.cc
@@ -40,12 +40,7 @@ TutorialRegistry* tutorial_registry, HelpBubbleFactoryRegistry* help_bubble_factory_registry) : tutorial_registry_(tutorial_registry), - help_bubble_factory_registry_(help_bubble_factory_registry) { - toggle_focus_subscription_ = - help_bubble_factory_registry->AddToggleFocusCallback( - base::BindRepeating(&TutorialService::OnFocusToggledForAccessibility, - base::Unretained(this))); -} + help_bubble_factory_registry_(help_bubble_factory_registry) {} TutorialService::~TutorialService() = default; @@ -91,7 +86,6 @@ // Start the tutorial and mark the params used to created it for restarting. running_tutorial_->Start(); - toggle_focus_count_ = 0; } void TutorialService::LogIPHLinkClicked(TutorialIdentifier id, @@ -171,12 +165,6 @@ // Reset the tutorial and call the external abort callback. ResetRunningTutorial(); - // Record how many times the user toggled focus during the tutorial using - // the keyboard. - UMA_HISTOGRAM_CUSTOM_COUNTS("Tutorial.FocusToggleCount.Aborted", - toggle_focus_count_, 0, 50, 6); - toggle_focus_count_ = 0; - if (aborted_callback_) { std::move(aborted_callback_).Run(); } @@ -207,12 +195,6 @@ ResetRunningTutorial(); - // Record how many times the user toggled focus during the tutorial using - // the keyboard. - UMA_HISTOGRAM_CUSTOM_COUNTS("Tutorial.FocusToggleCount.Completed", - toggle_focus_count_, 0, 50, 6); - toggle_focus_count_ = 0; - std::move(completed_callback_).Run(); } @@ -257,11 +239,6 @@ HideCurrentBubbleIfShowing(); } -void TutorialService::OnFocusToggledForAccessibility(HelpBubble* bubble) { - if (bubble == currently_displayed_bubble_.get()) - ++toggle_focus_count_; -} - void TutorialService::OnBrokenTutorial() { if (running_tutorial_ && !currently_displayed_bubble_) { running_tutorial_->Abort();
diff --git a/components/user_education/common/tutorial_service.h b/components/user_education/common/tutorial_service.h index b9151c6..527c62b 100644 --- a/components/user_education/common/tutorial_service.h +++ b/components/user_education/common/tutorial_service.h
@@ -107,9 +107,6 @@ // Reset all of the running tutorial member variables. void ResetRunningTutorial(); - // Tracks when the user toggles focus to a help bubble via the keyboard. - void OnFocusToggledForAccessibility(HelpBubble* bubble); - // Called when there has been no bubble visible for enough time that the // current tutorial should probably be aborted. void OnBrokenTutorial(); @@ -152,10 +149,6 @@ const raw_ptr<TutorialRegistry> tutorial_registry_; const raw_ptr<HelpBubbleFactoryRegistry> help_bubble_factory_registry_; - // Number of times focus was toggled during the current tutorial. - int toggle_focus_count_ = 0; - base::CallbackListSubscription toggle_focus_subscription_; - // status bit to denote that the tutorial service is in the process of // restarting a tutorial. This prevents calling the abort callbacks. bool is_restarting_ = false;
diff --git a/components/vector_icons/BUILD.gn b/components/vector_icons/BUILD.gn index fdb957d4..5d46a145 100644 --- a/components/vector_icons/BUILD.gn +++ b/components/vector_icons/BUILD.gn
@@ -146,13 +146,9 @@ "privacy_sandbox.icon", "protected_content.icon", "protocol_handler.icon", - "qr_code.icon", "reload.icon", "reload_chrome_refresh.icon", "replay.icon", - "save_original_file.icon", - "save_original_file_chrome_refresh.icon", - "save_original_file_off_chrome_refresh.icon", "screen_share.icon", "search.icon", "search_chrome_refresh.icon",
diff --git a/components/vector_icons/qr_code.icon b/components/vector_icons/qr_code.icon deleted file mode 100644 index 778a5af..0000000 --- a/components/vector_icons/qr_code.icon +++ /dev/null
@@ -1,75 +0,0 @@ -// Copyright 2022 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -CANVAS_DIMENSIONS, 20, -MOVE_TO, 2.5f, 9.13f, -V_LINE_TO, 2.5f, -R_H_LINE_TO, 6.63f, -R_V_LINE_TO, 6.63f, -CLOSE, -R_MOVE_TO, 1.75f, -1.75f, -R_H_LINE_TO, 3.13f, -V_LINE_TO, 4.25f, -H_LINE_TO, 4.25f, -CLOSE, -MOVE_TO, 2.5f, 17.5f, -R_V_LINE_TO, -6.62f, -R_H_LINE_TO, 6.63f, -V_LINE_TO, 17.5f, -CLOSE, -R_MOVE_TO, 1.75f, -1.75f, -R_H_LINE_TO, 3.17f, -R_V_LINE_TO, -3.12f, -H_LINE_TO, 4.25f, -CLOSE, -R_MOVE_TO, 6.63f, -6.62f, -V_LINE_TO, 2.5f, -H_LINE_TO, 17.5f, -R_V_LINE_TO, 6.63f, -CLOSE, -R_MOVE_TO, 1.75f, -1.75f, -R_H_LINE_TO, 3.13f, -V_LINE_TO, 4.25f, -R_H_LINE_TO, -3.12f, -CLOSE, -MOVE_TO, 15.85f, 17.5f, -R_V_LINE_TO, -1.67f, -H_LINE_TO, 17.5f, -V_LINE_TO, 17.5f, -CLOSE, -R_MOVE_TO, -4.98f, -4.98f, -R_V_LINE_TO, -1.65f, -R_H_LINE_TO, 1.67f, -R_V_LINE_TO, 1.65f, -CLOSE, -R_MOVE_TO, 1.67f, 1.65f, -R_V_LINE_TO, -1.65f, -R_H_LINE_TO, 1.67f, -R_V_LINE_TO, 1.65f, -CLOSE, -R_MOVE_TO, -1.67f, 1.67f, -R_V_LINE_TO, -1.67f, -R_H_LINE_TO, 1.67f, -R_V_LINE_TO, 1.67f, -CLOSE, -R_MOVE_TO, 1.67f, 1.67f, -R_V_LINE_TO, -1.67f, -R_H_LINE_TO, 1.67f, -V_LINE_TO, 17.5f, -CLOSE, -R_MOVE_TO, 1.67f, -1.67f, -R_V_LINE_TO, -1.67f, -R_H_LINE_TO, 1.65f, -R_V_LINE_TO, 1.67f, -CLOSE, -R_MOVE_TO, 0, -3.31f, -R_V_LINE_TO, -1.65f, -R_H_LINE_TO, 1.65f, -R_V_LINE_TO, 1.65f, -CLOSE, -R_MOVE_TO, 1.65f, 1.65f, -R_V_LINE_TO, -1.65f, -H_LINE_TO, 17.5f, -R_V_LINE_TO, 1.65f, -CLOSE \ No newline at end of file
diff --git a/components/viz/service/display/surface_aggregator.cc b/components/viz/service/display/surface_aggregator.cc index 924ff1f..2d2a54a 100644 --- a/components/viz/service/display/surface_aggregator.cc +++ b/components/viz/service/display/surface_aggregator.cc
@@ -838,20 +838,7 @@ frame.device_scale_factor(), gfx::Transform(), {}, dest_root_target_clip_rect, surface, MaskFilterInfoExt()); - // If the render pass has copy requests, or should be cached, or has - // moving-pixel filters, or in a moving-pixel surface, we should damage the - // whole output rect so that we always drawn the full content. Otherwise, we - // might have incompleted copy request, or cached patially drawn render - // pass. - if (!RenderPassNeedsFullDamage(resolved_pass)) { - gfx::Transform inverse_transform; - if (copy_pass->transform_to_root_target.GetInverse(&inverse_transform)) { - gfx::Rect damage_rect_in_render_pass_space = - cc::MathUtil::ProjectEnclosingClippedRect(inverse_transform, - root_damage_rect_); - copy_pass->damage_rect.Intersect(damage_rect_in_render_pass_space); - } - } + SetRenderPassDamageRect(copy_pass.get(), resolved_pass); dest_pass_list_->push_back(std::move(copy_pass)); } @@ -1453,20 +1440,8 @@ {}, /*dest_root_target_clip_rect=*/{}, surface, MaskFilterInfoExt()); - // If the render pass has copy requests, or should be cached, or has - // moving-pixel filters, or in a moving-pixel surface, we should damage the - // whole output rect so that we always drawn the full content. Otherwise, we - // might have incompleted copy request, or cached patially drawn render - // pass. - if (!RenderPassNeedsFullDamage(resolved_pass)) { - gfx::Transform inverse_transform; - if (copy_pass->transform_to_root_target.GetInverse(&inverse_transform)) { - gfx::Rect damage_rect_in_render_pass_space = - cc::MathUtil::ProjectEnclosingClippedRect(inverse_transform, - root_damage_rect_); - copy_pass->damage_rect.Intersect(damage_rect_in_render_pass_space); - } - } + SetRenderPassDamageRect(copy_pass.get(), resolved_pass); + dest_pass_list_->push_back(std::move(copy_pass)); } @@ -1474,6 +1449,35 @@ AddDisplayTransformPass(); } +void SurfaceAggregator::SetRenderPassDamageRect( + AggregatedRenderPass* copy_pass, + const ResolvedPassData& resolved_pass) { + // If the render pass has copy requests, or should be cached, or has + // moving-pixel filters, or in a moving-pixel surface, we should damage the + // whole output rect so that we always drawn the full content. Otherwise, we + // might have incompleted copy request, or cached patially drawn render + // pass. + + if (!RenderPassNeedsFullDamage(resolved_pass)) { + gfx::Transform inverse_transform; + if (copy_pass->transform_to_root_target.GetInverse(&inverse_transform)) { + gfx::Rect damage_rect_in_render_pass_space = + cc::MathUtil::ProjectEnclosingClippedRect(inverse_transform, + root_damage_rect_); + copy_pass->damage_rect.Intersect(damage_rect_in_render_pass_space); + } + + // For unembeded render passes, their damages were not added to the + // root render pass. Add back the original damage from cc so it can be + // skipped later when there is no internal damage. + static const bool can_skip_render_pass = base::FeatureList::IsEnabled( + features::kAllowUndamagedNonrootRenderPassToSkip); + if (resolved_pass.IsUnembedded() && can_skip_render_pass) { + copy_pass->damage_rect.Union(resolved_pass.render_pass().damage_rect); + } + } +} + void SurfaceAggregator::ProcessAddedAndRemovedSurfaces() { // Delete resolved frame data that wasn't used this aggregation. This releases // resources associated with those resolved frames.
diff --git a/components/viz/service/display/surface_aggregator.h b/components/viz/service/display/surface_aggregator.h index 51ae2e9..1abec0a1 100644 --- a/components/viz/service/display/surface_aggregator.h +++ b/components/viz/service/display/surface_aggregator.h
@@ -336,6 +336,9 @@ // Resets member variables that were used during Aggregate(). void ResetAfterAggregate(); + void SetRenderPassDamageRect(AggregatedRenderPass* copy_pass, + const ResolvedPassData& resolved_pass); + const raw_ptr<SurfaceManager> manager_; const raw_ptr<DisplayResourceProvider> provider_;
diff --git a/content/browser/accessibility/ax_platform_node_textprovider_win_browsertest.cc b/content/browser/accessibility/ax_platform_node_textprovider_win_browsertest.cc index d4e1ced..5320d49 100644 --- a/content/browser/accessibility/ax_platform_node_textprovider_win_browsertest.cc +++ b/content/browser/accessibility/ax_platform_node_textprovider_win_browsertest.cc
@@ -281,4 +281,39 @@ text_provider_ranges.Reset(); } +IN_PROC_BROWSER_TEST_F(AXPlatformNodeTextProviderWinBrowserTest, GetVisibleRangesRefCount) { + LoadInitialAccessibilityTreeFromHtml(std::string(R"HTML( + <!DOCTYPE html> + <html> + <body> + hello + </body> + </html> + )HTML")); + + auto* text_node = FindNode(ax::mojom::Role::kStaticText, "hello"); + ASSERT_NE(nullptr, text_node); + + ComPtr<ITextProvider> text_provider; + GetTextProviderFromTextNode(text_provider, text_node); + + base::win::ScopedSafearray visible_ranges; + EXPECT_HRESULT_SUCCEEDED( + text_provider->GetVisibleRanges(visible_ranges.Receive())); + ASSERT_UIA_SAFEARRAY_OF_TEXTRANGEPROVIDER(visible_ranges.Get(), 1U); + + LONG index = 0; + ComPtr<ITextRangeProvider> text_range_provider; + EXPECT_HRESULT_SUCCEEDED(SafeArrayGetElement( + visible_ranges.Get(), &index, static_cast<void**>(&text_range_provider))); + + // Validate that there was only one reference to the `text_range_provider`. + ASSERT_EQ(1U, text_range_provider->Release()); + + // This is needed to avoid calling SafeArrayDestroy from SafeArray's dtor when + // exiting the scope, which would crash trying to release the already + // destroyed `text_range_provider`. + visible_ranges.Release(); +} + } // namespace content
diff --git a/content/browser/attribution_reporting/attribution_host_unittest.cc b/content/browser/attribution_reporting/attribution_host_unittest.cc index 877ee3e..8200456 100644 --- a/content/browser/attribution_reporting/attribution_host_unittest.cc +++ b/content/browser/attribution_reporting/attribution_host_unittest.cc
@@ -125,7 +125,7 @@ static_cast<RenderFrameHostImpl*>(fenced_frame)->frame_tree_node(); absl::optional<FencedFrameProperties> new_props = fenced_frame_node->GetFencedFrameProperties(); - new_props->required_permissions_to_load.push_back( + new_props->effective_enabled_permissions.push_back( blink::mojom::PermissionsPolicyFeature::kAttributionReporting); fenced_frame_node->set_fenced_frame_properties(new_props); }
diff --git a/content/browser/attribution_reporting/attribution_os_level_manager.cc b/content/browser/attribution_reporting/attribution_os_level_manager.cc index 343a6b2..9a82729 100644 --- a/content/browser/attribution_reporting/attribution_os_level_manager.cc +++ b/content/browser/attribution_reporting/attribution_os_level_manager.cc
@@ -61,6 +61,13 @@ } // static +bool AttributionOsLevelManager::ShouldUseOsWebSource() { + return GetContentClient() + ->browser() + ->ShouldUseOsWebSourceAttributionReporting(); +} + +// static bool AttributionOsLevelManager::ShouldInitializeApiState() { DCHECK_CALLED_ON_VALID_SEQUENCE(GetSequenceChecker()); if (g_state.has_value()) {
diff --git a/content/browser/attribution_reporting/attribution_os_level_manager.h b/content/browser/attribution_reporting/attribution_os_level_manager.h index e74a61d6..533f8a9 100644 --- a/content/browser/attribution_reporting/attribution_os_level_manager.h +++ b/content/browser/attribution_reporting/attribution_os_level_manager.h
@@ -74,6 +74,7 @@ protected: [[nodiscard]] static bool ShouldInitializeApiState(); + [[nodiscard]] static bool ShouldUseOsWebSource(); }; class CONTENT_EXPORT NoOpAttributionOsLevelManager
diff --git a/content/browser/attribution_reporting/attribution_os_level_manager_android.cc b/content/browser/attribution_reporting/attribution_os_level_manager_android.cc index 920e879..84046ad 100644 --- a/content/browser/attribution_reporting/attribution_os_level_manager_android.cc +++ b/content/browser/attribution_reporting/attribution_os_level_manager_android.cc
@@ -122,12 +122,18 @@ switch (registration.GetType()) { case attribution_reporting::mojom::OsRegistrationType::kSource: DCHECK(registration.input_event.has_value()); - Java_AttributionOsLevelManager_registerAttributionSource( - env, jobj_, request_id, registration_url, top_level_origin, - is_debug_key_allowed, registration.input_event->input_event); + if (AttributionOsLevelManager::ShouldUseOsWebSource()) { + Java_AttributionOsLevelManager_registerWebAttributionSource( + env, jobj_, request_id, registration_url, top_level_origin, + is_debug_key_allowed, registration.input_event->input_event); + } else { + Java_AttributionOsLevelManager_registerAttributionSource( + env, jobj_, request_id, registration_url, + registration.input_event->input_event); + } break; case attribution_reporting::mojom::OsRegistrationType::kTrigger: - Java_AttributionOsLevelManager_registerAttributionTrigger( + Java_AttributionOsLevelManager_registerWebAttributionTrigger( env, jobj_, request_id, registration_url, top_level_origin, is_debug_key_allowed); break;
diff --git a/content/browser/client_hints/client_hints.cc b/content/browser/client_hints/client_hints.cc index 1eee468..28356be 100644 --- a/content/browser/client_hints/client_hints.cc +++ b/content/browser/client_hints/client_hints.cc
@@ -588,7 +588,7 @@ frame_tree_node->GetFencedFrameProperties(); base::span<const blink::mojom::PermissionsPolicyFeature> permissions; if (fenced_frame_properties) { - permissions = fenced_frame_properties->required_permissions_to_load; + permissions = fenced_frame_properties->effective_enabled_permissions; } permissions_policy = blink::PermissionsPolicy::CreateForFencedFrame( resource_origin, permissions);
diff --git a/content/browser/devtools/protocol/network_handler.cc b/content/browser/devtools/protocol/network_handler.cc index a46d517..72eb7a1 100644 --- a/content/browser/devtools/protocol/network_handler.cc +++ b/content/browser/devtools/protocol/network_handler.cc
@@ -604,6 +604,8 @@ .SetPushStart( timeDelta(load_timing.push_start, load_timing.request_start, 0)) .SetPushEnd(timeDelta(load_timing.push_end, load_timing.request_start, 0)) + .SetReceiveHeadersStart(timeDelta(load_timing.receive_headers_start, + load_timing.request_start)) .SetReceiveHeadersEnd( timeDelta(load_timing.receive_headers_end, load_timing.request_start)) .Build();
diff --git a/content/browser/fenced_frame/fenced_frame_config.cc b/content/browser/fenced_frame/fenced_frame_config.cc index cc617c1..8332fb8 100644 --- a/content/browser/fenced_frame/fenced_frame_config.cc +++ b/content/browser/fenced_frame/fenced_frame_config.cc
@@ -177,7 +177,8 @@ // was called to generate the config, rather than any cross-site data. redacted_config.mode_ = mode_; - redacted_config.required_permissions_to_load_ = required_permissions_to_load; + redacted_config.effective_enabled_permissions_ = + effective_enabled_permissions; return redacted_config; } @@ -210,7 +211,7 @@ VisibilityToContent::kOpaque), mode_(config.mode_), is_ad_component_(config.is_ad_component_), - required_permissions_to_load(config.required_permissions_to_load) { + effective_enabled_permissions(config.effective_enabled_permissions) { if (config.shared_storage_budget_metadata_) { shared_storage_budget_metadata_.emplace( &config.shared_storage_budget_metadata_->GetValueIgnoringVisibility(), @@ -280,10 +281,12 @@ } } - if (fenced_frame_reporter_ || is_ad_component_) { + if ((fenced_frame_reporter_ || is_ad_component_) && + entity != FencedFrameEntity::kCrossOriginContent) { // An ad component should use its parent's fenced frame reporter. Even // though it does not have a reporter in its `FencedFrameProperties`, this - // flag is still marked as true. + // flag is still marked as true. Content that is cross-origin to the + // config's mapped url will not get access to its parent's reporter. redacted_properties.has_fenced_frame_reporting_ = true; } @@ -291,8 +294,8 @@ // was called to generate the config, rather than any cross-site data. redacted_properties.mode_ = mode_; - redacted_properties.required_permissions_to_load_ = - required_permissions_to_load; + redacted_properties.effective_enabled_permissions_ = + effective_enabled_permissions; return redacted_properties; }
diff --git a/content/browser/fenced_frame/fenced_frame_config.h b/content/browser/fenced_frame/fenced_frame_config.h index 21ccd59e..95fc8c0 100644 --- a/content/browser/fenced_frame/fenced_frame_config.h +++ b/content/browser/fenced_frame/fenced_frame_config.h
@@ -17,7 +17,10 @@ // using the `FencedFrameEntity` enum: // * `kEmbedder`: the renderer process that embeds the fenced frame and calls // the config-generating API -// * `kContent`: the renderer process for the fenced frame content +// * `kSameOriginContent`: the renderer process for the fenced frame content, +// if the fenced frame content is same-origin to the config's mapped url +// * `kCrossOriginContent`: the renderer process for the fenced frame content, +// if the fenced frame content is cross-origin to the config's mapped url // // When a config-generating API constructs a config, for each field in the // config it must specify whether the field is opaque or transparent to @@ -57,8 +60,8 @@ // the browser, e.g. the partition nonce for network requests. // * Upon navigation commit, the browser constructs a // `RedactedFencedFrameProperties` from the `FencedFrameProperties` and the -// `kContent` entity. The constructor automatically performs the redaction -// process. +// `kSameOriginContent` or `kCrossOriginContent` entity. The constructor +// automatically performs the redaction process. // // Note: Because configs may contain nested configs (to be loaded into nested // fenced frames), the redaction process may recurse in order to redact these @@ -124,12 +127,13 @@ // The document that embeds a fenced frame. kEmbedder, - // The document inside a fenced frame. (Currently, this only applies to the - // very first document resulting from a urn navigation, not any subsequent - // navigations originating inside the fenced frame or affecting subframes. - // These other documents receive no visibility into the fenced frame - // config.) - kContent, + // The document inside a fenced frame whose origin matches the fenced frame's + // mapped URL. + kSameOriginContent, + + // The document inside a fenced frame whose origin doesn't match the fenced + // frame's mapped URL. + kCrossOriginContent, }; // Visibility levels specify whether information should be redacted when it is @@ -187,7 +191,12 @@ } break; } - case FencedFrameEntity::kContent: { + case FencedFrameEntity::kCrossOriginContent: { + // For now, content that is cross-origin to the mapped URL does not get + // access to any of the redacted properties in the config. + return absl::nullopt; + } + case FencedFrameEntity::kSameOriginContent: { if (visibility_to_content_ == VisibilityToContent::kOpaque) { return absl::nullopt; } @@ -312,11 +321,12 @@ // frames, such as FLEDGE and Shared Storage, require certain features to be // enabled in the frame's permissions policy, but they cannot be set directly // by the embedder since that opens a communication channel. The API that - // constructs the config will set this directly. + // constructs the config will set this directly. These permissions will be the + // only ones enabled in the fenced frame once it navigates. // See entry in spec: // https://wicg.github.io/fenced-frame/#fenced-frame-config-effective-enabled-permissions std::vector<blink::mojom::PermissionsPolicyFeature> - required_permissions_to_load; + effective_enabled_permissions; }; // Contains a set of fenced frame properties. These are generated at @@ -441,11 +451,12 @@ // frames, such as FLEDGE and Shared Storage, require certain features to be // enabled in the frame's permissions policy, but they cannot be set directly // by the embedder since that opens a communication channel. The API that - // constructs the config will set this directly. + // constructs the config will set this directly. These permissions will be the + // only ones enabled in the fenced frame once it navigates. // See entry in spec: // https://wicg.github.io/fenced-frame/#fenced-frame-config-effective-enabled-permissions std::vector<blink::mojom::PermissionsPolicyFeature> - required_permissions_to_load; + effective_enabled_permissions; }; } // namespace content
diff --git a/content/browser/fenced_frame/fenced_frame_url_mapping.cc b/content/browser/fenced_frame/fenced_frame_url_mapping.cc index 3e2b8a55..edaab27 100644 --- a/content/browser/fenced_frame/fenced_frame_url_mapping.cc +++ b/content/browser/fenced_frame/fenced_frame_url_mapping.cc
@@ -175,12 +175,12 @@ true, VisibilityToEmbedder::kTransparent, VisibilityToContent::kOpaque); // We don't know at this point if the test being run needs the FLEDGE or // Shared Storage permissions set. To be safe, we set both here. - config.required_permissions_to_load.insert( - config.required_permissions_to_load.end(), + config.effective_enabled_permissions.insert( + config.effective_enabled_permissions.end(), std::begin(blink::kFencedFrameFledgeDefaultRequiredFeatures), std::end(blink::kFencedFrameFledgeDefaultRequiredFeatures)); - config.required_permissions_to_load.insert( - config.required_permissions_to_load.end(), + config.effective_enabled_permissions.insert( + config.effective_enabled_permissions.end(), std::begin(blink::kFencedFrameSharedStorageDefaultRequiredFeatures), std::end(blink::kFencedFrameSharedStorageDefaultRequiredFeatures)); return urn; @@ -254,7 +254,7 @@ VisibilityToContent::kOpaque); config.on_navigate_callback_ = std::move(on_navigate_callback); - config.required_permissions_to_load = + config.effective_enabled_permissions = std::vector<blink::mojom::PermissionsPolicyFeature>( std::begin(blink::kFencedFrameFledgeDefaultRequiredFeatures), std::end(blink::kFencedFrameFledgeDefaultRequiredFeatures)); @@ -364,7 +364,7 @@ mapping_result.budget_metadata, std::move(mapping_result.fenced_frame_reporter)); config->mode_ = blink::FencedFrame::DeprecatedFencedFrameMode::kOpaqueAds; - config->required_permissions_to_load = { + config->effective_enabled_permissions = { std::begin(blink::kFencedFrameSharedStorageDefaultRequiredFeatures), std::end(blink::kFencedFrameSharedStorageDefaultRequiredFeatures)};
diff --git a/content/browser/fenced_frame/redacted_fenced_frame_config_mojom_traits_unittest.cc b/content/browser/fenced_frame/redacted_fenced_frame_config_mojom_traits_unittest.cc index 80c9d358..56ce9e13 100644 --- a/content/browser/fenced_frame/redacted_fenced_frame_config_mojom_traits_unittest.cc +++ b/content/browser/fenced_frame/redacted_fenced_frame_config_mojom_traits_unittest.cc
@@ -193,8 +193,12 @@ unredacted_redacted_equality_fn, redacted_redacted_equality_fn); TestPropertyForEntityIsDefinedIsOpaque<ClassName, RedactedClassName, TestType, RedactedTestType>( - config, property, redacted_property, Entity::kContent, false, false, - unredacted_redacted_equality_fn, redacted_redacted_equality_fn); + config, property, redacted_property, Entity::kSameOriginContent, false, + false, unredacted_redacted_equality_fn, redacted_redacted_equality_fn); + TestPropertyForEntityIsDefinedIsOpaque<ClassName, RedactedClassName, TestType, + RedactedTestType>( + config, property, redacted_property, Entity::kCrossOriginContent, false, + false, unredacted_redacted_equality_fn, redacted_redacted_equality_fn); // Test when `property` is opaque to embedder and transparent to content. (config.*property) @@ -206,8 +210,12 @@ unredacted_redacted_equality_fn, redacted_redacted_equality_fn); TestPropertyForEntityIsDefinedIsOpaque<ClassName, RedactedClassName, TestType, RedactedTestType>( - config, property, redacted_property, Entity::kContent, true, false, - unredacted_redacted_equality_fn, redacted_redacted_equality_fn); + config, property, redacted_property, Entity::kSameOriginContent, true, + false, unredacted_redacted_equality_fn, redacted_redacted_equality_fn); + TestPropertyForEntityIsDefinedIsOpaque<ClassName, RedactedClassName, TestType, + RedactedTestType>( + config, property, redacted_property, Entity::kCrossOriginContent, true, + true, unredacted_redacted_equality_fn, redacted_redacted_equality_fn); // Test when `property` is transparent to embedder and opaque to content. (config.*property) @@ -219,8 +227,12 @@ unredacted_redacted_equality_fn, redacted_redacted_equality_fn); TestPropertyForEntityIsDefinedIsOpaque<ClassName, RedactedClassName, TestType, RedactedTestType>( - config, property, redacted_property, Entity::kContent, true, true, - unredacted_redacted_equality_fn, redacted_redacted_equality_fn); + config, property, redacted_property, Entity::kSameOriginContent, true, + true, unredacted_redacted_equality_fn, redacted_redacted_equality_fn); + TestPropertyForEntityIsDefinedIsOpaque<ClassName, RedactedClassName, TestType, + RedactedTestType>( + config, property, redacted_property, Entity::kCrossOriginContent, true, + true, unredacted_redacted_equality_fn, redacted_redacted_equality_fn); } TEST(FencedFrameConfigMojomTraitsTest, ConfigMojomTraitsInternalUrnTest) { @@ -265,7 +277,7 @@ }; std::vector<FencedFrameEntity> entities = { FencedFrameEntity::kEmbedder, - FencedFrameEntity::kContent, + FencedFrameEntity::kSameOriginContent, }; GURL test_url("test_url"); GURL test_urn = GenerateUrnUuid();
diff --git a/content/browser/file_system_access/file_system_access_file_handle_impl.cc b/content/browser/file_system_access/file_system_access_file_handle_impl.cc index 626e484c7..51793c6 100644 --- a/content/browser/file_system_access/file_system_access_file_handle_impl.cc +++ b/content/browser/file_system_access/file_system_access_file_handle_impl.cc
@@ -677,15 +677,13 @@ DCHECK(max_swap_files_ >= 0); DCHECK(CanUseCowSwapFile()); - did_attempt_swap_file_cloning_for_testing_ = true; - auto after_clone_callback = base::BindOnce( &FileSystemAccessFileHandleImpl::DidCloneSwapFile, weak_factory_.GetWeakPtr(), count, swap_url, auto_close, std::move(lock), std::move(swap_lock), std::move(callback)); if (swap_file_cloning_will_fail_for_testing_) { - std::move(after_clone_callback).Run(base::File::Error::FILE_ERROR_FAILED); + std::move(after_clone_callback).Run(base::File::Error::FILE_ERROR_ABORT); return; } @@ -706,6 +704,8 @@ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); DCHECK(CanUseCowSwapFile()); + swap_file_clone_result_for_testing_ = result; + if (result == base::File::FILE_ERROR_EXISTS) { // Cloning fails if the destination file exists. The file must have been // created between the FileExists check and the clone attempt. Attempt to @@ -725,8 +725,6 @@ return; } - did_create_cloned_swap_file_for_testing_ = true; - std::move(callback).Run( file_system_access_error::Ok(), manager()->CreateFileWriter(
diff --git a/content/browser/file_system_access/file_system_access_file_handle_impl.h b/content/browser/file_system_access/file_system_access_file_handle_impl.h index f9e56a55..eae4dc4 100644 --- a/content/browser/file_system_access/file_system_access_file_handle_impl.h +++ b/content/browser/file_system_access/file_system_access_file_handle_impl.h
@@ -76,11 +76,9 @@ void set_swap_file_cloning_will_fail_for_testing() { swap_file_cloning_will_fail_for_testing_ = true; } - bool get_did_attempt_swap_file_cloning_for_testing() const { - return did_attempt_swap_file_cloning_for_testing_; - } - bool get_did_create_cloned_swap_file_for_testing() const { - return did_create_cloned_swap_file_for_testing_; + const absl::optional<base::File::Error>& + get_swap_file_clone_result_for_testing() const { + return swap_file_clone_result_for_testing_; } #endif // BUILDFLAG(IS_MAC) @@ -186,8 +184,8 @@ // Used to test that swap file creation attempts to use file cloning in some // circumstances, and gracefully handles file cloning errors. bool swap_file_cloning_will_fail_for_testing_ = false; - bool did_attempt_swap_file_cloning_for_testing_ = false; - bool did_create_cloned_swap_file_for_testing_ = false; + absl::optional<base::File::Error> swap_file_clone_result_for_testing_ = + absl::nullopt; #endif // BUILDFLAG(IS_MAC) base::WeakPtr<FileSystemAccessHandleBase> AsWeakPtr() override;
diff --git a/content/browser/file_system_access/file_system_access_file_handle_impl_unittest.cc b/content/browser/file_system_access/file_system_access_file_handle_impl_unittest.cc index b887ca7..ee12693 100644 --- a/content/browser/file_system_access/file_system_access_file_handle_impl_unittest.cc +++ b/content/browser/file_system_access/file_system_access_file_handle_impl_unittest.cc
@@ -546,12 +546,48 @@ class FileSystemAccessFileHandleSwapFileCloningTest : public FileSystemAccessFileHandleImplTest { public: + enum class CloneFileResult { + kDidNotAttempt, + kAttemptedAndAborted, + kAttemptedAndCompletedUnexpectedly, + kAttemptedAndCompletedAsExpected + }; + FileSystemAccessFileHandleSwapFileCloningTest() : scoped_feature_list_(features::kFileSystemAccessCowSwapFile) {} void SetUp() override { SetupHelper(storage::kFileSystemTypeLocal, /*is_incognito=*/false); } + CloneFileResult GetCloneFileResult( + const std::unique_ptr<FileSystemAccessFileHandleImpl>& handle) { + auto maybe_clone_result = handle->get_swap_file_clone_result_for_testing(); + + if (!maybe_clone_result.has_value()) { + return CloneFileResult::kDidNotAttempt; + } + + if (maybe_clone_result.value() == base::File::Error::FILE_ERROR_ABORT) { + return CloneFileResult::kAttemptedAndAborted; + } + + // We should not attempt to clone the file if the swap file exists. Other + // errors are okay. + if (maybe_clone_result.value() == base::File::Error::FILE_ERROR_EXISTS) { + return CloneFileResult::kAttemptedAndCompletedUnexpectedly; + } + + // TODO(https://crbug.com/1439179): Remove this expectation once we have a + // better idea of what's causing the spurious failures. + EXPECT_EQ(maybe_clone_result.value(), base::File::Error::FILE_OK); + + // Ideally we could just check that the result is FILE_OK, but + // clonefile() may spuriously fail. See https://crbug.com/1439179. For the + // purposes of these tests, we'll consider these spurious errors as + // "expected". + return CloneFileResult::kAttemptedAndCompletedAsExpected; + } + protected: base::test::ScopedFeatureList scoped_feature_list_; }; @@ -569,8 +605,8 @@ std::tie(result, writer_remote) = future.Take(); EXPECT_EQ(result->status, blink::mojom::FileSystemAccessStatus::kOk); EXPECT_TRUE(writer_remote.is_valid()); - EXPECT_TRUE(handle_->get_did_attempt_swap_file_cloning_for_testing()); - EXPECT_TRUE(handle_->get_did_create_cloned_swap_file_for_testing()); + EXPECT_EQ(GetCloneFileResult(handle_), + CloneFileResult::kAttemptedAndCompletedAsExpected); } TEST_F(FileSystemAccessFileHandleSwapFileCloningTest, @@ -587,8 +623,7 @@ std::tie(result, writer_remote) = future.Take(); EXPECT_EQ(result->status, blink::mojom::FileSystemAccessStatus::kOk); EXPECT_TRUE(writer_remote.is_valid()); - EXPECT_FALSE(handle_->get_did_attempt_swap_file_cloning_for_testing()); - EXPECT_FALSE(handle_->get_did_create_cloned_swap_file_for_testing()); + EXPECT_EQ(GetCloneFileResult(handle_), CloneFileResult::kDidNotAttempt); } TEST_F(FileSystemAccessFileHandleSwapFileCloningTest, HandleExistingSwapFile) { @@ -615,8 +650,8 @@ std::tie(result, writer_remote) = future.Take(); EXPECT_EQ(result->status, blink::mojom::FileSystemAccessStatus::kOk); EXPECT_TRUE(writer_remote.is_valid()); - EXPECT_TRUE(handle_->get_did_attempt_swap_file_cloning_for_testing()); - EXPECT_TRUE(handle_->get_did_create_cloned_swap_file_for_testing()); + EXPECT_EQ(GetCloneFileResult(handle_), + CloneFileResult::kAttemptedAndCompletedAsExpected); } TEST_F(FileSystemAccessFileHandleSwapFileCloningTest, HandleCloneFailure) { @@ -635,8 +670,7 @@ std::tie(result, writer_remote) = future.Take(); EXPECT_EQ(result->status, blink::mojom::FileSystemAccessStatus::kOk); EXPECT_TRUE(writer_remote.is_valid()); - EXPECT_TRUE(handle_->get_did_attempt_swap_file_cloning_for_testing()); - EXPECT_FALSE(handle_->get_did_create_cloned_swap_file_for_testing()); + EXPECT_EQ(GetCloneFileResult(handle_), CloneFileResult::kAttemptedAndAborted); } #endif // BUILDFLAG(IS_MAC)
diff --git a/content/browser/indexed_db/database_impl.cc b/content/browser/indexed_db/database_impl.cc index ca746f3..0cfabb6 100644 --- a/content/browser/indexed_db/database_impl.cc +++ b/content/browser/indexed_db/database_impl.cc
@@ -586,35 +586,30 @@ std::move(callbacks))); } -void DatabaseImpl::Clear( - int64_t transaction_id, - int64_t object_store_id, - mojo::PendingAssociatedRemote<blink::mojom::IDBCallbacks> - pending_callbacks) { +void DatabaseImpl::Clear(int64_t transaction_id, + int64_t object_store_id, + ClearCallback callback) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); - auto callbacks = base::MakeRefCounted<IndexedDBCallbacks>( - dispatcher_host_->AsWeakPtr(), bucket_info_, std::move(pending_callbacks), - idb_runner_); - if (!connection_->IsConnected()) + if (!connection_->IsConnected()) { + std::move(callback).Run(/*success=*/false); return; + } IndexedDBTransaction* transaction = connection_->GetTransaction(transaction_id); - if (!transaction) - return; - - if (!transaction->IsAcceptingRequests()) { + if (!transaction || !transaction->IsAcceptingRequests()) { // TODO(https://crbug.com/1249908): If the transaction was already committed // (or is in the process of being committed) we should kill the renderer. // This branch however also includes cases where the browser process aborted // the transaction, as currently we don't distinguish that state from the // transaction having been committed. So for now simply ignore the request. + std::move(callback).Run(/*success=*/false); return; } transaction->ScheduleTask(BindWeakOperation( &IndexedDBDatabase::ClearOperation, connection_->database()->AsWeakPtr(), - object_store_id, std::move(callbacks))); + object_store_id, std::move(callback))); } void DatabaseImpl::CreateIndex(int64_t transaction_id,
diff --git a/content/browser/indexed_db/database_impl.h b/content/browser/indexed_db/database_impl.h index 062d2f21..7a5b96e 100644 --- a/content/browser/indexed_db/database_impl.h +++ b/content/browser/indexed_db/database_impl.h
@@ -114,8 +114,7 @@ pending_callbacks) override; void Clear(int64_t transaction_id, int64_t object_store_id, - mojo::PendingAssociatedRemote<blink::mojom::IDBCallbacks> - pending_callbacks) override; + ClearCallback callback) override; void CreateIndex(int64_t transaction_id, int64_t object_store_id, int64_t index_id,
diff --git a/content/browser/indexed_db/indexed_db_database.cc b/content/browser/indexed_db/indexed_db_database.cc index ebd0432..daa2b2e 100644 --- a/content/browser/indexed_db/indexed_db_database.cc +++ b/content/browser/indexed_db/indexed_db_database.cc
@@ -1662,23 +1662,21 @@ Status IndexedDBDatabase::ClearOperation( int64_t object_store_id, - scoped_refptr<IndexedDBCallbacks> callbacks, + blink::mojom::IDBDatabase::ClearCallback success_callback, IndexedDBTransaction* transaction) { TRACE_EVENT1("IndexedDB", "IndexedDBDatabase::ClearOperation", "txn.id", transaction->id()); - - if (!IsObjectStoreIdInMetadata(object_store_id)) - return leveldb::Status::InvalidArgument("Invalid object_store_id."); - - Status s = backing_store_->ClearObjectStore( - transaction->BackingStoreTransaction(), id(), object_store_id); - if (!s.ok()) - return s; - callbacks->OnSuccess(); - - factory_->NotifyIndexedDBContentChanged( - bucket_locator(), metadata_.name, - metadata_.object_stores[object_store_id].name); + Status s = leveldb::Status::InvalidArgument("Invalid object_store_id."); + if (IsObjectStoreIdInMetadata(object_store_id)) { + s = backing_store_->ClearObjectStore(transaction->BackingStoreTransaction(), + id(), object_store_id); + } + if (s.ok()) { + factory_->NotifyIndexedDBContentChanged( + bucket_locator(), metadata_.name, + metadata_.object_stores[object_store_id].name); + } + std::move(success_callback).Run(s.ok()); return s; }
diff --git a/content/browser/indexed_db/indexed_db_database.h b/content/browser/indexed_db/indexed_db_database.h index 7449c20..e6fd1faa 100644 --- a/content/browser/indexed_db/indexed_db_database.h +++ b/content/browser/indexed_db/indexed_db_database.h
@@ -293,9 +293,10 @@ scoped_refptr<IndexedDBCallbacks> callbacks, IndexedDBTransaction* transaction); - leveldb::Status ClearOperation(int64_t object_store_id, - scoped_refptr<IndexedDBCallbacks> callbacks, - IndexedDBTransaction* transaction); + leveldb::Status ClearOperation( + int64_t object_store_id, + blink::mojom::IDBDatabase::ClearCallback callback, + IndexedDBTransaction* transaction); bool IsObjectStoreIdInMetadata(int64_t object_store_id) const; bool IsObjectStoreIdAndIndexIdInMetadata(int64_t object_store_id,
diff --git a/content/browser/indexed_db/indexed_db_dispatcher_host_unittest.cc b/content/browser/indexed_db/indexed_db_dispatcher_host_unittest.cc index f18d18d..7ee3af9b 100644 --- a/content/browser/indexed_db/indexed_db_dispatcher_host_unittest.cc +++ b/content/browser/indexed_db/indexed_db_dispatcher_host_unittest.cc
@@ -933,8 +933,6 @@ EXPECT_EQ(connection2->version, metadata2.version); EXPECT_EQ(connection2->db_name, metadata2.name); - std::unique_ptr<StrictMock<MockMojoIndexedDBCallbacks>> clear_callbacks; - // Clear object store. base::RunLoop loop5; base::RepeatingClosure quit_closure5 = @@ -943,12 +941,6 @@ FROM_HERE, base::BindLambdaForTesting([&]() { ::testing::InSequence dummy; - clear_callbacks = - std::make_unique<StrictMock<MockMojoIndexedDBCallbacks>>(); - - EXPECT_CALL(*clear_callbacks, Success()) - .Times(1) - .WillOnce(RunClosure(quit_closure5)); EXPECT_CALL(*connection2->connection_callbacks, Complete(kTransactionId2)) .Times(1) @@ -957,14 +949,13 @@ *connection2->open_callbacks, MockedSuccessDatabase(IsAssociatedInterfacePtrInfoValid(false), _)) .Times(1) - .WillOnce(RunClosure(std::move(quit_closure5))); + .WillOnce(RunClosure(quit_closure5)); connection2->database.Bind(std::move(pending_database2)); ASSERT_TRUE(connection2->database.is_bound()); ASSERT_TRUE(connection2->version_change_transaction.is_bound()); - connection2->database->Clear( - kTransactionId2, kObjectStoreId, - clear_callbacks->CreateInterfacePtrAndBind()); + connection2->database->Clear(kTransactionId2, kObjectStoreId, + base::IgnoreArgs<bool>(quit_closure5)); connection2->version_change_transaction->Commit(0); })); loop5.Run(); @@ -976,7 +967,6 @@ base::RunLoop loop6; context_impl_->IDBTaskRunner()->PostTask(FROM_HERE, base::BindLambdaForTesting([&]() { - clear_callbacks.reset(); connection2.reset(); loop6.Quit(); }));
diff --git a/content/browser/interest_group/ad_auction_service_impl.cc b/content/browser/interest_group/ad_auction_service_impl.cc index cc0f393f..bdbf163ae 100644 --- a/content/browser/interest_group/ad_auction_service_impl.cc +++ b/content/browser/interest_group/ad_auction_service_impl.cc
@@ -358,6 +358,13 @@ std::move(callback).Run(); } +void AdAuctionServiceImpl::GetInterestGroupAdAuctionData( + const url::Origin& seller, + GetInterestGroupAdAuctionDataCallback callback) { + // TODO(behamilton): Implement this functionality. + std::move(callback).Run({}); +} + void AdAuctionServiceImpl::CreateAdRequest( blink::mojom::AdRequestConfigPtr config, CreateAdRequestCallback callback) {
diff --git a/content/browser/interest_group/ad_auction_service_impl.h b/content/browser/interest_group/ad_auction_service_impl.h index e7fde20..67bbada 100644 --- a/content/browser/interest_group/ad_auction_service_impl.h +++ b/content/browser/interest_group/ad_auction_service_impl.h
@@ -72,6 +72,9 @@ const GURL& urn_url, std::vector<blink::mojom::AdKeywordReplacementPtr> replacements, DeprecatedReplaceInURNCallback callback) override; + void GetInterestGroupAdAuctionData( + const url::Origin& seller, + GetInterestGroupAdAuctionDataCallback callback) override; void CreateAdRequest(blink::mojom::AdRequestConfigPtr config, CreateAdRequestCallback callback) override; void FinalizeAd(const std::string& ads_guid,
diff --git a/content/browser/interest_group/interest_group_browsertest.cc b/content/browser/interest_group/interest_group_browsertest.cc index 1f4a0616..732a0a5 100644 --- a/content/browser/interest_group/interest_group_browsertest.cc +++ b/content/browser/interest_group/interest_group_browsertest.cc
@@ -13934,6 +13934,195 @@ EXPECT_FALSE(last_request_is_ad_auction_header_request()); } +class InterestGroupBiddingAndAuctionServerBrowserTest + : public InterestGroupBrowserTest { + public: + InterestGroupBiddingAndAuctionServerBrowserTest() { + feature_list_.InitAndEnableFeature( + blink::features::kFledgeBiddingAndAuctionServer); + } + + // Attempts to get the auction blob for seller. Returns kSuccess if the + // operation claims to have succeeded, and the exception message on failure. + // + // If `execution_target` is non-null, uses it as the target. Otherwise, uses + // shell(). + [[nodiscard]] std::string GetInterestGroupAdAuctionData( + url::Origin seller, + absl::optional<ToRenderFrameHost> execution_target = absl::nullopt) { + return EvalJs(execution_target ? *execution_target : shell(), + JsReplace(R"( + (async function() { + try { + let data = await navigator.getInterestGroupAdAuctionData({ + seller: $1 + }); + return btoa(String.fromCharCode.apply(null, data)); + } catch (e) { + return e.toString(); + } + })())", + seller)) + .ExtractString(); + } + + protected: + base::test::ScopedFeatureList feature_list_; +}; + +IN_PROC_BROWSER_TEST_F(InterestGroupBiddingAndAuctionServerBrowserTest, + TestEmpty) { + GURL test_url = https_server_->GetURL("a.test", "/interest_group/empty.html"); + url::Origin test_origin = url::Origin::Create(test_url); + + ASSERT_TRUE(NavigateToURL(shell(), test_url)); + + EXPECT_EQ("", GetInterestGroupAdAuctionData(test_origin)); +} + +IN_PROC_BROWSER_TEST_F(InterestGroupBiddingAndAuctionServerBrowserTest, + TestInvalidSeller) { + GURL test_url = https_server_->GetURL("a.test", "/interest_group/empty.html"); + url::Origin test_origin = url::Origin::Create(test_url); + + ASSERT_TRUE(NavigateToURL(shell(), test_url)); + + EXPECT_EQ( + "TypeError: Failed to execute 'getInterestGroupAdAuctionData' on " + "'Navigator': seller 'null' for AdAuctionDataConfig must be a valid " + "https origin.", + GetInterestGroupAdAuctionData(url::Origin())); +} + +IN_PROC_BROWSER_TEST_F(InterestGroupBiddingAndAuctionServerBrowserTest, + ChecksPermissionPolicyWarning) { + // TODO(behamilton): Merge with + // InterestGroupBrowserTest.FeaturesEnabledForAllByPermissionsPolicy once this + // feature has been released. + GURL test_url = https_server_->GetURL( + "a.test", + "/cross_site_iframe_factory.html?a.test(" + "a.test," + "b.test(" + "c.test{allow-join-ad-interest-group;run-ad-auction}," + "a.test{allow-join-ad-interest-group;run-ad-auction}," + "a.test{allow-join-ad-interest-group;run-ad-auction}" + ")" + ")"); + url::Origin test_origin = url::Origin::Create(test_url); + + ASSERT_TRUE(NavigateToURL(shell(), test_url)); + + RenderFrameHost* main_frame = web_contents()->GetPrimaryMainFrame(); + RenderFrameHost* same_origin_iframe = ChildFrameAt(main_frame, 0); + RenderFrameHost* cross_origin_iframe = ChildFrameAt(main_frame, 1); + RenderFrameHost* inner_cross_origin_iframe = + ChildFrameAt(cross_origin_iframe, 0); + RenderFrameHost* same_origin_iframe_in_cross_origin_iframe = + ChildFrameAt(cross_origin_iframe, 1); + RenderFrameHost* same_origin_iframe_in_cross_origin_iframe2 = + ChildFrameAt(cross_origin_iframe, 2); + + RenderFrameHost* execution_targets[] = { + main_frame, + same_origin_iframe, + cross_origin_iframe, + inner_cross_origin_iframe, + same_origin_iframe_in_cross_origin_iframe, + same_origin_iframe_in_cross_origin_iframe2}; + + for (auto* execution_target : execution_targets) { + SCOPED_TRACE(execution_target->GetLastCommittedURL().spec()); + WebContentsConsoleObserver console_observer(shell()->web_contents()); + console_observer.SetPattern(WarningPermissionsPolicy("*", "*")); + + EXPECT_EQ("", GetInterestGroupAdAuctionData(test_origin, execution_target)); +#if BUILDFLAG(IS_ANDROID) + RenderFrameHost* execution_targets_with_message[] = {cross_origin_iframe}; +#else + RenderFrameHost* execution_targets_with_message[] = { + cross_origin_iframe, inner_cross_origin_iframe, + same_origin_iframe_in_cross_origin_iframe}; +#endif // BUILDFLAG(IS_ANDROID) + if (base::Contains(execution_targets_with_message, execution_target)) { + EXPECT_EQ(WarningPermissionsPolicy("run-ad-auction", + "getInterestGroupAdAuctionData"), + console_observer.GetMessageAt(0)); + } else { + EXPECT_TRUE(console_observer.messages().empty()); + } + } +} + +class InterestGroupBiddingAndAuctionServerRestrictedPermissionsPolicyBrowserTest + : public InterestGroupBiddingAndAuctionServerBrowserTest { + public: + InterestGroupBiddingAndAuctionServerRestrictedPermissionsPolicyBrowserTest() { + feature_list_.InitAndEnableFeature( + blink::features::kAdInterestGroupAPIRestrictedPolicyByDefault); + } + + protected: + base::test::ScopedFeatureList feature_list_; +}; + +IN_PROC_BROWSER_TEST_F( + InterestGroupBiddingAndAuctionServerRestrictedPermissionsPolicyBrowserTest, + ChecksPermissionPolicyEnforce) { + // TODO(behamilton): Merge with + // InterestGroupBrowserTest.EnabledByPermissionsPolicy once this feature has + // been released. + GURL test_url = https_server_->GetURL( + "a.test", + "/cross_site_iframe_factory.html?a.test(" + "a.test," + "b.test(" + "c.test{allow-join-ad-interest-group;run-ad-auction}," + "a.test{allow-join-ad-interest-group;run-ad-auction}," + "a.test{allow-join-ad-interest-group;run-ad-auction}" + ")" + ")"); + url::Origin test_origin = url::Origin::Create(test_url); + + ASSERT_TRUE(NavigateToURL(shell(), test_url)); + + RenderFrameHost* main_frame = web_contents()->GetPrimaryMainFrame(); + RenderFrameHost* same_origin_iframe = ChildFrameAt(main_frame, 0); + RenderFrameHost* cross_origin_iframe = ChildFrameAt(main_frame, 1); + RenderFrameHost* inner_cross_origin_iframe = + ChildFrameAt(cross_origin_iframe, 0); + RenderFrameHost* same_origin_iframe_in_cross_origin_iframe = + ChildFrameAt(cross_origin_iframe, 1); + RenderFrameHost* same_origin_iframe_in_cross_origin_iframe2 = + ChildFrameAt(cross_origin_iframe, 2); + + RenderFrameHost* execution_targets[] = { + main_frame, + same_origin_iframe, + cross_origin_iframe, + inner_cross_origin_iframe, + same_origin_iframe_in_cross_origin_iframe, + same_origin_iframe_in_cross_origin_iframe2}; + + for (auto* execution_target : execution_targets) { + SCOPED_TRACE(execution_target->GetLastCommittedURL().spec()); + RenderFrameHost* execution_targets_with_message[] = { + cross_origin_iframe, inner_cross_origin_iframe, + same_origin_iframe_in_cross_origin_iframe, + same_origin_iframe_in_cross_origin_iframe2}; + if (base::Contains(execution_targets_with_message, execution_target)) { + EXPECT_EQ( + "NotAllowedError: Failed to execute 'getInterestGroupAdAuctionData' " + "on 'Navigator': " + "Feature run-ad-auction is not enabled by Permissions Policy", + GetInterestGroupAdAuctionData(test_origin, execution_target)); + } else { + EXPECT_EQ("", + GetInterestGroupAdAuctionData(test_origin, execution_target)); + } + } +} + } // namespace } // namespace content
diff --git a/content/browser/loader/loader_browsertest.cc b/content/browser/loader/loader_browsertest.cc index dcf89eab..0dd16eb 100644 --- a/content/browser/loader/loader_browsertest.cc +++ b/content/browser/loader/loader_browsertest.cc
@@ -765,7 +765,7 @@ std::unique_ptr<URLLoaderInterceptor> interceptor_; }; -IN_PROC_BROWSER_TEST_F(RequestDataBrowserTest, Basic) { +IN_PROC_BROWSER_TEST_F(RequestDataBrowserTest, DISABLED_Basic) { GURL top_url(embedded_test_server()->GetURL("/page_with_subresources.html")); url::Origin top_origin = url::Origin::Create(top_url);
diff --git a/content/browser/renderer_host/compositor_impl_android.cc b/content/browser/renderer_host/compositor_impl_android.cc index 5f4be48..1c74c880 100644 --- a/content/browser/renderer_host/compositor_impl_android.cc +++ b/content/browser/renderer_host/compositor_impl_android.cc
@@ -121,19 +121,7 @@ attributes.samples = 0; attributes.sample_buffers = 0; attributes.bind_generates_resource = false; - if (display_color_space == gfx::ColorSpace::CreateSRGB()) { - attributes.color_space = gpu::COLOR_SPACE_SRGB; - } else if (display_color_space == gfx::ColorSpace::CreateDisplayP3D65()) { - attributes.color_space = gpu::COLOR_SPACE_DISPLAY_P3; - } else { - // We don't support HDR on Android yet, but when we do, this function should - // be updated to support it. - DCHECK(!display_color_space.IsHDR()); - - attributes.color_space = gpu::COLOR_SPACE_UNSPECIFIED; - DLOG(ERROR) << "Android color space is neither sRGB nor P3, output color " - "will be incorrect."; - } + attributes.color_space = gpu::COLOR_SPACE_SRGB; if (requires_alpha_channel) { attributes.alpha_size = 8;
diff --git a/content/browser/renderer_host/navigation_request.cc b/content/browser/renderer_host/navigation_request.cc index ad258ab..bde59c13 100644 --- a/content/browser/renderer_host/navigation_request.cc +++ b/content/browser/renderer_host/navigation_request.cc
@@ -5681,8 +5681,8 @@ if (response()) { HandleTopicsEligibleResponse( - response_head_->parsed_headers, - url::Origin::Create(common_params_->url), *GetRenderFrameHost(), + response_head_->parsed_headers, url::Origin::Create(GetURL()), + *GetRenderFrameHost(), browsing_topics::ApiCallerSource::kIframeAttribute); } } @@ -7363,20 +7363,23 @@ // * If the properties have no mapped url, the browser will send the renderer // the `RedactedFencedFrameProperties` unconditionally. // * If the properties do have a mapped url, the browser will send the - // renderer the `RedactedFencedFrameProperties` when the committed - // origin is same-origin to the urn's mapped_url (after redirects). + // renderer the `RedactedFencedFrameProperties`, redacting extra information + // based on whether the origin is same-origin to the urn's mapped_url (after + // redirects). // This is because we want to make fenced frame APIs available only // in same-origin contexts, when "same-origin" has a coherent definition. const auto& computed_fenced_frame_properties = ComputeFencedFrameProperties(); if (computed_fenced_frame_properties.has_value()) { - if (!computed_fenced_frame_properties->mapped_url_.has_value() || - url::Origin::Create(common_params_->url) - .IsSameOriginWith(computed_fenced_frame_properties->mapped_url_ - ->GetValueIgnoringVisibility())) { - commit_params_->fenced_frame_properties = - computed_fenced_frame_properties->RedactFor( - content::FencedFrameEntity::kContent); + content::FencedFrameEntity entity = + content::FencedFrameEntity::kSameOriginContent; + if (computed_fenced_frame_properties->mapped_url_.has_value() && + !url::Origin::Create(common_params_->url) + .IsSameOriginWith(computed_fenced_frame_properties->mapped_url_ + ->GetValueIgnoringVisibility())) { + entity = content::FencedFrameEntity::kCrossOriginContent; } + commit_params_->fenced_frame_properties = + computed_fenced_frame_properties->RedactFor(entity); } if (ready_to_commit_callback_for_testing_) @@ -8461,13 +8464,12 @@ blink::GetPermissionsPolicyFeatureList(); // Check if the outer document's permissions policies allow all of the - // required policies for `origin`. - if (GetParentFrameOrOuterDocument() + // required policies. + absl::optional<const blink::PermissionsPolicy::Allowlist> embedder_allowlist = + GetParentFrameOrOuterDocument() ->permissions_policy() - ->GetAllowlistForFeatureIfExists(feature) && - !GetParentFrameOrOuterDocument() - ->permissions_policy() - ->IsFeatureEnabledForOrigin(feature, origin)) { + ->GetAllowlistForFeatureIfExists(feature); + if (embedder_allowlist && !embedder_allowlist->MatchesAll()) { return false; } @@ -8497,9 +8499,12 @@ if (!frame_tree_node_->IsFencedFrameRoot()) return true; + const absl::optional<FencedFrameProperties>& + computed_fenced_frame_properties = ComputeFencedFrameProperties(); + // Permissions policies only need to be checked for fenced frames created from // an API like FLEDGE or Shared Storage. - if (!fenced_frame_properties_) { + if (!computed_fenced_frame_properties) { return true; } @@ -8510,7 +8515,7 @@ // extra policies defined in the outer document/"allow" attribute won't have // any effect. for (const blink::mojom::PermissionsPolicyFeature feature : - fenced_frame_properties_->required_permissions_to_load) { + computed_fenced_frame_properties->effective_enabled_permissions) { if (!IsFencedFrameRequiredPolicyFeatureAllowed(origin, feature)) { const blink::PermissionsPolicyFeatureToNameMap& feature_to_name_map = blink::GetPermissionsPolicyFeatureToNameMap();
diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc index 865bed3f..8a1760f 100644 --- a/content/browser/renderer_host/render_frame_host_impl.cc +++ b/content/browser/renderer_host/render_frame_host_impl.cc
@@ -636,7 +636,7 @@ frame->frame_tree_node()->GetFencedFrameProperties(); base::span<const blink::mojom::PermissionsPolicyFeature> permissions; if (fenced_frame_properties) { - permissions = fenced_frame_properties->required_permissions_to_load; + permissions = fenced_frame_properties->effective_enabled_permissions; } subframe_policy = blink::PermissionsPolicy::CreateForFencedFrame( subframe_origin, permissions); @@ -11057,7 +11057,7 @@ frame_tree_node()->GetFencedFrameProperties(); base::span<const blink::mojom::PermissionsPolicyFeature> permissions; if (fenced_frame_properties) { - permissions = fenced_frame_properties->required_permissions_to_load; + permissions = fenced_frame_properties->effective_enabled_permissions; } permissions_policy_ = blink::PermissionsPolicy::CreateForFencedFrame( last_committed_origin_, permissions);
diff --git a/content/public/android/java/src/org/chromium/content/browser/AttributionOsLevelManager.java b/content/public/android/java/src/org/chromium/content/browser/AttributionOsLevelManager.java index e566b17..f6121a3 100644 --- a/content/public/android/java/src/org/chromium/content/browser/AttributionOsLevelManager.java +++ b/content/public/android/java/src/org/chromium/content/browser/AttributionOsLevelManager.java
@@ -89,8 +89,8 @@ * https://developer.android.com/reference/androidx/privacysandbox/ads/adservices/java/measurement/MeasurementManagerFutures. */ @CalledByNative - private void registerAttributionSource(int requestId, GURL registrationUrl, GURL topLevelOrigin, - boolean isDebugKeyAllowed, MotionEvent event) { + private void registerWebAttributionSource(int requestId, GURL registrationUrl, + GURL topLevelOrigin, boolean isDebugKeyAllowed, MotionEvent event) { if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) { onRegistrationCompleted(requestId, /*success=*/false); return; @@ -110,11 +110,31 @@ } /** + * Registers an attribution source with native, see `registerSourceAsync()`: + * https://developer.android.com/reference/androidx/privacysandbox/ads/adservices/java/measurement/MeasurementManagerFutures. + */ + @CalledByNative + private void registerAttributionSource(int requestId, GURL registrationUrl, MotionEvent event) { + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) { + onRegistrationCompleted(requestId, /*success=*/false); + return; + } + MeasurementManagerFutures mm = getManager(); + if (mm == null) { + onRegistrationCompleted(requestId, /*success=*/false); + return; + } + ListenableFuture<?> future = + mm.registerSourceAsync(Uri.parse(registrationUrl.getSpec()), event); + addRegistrationFutureCallback(requestId, future); + } + + /** * Registers a web attribution trigger with native, see `registerWebTriggerAsync()`: * https://developer.android.com/reference/androidx/privacysandbox/ads/adservices/java/measurement/MeasurementManagerFutures. */ @CalledByNative - private void registerAttributionTrigger( + private void registerWebAttributionTrigger( int requestId, GURL registrationUrl, GURL topLevelOrigin, boolean isDebugKeyAllowed) { if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) { onRegistrationCompleted(requestId, /*success=*/false);
diff --git a/content/public/android/javatests/src/org/chromium/content/browser/input/InsertionMarkerTest.java b/content/public/android/javatests/src/org/chromium/content/browser/input/InsertionMarkerTest.java index 76e29aba..5f7bf153 100644 --- a/content/public/android/javatests/src/org/chromium/content/browser/input/InsertionMarkerTest.java +++ b/content/public/android/javatests/src/org/chromium/content/browser/input/InsertionMarkerTest.java
@@ -17,6 +17,7 @@ import org.junit.runner.RunWith; import org.chromium.base.test.util.Batch; +import org.chromium.base.test.util.CommandLineFlags; import org.chromium.base.test.util.Criteria; import org.chromium.base.test.util.CriteriaHelper; import org.chromium.base.test.util.DisabledTest; @@ -30,6 +31,7 @@ * being sent when there's a caret on screen. */ @RunWith(ContentJUnit4ClassRunner.class) +@CommandLineFlags.Add({"enable-features=HiddenSelectionBounds"}) @Batch(Batch.PER_CLASS) public class InsertionMarkerTest { @Rule
diff --git a/content/public/browser/content_browser_client.cc b/content/public/browser/content_browser_client.cc index a5ea7ba..1c45972 100644 --- a/content/public/browser/content_browser_client.cc +++ b/content/public/browser/content_browser_client.cc
@@ -539,6 +539,10 @@ return true; } +bool ContentBrowserClient::ShouldUseOsWebSourceAttributionReporting() { + return true; +} + bool ContentBrowserClient::IsSharedStorageAllowed( content::BrowserContext* browser_context, content::RenderFrameHost* rfh,
diff --git a/content/public/browser/content_browser_client.h b/content/public/browser/content_browser_client.h index 3db43fd..44fbcd7 100644 --- a/content/public/browser/content_browser_client.h +++ b/content/public/browser/content_browser_client.h
@@ -925,6 +925,11 @@ // This method must be idempotent. virtual bool IsWebAttributionReportingAllowed(); + // Allows the embedder to control if an Os source event should register as + // a Web Os or Os (App) source. + // This method must be idempotent. + virtual bool ShouldUseOsWebSourceAttributionReporting(); + // Allows the embedder to control if Shared Storage API operations can happen // in a given context. //
diff --git a/content/public/common/content_switches.cc b/content/public/common/content_switches.cc index a56219d..41e33b3 100644 --- a/content/public/common/content_switches.cc +++ b/content/public/common/content_switches.cc
@@ -933,8 +933,9 @@ const char kWebXrRuntimeOrientationSensors[] = "orientation-sensors"; // The following are the runtimes that WebXr supports. +const char kWebXrRuntimeCardboard[] = "cardboard"; +const char kWebXrRuntimeGVR[] = "gvr"; const char kWebXrRuntimeOpenXr[] = "openxr"; -const char kWebXrRuntimeWMR[] = "windows-mixed-reality"; #if BUILDFLAG(IS_ANDROID) // Disable Media Session API
diff --git a/content/public/common/content_switches.h b/content/public/common/content_switches.h index 340fb1b4..e992dab 100644 --- a/content/public/common/content_switches.h +++ b/content/public/common/content_switches.h
@@ -242,9 +242,10 @@ extern const char kWebRtcMaxCaptureFramerate[]; CONTENT_EXPORT extern const char kWebXrForceRuntime[]; CONTENT_EXPORT extern const char kWebXrRuntimeNone[]; +CONTENT_EXPORT extern const char kWebXrRuntimeCardboard[]; +CONTENT_EXPORT extern const char kWebXrRuntimeGVR[]; CONTENT_EXPORT extern const char kWebXrRuntimeOrientationSensors[]; CONTENT_EXPORT extern const char kWebXrRuntimeOpenXr[]; -CONTENT_EXPORT extern const char kWebXrRuntimeWMR[]; CONTENT_EXPORT extern const char kZygoteCmdPrefix[]; CONTENT_EXPORT extern const char kZygoteProcess[];
diff --git a/content/public/test/browser_test_utils.cc b/content/public/test/browser_test_utils.cc index cdb7ad4..20332aa 100644 --- a/content/public/test/browser_test_utils.cc +++ b/content/public/test/browser_test_utils.cc
@@ -1627,7 +1627,6 @@ !(options & EXECUTE_SCRIPT_NO_USER_GESTURE) && world_id == ISOLATED_WORLD_ID_GLOBAL; - DOMMessageQueue dom_message_queue(rfh); ExecuteJavaScriptForTestsWaiter waiter(rfh); rfh->ExecuteJavaScriptForTests(base::UTF8ToUTF16(script), user_gesture, resolve_promises, world_id, @@ -1651,30 +1650,6 @@ "a JavaScript error: \"" + result_value.GetString() + "\""; return EvalJsResult(base::Value(), AnnotateAndAdjustJsStackTraces( error_text, source_url, script, 0)); - } else if (options & EXECUTE_SCRIPT_USE_MANUAL_REPLY) { - // Callers that set EXECUTE_SCRIPT_USE_MANUAL_REPLY expect this function to - // block until their JS calls `window.domAutomationController.send`. To - // support this, wait for a message from DOMMessageQueue and parse it as - // JSON. - std::string json; - if (!dom_message_queue.WaitForMessage(&json)) { - return EvalJsResult(base::Value(), - "Cannot communicate with DOMMessageQueue."); - } - - auto parsed_json = base::JSONReader::ReadAndReturnValueWithError( - json, base::JSON_ALLOW_TRAILING_COMMAS); - if (!parsed_json.has_value()) - return EvalJsResult(base::Value(), parsed_json.error().message); - result_type = JavaScriptExecutionResultType::kSuccess; - return EvalJsResult(parsed_json->Clone(), std::string()); - } else if (dom_message_queue.HasMessages()) { - return EvalJsResult(base::Value(), - "Calling domAutomationController.send is only allowed " - "when using EXECUTE_SCRIPT_USE_MANUAL_REPLY. When " - "using EvalJs(), the completion value is the value of " - "the last executed statement. When using ExecJs(), " - "there is no result value."); } return EvalJsResult(result_value.Clone(), std::string()); @@ -1686,9 +1661,6 @@ const std::string& script, int options, int32_t world_id) { - CHECK(!(options & EXECUTE_SCRIPT_USE_MANUAL_REPLY)) - << "USE_MANUAL_REPLY does not make sense with ExecJs."; - // TODO(nick): Do we care enough about folks shooting themselves in the foot // here with e.g. ASSERT_TRUE(ExecJs("window == window.top")) -- when they // mean EvalJs -- to fail a CHECK() when eval_result.value.is_bool()?
diff --git a/content/public/test/browser_test_utils.h b/content/public/test/browser_test_utils.h index f3cb642..1f7c98e 100644 --- a/content/public/test/browser_test_utils.h +++ b/content/public/test/browser_test_utils.h
@@ -790,21 +790,10 @@ // that. EXECUTE_SCRIPT_NO_USER_GESTURE = (1 << 0), - // This bit controls how the result is obtained. By default, EvalJs's runner - // script will call domAutomationController.send() with the completion - // value. Setting this bit will disable that, requiring |script| to provide - // its own call to domAutomationController.send() instead. - // - // Beware that if your script calls domAutomationController.send more than - // once, it can interfere with the results obtained by future calls to EvalJs. - // It is safer to use Promise resolution rather than - // domAutomationController.send. - EXECUTE_SCRIPT_USE_MANUAL_REPLY = (1 << 1), - // By default, when the script passed to EvalJs evaluates to a Promise, the // execution continues until the Promise resolves, and the resolved value is // returned. Setting this bit disables such Promise resolution. - EXECUTE_SCRIPT_NO_RESOLVE_PROMISES = (1 << 2), + EXECUTE_SCRIPT_NO_RESOLVE_PROMISES = (1 << 1), }; // EvalJs() -- run |script| in |execution_target| and return its value or error.
diff --git a/content/public/test/test_renderer_host.h b/content/public/test/test_renderer_host.h index d12f092..3ddd29a 100644 --- a/content/public/test/test_renderer_host.h +++ b/content/public/test/test_renderer_host.h
@@ -146,6 +146,9 @@ // RenderFrameHost::AddMessageToConsole in this frame. virtual const std::vector<std::string>& GetConsoleMessages() = 0; + // Clears the console messages logged in this frame. + virtual void ClearConsoleMessages() = 0; + // Get a count of the total number of heavy ad issues reported. virtual int GetHeavyAdIssueCount(HeavyAdIssueType type) = 0;
diff --git a/content/services/auction_worklet/auction_downloader.cc b/content/services/auction_worklet/auction_downloader.cc index d245742..540a873 100644 --- a/content/services/auction_worklet/auction_downloader.cc +++ b/content/services/auction_worklet/auction_downloader.cc
@@ -197,6 +197,7 @@ auto simple_url_loader = std::move(simple_url_loader_); std::string allow_fledge; + std::string auction_allowed; if (!body) { std::string error_msg; @@ -229,13 +230,17 @@ /*decoded_body_length=*/body->size()); if (!simple_url_loader->ResponseInfo()->headers || - !simple_url_loader->ResponseInfo()->headers->GetNormalizedHeader( - "X-Allow-FLEDGE", &allow_fledge) || - !base::EqualsCaseInsensitiveASCII(allow_fledge, "true")) { + ((!simple_url_loader->ResponseInfo()->headers->GetNormalizedHeader( + "X-Allow-FLEDGE", &allow_fledge) || + !base::EqualsCaseInsensitiveASCII(allow_fledge, "true")) && + (!simple_url_loader->ResponseInfo()->headers->GetNormalizedHeader( + "Ad-Auction-Allowed", &auction_allowed) || + !base::EqualsCaseInsensitiveASCII(auction_allowed, "true")))) { std::move(auction_downloader_callback_) .Run(/*body=*/nullptr, /*headers=*/nullptr, base::StringPrintf( - "Rejecting load of %s due to lack of X-Allow-FLEDGE: true.", + "Rejecting load of %s due to lack of Ad-Auction-Allowed: true " + "(or the deprecated X-Allow-FLEDGE: true).", source_url_.spec().c_str())); } else if (!MimeTypeIsConsistent(mime_type_, simple_url_loader->ResponseInfo())) {
diff --git a/content/services/auction_worklet/auction_downloader_unittest.cc b/content/services/auction_worklet/auction_downloader_unittest.cc index 1ec29fb99..760f6811 100644 --- a/content/services/auction_worklet/auction_downloader_unittest.cc +++ b/content/services/auction_worklet/auction_downloader_unittest.cc
@@ -133,7 +133,33 @@ EXPECT_FALSE(RunRequest()); EXPECT_EQ( "Rejecting load of https://url.test/script.js due to lack of " - "X-Allow-FLEDGE: true.", + "Ad-Auction-Allowed: true (or the deprecated X-Allow-FLEDGE: true).", + last_error_msg()); + + AddResponse(&url_loader_factory_, url_, kJavascriptMimeType, kUtf8Charset, + kAsciiResponseBody, "Ad-Auction-Allowed: true"); + EXPECT_TRUE(RunRequest()); + + AddResponse(&url_loader_factory_, url_, kJavascriptMimeType, kUtf8Charset, + kAsciiResponseBody, "Ad-Auction-Allowed: false"); + EXPECT_FALSE(RunRequest()); + EXPECT_EQ( + "Rejecting load of https://url.test/script.js due to lack of " + "Ad-Auction-Allowed: true (or the deprecated X-Allow-FLEDGE: true).", + last_error_msg()); + + AddResponse(&url_loader_factory_, url_, kJavascriptMimeType, kUtf8Charset, + kAsciiResponseBody, + "Ad-Auction-Allowed: true\nX-Allow-FLEDGE: true"); + EXPECT_TRUE(RunRequest()); + + AddResponse(&url_loader_factory_, url_, kJavascriptMimeType, kUtf8Charset, + kAsciiResponseBody, + "Ad-Auction-Allowed: false\nX-Allow-FLEDGE: false"); + EXPECT_FALSE(RunRequest()); + EXPECT_EQ( + "Rejecting load of https://url.test/script.js due to lack of " + "Ad-Auction-Allowed: true (or the deprecated X-Allow-FLEDGE: true).", last_error_msg()); AddResponse(&url_loader_factory_, url_, kJavascriptMimeType, kUtf8Charset, @@ -141,7 +167,7 @@ EXPECT_FALSE(RunRequest()); EXPECT_EQ( "Rejecting load of https://url.test/script.js due to lack of " - "X-Allow-FLEDGE: true.", + "Ad-Auction-Allowed: true (or the deprecated X-Allow-FLEDGE: true).", last_error_msg()); AddResponse(&url_loader_factory_, url_, kJavascriptMimeType, kUtf8Charset, @@ -149,7 +175,7 @@ EXPECT_FALSE(RunRequest()); EXPECT_EQ( "Rejecting load of https://url.test/script.js due to lack of " - "X-Allow-FLEDGE: true.", + "Ad-Auction-Allowed: true (or the deprecated X-Allow-FLEDGE: true).", last_error_msg()); AddResponse(&url_loader_factory_, url_, kJavascriptMimeType, kUtf8Charset, @@ -157,7 +183,7 @@ EXPECT_FALSE(RunRequest()); EXPECT_EQ( "Rejecting load of https://url.test/script.js due to lack of " - "X-Allow-FLEDGE: true.", + "Ad-Auction-Allowed: true (or the deprecated X-Allow-FLEDGE: true).", last_error_msg()); AddResponse(&url_loader_factory_, url_, kJavascriptMimeType, kUtf8Charset, @@ -165,7 +191,7 @@ EXPECT_FALSE(RunRequest()); EXPECT_EQ( "Rejecting load of https://url.test/script.js due to lack of " - "X-Allow-FLEDGE: true.", + "Ad-Auction-Allowed: true (or the deprecated X-Allow-FLEDGE: true).", last_error_msg()); AddResponse(&url_loader_factory_, url_, kJavascriptMimeType, kUtf8Charset, @@ -173,7 +199,7 @@ EXPECT_FALSE(RunRequest()); EXPECT_EQ( "Rejecting load of https://url.test/script.js due to lack of " - "X-Allow-FLEDGE: true.", + "Ad-Auction-Allowed: true (or the deprecated X-Allow-FLEDGE: true).", last_error_msg()); }
diff --git a/content/services/auction_worklet/trusted_signals.cc b/content/services/auction_worklet/trusted_signals.cc index 00122ce..839a170 100644 --- a/content/services/auction_worklet/trusted_signals.cc +++ b/content/services/auction_worklet/trusted_signals.cc
@@ -543,8 +543,11 @@ int format_version = 1; std::string format_version_string; if (headers && - headers->GetNormalizedHeader("X-fledge-bidding-signals-format-version", - &format_version_string)) { + (headers->GetNormalizedHeader( + "Ad-Auction-Bidding-Signals-Format-Version", + &format_version_string) || + headers->GetNormalizedHeader("X-fledge-bidding-signals-format-version", + &format_version_string))) { if (!base::StringToInt(format_version_string, &format_version) || (format_version != 1 && format_version != 2)) { std::string error = base::StringPrintf(
diff --git a/content/services/auction_worklet/trusted_signals_unittest.cc b/content/services/auction_worklet/trusted_signals_unittest.cc index db26da79..4b7a4e7 100644 --- a/content/services/auction_worklet/trusted_signals_unittest.cc +++ b/content/services/auction_worklet/trusted_signals_unittest.cc
@@ -13,6 +13,7 @@ #include "base/functional/bind.h" #include "base/memory/scoped_refptr.h" #include "base/run_loop.h" +#include "base/strings/stringprintf.h" #include "base/synchronization/waitable_event.h" #include "base/test/bind.h" #include "base/test/task_environment.h" @@ -442,6 +443,20 @@ "Rejecting load of https://url.test/ due to unrecognized Format-Version " "header: shiny", error_msg_.value()); + + AddResponse( + &url_loader_factory_, + GURL("https://url.test/" + "?hostname=publisher&keys=key1&interestGroupNames=name1"), + kJsonMimeType, absl::nullopt, kBaseBiddingJson, + base::StringPrintf("%s\nAd-Auction-Bidding-Signals-Format-Version: 100", + kAllowFledgeHeader)); + EXPECT_FALSE(FetchBiddingSignals({"name1"}, {"key1"}, kHostname, + /*experiment_group_id=*/absl::nullopt)); + EXPECT_EQ( + "Rejecting load of https://url.test/ due to unrecognized Format-Version " + "header: 100", + error_msg_.value()); } TEST_F(TrustedSignalsTest, BiddingSignalsResponseNotObject) { @@ -641,6 +656,45 @@ *priority_vector); } +TEST_F(TrustedSignalsTest, BiddingSignalsOneKeyNewHeaderName) { + AddResponse( + &url_loader_factory_, + GURL("https://url.test/" + "?hostname=publisher&keys=key1&interestGroupNames=name1"), + kJsonMimeType, absl::nullopt, kBaseBiddingJson, + base::StringPrintf("%s\nAd-Auction-Bidding-Signals-Format-Version: 2", + kAllowFledgeHeader)); + scoped_refptr<TrustedSignals::Result> signals = + FetchBiddingSignals({"name1"}, {"key1"}, kHostname, + /*experiment_group_id=*/absl::nullopt); + ASSERT_TRUE(signals); + EXPECT_EQ(R"({"key1":1})", ExtractBiddingSignals(signals.get(), {"key1"})); + const auto* priority_vector = signals->GetPriorityVector("name1"); + ASSERT_TRUE(priority_vector); + EXPECT_EQ((TrustedSignals::Result::PriorityVector{{"foo", 1}}), + *priority_vector); +} + +TEST_F(TrustedSignalsTest, BiddingSignalsOneKeyBothOldAndNewHeaderNames) { + AddResponse( + &url_loader_factory_, + GURL("https://url.test/" + "?hostname=publisher&keys=key1&interestGroupNames=name1"), + kJsonMimeType, absl::nullopt, kBaseBiddingJson, + base::StringPrintf("%s\nAd-Auction-Bidding-Signals-Format-Version: 2\n" + "X-Fledge-Bidding-Signals-Format-Version: 2", + kAllowFledgeHeader)); + scoped_refptr<TrustedSignals::Result> signals = + FetchBiddingSignals({"name1"}, {"key1"}, kHostname, + /*experiment_group_id=*/absl::nullopt); + ASSERT_TRUE(signals); + EXPECT_EQ(R"({"key1":1})", ExtractBiddingSignals(signals.get(), {"key1"})); + const auto* priority_vector = signals->GetPriorityVector("name1"); + ASSERT_TRUE(priority_vector); + EXPECT_EQ((TrustedSignals::Result::PriorityVector{{"foo", 1}}), + *priority_vector); +} + TEST_F(TrustedSignalsTest, ScoringSignalsForOneRenderUrl) { scoped_refptr<TrustedSignals::Result> signals = FetchScoringSignalsWithResponse(
diff --git a/content/test/browser_test_utils_browsertest.cc b/content/test/browser_test_utils_browsertest.cc index 3a5b6e1..5f3158c 100644 --- a/content/test/browser_test_utils_browsertest.cc +++ b/content/test/browser_test_utils_browsertest.cc
@@ -198,28 +198,18 @@ } } -IN_PROC_BROWSER_TEST_F(EvalJsBrowserTest, EvalJsWithManualReply) { +IN_PROC_BROWSER_TEST_F(EvalJsBrowserTest, EvalJsWithDomAutomationController) { ASSERT_TRUE(embedded_test_server()->Start()); EXPECT_TRUE( NavigateToURL(shell(), embedded_test_server()->GetURL("/title2.html"))); std::string script = "window.domAutomationController.send(20); 'hi';"; - // Calling domAutomationController is required for - // EXECUTE_SCRIPT_USE_MANUAL_REPLY. - EXPECT_EQ(20, EvalJs(shell(), script, EXECUTE_SCRIPT_USE_MANUAL_REPLY)); - - // Calling domAutomationController is an error with EvalJs. - auto result = EvalJs(shell(), script); - EXPECT_FALSE(20 == result); - EXPECT_FALSE("hi" == result); - EXPECT_THAT(result.error, - ::testing::EndsWith( - "Calling domAutomationController.send is only allowed " - "when using EXECUTE_SCRIPT_USE_MANUAL_REPLY. When " - "using EvalJs(), the completion value is the value of " - "the last executed statement. When using ExecJs(), " - "there is no result value.")); + // Calling domAutomationController is allowed with EvalJs, but doesn't + // influence the completion value. + EvalJsResult result = EvalJs(shell(), script); + EXPECT_NE(20, result); + EXPECT_EQ("hi", result); } IN_PROC_BROWSER_TEST_F(EvalJsBrowserTest, EvalJsTimeout) { @@ -268,4 +258,15 @@ "an isolated world. Details:")); } +IN_PROC_BROWSER_TEST_F(EvalJsBrowserTest, ExecJsWithDomAutomationController) { + ASSERT_TRUE(embedded_test_server()->Start()); + EXPECT_TRUE( + NavigateToURL(shell(), embedded_test_server()->GetURL("/title2.html"))); + + std::string script = "window.domAutomationController.send(20); 'hi';"; + + // Calling domAutomationController is allowed with ExecJs. + EXPECT_TRUE(ExecJs(shell(), script)); +} + } // namespace content
diff --git a/content/test/gpu/gpu_tests/test_expectations/webcodecs_expectations.txt b/content/test/gpu/gpu_tests/test_expectations/webcodecs_expectations.txt index a2cabeb..2005ad7 100644 --- a/content/test/gpu/gpu_tests/test_expectations/webcodecs_expectations.txt +++ b/content/test/gpu/gpu_tests/test_expectations/webcodecs_expectations.txt
@@ -134,8 +134,6 @@ crbug.com/1444151 [ mac apple-apple-m2 ] WebCodecs_EncodingRateControl_avc1.420034_prefer-hardware_constant_* [ Failure ] crbug.com/1444151 [ mac apple-apple-m2 ] WebCodecs_EncodingRateControl_avc1.420034_prefer-hardware_variable_1500000 [ RetryOnFailure ] -crbug.com/1446081 [ win10 amd-0x7340 passthrough angle-d3d11 ] WebCodecs_EncodeColorSpace_avc1.42001E_prefer-hardware [ Failure ] - ####################################################################### # Automated Entries After This Point - Do Not Manually Add Below Here # #######################################################################
diff --git a/content/test/test_render_frame_host.cc b/content/test/test_render_frame_host.cc index 2ee32ab..fa44643 100644 --- a/content/test/test_render_frame_host.cc +++ b/content/test/test_render_frame_host.cc
@@ -270,6 +270,10 @@ return console_messages_; } +void TestRenderFrameHost::ClearConsoleMessages() { + console_messages_.clear(); +} + int TestRenderFrameHost::GetHeavyAdIssueCount( RenderFrameHostTester::HeavyAdIssueType type) { switch (type) {
diff --git a/content/test/test_render_frame_host.h b/content/test/test_render_frame_host.h index 4d9e661..0200232 100644 --- a/content/test/test_render_frame_host.h +++ b/content/test/test_render_frame_host.h
@@ -113,6 +113,7 @@ void SimulateUnloadACK() override; void SimulateUserActivation() override; const std::vector<std::string>& GetConsoleMessages() override; + void ClearConsoleMessages() override; int GetHeavyAdIssueCount(HeavyAdIssueType type) override; void SimulateManifestURLUpdate(const GURL& manifest_url) override; TestRenderFrameHost* AppendFencedFrame() override;
diff --git a/device/bluetooth/public/cpp/bluetooth_uuid.h b/device/bluetooth/public/cpp/bluetooth_uuid.h index d636ba6..df51649 100644 --- a/device/bluetooth/public/cpp/bluetooth_uuid.h +++ b/device/bluetooth/public/cpp/bluetooth_uuid.h
@@ -14,9 +14,8 @@ #include "build/build_config.h" #if BUILDFLAG(IS_WIN) -#include <rpc.h> - #include "base/strings/string_piece_forward.h" +#include "base/win/windows_types.h" #endif // BUILDFLAG(IS_WIN) namespace device {
diff --git a/device/bluetooth/public/cpp/bluetooth_uuid_unittest.cc b/device/bluetooth/public/cpp/bluetooth_uuid_unittest.cc index fe9d83ea..441a3e35 100644 --- a/device/bluetooth/public/cpp/bluetooth_uuid_unittest.cc +++ b/device/bluetooth/public/cpp/bluetooth_uuid_unittest.cc
@@ -13,6 +13,10 @@ #include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h" +#if BUILDFLAG(IS_WIN) +#include <rpc.h> +#endif + namespace device { TEST(BluetoothUUIDTest, BluetoothUUID) {
diff --git a/device/fido/fido_discovery_factory.cc b/device/fido/fido_discovery_factory.cc index 71259a9..22b6d887 100644 --- a/device/fido/fido_discovery_factory.cc +++ b/device/fido/fido_discovery_factory.cc
@@ -22,7 +22,11 @@ #endif // !BUILDFLAG(IS_ANDROID) #if BUILDFLAG(IS_WIN) +// rpc.h needs to be included before winuser.h. +#include <rpc.h> + #include <Winuser.h> + #include "device/fido/win/discovery.h" #include "device/fido/win/webauthn_api.h" #endif // BUILDFLAG(IS_WIN)
diff --git a/extensions/browser/api/declarative/declarative_rule.h b/extensions/browser/api/declarative/declarative_rule.h index 585e1438..08cb07f2 100644 --- a/extensions/browser/api/declarative/declarative_rule.h +++ b/extensions/browser/api/declarative/declarative_rule.h
@@ -19,6 +19,7 @@ #include "base/functional/callback.h" #include "base/memory/ptr_util.h" #include "base/time/time.h" +#include "base/values.h" #include "components/url_matcher/url_matcher.h" #include "extensions/common/api/events.h" #include "extensions/common/extension.h" @@ -26,7 +27,6 @@ namespace base { class Time; -class Value; } namespace content { @@ -59,7 +59,6 @@ template<typename ConditionT> class DeclarativeConditionSet { public: - using Values = std::vector<base::Value>; using Conditions = std::vector<std::unique_ptr<const ConditionT>>; using const_iterator = typename Conditions::const_iterator; @@ -72,7 +71,7 @@ static std::unique_ptr<DeclarativeConditionSet> Create( const Extension* extension, url_matcher::URLMatcherConditionFactory* url_matcher_condition_factory, - const Values& condition_values, + const base::Value::List& condition_values, std::string* error); const Conditions& conditions() const { @@ -143,7 +142,6 @@ template<typename ActionT> class DeclarativeActionSet { public: - using Values = std::vector<base::Value>; using Actions = std::vector<scoped_refptr<const ActionT>>; explicit DeclarativeActionSet(const Actions& actions); @@ -157,7 +155,7 @@ static std::unique_ptr<DeclarativeActionSet> Create( content::BrowserContext* browser_context, const Extension* extension, - const Values& action_values, + const base::Value::List& action_values, std::string* error, bool* bad_message); @@ -307,7 +305,7 @@ DeclarativeConditionSet<ConditionT>::Create( const Extension* extension, url_matcher::URLMatcherConditionFactory* url_matcher_condition_factory, - const Values& condition_values, + const base::Value::List& condition_values, std::string* error) { Conditions result; @@ -361,7 +359,7 @@ std::unique_ptr<DeclarativeActionSet<ActionT>> DeclarativeActionSet<ActionT>::Create(content::BrowserContext* browser_context, const Extension* extension, - const Values& action_values, + const base::Value::List& action_values, std::string* error, bool* bad_message) { *error = "";
diff --git a/extensions/browser/api/declarative/declarative_rule_unittest.cc b/extensions/browser/api/declarative/declarative_rule_unittest.cc index a366a768..698965a 100644 --- a/extensions/browser/api/declarative/declarative_rule_unittest.cc +++ b/extensions/browser/api/declarative/declarative_rule_unittest.cc
@@ -66,9 +66,9 @@ TEST(DeclarativeConditionTest, ErrorConditionSet) { URLMatcher matcher; - RecordingConditionSet::Values conditions; - conditions.push_back(ParseJson("{\"key\": 1}")); - conditions.push_back(ParseJson("{\"bad_key\": 2}")); + base::Value::List conditions; + conditions.Append(ParseJson("{\"key\": 1}")); + conditions.Append(ParseJson("{\"bad_key\": 2}")); std::string error; std::unique_ptr<RecordingConditionSet> result = RecordingConditionSet::Create( @@ -79,9 +79,9 @@ TEST(DeclarativeConditionTest, CreateConditionSet) { URLMatcher matcher; - RecordingConditionSet::Values conditions; - conditions.push_back(ParseJson("{\"key\": 1}")); - conditions.push_back(ParseJson("[\"val1\", 2]")); + base::Value::List conditions; + conditions.Append(ParseJson("{\"key\": 1}")); + conditions.Append(ParseJson("[\"val1\", 2]")); // Test insertion std::string error; @@ -157,11 +157,11 @@ TEST(DeclarativeConditionTest, FulfillConditionSet) { typedef DeclarativeConditionSet<FulfillableCondition> FulfillableConditionSet; - FulfillableConditionSet::Values conditions; - conditions.push_back(ParseJson("{\"url_id\": 1, \"max\": 3}")); - conditions.push_back(ParseJson("{\"url_id\": 2, \"max\": 5}")); - conditions.push_back(ParseJson("{\"url_id\": 3, \"max\": 1}")); - conditions.push_back(ParseJson("{\"max\": -5}")); // No url. + base::Value::List conditions; + conditions.Append(ParseJson("{\"url_id\": 1, \"max\": 3}")); + conditions.Append(ParseJson("{\"url_id\": 2, \"max\": 5}")); + conditions.Append(ParseJson("{\"url_id\": 3, \"max\": 1}")); + conditions.Append(ParseJson("{\"max\": -5}")); // No url. // Test insertion std::string error; @@ -258,9 +258,9 @@ typedef DeclarativeActionSet<SummingAction> SummingActionSet; TEST(DeclarativeActionTest, ErrorActionSet) { - SummingActionSet::Values actions; - actions.push_back(ParseJson("{\"value\": 1}")); - actions.push_back(ParseJson("{\"error\": \"the error\"}")); + base::Value::List actions; + actions.Append(ParseJson("{\"value\": 1}")); + actions.Append(ParseJson("{\"error\": \"the error\"}")); std::string error; bool bad = false; @@ -271,8 +271,8 @@ EXPECT_FALSE(result); actions.clear(); - actions.push_back(ParseJson("{\"value\": 1}")); - actions.push_back(ParseJson("{\"bad\": 3}")); + actions.Append(ParseJson("{\"value\": 1}")); + actions.Append(ParseJson("{\"bad\": 3}")); result = SummingActionSet::Create(nullptr, nullptr, actions, &error, &bad); EXPECT_EQ("", error); EXPECT_TRUE(bad); @@ -280,9 +280,9 @@ } TEST(DeclarativeActionTest, ApplyActionSet) { - SummingActionSet::Values actions; - actions.push_back(ParseJson("{\"value\": 1, \"priority\": 5}")); - actions.push_back(ParseJson("{\"value\": 2}")); + base::Value::List actions; + actions.Append(ParseJson("{\"value\": 1, \"priority\": 5}")); + actions.Append(ParseJson("{\"value\": 2}")); // Test insertion std::string error;
diff --git a/extensions/browser/api/declarative_webrequest/webrequest_condition_unittest.cc b/extensions/browser/api/declarative_webrequest/webrequest_condition_unittest.cc index 5453aba..9633958 100644 --- a/extensions/browser/api/declarative_webrequest/webrequest_condition_unittest.cc +++ b/extensions/browser/api/declarative_webrequest/webrequest_condition_unittest.cc
@@ -215,8 +215,8 @@ TEST(WebRequestConditionTest, CreateConditionSet) { URLMatcher matcher; - WebRequestConditionSet::Values conditions; - conditions.push_back(base::test::ParseJson( + base::Value::List conditions; + conditions.Append(base::test::ParseJson( "{ \n" " \"instanceType\": \"declarativeWebRequest.RequestMatcher\", \n" " \"url\": { \n" @@ -224,7 +224,7 @@ " \"schemes\": [\"http\"], \n" " }, \n" "}")); - conditions.push_back(base::test::ParseJson( + conditions.Append(base::test::ParseJson( "{ \n" " \"instanceType\": \"declarativeWebRequest.RequestMatcher\", \n" " \"url\": { \n" @@ -285,8 +285,8 @@ TEST(WebRequestConditionTest, TestPortFilter) { URLMatcher matcher; - WebRequestConditionSet::Values conditions; - conditions.push_back(base::test::ParseJson( + base::Value::List conditions; + conditions.Append(base::test::ParseJson( "{ \n" " \"instanceType\": \"declarativeWebRequest.RequestMatcher\", \n" " \"url\": { \n"
diff --git a/extensions/browser/extension_util.h b/extensions/browser/extension_util.h index 69c11fe..b69a06d 100644 --- a/extensions/browser/extension_util.h +++ b/extensions/browser/extension_util.h
@@ -99,7 +99,7 @@ // `BrowserContext::UniqueId()` directly. // TODO(crbug.com/1444279): Migrate callers to use the `context` unique id // directly. For that we need to update all data keyed by integer context ids to -// be keyed by strings instead +// be keyed by strings instead. int GetBrowserContextId(content::BrowserContext* context); // Returns whether the |extension| should be loaded in the given
diff --git a/extensions/common/api/declarative/declarative_manifest_data.cc b/extensions/common/api/declarative/declarative_manifest_data.cc index 98d5945a..ff223e2 100644 --- a/extensions/common/api/declarative/declarative_manifest_data.cc +++ b/extensions/common/api/declarative/declarative_manifest_data.cc
@@ -48,7 +48,7 @@ // the manifest key for the internal key. bool ConvertManifestRule(DeclarativeManifestData::Rule& rule, ErrorBuilder* error_builder) { - auto convert_list = [error_builder](std::vector<base::Value>& list) { + auto convert_list = [error_builder](base::Value::List& list) { for (base::Value& value : list) { base::Value::Dict* dictionary = value.GetIfDict(); if (!dictionary) {
diff --git a/extensions/common/api/file_handlers.idl b/extensions/common/api/file_handlers.idl index 29bd585..4d27688 100644 --- a/extensions/common/api/file_handlers.idl +++ b/extensions/common/api/file_handlers.idl
@@ -41,7 +41,8 @@ Icon[]? icons; // Whether multiple files should be opened in a single client or multiple. - // Defaults to `single-client`. + // Defaults to `single-client`, which opens one window containing one array + // with each file. `multiple-clients` opens a new window for each file. DOMString? launch_type; };
diff --git a/infra/config/generated/luci/cr-buildbucket.cfg b/infra/config/generated/luci/cr-buildbucket.cfg index c6eef3f..22be43a 100644 --- a/infra/config/generated/luci/cr-buildbucket.cfg +++ b/infra/config/generated/luci/cr-buildbucket.cfg
@@ -55105,6 +55105,7 @@ ' "dimensions": {' ' "builder": "Android x64 Builder (dbg)",' ' "builderless": "",' + ' "free_space": "",' ' "ssd": ""' ' },' ' "tester_filter": {'
diff --git a/infra/config/subprojects/reviver/reviver.star b/infra/config/subprojects/reviver/reviver.star index 70d328a6..5bbd087 100644 --- a/infra/config/subprojects/reviver/reviver.star +++ b/infra/config/subprojects/reviver/reviver.star
@@ -84,6 +84,7 @@ dimensions = dimensions.dimensions( builderless = "", ssd = "", + free_space = "", builder = "Android x64 Builder (dbg)", ), testers = [
diff --git a/ios/chrome/browser/flags/about_flags.mm b/ios/chrome/browser/flags/about_flags.mm index 454c55c..60c1e426 100644 --- a/ios/chrome/browser/flags/about_flags.mm +++ b/ios/chrome/browser/flags/about_flags.mm
@@ -93,7 +93,7 @@ #import "ios/chrome/browser/ui/content_suggestions/content_suggestions_feature.h" #import "ios/chrome/browser/ui/download/features.h" #import "ios/chrome/browser/ui/ntp/new_tab_page_feature.h" -#import "ios/chrome/browser/ui/ntp/new_tab_page_retention_field_trial_constants.h" +#import "ios/chrome/browser/ui/ntp/new_tab_page_field_trial_constants.h" #import "ios/chrome/browser/ui/omnibox/omnibox_ui_features.h" #import "ios/chrome/browser/ui/popup_menu/overflow_menu/feature_flags.h" #import "ios/chrome/browser/ui/post_restore_signin/features.h" @@ -372,6 +372,28 @@ std::size(kMagicStackReducedNTPTopSpace), nullptr}, }; +const FeatureEntry::FeatureParam kHideAllContentSuggestionsTilesAll[] = { + {kHideContentSuggestionsTilesParamMostVisited, "true"}, + {kHideContentSuggestionsTilesParamShortcuts, "true"}, +}; +const FeatureEntry::FeatureParam kHideAllContentSuggestionsTilesMVT[] = { + {kHideContentSuggestionsTilesParamMostVisited, "true"}, + {kHideContentSuggestionsTilesParamShortcuts, "false"}, +}; +const FeatureEntry::FeatureParam kHideAllContentSuggestionsTilesShortcuts[] = { + {kHideContentSuggestionsTilesParamMostVisited, "false"}, + {kHideContentSuggestionsTilesParamShortcuts, "true"}, +}; + +const FeatureEntry::FeatureVariation kHideContentSuggestionTilesVariations[]{ + {"Hide all tiles", kHideAllContentSuggestionsTilesAll, + std::size(kHideAllContentSuggestionsTilesAll), nullptr}, + {"Hide Most Visited tiles", kHideAllContentSuggestionsTilesMVT, + std::size(kHideAllContentSuggestionsTilesMVT), nullptr}, + {"Hide Shortcuts tiles", kHideAllContentSuggestionsTilesShortcuts, + std::size(kHideAllContentSuggestionsTilesShortcuts), nullptr}, +}; + #if BUILDFLAG(IOS_BACKGROUND_MODE_ENABLED) // Feed Background Refresh Feature Params. const FeatureEntry::FeatureParam kOneHourIntervalOneHourMaxAgeOnce[] = { @@ -510,16 +532,17 @@ {{"minimal", kIOSNewPostRestoreExperienceMinimal, std::size(kIOSNewPostRestoreExperienceMinimal), nullptr}}; -const FeatureEntry::FeatureParam kNewTabPageRetentionTileAblationHideAll[] = { - {ntp_tiles::kNewTabPageRetentionParam, "1"}}; -const FeatureEntry::FeatureParam kNewTabPageRetentionTileAblationHideMVTOnly[] = - {{ntp_tiles::kNewTabPageRetentionParam, "2"}}; -const FeatureEntry::FeatureVariation kNewTabPageRetentionVariations[] = { - {"- Tile ablation, Hide all", kNewTabPageRetentionTileAblationHideAll, - std::size(kNewTabPageRetentionTileAblationHideAll), nullptr}, +const FeatureEntry::FeatureParam kNewTabPageFieldTrialTileAblationHideAll[] = { + {ntp_tiles::kNewTabPageFieldTrialParam, "1"}}; +const FeatureEntry::FeatureParam + kNewTabPageFieldTrialTileAblationHideMVTOnly[] = { + {ntp_tiles::kNewTabPageFieldTrialParam, "2"}}; +const FeatureEntry::FeatureVariation kNewTabPageFieldTrialVariations[] = { + {"- Tile ablation, Hide all", kNewTabPageFieldTrialTileAblationHideAll, + std::size(kNewTabPageFieldTrialTileAblationHideAll), nullptr}, {"- Tile ablation, Hide MVT only", - kNewTabPageRetentionTileAblationHideMVTOnly, - std::size(kNewTabPageRetentionTileAblationHideMVTOnly), nullptr}}; + kNewTabPageFieldTrialTileAblationHideMVTOnly, + std::size(kNewTabPageFieldTrialTileAblationHideMVTOnly), nullptr}}; const FeatureEntry::FeatureParam kEnableExpKitTextClassifierDate[] = { {"date", "true"}}; @@ -602,11 +625,6 @@ const FeatureEntry::FeatureParam kCredentialProviderExtensionPromoOnLoginWithAutofill[] = { {kCredentialProviderExtensionPromoOnLoginWithAutofillParam, "true"}}; -const FeatureEntry::FeatureParam - kCredentialProviderExtensionPromoOnAllTriggers[] = { - {kCredentialProviderExtensionPromoOnLoginWithAutofillParam, "true"}, - {kCredentialProviderExtensionPromoOnPasswordCopiedParam, "true"}, - {kCredentialProviderExtensionPromoOnPasswordSavedParam, "true"}}; const FeatureEntry::FeatureVariation kCredentialProviderExtensionPromoVariations[] = { @@ -619,8 +637,6 @@ kCredentialProviderExtensionPromoOnLoginWithAutofill, std::size(kCredentialProviderExtensionPromoOnLoginWithAutofill), nullptr}, - {"On all triggers", kCredentialProviderExtensionPromoOnAllTriggers, - std::size(kCredentialProviderExtensionPromoOnAllTriggers), nullptr}, }; const FeatureEntry::FeatureParam kIOSEditMenuPartialTranslateNoIncognito[] = { @@ -1115,11 +1131,11 @@ flag_descriptions::kIOSPasswordBottomSheetName, flag_descriptions::kIOSPasswordBottomSheetDescription, flags_ui::kOsIos, FEATURE_VALUE_TYPE(password_manager::features::kIOSPasswordBottomSheet)}, - {"ios-new-tab-page-retention", flag_descriptions::kNewTabPageRetentionName, - flag_descriptions::kNewTabPageRetentionDescription, flags_ui::kOsIos, - FEATURE_WITH_PARAMS_VALUE_TYPE(ntp_tiles::kNewTabPageRetention, - kNewTabPageRetentionVariations, - ntp_tiles::kNewTabPageRetentionName)}, + {"ios-new-tab-page-retention", flag_descriptions::kNewTabPageFieldTrialName, + flag_descriptions::kNewTabPageFieldTrialDescription, flags_ui::kOsIos, + FEATURE_WITH_PARAMS_VALUE_TYPE(ntp_tiles::kNewTabPageFieldTrial, + kNewTabPageFieldTrialVariations, + ntp_tiles::kNewTabPageFieldTrialName)}, {"autofill-parse-iban-fields", flag_descriptions::kAutofillParseIBANFieldsName, flag_descriptions::kAutofillParseIBANFieldsDescription, flags_ui::kOsIos, @@ -1527,6 +1543,14 @@ flag_descriptions::kReplaceSyncPromosWithSignInPromosName, flag_descriptions::kReplaceSyncPromosWithSignInPromosDescription, flags_ui::kOsIos, FEATURE_VALUE_TYPE(kReplaceSyncPromosWithSignInPromos)}, + {"hide-content-suggestions-tiles", + flag_descriptions::kHideContentSuggestionTilesName, + flag_descriptions::kHideContentSuggestionTilesDescription, + flags_ui::kOsIos, + FEATURE_WITH_PARAMS_VALUE_TYPE( + kHideContentSuggestionsTiles, + kHideContentSuggestionTilesVariations, + flag_descriptions::kHideContentSuggestionTilesName)}, }; bool SkipConditionalFeatureEntry(const flags_ui::FeatureEntry& entry) {
diff --git a/ios/chrome/browser/flags/ios_chrome_field_trials.mm b/ios/chrome/browser/flags/ios_chrome_field_trials.mm index d225c76..3037fbe 100644 --- a/ios/chrome/browser/flags/ios_chrome_field_trials.mm +++ b/ios/chrome/browser/flags/ios_chrome_field_trials.mm
@@ -10,7 +10,7 @@ #import "ios/chrome/app/tests_hook.h" #import "ios/chrome/browser/paths/paths.h" #import "ios/chrome/browser/shared/model/application_context/application_context.h" -#import "ios/chrome/browser/ui/ntp/new_tab_page_retention_field_trial.h" +#import "ios/chrome/browser/ui/ntp/new_tab_page_field_trial.h" #import "ios/chrome/browser/ui/ntp/synced_segments_field_trial.h" #if !defined(__has_feature) || !__has_feature(objc_arc) @@ -38,9 +38,9 @@ return; } - new_tab_page_retention_field_trial::Create( - entropy_providers.low_entropy(), feature_list, - GetApplicationContext()->GetLocalState()); + new_tab_page_field_trial::Create(entropy_providers.low_entropy(), + feature_list, + GetApplicationContext()->GetLocalState()); synced_segments_field_trial::Create(entropy_providers.low_entropy(), feature_list, GetApplicationContext()->GetLocalState());
diff --git a/ios/chrome/browser/flags/ios_chrome_flag_descriptions.cc b/ios/chrome/browser/flags/ios_chrome_flag_descriptions.cc index 01c262c..3874af7 100644 --- a/ios/chrome/browser/flags/ios_chrome_flag_descriptions.cc +++ b/ios/chrome/browser/flags/ios_chrome_flag_descriptions.cc
@@ -487,6 +487,11 @@ "When enabled, the web view's insets are updated for scoll events. If " "disabled, the the web view's frame are updated."; +extern const char kHideContentSuggestionTilesName[] = + "Hide content suggestions tiles"; +extern const char kHideContentSuggestionTilesDescription[] = + "Hides content suggestions tiles from the new tab page."; + extern const char kHistorySyncOptInName[] = "History Sync Opt-In"; extern const char kHistorySyncOptInDescription[] = "Enables history sync opt-in"; @@ -568,9 +573,9 @@ const char kIOSPasswordBottomSheetDescription[] = "Enables the display of the password bottom sheet on IOS."; -const char kNewTabPageRetentionName[] = +const char kNewTabPageFieldTrialName[] = "New tab page features that target new users"; -const char kNewTabPageRetentionDescription[] = +const char kNewTabPageFieldTrialDescription[] = "Enables new tab page features that are available on first run for new " "Chrome iOS users.";
diff --git a/ios/chrome/browser/flags/ios_chrome_flag_descriptions.h b/ios/chrome/browser/flags/ios_chrome_flag_descriptions.h index 79cb2526..0159cbe3 100644 --- a/ios/chrome/browser/flags/ios_chrome_flag_descriptions.h +++ b/ios/chrome/browser/flags/ios_chrome_flag_descriptions.h
@@ -415,6 +415,11 @@ extern const char kFullscreenSmoothScrollingName[]; extern const char kFullscreenSmoothScrollingDescription[]; +// Title and description for the flag that hides the content suggestion tiles +// from the NTP. +extern const char kHideContentSuggestionTilesName[]; +extern const char kHideContentSuggestionTilesDescription[]; + // Title and description for the flag to enable history-sync opt-in. extern const char kHistorySyncOptInName[]; extern const char kHistorySyncOptInDescription[]; @@ -493,8 +498,8 @@ // Title and description of the flag to enable client side new tab page // experiments aimed at improving user retention. -extern const char kNewTabPageRetentionName[]; -extern const char kNewTabPageRetentionDescription[]; +extern const char kNewTabPageFieldTrialName[]; +extern const char kNewTabPageFieldTrialDescription[]; // Title and description for the flag to enable Shared Highlighting color // change in iOS.
diff --git a/ios/chrome/browser/ntp/set_up_list.mm b/ios/chrome/browser/ntp/set_up_list.mm index 5c27858..9cae36f 100644 --- a/ios/chrome/browser/ntp/set_up_list.mm +++ b/ios/chrome/browser/ntp/set_up_list.mm
@@ -34,7 +34,8 @@ case SetUpListItemType::kAutofill: return password_manager_util::IsCredentialProviderEnabledOnStartup(prefs); case SetUpListItemType::kFollow: - return false; + case SetUpListItemType::kAllSet: + NOTREACHED_NORETURN(); } }
diff --git a/ios/chrome/browser/ntp/set_up_list_item_type.h b/ios/chrome/browser/ntp/set_up_list_item_type.h index d558add..e1d3147 100644 --- a/ios/chrome/browser/ntp/set_up_list_item_type.h +++ b/ios/chrome/browser/ntp/set_up_list_item_type.h
@@ -12,8 +12,8 @@ kDefaultBrowser = 2, kAutofill = 3, kFollow = 4, - - kMaxValue = kFollow + kAllSet = 5, + kMaxValue = kAllSet }; #endif // IOS_CHROME_BROWSER_NTP_SET_UP_LIST_ITEM_TYPE_H_
diff --git a/ios/chrome/browser/ntp/set_up_list_prefs.h b/ios/chrome/browser/ntp/set_up_list_prefs.h index 9e94e66..a8288e6 100644 --- a/ios/chrome/browser/ntp/set_up_list_prefs.h +++ b/ios/chrome/browser/ntp/set_up_list_prefs.h
@@ -5,6 +5,9 @@ #ifndef IOS_CHROME_BROWSER_NTP_SET_UP_LIST_PREFS_H_ #define IOS_CHROME_BROWSER_NTP_SET_UP_LIST_PREFS_H_ +namespace base { +class Time; +} class PrefRegistrySimple; class PrefService; enum class SetUpListItemType; @@ -54,5 +57,12 @@ // Disables the SetUpList. void DisableSetUpList(PrefService* prefs); +// Stores the current time as the "last interaction" time for SetUpList. +void RecordInteraction(PrefService* prefs); + +// Returns the "last interaction" time for Set Up List. +base::Time GetLastInteraction(PrefService* prefs); + } // namespace set_up_list_prefs + #endif // IOS_CHROME_BROWSER_NTP_SET_UP_LIST_PREFS_H_
diff --git a/ios/chrome/browser/ntp/set_up_list_prefs.mm b/ios/chrome/browser/ntp/set_up_list_prefs.mm index 49b4df1c..1467096 100644 --- a/ios/chrome/browser/ntp/set_up_list_prefs.mm +++ b/ios/chrome/browser/ntp/set_up_list_prefs.mm
@@ -21,6 +21,7 @@ const char kAutofillItemState[] = "set_up_list.autofill_item.state"; const char kFollowItemState[] = "set_up_list.follow_item.state"; const char kDisabled[] = "set_up_list.disabled"; +const char kLastInteraction[] = "set_up_list.last_interaction"; void RegisterPrefs(PrefRegistrySimple* registry) { int unknown = static_cast<int>(SetUpListItemState::kUnknown); @@ -29,6 +30,7 @@ registry->RegisterIntegerPref(kAutofillItemState, unknown); registry->RegisterIntegerPref(kFollowItemState, unknown); registry->RegisterBooleanPref(kDisabled, false); + registry->RegisterTimePref(kLastInteraction, base::Time()); } const char* PrefNameForItem(SetUpListItemType type) { @@ -41,6 +43,8 @@ return kAutofillItemState; case SetUpListItemType::kFollow: return kFollowItemState; + case SetUpListItemType::kAllSet: + NOTREACHED_NORETURN(); } } @@ -79,4 +83,12 @@ prefs->SetBoolean(kDisabled, true); } +void RecordInteraction(PrefService* prefs) { + prefs->SetTime(kLastInteraction, base::Time::Now()); +} + +base::Time GetLastInteraction(PrefService* prefs) { + return prefs->GetTime(kLastInteraction); +} + } // namespace set_up_list_prefs
diff --git a/ios/chrome/browser/shared/coordinator/alert/alert_coordinator.mm b/ios/chrome/browser/shared/coordinator/alert/alert_coordinator.mm index 44a2ccb3..defb77b 100644 --- a/ios/chrome/browser/shared/coordinator/alert/alert_coordinator.mm +++ b/ios/chrome/browser/shared/coordinator/alert/alert_coordinator.mm
@@ -103,7 +103,7 @@ }]; alertAction.accessibilityIdentifier = - [NSString stringWithFormat:@"%@%@", title, @"AlertAction"]; + [title stringByAppendingString:@"AlertAction"]; alertAction.enabled = enabled; [self.alertController addAction:alertAction];
diff --git a/ios/chrome/browser/shared/model/prefs/browser_prefs.mm b/ios/chrome/browser/shared/model/prefs/browser_prefs.mm index 61fc69eb..be46b2f 100644 --- a/ios/chrome/browser/shared/model/prefs/browser_prefs.mm +++ b/ios/chrome/browser/shared/model/prefs/browser_prefs.mm
@@ -74,7 +74,7 @@ #import "ios/chrome/browser/ui/bookmarks/bookmark_path_cache.h" #import "ios/chrome/browser/ui/content_suggestions/content_suggestions_mediator.h" #import "ios/chrome/browser/ui/incognito_reauth/incognito_reauth_scene_agent.h" -#import "ios/chrome/browser/ui/ntp/new_tab_page_retention_field_trial.h" +#import "ios/chrome/browser/ui/ntp/new_tab_page_field_trial.h" #import "ios/chrome/browser/ui/ntp/synced_segments_field_trial.h" #import "ios/chrome/browser/voice/voice_search_prefs_registration.h" #import "ios/chrome/browser/web/font_size/font_size_tab_helper.h" @@ -146,7 +146,7 @@ set_up_list_prefs::RegisterPrefs(registry); update_client::RegisterPrefs(registry); variations::VariationsService::RegisterPrefs(registry); - new_tab_page_retention_field_trial::RegisterLocalStatePrefs(registry); + new_tab_page_field_trial::RegisterLocalStatePrefs(registry); synced_segments_field_trial::RegisterLocalStatePrefs(registry); component_updater::RegisterComponentUpdateServicePrefs(registry); component_updater::AutofillStatesComponentInstallerPolicy::RegisterPrefs(
diff --git a/ios/chrome/browser/shared/ui/symbols/symbol_names.h b/ios/chrome/browser/shared/ui/symbols/symbol_names.h index 39d692a..03e287e 100644 --- a/ios/chrome/browser/shared/ui/symbols/symbol_names.h +++ b/ios/chrome/browser/shared/ui/symbols/symbol_names.h
@@ -123,6 +123,7 @@ extern NSString* const kInfoCircleSymbol; extern NSString* const kHistorySymbol; extern NSString* const kCheckmarkSealSymbol; +extern NSString* const kCheckmarkSealFillSymbol; extern NSString* const kWifiSymbol; extern NSString* const kBookmarksSymbol; extern NSString* const kSyncErrorSymbol;
diff --git a/ios/chrome/browser/shared/ui/symbols/symbol_names.mm b/ios/chrome/browser/shared/ui/symbols/symbol_names.mm index 7977701..1fb9bea0 100644 --- a/ios/chrome/browser/shared/ui/symbols/symbol_names.mm +++ b/ios/chrome/browser/shared/ui/symbols/symbol_names.mm
@@ -115,6 +115,7 @@ NSString* const kInfoCircleSymbol = @"info.circle"; NSString* const kHistorySymbol = @"clock.arrow.circlepath"; NSString* const kCheckmarkSealSymbol = @"checkmark.seal"; +NSString* const kCheckmarkSealFillSymbol = @"checkmark.seal.fill"; NSString* const kWifiSymbol = @"wifi"; NSString* const kBookmarksSymbol = @"star"; NSString* const kSyncErrorSymbol =
diff --git a/ios/chrome/browser/ui/bookmarks/bookmark_utils_ios.h b/ios/chrome/browser/ui/bookmarks/bookmark_utils_ios.h index eb645ff..bd8c57e 100644 --- a/ios/chrome/browser/ui/bookmarks/bookmark_utils_ios.h +++ b/ios/chrome/browser/ui/bookmarks/bookmark_utils_ios.h
@@ -241,11 +241,17 @@ // Converts NSString entered by the user to a GURL. GURL ConvertUserDataToGURL(NSString* urlString); +// Uses `IsBookmarked` to check whether `url` is bookmarked in any of the +// provided bookmark models. `account_model` can be null. +bool IsBookmarked(const GURL& url, + bookmarks::BookmarkModel* local_model, + bookmarks::BookmarkModel* account_model); + // Uses `GetMostRecentlyAddedUserNodeForURL` to find the most recently added // bookmark node with the corresponding URL in both models. If both models // contain matching entries - compares them and returns the most recently added // entry. If only one model has a matching entry - returns that entry. If no -// models contain matching entries - returns null. +// models contain matching entries - returns null. `account_model` can be null. const bookmarks::BookmarkNode* GetMostRecentlyAddedUserNodeForURL( const GURL& url, bookmarks::BookmarkModel* local_model,
diff --git a/ios/chrome/browser/ui/bookmarks/bookmark_utils_ios.mm b/ios/chrome/browser/ui/bookmarks/bookmark_utils_ios.mm index 9b28cddf..0f25b923 100644 --- a/ios/chrome/browser/ui/bookmarks/bookmark_utils_ios.mm +++ b/ios/chrome/browser/ui/bookmarks/bookmark_utils_ios.mm
@@ -781,17 +781,26 @@ } } +bool IsBookmarked(const GURL& url, + bookmarks::BookmarkModel* local_model, + bookmarks::BookmarkModel* account_model) { + CHECK(local_model); + if (local_model->IsBookmarked(url)) { + return true; + } + return account_model && account_model->IsBookmarked(url); +} + const BookmarkNode* GetMostRecentlyAddedUserNodeForURL( const GURL& url, bookmarks::BookmarkModel* local_model, bookmarks::BookmarkModel* account_model) { + CHECK(local_model); const BookmarkNode* local_bookmark = local_model->GetMostRecentlyAddedUserNodeForURL(url); - if (!account_model) { - return local_bookmark; - } const BookmarkNode* account_bookmark = - account_model->GetMostRecentlyAddedUserNodeForURL(url); + account_model ? account_model->GetMostRecentlyAddedUserNodeForURL(url) + : nullptr; if (local_bookmark && account_bookmark) { // Found bookmarks in both models, return one that was added more recently. return local_bookmark->date_added() > account_bookmark->date_added()
diff --git a/ios/chrome/browser/ui/bookmarks/bookmark_utils_ios_unittest.mm b/ios/chrome/browser/ui/bookmarks/bookmark_utils_ios_unittest.mm index 8e25c86..d1289cee5 100644 --- a/ios/chrome/browser/ui/bookmarks/bookmark_utils_ios_unittest.mm +++ b/ios/chrome/browser/ui/bookmarks/bookmark_utils_ios_unittest.mm
@@ -457,6 +457,62 @@ &sync_setup_service)); } +TEST_P(BookmarkIOSUtilsUnitTest, IsBookmarkedNoMatches) { + AddBookmark(profile_bookmark_model_->mobile_node(), u"a", + GURL("http://example.com/a")); + if (IsAccountStorageEnabled()) { + AddBookmark(account_bookmark_model_->mobile_node(), u"b", + GURL("http://example.com/b")); + } + + EXPECT_FALSE(bookmark_utils_ios::IsBookmarked(GURL("http://example.com/c"), + profile_bookmark_model_, + account_bookmark_model_)); +} + +TEST_P(BookmarkIOSUtilsUnitTest, IsBookmarkedLocalMatch) { + AddBookmark(profile_bookmark_model_->mobile_node(), u"a", + GURL("http://example.com/a")); + if (IsAccountStorageEnabled()) { + AddBookmark(account_bookmark_model_->mobile_node(), u"b", + GURL("http://example.com/b")); + } + + EXPECT_TRUE(bookmark_utils_ios::IsBookmarked(GURL("http://example.com/a"), + profile_bookmark_model_, + account_bookmark_model_)); +} + +TEST_P(BookmarkIOSUtilsUnitTest, IsBookmarkedAccountMatch) { + if (!IsAccountStorageEnabled()) { + GTEST_SKIP() << "Need account storage to test matches in that storage"; + } + + AddBookmark(profile_bookmark_model_->mobile_node(), u"a", + GURL("http://example.com/a")); + AddBookmark(account_bookmark_model_->mobile_node(), u"b", + GURL("http://example.com/b")); + + EXPECT_TRUE(bookmark_utils_ios::IsBookmarked(GURL("http://example.com/b"), + profile_bookmark_model_, + account_bookmark_model_)); +} + +TEST_P(BookmarkIOSUtilsUnitTest, IsBookmarkedBothStoragesMatch) { + if (!IsAccountStorageEnabled()) { + GTEST_SKIP() << "Need account storage to test matches in both storages"; + } + + AddBookmark(profile_bookmark_model_->mobile_node(), u"a", + GURL("http://example.com/a")); + AddBookmark(account_bookmark_model_->mobile_node(), u"b", + GURL("http://example.com/a")); + + EXPECT_TRUE(bookmark_utils_ios::IsBookmarked(GURL("http://example.com/a"), + profile_bookmark_model_, + account_bookmark_model_)); +} + TEST_P(BookmarkIOSUtilsUnitTest, GetMostRecentlyAddedNoMatchingBookmarks) { AddBookmark(profile_bookmark_model_->mobile_node(), u"a", GURL("http://example.com/a"));
diff --git a/ios/chrome/browser/ui/content_suggestions/cells/BUILD.gn b/ios/chrome/browser/ui/content_suggestions/cells/BUILD.gn index d26ca9a9..1a824d8 100644 --- a/ios/chrome/browser/ui/content_suggestions/cells/BUILD.gn +++ b/ios/chrome/browser/ui/content_suggestions/cells/BUILD.gn
@@ -4,8 +4,6 @@ source_set("cells") { sources = [ - "action_list_module.h", - "action_list_module.mm", "content_suggestions_gesture_commands.h", "content_suggestions_most_visited_action_item.h", "content_suggestions_most_visited_action_item.mm", @@ -28,8 +26,8 @@ "content_suggestions_tile_view.mm", "magic_stack_module_container.h", "magic_stack_module_container.mm", - "multi_row_module.h", - "multi_row_module.mm", + "multi_row_container_view.h", + "multi_row_container_view.mm", "query_suggestion_view.h", "query_suggestion_view.mm", "suggested_content.h",
diff --git a/ios/chrome/browser/ui/content_suggestions/cells/action_list_module.h b/ios/chrome/browser/ui/content_suggestions/cells/action_list_module.h deleted file mode 100644 index 0da944b..0000000 --- a/ios/chrome/browser/ui/content_suggestions/cells/action_list_module.h +++ /dev/null
@@ -1,23 +0,0 @@ -// Copyright 2023 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef IOS_CHROME_BROWSER_UI_CONTENT_SUGGESTIONS_CELLS_ACTION_LIST_MODULE_H_ -#define IOS_CHROME_BROWSER_UI_CONTENT_SUGGESTIONS_CELLS_ACTION_LIST_MODULE_H_ - -#import "ios/chrome/browser/ui/content_suggestions/cells/magic_stack_module_container.h" - -// Module implementation intended to display four horizontally-laid out content -// elements, but can be used for any module that needs a title above some -// content. -@interface ActionListModule : MagicStackModuleContainer - -// Initializes and configures this view to contain `contentView` and configure -// for `type`. If `contentView` is a UIView, it will need to either define it's -// intrinsicContentSize or set its own vertical/horizontal constraints. -- (instancetype)initWithContentView:(UIView*)contentView - type:(ContentSuggestionsModuleType)type; - -@end - -#endif // IOS_CHROME_BROWSER_UI_CONTENT_SUGGESTIONS_CELLS_ACTION_LIST_MODULE_H_
diff --git a/ios/chrome/browser/ui/content_suggestions/cells/action_list_module.mm b/ios/chrome/browser/ui/content_suggestions/cells/action_list_module.mm deleted file mode 100644 index aad9b36..0000000 --- a/ios/chrome/browser/ui/content_suggestions/cells/action_list_module.mm +++ /dev/null
@@ -1,91 +0,0 @@ -// Copyright 2023 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#import "ios/chrome/browser/ui/content_suggestions/cells/action_list_module.h" - -#import "ios/chrome/common/ui/colors/semantic_color_names.h" -#import "ios/chrome/common/ui/util/constraints_ui_util.h" - -#if !defined(__has_feature) || !__has_feature(objc_arc) -#error "This file requires ARC support." -#endif - -namespace { - -// Vertical spacing between the content views. -const float kContentVerticalSpacing = 12.0f; - -// The horizontal inset for the content within this container. -const float kContentHorizontalInset = 16.0f; - -// The top inset for the content within this container. -const float kContentTopInset = 14.0f; - -// The bottom inset for the content within this container. -const float kContentBottomInset = 10.0f; - -} // namespace - -@implementation ActionListModule { - NSLayoutConstraint* _contentViewWidthAnchor; -} - -- (instancetype)initWithContentView:(UIView*)contentView - type:(ContentSuggestionsModuleType)type { - self = [super initWithType:type]; - if (self) { - UILabel* title = [[UILabel alloc] init]; - title.text = [MagicStackModuleContainer titleStringForModule:type]; - title.font = [UIFont preferredFontForTextStyle:UIFontTextStyleFootnote]; - title.textColor = [UIColor colorNamed:kTextPrimaryColor]; - title.accessibilityTraits |= UIAccessibilityTraitHeader; - title.accessibilityIdentifier = - [MagicStackModuleContainer titleStringForModule:type]; - - UIStackView* stackView = [[UIStackView alloc] init]; - stackView.translatesAutoresizingMaskIntoConstraints = NO; - stackView.alignment = UIStackViewAlignmentLeading; - stackView.axis = UILayoutConstraintAxisVertical; - stackView.spacing = kContentVerticalSpacing; - stackView.distribution = UIStackViewDistributionFill; - [stackView addArrangedSubview:title]; - [stackView addArrangedSubview:contentView]; - - self.accessibilityElements = @[ title, contentView ]; - - _contentViewWidthAnchor = [contentView.widthAnchor - constraintEqualToConstant:[self contentViewWidth]]; - [NSLayoutConstraint activateConstraints:@[ _contentViewWidthAnchor ]]; - - [self addSubview:stackView]; - NSDirectionalEdgeInsets contentInsets = NSDirectionalEdgeInsetsMake( - kContentTopInset, kContentHorizontalInset, kContentBottomInset, - kContentHorizontalInset); - AddSameConstraintsWithInsets(stackView, self, contentInsets); - } - return self; -} - -#pragma mark - UITraitEnvironment - -- (void)traitCollectionDidChange:(UITraitCollection*)previousTraitCollection { - [super traitCollectionDidChange:previousTraitCollection]; - if (previousTraitCollection.horizontalSizeClass != - self.traitCollection.horizontalSizeClass) { - _contentViewWidthAnchor.constant = [self contentViewWidth]; - } -} - -#pragma mark - Helpers - -// Returns the expected width of the contentView subview. -- (CGFloat)contentViewWidth { - // Give content the same width as the StackView, which is inset from this - // container view. - return [MagicStackModuleContainer - moduleWidthForHorizontalTraitCollection:self.traitCollection] - - (kContentHorizontalInset * 2); -} - -@end
diff --git a/ios/chrome/browser/ui/content_suggestions/cells/magic_stack_module_container.h b/ios/chrome/browser/ui/content_suggestions/cells/magic_stack_module_container.h index d5bf64c3..52940017 100644 --- a/ios/chrome/browser/ui/content_suggestions/cells/magic_stack_module_container.h +++ b/ios/chrome/browser/ui/content_suggestions/cells/magic_stack_module_container.h
@@ -12,8 +12,9 @@ // Container View for a module in the Magic Stack. @interface MagicStackModuleContainer : UIView -// Initialize and configure for `type`. -- (instancetype)initWithType:(ContentSuggestionsModuleType)type; +// Initialize and configure with `contentView` for `type`. +- (instancetype)initWithContentView:(UIView*)contentView + type:(ContentSuggestionsModuleType)type; - (instancetype)initWithFrame:(CGRect)frame NS_UNAVAILABLE; - (instancetype)initWithCoder:(NSCoder*)aDecoder NS_UNAVAILABLE;
diff --git a/ios/chrome/browser/ui/content_suggestions/cells/magic_stack_module_container.mm b/ios/chrome/browser/ui/content_suggestions/cells/magic_stack_module_container.mm index f20b145..f1e5e6d7 100644 --- a/ios/chrome/browser/ui/content_suggestions/cells/magic_stack_module_container.mm +++ b/ios/chrome/browser/ui/content_suggestions/cells/magic_stack_module_container.mm
@@ -8,6 +8,7 @@ #import "ios/chrome/browser/ui/content_suggestions/content_suggestions_constants.h" #import "ios/chrome/browser/ui/content_suggestions/content_suggestions_feature.h" #import "ios/chrome/common/ui/colors/semantic_color_names.h" +#import "ios/chrome/common/ui/util/constraints_ui_util.h" #import "ios/chrome/grit/ios_strings.h" #import "ui/base/l10n/l10n_util_mac.h" @@ -17,6 +18,18 @@ namespace { +// The horizontal inset for the content within this container. +const CGFloat kContentHorizontalInset = 16.0f; + +// The top inset for the content within this container. +const CGFloat kContentTopInset = 14.0f; + +// The bottom inset for the content within this container. +const CGFloat kContentBottomInset = 10.0f; + +// Vertical spacing between the content views. +const float kContentVerticalSpacing = 12.0f; + // The corner radius of this container. const float kCornerRadius = 24; @@ -33,14 +46,51 @@ @end -@implementation MagicStackModuleContainer +@implementation MagicStackModuleContainer { + NSLayoutConstraint* _contentViewWidthAnchor; +} - (instancetype)initWithType:(ContentSuggestionsModuleType)type { self = [super initWithFrame:CGRectZero]; if (self) { + } + return self; +} + +- (instancetype)initWithContentView:(UIView*)contentView + type:(ContentSuggestionsModuleType)type { + self = [super initWithFrame:CGRectZero]; + if (self) { _type = type; + self.layer.cornerRadius = kCornerRadius; self.backgroundColor = [UIColor colorNamed:kBackgroundColor]; + + UILabel* title = [[UILabel alloc] init]; + title.text = [MagicStackModuleContainer titleStringForModule:type]; + title.font = [UIFont preferredFontForTextStyle:UIFontTextStyleFootnote]; + title.textColor = [UIColor colorNamed:kTextPrimaryColor]; + title.accessibilityTraits |= UIAccessibilityTraitHeader; + title.accessibilityIdentifier = + [MagicStackModuleContainer titleStringForModule:type]; + + UIStackView* stackView = [[UIStackView alloc] init]; + stackView.translatesAutoresizingMaskIntoConstraints = NO; + stackView.alignment = UIStackViewAlignmentLeading; + stackView.axis = UILayoutConstraintAxisVertical; + stackView.spacing = kContentVerticalSpacing; + stackView.distribution = UIStackViewDistributionFill; + [stackView addArrangedSubview:title]; + [stackView addArrangedSubview:contentView]; + + self.accessibilityElements = @[ title, contentView ]; + + _contentViewWidthAnchor = [contentView.widthAnchor + constraintEqualToConstant:[self contentViewWidth]]; + [NSLayoutConstraint activateConstraints:@[ _contentViewWidthAnchor ]]; + + [self addSubview:stackView]; + AddSameConstraintsWithInsets(stackView, self, [self contentMargins]); } return self; } @@ -67,6 +117,7 @@ case ContentSuggestionsModuleType::kSetUpListDefaultBrowser: case ContentSuggestionsModuleType::kSetUpListAutofill: case ContentSuggestionsModuleType::kCompactedSetUpList: + case ContentSuggestionsModuleType::kSetUpListAllSet: return l10n_util::GetNSString(IDS_IOS_SET_UP_LIST_TITLE); default: NOTREACHED(); @@ -74,6 +125,16 @@ } } +- (NSDirectionalEdgeInsets)contentMargins { + NSDirectionalEdgeInsets contentMargins = + NSDirectionalEdgeInsetsMake(kContentTopInset, kContentHorizontalInset, + kContentBottomInset, kContentHorizontalInset); + if (_type == ContentSuggestionsModuleType::kCompactedSetUpList) { + contentMargins.trailing = 0; + } + return contentMargins; +} + - (CGSize)intrinsicContentSize { return CGSizeMake( [MagicStackModuleContainer @@ -81,4 +142,14 @@ self.bounds.size.height); } +#pragma mark - Helpers + +// Returns the expected width of the contentView subview. +- (CGFloat)contentViewWidth { + NSDirectionalEdgeInsets insets = [self contentMargins]; + return [MagicStackModuleContainer + moduleWidthForHorizontalTraitCollection:self.traitCollection] - + insets.leading - insets.trailing; +} + @end
diff --git a/ios/chrome/browser/ui/content_suggestions/cells/multi_row_container_view.h b/ios/chrome/browser/ui/content_suggestions/cells/multi_row_container_view.h new file mode 100644 index 0000000..4d136ca --- /dev/null +++ b/ios/chrome/browser/ui/content_suggestions/cells/multi_row_container_view.h
@@ -0,0 +1,19 @@ +// Copyright 2023 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef IOS_CHROME_BROWSER_UI_CONTENT_SUGGESTIONS_CELLS_MULTI_ROW_CONTAINER_VIEW_H_ +#define IOS_CHROME_BROWSER_UI_CONTENT_SUGGESTIONS_CELLS_MULTI_ROW_CONTAINER_VIEW_H_ + +#import <UIKit/UIKit.h> + +// Container view intended to display multiple rows of elements. +@interface MultiRowContainerView : UIView + +// Initializes and configures this view to contain each element in `views` in a +// row. +- (instancetype)initWithViews:(NSArray<UIView*>*)views; + +@end + +#endif // IOS_CHROME_BROWSER_UI_CONTENT_SUGGESTIONS_CELLS_MULTI_ROW_CONTAINER_VIEW_H_
diff --git a/ios/chrome/browser/ui/content_suggestions/cells/multi_row_container_view.mm b/ios/chrome/browser/ui/content_suggestions/cells/multi_row_container_view.mm new file mode 100644 index 0000000..8af20fe1 --- /dev/null +++ b/ios/chrome/browser/ui/content_suggestions/cells/multi_row_container_view.mm
@@ -0,0 +1,57 @@ +// Copyright 2023 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#import "ios/chrome/browser/ui/content_suggestions/cells/multi_row_container_view.h" + +#import "ios/chrome/common/ui/colors/semantic_color_names.h" +#import "ios/chrome/common/ui/util/constraints_ui_util.h" +#import "ios/chrome/common/ui/util/ui_util.h" + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +namespace { + +const CGFloat kSeparatorHeight = 0.5; + +} // namespace + +@implementation MultiRowContainerView + +- (instancetype)initWithViews:(NSArray<UIView*>*)views { + self = [super initWithFrame:CGRectZero]; + if (self) { + UIStackView* rowsStackView = [[UIStackView alloc] init]; + rowsStackView.spacing = AlignValueToPixel(8.5); + rowsStackView.axis = UILayoutConstraintAxisVertical; + rowsStackView.translatesAutoresizingMaskIntoConstraints = NO; + rowsStackView.alignment = UIStackViewAlignmentLeading; + // Ensures that rows have similar height. + rowsStackView.distribution = UIStackViewDistributionFillProportionally; + NSUInteger index = 0; + for (UIView* view in views) { + [rowsStackView addArrangedSubview:view]; + if (index < [views count] - 1) { + UIView* separator = [[UIView alloc] init]; + separator.backgroundColor = [UIColor colorNamed:kSeparatorColor]; + [rowsStackView addArrangedSubview:separator]; + [NSLayoutConstraint activateConstraints:@[ + [separator.heightAnchor + constraintEqualToConstant:AlignValueToPixel(kSeparatorHeight)], + [separator.leadingAnchor + constraintEqualToAnchor:rowsStackView.leadingAnchor], + [separator.trailingAnchor + constraintEqualToAnchor:rowsStackView.trailingAnchor], + ]]; + } + index++; + } + [self addSubview:rowsStackView]; + AddSameConstraints(rowsStackView, self); + } + return self; +} + +@end
diff --git a/ios/chrome/browser/ui/content_suggestions/cells/multi_row_module.h b/ios/chrome/browser/ui/content_suggestions/cells/multi_row_module.h deleted file mode 100644 index 38c3681..0000000 --- a/ios/chrome/browser/ui/content_suggestions/cells/multi_row_module.h +++ /dev/null
@@ -1,22 +0,0 @@ -// Copyright 2023 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef IOS_CHROME_BROWSER_UI_CONTENT_SUGGESTIONS_CELLS_MULTI_ROW_MODULE_H_ -#define IOS_CHROME_BROWSER_UI_CONTENT_SUGGESTIONS_CELLS_MULTI_ROW_MODULE_H_ - -#import "ios/chrome/browser/ui/content_suggestions/cells/magic_stack_module_container.h" - -// Module implementation intended to display multiple rows of content elements. -@interface MultiRowModule : MagicStackModuleContainer - -// Initializes and configures this view to contain each element in `views` in a -// row and configure the module for `type`. Note that there is a height limit -// defined in MagicStackModuleContainer. It is the job of the implementor to -// ensure `views` are laid out with that in mind. -- (instancetype)initWithViews:(NSArray<UIView*>*)views - type:(ContentSuggestionsModuleType)type; - -@end - -#endif // IOS_CHROME_BROWSER_UI_CONTENT_SUGGESTIONS_CELLS_MULTI_ROW_MODULE_H_
diff --git a/ios/chrome/browser/ui/content_suggestions/cells/multi_row_module.mm b/ios/chrome/browser/ui/content_suggestions/cells/multi_row_module.mm deleted file mode 100644 index b15d2ee1..0000000 --- a/ios/chrome/browser/ui/content_suggestions/cells/multi_row_module.mm +++ /dev/null
@@ -1,114 +0,0 @@ -// Copyright 2023 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#import "ios/chrome/browser/ui/content_suggestions/cells/multi_row_module.h" - -#import "ios/chrome/common/ui/colors/semantic_color_names.h" -#import "ios/chrome/common/ui/util/constraints_ui_util.h" -#import "ios/chrome/common/ui/util/ui_util.h" - -#if !defined(__has_feature) || !__has_feature(objc_arc) -#error "This file requires ARC support." -#endif - -namespace { - -// Vertical spacing between the title and the content. -const CGFloat kContentVerticalSpacing = 12.0f; - -// The horizontal inset for the content within this container. -const CGFloat kContentHorizontalInset = 16.0f; - -// The top inset for the content within this container. -const CGFloat kContentTopInset = 14.0f; - -// The bottom inset for the content within this container. -const CGFloat kContentBottomInset = 10.0f; - -const CGFloat kSeparatorHeight = 0.5; - -} // namespace - -@implementation MultiRowModule { - NSLayoutConstraint* _contentViewWidthAnchor; -} - -- (instancetype)initWithViews:(NSArray<UIView*>*)views - type:(ContentSuggestionsModuleType)type { - self = [super initWithType:type]; - if (self) { - UILabel* title = [[UILabel alloc] init]; - title.text = [MagicStackModuleContainer titleStringForModule:type]; - title.font = [UIFont preferredFontForTextStyle:UIFontTextStyleFootnote]; - title.textColor = [UIColor colorNamed:kTextPrimaryColor]; - title.accessibilityTraits |= UIAccessibilityTraitHeader; - title.accessibilityIdentifier = - [MagicStackModuleContainer titleStringForModule:type]; - - UIStackView* rowsStackView = [[UIStackView alloc] init]; - rowsStackView.spacing = AlignValueToPixel(8.5); - rowsStackView.axis = UILayoutConstraintAxisVertical; - rowsStackView.translatesAutoresizingMaskIntoConstraints = NO; - rowsStackView.alignment = UIStackViewAlignmentLeading; - rowsStackView.distribution = UIStackViewDistributionFill; - NSUInteger index = 0; - for (UIView* view in views) { - [rowsStackView addArrangedSubview:view]; - if (index < [views count] - 1) { - UIView* separator = [[UIView alloc] init]; - separator.backgroundColor = [UIColor colorNamed:kSeparatorColor]; - [rowsStackView addArrangedSubview:separator]; - [NSLayoutConstraint activateConstraints:@[ - [separator.heightAnchor - constraintEqualToConstant:AlignValueToPixel(kSeparatorHeight)], - [separator.widthAnchor - constraintEqualToConstant:[self contentViewWidth]], - ]]; - } - index++; - } - - _contentViewWidthAnchor = [rowsStackView.widthAnchor - constraintEqualToConstant:[self contentViewWidth]]; - [NSLayoutConstraint activateConstraints:@[ _contentViewWidthAnchor ]]; - - UIStackView* containerStackView = [[UIStackView alloc] init]; - containerStackView.spacing = kContentVerticalSpacing; - containerStackView.axis = UILayoutConstraintAxisVertical; - containerStackView.translatesAutoresizingMaskIntoConstraints = NO; - containerStackView.alignment = UIStackViewAlignmentLeading; - containerStackView.distribution = UIStackViewDistributionFill; - [containerStackView addArrangedSubview:title]; - [containerStackView addArrangedSubview:rowsStackView]; - - [self addSubview:containerStackView]; - NSDirectionalEdgeInsets contentInsets = NSDirectionalEdgeInsetsMake( - kContentTopInset, kContentHorizontalInset, kContentBottomInset, 0); - AddSameConstraintsWithInsets(containerStackView, self, contentInsets); - } - return self; -} - -#pragma mark - UITraitEnvironment - -- (void)traitCollectionDidChange:(UITraitCollection*)previousTraitCollection { - [super traitCollectionDidChange:previousTraitCollection]; - if (previousTraitCollection.horizontalSizeClass != - self.traitCollection.horizontalSizeClass) { - _contentViewWidthAnchor.constant = [self contentViewWidth]; - } -} - -#pragma mark - Helpers - -// Returns the expected width of the contentView subview. -- (CGFloat)contentViewWidth { - // Give content the same width as the StackView, which is inset from this - // container view. - return [MagicStackModuleContainer - moduleWidthForHorizontalTraitCollection:self.traitCollection] - - kContentHorizontalInset; -} - -@end
diff --git a/ios/chrome/browser/ui/content_suggestions/content_suggestions_constants.h b/ios/chrome/browser/ui/content_suggestions/content_suggestions_constants.h index ea60bb9..38697b8 100644 --- a/ios/chrome/browser/ui/content_suggestions/content_suggestions_constants.h +++ b/ios/chrome/browser/ui/content_suggestions/content_suggestions_constants.h
@@ -18,6 +18,7 @@ kSetUpListDefaultBrowser, kSetUpListAutofill, kCompactedSetUpList, + kSetUpListAllSet, }; // Represents the content suggestions collection view.
diff --git a/ios/chrome/browser/ui/content_suggestions/content_suggestions_consumer.h b/ios/chrome/browser/ui/content_suggestions/content_suggestions_consumer.h index 5b55a4e..43b2e824 100644 --- a/ios/chrome/browser/ui/content_suggestions/content_suggestions_consumer.h +++ b/ios/chrome/browser/ui/content_suggestions/content_suggestions_consumer.h
@@ -7,6 +7,7 @@ #import "base/ios/block_types.h" +enum class ContentSuggestionsModuleType; @class ContentSuggestionsMostVisitedActionItem; @class ContentSuggestionsMostVisitedItem; @class ContentSuggestionsReturnToRecentTabItem; @@ -53,8 +54,13 @@ // `order`. - (void)setMagicStackOrder:(NSArray<NSNumber*>*)order; -// Indicates to the consumer to display the SetUpList - a list of tasks that -// a new user may want to complete. +// Indicates to the consumer to scroll to the next module because `moduleType` +// is completed. +- (void)scrollToNextMagicStackModuleForCompletedModule: + (ContentSuggestionsModuleType)moduleType; + +// Indicates to the consumer to display the SetUpList - a list of +// tasks that a new user may want to complete. - (void)showSetUpListWithItems:(NSArray<SetUpListItemViewData*>*)items; // Marks a Set Up List item complete with an animation and updated appearance.
diff --git a/ios/chrome/browser/ui/content_suggestions/content_suggestions_coordinator.mm b/ios/chrome/browser/ui/content_suggestions/content_suggestions_coordinator.mm index 892174f..64256045 100644 --- a/ios/chrome/browser/ui/content_suggestions/content_suggestions_coordinator.mm +++ b/ios/chrome/browser/ui/content_suggestions/content_suggestions_coordinator.mm
@@ -367,6 +367,9 @@ - (void)didSelectSetUpListItem:(SetUpListItemType)type { [self.contentSuggestionsMetricsRecorder recordSetUpListItemSelected:type]; + PrefService* localState = GetApplicationContext()->GetLocalState(); + set_up_list_prefs::RecordInteraction(localState); + switch (type) { case SetUpListItemType::kSignInSync: [self showSignIn]; @@ -378,6 +381,7 @@ [self showCredentialProviderPromo]; break; case SetUpListItemType::kFollow: + case SetUpListItemType::kAllSet: // TODO(crbug.com/1428070): Add a Follow item to the Set Up List. NOTREACHED(); }
diff --git a/ios/chrome/browser/ui/content_suggestions/content_suggestions_feature.h b/ios/chrome/browser/ui/content_suggestions/content_suggestions_feature.h index ca43d0b..88b5f69 100644 --- a/ios/chrome/browser/ui/content_suggestions/content_suggestions_feature.h +++ b/ios/chrome/browser/ui/content_suggestions/content_suggestions_feature.h
@@ -19,6 +19,9 @@ // Feature for the Magic Stack. BASE_DECLARE_FEATURE(kMagicStack); +// Feature that hides the Content Suggestions tiles. +BASE_DECLARE_FEATURE(kHideContentSuggestionsTiles); + // A parameter to indicate whether the Most Visited Tiles should be in the Magic // Stack. extern const char kMagicStackMostVisitedModuleParam[]; @@ -32,6 +35,10 @@ // TODO(crbug.com/1385512): Remove this. extern const char kDiscoverFeedIsNativeUIEnabled[]; +// Parameters to choose which Content Suggestions tiles to hide. +extern const char kHideContentSuggestionsTilesParamMostVisited[]; +extern const char kHideContentSuggestionsTilesParamShortcuts[]; + // Whether the Discover feed is enabled instead of the Zine feed. // TODO(crbug.com/1385512): Remove this. bool IsDiscoverFeedEnabled(); @@ -45,4 +52,10 @@ // How much the NTP top margin should be reduced by for the Magic Stack design. double ReducedNTPTopMarginSpaceForMagicStack(); +// Whether the Most Visited Tiles should be hidden. +bool ShouldHideMVT(); + +// Whether the Shortcuts Tiles should be hidden. +bool ShoudHideShortcuts(); + #endif // IOS_CHROME_BROWSER_UI_CONTENT_SUGGESTIONS_CONTENT_SUGGESTIONS_FEATURE_H_
diff --git a/ios/chrome/browser/ui/content_suggestions/content_suggestions_feature.mm b/ios/chrome/browser/ui/content_suggestions/content_suggestions_feature.mm index a306d5b..e61ba0cb 100644 --- a/ios/chrome/browser/ui/content_suggestions/content_suggestions_feature.mm +++ b/ios/chrome/browser/ui/content_suggestions/content_suggestions_feature.mm
@@ -24,6 +24,10 @@ // Feature disabled by default. BASE_FEATURE(kMagicStack, "MagicStack", base::FEATURE_DISABLED_BY_DEFAULT); +BASE_FEATURE(kHideContentSuggestionsTiles, + "HideContentSuggestionsTiles", + base::FEATURE_DISABLED_BY_DEFAULT); + const char kMagicStackMostVisitedModuleParam[] = "MagicStackMostVisitedModule"; const char kReducedSpaceParam[] = "ReducedNTPTopSpace"; @@ -32,6 +36,9 @@ // feed. const char kDiscoverFeedIsNativeUIEnabled[] = "DiscoverFeedIsNativeUIEnabled"; +const char kHideContentSuggestionsTilesParamMostVisited[] = "HideMostVisited"; +const char kHideContentSuggestionsTilesParamShortcuts[] = "HideShortcuts"; + bool IsDiscoverFeedEnabled() { return base::FeatureList::IsEnabled(kDiscoverFeedInNtp); } @@ -49,3 +56,15 @@ return base::GetFieldTrialParamByFeatureAsDouble(kMagicStack, kReducedSpaceParam, 0); } + +bool ShouldHideMVT() { + return base::GetFieldTrialParamByFeatureAsBool( + kHideContentSuggestionsTiles, + kHideContentSuggestionsTilesParamMostVisited, false); +} + +bool ShoudHideShortcuts() { + return base::GetFieldTrialParamByFeatureAsBool( + kHideContentSuggestionsTiles, kHideContentSuggestionsTilesParamShortcuts, + false); +}
diff --git a/ios/chrome/browser/ui/content_suggestions/content_suggestions_mediator.mm b/ios/chrome/browser/ui/content_suggestions/content_suggestions_mediator.mm index 40d2f78..b1c973a 100644 --- a/ios/chrome/browser/ui/content_suggestions/content_suggestions_mediator.mm +++ b/ios/chrome/browser/ui/content_suggestions/content_suggestions_mediator.mm
@@ -298,7 +298,7 @@ [self.consumer showReturnToRecentTabTileWithConfig:self.returnToRecentTabItem]; } - if ([self.mostVisitedItems count] && ![self shouldHideMVTForTileAblation]) { + if ([self.mostVisitedItems count] && ![self shouldHideMVTTiles]) { [self.consumer setMostVisitedTilesWithConfigs:self.mostVisitedItems]; } if ([self shouldShowSetUpList]) { @@ -315,7 +315,7 @@ // 1) Magic Stack is enabled (always show shortcuts in Magic Stack). // 2) The Set Up List and Magic Stack are not enabled (Set Up List replaced // Shortcuts). - if (![self shouldHideShortcutsForTileAblation] && + if (![self shouldHideShortcuts] && (IsMagicStackEnabled() || ![self shouldShowSetUpList])) { [self.consumer setShortcutTilesWithConfigs:self.actionButtonItems]; } @@ -425,8 +425,13 @@ ProceduralBlock completion = ^{ if ([weakSelf.setUpList allItemsComplete]) { [weakSelf.consumer showSetUpListDoneWithAnimations:^{ - [self.feedDelegate contentSuggestionsWasUpdated]; + if (!IsMagicStackEnabled()) { + [self.feedDelegate contentSuggestionsWasUpdated]; + } }]; + } else if (IsMagicStackEnabled()) { + [self.consumer scrollToNextMagicStackModuleForCompletedModule: + SetUpListModuleTypeForSetUpListType(item.type)]; } }; [self.consumer markSetUpListItemComplete:item.type completion:completion]; @@ -568,7 +573,7 @@ - (void)onMostVisitedURLsAvailable: (const ntp_tiles::NTPTilesVector&)mostVisited { - if ([self shouldHideMVTForTileAblation]) { + if ([self shouldHideMVTTiles]) { return; } @@ -641,7 +646,7 @@ // Replaces the Most Visited items currently displayed by the most recent ones. - (void)useFreshMostVisited { - if ([self shouldHideMVTForTileAblation]) { + if ([self shouldHideMVTTiles]) { return; } self.mostVisitedItems = self.freshMostVisitedItems; @@ -772,30 +777,34 @@ return NO; } -// Returns whether the shortcut tiles should be hidden for the tile ablation -// experiment. -- (BOOL)shouldHideShortcutsForTileAblation { +// Returns whether the shortcut tiles should be hidden. +- (BOOL)shouldHideShortcuts { + if (ShoudHideShortcuts()) { + return YES; + } if ([self isTileAblationComplete]) { return NO; } - ntp_tiles::NewTabPageRetentionExperimentBehavior behavior = - ntp_tiles::GetNewTabPageRetentionExperimentType(); - return behavior == - ntp_tiles::NewTabPageRetentionExperimentBehavior::kTileAblationHideAll; + ntp_tiles::NewTabPageFieldTrialExperimentBehavior behavior = + ntp_tiles::GetNewTabPageFieldTrialExperimentType(); + return behavior == ntp_tiles::NewTabPageFieldTrialExperimentBehavior:: + kTileAblationHideAll; } -// Returns whether the MVT tiles should be hidden for the tile ablation -// experiment. -- (BOOL)shouldHideMVTForTileAblation { +// Returns whether the MVT tiles should be hidden. +- (BOOL)shouldHideMVTTiles { + if (ShouldHideMVT()) { + return YES; + } if ([self isTileAblationComplete]) { return NO; } - ntp_tiles::NewTabPageRetentionExperimentBehavior behavior = - ntp_tiles::GetNewTabPageRetentionExperimentType(); + ntp_tiles::NewTabPageFieldTrialExperimentBehavior behavior = + ntp_tiles::GetNewTabPageFieldTrialExperimentType(); - return behavior == ntp_tiles::NewTabPageRetentionExperimentBehavior:: + return behavior == ntp_tiles::NewTabPageFieldTrialExperimentBehavior:: kTileAblationHideAll || - behavior == ntp_tiles::NewTabPageRetentionExperimentBehavior:: + behavior == ntp_tiles::NewTabPageFieldTrialExperimentBehavior:: kTileAblationHideMVTOnly; }
diff --git a/ios/chrome/browser/ui/content_suggestions/content_suggestions_view_controller.mm b/ios/chrome/browser/ui/content_suggestions/content_suggestions_view_controller.mm index dde5e5df..c9c599d 100644 --- a/ios/chrome/browser/ui/content_suggestions/content_suggestions_view_controller.mm +++ b/ios/chrome/browser/ui/content_suggestions/content_suggestions_view_controller.mm
@@ -13,7 +13,6 @@ #import "ios/chrome/browser/ntp/set_up_list_item_type.h" #import "ios/chrome/browser/shared/public/features/features.h" #import "ios/chrome/browser/shared/ui/util/uikit_ui_util.h" -#import "ios/chrome/browser/ui/content_suggestions/cells/action_list_module.h" #import "ios/chrome/browser/ui/content_suggestions/cells/content_suggestions_cells_constants.h" #import "ios/chrome/browser/ui/content_suggestions/cells/content_suggestions_most_visited_action_item.h" #import "ios/chrome/browser/ui/content_suggestions/cells/content_suggestions_most_visited_item.h" @@ -24,7 +23,7 @@ #import "ios/chrome/browser/ui/content_suggestions/cells/content_suggestions_shortcut_tile_view.h" #import "ios/chrome/browser/ui/content_suggestions/cells/content_suggestions_tile_layout_util.h" #import "ios/chrome/browser/ui/content_suggestions/cells/magic_stack_module_container.h" -#import "ios/chrome/browser/ui/content_suggestions/cells/multi_row_module.h" +#import "ios/chrome/browser/ui/content_suggestions/cells/multi_row_container_view.h" #import "ios/chrome/browser/ui/content_suggestions/cells/query_suggestion_view.h" #import "ios/chrome/browser/ui/content_suggestions/content_suggestions_collection_utils.h" #import "ios/chrome/browser/ui/content_suggestions/content_suggestions_commands.h" @@ -102,7 +101,8 @@ // StackView holding all of `mostVisitedViews`. @property(nonatomic, strong) UIStackView* mostVisitedStackView; // Module Container for the `mostVisitedViews` when being shown in Magic Stack. -@property(nonatomic, strong) ActionListModule* mostVisitedModuleContainer; +@property(nonatomic, strong) + MagicStackModuleContainer* mostVisitedModuleContainer; // Width Anchor of the Most Visited Tiles container. @property(nonatomic, strong) NSLayoutConstraint* mostVisitedContainerWidthAnchor; @@ -110,7 +110,8 @@ @property(nonatomic, strong) NSMutableArray<ContentSuggestionsMostVisitedTileView*>* mostVisitedViews; // Module Container for the Shortcuts when being shown in Magic Stack. -@property(nonatomic, strong) ActionListModule* shortcutsModuleContainer; +@property(nonatomic, strong) + MagicStackModuleContainer* shortcutsModuleContainer; // StackView holding all of `shortcutsViews`. @property(nonatomic, strong) UIStackView* shortcutsStackView; // List of all of the Shortcut views. @@ -410,6 +411,23 @@ _magicStackModuleOrder = order; } +- (void)scrollToNextMagicStackModuleForCompletedModule: + (ContentSuggestionsModuleType)moduleType { + ContentSuggestionsModuleType currentModule = [self currentlyShownModule]; + // Do not scroll if the completed module is not the currently shown module. + if (currentModule != moduleType) { + return; + } + CGFloat nextPageContentOffsetX = [self + getNextPageOffsetForOffset:_magicStackScrollView.contentOffset.x + velocity:kMagicStackMinimumPaginationScrollVelocity + + 1]; + [_magicStackScrollView + setContentOffset:CGPointMake(nextPageContentOffsetX, + _magicStackScrollView.contentOffset.y) + animated:YES]; +} + - (void)showSetUpListWithItems:(NSArray<SetUpListItemViewData*>*)items { if (!self.viewLoaded) { _savedSetUpListItems = items; @@ -440,36 +458,41 @@ SetUpListModuleTypeForSetUpListType(data.type); if (shouldShowCompactedSetUpListModule) { [_compactedSetUpListViews addObject:view]; - } else { - switch (type) { - case ContentSuggestionsModuleType::kSetUpListSync: - _setUpListSyncItemView = view; - break; - case ContentSuggestionsModuleType::kSetUpListDefaultBrowser: - _setUpListDefaultBrowserItemView = view; - break; - case ContentSuggestionsModuleType::kSetUpListAutofill: - _setUpListAutofillItemView = view; - break; - default: - break; - } + } + switch (type) { + case ContentSuggestionsModuleType::kSetUpListSync: + _setUpListSyncItemView = view; + break; + case ContentSuggestionsModuleType::kSetUpListDefaultBrowser: + _setUpListDefaultBrowserItemView = view; + break; + case ContentSuggestionsModuleType::kSetUpListAutofill: + _setUpListAutofillItemView = view; + break; + default: + break; } // Only add it to the Magic Stack here if it is after the inital // construction of the Magic Stack. if (_magicStack) { if (shouldShowCompactedSetUpListModule) { - MultiRowModule* setUpListCompactedModule = [[MultiRowModule alloc] - initWithViews:_compactedSetUpListViews - type:ContentSuggestionsModuleType::kCompactedSetUpList]; + MultiRowContainerView* multiRowContainer = + [[MultiRowContainerView alloc] + initWithViews:_compactedSetUpListViews]; + MagicStackModuleContainer* setUpListCompactedModule = + [[MagicStackModuleContainer alloc] + initWithContentView:multiRowContainer + type:ContentSuggestionsModuleType:: + kCompactedSetUpList]; [_magicStack insertArrangedSubview:setUpListCompactedModule atIndex:[self indexForMagicStackModule: ContentSuggestionsModuleType:: kCompactedSetUpList]]; } else { - ActionListModule* setUpListModule = - [[ActionListModule alloc] initWithContentView:view type:type]; + MagicStackModuleContainer* setUpListModule = + [[MagicStackModuleContainer alloc] initWithContentView:view + type:type]; [_magicStack insertArrangedSubview:setUpListModule atIndex:[self indexForMagicStackModule:type]]; @@ -552,7 +575,18 @@ - (void)showSetUpListDoneWithAnimations:(ProceduralBlock)animations { if (IsMagicStackEnabled()) { - // The MagicStack does not show the "All Set" view. + SetUpListItemViewData* allSetData = + [[SetUpListItemViewData alloc] initWithType:SetUpListItemType::kAllSet + complete:NO]; + SetUpListItemView* view = + [[SetUpListItemView alloc] initWithData:allSetData]; + MagicStackModuleContainer* allSetModule = [[MagicStackModuleContainer alloc] + initWithContentView:view + type:ContentSuggestionsModuleType::kSetUpListAllSet]; + // Determine which module to swap out. + [self replaceModuleAtIndex: + [self indexForMagicStackModule:[self currentlyShownModule]] + withModule:allSetModule]; return; } __weak __typeof(self) weakSelf = self; @@ -684,16 +718,8 @@ // This reads out the new page whenever the user scrolls in VoiceOver. - (NSString*)accessibilityScrollStatusForScrollView:(UIScrollView*)scrollView { - CGFloat moduleWidth = [MagicStackModuleContainer - moduleWidthForHorizontalTraitCollection:self.traitCollection]; - NSUInteger moduleCount = [_magicStackModuleOrder count]; - - NSUInteger closestPage = roundf(scrollView.contentOffset.x / moduleWidth); - closestPage = fminf(closestPage, moduleCount); - - ContentSuggestionsModuleType type = (ContentSuggestionsModuleType) - [_magicStackModuleOrder[closestPage] intValue]; - return [MagicStackModuleContainer titleStringForModule:type]; + return [MagicStackModuleContainer + titleStringForModule:[self currentlyShownModule]]; } #pragma mark - Private @@ -720,7 +746,7 @@ insertionIndex++; } if (IsMagicStackEnabled()) { - self.mostVisitedModuleContainer = [[ActionListModule alloc] + self.mostVisitedModuleContainer = [[MagicStackModuleContainer alloc] initWithContentView:self.mostVisitedStackView type:ContentSuggestionsModuleType::kMostVisited]; if (ShouldPutMostVisitedSitesInMagicStack()) { @@ -812,7 +838,8 @@ _magicStack.axis = UILayoutConstraintAxisHorizontal; _magicStack.distribution = UIStackViewDistributionEqualSpacing; _magicStack.spacing = kMagicStackSpacing; - _magicStack.alignment = UIStackViewAlignmentCenter; + // Ensures modules take up entire height of the Magic Stack. + _magicStack.alignment = UIStackViewAlignmentFill; [_magicStackScrollView addSubview:_magicStack]; // Add Magic Stack modules in order dictated by `_magicStackModuleOrder`. @@ -821,7 +848,7 @@ (ContentSuggestionsModuleType)[moduleType intValue]; switch (type) { case ContentSuggestionsModuleType::kShortcuts: { - self.shortcutsModuleContainer = [[ActionListModule alloc] + self.shortcutsModuleContainer = [[MagicStackModuleContainer alloc] initWithContentView:self.shortcutsStackView type:type]; [_magicStack addArrangedSubview:self.shortcutsModuleContainer]; @@ -834,31 +861,38 @@ break; } case ContentSuggestionsModuleType::kSetUpListSync: { - ActionListModule* setUpListSyncModule = - [[ActionListModule alloc] initWithContentView:_setUpListSyncItemView - type:type]; + MagicStackModuleContainer* setUpListSyncModule = + [[MagicStackModuleContainer alloc] + initWithContentView:_setUpListSyncItemView + type:type]; [_magicStack addArrangedSubview:setUpListSyncModule]; break; } case ContentSuggestionsModuleType::kSetUpListDefaultBrowser: { - ActionListModule* setUpListDefaultBrowserModule = - [[ActionListModule alloc] + MagicStackModuleContainer* setUpListDefaultBrowserModule = + [[MagicStackModuleContainer alloc] initWithContentView:_setUpListDefaultBrowserItemView type:type]; [_magicStack addArrangedSubview:setUpListDefaultBrowserModule]; break; } case ContentSuggestionsModuleType::kSetUpListAutofill: { - ActionListModule* setUpListAutofillModule = [[ActionListModule alloc] - initWithContentView:_setUpListAutofillItemView - type:type]; + MagicStackModuleContainer* setUpListAutofillModule = + [[MagicStackModuleContainer alloc] + initWithContentView:_setUpListAutofillItemView + type:type]; [_magicStack addArrangedSubview:setUpListAutofillModule]; break; } case ContentSuggestionsModuleType::kCompactedSetUpList: { - MultiRowModule* setUpListCompactedModule = [[MultiRowModule alloc] - initWithViews:_compactedSetUpListViews - type:ContentSuggestionsModuleType::kCompactedSetUpList]; + MultiRowContainerView* multiRowContainer = + [[MultiRowContainerView alloc] + initWithViews:_compactedSetUpListViews]; + MagicStackModuleContainer* setUpListCompactedModule = + [[MagicStackModuleContainer alloc] + initWithContentView:multiRowContainer + type:ContentSuggestionsModuleType:: + kCompactedSetUpList]; [_magicStack addArrangedSubview:setUpListCompactedModule]; break; } @@ -897,6 +931,50 @@ NOTREACHED_NORETURN(); } +// Returns the `ContentSuggestionsModuleType` type of the module being currently +// shown in the Magic Stack. +- (ContentSuggestionsModuleType)currentlyShownModule { + CGFloat offset = _magicStackScrollView.contentOffset.x; + CGFloat moduleWidth = [MagicStackModuleContainer + moduleWidthForHorizontalTraitCollection:self.traitCollection]; + NSUInteger moduleCount = [_magicStackModuleOrder count]; + // Find closest page to the current scroll offset. + CGFloat closestPage = roundf(offset / moduleWidth); + closestPage = fminf(closestPage, moduleCount); + return (ContentSuggestionsModuleType)[_magicStackModuleOrder[( + NSUInteger)closestPage] intValue]; +} + +// Replaces the module at `index` with `newModule` in the Magic Stack. +- (void)replaceModuleAtIndex:(NSUInteger)index + withModule:(MagicStackModuleContainer*)newModule { + newModule.alpha = 0; + UIView* moduleToHide = [_magicStack arrangedSubviews][index]; + __weak __typeof(self) weakSelf = self; + [UIView animateWithDuration:1.0 + delay:0.0 + options:UIViewAnimationOptionTransitionCurlDown + animations:^{ + __typeof(self) strongSelf = weakSelf; + if (!strongSelf) { + return; + } + [strongSelf->_magicStack removeArrangedSubview:moduleToHide]; + [strongSelf->_magicStack insertArrangedSubview:newModule atIndex:index]; + moduleToHide.alpha = 0; + newModule.alpha = 1; + } + completion:^(BOOL finished) { + __typeof(self) strongSelf = weakSelf; + if (!strongSelf) { + return; + } + [moduleToHide removeFromSuperview]; + [strongSelf->_magicStack setNeedsLayout]; + [strongSelf->_magicStack layoutIfNeeded]; + }]; +} + // Determines the final page offset given the scroll `offset` and the `velocity` // scroll. If the drag is slow enough, then the closest page is the final state. // If the drag is in the negative direction, then go to the page previous to the
diff --git a/ios/chrome/browser/ui/content_suggestions/set_up_list/set_up_list_item_icon.mm b/ios/chrome/browser/ui/content_suggestions/set_up_list/set_up_list_item_icon.mm index 5ed2735d..5f18fa9 100644 --- a/ios/chrome/browser/ui/content_suggestions/set_up_list/set_up_list_item_icon.mm +++ b/ios/chrome/browser/ui/content_suggestions/set_up_list/set_up_list_item_icon.mm
@@ -199,6 +199,9 @@ case SetUpListItemType::kAutofill: return IconInCircle(kEllipsisRectangleSymbol, _compactLayout, kBlue600Color); + case SetUpListItemType::kAllSet: + return IconForSymbol(kCheckmarkSealFillSymbol, _compactLayout, + kBlue500Color); case SetUpListItemType::kFollow: // TODO(crbug.com/1428070): Add a Follow item to the Set Up List. NOTREACHED();
diff --git a/ios/chrome/browser/ui/content_suggestions/set_up_list/set_up_list_item_view.mm b/ios/chrome/browser/ui/content_suggestions/set_up_list/set_up_list_item_view.mm index 9bc105c..e7e1862 100644 --- a/ios/chrome/browser/ui/content_suggestions/set_up_list/set_up_list_item_view.mm +++ b/ios/chrome/browser/ui/content_suggestions/set_up_list/set_up_list_item_view.mm
@@ -47,6 +47,7 @@ @"kSetUpListItemDefaultBrowserID"; constexpr NSString* const kSetUpListItemAutofillID = @"kSetUpListItemAutofillID"; +constexpr NSString* const kSetUpListItemAllSetID = @"kSetUpListItemAllSetID"; constexpr NSString* const kSetUpListItemFollowID = @"kSetUpListItemFollowID"; // Returns an NSAttributedString with strikethrough. @@ -210,11 +211,13 @@ [self addSubview:_contentStack]; AddSameConstraints(_contentStack, self); - // Set up the tap gesture recognizer. - _tapGestureRecognizer = - [[UITapGestureRecognizer alloc] initWithTarget:self - action:@selector(handleTap:)]; - [self addGestureRecognizer:_tapGestureRecognizer]; + if (_type != SetUpListItemType::kAllSet) { + // Set up the tap gesture recognizer. + _tapGestureRecognizer = + [[UITapGestureRecognizer alloc] initWithTarget:self + action:@selector(handleTap:)]; + [self addGestureRecognizer:_tapGestureRecognizer]; + } } // Creates the title label. @@ -259,6 +262,8 @@ return l10n_util::GetNSString(IDS_IOS_SET_UP_LIST_DEFAULT_BROWSER_TITLE); case SetUpListItemType::kAutofill: return l10n_util::GetNSString(IDS_IOS_SET_UP_LIST_AUTOFILL_TITLE); + case SetUpListItemType::kAllSet: + return l10n_util::GetNSString(IDS_IOS_SET_UP_LIST_ALL_SET_TITLE); case SetUpListItemType::kFollow: // TODO(crbug.com/1428070): Add a Follow item to the Set Up List. NOTREACHED_NORETURN(); @@ -274,6 +279,8 @@ return l10n_util::GetNSString(_config.default_browser_description); case SetUpListItemType::kAutofill: return l10n_util::GetNSString(_config.autofill_description); + case SetUpListItemType::kAllSet: + return l10n_util::GetNSString(IDS_IOS_SET_UP_LIST_ALL_SET_DESCRIPTION); case SetUpListItemType::kFollow: // TODO(crbug.com/1428070): Add a Follow item to the Set Up List. NOTREACHED_NORETURN(); @@ -288,6 +295,8 @@ return kSetUpListItemDefaultBrowserID; case SetUpListItemType::kAutofill: return kSetUpListItemAutofillID; + case SetUpListItemType::kAllSet: + return kSetUpListItemAllSetID; case SetUpListItemType::kFollow: return kSetUpListItemFollowID; }
diff --git a/ios/chrome/browser/ui/content_suggestions/set_up_list/utils.mm b/ios/chrome/browser/ui/content_suggestions/set_up_list/utils.mm index 83074af..cb1f9df 100644 --- a/ios/chrome/browser/ui/content_suggestions/set_up_list/utils.mm +++ b/ios/chrome/browser/ui/content_suggestions/set_up_list/utils.mm
@@ -18,16 +18,23 @@ if (set_up_list_prefs::IsSetUpListDisabled(local_state)) { return false; } - // check if we are within 14 days of FRE + // Check if we are within 14 days of FRE absl::optional<base::Time> first_run_time = GetFirstRunTime(); if (!first_run_time) { // If this is the first time the app has been opened, First Run will not // have been completed yet. In this case, we will wait until the next run. return false; } + base::Time now = base::Time::Now(); base::Time expiry_time = first_run_time.value() + base::Days(14); - if (base::Time::Now() > expiry_time) { - return false; + if (now > expiry_time) { + // It has been 14+ days since FRE, but if user has interacted in the last + // day the time will be extended. + base::Time last_interaction = + set_up_list_prefs::GetLastInteraction(local_state); + if (now > last_interaction + base::Days(1)) { + return false; + } } return true;
diff --git a/ios/chrome/browser/ui/ntp/BUILD.gn b/ios/chrome/browser/ui/ntp/BUILD.gn index 8c3006a..75e0525 100644 --- a/ios/chrome/browser/ui/ntp/BUILD.gn +++ b/ios/chrome/browser/ui/ntp/BUILD.gn
@@ -153,9 +153,9 @@ source_set("field_trial") { configs += [ "//build/config/compiler:enable_arc" ] sources = [ - "new_tab_page_retention_field_trial.cc", - "new_tab_page_retention_field_trial.h", - "new_tab_page_retention_field_trial_constants.h", + "new_tab_page_field_trial.cc", + "new_tab_page_field_trial.h", + "new_tab_page_field_trial_constants.h", "synced_segments_field_trial.cc", "synced_segments_field_trial.h", "synced_segments_field_trial_constants.cc", @@ -275,8 +275,8 @@ testonly = true sources = [ "new_tab_page_coordinator_unittest.mm", + "new_tab_page_field_trial_unittest.mm", "new_tab_page_mediator_unittest.mm", - "new_tab_page_retention_field_trial_unittest.mm", ] deps = [ ":component_factory",
diff --git a/ios/chrome/browser/ui/ntp/new_tab_page_retention_field_trial.cc b/ios/chrome/browser/ui/ntp/new_tab_page_field_trial.cc similarity index 79% rename from ios/chrome/browser/ui/ntp/new_tab_page_retention_field_trial.cc rename to ios/chrome/browser/ui/ntp/new_tab_page_field_trial.cc index af8a056..c715ff0 100644 --- a/ios/chrome/browser/ui/ntp/new_tab_page_retention_field_trial.cc +++ b/ios/chrome/browser/ui/ntp/new_tab_page_field_trial.cc
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#import "ios/chrome/browser/ui/ntp/new_tab_page_retention_field_trial.h" +#import "ios/chrome/browser/ui/ntp/new_tab_page_field_trial.h" #import "base/feature_list.h" #import "base/metrics/field_trial.h" @@ -14,7 +14,7 @@ #import "components/version_info/version_info.h" #import "ios/chrome/browser/first_run/first_run.h" #import "ios/chrome/browser/ui/first_run/ios_first_run_field_trials.h" -#import "ios/chrome/browser/ui/ntp/new_tab_page_retention_field_trial_constants.h" +#import "ios/chrome/browser/ui/ntp/new_tab_page_field_trial_constants.h" #import "ios/chrome/common/channel_info.h" namespace { @@ -24,14 +24,11 @@ const int kPlaceholderTrialVersion = -1; // Store local state preference with whether the client has participated in -// kNewTabPageRetention experiment or not. -// Note: The name is misleading since it covers more than just popular sites. -// This is because 2 configs were merged and it's best not to change an existing -// pref name. -const char kTrialPrefName[] = "popular_sites.trial_version"; +// kNewTabPageFieldTrial experiment or not. +const char kTrialPrefName[] = "new_tab_page.trial_version"; // The current trial version of -// kNewTabPageRetention; should be updated when +// kNewTabPageFieldTrial; should be updated when // the experiment is modified. const int kCurrentTrialVersion = 1; @@ -75,7 +72,7 @@ } // namespace -namespace new_tab_page_retention_field_trial { +namespace new_tab_page_field_trial { // Creates the trial config, initializes the trial that puts clients into // different groups, and returns the version number of the current trial. There @@ -87,59 +84,59 @@ std::map<variations::VariationID, int> weight_by_id, const base::FieldTrial::EntropyProvider& low_entropy_provider, base::FeatureList* feature_list) { - FirstRunFieldTrialConfig config(ntp_tiles::kNewTabPageRetention.name); + FirstRunFieldTrialConfig config(ntp_tiles::kNewTabPageFieldTrial.name); // Tile ablation group that hides all tiles. config.AddGroup( base::StrCat({field_trial_constants::kTileAblationHideAllGroup, field_trial_constants:: - kNewTabPageRetentionVersionSuffixTileAblation}), + kNewTabPageFieldTrialVersionSuffixTileAblation}), field_trial_constants::kTileAblationHideAllID, weight_by_id[field_trial_constants::kTileAblationHideAllID]); base::FieldTrialParams tile_ablation_hide_all_params; - tile_ablation_hide_all_params[ntp_tiles::kNewTabPageRetentionParam] = "1"; + tile_ablation_hide_all_params[ntp_tiles::kNewTabPageFieldTrialParam] = "1"; base::AssociateFieldTrialParams( - ntp_tiles::kNewTabPageRetention.name, + ntp_tiles::kNewTabPageFieldTrial.name, base::StrCat({field_trial_constants::kTileAblationHideAllGroup, field_trial_constants:: - kNewTabPageRetentionVersionSuffixTileAblation}), + kNewTabPageFieldTrialVersionSuffixTileAblation}), tile_ablation_hide_all_params); // Tile ablation group that hides only MVT tiles. config.AddGroup( base::StrCat({field_trial_constants::kTileAblationHideOnlyMVTGroup, field_trial_constants:: - kNewTabPageRetentionVersionSuffixTileAblation}), + kNewTabPageFieldTrialVersionSuffixTileAblation}), field_trial_constants::kTileAblationHideOnlyMVTID, weight_by_id[field_trial_constants::kTileAblationHideOnlyMVTID]); base::FieldTrialParams tile_ablation_hide_mvt_params; - tile_ablation_hide_mvt_params[ntp_tiles::kNewTabPageRetentionParam] = "2"; + tile_ablation_hide_mvt_params[ntp_tiles::kNewTabPageFieldTrialParam] = "2"; base::AssociateFieldTrialParams( - ntp_tiles::kNewTabPageRetention.name, + ntp_tiles::kNewTabPageFieldTrial.name, base::StrCat({field_trial_constants::kTileAblationHideOnlyMVTGroup, field_trial_constants:: - kNewTabPageRetentionVersionSuffixTileAblation}), + kNewTabPageFieldTrialVersionSuffixTileAblation}), tile_ablation_hide_mvt_params); // Tile ablation control group. config.AddGroup( base::StrCat({field_trial_constants::kTileAblationControlGroup, field_trial_constants:: - kNewTabPageRetentionVersionSuffixTileAblation}), + kNewTabPageFieldTrialVersionSuffixTileAblation}), field_trial_constants::kTileAblationControlID, weight_by_id[field_trial_constants::kTileAblationControlID]); base::FieldTrialParams tile_ablation_control_params; - tile_ablation_control_params[ntp_tiles::kNewTabPageRetentionParam] = "3"; + tile_ablation_control_params[ntp_tiles::kNewTabPageFieldTrialParam] = "3"; base::AssociateFieldTrialParams( - ntp_tiles::kNewTabPageRetention.name, + ntp_tiles::kNewTabPageFieldTrial.name, base::StrCat({field_trial_constants::kTileAblationControlGroup, field_trial_constants:: - kNewTabPageRetentionVersionSuffixTileAblation}), + kNewTabPageFieldTrialVersionSuffixTileAblation}), tile_ablation_control_params); // Default group. scoped_refptr<base::FieldTrial> trial = config.CreateOneTimeRandomizedTrial( - field_trial_constants::kNewTabPageRetentionDefaultGroup, + field_trial_constants::kNewTabPageFieldTrialDefaultGroup, low_entropy_provider); // Finalize the group choice and activates the trial - similar to a @@ -151,14 +148,14 @@ if (group_name == base::StrCat({field_trial_constants::kTileAblationControlGroup, field_trial_constants:: - kNewTabPageRetentionVersionSuffixTileAblation}) || - group_name == field_trial_constants::kNewTabPageRetentionDefaultGroup) { + kNewTabPageFieldTrialVersionSuffixTileAblation}) || + group_name == field_trial_constants::kNewTabPageFieldTrialDefaultGroup) { feature_list->RegisterFieldTrialOverride( - ntp_tiles::kNewTabPageRetention.name, + ntp_tiles::kNewTabPageFieldTrial.name, base::FeatureList::OVERRIDE_DISABLE_FEATURE, trial.get()); } else { feature_list->RegisterFieldTrialOverride( - ntp_tiles::kNewTabPageRetention.name, + ntp_tiles::kNewTabPageFieldTrial.name, base::FeatureList::OVERRIDE_ENABLE_FEATURE, trial.get()); } } @@ -172,7 +169,8 @@ PrefService* local_state) { // Don't create the trial if the feature is overridden to avoid having // multiple registered trials for the same feature. - if (feature_list->IsFeatureOverridden(ntp_tiles::kNewTabPageRetention.name)) { + if (feature_list->IsFeatureOverridden( + ntp_tiles::kNewTabPageFieldTrial.name)) { return; } @@ -206,4 +204,4 @@ CreateNewTabPageFieldTrial(weights_by_id, low_entropy_provider, feature_list); } -} // namespace new_tab_page_retention_field_trial +} // namespace new_tab_page_field_trial
diff --git a/ios/chrome/browser/ui/ntp/new_tab_page_retention_field_trial.h b/ios/chrome/browser/ui/ntp/new_tab_page_field_trial.h similarity index 77% rename from ios/chrome/browser/ui/ntp/new_tab_page_retention_field_trial.h rename to ios/chrome/browser/ui/ntp/new_tab_page_field_trial.h index 9070e30..a3f6c14 100644 --- a/ios/chrome/browser/ui/ntp/new_tab_page_retention_field_trial.h +++ b/ios/chrome/browser/ui/ntp/new_tab_page_field_trial.h
@@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef IOS_CHROME_BROWSER_UI_NTP_NEW_TAB_PAGE_RETENTION_FIELD_TRIAL_H_ -#define IOS_CHROME_BROWSER_UI_NTP_NEW_TAB_PAGE_RETENTION_FIELD_TRIAL_H_ +#ifndef IOS_CHROME_BROWSER_UI_NTP_new_tab_page_field_trial_H_ +#define IOS_CHROME_BROWSER_UI_NTP_new_tab_page_field_trial_H_ #import "base/metrics/field_trial.h" #import "components/variations/variations_associated_data.h" @@ -11,7 +11,7 @@ class PrefService; class PrefRegistrySimple; -namespace new_tab_page_retention_field_trial { +namespace new_tab_page_field_trial { // Creates a field trial to control the improved popular sites default // suggestions experiment so that it is shown on the NTP after first run. @@ -31,6 +31,6 @@ const base::FieldTrial::EntropyProvider& low_entropy_provider, base::FeatureList* feature_list); -} // namespace new_tab_page_retention_field_trial +} // namespace new_tab_page_field_trial -#endif // IOS_CHROME_BROWSER_UI_NTP_NEW_TAB_PAGE_RETENTION_FIELD_TRIAL_H_ +#endif // IOS_CHROME_BROWSER_UI_NTP_new_tab_page_field_trial_H_
diff --git a/ios/chrome/browser/ui/ntp/new_tab_page_field_trial_constants.h b/ios/chrome/browser/ui/ntp/new_tab_page_field_trial_constants.h new file mode 100644 index 0000000..edc571c --- /dev/null +++ b/ios/chrome/browser/ui/ntp/new_tab_page_field_trial_constants.h
@@ -0,0 +1,33 @@ +// Copyright 2023 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef IOS_CHROME_BROWSER_UI_NTP_new_tab_page_field_trial_CONSTANTS_H_ +#define IOS_CHROME_BROWSER_UI_NTP_new_tab_page_field_trial_CONSTANTS_H_ + +#import "components/variations/variations_associated_data.h" + +namespace field_trial_constants { + +// Version suffix for group names. +const char kNewTabPageFieldTrialVersionSuffixTileAblation[] = "_M114"; + +// Variation IDs for the tile ablation experiment. +const variations::VariationID kTileAblationHideAllID = 3365413; +const variations::VariationID kTileAblationHideOnlyMVTID = 3365414; +const variations::VariationID kTileAblationControlID = 3365415; + +// Group names for the tile ablation experiment. +const char kTileAblationHideAllGroup[] = "TileAblation_HideAll"; +const char kTileAblationHideOnlyMVTGroup[] = "TileAblation_HideOnlyMVT"; +const char kTileAblationControlGroup[] = "TileAblation_Control"; + +const char kNewTabPageFieldTrialDefaultGroup[] = "Default"; + +// Group weights for the tile ablation experiments. +const int kTileAblationStableWeight = 5; +const int kTileAblationPrestableWeight = 16; + +} // namespace field_trial_constants + +#endif // IOS_CHROME_BROWSER_UI_NTP_new_tab_page_field_trial_CONSTANTS_H_
diff --git a/ios/chrome/browser/ui/ntp/new_tab_page_retention_field_trial_unittest.mm b/ios/chrome/browser/ui/ntp/new_tab_page_field_trial_unittest.mm similarity index 64% rename from ios/chrome/browser/ui/ntp/new_tab_page_retention_field_trial_unittest.mm rename to ios/chrome/browser/ui/ntp/new_tab_page_field_trial_unittest.mm index a207154..d5b4b21 100644 --- a/ios/chrome/browser/ui/ntp/new_tab_page_retention_field_trial_unittest.mm +++ b/ios/chrome/browser/ui/ntp/new_tab_page_field_trial_unittest.mm
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#import "ios/chrome/browser/ui/ntp/new_tab_page_retention_field_trial.h" +#import "ios/chrome/browser/ui/ntp/new_tab_page_field_trial.h" #import "base/feature_list.h" #import "base/metrics/field_trial.h" @@ -11,15 +11,15 @@ #import "base/test/scoped_feature_list.h" #import "components/ntp_tiles/features.h" #import "components/variations/variations_associated_data.h" -#import "ios/chrome/browser/ui/ntp/new_tab_page_retention_field_trial_constants.h" +#import "ios/chrome/browser/ui/ntp/new_tab_page_field_trial_constants.h" #import "testing/platform_test.h" #if !defined(__has_feature) || !__has_feature(objc_arc) #error "This file requires ARC support." #endif -// Tests for field trial creation for the new tab page retention experiments. -class NewTabPageRetentionFieldTrialTest : public PlatformTest { +// Tests for field trial creation for the new tab page field trial experiments. +class NewTabPageFieldTrialTest : public PlatformTest { protected: void TearDown() override { scoped_feature_list_.Reset(); @@ -31,12 +31,12 @@ }; // Tests default field trial group. -TEST_F(NewTabPageRetentionFieldTrialTest, TestDefault) { +TEST_F(NewTabPageFieldTrialTest, TestDefault) { auto feature_list = std::make_unique<base::FeatureList>(); std::map<variations::VariationID, int> weight_by_id = {}; - new_tab_page_retention_field_trial::CreateNewTabPageFieldTrialForTesting( + new_tab_page_field_trial::CreateNewTabPageFieldTrialForTesting( std::move(weight_by_id), low_entropy_provider_, feature_list.get()); // Substitute the existing feature list with the one with field trial @@ -44,24 +44,24 @@ scoped_feature_list_.InitWithFeatureList(std::move(feature_list)); ASSERT_TRUE(base::FieldTrialList::IsTrialActive( - ntp_tiles::kNewTabPageRetention.name)); - EXPECT_FALSE(base::FeatureList::IsEnabled(ntp_tiles::kNewTabPageRetention)); + ntp_tiles::kNewTabPageFieldTrial.name)); + EXPECT_FALSE(base::FeatureList::IsEnabled(ntp_tiles::kNewTabPageFieldTrial)); - ntp_tiles::NewTabPageRetentionExperimentBehavior experiment_type = - ntp_tiles::GetNewTabPageRetentionExperimentType(); + ntp_tiles::NewTabPageFieldTrialExperimentBehavior experiment_type = + ntp_tiles::GetNewTabPageFieldTrialExperimentType(); EXPECT_EQ(experiment_type, - ntp_tiles::NewTabPageRetentionExperimentBehavior::kDefault); + ntp_tiles::NewTabPageFieldTrialExperimentBehavior::kDefault); } // Tests that the tile ablation control group uses default behavior. -TEST_F(NewTabPageRetentionFieldTrialTest, TestTileAblationControl) { +TEST_F(NewTabPageFieldTrialTest, TestTileAblationControl) { auto feature_list = std::make_unique<base::FeatureList>(); std::map<variations::VariationID, int> weight_by_id = { {field_trial_constants::kTileAblationControlID, 100}}; - new_tab_page_retention_field_trial::CreateNewTabPageFieldTrialForTesting( + new_tab_page_field_trial::CreateNewTabPageFieldTrialForTesting( std::move(weight_by_id), low_entropy_provider_, feature_list.get()); // Substitute the existing feature list with the one with field trial @@ -69,61 +69,61 @@ scoped_feature_list_.InitWithFeatureList(std::move(feature_list)); ASSERT_TRUE(base::FieldTrialList::IsTrialActive( - ntp_tiles::kNewTabPageRetention.name)); - EXPECT_FALSE(base::FeatureList::IsEnabled(ntp_tiles::kNewTabPageRetention)); + ntp_tiles::kNewTabPageFieldTrial.name)); + EXPECT_FALSE(base::FeatureList::IsEnabled(ntp_tiles::kNewTabPageFieldTrial)); - ntp_tiles::NewTabPageRetentionExperimentBehavior experiment_type = - ntp_tiles::GetNewTabPageRetentionExperimentType(); + ntp_tiles::NewTabPageFieldTrialExperimentBehavior experiment_type = + ntp_tiles::GetNewTabPageFieldTrialExperimentType(); EXPECT_EQ(experiment_type, - ntp_tiles::NewTabPageRetentionExperimentBehavior::kDefault); + ntp_tiles::NewTabPageFieldTrialExperimentBehavior::kDefault); } // Tests the tile ablation hiding all tiles apps group. -TEST_F(NewTabPageRetentionFieldTrialTest, TestTileAblationHideAllGroup) { +TEST_F(NewTabPageFieldTrialTest, TestTileAblationHideAllGroup) { auto feature_list = std::make_unique<base::FeatureList>(); std::map<variations::VariationID, int> weight_by_id = { {field_trial_constants::kTileAblationHideAllID, 100}}; - new_tab_page_retention_field_trial::CreateNewTabPageFieldTrialForTesting( + new_tab_page_field_trial::CreateNewTabPageFieldTrialForTesting( std::move(weight_by_id), low_entropy_provider_, feature_list.get()); // Substitute the existing feature list with the one with field trial // configurations we are testing, and check assertions. scoped_feature_list_.InitWithFeatureList(std::move(feature_list)); ASSERT_TRUE(base::FieldTrialList::IsTrialActive( - ntp_tiles::kNewTabPageRetention.name)); - EXPECT_TRUE(base::FeatureList::IsEnabled(ntp_tiles::kNewTabPageRetention)); + ntp_tiles::kNewTabPageFieldTrial.name)); + EXPECT_TRUE(base::FeatureList::IsEnabled(ntp_tiles::kNewTabPageFieldTrial)); - ntp_tiles::NewTabPageRetentionExperimentBehavior experiment_type = - ntp_tiles::GetNewTabPageRetentionExperimentType(); + ntp_tiles::NewTabPageFieldTrialExperimentBehavior experiment_type = + ntp_tiles::GetNewTabPageFieldTrialExperimentType(); EXPECT_EQ( experiment_type, - ntp_tiles::NewTabPageRetentionExperimentBehavior::kTileAblationHideAll); + ntp_tiles::NewTabPageFieldTrialExperimentBehavior::kTileAblationHideAll); } // Tests the tile ablation hiding only MVTs group. -TEST_F(NewTabPageRetentionFieldTrialTest, TestTileAblationHideOnlyMVTGroup) { +TEST_F(NewTabPageFieldTrialTest, TestTileAblationHideOnlyMVTGroup) { auto feature_list = std::make_unique<base::FeatureList>(); std::map<variations::VariationID, int> weight_by_id = { {field_trial_constants::kTileAblationHideOnlyMVTID, 100}}; - new_tab_page_retention_field_trial::CreateNewTabPageFieldTrialForTesting( + new_tab_page_field_trial::CreateNewTabPageFieldTrialForTesting( std::move(weight_by_id), low_entropy_provider_, feature_list.get()); // Substitute the existing feature list with the one with field trial // configurations we are testing, and check assertions. scoped_feature_list_.InitWithFeatureList(std::move(feature_list)); ASSERT_TRUE(base::FieldTrialList::IsTrialActive( - ntp_tiles::kNewTabPageRetention.name)); - EXPECT_TRUE(base::FeatureList::IsEnabled(ntp_tiles::kNewTabPageRetention)); + ntp_tiles::kNewTabPageFieldTrial.name)); + EXPECT_TRUE(base::FeatureList::IsEnabled(ntp_tiles::kNewTabPageFieldTrial)); - ntp_tiles::NewTabPageRetentionExperimentBehavior experiment_type = - ntp_tiles::GetNewTabPageRetentionExperimentType(); + ntp_tiles::NewTabPageFieldTrialExperimentBehavior experiment_type = + ntp_tiles::GetNewTabPageFieldTrialExperimentType(); - EXPECT_EQ(experiment_type, ntp_tiles::NewTabPageRetentionExperimentBehavior:: + EXPECT_EQ(experiment_type, ntp_tiles::NewTabPageFieldTrialExperimentBehavior:: kTileAblationHideMVTOnly); }
diff --git a/ios/chrome/browser/ui/ntp/new_tab_page_retention_field_trial_constants.h b/ios/chrome/browser/ui/ntp/new_tab_page_retention_field_trial_constants.h deleted file mode 100644 index ae621dc56d..0000000 --- a/ios/chrome/browser/ui/ntp/new_tab_page_retention_field_trial_constants.h +++ /dev/null
@@ -1,34 +0,0 @@ -// Copyright 2023 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef IOS_CHROME_BROWSER_UI_NTP_NEW_TAB_PAGE_RETENTION_FIELD_TRIAL_CONSTANTS_H_ -#define IOS_CHROME_BROWSER_UI_NTP_NEW_TAB_PAGE_RETENTION_FIELD_TRIAL_CONSTANTS_H_ - -#import "components/variations/variations_associated_data.h" - -namespace field_trial_constants { - -// Version suffix for group names. -const char kNewTabPageRetentionVersionSuffixImprovedTiles[] = "_20230308"; -const char kNewTabPageRetentionVersionSuffixTileAblation[] = "_20230504"; - -// Variation IDs for the tile ablation experiment. -const variations::VariationID kTileAblationHideAllID = 3361865; -const variations::VariationID kTileAblationHideOnlyMVTID = 3361866; -const variations::VariationID kTileAblationControlID = 3361867; - -// Group names for the tile ablation experiment. -const char kTileAblationHideAllGroup[] = "TileAblation.HideAll"; -const char kTileAblationHideOnlyMVTGroup[] = "TileAblation_HideOnlyMVT"; -const char kTileAblationControlGroup[] = "TileAblation_Control"; - -const char kNewTabPageRetentionDefaultGroup[] = "Default"; - -// Group weights for the tile ablation experiments. -const int kTileAblationStableWeight = 5; -const int kTileAblationPrestableWeight = 16; - -} // namespace field_trial_constants - -#endif // IOS_CHROME_BROWSER_UI_NTP_NEW_TAB_PAGE_RETENTION_FIELD_TRIAL_CONSTANTS_H_
diff --git a/ios/chrome/browser/ui/popup_menu/DEPS b/ios/chrome/browser/ui/popup_menu/DEPS index 09730b8c..070d96d 100644 --- a/ios/chrome/browser/ui/popup_menu/DEPS +++ b/ios/chrome/browser/ui/popup_menu/DEPS
@@ -1,5 +1,6 @@ include_rules = [ "+ios/chrome/browser/ui/browser_container", + "+ios/chrome/browser/ui/bookmarks", "+ios/chrome/browser/ui/bubble", "+ios/chrome/browser/ui/lens/lens_entrypoint.h", "+ios/chrome/browser/ui/ntp/metrics/feed_metrics_recorder.h",
diff --git a/ios/chrome/browser/ui/popup_menu/overflow_menu/BUILD.gn b/ios/chrome/browser/ui/popup_menu/overflow_menu/BUILD.gn index f45cde7..50e5e2fa 100644 --- a/ios/chrome/browser/ui/popup_menu/overflow_menu/BUILD.gn +++ b/ios/chrome/browser/ui/popup_menu/overflow_menu/BUILD.gn
@@ -63,6 +63,7 @@ "//ios/chrome/browser/tabs:features", "//ios/chrome/browser/translate", "//ios/chrome/browser/ui/bookmarks:core", + "//ios/chrome/browser/ui/bookmarks:utils", "//ios/chrome/browser/ui/browser_container:ui", "//ios/chrome/browser/ui/follow", "//ios/chrome/browser/ui/ntp/metrics",
diff --git a/ios/chrome/browser/ui/popup_menu/overflow_menu/overflow_menu_mediator.h b/ios/chrome/browser/ui/popup_menu/overflow_menu/overflow_menu_mediator.h index 442d052..f5e0784 100644 --- a/ios/chrome/browser/ui/popup_menu/overflow_menu/overflow_menu_mediator.h +++ b/ios/chrome/browser/ui/popup_menu/overflow_menu/overflow_menu_mediator.h
@@ -75,8 +75,10 @@ // BaseViewController for presenting some UI. @property(nonatomic, weak) UIViewController* baseViewController; -// The bookmarks model to know if the page is bookmarked. -@property(nonatomic, assign) bookmarks::BookmarkModel* bookmarkModel; +// Bookmarks models to know if the page is bookmarked. +@property(nonatomic, assign) + bookmarks::BookmarkModel* localOrSyncableBookmarkModel; +@property(nonatomic, assign) bookmarks::BookmarkModel* accountBookmarkModel; // Pref service to retrieve browser state preference values. @property(nonatomic, assign) PrefService* browserStatePrefs;
diff --git a/ios/chrome/browser/ui/popup_menu/overflow_menu/overflow_menu_mediator.mm b/ios/chrome/browser/ui/popup_menu/overflow_menu/overflow_menu_mediator.mm index c11934c..90fdf91 100644 --- a/ios/chrome/browser/ui/popup_menu/overflow_menu/overflow_menu_mediator.mm +++ b/ios/chrome/browser/ui/popup_menu/overflow_menu/overflow_menu_mediator.mm
@@ -61,6 +61,7 @@ #import "ios/chrome/browser/shared/ui/util/uikit_ui_util.h" #import "ios/chrome/browser/tabs/features.h" #import "ios/chrome/browser/translate/chrome_ios_translate_client.h" +#import "ios/chrome/browser/ui/bookmarks/bookmark_utils_ios.h" #import "ios/chrome/browser/ui/ntp/metrics/feed_metrics_recorder.h" #import "ios/chrome/browser/ui/popup_menu//overflow_menu/overflow_menu_orderer.h" #import "ios/chrome/browser/ui/popup_menu/overflow_menu/destination_usage_history/constants.h" @@ -165,7 +166,8 @@ std::unique_ptr<OverlayPresenterObserver> _overlayPresenterObserver; // Bridge to register for bookmark changes. - std::unique_ptr<BookmarkModelBridge> _bookmarkModelBridge; + std::unique_ptr<BookmarkModelBridge> _localOrSyncableBookmarkModelBridge; + std::unique_ptr<BookmarkModelBridge> _accountBookmarkModelBridge; // Bridge to get notified of the language detection event. std::unique_ptr<language::IOSLanguageDetectionTabHelperObserverBridge> @@ -289,7 +291,8 @@ self.webState = nullptr; self.webStateList = nullptr; - self.bookmarkModel = nullptr; + self.localOrSyncableBookmarkModel = nullptr; + self.accountBookmarkModel = nullptr; self.browserStatePrefs = nullptr; self.localStatePrefs = nullptr; @@ -363,14 +366,29 @@ } } -- (void)setBookmarkModel:(bookmarks::BookmarkModel*)bookmarkModel { - _bookmarkModelBridge.reset(); +- (void)setLocalOrSyncableBookmarkModel: + (bookmarks::BookmarkModel*)localOrSyncableBookmarkModel { + _localOrSyncableBookmarkModelBridge.reset(); - _bookmarkModel = bookmarkModel; + _localOrSyncableBookmarkModel = localOrSyncableBookmarkModel; - if (bookmarkModel) { - _bookmarkModelBridge = - std::make_unique<BookmarkModelBridge>(self, bookmarkModel); + if (localOrSyncableBookmarkModel) { + _localOrSyncableBookmarkModelBridge = std::make_unique<BookmarkModelBridge>( + self, localOrSyncableBookmarkModel); + } + + [self updateModel]; +} + +- (void)setAccountBookmarkModel: + (bookmarks::BookmarkModel*)accountBookmarkModel { + _accountBookmarkModelBridge.reset(); + + _accountBookmarkModel = accountBookmarkModel; + + if (accountBookmarkModel) { + _accountBookmarkModelBridge = + std::make_unique<BookmarkModelBridge>(self, accountBookmarkModel); } [self updateModel]; @@ -936,8 +954,10 @@ self.appActionsGroup.actions = appActions; BOOL pageIsBookmarked = - self.webState && self.bookmarkModel && - self.bookmarkModel->IsBookmarked(self.webState->GetVisibleURL()); + self.webState && self.localOrSyncableBookmarkModel && + bookmark_utils_ios::IsBookmarked(self.webState->GetVisibleURL(), + self.localOrSyncableBookmarkModel, + self.accountBookmarkModel); NSMutableArray<OverflowMenuAction*>* pageActions = [[NSMutableArray alloc] init];
diff --git a/ios/chrome/browser/ui/popup_menu/overflow_menu/overflow_menu_mediator_unittest.mm b/ios/chrome/browser/ui/popup_menu/overflow_menu/overflow_menu_mediator_unittest.mm index 11ecd87..c111bdf 100644 --- a/ios/chrome/browser/ui/popup_menu/overflow_menu/overflow_menu_mediator_unittest.mm +++ b/ios/chrome/browser/ui/popup_menu/overflow_menu/overflow_menu_mediator_unittest.mm
@@ -27,6 +27,7 @@ #import "components/translate/core/browser/translate_pref_names.h" #import "components/translate/core/browser/translate_prefs.h" #import "components/translate/core/language_detection/language_detection_model.h" +#import "ios/chrome/browser/bookmarks/account_bookmark_model_factory.h" #import "ios/chrome/browser/bookmarks/local_or_syncable_bookmark_model_factory.h" #import "ios/chrome/browser/overlays/public/overlay_presenter.h" #import "ios/chrome/browser/overlays/public/overlay_request.h" @@ -227,12 +228,22 @@ } void SetUpBookmarks() { - bookmark_model_ = + local_or_syncable_bookmark_model_ = ios::LocalOrSyncableBookmarkModelFactory::GetForBrowserState( browser_state_.get()); - DCHECK(bookmark_model_); - bookmarks::test::WaitForBookmarkModelToLoad(bookmark_model_); - mediator_.bookmarkModel = bookmark_model_; + DCHECK(local_or_syncable_bookmark_model_); + account_bookmark_model_ = + ios::AccountBookmarkModelFactory::GetForBrowserState( + browser_state_.get()); + + // TODO(crbug.com/1448010): Use two-model `WaitForBookmarkModelToLoad`. + bookmarks::test::WaitForBookmarkModelToLoad( + local_or_syncable_bookmark_model_); + if (account_bookmark_model_) { + bookmarks::test::WaitForBookmarkModelToLoad(account_bookmark_model_); + } + mediator_.localOrSyncableBookmarkModel = local_or_syncable_bookmark_model_; + mediator_.accountBookmarkModel = account_bookmark_model_; } void InsertNewWebState(int index) { @@ -330,7 +341,8 @@ FakeOverlayPresentationContext presentation_context_; OverflowMenuMediator* mediator_; - BookmarkModel* bookmark_model_; + BookmarkModel* local_or_syncable_bookmark_model_; + BookmarkModel* account_bookmark_model_; std::unique_ptr<TestingPrefServiceSimple> browserStatePrefs_; std::unique_ptr<TestingPrefServiceSimple> localStatePrefs_; web::FakeWebState* web_state_; @@ -553,7 +565,9 @@ CreateMediator(/*is_incognito=*/NO); CreateBrowserStatePrefs(); SetUpBookmarks(); - bookmarks::AddIfNotBookmarked(bookmark_model_, bookmarkedURL, + // TODO(crbug.com/1448014): Revise this test to ensure account model support. + bookmarks::AddIfNotBookmarked(local_or_syncable_bookmark_model_, + bookmarkedURL, base::SysNSStringToUTF16(@"Test bookmark")); mediator_.webStateList = browser_->GetWebStateList(); mediator_.browserStatePrefs = browserStatePrefs_.get(); @@ -571,7 +585,7 @@ EXPECT_FALSE(HasItem(kToolsMenuAddToBookmarks, /*enabled=*/YES)); EXPECT_TRUE(HasItem(kToolsMenuEditBookmark, /*enabled=*/YES)); - bookmark_model_->RemoveAllUserBookmarks(); + local_or_syncable_bookmark_model_->RemoveAllUserBookmarks(); EXPECT_TRUE(HasItem(kToolsMenuAddToBookmarks, /*enabled=*/YES)); EXPECT_FALSE(HasItem(kToolsMenuEditBookmark, /*enabled=*/YES)); }
diff --git a/ios/chrome/browser/ui/popup_menu/popup_menu_coordinator.mm b/ios/chrome/browser/ui/popup_menu/popup_menu_coordinator.mm index bc94f764..c7f0bc7 100644 --- a/ios/chrome/browser/ui/popup_menu/popup_menu_coordinator.mm +++ b/ios/chrome/browser/ui/popup_menu/popup_menu_coordinator.mm
@@ -13,6 +13,7 @@ #import "base/metrics/user_metrics_action.h" #import "components/feature_engagement/public/event_constants.h" #import "components/feature_engagement/public/tracker.h" +#import "ios/chrome/browser/bookmarks/account_bookmark_model_factory.h" #import "ios/chrome/browser/bookmarks/local_or_syncable_bookmark_model_factory.h" #import "ios/chrome/browser/feature_engagement/tracker_factory.h" #import "ios/chrome/browser/follow/follow_action_state.h" @@ -248,9 +249,12 @@ self.overflowMenuMediator.navigationAgent = WebNavigationBrowserAgent::FromBrowser(self.browser); self.overflowMenuMediator.baseViewController = self.baseViewController; - self.overflowMenuMediator.bookmarkModel = + self.overflowMenuMediator.localOrSyncableBookmarkModel = ios::LocalOrSyncableBookmarkModelFactory::GetForBrowserState( self.browser->GetBrowserState()); + self.overflowMenuMediator.accountBookmarkModel = + ios::AccountBookmarkModelFactory::GetForBrowserState( + self.browser->GetBrowserState()); self.overflowMenuMediator.browserStatePrefs = self.browser->GetBrowserState()->GetPrefs(); self.overflowMenuMediator.localStatePrefs =
diff --git a/ios/chrome/browser/ui/settings/password/BUILD.gn b/ios/chrome/browser/ui/settings/password/BUILD.gn index 0ca0ea1..be7e825 100644 --- a/ios/chrome/browser/ui/settings/password/BUILD.gn +++ b/ios/chrome/browser/ui/settings/password/BUILD.gn
@@ -290,7 +290,6 @@ "//components/strings", "//components/sync/service", "//ios/chrome/app/strings", - "//ios/chrome/browser/credential_provider_promo:features", "//ios/chrome/browser/metrics:eg_test_support+eg2", "//ios/chrome/browser/policy:eg_test_support+eg2", "//ios/chrome/browser/shared/ui/util", @@ -301,7 +300,6 @@ "//ios/chrome/browser/ui/settings/password/password_details:password_details_table_view_constants", "//ios/chrome/browser/ui/settings/password/password_settings:password_settings_constants", "//ios/chrome/browser/ui/settings/password/passwords_in_other_apps:eg_test_support+eg2", - "//ios/chrome/common/ui/confirmation_alert:constants", "//ios/chrome/common/ui/reauthentication", "//ios/chrome/common/ui/table_view:cells_constants", "//ios/chrome/test/earl_grey:eg_test_support+eg2",
diff --git a/ios/chrome/browser/ui/settings/password/password_manager_egtest.mm b/ios/chrome/browser/ui/settings/password/password_manager_egtest.mm index a43fc1b..65be746 100644 --- a/ios/chrome/browser/ui/settings/password/password_manager_egtest.mm +++ b/ios/chrome/browser/ui/settings/password/password_manager_egtest.mm
@@ -19,7 +19,6 @@ #import "components/sync/base/features.h" #import "components/sync/base/sync_prefs.h" #import "components/sync/base/user_selectable_type.h" -#import "ios/chrome/browser/credential_provider_promo/features.h" #import "ios/chrome/browser/metrics/metrics_app_interface.h" #import "ios/chrome/browser/policy/policy_earl_grey_utils.h" #import "ios/chrome/browser/signin/fake_system_identity.h" @@ -31,10 +30,8 @@ #import "ios/chrome/browser/ui/settings/password/passwords_in_other_apps/passwords_in_other_apps_app_interface.h" #import "ios/chrome/browser/ui/settings/password/passwords_table_view_constants.h" #import "ios/chrome/browser/ui/settings/settings_root_table_constants.h" -#import "ios/chrome/common/ui/confirmation_alert/constants.h" #import "ios/chrome/common/ui/reauthentication/reauthentication_protocol.h" #import "ios/chrome/common/ui/table_view/table_view_cells_constants.h" -#import "ios/chrome/grit/ios_google_chrome_strings.h" #import "ios/chrome/grit/ios_strings.h" #import "ios/chrome/test/earl_grey/chrome_actions.h" #import "ios/chrome/test/earl_grey/chrome_earl_grey.h" @@ -261,12 +258,8 @@ // Matcher for the Delete button in Confirmation Alert for batch passwords // deletion when password grouping is enabled. id<GREYMatcher> BatchDeleteConfirmationButtonForGrouping() { - return grey_allOf( - grey_accessibilityID([NSString - stringWithFormat:@"%@%@", - l10n_util::GetNSString(IDS_IOS_DELETE_ACTION_TITLE), - @"AlertAction"]), - grey_interactable(), nullptr); + return chrome_test_util::AlertAction( + l10n_util::GetNSString(IDS_IOS_DELETE_ACTION_TITLE)); } // Matcher for the Delete button in the list view, located at the bottom of the @@ -434,75 +427,6 @@ return SettingToolbarEditDoneButton(); } -// Returns the matcher for the Credential Provider Promo's subtitle. -id<GREYMatcher> SubtitleMatcher() { - return grey_accessibilityID( - kConfirmationAlertSubtitleAccessibilityIdentifier); -} - -// Returns the matcher for the Credential Provider Promo's primary action -// button. -id<GREYMatcher> PrimaryActionButtonMatcher() { - return grey_accessibilityID( - kConfirmationAlertPrimaryActionAccessibilityIdentifier); -} - -// Returns the matcher for the Credential Provider Promo's secondary action -// button. -id<GREYMatcher> SecondaryActionButtonMatcher() { - return grey_accessibilityID( - kConfirmationAlertSecondaryActionAccessibilityIdentifier); -} - -// Returns the matcher for the Credential Provider Promo's tertiary action -// button. -id<GREYMatcher> TertiaryActionButtonMatcher() { - return grey_accessibilityID( - kConfirmationAlertTertiaryActionAccessibilityIdentifier); -} - -// Checks that the Credential Provider Promo subtitle text and buttons are -// interactable. -void CheckThatCredentialPromoElementsAreInteractable() { - [[EarlGrey selectElementWithMatcher:SubtitleMatcher()] - assertWithMatcher:grey_interactable()]; - [[EarlGrey selectElementWithMatcher:PrimaryActionButtonMatcher()] - assertWithMatcher:grey_interactable()]; - [[EarlGrey selectElementWithMatcher:SecondaryActionButtonMatcher()] - assertWithMatcher:grey_interactable()]; - [[EarlGrey selectElementWithMatcher:TertiaryActionButtonMatcher()] - assertWithMatcher:grey_interactable()]; -} - -// Checks that the Credential Provider Promo appears and dismisses it. -void CheckForAndDismissCredentialProviderPromo() { - // Check that the inital promo is visible. - id<GREYMatcher> initialTitleLabelMatcher = grey_text( - l10n_util::GetNSString(IDS_IOS_CREDENTIAL_PROVIDER_PROMO_INITIAL_TITLE)); - [[EarlGrey selectElementWithMatcher:initialTitleLabelMatcher] - assertWithMatcher:grey_sufficientlyVisible()]; - CheckThatCredentialPromoElementsAreInteractable(); - - // Tap the primary action button to display the `learn more` promo. - [[EarlGrey - selectElementWithMatcher:grey_allOf(PrimaryActionButtonMatcher(), - grey_sufficientlyVisible(), nil)] - performAction:grey_tap()]; - - // Check that the `learn more` promo is visible. - id<GREYMatcher> learnMoreTitleLabelMatcher = grey_text(l10n_util::GetNSString( - IDS_IOS_CREDENTIAL_PROVIDER_PROMO_LEARN_MORE_TITLE)); - [[EarlGrey selectElementWithMatcher:learnMoreTitleLabelMatcher] - assertWithMatcher:grey_sufficientlyVisible()]; - CheckThatCredentialPromoElementsAreInteractable(); - - // Tap the secondary action button to dismiss the promo. - [[EarlGrey - selectElementWithMatcher:grey_allOf(SecondaryActionButtonMatcher(), - grey_sufficientlyVisible(), nil)] - performAction:grey_tap()]; -} - } // namespace // Various tests for the main Password Manager UI. @@ -656,16 +580,6 @@ password_manager::features::kIOSPasswordCheckup); } - if ([self isRunningTest:@selector(testCopyPasswordMenuItem)] || - [self isRunningTest:@selector(testCopyPasswordToast)]) { - config.additional_args.push_back( - std::string("--enable-features=CredentialProviderExtensionPromo:enable_" - "promo_on_password_copied/true")); - // Without relaunch, the credential provider promo meets its impression - // limit and does not display in subsequent runs. - config.relaunch_policy = ForceRelaunchByCleanShutdown; - } - return config; } @@ -726,9 +640,6 @@ [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(snackbarLabel)] performAction:grey_tap()]; - // Dismiss the credential provider extension promo. - CheckForAndDismissCredentialProviderPromo(); - // Check the snackbar in case of failed reauthentication. [PasswordSettingsAppInterface mockReauthenticationModuleExpectedResult: ReauthenticationResult::kFailure]; @@ -1378,9 +1289,6 @@ [[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(snackbarLabel)] performAction:grey_tap()]; - // Dismiss the credential provider extension promo. - CheckForAndDismissCredentialProviderPromo(); - [[EarlGrey selectElementWithMatcher:SettingsMenuBackButton()] performAction:grey_tap()]; [[EarlGrey selectElementWithMatcher:SettingsMenuBackButton()]
diff --git a/ios/chrome/browser/ui/tab_switcher/tab_grid/BUILD.gn b/ios/chrome/browser/ui/tab_switcher/tab_grid/BUILD.gn index 394eab68..08d7f5c 100644 --- a/ios/chrome/browser/ui/tab_switcher/tab_grid/BUILD.gn +++ b/ios/chrome/browser/ui/tab_switcher/tab_grid/BUILD.gn
@@ -65,6 +65,7 @@ "//ios/chrome/browser/tabs_search", "//ios/chrome/browser/tabs_search:tabs_search_factory", "//ios/chrome/browser/ui/bookmarks", + "//ios/chrome/browser/ui/bookmarks:utils", "//ios/chrome/browser/ui/bookmarks/editor", "//ios/chrome/browser/ui/bring_android_tabs", "//ios/chrome/browser/ui/commerce:price_card",
diff --git a/ios/chrome/browser/ui/tab_switcher/tab_grid/tab_context_menu/BUILD.gn b/ios/chrome/browser/ui/tab_switcher/tab_grid/tab_context_menu/BUILD.gn index 2bddb3f..5157009 100644 --- a/ios/chrome/browser/ui/tab_switcher/tab_grid/tab_context_menu/BUILD.gn +++ b/ios/chrome/browser/ui/tab_switcher/tab_grid/tab_context_menu/BUILD.gn
@@ -23,6 +23,7 @@ "//ios/chrome/browser/shared/model/browser_state", "//ios/chrome/browser/tabs", "//ios/chrome/browser/tabs:features", + "//ios/chrome/browser/ui/bookmarks:utils", "//ios/chrome/browser/ui/menu", "//ios/chrome/browser/ui/menu:tab_context_menu_delegate", "//ios/chrome/browser/ui/tab_switcher:tab_utils",
diff --git a/ios/chrome/browser/ui/tab_switcher/tab_grid/tab_context_menu/tab_context_menu_helper.mm b/ios/chrome/browser/ui/tab_switcher/tab_grid/tab_context_menu/tab_context_menu_helper.mm index 475d13b..78cb3ecf 100644 --- a/ios/chrome/browser/ui/tab_switcher/tab_grid/tab_context_menu/tab_context_menu_helper.mm +++ b/ios/chrome/browser/ui/tab_switcher/tab_grid/tab_context_menu/tab_context_menu_helper.mm
@@ -8,6 +8,7 @@ #import "components/bookmarks/browser/bookmark_model.h" #import "components/bookmarks/common/bookmark_pref_names.h" #import "components/prefs/pref_service.h" +#import "ios/chrome/browser/bookmarks/account_bookmark_model_factory.h" #import "ios/chrome/browser/bookmarks/local_or_syncable_bookmark_model_factory.h" #import "ios/chrome/browser/ntp/new_tab_page_util.h" #import "ios/chrome/browser/shared/model/browser/browser.h" @@ -16,6 +17,7 @@ #import "ios/chrome/browser/shared/model/browser_state/chrome_browser_state.h" #import "ios/chrome/browser/tabs/features.h" #import "ios/chrome/browser/tabs/tab_title_util.h" +#import "ios/chrome/browser/ui/bookmarks/bookmark_utils_ios.h" #import "ios/chrome/browser/ui/menu/action_factory.h" #import "ios/chrome/browser/ui/menu/tab_context_menu_delegate.h" #import "ios/chrome/browser/ui/tab_switcher/tab_grid/tab_context_menu/tab_cell.h" @@ -193,11 +195,14 @@ // Returns `YES` if the tab `item` is already bookmarked. - (BOOL)isTabItemBookmarked:(TabItem*)item { - bookmarks::BookmarkModel* bookmarkModel = + bookmarks::BookmarkModel* localOrSyncableBookmarkModel = ios::LocalOrSyncableBookmarkModelFactory::GetForBrowserState( _browserState); - return item && bookmarkModel && - bookmarkModel->GetMostRecentlyAddedUserNodeForURL(item.URL); + bookmarks::BookmarkModel* accountBookmarkModel = + ios::AccountBookmarkModelFactory::GetForBrowserState(_browserState); + return item && + bookmark_utils_ios::IsBookmarked( + item.URL, localOrSyncableBookmarkModel, accountBookmarkModel); } // Returns `YES` if the tab for the given `identifier` is pinned.
diff --git a/ios/chrome/browser/ui/tab_switcher/tab_grid/tab_grid_coordinator.mm b/ios/chrome/browser/ui/tab_switcher/tab_grid/tab_grid_coordinator.mm index 2a47aaf..341bc487 100644 --- a/ios/chrome/browser/ui/tab_switcher/tab_grid/tab_grid_coordinator.mm +++ b/ios/chrome/browser/ui/tab_switcher/tab_grid/tab_grid_coordinator.mm
@@ -14,6 +14,7 @@ #import "components/bookmarks/browser/bookmark_model.h" #import "components/search_engines/template_url_service.h" #import "components/strings/grit/components_strings.h" +#import "ios/chrome/browser/bookmarks/account_bookmark_model_factory.h" #import "ios/chrome/browser/bookmarks/local_or_syncable_bookmark_model_factory.h" #import "ios/chrome/browser/bring_android_tabs/bring_android_tabs_to_ios_service.h" #import "ios/chrome/browser/bring_android_tabs/bring_android_tabs_to_ios_service_factory.h" @@ -52,6 +53,7 @@ #import "ios/chrome/browser/synced_sessions/synced_sessions_util.h" #import "ios/chrome/browser/tabs/features.h" #import "ios/chrome/browser/tabs/inactive_tabs/features.h" +#import "ios/chrome/browser/ui/bookmarks/bookmark_utils_ios.h" #import "ios/chrome/browser/ui/bookmarks/bookmarks_coordinator.h" #import "ios/chrome/browser/ui/bring_android_tabs/bring_android_tabs_prompt_coordinator.h" #import "ios/chrome/browser/ui/bring_android_tabs/tab_list_from_android_coordinator.h" @@ -1321,13 +1323,14 @@ } - (void)bookmarkURL:(const GURL&)URL title:(NSString*)title { - bookmarks::BookmarkModel* bookmarkModel = + bookmarks::BookmarkModel* localOrSyncableBookmarkModel = ios::LocalOrSyncableBookmarkModelFactory::GetForBrowserState( self.regularBrowser->GetBrowserState()); - bool currentlyBookmarked = - bookmarkModel && bookmarkModel->GetMostRecentlyAddedUserNodeForURL(URL); - - if (currentlyBookmarked) { + bookmarks::BookmarkModel* accountBookmarkModel = + ios::AccountBookmarkModelFactory::GetForBrowserState( + self.regularBrowser->GetBrowserState()); + if (bookmark_utils_ios::IsBookmarked(URL, localOrSyncableBookmarkModel, + accountBookmarkModel)) { [self editBookmarkWithURL:URL]; } else { base::RecordAction(base::UserMetricsAction(
diff --git a/ios/chrome/test/earl_grey/chrome_matchers.h b/ios/chrome/test/earl_grey/chrome_matchers.h index fb18f32056..1ad356c1d 100644 --- a/ios/chrome/test/earl_grey/chrome_matchers.h +++ b/ios/chrome/test/earl_grey/chrome_matchers.h
@@ -581,6 +581,9 @@ // Returns a matcher for safety check table view. id<GREYMatcher> SafetyCheckTableViewMatcher(); +// Returns a matcher for action in an AlertCoordinator. +id<GREYMatcher> AlertAction(NSString* title); + #pragma mark - Promo style view controller // Returns matcher for the primary action button.
diff --git a/ios/chrome/test/earl_grey/chrome_matchers.mm b/ios/chrome/test/earl_grey/chrome_matchers.mm index 440caaa..a65dcbeb 100644 --- a/ios/chrome/test/earl_grey/chrome_matchers.mm +++ b/ios/chrome/test/earl_grey/chrome_matchers.mm
@@ -721,6 +721,12 @@ return [ChromeMatchersAppInterface safetyCheckTableViewMatcher]; } +id<GREYMatcher> AlertAction(NSString* title) { + return grey_allOf( + grey_accessibilityID([title stringByAppendingString:@"AlertAction"]), + grey_interactable(), nil); +} + #pragma mark - Overflow Menu Destinations id<GREYMatcher> BookmarksDestinationButton() {
diff --git a/ios/google_internal/frameworks/ChromeInternal.framework.dSYM.ios.zip.sha1 b/ios/google_internal/frameworks/ChromeInternal.framework.dSYM.ios.zip.sha1 index f21904f..2175acae 100644 --- a/ios/google_internal/frameworks/ChromeInternal.framework.dSYM.ios.zip.sha1 +++ b/ios/google_internal/frameworks/ChromeInternal.framework.dSYM.ios.zip.sha1
@@ -1 +1 @@ -b27e8e03606273d0119a638c2d67e0cba2300475 \ No newline at end of file +94dcce9630b62058a4f0d6395931264adab533c2 \ No newline at end of file
diff --git a/ios/google_internal/frameworks/ChromeSSOInternal.framework.dSYM.ios.zip.sha1 b/ios/google_internal/frameworks/ChromeSSOInternal.framework.dSYM.ios.zip.sha1 index 8a99d25..fc4683c 100644 --- a/ios/google_internal/frameworks/ChromeSSOInternal.framework.dSYM.ios.zip.sha1 +++ b/ios/google_internal/frameworks/ChromeSSOInternal.framework.dSYM.ios.zip.sha1
@@ -1 +1 @@ -e48042baa084d84b8e9840dd69dffedec6441bd1 \ No newline at end of file +da49d5abf1169045367ab8769fd69d1771944445 \ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.ios.zip.sha1 b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.ios.zip.sha1 index 6c75670..9a99b3cb 100644 --- a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.ios.zip.sha1 +++ b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.ios.zip.sha1
@@ -1 +1 @@ -38cb7cadea86b7b98b05ad8e47a6ecd5ebede04a \ No newline at end of file +8124d6432cfce3b9a7fbe8dabe9d74ac19bd39b2 \ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.iossimulator.zip.sha1 b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.iossimulator.zip.sha1 index 150459d..c8d0ffe 100644 --- a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.iossimulator.zip.sha1 +++ b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.iossimulator.zip.sha1
@@ -1 +1 @@ -3b23c9d1d1e937b61344d86f0ae0a39a71c8267c \ No newline at end of file +ca4b84c8cfc9eae626b869dacd4947ee5cbe86d3 \ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.ios.zip.sha1 b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.ios.zip.sha1 index a2c54232..ffb6f14 100644 --- a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.ios.zip.sha1 +++ b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.ios.zip.sha1
@@ -1 +1 @@ -4577ae90643aec98f83e53097c04c450e39223fb \ No newline at end of file +0043de7ef8767ac65f9f6f486130b82413dd64a5 \ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.iossimulator.zip.sha1 b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.iossimulator.zip.sha1 index 5c1ac6f7..36fd489 100644 --- a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.iossimulator.zip.sha1 +++ b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.iossimulator.zip.sha1
@@ -1 +1 @@ -71d01f62bd03eca8ce15b7996303e2e96dbb6c35 \ No newline at end of file +0ddac668e0d258847a83aa611928d05d1beac469 \ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_test_internal_dynamic_framework.ios.zip.sha1 b/ios/google_internal/frameworks/chrome_test_internal_dynamic_framework.ios.zip.sha1 index 0b89670..bf88844b5 100644 --- a/ios/google_internal/frameworks/chrome_test_internal_dynamic_framework.ios.zip.sha1 +++ b/ios/google_internal/frameworks/chrome_test_internal_dynamic_framework.ios.zip.sha1
@@ -1 +1 @@ -5bd46d3c5be87ef68d192ab3aac9c05a92e9242f \ No newline at end of file +752ecd0fa2f6b91fd0a5b92cc52acab0e0b0266f \ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_test_internal_dynamic_framework.iossimulator.zip.sha1 b/ios/google_internal/frameworks/chrome_test_internal_dynamic_framework.iossimulator.zip.sha1 index bad13e7..0c70a4b 100644 --- a/ios/google_internal/frameworks/chrome_test_internal_dynamic_framework.iossimulator.zip.sha1 +++ b/ios/google_internal/frameworks/chrome_test_internal_dynamic_framework.iossimulator.zip.sha1
@@ -1 +1 @@ -5fcd68ddd657e51db52036cabeb4439cb2affff1 \ No newline at end of file +2c6309d578d6d504654a6d4d341a6374cf8b3878 \ No newline at end of file
diff --git a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.ios.zip.sha1 b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.ios.zip.sha1 index 08b5a62e..882bcf4c 100644 --- a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.ios.zip.sha1 +++ b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.ios.zip.sha1
@@ -1 +1 @@ -0a538e7f0aa55706df3202e62bdf95b67b9ddd01 \ No newline at end of file +259736712c02131a7c1d651cca2bf6394515c9c9 \ No newline at end of file
diff --git a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.iossimulator.zip.sha1 b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.iossimulator.zip.sha1 index 9ec75d4..0a73c9e 100644 --- a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.iossimulator.zip.sha1 +++ b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.iossimulator.zip.sha1
@@ -1 +1 @@ -abd23a831d7ccf3a47ce9b288ac60dec2724f261 \ No newline at end of file +81b0c8ba5a660273ac0743a2507fa5c0ae81b51e \ No newline at end of file
diff --git a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.ios.zip.sha1 b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.ios.zip.sha1 index 45b2db2..f8955c3c 100644 --- a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.ios.zip.sha1 +++ b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.ios.zip.sha1
@@ -1 +1 @@ -8ed96511f0b1e6e302d86d2793529fce211b57ab \ No newline at end of file +b75b845ef3b324bb6374ac7668499b242424f801 \ No newline at end of file
diff --git a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.iossimulator.zip.sha1 b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.iossimulator.zip.sha1 index 0fd6e06..764d961 100644 --- a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.iossimulator.zip.sha1 +++ b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.iossimulator.zip.sha1
@@ -1 +1 @@ -2dc3e754bee806b1a584eae4629903d75d4c9460 \ No newline at end of file +1bdf3507bc9c5f1a9dc5695a3a814c6763a0d2d0 \ No newline at end of file
diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc index 2c6482f..6000ffc 100644 --- a/media/base/media_switches.cc +++ b/media/base/media_switches.cc
@@ -315,17 +315,6 @@ "FFmpegDecodeOpaqueVP8", base::FEATURE_ENABLED_BY_DEFAULT); -// Enable an updated dialog UI for the getDisplayMedia picker dialog under the -// preferCurrentTab constraint. -BASE_FEATURE(kShareThisTabDialog, - "ShareThisTabDialog", - base::FEATURE_DISABLED_BY_DEFAULT); - -// The length of the initial delay during which the "Allow"-button is disabled -// in the share-this-tab dialog. -const base::FeatureParam<int> kShareThisTabDialogActivationDelayMs{ - &kShareThisTabDialog, "activation_delay_ms", 500}; - // Only used for disabling overlay fullscreen (aka SurfaceView) in Clank. BASE_FEATURE(kOverlayFullscreenVideo, "overlay-fullscreen-video",
diff --git a/media/base/media_switches.h b/media/base/media_switches.h index 0820fea..ecf3c6d 100644 --- a/media/base/media_switches.h +++ b/media/base/media_switches.h
@@ -257,9 +257,6 @@ MEDIA_EXPORT BASE_DECLARE_FEATURE(kUseMultiPlaneFormatForSoftwareVideo); MEDIA_EXPORT BASE_DECLARE_FEATURE(kMultiPlaneSoftwareVideoSharedImages); MEDIA_EXPORT BASE_DECLARE_FEATURE(kMultiPlaneVideoCaptureSharedImages); -MEDIA_EXPORT BASE_DECLARE_FEATURE(kShareThisTabDialog); -MEDIA_EXPORT extern const base::FeatureParam<int> - kShareThisTabDialogActivationDelayMs; MEDIA_EXPORT BASE_DECLARE_FEATURE(kOpenscreenCastStreamingSession); MEDIA_EXPORT BASE_DECLARE_FEATURE(kOpenscreenVideoBitrateFactorInFrameDrops); MEDIA_EXPORT BASE_DECLARE_FEATURE(kOverlayFullscreenVideo);
diff --git a/media/video/av1_video_encoder.cc b/media/video/av1_video_encoder.cc index e9130ff..f3a1b56f 100644 --- a/media/video/av1_video_encoder.cc +++ b/media/video/av1_video_encoder.cc
@@ -107,6 +107,7 @@ svc_params = {}; svc_params.framerate_factor[0] = 1; svc_params.number_spatial_layers = 1; + svc_params.number_temporal_layers = 1; if (opts.scalability_mode.has_value()) { switch (opts.scalability_mode.value()) { case SVCScalabilityMode::kL1T1:
diff --git a/media/video/software_video_encoder_test.cc b/media/video/software_video_encoder_test.cc index 7dff62bc..b0c3573 100644 --- a/media/video/software_video_encoder_test.cc +++ b/media/video/software_video_encoder_test.cc
@@ -695,6 +695,63 @@ } } +TEST_P(SVCVideoEncoderTest, ChangeLayers) { + VideoEncoder::Options options; + options.frame_size = gfx::Size(640, 480); + options.bitrate = Bitrate::ConstantBitrate(1000000u); // 1Mbps + options.framerate = 25; + options.scalability_mode = GetParam().scalability_mode; + std::vector<scoped_refptr<VideoFrame>> frames_to_encode; + + std::vector<VideoEncoderOutput> chunks; + size_t total_frames_count = 80; + + // Encoder all frames with 3 temporal layers and put all outputs in |chunks| + auto frame_duration = base::Seconds(1.0 / options.framerate.value()); + + VideoEncoder::OutputCB encoder_output_cb = base::BindLambdaForTesting( + [&](VideoEncoderOutput output, + absl::optional<VideoEncoder::CodecDescription> desc) { + chunks.push_back(std::move(output)); + }); + + encoder_->Initialize(profile_, options, /*info_cb=*/base::DoNothing(), + std::move(encoder_output_cb), + ValidatingStatusCB(/* quit_run_loop_on_call */ true)); + RunUntilQuit(); + + uint32_t color = 0x964050; + for (auto frame_index = 0u; frame_index < total_frames_count; frame_index++) { + auto timestamp = frame_index * frame_duration; + + const bool reconfigure = (frame_index == total_frames_count / 2); + if (reconfigure) { + encoder_->Flush(ValidatingStatusCB(/* quit_run_loop_on_call */ true)); + RunUntilQuit(); + + // Ask encoder to change SVC mode, empty output callback + // means the encoder should keep the old one. + options.scalability_mode = SVCScalabilityMode::kL1T1; + encoder_->ChangeOptions( + options, VideoEncoder::OutputCB(), + ValidatingStatusCB(/* quit_run_loop_on_call */ true)); + RunUntilQuit(); + } + + auto frame = + CreateFrame(options.frame_size, pixel_format_, timestamp, color); + color = (color << 1) + frame_index; + frames_to_encode.push_back(frame); + encoder_->Encode(frame, VideoEncoder::EncodeOptions(false), + ValidatingStatusCB(/* quit_run_loop_on_call */ true)); + RunUntilQuit(); + } + + encoder_->Flush(ValidatingStatusCB(/* quit_run_loop_on_call */ true)); + RunUntilQuit(); + EXPECT_EQ(chunks.size(), total_frames_count); +} + TEST_P(H264VideoEncoderTest, ReconfigureWithResize) { VideoEncoder::Options options; gfx::Size size1(320, 200), size2(400, 240);
diff --git a/mojo/public/cpp/bindings/direct_receiver.cc b/mojo/public/cpp/bindings/direct_receiver.cc index 50a4392c..84f2c3a 100644 --- a/mojo/public/cpp/bindings/direct_receiver.cc +++ b/mojo/public/cpp/bindings/direct_receiver.cc
@@ -24,7 +24,7 @@ ThreadLocalNode::ThreadLocalNode(base::PassKey<ThreadLocalNode>) : task_runner_(base::SingleThreadTaskRunner::GetCurrentDefault()) { - CHECK(core::IsMojoIpczEnabled()); + CHECK(IsDirectReceiverSupported()); CHECK(!g_thread_local_node); g_thread_local_node = this; @@ -212,3 +212,11 @@ } } // namespace mojo::internal + +namespace mojo { + +bool IsDirectReceiverSupported() { + return core::IsMojoIpczEnabled(); +} + +} // namespace mojo
diff --git a/mojo/public/cpp/bindings/direct_receiver.h b/mojo/public/cpp/bindings/direct_receiver.h index da4444a..466c3562 100644 --- a/mojo/public/cpp/bindings/direct_receiver.h +++ b/mojo/public/cpp/bindings/direct_receiver.h
@@ -27,6 +27,10 @@ class WidgetInputHandlerImpl; } +namespace cc::mojo_embedder { +class AsyncLayerTreeFrameSink; +} + namespace mojo { namespace internal { @@ -99,6 +103,7 @@ // Update this list and get a mojo/OWNERS approval in order to gain access to // DirectReceiver construction. + friend class cc::mojo_embedder::AsyncLayerTreeFrameSink; friend class mojo::test::direct_receiver_unittest::ServiceImpl; friend class blink::WidgetInputHandlerImpl; }; @@ -155,6 +160,9 @@ Receiver<T> receiver_; }; +// Indicates whether DirectReceiver can be supported in the calling process. +COMPONENT_EXPORT(MOJO_CPP_BINDINGS) bool IsDirectReceiverSupported(); + } // namespace mojo #endif // MOJO_PUBLIC_CPP_BINDINGS_DIRECT_RECEIVER_H_
diff --git a/mojo/public/tools/bindings/generators/mojom_mojolpm_generator.py b/mojo/public/tools/bindings/generators/mojom_mojolpm_generator.py index d0b7b25..3689bb9 100644 --- a/mojo/public/tools/bindings/generators/mojom_mojolpm_generator.py +++ b/mojo/public/tools/bindings/generators/mojom_mojolpm_generator.py
@@ -24,6 +24,17 @@ mojom.INT64: "int64", mojom.UINT64: "uint64", mojom.DOUBLE: "double", + mojom.NULLABLE_BOOL: "bool", + mojom.NULLABLE_INT8: "int32", + mojom.NULLABLE_UINT8: "uint32", + mojom.NULLABLE_INT16: "int32", + mojom.NULLABLE_UINT16: "uint32", + mojom.NULLABLE_INT32: "int32", + mojom.NULLABLE_UINT32: "uint32", + mojom.NULLABLE_FLOAT: "float", + mojom.NULLABLE_INT64: "int64", + mojom.NULLABLE_UINT64: "uint64", + mojom.NULLABLE_DOUBLE: "double", } _kind_to_cpp_proto_type = { @@ -38,6 +49,17 @@ mojom.INT64: "::google::protobuf::int64", mojom.UINT64: "::google::protobuf::int64", mojom.DOUBLE: "double", + mojom.NULLABLE_BOOL: "bool", + mojom.NULLABLE_INT8: "::google::protobuf::int32", + mojom.NULLABLE_UINT8: "::google::protobuf::uint32", + mojom.NULLABLE_INT16: "::google::protobuf::int32", + mojom.NULLABLE_UINT16: "::google::protobuf::uint32", + mojom.NULLABLE_INT32: "::google::protobuf::int32", + mojom.NULLABLE_UINT32: "::google::protobuf::uint32", + mojom.NULLABLE_FLOAT: "float", + mojom.NULLABLE_INT64: "::google::protobuf::int64", + mojom.NULLABLE_UINT64: "::google::protobuf::int64", + mojom.NULLABLE_DOUBLE: "double", }
diff --git a/net/base/features.cc b/net/base/features.cc index c1f7597..34c12754 100644 --- a/net/base/features.cc +++ b/net/base/features.cc
@@ -82,6 +82,11 @@ "EncryptedClientHelloQuic", base::FEATURE_ENABLED_BY_DEFAULT); +// TODO(crbug.com/795089): Enable this feature. +BASE_FEATURE(kRSAKeyUsageForLocalAnchors, + "RSAKeyUsageForLocalAnchors", + base::FEATURE_DISABLED_BY_DEFAULT); + BASE_FEATURE(kNetworkQualityEstimator, "NetworkQualityEstimator", base::FEATURE_DISABLED_BY_DEFAULT);
diff --git a/net/base/features.h b/net/base/features.h index e29fc8e4..75e6be5 100644 --- a/net/base/features.h +++ b/net/base/features.h
@@ -105,6 +105,14 @@ // implemented. This flag is just a temporary mechanism for now. NET_EXPORT BASE_DECLARE_FEATURE(kEncryptedClientHelloQuic); +// Enables checking the X.509 keyUsage extension in TLS 1.2 for RSA server +// certificates that chain to a local trust anchor. +// +// Independent of the setting of this feature, keyUsage is always checked at TLS +// 1.3, for ECDSA certificates, and for all certificates that chain to a known +// root. +NET_EXPORT BASE_DECLARE_FEATURE(kRSAKeyUsageForLocalAnchors); + // Enables optimizing the network quality estimation algorithms in network // quality estimator (NQE). NET_EXPORT BASE_DECLARE_FEATURE(kNetworkQualityEstimator);
diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket_impl.cc index b78a35151..e732a5c 100644 --- a/net/socket/ssl_client_socket_impl.cc +++ b/net/socket/ssl_client_socket_impl.cc
@@ -1249,10 +1249,15 @@ } // Enforce keyUsage extension for RSA leaf certificates chaining up to known - // roots. - // TODO(crbug.com/795089): Enforce this unconditionally. + // roots unconditionally. Enforcement for local anchors is, for now, + // conditional on feature flags and external configuration. See + // https://crbug.com/795089. + bool rsa_key_usage_for_local_anchors = + context_->config().rsa_key_usage_for_local_anchors_override.value_or( + base::FeatureList::IsEnabled(features::kRSAKeyUsageForLocalAnchors)); SSL_set_enforce_rsa_key_usage( - ssl_.get(), server_cert_verify_result_.is_issued_by_known_root); + ssl_.get(), rsa_key_usage_for_local_anchors || + server_cert_verify_result_.is_issued_by_known_root); // If the connection was good, check HPKP and CT status simultaneously, // but prefer to treat the HPKP error as more serious, if there was one.
diff --git a/net/socket/ssl_client_socket_unittest.cc b/net/socket/ssl_client_socket_unittest.cc index d8d487c6..ea6431d3 100644 --- a/net/socket/ssl_client_socket_unittest.cc +++ b/net/socket/ssl_client_socket_unittest.cc
@@ -3847,37 +3847,50 @@ struct KeyUsageTest { EmbeddedTestServer::ServerCertificate server_cert; uint16_t cipher_suite; - bool known_root; - bool success; + bool match; }; class SSLClientSocketKeyUsageTest : public SSLClientSocketTest, - public ::testing::WithParamInterface<struct KeyUsageTest> {}; + public ::testing::WithParamInterface< + std::tuple<KeyUsageTest, + bool /*known_root*/, + bool /*rsa_key_usage_for_local_anchors_enabled*/, + bool /*override_feature*/>> {}; -const struct KeyUsageTest kKeyUsageTests[] = { - // Known Root: Success iff keyUsage allows the key exchange method - {EmbeddedTestServer::CERT_KEY_USAGE_RSA_ENCIPHERMENT, kSigningCipher, true, - false}, +const KeyUsageTest kKeyUsageTests[] = { + // keyUsage matches cipher suite. {EmbeddedTestServer::CERT_KEY_USAGE_RSA_DIGITAL_SIGNATURE, kSigningCipher, - true, true}, - {EmbeddedTestServer::CERT_KEY_USAGE_RSA_ENCIPHERMENT, kEncryptingCipher, - true, true}, - {EmbeddedTestServer::CERT_KEY_USAGE_RSA_DIGITAL_SIGNATURE, - kEncryptingCipher, true, false}, - // Unknown Root: Always succeeds - {EmbeddedTestServer::CERT_KEY_USAGE_RSA_ENCIPHERMENT, kSigningCipher, false, true}, - {EmbeddedTestServer::CERT_KEY_USAGE_RSA_DIGITAL_SIGNATURE, kSigningCipher, - false, true}, {EmbeddedTestServer::CERT_KEY_USAGE_RSA_ENCIPHERMENT, kEncryptingCipher, - false, true}, + true}, + // keyUsage does not match cipher suite. + {EmbeddedTestServer::CERT_KEY_USAGE_RSA_ENCIPHERMENT, kSigningCipher, + false}, {EmbeddedTestServer::CERT_KEY_USAGE_RSA_DIGITAL_SIGNATURE, - kEncryptingCipher, false, true}, + kEncryptingCipher, false}, }; -TEST_P(SSLClientSocketKeyUsageTest, RSAKeyUsageEnforcedForKnownRoot) { - const KeyUsageTest test = GetParam(); +TEST_P(SSLClientSocketKeyUsageTest, RSAKeyUsage) { + const auto& [test, known_root, rsa_key_usage_for_local_anchors_enabled, + override_feature] = GetParam(); + bool enable_feature; + if (override_feature) { + // Configure the feature in the opposite way that we intend, to test that + // the configuration overrides it. + enable_feature = !rsa_key_usage_for_local_anchors_enabled; + } else { + enable_feature = rsa_key_usage_for_local_anchors_enabled; + } + base::test::ScopedFeatureList scoped_feature_list; + if (enable_feature) { + scoped_feature_list.InitAndEnableFeature( + features::kRSAKeyUsageForLocalAnchors); + } else { + scoped_feature_list.InitAndDisableFeature( + features::kRSAKeyUsageForLocalAnchors); + } + SSLServerConfig server_config; server_config.version_max = SSL_PROTOCOL_VERSION_TLS1_2; server_config.cipher_suite_for_testing = test.cipher_suite; @@ -3885,9 +3898,16 @@ scoped_refptr<X509Certificate> server_cert = embedded_test_server()->GetCertificate(); + SSLContextConfig context_config; + if (override_feature) { + context_config.rsa_key_usage_for_local_anchors_override = + rsa_key_usage_for_local_anchors_enabled; + } + ssl_config_service_->UpdateSSLConfigAndNotify(context_config); + // Certificate is trusted. CertVerifyResult verify_result; - verify_result.is_issued_by_known_root = test.known_root; + verify_result.is_issued_by_known_root = known_root; verify_result.verified_cert = server_cert; verify_result.public_key_hashes = MakeHashValueVector(kGoodHashValueVectorInput); @@ -3899,7 +3919,7 @@ SSLInfo ssl_info; ASSERT_TRUE(sock_->GetSSLInfo(&ssl_info)); - if (test.success) { + if (test.match || (!known_root && !rsa_key_usage_for_local_anchors_enabled)) { EXPECT_THAT(rv, IsOk()); EXPECT_TRUE(sock_->IsConnected()); } else { @@ -3908,9 +3928,10 @@ } } -INSTANTIATE_TEST_SUITE_P(RSAKeyUsageInstantiation, - SSLClientSocketKeyUsageTest, - ValuesIn(kKeyUsageTests)); +INSTANTIATE_TEST_SUITE_P( + RSAKeyUsageInstantiation, + SSLClientSocketKeyUsageTest, + Combine(ValuesIn(kKeyUsageTests), Bool(), Bool(), Bool())); // Test that when CT is required (in this case, by the delegate), the // absence of CT information is a socket error.
diff --git a/net/spdy/spdy_session.cc b/net/spdy/spdy_session.cc index 8e66627..2054e97 100644 --- a/net/spdy/spdy_session.cc +++ b/net/spdy/spdy_session.cc
@@ -61,7 +61,6 @@ #include "net/spdy/spdy_stream.h" #include "net/ssl/ssl_cipher_suite_names.h" #include "net/ssl/ssl_connection_status_flags.h" -#include "net/third_party/quiche/src/quiche/quic/core/http/spdy_server_push_utils.h" #include "net/third_party/quiche/src/quiche/spdy/core/spdy_frame_builder.h" #include "net/third_party/quiche/src/quiche/spdy/core/spdy_protocol.h" #include "url/scheme_host_port.h" @@ -97,11 +96,6 @@ const int kDefaultConnectionAtRiskOfLossSeconds = 10; const int kHungIntervalSeconds = 10; -// Lifetime of unclaimed pushed stream, in seconds: after this period, a pushed -// stream is cancelled if still not claimed. -// TODO(https://crbug.com/1426477): Remove. -const int kPushedStreamLifetimeSeconds = 300; - // Default initial value for HTTP/2 SETTINGS. const uint32_t kDefaultInitialHeaderTableSize = 4096; const uint32_t kDefaultInitialEnablePush = 1; @@ -227,17 +221,6 @@ } } -// This method always returns false. TODO(https://crbug.com/1426477): Remove. -bool IsPushEnabled(const spdy::SettingsMap& initial_settings) { - const auto it = initial_settings.find(spdy::SETTINGS_ENABLE_PUSH); - - // Push is enabled by default. - if (it == initial_settings.end()) - return true; - - return it->second == 1; -} - void LogSpdyAcceptChForOriginHistogram(bool value) { base::UmaHistogramBoolean("Net.SpdySession.AcceptChForOrigin", value); } @@ -929,7 +912,7 @@ bool http2_end_stream_with_data_frame, bool enable_priority_update, TimeFunc time_func, - ServerPushDelegate* push_delegate, + ServerPushDelegate* /*push_delegate*/, NetworkQualityEstimator* network_quality_estimator, NetLog* net_log) : spdy_session_key_(spdy_session_key), @@ -937,7 +920,6 @@ transport_security_state_(transport_security_state), ssl_config_service_(ssl_config_service), stream_hi_water_mark_(kFirstStreamId), - push_delegate_(push_delegate), initial_settings_(initial_settings), enable_http2_settings_grease_(enable_http2_settings_grease), greased_http2_frame_(greased_http2_frame), @@ -965,7 +947,6 @@ enable_ping_based_connection_checking), is_http2_enabled_(is_http2_enabled), is_quic_enabled_(is_quic_enabled), - enable_push_(IsPushEnabled(initial_settings)), connection_at_risk_of_loss_time_( base::Seconds(kDefaultConnectionAtRiskOfLossSeconds)), hung_interval_(base::Seconds(kHungIntervalSeconds)), @@ -1987,204 +1968,9 @@ // wasting bandwidth. const RequestPriority request_priority = IDLE; - if (!enable_push_) { - RecordSpdyPushedStreamFateHistogram(SpdyPushedStreamFate::kPushDisabled); - EnqueueResetStreamFrame(stream_id, request_priority, - spdy::ERROR_CODE_REFUSED_STREAM, - "Push is disabled."); - return; - } - - if ((stream_id & 0x1) != 0) { - std::string description = base::StringPrintf( - "Received invalid pushed stream id %d (must be even) on stream id %d.", - stream_id, associated_stream_id); - LOG(WARNING) << description; - RecordSpdyPushedStreamFateHistogram( - SpdyPushedStreamFate::kPromisedStreamIdParityError); - CloseSessionOnError(ERR_HTTP2_PROTOCOL_ERROR, description); - return; - } - - if ((associated_stream_id & 0x1) != 1) { - std::string description = base::StringPrintf( - "Received pushed stream id %d on invalid stream id %d (must be odd).", - stream_id, associated_stream_id); - LOG(WARNING) << description; - RecordSpdyPushedStreamFateHistogram( - SpdyPushedStreamFate::kAssociatedStreamIdParityError); - CloseSessionOnError(ERR_HTTP2_PROTOCOL_ERROR, description); - return; - } - - if (stream_id <= last_accepted_push_stream_id_) { - std::string description = base::StringPrintf( - "Received pushed stream id %d must be larger than last accepted id %d.", - stream_id, last_accepted_push_stream_id_); - LOG(WARNING) << description; - RecordSpdyPushedStreamFateHistogram( - SpdyPushedStreamFate::kStreamIdOutOfOrder); - CloseSessionOnError(ERR_HTTP2_PROTOCOL_ERROR, description); - return; - } - - // |last_accepted_push_stream_id_| check above guarantees that this stream has - // not been activated yet. - DCHECK(!IsStreamActive(stream_id)); - - last_accepted_push_stream_id_ = stream_id; - - if (availability_state_ == STATE_GOING_AWAY) { - RecordSpdyPushedStreamFateHistogram(SpdyPushedStreamFate::kGoingAway); - EnqueueResetStreamFrame(stream_id, request_priority, - spdy::ERROR_CODE_REFUSED_STREAM, - "Push stream request received while going away."); - return; - } - - streams_pushed_count_++; - - // Verify that the response had a URL for us. - GURL gurl(quic::SpdyServerPushUtils::GetPromisedUrlFromHeaders(headers)); - if (!gurl.is_valid()) { - RecordSpdyPushedStreamFateHistogram(SpdyPushedStreamFate::kInvalidUrl); - EnqueueResetStreamFrame(stream_id, request_priority, - spdy::ERROR_CODE_REFUSED_STREAM, - "Invalid pushed request headers."); - return; - } - - // GetPromisedUrlFromHeaders() guarantees that the scheme is http or https. - DCHECK(gurl.SchemeIs(url::kHttpScheme) || gurl.SchemeIs(url::kHttpsScheme)); - - // "Promised requests MUST be cacheable and MUST be safe [...]" (RFC7540 - // Section 8.2). Only cacheable safe request methods are GET and HEAD. - // GetPromisedUrlFromHeaders() guarantees that the method is GET or HEAD. - spdy::Http2HeaderBlock::const_iterator it = - headers.find(spdy::kHttp2MethodHeader); - DCHECK(it != headers.end() && (it->second == "GET" || it->second == "HEAD")); - - // Verify we have a valid stream association. - auto associated_it = active_streams_.find(associated_stream_id); - if (associated_it == active_streams_.end()) { - RecordSpdyPushedStreamFateHistogram( - SpdyPushedStreamFate::kInactiveAssociatedStream); - EnqueueResetStreamFrame(stream_id, request_priority, - spdy::ERROR_CODE_STREAM_CLOSED, - "Inactive associated stream."); - return; - } - - // Cross-origin push validation. - GURL associated_url(associated_it->second->url()); - if (associated_url.DeprecatedGetOriginAsURL() != - gurl.DeprecatedGetOriginAsURL()) { - if (!gurl.SchemeIs(url::kHttpsScheme)) { - RecordSpdyPushedStreamFateHistogram( - SpdyPushedStreamFate::kNonHttpsPushedScheme); - EnqueueResetStreamFrame(stream_id, request_priority, - spdy::ERROR_CODE_REFUSED_STREAM, - "Pushed URL must have https scheme."); - return; - } - if (!associated_url.SchemeIs(url::kHttpsScheme)) { - RecordSpdyPushedStreamFateHistogram( - SpdyPushedStreamFate::kNonHttpsAssociatedScheme); - EnqueueResetStreamFrame(stream_id, request_priority, - spdy::ERROR_CODE_REFUSED_STREAM, - "Associated URL must have https scheme."); - return; - } - SSLInfo ssl_info; - CHECK(GetSSLInfo(&ssl_info)); - if (!CanPool(transport_security_state_, ssl_info, *ssl_config_service_, - associated_url.host(), gurl.host(), - spdy_session_key_.network_anonymization_key())) { - RecordSpdyPushedStreamFateHistogram( - SpdyPushedStreamFate::kCertificateMismatch); - EnqueueResetStreamFrame(stream_id, request_priority, - spdy::ERROR_CODE_REFUSED_STREAM, - "Certificate does not match pushed URL."); - return; - } - } - - // Insertion fails if there already is a pushed stream with the same path. - if (!pool_->push_promise_index()->RegisterUnclaimedPushedStream( - gurl, stream_id, this)) { - RecordSpdyPushedStreamFateHistogram(SpdyPushedStreamFate::kDuplicateUrl); - EnqueueResetStreamFrame(stream_id, request_priority, - spdy::ERROR_CODE_REFUSED_STREAM, - "Duplicate pushed stream with url: " + gurl.spec()); - return; - } - - base::SingleThreadTaskRunner::GetCurrentDefault()->PostDelayedTask( - FROM_HERE, - base::BindOnce(&SpdySession::CancelPushedStreamIfUnclaimed, GetWeakPtr(), - stream_id), - base::Seconds(kPushedStreamLifetimeSeconds)); - - net::NetworkTrafficAnnotationTag traffic_annotation = - net::DefineNetworkTrafficAnnotation("spdy_push_stream", R"( - semantics { - sender: "Spdy Session" - description: - "When a web server needs to push a response to a client, an " - "incoming stream is created to reply the client with pushed " - "message instead of a message from the network." - trigger: - "A request by a server to push a response to the client." - data: "None." - destination: OTHER - destination_other: - "This stream is not used for sending data." - } - policy { - cookies_allowed: NO - setting: "This feature cannot be disabled." - policy_exception_justification: "Essential for navigation." - } - )"); - - auto stream = std::make_unique<SpdyStream>( - SPDY_PUSH_STREAM, GetWeakPtr(), gurl, request_priority, - stream_initial_send_window_size_, stream_max_recv_window_size_, net_log_, - traffic_annotation, false /* detect_broken_connection */); - stream->set_stream_id(stream_id); - - // Convert RequestPriority to a spdy::SpdyPriority to send in a PRIORITY - // frame. - spdy::SpdyPriority spdy_priority = - ConvertRequestPriorityToSpdyPriority(request_priority); - spdy::SpdyStreamId dependency_id = 0; - int weight = 0; - bool exclusive = false; - priority_dependency_state_.OnStreamCreation( - stream_id, spdy_priority, &dependency_id, &weight, &exclusive); - EnqueuePriorityFrame(stream_id, dependency_id, weight, exclusive); - - // PUSH_PROMISE arrives on associated stream. - associated_it->second->AddRawReceivedBytes(last_compressed_frame_len_); - last_compressed_frame_len_ = 0; - - InsertActivatedStream(std::move(stream)); - - auto active_it = active_streams_.find(stream_id); - DCHECK(active_it != active_streams_.end()); - - // Notify the push_delegate that a push promise has been received. - if (push_delegate_) { - push_delegate_->OnPush(std::make_unique<SpdyServerPushHelper>( - weak_factory_.GetWeakPtr(), gurl), - net_log_); - } - - active_it->second->OnPushPromiseHeadersReceived(std::move(headers), - std::move(gurl)); - DCHECK(active_it->second->IsReservedRemote()); - num_pushed_streams_++; - return; + RecordSpdyPushedStreamFateHistogram(SpdyPushedStreamFate::kPushDisabled); + EnqueueResetStreamFrame(stream_id, request_priority, + spdy::ERROR_CODE_REFUSED_STREAM, "Push is disabled."); } void SpdySession::CloseActiveStreamIterator(ActiveStreamMap::iterator it, @@ -3139,27 +2925,6 @@ } } -void SpdySession::CancelPushedStreamIfUnclaimed(spdy::SpdyStreamId stream_id) { - auto active_it = active_streams_.find(stream_id); - if (active_it == active_streams_.end()) - return; - - // Make sure to cancel the correct stream. It is possible that the pushed - // stream |stream_id| is already claimed, and another stream has been pushed - // for the same URL. - const GURL& url = active_it->second->url(); - if (pool_->push_promise_index()->FindStream(url, this) != stream_id) { - return; - } - - RecordSpdyPushedStreamFateHistogram(SpdyPushedStreamFate::kTimeout); - - LogAbandonedActiveStream(active_it, ERR_TIMED_OUT); - // CloseActiveStreamIterator() will remove the stream from - // |pool_->push_promise_index()|. - ResetStreamIterator(active_it, ERR_TIMED_OUT, "Stream not claimed."); -} - void SpdySession::OnError( http2::Http2DecoderAdapter::SpdyFramerError spdy_framer_error) { CHECK(in_io_loop_);
diff --git a/net/spdy/spdy_session.h b/net/spdy/spdy_session.h index 887ef13..86590e7 100644 --- a/net/spdy/spdy_session.h +++ b/net/spdy/spdy_session.h
@@ -937,13 +937,6 @@ void CompleteStreamRequest( const base::WeakPtr<SpdyStreamRequest>& pending_request); - // Cancel pushed stream with |stream_id|, if still unclaimed. Identifying a - // pushed stream by GURL instead of stream ID could result in incorrect - // behavior if a pushed stream was claimed but later another stream was pushed - // for the same GURL. - // TODO(https://crbug.com/1426477): Remove. - void CancelPushedStreamIfUnclaimed(spdy::SpdyStreamId stream_id); - // BufferedSpdyFramerVisitorInterface: void OnError( http2::Http2DecoderAdapter::SpdyFramerError spdy_framer_error) override; @@ -1142,11 +1135,6 @@ // them? ActiveStreamMap active_streams_; - // Not owned. |push_delegate_| outlives the session and handles server pushes - // received by session. - // TODO(https://crbug.com/1426477): Remove. - raw_ptr<ServerPushDelegate> push_delegate_; - // Set of all created streams but that have not yet sent any frames. // // |created_streams_| owns all its SpdyStream objects. @@ -1358,11 +1346,6 @@ const bool is_http2_enabled_; const bool is_quic_enabled_; - // TODO(https://crbug.com/1426477): Remove. - // If true, accept pushed streams from server. - // If false, reset pushed streams immediately. - const bool enable_push_; - // True if the server has advertised WebSocket support via // spdy::SETTINGS_ENABLE_CONNECT_PROTOCOL, see // https://tools.ietf.org/html/draft-ietf-httpbis-h2-websockets-00.
diff --git a/net/ssl/ssl_config_service.cc b/net/ssl/ssl_config_service.cc index 0bb171c0..ef027606 100644 --- a/net/ssl/ssl_config_service.cc +++ b/net/ssl/ssl_config_service.cc
@@ -9,6 +9,7 @@ #include "base/feature_list.h" #include "base/observer_list.h" #include "net/base/features.h" +#include "net/ssl/ssl_config_service_defaults.h" namespace net { @@ -20,10 +21,12 @@ const net::SSLContextConfig& config2) { return std::tie(config1.version_min, config1.version_max, config1.disabled_cipher_suites, config1.post_quantum_enabled, - config1.ech_enabled, config1.insecure_hash_override) == + config1.ech_enabled, config1.insecure_hash_override, + config1.rsa_key_usage_for_local_anchors_override) == std::tie(config2.version_min, config2.version_max, config2.disabled_cipher_suites, config2.post_quantum_enabled, - config2.ech_enabled, config2.insecure_hash_override); + config2.ech_enabled, config2.insecure_hash_override, + config2.rsa_key_usage_for_local_anchors_override); } } // namespace
diff --git a/net/ssl/ssl_config_service.h b/net/ssl/ssl_config_service.h index e7c229d..bcfb325 100644 --- a/net/ssl/ssl_config_service.h +++ b/net/ssl/ssl_config_service.h
@@ -57,6 +57,17 @@ // handshakes. If `absl::nullopt`, this is determined by feature flags. absl::optional<bool> insecure_hash_override; + // If specified, controls whether the X.509 keyUsage extension is checked in + // TLS 1.2 for RSA certificates that chain to a local trust anchor. If + // `absl::nullopt`, this is determined by feature flags. + // + // Independent of the setting of this value, keyUsage is always checked at TLS + // 1.3, for ECDSA certificates, and for all certificates that chain to a known + // root. + // + // TODO(crbug.com/795089): Enable this unconditionally. + absl::optional<bool> rsa_key_usage_for_local_anchors_override; + // ADDING MORE HERE? Don't forget to update `SSLContextConfigsAreEqual`. };
diff --git a/net/test/embedded_test_server/embedded_test_server.cc b/net/test/embedded_test_server/embedded_test_server.cc index c7cfa008..8a1f7c5 100644 --- a/net/test/embedded_test_server/embedded_test_server.cc +++ b/net/test/embedded_test_server/embedded_test_server.cc
@@ -460,6 +460,10 @@ leaf->SetSubjectAltNames(cert_config_.dns_names, cert_config_.ip_addresses); } + if (!cert_config_.key_usages.empty()) { + leaf->SetKeyUsages(cert_config_.key_usages); + } + const std::string leaf_serial_text = base::NumberToString(leaf->GetSerialNumber()); const std::string intermediate_serial_text =
diff --git a/net/test/embedded_test_server/embedded_test_server.h b/net/test/embedded_test_server/embedded_test_server.h index d18a335..aab5739 100644 --- a/net/test/embedded_test_server/embedded_test_server.h +++ b/net/test/embedded_test_server/embedded_test_server.h
@@ -25,6 +25,7 @@ #include "net/base/host_port_pair.h" #include "net/base/ip_endpoint.h" #include "net/cert/ocsp_revocation_status.h" +#include "net/cert/pki/parse_certificate.h" #include "net/cert/test_root_certs.h" #include "net/cert/x509_certificate.h" #include "net/socket/ssl_server_socket.h" @@ -310,6 +311,9 @@ // A list of IP addresses to include in the leaf subjectAltName extension. std::vector<net::IPAddress> ip_addresses; + + // A list of key usages to include in the leaf keyUsage extension. + std::vector<KeyUsageBit> key_usages; }; typedef base::RepeatingCallback<std::unique_ptr<HttpResponse>(
diff --git a/services/device/geolocation/network_location_provider_unittest.cc b/services/device/geolocation/network_location_provider_unittest.cc index 23c50a5..89416e88 100644 --- a/services/device/geolocation/network_location_provider_unittest.cc +++ b/services/device/geolocation/network_location_provider_unittest.cc
@@ -193,7 +193,6 @@ ap.radio_signal_strength = ap_count - i; ap.channel = IndexToChannel(i); ap.signal_to_noise = i + 42; - ap.ssid = u"Some nice+network|name\\"; data.access_point_data.insert(ap); } return data; @@ -206,7 +205,6 @@ ap.radio_signal_strength = ap_count - i; ap.channel = IndexToChannel(i); ap.signal_to_noise = i + 42; - ap.ssid = u"Some nice+network|name\\"; data.access_point_data.insert(ap); } return data;
diff --git a/services/device/geolocation/position_cache_test_util.cc b/services/device/geolocation/position_cache_test_util.cc index 8e8458e..2fb5167 100644 --- a/services/device/geolocation/position_cache_test_util.cc +++ b/services/device/geolocation/position_cache_test_util.cc
@@ -22,8 +22,6 @@ base::ASCIIToUTF16(base::Uuid::GenerateRandomV4().AsLowercaseString()); single_access_point.radio_signal_strength = 4; single_access_point.signal_to_noise = 5; - single_access_point.ssid = - base::ASCIIToUTF16(base::Uuid::GenerateRandomV4().AsLowercaseString()); wifi_data.access_point_data.insert(single_access_point); } return wifi_data;
diff --git a/services/device/geolocation/wifi_data.h b/services/device/geolocation/wifi_data.h index e94746a2..75852dc 100644 --- a/services/device/geolocation/wifi_data.h +++ b/services/device/geolocation/wifi_data.h
@@ -21,7 +21,6 @@ int radio_signal_strength; // Measured in dBm int channel; int signal_to_noise; // Ratio in dB - std::u16string ssid; // Network identifier }; // This is to allow AccessPointData to be used in std::set. We order
diff --git a/services/device/geolocation/wifi_data_provider_chromeos.cc b/services/device/geolocation/wifi_data_provider_chromeos.cc index 7b4cbf6..292ec4a 100644 --- a/services/device/geolocation/wifi_data_provider_chromeos.cc +++ b/services/device/geolocation/wifi_data_provider_chromeos.cc
@@ -81,7 +81,6 @@ ap_data.radio_signal_strength = access_point.signal_strength; ap_data.channel = access_point.channel; ap_data.signal_to_noise = access_point.signal_to_noise; - ap_data.ssid = base::UTF8ToUTF16(access_point.ssid); wifi_data.access_point_data.insert(ap_data); } return wifi_data;
diff --git a/services/device/geolocation/wifi_data_provider_common_unittest.cc b/services/device/geolocation/wifi_data_provider_common_unittest.cc index 5162f7a0..10bb90f 100644 --- a/services/device/geolocation/wifi_data_provider_common_unittest.cc +++ b/services/device/geolocation/wifi_data_provider_common_unittest.cc
@@ -9,7 +9,6 @@ #include "base/functional/callback_helpers.h" #include "base/memory/raw_ptr.h" #include "base/run_loop.h" -#include "base/strings/utf_string_conversions.h" #include "base/task/single_thread_task_runner.h" #include "base/test/task_environment.h" #include "services/device/geolocation/wifi_data_provider_handle.h" @@ -208,7 +207,6 @@ single_access_point.mac_address = u"00:11:22:33:44:55"; single_access_point.radio_signal_strength = 4; single_access_point.signal_to_noise = 5; - single_access_point.ssid = u"foossid"; WifiData::AccessPointDataSet data_out({single_access_point}); @@ -226,7 +224,8 @@ WifiData data; EXPECT_TRUE(provider_->GetData(&data)); ASSERT_EQ(1u, data.access_point_data.size()); - EXPECT_EQ(single_access_point.ssid, data.access_point_data.begin()->ssid); + EXPECT_EQ(single_access_point.mac_address, + data.access_point_data.begin()->mac_address); } TEST_F(GeolocationWifiDataProviderCommonTest, DelayedByPolicy) {
diff --git a/services/device/geolocation/wifi_data_provider_common_win.cc b/services/device/geolocation/wifi_data_provider_common_win.cc index 3c2b600..56f807b1 100644 --- a/services/device/geolocation/wifi_data_provider_common_win.cc +++ b/services/device/geolocation/wifi_data_provider_common_win.cc
@@ -7,21 +7,17 @@ #include <assert.h> #include <stdint.h> -#include "base/strings/utf_string_conversions.h" #include "services/device/geolocation/wifi_data_provider_common.h" namespace device { bool ConvertToAccessPointData(const NDIS_WLAN_BSSID& data, AccessPointData* access_point_data) { - // Currently we get only MAC address, signal strength and SSID. + // Currently we get only MAC address and signal strength. // TODO(steveblock): Work out how to get age, channel and signal-to-noise. DCHECK(access_point_data); access_point_data->mac_address = MacAddressAsString16(data.MacAddress); access_point_data->radio_signal_strength = data.Rssi; - // Note that _NDIS_802_11_SSID::Ssid::Ssid is not null-terminated. - base::UTF8ToUTF16(reinterpret_cast<const char*>(data.Ssid.Ssid), - data.Ssid.SsidLength, &access_point_data->ssid); return true; }
diff --git a/services/device/geolocation/wifi_data_provider_lacros.cc b/services/device/geolocation/wifi_data_provider_lacros.cc index b385775b..d4838e19 100644 --- a/services/device/geolocation/wifi_data_provider_lacros.cc +++ b/services/device/geolocation/wifi_data_provider_lacros.cc
@@ -38,7 +38,6 @@ ap_data.radio_signal_strength = access_point->radio_signal_strength; ap_data.channel = access_point->channel; ap_data.signal_to_noise = access_point->signal_to_noise; - ap_data.ssid = access_point->ssid; wifi_data.access_point_data.insert(std::move(ap_data)); } }
diff --git a/services/device/geolocation/wifi_data_provider_linux.cc b/services/device/geolocation/wifi_data_provider_linux.cc index a3c8af7..1f12179 100644 --- a/services/device/geolocation/wifi_data_provider_linux.cc +++ b/services/device/geolocation/wifi_data_provider_linux.cc
@@ -234,30 +234,6 @@ kNetworkManagerServiceName, access_point_path); AccessPointData access_point_data; - { - std::unique_ptr<dbus::Response> ssid_response( - GetAccessPointProperty(access_point_proxy, "Ssid")); - if (!ssid_response) - continue; - // The response should contain a variant that contains an array of bytes. - dbus::MessageReader ssid_reader(ssid_response.get()); - dbus::MessageReader variant_reader(ssid_response.get()); - if (!ssid_reader.PopVariant(&variant_reader)) { - LOG(WARNING) << "Unexpected response for " << access_point_path.value() - << ": " << ssid_response->ToString(); - continue; - } - const uint8_t* ssid_bytes = nullptr; - size_t ssid_length = 0; - if (!variant_reader.PopArrayOfBytes(&ssid_bytes, &ssid_length)) { - LOG(WARNING) << "Unexpected response for " << access_point_path.value() - << ": " << ssid_response->ToString(); - continue; - } - std::string ssid(ssid_bytes, ssid_bytes + ssid_length); - access_point_data.ssid = base::UTF8ToUTF16(ssid); - } - { // Read the mac address std::unique_ptr<dbus::Response> mac_response( GetAccessPointProperty(access_point_proxy, "HwAddress")); @@ -315,7 +291,6 @@ access_point_data.channel = frquency_in_khz_to_channel(frequency * 1000); } VLOG(1) << "Access point data of " << access_point_path.value() << ": " - << "SSID: " << access_point_data.ssid << ", " << "MAC: " << access_point_data.mac_address << ", " << "Strength: " << access_point_data.radio_signal_strength << ", " << "Channel: " << access_point_data.channel;
diff --git a/services/device/geolocation/wifi_data_provider_linux_unittest.cc b/services/device/geolocation/wifi_data_provider_linux_unittest.cc index a2384ffc..dd3246d 100644 --- a/services/device/geolocation/wifi_data_provider_linux_unittest.cc +++ b/services/device/geolocation/wifi_data_provider_linux_unittest.cc
@@ -185,13 +185,7 @@ dbus::Response::CreateEmpty(); dbus::MessageWriter writer(response.get()); - if (property_name == "Ssid") { - const uint8_t kSsid[] = {0x74, 0x65, 0x73, 0x74}; // "test" - dbus::MessageWriter variant_writer(response.get()); - writer.OpenVariant("ay", &variant_writer); - variant_writer.AppendArrayOfBytes(kSsid, std::size(kSsid)); - writer.CloseContainer(&variant_writer); - } else if (property_name == "HwAddress") { + if (property_name == "HwAddress") { // This will be converted to "00-11-22-33-44-55". const std::string kMacAddress = "00:11:22:33:44:55"; writer.AppendVariantOfString(kMacAddress); @@ -222,7 +216,6 @@ // Check the contents of the access point data. // The expected values come from CreateAccessPointProxyResponse() above. - EXPECT_EQ("test", base::UTF16ToUTF8(access_point_data.ssid)); EXPECT_EQ("00-11-22-33-44-55", base::UTF16ToUTF8(access_point_data.mac_address)); EXPECT_EQ(-50, access_point_data.radio_signal_strength);
diff --git a/services/device/geolocation/wifi_data_provider_mac.mm b/services/device/geolocation/wifi_data_provider_mac.mm index 0048ee1..7cab385 100644 --- a/services/device/geolocation/wifi_data_provider_mac.mm +++ b/services/device/geolocation/wifi_data_provider_mac.mm
@@ -8,7 +8,6 @@ #import <Foundation/Foundation.h> #include "base/logging.h" -#include "base/memory/ptr_util.h" #include "base/strings/sys_string_conversions.h" #include "services/device/geolocation/wifi_data_provider_common.h" #include "services/device/geolocation/wifi_data_provider_handle.h" @@ -68,7 +67,6 @@ access_point_data.channel = network.wlanChannel.channelNumber; access_point_data.signal_to_noise = access_point_data.radio_signal_strength - network.noiseMeasurement; - access_point_data.ssid = base::SysNSStringToUTF16(network.ssid); data->insert(access_point_data); } }
diff --git a/services/device/geolocation/wifi_data_provider_win.cc b/services/device/geolocation/wifi_data_provider_win.cc index 52c724baa..b2db40f 100644 --- a/services/device/geolocation/wifi_data_provider_win.cc +++ b/services/device/geolocation/wifi_data_provider_win.cc
@@ -9,11 +9,6 @@ #include <wlanapi.h> #include "base/logging.h" -#include "base/memory/free_deleter.h" -#include "base/memory/ptr_util.h" -#include "base/metrics/histogram_macros.h" -#include "base/strings/utf_string_conversions.h" -#include "base/win/windows_version.h" #include "services/device/geolocation/wifi_data_provider_common.h" #include "services/device/geolocation/wifi_data_provider_common_win.h" #include "services/device/geolocation/wifi_data_provider_handle.h" @@ -59,13 +54,9 @@ // Extracts data for an access point and converts to AccessPointData. AccessPointData GetNetworkData(const WLAN_BSS_ENTRY& bss_entry) { AccessPointData access_point_data; - // Currently we get only MAC address, signal strength and SSID. + // Currently we get only MAC address and signal strength. access_point_data.mac_address = MacAddressAsString16(bss_entry.dot11Bssid); access_point_data.radio_signal_strength = bss_entry.lRssi; - // bss_entry.dot11Ssid.ucSSID is not null-terminated. - base::UTF8ToUTF16(reinterpret_cast<const char*>(bss_entry.dot11Ssid.ucSSID), - static_cast<ULONG>(bss_entry.dot11Ssid.uSSIDLength), - &access_point_data.ssid); // TODO(steveblock): Is it possible to get the following? // access_point_data.signal_to_noise
diff --git a/services/network/public/mojom/ssl_config.mojom b/services/network/public/mojom/ssl_config.mojom index 29edc1a..0914f592 100644 --- a/services/network/public/mojom/ssl_config.mojom +++ b/services/network/public/mojom/ssl_config.mojom
@@ -50,6 +50,17 @@ // If specified, controls whether insecure hashes are allowed in TLS // handshakes. If kUnset, this is determined by feature flags. OptionalBool insecure_hash_override = kUnset; + + // If specified, controls whether the X.509 keyUsage extension is checked in + // TLS 1.2 for RSA certificates that chain to a local trust anchor. If kUnset, + // this is determined by feature flags. + // + // Independent of the setting of this value, keyUsage is always checked at TLS + // 1.3, for ECDSA certificates, and for all certificates that chain to a known + // root. + // + // TODO(crbug.com/795089): Enable this unconditionally. + OptionalBool rsa_key_usage_for_local_anchors_override = kUnset; }; // Receives SSL configuration updates.
diff --git a/services/network/ssl_config_type_converter.cc b/services/network/ssl_config_type_converter.cc index 3455647..f5c7f4ec 100644 --- a/services/network/ssl_config_type_converter.cc +++ b/services/network/ssl_config_type_converter.cc
@@ -50,6 +50,8 @@ net_config.ech_enabled = mojo_config->ech_enabled; net_config.insecure_hash_override = OptionalBoolFromMojo(mojo_config->insecure_hash_override); + net_config.rsa_key_usage_for_local_anchors_override = OptionalBoolFromMojo( + mojo_config->rsa_key_usage_for_local_anchors_override); return net_config; }
diff --git a/skia/BUILD.gn b/skia/BUILD.gn index 4ab6056..edf9373 100644 --- a/skia/BUILD.gn +++ b/skia/BUILD.gn
@@ -673,13 +673,6 @@ } # Bits that involve special vector-y hardware. -if (current_cpu == "arm64") { - skia_source_set("skia_opts_crc32") { - sources = skia_opts.crc32_sources - cflags = [ "-march=armv8-a+crc" ] - visibility = [ ":skia_opts" ] - } -} if (current_cpu == "x86" || current_cpu == "x64") { skia_source_set("skia_opts_sse3") { sources = skia_opts.ssse3_sources @@ -691,16 +684,6 @@ } visibility = [ ":skia_opts" ] } - skia_source_set("skia_opts_sse42") { - sources = skia_opts.sse42_sources - if (!is_win || is_clang) { - cflags = [ "-msse4.2" ] - } - if (is_win) { - defines = [ "SK_CPU_SSE_LEVEL=42" ] - } - visibility = [ ":skia_opts" ] - } skia_source_set("skia_opts_avx") { sources = skia_opts.avx_sources if (!is_win) { @@ -751,7 +734,6 @@ ":skia_opts_hsw", ":skia_opts_skx", ":skia_opts_sse3", - ":skia_opts_sse42", ] } else if (current_cpu == "arm") { # The assembly uses the frame pointer register (r7 in Thumb/r11 in @@ -771,7 +753,7 @@ } } } else if (current_cpu == "arm64") { - deps += [ ":skia_opts_crc32" ] + # Conditional and empty body needed to avoid assert() below. } else if (current_cpu == "mipsel") { cflags += [ "-fomit-frame-pointer" ] } else if (current_cpu == "mips64el") {
diff --git a/testing/buildbot/autoshard_exceptions.json b/testing/buildbot/autoshard_exceptions.json index 25a17cc..e643083 100644 --- a/testing/buildbot/autoshard_exceptions.json +++ b/testing/buildbot/autoshard_exceptions.json
@@ -388,37 +388,5 @@ "shards": "3" } } - }, - "chromium.win": { - "Win10 Tests x64": { - "updater_tests": { - "debug": { - "avg_num_builds_per_peak_hour": "75.0", - "estimated_bot_hour_delta": "-1.76", - "prev_avg_pending_time_sec": "200.3", - "prev_p50_pending_time_sec": "14.0", - "prev_p90_pending_time_sec": "669.0", - "prev_percentile_duration_minutes": "5.69", - "prev_shard_count": "2", - "simulated_max_shard_duration": "11.38", - "try_builder": "win-rel" - }, - "shards": "1" - }, - "updater_tests_system": { - "debug": { - "avg_num_builds_per_peak_hour": "75.0", - "estimated_bot_hour_delta": "-1.77", - "prev_avg_pending_time_sec": "201.0", - "prev_p50_pending_time_sec": "15.0", - "prev_p90_pending_time_sec": "668.0", - "prev_percentile_duration_minutes": "5.87", - "prev_shard_count": "2", - "simulated_max_shard_duration": "11.74", - "try_builder": "win-rel" - }, - "shards": "1" - } - } } } \ No newline at end of file
diff --git a/testing/buildbot/chromium.chromiumos.json b/testing/buildbot/chromium.chromiumos.json index dc325b0..9b98248 100644 --- a/testing/buildbot/chromium.chromiumos.json +++ b/testing/buildbot/chromium.chromiumos.json
@@ -5730,9 +5730,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v115.0.5788.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v115.0.5789.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 115.0.5788.0", + "description": "Run with ash-chrome version 115.0.5789.0", "isolate_profile_data": true, "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -5743,8 +5743,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v115.0.5788.0", - "revision": "version:115.0.5788.0" + "location": "lacros_version_skew_tests_v115.0.5789.0", + "revision": "version:115.0.5789.0" } ], "dimension_sets": [ @@ -5895,9 +5895,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v115.0.5788.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v115.0.5789.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 115.0.5788.0", + "description": "Run with ash-chrome version 115.0.5789.0", "isolate_profile_data": true, "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -5908,8 +5908,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v115.0.5788.0", - "revision": "version:115.0.5788.0" + "location": "lacros_version_skew_tests_v115.0.5789.0", + "revision": "version:115.0.5789.0" } ], "dimension_sets": [ @@ -6042,9 +6042,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v115.0.5788.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v115.0.5789.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 115.0.5788.0", + "description": "Run with ash-chrome version 115.0.5789.0", "isolate_profile_data": true, "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -6055,8 +6055,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v115.0.5788.0", - "revision": "version:115.0.5788.0" + "location": "lacros_version_skew_tests_v115.0.5789.0", + "revision": "version:115.0.5789.0" } ], "dimension_sets": [
diff --git a/testing/buildbot/chromium.coverage.json b/testing/buildbot/chromium.coverage.json index 1ff02197..6cd5404 100644 --- a/testing/buildbot/chromium.coverage.json +++ b/testing/buildbot/chromium.coverage.json
@@ -25491,9 +25491,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v115.0.5788.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v115.0.5789.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 115.0.5788.0", + "description": "Run with ash-chrome version 115.0.5789.0", "isolate_profile_data": true, "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -25504,8 +25504,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v115.0.5788.0", - "revision": "version:115.0.5788.0" + "location": "lacros_version_skew_tests_v115.0.5789.0", + "revision": "version:115.0.5789.0" } ], "dimension_sets": [ @@ -25656,9 +25656,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v115.0.5788.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v115.0.5789.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 115.0.5788.0", + "description": "Run with ash-chrome version 115.0.5789.0", "isolate_profile_data": true, "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -25669,8 +25669,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v115.0.5788.0", - "revision": "version:115.0.5788.0" + "location": "lacros_version_skew_tests_v115.0.5789.0", + "revision": "version:115.0.5789.0" } ], "dimension_sets": [ @@ -25803,9 +25803,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v115.0.5788.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v115.0.5789.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 115.0.5788.0", + "description": "Run with ash-chrome version 115.0.5789.0", "isolate_profile_data": true, "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -25816,8 +25816,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v115.0.5788.0", - "revision": "version:115.0.5788.0" + "location": "lacros_version_skew_tests_v115.0.5789.0", + "revision": "version:115.0.5789.0" } ], "dimension_sets": [
diff --git a/testing/buildbot/chromium.fyi.json b/testing/buildbot/chromium.fyi.json index cfc79d90..d06b848 100644 --- a/testing/buildbot/chromium.fyi.json +++ b/testing/buildbot/chromium.fyi.json
@@ -40146,9 +40146,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v115.0.5788.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v115.0.5789.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 115.0.5788.0", + "description": "Run with ash-chrome version 115.0.5789.0", "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" }, @@ -40158,8 +40158,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v115.0.5788.0", - "revision": "version:115.0.5788.0" + "location": "lacros_version_skew_tests_v115.0.5789.0", + "revision": "version:115.0.5789.0" } ], "dimension_sets": [ @@ -40311,9 +40311,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v115.0.5788.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v115.0.5789.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 115.0.5788.0", + "description": "Run with ash-chrome version 115.0.5789.0", "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" }, @@ -40323,8 +40323,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v115.0.5788.0", - "revision": "version:115.0.5788.0" + "location": "lacros_version_skew_tests_v115.0.5789.0", + "revision": "version:115.0.5789.0" } ], "dimension_sets": [ @@ -40458,9 +40458,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v115.0.5788.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v115.0.5789.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 115.0.5788.0", + "description": "Run with ash-chrome version 115.0.5789.0", "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" }, @@ -40470,8 +40470,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v115.0.5788.0", - "revision": "version:115.0.5788.0" + "location": "lacros_version_skew_tests_v115.0.5789.0", + "revision": "version:115.0.5789.0" } ], "dimension_sets": [ @@ -41935,9 +41935,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v115.0.5788.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v115.0.5789.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 115.0.5788.0", + "description": "Run with ash-chrome version 115.0.5789.0", "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" }, @@ -41947,8 +41947,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v115.0.5788.0", - "revision": "version:115.0.5788.0" + "location": "lacros_version_skew_tests_v115.0.5789.0", + "revision": "version:115.0.5789.0" } ], "dimension_sets": [ @@ -42100,9 +42100,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v115.0.5788.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v115.0.5789.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 115.0.5788.0", + "description": "Run with ash-chrome version 115.0.5789.0", "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" }, @@ -42112,8 +42112,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v115.0.5788.0", - "revision": "version:115.0.5788.0" + "location": "lacros_version_skew_tests_v115.0.5789.0", + "revision": "version:115.0.5789.0" } ], "dimension_sets": [ @@ -42247,9 +42247,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v115.0.5788.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v115.0.5789.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 115.0.5788.0", + "description": "Run with ash-chrome version 115.0.5789.0", "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" }, @@ -42259,8 +42259,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v115.0.5788.0", - "revision": "version:115.0.5788.0" + "location": "lacros_version_skew_tests_v115.0.5789.0", + "revision": "version:115.0.5789.0" } ], "dimension_sets": [ @@ -42995,9 +42995,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v115.0.5788.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v115.0.5789.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 115.0.5788.0", + "description": "Run with ash-chrome version 115.0.5789.0", "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" }, @@ -43007,8 +43007,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v115.0.5788.0", - "revision": "version:115.0.5788.0" + "location": "lacros_version_skew_tests_v115.0.5789.0", + "revision": "version:115.0.5789.0" } ], "dimension_sets": [
diff --git a/testing/buildbot/chromium.memory.json b/testing/buildbot/chromium.memory.json index 05d541e..4eb38cb 100644 --- a/testing/buildbot/chromium.memory.json +++ b/testing/buildbot/chromium.memory.json
@@ -18080,12 +18080,12 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v115.0.5788.0/test_ash_chrome", + "--ash-chrome-path-override=../../lacros_version_skew_tests_v115.0.5789.0/test_ash_chrome", "--test-launcher-print-test-stdio=always", "--combine-ash-logs-on-bots", "--asan-symbolize-output" ], - "description": "Run with ash-chrome version 115.0.5788.0", + "description": "Run with ash-chrome version 115.0.5789.0", "isolate_profile_data": true, "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -18096,8 +18096,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v115.0.5788.0", - "revision": "version:115.0.5788.0" + "location": "lacros_version_skew_tests_v115.0.5789.0", + "revision": "version:115.0.5789.0" } ], "dimension_sets": [ @@ -18265,12 +18265,12 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v115.0.5788.0/test_ash_chrome", + "--ash-chrome-path-override=../../lacros_version_skew_tests_v115.0.5789.0/test_ash_chrome", "--test-launcher-print-test-stdio=always", "--combine-ash-logs-on-bots", "--asan-symbolize-output" ], - "description": "Run with ash-chrome version 115.0.5788.0", + "description": "Run with ash-chrome version 115.0.5789.0", "isolate_profile_data": true, "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -18281,8 +18281,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v115.0.5788.0", - "revision": "version:115.0.5788.0" + "location": "lacros_version_skew_tests_v115.0.5789.0", + "revision": "version:115.0.5789.0" } ], "dimension_sets": [ @@ -18427,12 +18427,12 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v115.0.5788.0/test_ash_chrome", + "--ash-chrome-path-override=../../lacros_version_skew_tests_v115.0.5789.0/test_ash_chrome", "--test-launcher-print-test-stdio=always", "--combine-ash-logs-on-bots", "--asan-symbolize-output" ], - "description": "Run with ash-chrome version 115.0.5788.0", + "description": "Run with ash-chrome version 115.0.5789.0", "isolate_profile_data": true, "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -18443,8 +18443,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v115.0.5788.0", - "revision": "version:115.0.5788.0" + "location": "lacros_version_skew_tests_v115.0.5789.0", + "revision": "version:115.0.5789.0" } ], "dimension_sets": [
diff --git a/testing/buildbot/chromium.win.json b/testing/buildbot/chromium.win.json index ee6c71e..08aacae 100644 --- a/testing/buildbot/chromium.win.json +++ b/testing/buildbot/chromium.win.json
@@ -1741,8 +1741,7 @@ "os": "Windows-10-19045" } ], - "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", - "shards": 1 + "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, "test": "updater_tests", "test_id_prefix": "ninja://chrome/updater:updater_tests/" @@ -1760,8 +1759,7 @@ "os": "Windows-10-19045" } ], - "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", - "shards": 1 + "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, "test": "updater_tests_system", "test_id_prefix": "ninja://chrome/updater:updater_tests_system/"
diff --git a/testing/buildbot/query_optimal_shard_counts.py b/testing/buildbot/query_optimal_shard_counts.py index 0c1e8b5..299a384 100755 --- a/testing/buildbot/query_optimal_shard_counts.py +++ b/testing/buildbot/query_optimal_shard_counts.py
@@ -414,6 +414,11 @@ if int(r['optimal_shard_count']) == int(r['shard_count']): continue + # Throw out any attempt to shard to 1. This will lock the test suite + # and prevent go/nplus1shardsproposal from running new shardings + if int(r['optimal_shard_count']) == 1: + continue + # Shard values may have changed over the lookback period, so the query # results could have multiple rows for each builder+test_suite. Logic below # skips the rows that are for outdated shard counts.
diff --git a/testing/buildbot/variants.pyl b/testing/buildbot/variants.pyl index ada6274b..e1f4120 100644 --- a/testing/buildbot/variants.pyl +++ b/testing/buildbot/variants.pyl
@@ -22,16 +22,16 @@ }, 'LACROS_VERSION_SKEW_CANARY': { 'args': [ - '--ash-chrome-path-override=../../lacros_version_skew_tests_v115.0.5788.0/test_ash_chrome', + '--ash-chrome-path-override=../../lacros_version_skew_tests_v115.0.5789.0/test_ash_chrome', ], - 'description': 'Run with ash-chrome version 115.0.5788.0', + 'description': 'Run with ash-chrome version 115.0.5789.0', 'identifier': 'Lacros version skew testing ash canary', 'swarming': { 'cipd_packages': [ { 'cipd_package': 'chromium/testing/linux-ash-chromium/x86_64/ash.zip', - 'location': 'lacros_version_skew_tests_v115.0.5788.0', - 'revision': 'version:115.0.5788.0', + 'location': 'lacros_version_skew_tests_v115.0.5789.0', + 'revision': 'version:115.0.5789.0', }, ], },
diff --git a/testing/variations/fieldtrial_testing_config.json b/testing/variations/fieldtrial_testing_config.json index bbfca2d4..f131e6c6 100644 --- a/testing/variations/fieldtrial_testing_config.json +++ b/testing/variations/fieldtrial_testing_config.json
@@ -4579,6 +4579,23 @@ ] } ], + "DirectCompositorThreadIpc": [ + { + "platforms": [ + "android", + "android_webview", + "linux" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "DirectCompositorThreadIpc" + ] + } + ] + } + ], "DisableGles2ForOopR": [ { "platforms": [ @@ -5534,25 +5551,6 @@ ] } ], - "ExtensionsMenuInAppMenu": [ - { - "platforms": [ - "chromeos", - "chromeos_lacros", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "ExtensionsMenuInAppMenu" - ] - } - ] - } - ], "FastCheckout": [ { "platforms": [ @@ -6860,17 +6858,6 @@ ], "experiments": [ { - "name": "EnabledOnAllTriggers", - "params": { - "enable_promo_on_login_with_autofill": "true", - "enable_promo_on_password_copied": "true", - "enable_promo_on_password_saved": "true" - }, - "enable_features": [ - "CredentialProviderExtensionPromo" - ] - }, - { "name": "EnabledOnPasswordSaved", "params": { "enable_promo_on_password_saved": "true" @@ -11651,21 +11638,6 @@ ] } ], - "SafeBrowsingComponentUpdaterAndroidProtegoAllowlist": [ - { - "platforms": [ - "android" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "SafeBrowsingComponentUpdaterAndroidProtegoAllowlist" - ] - } - ] - } - ], "SafeBrowsingCsbrrNewDownloadTrigger": [ { "platforms": [
diff --git a/third_party/android_deps/buildSrc/src/main/groovy/BuildConfigGenerator.groovy b/third_party/android_deps/buildSrc/src/main/groovy/BuildConfigGenerator.groovy index 17604b5..a7a8855 100644 --- a/third_party/android_deps/buildSrc/src/main/groovy/BuildConfigGenerator.groovy +++ b/third_party/android_deps/buildSrc/src/main/groovy/BuildConfigGenerator.groovy
@@ -642,6 +642,10 @@ } switch (dependencyId) { + case 'androidx_privacysandbox_ads_ads_adservices': + sb.append(' # https://crbug.com/1448095\n') + sb.append(' mergeable_android_manifets = [ "0_privacysandbox_AndroidManifest.xml" ]\n') + break case 'androidx_annotation_annotation_jvm': sb.append(' # https://crbug.com/989505\n') sb.append(' jar_excluded_patterns = [ "META-INF/proguard/*" ]\n')
diff --git a/third_party/androidx/0_privacysandbox_AndroidManifest.xml b/third_party/androidx/0_privacysandbox_AndroidManifest.xml new file mode 100644 index 0000000..da6c78ff --- /dev/null +++ b/third_party/androidx/0_privacysandbox_AndroidManifest.xml
@@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +Copyright 2023 The Chromium Authors +Use of this source code is governed by a BSD-style license that can be +found in the LICENSE file. +--> +<manifest xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:tools="http://schemas.android.com/tools" + package="org.chromium.privacysandbox.overrides"> + + <!-- Library needed for androidx.privacysandbox.ads:ads-adservices to work on Android R & S, + which we do not currently support. Removing out of caution to prevent the library from + slowing down renderer process start-up. + https://crbug.com/1448095 + --> + <application> + <uses-library android:name="android.ext.adservices" tools:node="remove" /> + </application> +</manifest>
diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/features.cc index f4d48a7..bc8570d3 100644 --- a/third_party/blink/common/features.cc +++ b/third_party/blink/common/features.cc
@@ -1529,6 +1529,10 @@ "StylusPointerAdjustment", base::FEATURE_DISABLED_BY_DEFAULT); +BASE_FEATURE(kHiddenSelectionBounds, + "HiddenSelectionBounds", + base::FEATURE_DISABLED_BY_DEFAULT); + BASE_FEATURE(kDisableArrayBufferSizeLimitsForTesting, "DisableArrayBufferSizeLimitsForTesting", base::FEATURE_DISABLED_BY_DEFAULT); @@ -1824,8 +1828,8 @@ "MainThreadHighPriorityImageLoading", base::FEATURE_DISABLED_BY_DEFAULT); -BASE_FEATURE(kInputIpcDirect, - "InputIpcDirect", +BASE_FEATURE(kDirectCompositorThreadIpc, + "DirectCompositorThreadIpc", base::FEATURE_DISABLED_BY_DEFAULT); } // namespace features
diff --git a/third_party/blink/common/fenced_frame/redacted_fenced_frame_config_mojom_traits.cc b/third_party/blink/common/fenced_frame/redacted_fenced_frame_config_mojom_traits.cc index 28211be..8ea584db 100644 --- a/third_party/blink/common/fenced_frame/redacted_fenced_frame_config_mojom_traits.cc +++ b/third_party/blink/common/fenced_frame/redacted_fenced_frame_config_mojom_traits.cc
@@ -413,8 +413,8 @@ !data.ReadNestedConfigs(&out_config->nested_configs_) || !data.ReadSharedStorageBudgetMetadata( &out_config->shared_storage_budget_metadata_) || - !data.ReadRequiredPermissionsToLoad( - &out_config->required_permissions_to_load_)) { + !data.ReadEffectiveEnabledPermissions( + &out_config->effective_enabled_permissions_)) { return false; } @@ -465,8 +465,8 @@ !data.ReadNestedUrnConfigPairs(&nested_urn_config_pairs) || !data.ReadSharedStorageBudgetMetadata( &out_properties->shared_storage_budget_metadata_) || - !data.ReadRequiredPermissionsToLoad( - &out_properties->required_permissions_to_load_)) { + !data.ReadEffectiveEnabledPermissions( + &out_properties->effective_enabled_permissions_)) { return false; }
diff --git a/third_party/blink/common/permissions_policy/permissions_policy.cc b/third_party/blink/common/permissions_policy/permissions_policy.cc index 1fb1105f..a026dcc 100644 --- a/third_party/blink/common/permissions_policy/permissions_policy.cc +++ b/third_party/blink/common/permissions_policy/permissions_policy.cc
@@ -368,16 +368,16 @@ std::unique_ptr<PermissionsPolicy> PermissionsPolicy::CreateForFencedFrame( const url::Origin& origin, base::span<const blink::mojom::PermissionsPolicyFeature> - required_permissions_to_load) { + effective_enabled_permissions) { return CreateForFencedFrame(origin, GetPermissionsPolicyFeatureList(), - required_permissions_to_load); + effective_enabled_permissions); } std::unique_ptr<PermissionsPolicy> PermissionsPolicy::CreateForFencedFrame( const url::Origin& origin, const PermissionsPolicyFeatureList& features, base::span<const blink::mojom::PermissionsPolicyFeature> - required_permissions_to_load) { + effective_enabled_permissions) { std::unique_ptr<PermissionsPolicy> new_policy = base::WrapUnique(new PermissionsPolicy(origin, features)); @@ -385,7 +385,7 @@ new_policy->inherited_policies_[feature.first] = false; } for (const blink::mojom::PermissionsPolicyFeature feature : - required_permissions_to_load) { + effective_enabled_permissions) { new_policy->inherited_policies_[feature] = true; }
diff --git a/third_party/blink/common/permissions_policy/permissions_policy_unittest.cc b/third_party/blink/common/permissions_policy/permissions_policy_unittest.cc index 9a69cc1..c47d70f 100644 --- a/third_party/blink/common/permissions_policy/permissions_policy_unittest.cc +++ b/third_party/blink/common/permissions_policy/permissions_policy_unittest.cc
@@ -78,9 +78,9 @@ std::unique_ptr<PermissionsPolicy> CreateForFencedFrame( const url::Origin& origin, base::span<const blink::mojom::PermissionsPolicyFeature> - required_permissions_to_load) { + effective_enabled_permissions) { return PermissionsPolicy::CreateForFencedFrame( - origin, feature_list_, required_permissions_to_load); + origin, feature_list_, effective_enabled_permissions); } bool IsFeatureEnabledForSubresourceRequestAssumingOptIn( @@ -2562,14 +2562,14 @@ TEST_F(PermissionsPolicyTest, CreateForFledgeFencedFrame) { std::vector<blink::mojom::PermissionsPolicyFeature> - required_permissions_to_load; - required_permissions_to_load.insert( - required_permissions_to_load.end(), + effective_enabled_permissions; + effective_enabled_permissions.insert( + effective_enabled_permissions.end(), std::begin(blink::kFencedFrameFledgeDefaultRequiredFeatures), std::end(blink::kFencedFrameFledgeDefaultRequiredFeatures)); std::unique_ptr<PermissionsPolicy> policy = - CreateForFencedFrame(origin_a_, required_permissions_to_load); + CreateForFencedFrame(origin_a_, effective_enabled_permissions); EXPECT_FALSE(policy->IsFeatureEnabled(kDefaultOnFeature)); EXPECT_FALSE(policy->IsFeatureEnabled(kDefaultSelfFeature)); EXPECT_TRUE(policy->IsFeatureEnabled( @@ -2580,14 +2580,14 @@ TEST_F(PermissionsPolicyTest, CreateForSharedStorageFencedFrame) { std::vector<blink::mojom::PermissionsPolicyFeature> - required_permissions_to_load; - required_permissions_to_load.insert( - required_permissions_to_load.end(), + effective_enabled_permissions; + effective_enabled_permissions.insert( + effective_enabled_permissions.end(), std::begin(blink::kFencedFrameSharedStorageDefaultRequiredFeatures), std::end(blink::kFencedFrameSharedStorageDefaultRequiredFeatures)); std::unique_ptr<PermissionsPolicy> policy = - CreateForFencedFrame(origin_a_, required_permissions_to_load); + CreateForFencedFrame(origin_a_, effective_enabled_permissions); EXPECT_FALSE(policy->IsFeatureEnabled(kDefaultOnFeature)); EXPECT_FALSE(policy->IsFeatureEnabled(kDefaultSelfFeature)); EXPECT_TRUE(policy->IsFeatureEnabled(
diff --git a/third_party/blink/public/common/features.h b/third_party/blink/public/common/features.h index 42ae8e6..d61d6da 100644 --- a/third_party/blink/public/common/features.h +++ b/third_party/blink/public/common/features.h
@@ -787,6 +787,11 @@ // enabling functions like writing into a nearby input element. BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kStylusPointerAdjustment); +// Record the bounds of a selection even when there is no selection handle. +// This allows providing more information to the IME, but was disabled because +// of https://crbug.com/1441243. +BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kHiddenSelectionBounds); + // TODO(https://crbug.com/1201109): temporary flag to disable new ArrayBuffer // size limits, so that tests can be written against code receiving these // buffers. Remove when the bindings code instituting these limits is removed. @@ -1121,7 +1126,7 @@ // Enables input IPC to directly target the renderer's compositor thread without // hopping through the IO thread first. -BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kInputIpcDirect); +BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kDirectCompositorThreadIpc); } // namespace features } // namespace blink
diff --git a/third_party/blink/public/common/fenced_frame/redacted_fenced_frame_config.h b/third_party/blink/public/common/fenced_frame/redacted_fenced_frame_config.h index b8a4afa..67eade1 100644 --- a/third_party/blink/public/common/fenced_frame/redacted_fenced_frame_config.h +++ b/third_party/blink/public/common/fenced_frame/redacted_fenced_frame_config.h
@@ -128,8 +128,8 @@ } const DeprecatedFencedFrameMode& mode() const { return mode_; } const std::vector<blink::mojom::PermissionsPolicyFeature>& - required_permissions_to_load() const { - return required_permissions_to_load_; + effective_enabled_permissions() const { + return effective_enabled_permissions_; } private: @@ -155,7 +155,7 @@ DeprecatedFencedFrameMode mode_ = DeprecatedFencedFrameMode::kDefault; std::vector<blink::mojom::PermissionsPolicyFeature> - required_permissions_to_load_; + effective_enabled_permissions_; }; // Represents a set of fenced frame properties (instantiated from a config) that @@ -202,8 +202,8 @@ } const DeprecatedFencedFrameMode& mode() const { return mode_; } const std::vector<blink::mojom::PermissionsPolicyFeature>& - required_permissions_to_load() const { - return required_permissions_to_load_; + effective_enabled_permissions() const { + return effective_enabled_permissions_; } private: @@ -226,7 +226,7 @@ bool has_fenced_frame_reporting_ = false; DeprecatedFencedFrameMode mode_ = DeprecatedFencedFrameMode::kDefault; std::vector<blink::mojom::PermissionsPolicyFeature> - required_permissions_to_load_; + effective_enabled_permissions_; }; } // namespace blink::FencedFrame
diff --git a/third_party/blink/public/common/fenced_frame/redacted_fenced_frame_config_mojom_traits.h b/third_party/blink/public/common/fenced_frame/redacted_fenced_frame_config_mojom_traits.h index ab8e5c3..18dc500 100644 --- a/third_party/blink/public/common/fenced_frame/redacted_fenced_frame_config_mojom_traits.h +++ b/third_party/blink/public/common/fenced_frame/redacted_fenced_frame_config_mojom_traits.h
@@ -244,9 +244,9 @@ } static const std::vector<blink::mojom::PermissionsPolicyFeature>& - required_permissions_to_load( + effective_enabled_permissions( const blink::FencedFrame::RedactedFencedFrameConfig& config) { - return config.required_permissions_to_load_; + return config.effective_enabled_permissions_; } static bool Read(blink::mojom::FencedFrameConfigDataView data, @@ -298,9 +298,9 @@ } static const std::vector<blink::mojom::PermissionsPolicyFeature>& - required_permissions_to_load( + effective_enabled_permissions( const blink::FencedFrame::RedactedFencedFrameProperties& properties) { - return properties.required_permissions_to_load_; + return properties.effective_enabled_permissions_; } static bool Read(
diff --git a/third_party/blink/public/common/metrics/document_update_reason.h b/third_party/blink/public/common/metrics/document_update_reason.h index 0e320cf..b0dd040 100644 --- a/third_party/blink/public/common/metrics/document_update_reason.h +++ b/third_party/blink/public/common/metrics/document_update_reason.h
@@ -20,6 +20,7 @@ kBaseColor, kBeginMainFrame, kCanvas, + kComputedStyle, kContextMenu, kDisplayLock, kViewTransition, @@ -37,15 +38,18 @@ kOverlay, kPagePopup, kPlugin, + kPopover, kPrinting, kScroll, kSelection, kSizeChange, kSpatialNavigation, kSpellCheck, + kSMILAnimation, kSVGImage, kTapHighlight, kTest, + kWebAnimation, kUnknown };
diff --git a/third_party/blink/public/common/permissions_policy/permissions_policy.h b/third_party/blink/public/common/permissions_policy/permissions_policy.h index 3e938b7..6e7f24c 100644 --- a/third_party/blink/public/common/permissions_policy/permissions_policy.h +++ b/third_party/blink/public/common/permissions_policy/permissions_policy.h
@@ -180,7 +180,7 @@ static std::unique_ptr<PermissionsPolicy> CreateForFencedFrame( const url::Origin& origin, base::span<const blink::mojom::PermissionsPolicyFeature> - required_permissions_to_load); + effective_enabled_permissions); static std::unique_ptr<PermissionsPolicy> CreateFromParsedPolicy( const ParsedPermissionsPolicy& parsed_policy, @@ -274,7 +274,7 @@ const url::Origin& origin, const PermissionsPolicyFeatureList& features, base::span<const blink::mojom::PermissionsPolicyFeature> - required_permissions_to_load); + effective_enabled_permissions); // Returns whether or not the given feature is enabled by this policy for a // specific origin given a set of opt-in features. The opt-in features cannot
diff --git a/third_party/blink/public/devtools_protocol/browser_protocol.pdl b/third_party/blink/public/devtools_protocol/browser_protocol.pdl index 72e14c2..621e24f 100644 --- a/third_party/blink/public/devtools_protocol/browser_protocol.pdl +++ b/third_party/blink/public/devtools_protocol/browser_protocol.pdl
@@ -5121,6 +5121,8 @@ experimental number pushStart # Time the server finished pushing request. experimental number pushEnd + # Started receiving response headers. + experimental number receiveHeadersStart # Finished receiving response headers. number receiveHeadersEnd
diff --git a/third_party/blink/public/mojom/fenced_frame/fenced_frame_config.mojom b/third_party/blink/public/mojom/fenced_frame/fenced_frame_config.mojom index 031b323..9c3475db 100644 --- a/third_party/blink/public/mojom/fenced_frame/fenced_frame_config.mojom +++ b/third_party/blink/public/mojom/fenced_frame/fenced_frame_config.mojom
@@ -147,7 +147,7 @@ // on a fenced frame, it can be used as a fingerprinting channel. Instead, // each API sets a list of feature permissions that a fenced frame needs to // enable to be allowed to load. - array<PermissionsPolicyFeature> required_permissions_to_load; + array<PermissionsPolicyFeature> effective_enabled_permissions; }; // The `FencedFrameProperties` struct is used to transfer a redacted version @@ -188,5 +188,5 @@ DeprecatedFencedFrameMode mode; - array<PermissionsPolicyFeature> required_permissions_to_load; + array<PermissionsPolicyFeature> effective_enabled_permissions; };
diff --git a/third_party/blink/public/mojom/indexeddb/indexeddb.mojom b/third_party/blink/public/mojom/indexeddb/indexeddb.mojom index 48417332..b18251d 100644 --- a/third_party/blink/public/mojom/indexeddb/indexeddb.mojom +++ b/third_party/blink/public/mojom/indexeddb/indexeddb.mojom
@@ -425,9 +425,10 @@ GetKeyGeneratorCurrentNumber(int64 transaction_id, int64 object_store_id, pending_associated_remote<IDBCallbacks> pending_callbacks); + // Correlates to IDBObjectStore::clear() Clear(int64 transaction_id, - int64 object_store_id, - pending_associated_remote<IDBCallbacks> pending_callbacks); + int64 object_store_id) => (bool success); + // Correlates to IDBObjectStore::createIndex() CreateIndex(int64 transaction_id, int64 object_store_id, int64 index_id,
diff --git a/third_party/blink/public/mojom/interest_group/ad_auction_service.mojom b/third_party/blink/public/mojom/interest_group/ad_auction_service.mojom index c0977d8e..c70cea8 100644 --- a/third_party/blink/public/mojom/interest_group/ad_auction_service.mojom +++ b/third_party/blink/public/mojom/interest_group/ad_auction_service.mojom
@@ -7,6 +7,7 @@ import "third_party/blink/public/mojom/fenced_frame/fenced_frame_config.mojom"; import "third_party/blink/public/mojom/parakeet/ad_request.mojom"; import "third_party/blink/public/mojom/interest_group/interest_group_types.mojom"; +import "mojo/public/mojom/base/big_buffer.mojom"; import "mojo/public/mojom/base/time.mojom"; import "url/mojom/origin.mojom"; import "url/mojom/url.mojom"; @@ -203,4 +204,9 @@ // showing FLEDGE ads in iframes. DeprecatedReplaceInURN(url.mojom.Url uuid_url, array<AdKeywordReplacement> replacements) => (); + + // Gets the ad auction data for running an external auction on a bidding and + // auction server. + GetInterestGroupAdAuctionData(url.mojom.Origin seller) + => (mojo_base.mojom.BigBuffer data); };
diff --git a/third_party/blink/public/mojom/use_counter/metrics/web_feature.mojom b/third_party/blink/public/mojom/use_counter/metrics/web_feature.mojom index ec2d78e..945924c 100644 --- a/third_party/blink/public/mojom/use_counter/metrics/web_feature.mojom +++ b/third_party/blink/public/mojom/use_counter/metrics/web_feature.mojom
@@ -3913,6 +3913,7 @@ kV8InvalidatedNumberStringNotRegexpLikeProtector = 4573, kCriticalCHRestartNavigationTiming = 4574, kTopLevelDocumentWithEmbeddedCredentials = 4575, + kV8Navigator_GetInterestGroupAdAuctionData_Method = 4576, // Add new features immediately above this line. Don't change assigned // numbers of any item, and don't reuse removed slots.
diff --git a/third_party/blink/renderer/bindings/generated_in_modules.gni b/third_party/blink/renderer/bindings/generated_in_modules.gni index acd52112..d0a440d 100644 --- a/third_party/blink/renderer/bindings/generated_in_modules.gni +++ b/third_party/blink/renderer/bindings/generated_in_modules.gni
@@ -107,6 +107,8 @@ generated_dictionary_sources_in_modules = [ "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_aac_encoder_config.cc", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_aac_encoder_config.h", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_ad_auction_data_config.cc", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_ad_auction_data_config.h", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_ad_properties.cc", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_ad_properties.h", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_ad_request_config.cc",
diff --git a/third_party/blink/renderer/bindings/idl_in_modules.gni b/third_party/blink/renderer/bindings/idl_in_modules.gni index 1cdd557..43f623b 100644 --- a/third_party/blink/renderer/bindings/idl_in_modules.gni +++ b/third_party/blink/renderer/bindings/idl_in_modules.gni
@@ -8,6 +8,7 @@ # for production. static_idl_files_in_modules = get_path_info( [ + "//third_party/blink/renderer/modules/ad_auction/ad_auction_data_config.idl", "//third_party/blink/renderer/modules/ad_auction/ad_request_config.idl", "//third_party/blink/renderer/modules/ad_auction/ads.idl", "//third_party/blink/renderer/modules/ad_auction/auction_ad.idl",
diff --git a/third_party/blink/renderer/core/animation/animatable.cc b/third_party/blink/renderer/core/animation/animatable.cc index c686adc..f65f30f 100644 --- a/third_party/blink/renderer/core/animation/animatable.cc +++ b/third_party/blink/renderer/core/animation/animatable.cc
@@ -165,10 +165,13 @@ HeapVector<Member<Animation>> Animatable::GetAnimationsInternal( GetAnimationsOptionsResolved options) { Element* element = GetAnimationTarget(); - if (options.use_subtree) - element->GetDocument().UpdateStyleAndLayoutTreeForSubtree(element); - else - element->GetDocument().UpdateStyleAndLayoutTreeForNode(element); + if (options.use_subtree) { + element->GetDocument().UpdateStyleAndLayoutTreeForSubtree( + element, DocumentUpdateReason::kWebAnimation); + } else { + element->GetDocument().UpdateStyleAndLayoutTreeForNode( + element, DocumentUpdateReason::kWebAnimation); + } HeapVector<Member<Animation>> animations; if (!options.use_subtree && !element->HasAnimations())
diff --git a/third_party/blink/renderer/core/animation/keyframe_effect.cc b/third_party/blink/renderer/core/animation/keyframe_effect.cc index d4e70ff..7bb51a2 100644 --- a/third_party/blink/renderer/core/animation/keyframe_effect.cc +++ b/third_party/blink/renderer/core/animation/keyframe_effect.cc
@@ -171,7 +171,8 @@ if (!pseudo.empty()) { effect->target_pseudo_ = pseudo; if (element) { - element->GetDocument().UpdateStyleAndLayoutTreeForNode(element); + element->GetDocument().UpdateStyleAndLayoutTreeForNode( + element, DocumentUpdateReason::kWebAnimation); PseudoId pseudo_id = CSSSelectorParser::ParsePseudoElement(pseudo, element); AtomicString pseudo_argument = @@ -268,7 +269,7 @@ new_target = target_element_; } else { target_element_->GetDocument().UpdateStyleAndLayoutTreeForNode( - target_element_); + target_element_, DocumentUpdateReason::kWebAnimation); PseudoId pseudoId = CSSSelectorParser::ParsePseudoElement(target_pseudo_, target_element_); new_target = target_element_->GetPseudoElement(pseudoId);
diff --git a/third_party/blink/renderer/core/css/css_computed_style_declaration.cc b/third_party/blink/renderer/core/css/css_computed_style_declaration.cc index fb75147..fdda739 100644 --- a/third_party/blink/renderer/core/css/css_computed_style_declaration.cc +++ b/third_party/blink/renderer/core/css/css_computed_style_declaration.cc
@@ -279,7 +279,7 @@ CSSProperty::Get(property_name->Id()).IsLayoutDependentProperty(); if (is_for_layout_dependent_property) { owner->GetDocument().UpdateStyleAndLayout( - DocumentUpdateReason::kJavaScript); + DocumentUpdateReason::kComputedStyle); // The style recalc could have caused the styled node to be discarded or // replaced if it was a PseudoElement so we need to update it. styled_node = StyledNode(); @@ -292,12 +292,14 @@ // property set by the UA stylesheet is queried. if (IsTransitionPseudoElement(styled_node->GetPseudoId())) { if (auto* view = document.View()) { - view->UpdateLifecycleToPrePaintClean(DocumentUpdateReason::kJavaScript); + view->UpdateLifecycleToPrePaintClean( + DocumentUpdateReason::kComputedStyle); } return; } - document.UpdateStyleAndLayoutTreeForNode(styled_node); + document.UpdateStyleAndLayoutTreeForNode( + styled_node, DocumentUpdateReason::kComputedStyle); } void CSSComputedStyleDeclaration::UpdateStyleAndLayoutIfNeeded(
diff --git a/third_party/blink/renderer/core/css/css_property_value_set_test.cc b/third_party/blink/renderer/core/css/css_property_value_set_test.cc index 6ba42458..91f5744 100644 --- a/third_party/blink/renderer/core/css/css_property_value_set_test.cc +++ b/third_party/blink/renderer/core/css/css_property_value_set_test.cc
@@ -84,8 +84,8 @@ StyleRule* rule = RuleAt(style_sheet, 0); EXPECT_EQ( - "offset-position: auto; offset-distance: 0px; " - "offset-rotate: reverse 2turn; offset-anchor: auto; " + "offset-position: initial; offset-distance: initial; " + "offset-rotate: reverse 2turn; offset-anchor: initial; " "offset-path: initial;", rule->Properties().AsText()); }
diff --git a/third_party/blink/renderer/core/css/cssom/computed_style_property_map.cc b/third_party/blink/renderer/core/css/cssom/computed_style_property_map.cc index cd0f74ce..ee4ae7e 100644 --- a/third_party/blink/renderer/core/css/cssom/computed_style_property_map.cc +++ b/third_party/blink/renderer/core/css/cssom/computed_style_property_map.cc
@@ -69,7 +69,8 @@ // Update style before getting the value for the property // This could cause the element to be blown away. This code is copied from // CSSComputedStyleDeclaration::GetPropertyCSSValue. - element->GetDocument().UpdateStyleAndLayoutTreeForNode(element); + element->GetDocument().UpdateStyleAndLayoutTreeForNode( + element, DocumentUpdateReason::kComputedStyle); element = StyledElement(); if (!element) { return nullptr;
diff --git a/third_party/blink/renderer/core/css/properties/shorthands/shorthands_custom.cc b/third_party/blink/renderer/core/css/properties/shorthands/shorthands_custom.cc index b8376d7..8df8193 100644 --- a/third_party/blink/renderer/core/css/properties/shorthands/shorthands_custom.cc +++ b/third_party/blink/renderer/core/css/properties/shorthands/shorthands_custom.cc
@@ -2655,7 +2655,7 @@ } else if (RuntimeEnabledFeatures::CSSOffsetPositionAnchorEnabled()) { css_parsing_utils::AddProperty( CSSPropertyID::kOffsetPosition, CSSPropertyID::kOffset, - *CSSIdentifierValue::Create(CSSValueID::kAuto), important, + *CSSInitialValue::Create(), important, css_parsing_utils::IsImplicitProperty::kNotImplicit, properties); } @@ -2667,7 +2667,7 @@ } else { css_parsing_utils::AddProperty( CSSPropertyID::kOffsetPath, CSSPropertyID::kOffset, - *CSSIdentifierValue::Create(CSSValueID::kNone), important, + *CSSInitialValue::Create(), important, css_parsing_utils::IsImplicitProperty::kNotImplicit, properties); } @@ -2679,10 +2679,8 @@ } else { css_parsing_utils::AddProperty( CSSPropertyID::kOffsetDistance, CSSPropertyID::kOffset, - *CSSNumericLiteralValue::Create(0, - CSSPrimitiveValue::UnitType::kPixels), - important, css_parsing_utils::IsImplicitProperty::kNotImplicit, - properties); + *CSSInitialValue::Create(), important, + css_parsing_utils::IsImplicitProperty::kNotImplicit, properties); } if (offset_rotate) { @@ -2693,7 +2691,7 @@ } else { css_parsing_utils::AddProperty( CSSPropertyID::kOffsetRotate, CSSPropertyID::kOffset, - *CSSIdentifierValue::Create(CSSValueID::kAuto), important, + *CSSInitialValue::Create(), important, css_parsing_utils::IsImplicitProperty::kNotImplicit, properties); } @@ -2705,7 +2703,7 @@ } else if (RuntimeEnabledFeatures::CSSOffsetPositionAnchorEnabled()) { css_parsing_utils::AddProperty( CSSPropertyID::kOffsetAnchor, CSSPropertyID::kOffset, - *CSSIdentifierValue::Create(CSSValueID::kAuto), important, + *CSSInitialValue::Create(), important, css_parsing_utils::IsImplicitProperty::kNotImplicit, properties); }
diff --git a/third_party/blink/renderer/core/css/resolver/style_builder_converter.cc b/third_party/blink/renderer/core/css/resolver/style_builder_converter.cc index a208420..e523a71 100644 --- a/third_party/blink/renderer/core/css/resolver/style_builder_converter.cc +++ b/third_party/blink/renderer/core/css/resolver/style_builder_converter.cc
@@ -1837,12 +1837,6 @@ const CSSValue& value) { StyleOffsetRotation result(0, OffsetRotationType::kFixed); - if (auto* identifier = DynamicTo<CSSIdentifierValue>(value)) { - DCHECK_EQ(identifier->GetValueID(), CSSValueID::kAuto); - result.type = OffsetRotationType::kAuto; - return result; - } - const auto& list = To<CSSValueList>(value); DCHECK(list.length() == 1 || list.length() == 2); for (const auto& item : list) {
diff --git a/third_party/blink/renderer/core/css/style_engine_test.cc b/third_party/blink/renderer/core/css/style_engine_test.cc index 8aa7b184..0b4e0cd 100644 --- a/third_party/blink/renderer/core/css/style_engine_test.cc +++ b/third_party/blink/renderer/core/css/style_engine_test.cc
@@ -3992,7 +3992,7 @@ // // See implementation of `NodeLayoutUpgrade::ShouldUpgrade` for more // information. - GetDocument().UpdateStyleAndLayoutTreeForNode(a); + GetDocument().UpdateStyleAndLayoutTreeForNode(a, DocumentUpdateReason::kTest); EXPECT_FALSE(GetStyleEngine().StyleAffectedByLayout()); EXPECT_FALSE(GetDocument().View()->NeedsLayout()); EXPECT_FALSE(GetDocument().NeedsLayoutTreeUpdateForNode(*a));
diff --git a/third_party/blink/renderer/core/css/style_property_serializer.cc b/third_party/blink/renderer/core/css/style_property_serializer.cc index 61c925ce..f55ec95 100644 --- a/third_party/blink/renderer/core/css/style_property_serializer.cc +++ b/third_party/blink/renderer/core/css/style_property_serializer.cc
@@ -396,6 +396,7 @@ case CSSPropertyID::kGridArea: case CSSPropertyID::kGap: case CSSPropertyID::kListStyle: + case CSSPropertyID::kOffset: case CSSPropertyID::kTextDecoration: case CSSPropertyID::kTextEmphasis: case CSSPropertyID::kWebkitMask: @@ -1360,72 +1361,44 @@ } String StylePropertySerializer::OffsetValue() const { - const CSSValue* position = - property_set_.GetPropertyCSSValue(GetCSSPropertyOffsetPosition()); + StringBuilder result; + if (RuntimeEnabledFeatures::CSSOffsetPositionAnchorEnabled()) { + const CSSValue* position = + property_set_.GetPropertyCSSValue(GetCSSPropertyOffsetPosition()); + if (!position->IsInitialValue()) { + result.Append(position->CssText()); + } + } const CSSValue* path = property_set_.GetPropertyCSSValue(GetCSSPropertyOffsetPath()); const CSSValue* distance = property_set_.GetPropertyCSSValue(GetCSSPropertyOffsetDistance()); const CSSValue* rotate = property_set_.GetPropertyCSSValue(GetCSSPropertyOffsetRotate()); - const CSSValue* anchor = - property_set_.GetPropertyCSSValue(GetCSSPropertyOffsetAnchor()); - - auto is_initial_identifier_value = [](const CSSValue* value, CSSValueID id) { - return value->IsIdentifierValue() && - DynamicTo<CSSIdentifierValue>(value)->GetValueID() == id; - }; - - bool use_distance = - !(distance->IsNumericLiteralValue() && - To<CSSNumericLiteralValue>(*distance).DoubleValue() == 0.0); - const auto* rotate_list_value = DynamicTo<CSSValueList>(rotate); - bool is_rotate_auto = rotate_list_value && rotate_list_value->length() == 1 && - is_initial_identifier_value(&rotate_list_value->First(), - CSSValueID::kAuto); - bool is_rotate_zero = - rotate_list_value && rotate_list_value->length() == 1 && - rotate_list_value->First().IsNumericLiteralValue() && - (To<CSSNumericLiteralValue>(rotate_list_value->First()).DoubleValue() == - 0.0); - bool is_rotate_auto_zero = - rotate_list_value && rotate_list_value->length() == 2 && - rotate_list_value->Item(1).IsNumericLiteralValue() && - (To<CSSNumericLiteralValue>(rotate_list_value->Item(1)).DoubleValue() == - 0.0) && - is_initial_identifier_value(&rotate_list_value->Item(0), - CSSValueID::kAuto); - bool use_rotate = (use_distance && is_rotate_zero) || - (!is_initial_identifier_value(rotate, CSSValueID::kAuto) && - !is_rotate_auto && !is_rotate_auto_zero); - bool use_path = use_rotate || use_distance || - !is_initial_identifier_value(path, CSSValueID::kNone); - bool use_position = - !use_path || !is_initial_identifier_value(position, CSSValueID::kAuto); - bool use_anchor = !is_initial_identifier_value(anchor, CSSValueID::kAuto); - - StringBuilder result; - if (RuntimeEnabledFeatures::CSSOffsetPositionAnchorEnabled()) { - if (use_position) { - result.Append(position->CssText()); - } - } - if (use_path) { + if (!path->IsInitialValue()) { if (!result.empty()) { result.Append(" "); } result.Append(path->CssText()); - } - if (use_distance) { - result.Append(" "); - result.Append(distance->CssText()); - } - if (use_rotate) { - result.Append(" "); - result.Append(rotate->CssText()); + if (!distance->IsInitialValue()) { + result.Append(" "); + result.Append(distance->CssText()); + } + if (!rotate->IsInitialValue()) { + result.Append(" "); + result.Append(rotate->CssText()); + } + } else { + // The longhand values cannot be serialized as a valid shorthand value. + // Serialize them as individual longhands instead. + if (!distance->IsInitialValue() || !rotate->IsInitialValue()) { + return String(); + } } if (RuntimeEnabledFeatures::CSSOffsetPositionAnchorEnabled()) { - if (use_anchor) { + const CSSValue* anchor = + property_set_.GetPropertyCSSValue(GetCSSPropertyOffsetAnchor()); + if (!anchor->IsInitialValue()) { result.Append(" / "); result.Append(anchor->CssText()); }
diff --git a/third_party/blink/renderer/core/display_lock/display_lock_utilities.h b/third_party/blink/renderer/core/display_lock/display_lock_utilities.h index cfde6cc..fa09d68c 100644 --- a/third_party/blink/renderer/core/display_lock/display_lock_utilities.h +++ b/third_party/blink/renderer/core/display_lock/display_lock_utilities.h
@@ -53,8 +53,12 @@ friend void Document::UpdateStyleAndLayoutForRange( const Range* range, DocumentUpdateReason reason); - friend void Document::UpdateStyleAndLayoutTreeForNode(const Node*); - friend void Document::UpdateStyleAndLayoutTreeForSubtree(const Node* node); + friend void Document::UpdateStyleAndLayoutTreeForNode( + const Node* node, + DocumentUpdateReason reason); + friend void Document::UpdateStyleAndLayoutTreeForSubtree( + const Node* node, + DocumentUpdateReason reason); friend void Document::EnsurePaintLocationDataValidForNode( const Node* node, DocumentUpdateReason reason);
diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink/renderer/core/dom/document.cc index a0a841f..4653481 100644 --- a/third_party/blink/renderer/core/dom/document.cc +++ b/third_party/blink/renderer/core/dom/document.cc
@@ -2382,7 +2382,8 @@ } } -void Document::UpdateStyleAndLayoutTreeForNode(const Node* node) { +void Document::UpdateStyleAndLayoutTreeForNode(const Node* node, + DocumentUpdateReason) { DCHECK(node); if (!node->InActiveDocument()) { // If |node| is not in the active document, we can't update its style or @@ -2401,7 +2402,8 @@ UpdateStyleAndLayoutTree(upgrade); } -void Document::UpdateStyleAndLayoutTreeForSubtree(const Node* node) { +void Document::UpdateStyleAndLayoutTreeForSubtree(const Node* node, + DocumentUpdateReason) { DCHECK(node); if (!node->InActiveDocument()) { DCHECK_EQ(node->ownerDocument(), this); @@ -5119,8 +5121,11 @@ if (new_focused_element && new_focused_element->GetDocument() != this) return true; - if (new_focused_element) - UpdateStyleAndLayoutTreeForNode(new_focused_element); + if (new_focused_element) { + UpdateStyleAndLayoutTreeForNode(new_focused_element, + DocumentUpdateReason::kFocus); + } + if (new_focused_element && new_focused_element->IsFocusable()) { if (IsRootEditableElement(*new_focused_element) && !AcceptsEditingFocus(*new_focused_element)) {
diff --git a/third_party/blink/renderer/core/dom/document.h b/third_party/blink/renderer/core/dom/document.h index 971daa6..788f961 100644 --- a/third_party/blink/renderer/core/dom/document.h +++ b/third_party/blink/renderer/core/dom/document.h
@@ -724,8 +724,8 @@ // does its own ancestor tree walk). void UpdateStyleAndLayoutTreeForThisDocument(); - void UpdateStyleAndLayoutTreeForNode(const Node*); - void UpdateStyleAndLayoutTreeForSubtree(const Node*); + void UpdateStyleAndLayoutTreeForNode(const Node*, DocumentUpdateReason); + void UpdateStyleAndLayoutTreeForSubtree(const Node*, DocumentUpdateReason); void UpdateStyleAndLayout(DocumentUpdateReason); void LayoutUpdated();
diff --git a/third_party/blink/renderer/core/dom/element.cc b/third_party/blink/renderer/core/dom/element.cc index df5f6f5..51ae5ad 100644 --- a/third_party/blink/renderer/core/dom/element.cc +++ b/third_party/blink/renderer/core/dom/element.cc
@@ -2397,7 +2397,8 @@ // // TODO(tkent): We should avoid updating style. We'd like to check only // DOM-level focusability here. - GetDocument().UpdateStyleAndLayoutTreeForNode(this); + GetDocument().UpdateStyleAndLayoutTreeForNode(this, + DocumentUpdateReason::kFocus); if (!SupportsFocus() && !GetFocusableArea()) { blur(); } @@ -5127,7 +5128,8 @@ params.gate_on_user_activation); // Ensure we have clean style (including forced display locks). - GetDocument().UpdateStyleAndLayoutTreeForNode(this); + GetDocument().UpdateStyleAndLayoutTreeForNode(this, + DocumentUpdateReason::kFocus); // https://html.spec.whatwg.org/C/#focusing-steps // @@ -5386,7 +5388,8 @@ *this, DisplayLockActivationReason::kUserFocus)) { return false; } - GetDocument().UpdateStyleAndLayoutTreeForNode(this); + GetDocument().UpdateStyleAndLayoutTreeForNode(this, + DocumentUpdateReason::kFocus); return IsFocusableStyle(); }
diff --git a/third_party/blink/renderer/core/dom/node.cc b/third_party/blink/renderer/core/dom/node.cc index 6bf9881..a22baa0 100644 --- a/third_party/blink/renderer/core/dom/node.cc +++ b/third_party/blink/renderer/core/dom/node.cc
@@ -1657,8 +1657,10 @@ // FIXME: Shouldn't these functions be in the editing code? Code that asks // questions about HTML in the core DOM class is obviously misplaced. bool Node::CanStartSelection() const { - if (DisplayLockUtilities::LockedAncestorPreventingPaint(*this)) - GetDocument().UpdateStyleAndLayoutTreeForNode(this); + if (DisplayLockUtilities::LockedAncestorPreventingPaint(*this)) { + GetDocument().UpdateStyleAndLayoutTreeForNode( + this, DocumentUpdateReason::kSelection); + } if (IsEditable(*this)) return true;
diff --git a/third_party/blink/renderer/core/editing/frame_caret.cc b/third_party/blink/renderer/core/editing/frame_caret.cc index 919dff9..5a7083f 100644 --- a/third_party/blink/renderer/core/editing/frame_caret.cc +++ b/third_party/blink/renderer/core/editing/frame_caret.cc
@@ -243,11 +243,14 @@ display_item_client_->PaintCaret(context, paint_offset, DisplayItem::kCaret); if (!frame_->Selection().IsHidden()) { - display_item_client_->RecordSelection( - context, paint_offset, - frame_->Selection().IsHandleVisible() - ? gfx::SelectionBound::Type::CENTER - : gfx::SelectionBound::Type::HIDDEN); + auto type = frame_->Selection().IsHandleVisible() + ? gfx::SelectionBound::Type::CENTER + : gfx::SelectionBound::Type::HIDDEN; + + if (type == gfx::SelectionBound::Type::CENTER || + base::FeatureList::IsEnabled(blink::features::kHiddenSelectionBounds)) { + display_item_client_->RecordSelection(context, paint_offset, type); + } } }
diff --git a/third_party/blink/renderer/core/editing/frame_selection_test.cc b/third_party/blink/renderer/core/editing/frame_selection_test.cc index 53b1a8d..5bdb289c 100644 --- a/third_party/blink/renderer/core/editing/frame_selection_test.cc +++ b/third_party/blink/renderer/core/editing/frame_selection_test.cc
@@ -6,6 +6,7 @@ #include <memory> #include "base/memory/scoped_refptr.h" +#include "base/test/scoped_feature_list.h" #include "testing/gmock/include/gmock/gmock-matchers.h" #include "testing/gtest/include/gtest/gtest.h" #include "third_party/blink/public/web/web_range.h" @@ -1426,8 +1427,11 @@ } } -TEST_F(FrameSelectionTest, - PaintCaretRecordsSelectionWhenCursorUpdatesRequested) { +TEST_F(FrameSelectionTest, PaintCaretRecordsSelectionWithNoSelectionHandles) { + base::test::ScopedFeatureList scoped_feature_list; + scoped_feature_list.InitAndEnableFeature( + blink::features::kHiddenSelectionBounds); + Text* text = AppendTextNode("Hello, World!"); UpdateAllLifecyclePhasesForTest();
diff --git a/third_party/blink/renderer/core/editing/spellcheck/spell_checker.cc b/third_party/blink/renderer/core/editing/spellcheck/spell_checker.cc index c61d1ae..b681479 100644 --- a/third_party/blink/renderer/core/editing/spellcheck/spell_checker.cc +++ b/third_party/blink/renderer/core/editing/spellcheck/spell_checker.cc
@@ -391,8 +391,10 @@ ElementsType elements_type) { // TODO(editing-dev): The use of updateStyleAndLayoutIgnorePendingStylesheets // needs to be audited. See http://crbug.com/590369 for more details. - if (elements_type == ElementsType::kOnlyNonEditable) - GetFrame().GetDocument()->UpdateStyleAndLayoutTreeForNode(&element); + if (elements_type == ElementsType::kOnlyNonEditable) { + GetFrame().GetDocument()->UpdateStyleAndLayoutTreeForNode( + &element, DocumentUpdateReason::kSpellCheck); + } for (Node& node : NodeTraversal::InclusiveDescendantsOf(element)) { auto* text_node = DynamicTo<Text>(node);
diff --git a/third_party/blink/renderer/core/execution_context/security_context_init.cc b/third_party/blink/renderer/core/execution_context/security_context_init.cc index 3b01050..b972a4c 100644 --- a/third_party/blink/renderer/core/execution_context/security_context_init.cc +++ b/third_party/blink/renderer/core/execution_context/security_context_init.cc
@@ -108,7 +108,7 @@ const FramePolicy& frame_policy, const absl::optional<ParsedPermissionsPolicy>& isolated_app_policy, const base::span<const mojom::blink::PermissionsPolicyFeature> - required_permissions_to_load) { + effective_enabled_permissions) { const url::Origin origin = execution_context_->GetSecurityOrigin()->ToUrlOrigin(); // If we are a HTMLViewSourceDocument we use container, header or @@ -209,7 +209,7 @@ // the required policies, which is checked separately in // NavigationRequest::CheckPermissionsPoliciesForFencedFrames. permissions_policy = PermissionsPolicy::CreateForFencedFrame( - origin, required_permissions_to_load); + origin, effective_enabled_permissions); } else { auto* parent_permissions_policy = frame.Tree().Parent() ? frame.Tree()
diff --git a/third_party/blink/renderer/core/execution_context/security_context_init.h b/third_party/blink/renderer/core/execution_context/security_context_init.h index 49b0516..f6cf8e6b 100644 --- a/third_party/blink/renderer/core/execution_context/security_context_init.h +++ b/third_party/blink/renderer/core/execution_context/security_context_init.h
@@ -46,7 +46,7 @@ const FramePolicy& frame_policy, const absl::optional<ParsedPermissionsPolicy>& isolated_app_policy, const base::span<const mojom::blink::PermissionsPolicyFeature> - required_permissions_to_load); + effective_enabled_permissions); void ApplyDocumentPolicy( DocumentPolicy::ParsedDocumentPolicy& document_policy, const String& report_only_document_policy_header);
diff --git a/third_party/blink/renderer/core/exported/web_node.cc b/third_party/blink/renderer/core/exported/web_node.cc index 21698fb4..ad71cb8c5 100644 --- a/third_party/blink/renderer/core/exported/web_node.cc +++ b/third_party/blink/renderer/core/exported/web_node.cc
@@ -140,7 +140,8 @@ return false; if (!private_->GetDocument().HaveRenderBlockingResourcesLoaded()) return false; - private_->GetDocument().UpdateStyleAndLayoutTreeForNode(private_.Get()); + private_->GetDocument().UpdateStyleAndLayoutTreeForNode( + private_.Get(), DocumentUpdateReason::kFocus); return element->IsFocusable(); }
diff --git a/third_party/blink/renderer/core/frame/local_frame_ukm_aggregator.cc b/third_party/blink/renderer/core/frame/local_frame_ukm_aggregator.cc index 00230ba0..c124404 100644 --- a/third_party/blink/renderer/core/frame/local_frame_ukm_aggregator.cc +++ b/third_party/blink/renderer/core/frame/local_frame_ukm_aggregator.cc
@@ -386,13 +386,17 @@ case DocumentUpdateReason::kAccessibility: case DocumentUpdateReason::kBaseColor: + case DocumentUpdateReason::kComputedStyle: case DocumentUpdateReason::kDisplayLock: case DocumentUpdateReason::kViewTransition: case DocumentUpdateReason::kIntersectionObservation: case DocumentUpdateReason::kOverlay: case DocumentUpdateReason::kPagePopup: + case DocumentUpdateReason::kPopover: case DocumentUpdateReason::kSizeChange: case DocumentUpdateReason::kSpellCheck: + case DocumentUpdateReason::kSMILAnimation: + case DocumentUpdateReason::kWebAnimation: sub_metric = kServiceDocumentUpdate; break;
diff --git a/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc b/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc index 88db9fb..037cff8 100644 --- a/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc +++ b/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc
@@ -1938,7 +1938,8 @@ // TODO(junov): Computing style here will be problematic for applying the // NoAllocDirectCall IDL attribute to drawImage. if (!GetComputedStyle()) { - GetDocument().UpdateStyleAndLayoutTreeForNode(this); + GetDocument().UpdateStyleAndLayoutTreeForNode( + this, DocumentUpdateReason::kCanvas); const_cast<HTMLCanvasElement*>(this)->EnsureComputedStyle(); } return LayoutObject::ShouldRespectImageOrientation(GetLayoutObject());
diff --git a/third_party/blink/renderer/core/html/forms/date_time_edit_element.cc b/third_party/blink/renderer/core/html/forms/date_time_edit_element.cc index 6b680dca..15442d8e 100644 --- a/third_party/blink/renderer/core/html/forms/date_time_edit_element.cc +++ b/third_party/blink/renderer/core/html/forms/date_time_edit_element.cc
@@ -649,7 +649,8 @@ DateTimeFieldElement* old_focused_field = static_cast<DateTimeFieldElement*>(old_focused_element); wtf_size_t index = FieldIndexOf(*old_focused_field); - GetDocument().UpdateStyleAndLayoutTreeForNode(old_focused_field); + GetDocument().UpdateStyleAndLayoutTreeForNode(old_focused_field, + DocumentUpdateReason::kFocus); if (index != kInvalidFieldIndex && old_focused_field->IsFocusable()) { old_focused_field->Focus(); return;
diff --git a/third_party/blink/renderer/core/html/forms/html_form_control_element.cc b/third_party/blink/renderer/core/html/forms/html_form_control_element.cc index c3acee5..cfffcf97 100644 --- a/third_party/blink/renderer/core/html/forms/html_form_control_element.cc +++ b/third_party/blink/renderer/core/html/forms/html_form_control_element.cc
@@ -42,6 +42,7 @@ #include "third_party/blink/renderer/core/html/html_element.h" #include "third_party/blink/renderer/core/html/parser/html_parser_idioms.h" #include "third_party/blink/renderer/core/html_names.h" +#include "third_party/blink/renderer/core/keywords.h" #include "third_party/blink/renderer/core/layout/layout_object.h" #include "third_party/blink/renderer/platform/bindings/exception_state.h" #include "third_party/blink/renderer/platform/instrumentation/use_counter.h" @@ -371,16 +372,16 @@ FastGetAttribute(html_names::kPopovertargetactionAttr).LowerASCII(); // ReflectEmpty="toggle", ReflectMissing="toggle" if (attribute_value.IsNull() || attribute_value.empty()) { - return kPopoverTargetActionToggle; - } else if (attribute_value == kPopoverTargetActionToggle || - attribute_value == kPopoverTargetActionShow || - attribute_value == kPopoverTargetActionHide) { + return keywords::kToggle; + } else if (attribute_value == keywords::kToggle || + attribute_value == keywords::kShow || + attribute_value == keywords::kHide) { return attribute_value; // ReflectOnly } else if (RuntimeEnabledFeatures::HTMLPopoverHintEnabled() && - attribute_value == kPopoverTargetActionHover) { + attribute_value == keywords::kHover) { return attribute_value; // ReflectOnly (with HTMLPopoverHint enabled) } else { - return kPopoverTargetActionToggle; // ReflectInvalid = "toggle" + return keywords::kToggle; // ReflectInvalid = "toggle" } } void HTMLFormControlElement::setPopoverTargetAction(const AtomicString& value) {
diff --git a/third_party/blink/renderer/core/html/forms/html_form_control_element.h b/third_party/blink/renderer/core/html/forms/html_form_control_element.h index ce3c5c6..659b834 100644 --- a/third_party/blink/renderer/core/html/forms/html_form_control_element.h +++ b/third_party/blink/renderer/core/html/forms/html_form_control_element.h
@@ -38,11 +38,6 @@ class HTMLFormElement; -constexpr const char* kPopoverTargetActionToggle = "toggle"; -constexpr const char* kPopoverTargetActionShow = "show"; -constexpr const char* kPopoverTargetActionHide = "hide"; -constexpr const char* kPopoverTargetActionHover = "hover"; - // HTMLFormControlElement is the default implementation of // ListedElement, and listed element implementations should use // HTMLFormControlElement unless there is a special reason.
diff --git a/third_party/blink/renderer/core/html/forms/html_label_element.cc b/third_party/blink/renderer/core/html/forms/html_label_element.cc index df28b53..925f2710 100644 --- a/third_party/blink/renderer/core/html/forms/html_label_element.cc +++ b/third_party/blink/renderer/core/html/forms/html_label_element.cc
@@ -236,7 +236,8 @@ } void HTMLLabelElement::Focus(const FocusParams& params) { - GetDocument().UpdateStyleAndLayoutTreeForNode(this); + GetDocument().UpdateStyleAndLayoutTreeForNode(this, + DocumentUpdateReason::kFocus); if (IsFocusable()) { HTMLElement::Focus(params); return;
diff --git a/third_party/blink/renderer/core/html/forms/html_select_menu_element.cc b/third_party/blink/renderer/core/html/forms/html_select_menu_element.cc index fc3470f..0769a9a 100644 --- a/third_party/blink/renderer/core/html/forms/html_select_menu_element.cc +++ b/third_party/blink/renderer/core/html/forms/html_select_menu_element.cc
@@ -23,6 +23,7 @@ #include "third_party/blink/renderer/core/html/html_slot_element.h" #include "third_party/blink/renderer/core/html_names.h" #include "third_party/blink/renderer/core/inspector/console_message.h" +#include "third_party/blink/renderer/core/keywords.h" #include "third_party/blink/renderer/core/page/chrome_client.h" #include "third_party/blink/renderer/core/page/page.h" #include "third_party/blink/renderer/platform/instrumentation/use_counter.h" @@ -277,7 +278,7 @@ HTMLElement* new_popover; new_popover = MakeGarbageCollected<HTMLDivElement>(document); - new_popover->setAttribute(html_names::kPopoverAttr, kPopoverTypeValueAuto); + new_popover->setAttribute(html_names::kPopoverAttr, keywords::kAuto); new_popover->setAttribute(html_names::kPartAttr, kListboxPartName); new_popover->setAttribute(html_names::kBehaviorAttr, kListboxPartName); new_popover->SetShadowPseudoId(AtomicString("-internal-selectmenu-listbox"));
diff --git a/third_party/blink/renderer/core/html/html_area_element.cc b/third_party/blink/renderer/core/html/html_area_element.cc index 876e0487..24e266d 100644 --- a/third_party/blink/renderer/core/html/html_area_element.cc +++ b/third_party/blink/renderer/core/html/html_area_element.cc
@@ -222,7 +222,8 @@ void HTMLAreaElement::UpdateSelectionOnFocus( SelectionBehaviorOnFocus selection_behavior, const FocusOptions* options) { - GetDocument().UpdateStyleAndLayoutTreeForNode(this); + GetDocument().UpdateStyleAndLayoutTreeForNode(this, + DocumentUpdateReason::kFocus); if (!IsFocusable()) return;
diff --git a/third_party/blink/renderer/core/html/html_element.cc b/third_party/blink/renderer/core/html/html_element.cc index 5b20c84..0151ed3 100644 --- a/third_party/blink/renderer/core/html/html_element.cc +++ b/third_party/blink/renderer/core/html/html_element.cc
@@ -91,6 +91,7 @@ #include "third_party/blink/renderer/core/html_names.h" #include "third_party/blink/renderer/core/input_type_names.h" #include "third_party/blink/renderer/core/inspector/console_message.h" +#include "third_party/blink/renderer/core/keywords.h" #include "third_party/blink/renderer/core/layout/adjust_for_absolute_zoom.h" #include "third_party/blink/renderer/core/layout/layout_box.h" #include "third_party/blink/renderer/core/layout/layout_box_model_object.h" @@ -824,7 +825,8 @@ // // TODO(tkent): We should avoid updating style. We'd like to check only // DOM-level focusability here. - GetDocument().UpdateStyleAndLayoutTreeForNode(this); + GetDocument().UpdateStyleAndLayoutTreeForNode(this, + DocumentUpdateReason::kFocus); if (!SupportsFocus()) blur(); } @@ -1172,14 +1174,15 @@ } namespace { -PopoverValueType GetPopoverTypeFromAttributeValue(String value) { - if (EqualIgnoringASCIICase(value, kPopoverTypeValueAuto) || - (!value.IsNull() && value.empty())) { + +PopoverValueType GetPopoverTypeFromAttributeValue(const AtomicString& value) { + AtomicString lower_value = value.LowerASCII(); + if (lower_value == keywords::kAuto || (!value.IsNull() && value.empty())) { return PopoverValueType::kAuto; - } else if (EqualIgnoringASCIICase(value, kPopoverTypeValueHint) && + } else if (lower_value == keywords::kHint && RuntimeEnabledFeatures::HTMLPopoverHintEnabled()) { return PopoverValueType::kHint; - } else if (EqualIgnoringASCIICase(value, kPopoverTypeValueManual)) { + } else if (lower_value == keywords::kManual) { return PopoverValueType::kManual; } else if (!value.IsNull()) { // Invalid values default to popover=manual. @@ -1189,7 +1192,7 @@ } } // namespace -void HTMLElement::UpdatePopoverAttribute(String value) { +void HTMLElement::UpdatePopoverAttribute(const AtomicString& value) { if (!RuntimeEnabledFeatures::HTMLPopoverAttributeEnabled( GetDocument().GetExecutionContext())) { // If the feature flag isn't enabled, give a console warning about this @@ -1214,7 +1217,7 @@ PopoverValueType type = GetPopoverTypeFromAttributeValue(value); if (type == PopoverValueType::kManual && - !EqualIgnoringASCIICase(value, kPopoverTypeValueManual)) { + !EqualIgnoringASCIICase(value, keywords::kManual)) { GetDocument().AddConsoleMessage(MakeGarbageCollected<ConsoleMessage>( mojom::blink::ConsoleMessageSource::kOther, mojom::blink::ConsoleMessageLevel::kWarning, @@ -1275,15 +1278,15 @@ if (attribute_value.IsNull()) { return attribute_value; // Nullable } else if (attribute_value.empty()) { - return kPopoverTypeValueAuto; // ReflectEmpty = "auto" - } else if (attribute_value == kPopoverTypeValueAuto || - attribute_value == kPopoverTypeValueManual) { + return keywords::kAuto; // ReflectEmpty = "auto" + } else if (attribute_value == keywords::kAuto || + attribute_value == keywords::kManual) { return attribute_value; // ReflectOnly - } else if (attribute_value == kPopoverTypeValueHint && + } else if (attribute_value == keywords::kHint && RuntimeEnabledFeatures::HTMLPopoverHintEnabled()) { return attribute_value; // ReflectOnly (with HTMLPopoverHint enabled) } else { - return kPopoverTypeValueManual; // ReflectInvalid = "manual" + return keywords::kManual; // ReflectInvalid = "manual" } } void HTMLElement::setPopover(const AtomicString& value) { @@ -1544,7 +1547,8 @@ // Force a style update. This ensures that base property values are set prior // to `:popover-open` matching, so that transitions can start on the change to // top layer. - original_document.UpdateStyleAndLayoutTreeForNode(this); + original_document.UpdateStyleAndLayoutTreeForNode( + this, DocumentUpdateReason::kPopover); // Queue a delayed hide event, if necessary. if (RuntimeEnabledFeatures::HTMLPopoverHintEnabled()) { @@ -1852,7 +1856,8 @@ GetDocument().GetExecutionContext())); // The layout must be updated here because we call Element::isFocusable, // which requires an up-to-date layout. - GetDocument().UpdateStyleAndLayoutTreeForNode(this); + GetDocument().UpdateStyleAndLayoutTreeForNode(this, + DocumentUpdateReason::kPopover); if (auto* dialog = DynamicTo<HTMLDialogElement>(this)) { if (RuntimeEnabledFeatures::DialogNewFocusBehaviorEnabled()) {
diff --git a/third_party/blink/renderer/core/html/html_element.h b/third_party/blink/renderer/core/html/html_element.h index 6806563..c501a310 100644 --- a/third_party/blink/renderer/core/html/html_element.h +++ b/third_party/blink/renderer/core/html/html_element.h
@@ -66,9 +66,6 @@ kHint, kManual, }; -constexpr const char* kPopoverTypeValueAuto = "auto"; -constexpr const char* kPopoverTypeValueHint = "hint"; -constexpr const char* kPopoverTypeValueManual = "manual"; enum class PopoverTriggerAction { kNone, @@ -227,7 +224,7 @@ virtual bool IsPotentiallyRenderBlocking() const { return false; } // Popover API related functions. - void UpdatePopoverAttribute(String); + void UpdatePopoverAttribute(const AtomicString&); bool HasPopoverAttribute() const; // The IDL reflections: AtomicString popover() const;
diff --git a/third_party/blink/renderer/core/html/keywords.json5 b/third_party/blink/renderer/core/html/keywords.json5 index a87db98..f5e9bb9 100644 --- a/third_party/blink/renderer/core/html/keywords.json5 +++ b/third_party/blink/renderer/core/html/keywords.json5
@@ -76,11 +76,15 @@ // popover attribute (experimental) // https://github.com/openui/open-ui/blob/main/research/src/pages/popup/popup.research.explainer.mdx "auto", + "manual", "hint", - "async", + + // popovertargetaction attribute + // https://html.spec.whatwg.org/C/#attr-popovertargetaction + "toggle", "show", "hide", - "toggle", + "hover", // referrerpolicy attribute // https://w3c.github.io/webappsec-referrer-policy/#referrer-policies
diff --git a/third_party/blink/renderer/core/html/lazy_load_image_observer.cc b/third_party/blink/renderer/core/html/lazy_load_image_observer.cc index f4445373..c0f1edfd 100644 --- a/third_party/blink/renderer/core/html/lazy_load_image_observer.cc +++ b/third_party/blink/renderer/core/html/lazy_load_image_observer.cc
@@ -298,11 +298,11 @@ // WebEffectiveConnectionType. if (visible_load_time_metrics.is_initially_intersecting) { UMA_HISTOGRAM_ENUMERATION( - "Blink.VisibleBeforeLoaded.LazyLoadImages.AboveTheFold2", + "Blink.VisibleBeforeLoaded.LazyLoadImages.AboveTheFold3", GetNetworkStateNotifier().EffectiveType()); } else { UMA_HISTOGRAM_ENUMERATION( - "Blink.VisibleBeforeLoaded.LazyLoadImages.BelowTheFold2", + "Blink.VisibleBeforeLoaded.LazyLoadImages.BelowTheFold3", GetNetworkStateNotifier().EffectiveType()); } } else {
diff --git a/third_party/blink/renderer/core/html/lazy_load_image_observer_test.cc b/third_party/blink/renderer/core/html/lazy_load_image_observer_test.cc index d558e0a5b..a3cc3e9a 100644 --- a/third_party/blink/renderer/core/html/lazy_load_image_observer_test.cc +++ b/third_party/blink/renderer/core/html/lazy_load_image_observer_test.cc
@@ -676,9 +676,9 @@ test::RunPendingTasks(); histogram_tester.ExpectTotalCount( - "Blink.VisibleBeforeLoaded.LazyLoadImages.AboveTheFold2", 0); + "Blink.VisibleBeforeLoaded.LazyLoadImages.AboveTheFold3", 0); histogram_tester.ExpectTotalCount( - "Blink.VisibleBeforeLoaded.LazyLoadImages.BelowTheFold2", 0); + "Blink.VisibleBeforeLoaded.LazyLoadImages.BelowTheFold3", 0); histogram_tester.ExpectUniqueSample( "Blink.VisibleLoadTime.LazyLoadImages.AboveTheFold3.4G", 0, 1); histogram_tester.ExpectUniqueSample("Blink.VisibleLoadTime.LazyLoadImages", 0, @@ -737,7 +737,7 @@ // Nothing was below the fold so no BelowTheFold metrics should be reported. histogram_tester.ExpectTotalCount( - "Blink.VisibleBeforeLoaded.LazyLoadImages.BelowTheFold2", 0); + "Blink.VisibleBeforeLoaded.LazyLoadImages.BelowTheFold3", 0); histogram_tester.ExpectTotalCount( "Blink.VisibleLoadTime.LazyLoadImages.BelowTheFold3.4G", 0); } @@ -774,9 +774,9 @@ // VisibleBeforeLoaded should not be recorded since the image is not visible. histogram_tester.ExpectTotalCount( - "Blink.VisibleBeforeLoaded.LazyLoadImages.AboveTheFold2", 0); + "Blink.VisibleBeforeLoaded.LazyLoadImages.AboveTheFold3", 0); histogram_tester.ExpectTotalCount( - "Blink.VisibleBeforeLoaded.LazyLoadImages.BelowTheFold2", 0); + "Blink.VisibleBeforeLoaded.LazyLoadImages.BelowTheFold3", 0); // Scroll down so that the image is in the viewport. GetDocument().View()->LayoutViewport()->SetScrollOffset( @@ -789,9 +789,9 @@ // The image is now visible but loaded before being visible, so no // VisibleBeforeLoaded metrics should have been recorded. histogram_tester.ExpectTotalCount( - "Blink.VisibleBeforeLoaded.LazyLoadImages.AboveTheFold2", 0); + "Blink.VisibleBeforeLoaded.LazyLoadImages.AboveTheFold3", 0); histogram_tester.ExpectTotalCount( - "Blink.VisibleBeforeLoaded.LazyLoadImages.BelowTheFold2", 0); + "Blink.VisibleBeforeLoaded.LazyLoadImages.BelowTheFold3", 0); } TEST_F(LazyLoadImagesTest, AboveTheFoldImageVisibleBeforeLoaded) { @@ -811,7 +811,7 @@ // VisibleBeforeLoaded should have been recorded immediately when the image // became visible. histogram_tester.ExpectUniqueSample( - "Blink.VisibleBeforeLoaded.LazyLoadImages.AboveTheFold2", + "Blink.VisibleBeforeLoaded.LazyLoadImages.AboveTheFold3", static_cast<int>(WebEffectiveConnectionType::kType4G), 1); // VisibleLoadTime should not have been recorded yet, since the image is not @@ -825,10 +825,10 @@ test::RunPendingTasks(); histogram_tester.ExpectUniqueSample( - "Blink.VisibleBeforeLoaded.LazyLoadImages.AboveTheFold2", + "Blink.VisibleBeforeLoaded.LazyLoadImages.AboveTheFold3", static_cast<int>(WebEffectiveConnectionType::kType4G), 1); histogram_tester.ExpectTotalCount( - "Blink.VisibleBeforeLoaded.LazyLoadImages.BelowTheFold2", 0); + "Blink.VisibleBeforeLoaded.LazyLoadImages.BelowTheFold3", 0); histogram_tester.ExpectTotalCount("Blink.VisibleLoadTime.LazyLoadImages", 1); histogram_tester.ExpectTotalCount( "Blink.VisibleLoadTime.LazyLoadImages.AboveTheFold3", 1); @@ -886,9 +886,9 @@ test::RunPendingTasks(); histogram_tester.ExpectTotalCount( - "Blink.VisibleBeforeLoaded.LazyLoadImages.AboveTheFold2", 0); + "Blink.VisibleBeforeLoaded.LazyLoadImages.AboveTheFold3", 0); histogram_tester.ExpectTotalCount( - "Blink.VisibleBeforeLoaded.LazyLoadImages.BelowTheFold2", 0); + "Blink.VisibleBeforeLoaded.LazyLoadImages.BelowTheFold3", 0); histogram_tester.ExpectUniqueSample("Blink.VisibleLoadTime.LazyLoadImages", 0, 1); histogram_tester.ExpectTotalCount( @@ -931,7 +931,7 @@ // VisibleBeforeLoaded should have been recorded immediately when the image // became visible. histogram_tester.ExpectUniqueSample( - "Blink.VisibleBeforeLoaded.LazyLoadImages.BelowTheFold2", + "Blink.VisibleBeforeLoaded.LazyLoadImages.BelowTheFold3", static_cast<int>(WebEffectiveConnectionType::kType4G), 1); // VisibleLoadTime should not have been recorded yet, since the image is not @@ -945,9 +945,9 @@ test::RunPendingTasks(); histogram_tester.ExpectTotalCount( - "Blink.VisibleBeforeLoaded.LazyLoadImages.AboveTheFold2", 0); + "Blink.VisibleBeforeLoaded.LazyLoadImages.AboveTheFold3", 0); histogram_tester.ExpectUniqueSample( - "Blink.VisibleBeforeLoaded.LazyLoadImages.BelowTheFold2", + "Blink.VisibleBeforeLoaded.LazyLoadImages.BelowTheFold3", static_cast<int>(WebEffectiveConnectionType::kType4G), 1); histogram_tester.ExpectTotalCount("Blink.VisibleLoadTime.LazyLoadImages", 1); histogram_tester.ExpectTotalCount( @@ -981,9 +981,9 @@ Compositor().BeginFrame(); test::RunPendingTasks(); histogram_tester.ExpectTotalCount( - "Blink.VisibleBeforeLoaded.LazyLoadImages.AboveTheFold2", 0); + "Blink.VisibleBeforeLoaded.LazyLoadImages.AboveTheFold3", 0); histogram_tester.ExpectTotalCount( - "Blink.VisibleBeforeLoaded.LazyLoadImages.BelowTheFold2", 0); + "Blink.VisibleBeforeLoaded.LazyLoadImages.BelowTheFold3", 0); histogram_tester.ExpectTotalCount( "Blink.VisibleLoadTime.LazyLoadImages.AboveTheFold3.4G", 0); histogram_tester.ExpectTotalCount(
diff --git a/third_party/blink/renderer/core/inspector/inspector_dom_agent.cc b/third_party/blink/renderer/core/inspector/inspector_dom_agent.cc index 9bd4eebc..6b7b86f7 100644 --- a/third_party/blink/renderer/core/inspector/inspector_dom_agent.cc +++ b/third_party/blink/renderer/core/inspector/inspector_dom_agent.cc
@@ -1679,7 +1679,8 @@ } } - element->GetDocument().UpdateStyleAndLayoutTreeForNode(element); + element->GetDocument().UpdateStyleAndLayoutTreeForNode( + element, DocumentUpdateReason::kInspector); StyleResolver& style_resolver = element->GetDocument().GetStyleResolver(); // Container rule origin no longer known at this point, match name from all // scopes. @@ -1716,7 +1717,8 @@ InspectorDOMAgent::GetContainerQueryingDescendants(Element* container) { // This won't work for edge cases with display locking // (https://crbug.com/1235306). - container->GetDocument().UpdateStyleAndLayoutTreeForSubtree(container); + container->GetDocument().UpdateStyleAndLayoutTreeForSubtree( + container, DocumentUpdateReason::kInspector); HeapVector<Member<Element>> querying_descendants; for (Element& element : ElementTraversal::DescendantsOf(*container)) {
diff --git a/third_party/blink/renderer/core/inspector/inspector_network_agent.cc b/third_party/blink/renderer/core/inspector/inspector_network_agent.cc index 162d2ee..7172ec1 100644 --- a/third_party/blink/renderer/core/inspector/inspector_network_agent.cc +++ b/third_party/blink/renderer/core/inspector/inspector_network_agent.cc
@@ -750,6 +750,8 @@ timing.CalculateMillisecondDelta(timing.WorkerRespondWithSettled())) .setSendStart(timing.CalculateMillisecondDelta(timing.SendStart())) .setSendEnd(timing.CalculateMillisecondDelta(timing.SendEnd())) + .setReceiveHeadersStart( + timing.CalculateMillisecondDelta(timing.ReceiveHeadersStart())) .setReceiveHeadersEnd( timing.CalculateMillisecondDelta(timing.ReceiveHeadersEnd())) .setPushStart(timing.PushStart().since_origin().InSecondsF())
diff --git a/third_party/blink/renderer/core/inspector/inspector_style_resolver.cc b/third_party/blink/renderer/core/inspector/inspector_style_resolver.cc index 4c045cc..6e59ef0 100644 --- a/third_party/blink/renderer/core/inspector/inspector_style_resolver.cc +++ b/third_party/blink/renderer/core/inspector/inspector_style_resolver.cc
@@ -29,7 +29,8 @@ // Update style and layout tree for collecting an up-to-date set of rules // and animations. - element_->GetDocument().UpdateStyleAndLayoutTreeForNode(element_); + element_->GetDocument().UpdateStyleAndLayoutTreeForNode( + element_, DocumentUpdateReason::kInspector); // FIXME: It's really gross for the inspector to reach in and access // StyleResolver directly here. We need to provide the Inspector better APIs
diff --git a/third_party/blink/renderer/core/inspector/inspector_trace_events.cc b/third_party/blink/renderer/core/inspector/inspector_trace_events.cc index 672c477a..1510477 100644 --- a/third_party/blink/renderer/core/inspector/inspector_trace_events.cc +++ b/third_party/blink/renderer/core/inspector/inspector_trace_events.cc
@@ -909,6 +909,8 @@ timing.CalculateMillisecondDelta(timing.WorkerReady())); dict.Add("sendStart", timing.CalculateMillisecondDelta(timing.SendStart())); dict.Add("sendEnd", timing.CalculateMillisecondDelta(timing.SendEnd())); + dict.Add("receiveHeadersStart", + timing.CalculateMillisecondDelta(timing.ReceiveHeadersStart())); dict.Add("receiveHeadersEnd", timing.CalculateMillisecondDelta(timing.ReceiveHeadersEnd())); dict.Add("pushStart", timing.PushStart().since_origin().InSecondsF());
diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_party/blink/renderer/core/loader/document_loader.cc index be59b40..c2eb91a 100644 --- a/third_party/blink/renderer/core/loader/document_loader.cc +++ b/third_party/blink/renderer/core/loader/document_loader.cc
@@ -2483,7 +2483,7 @@ auto required_permissions_for_fenced_frames = FencedFrameProperties() ? base::make_span( - FencedFrameProperties()->required_permissions_to_load()) + FencedFrameProperties()->effective_enabled_permissions()) : base::span<const mojom::blink::PermissionsPolicyFeature>(); security_init.ApplyPermissionsPolicy( *frame_.Get(), response_, frame_policy_, initial_permissions_policy_,
diff --git a/third_party/blink/renderer/core/svg/svg_animate_element.cc b/third_party/blink/renderer/core/svg/svg_animate_element.cc index a6e5a89..845dc1d 100644 --- a/third_party/blink/renderer/core/svg/svg_animate_element.cc +++ b/third_party/blink/renderer/core/svg/svg_animate_element.cc
@@ -60,7 +60,8 @@ // Refer to comment in Element::computedStyle. DCHECK(element->InActiveDocument()); - element->GetDocument().UpdateStyleAndLayoutTreeForNode(element); + element->GetDocument().UpdateStyleAndLayoutTreeForNode( + element, DocumentUpdateReason::kSMILAnimation); // Don't include any properties resulting from CSS Transitions/Animations or // SMIL animations, as we want to retrieve the "base value".
diff --git a/third_party/blink/renderer/core/view_transition/view_transition_style_tracker.cc b/third_party/blink/renderer/core/view_transition/view_transition_style_tracker.cc index 3790341..73a592ad 100644 --- a/third_party/blink/renderer/core/view_transition/view_transition_style_tracker.cc +++ b/third_party/blink/renderer/core/view_transition/view_transition_style_tracker.cc
@@ -694,6 +694,13 @@ for (const auto& root_name : AllRootTags()) transition_names.push_front(root_name); +#if DCHECK_IS_ON() + for (wtf_size_t i = 0; i < transition_names.size(); ++i) { + DCHECK_EQ(transition_names.Find(transition_names[i]), i) + << " Duplicate transition name: " << transition_names[i]; + } +#endif + // This informs the style engine the set of names we have, which will be used // to create the pseudo element tree. document_->GetStyleEngine().SetViewTransitionNames(transition_names); @@ -787,7 +794,6 @@ data->element_index = next_index++; element_data_map_.insert(name, data); } - // Reuse any previously generated snapshot_id for this element. If there was // none yet, then generate the resource id. auto& snapshot_id = @@ -828,10 +834,18 @@ if (found_new_names) { VectorOf<std::pair<AtomicString, int>> new_name_pairs; int next_name_index = 0; - for (const auto& root_name : AllRootTags()) + HashSet<AtomicString> unique_names; + for (const auto& root_name : AllRootTags()) { new_name_pairs.push_back(std::make_pair(root_name, ++next_name_index)); - for (auto& [name, data] : element_data_map_) - new_name_pairs.push_back(std::make_pair(name, data->element_index)); + DCHECK(!unique_names.Contains(root_name)); + unique_names.insert(root_name); + } + for (auto& [name, data] : element_data_map_) { + if (!unique_names.Contains(name)) { + new_name_pairs.push_back(std::make_pair(name, data->element_index)); + unique_names.insert(name); + } + } std::sort(new_name_pairs.begin(), new_name_pairs.end(), [](const std::pair<AtomicString, int>& left, @@ -843,6 +857,13 @@ for (auto& [name, index] : new_name_pairs) new_names.push_back(name); +#if DCHECK_IS_ON() + for (wtf_size_t i = 0; i < new_names.size(); ++i) { + DCHECK_EQ(new_names.Find(new_names[i]), i) + << " Duplicate transition name: " << new_names[i]; + } +#endif + document_->GetStyleEngine().SetViewTransitionNames(new_names); }
diff --git a/third_party/blink/renderer/modules/accessibility/ax_node_object.cc b/third_party/blink/renderer/modules/accessibility/ax_node_object.cc index f51fdbeb..99c6b2e 100644 --- a/third_party/blink/renderer/modules/accessibility/ax_node_object.cc +++ b/third_party/blink/renderer/modules/accessibility/ax_node_object.cc
@@ -4734,7 +4734,8 @@ return false; } - document->UpdateStyleAndLayoutTreeForNode(node); + document->UpdateStyleAndLayoutTreeForNode( + node, DocumentUpdateReason::kAccessibility); // An AXObject's node will always be of type `Element`, `Document` or // `Text`. If the object we're currently on is associated with the currently @@ -4764,7 +4765,8 @@ if (!document || !node) return false; - document->UpdateStyleAndLayoutTreeForNode(node); + document->UpdateStyleAndLayoutTreeForNode( + node, DocumentUpdateReason::kAccessibility); if (!CanSetFocusAttribute()) return false;
diff --git a/third_party/blink/renderer/modules/ad_auction/ad_auction_data_config.idl b/third_party/blink/renderer/modules/ad_auction/ad_auction_data_config.idl new file mode 100644 index 0000000..2256c39 --- /dev/null +++ b/third_party/blink/renderer/modules/ad_auction/ad_auction_data_config.idl
@@ -0,0 +1,10 @@ +// Copyright 2023 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Information about a Bidding and Auction server style auction. +// https://github.com/WICG/turtledove/blob/main/FLEDGE_browser_bidding_and_auction_API.md + +dictionary AdAuctionDataConfig { + required USVString seller; +};
diff --git a/third_party/blink/renderer/modules/ad_auction/navigator_auction.cc b/third_party/blink/renderer/modules/ad_auction/navigator_auction.cc index 28492b3..3645d1cca 100644 --- a/third_party/blink/renderer/modules/ad_auction/navigator_auction.cc +++ b/third_party/blink/renderer/modules/ad_auction/navigator_auction.cc
@@ -36,6 +36,7 @@ #include "third_party/blink/renderer/bindings/core/v8/v8_throw_dom_exception.h" #include "third_party/blink/renderer/bindings/core/v8/v8_union_fencedframeconfig_usvstring.h" #include "third_party/blink/renderer/bindings/core/v8/v8_union_usvstring_usvstringsequence.h" +#include "third_party/blink/renderer/bindings/modules/v8/v8_ad_auction_data_config.h" #include "third_party/blink/renderer/bindings/modules/v8/v8_ad_properties.h" #include "third_party/blink/renderer/bindings/modules/v8/v8_ad_request_config.h" #include "third_party/blink/renderer/bindings/modules/v8/v8_ad_targeting.h" @@ -3410,4 +3411,80 @@ .canLoadAdAuctionFencedFrame(script_state); } +ScriptPromise NavigatorAuction::getInterestGroupAdAuctionData( + ScriptState* script_state, + const AdAuctionDataConfig* config, + ExceptionState& exception_state) { + CHECK(config); + if (!script_state->ContextIsValid()) { + return ScriptPromise(); + } + + scoped_refptr<const SecurityOrigin> seller = ParseOrigin(config->seller()); + if (!seller) { + exception_state.ThrowTypeError(String::Format( + "seller '%s' for AdAuctionDataConfig must be a valid https origin.", + config->seller().Utf8().c_str())); + return ScriptPromise(); + } + + auto* resolver = MakeGarbageCollected<ScriptPromiseResolver>( + script_state, exception_state.GetContext()); + + ScriptPromise promise = resolver->Promise(); + + ad_auction_service_->GetInterestGroupAdAuctionData( + seller, resolver->WrapCallbackInScriptScope(WTF::BindOnce( + &NavigatorAuction::GetInterestGroupAdAuctionDataComplete, + WrapPersistent(this)))); + return promise; +} + +void NavigatorAuction::GetInterestGroupAdAuctionDataComplete( + ScriptPromiseResolver* resolver, + mojo_base::BigBuffer data) { + ScriptState* script_state = resolver->GetScriptState(); + v8::Isolate* isolate = script_state->GetIsolate(); + v8::Local<v8::ArrayBuffer> array_buffer = + v8::ArrayBuffer::New(isolate, data.size()); + if (data.size() > 0) { + CHECK(array_buffer->Data()); + memcpy(array_buffer->Data(), data.data(), data.size()); + } + v8::Local<v8::Uint8Array> uint8_array = + v8::Uint8Array::New(array_buffer, 0, data.size()); + resolver->Resolve(uint8_array); +} + +/* static */ +ScriptPromise NavigatorAuction::getInterestGroupAdAuctionData( + ScriptState* script_state, + Navigator& navigator, + const AdAuctionDataConfig* config, + ExceptionState& exception_state) { + if (!navigator.DomWindow()) { + exception_state.ThrowDOMException(DOMExceptionCode::kInvalidAccessError, + "The document has no window associated."); + return ScriptPromise(); + } + RecordCommonFledgeUseCounters(navigator.DomWindow()->document()); + const ExecutionContext* context = ExecutionContext::From(script_state); + if (!context->IsFeatureEnabled( + blink::mojom::PermissionsPolicyFeature::kRunAdAuction)) { + exception_state.ThrowDOMException( + DOMExceptionCode::kNotAllowedError, + "Feature run-ad-auction is not enabled by Permissions Policy"); + return ScriptPromise(); + } + if (!base::FeatureList::IsEnabled( + blink::features::kAdInterestGroupAPIRestrictedPolicyByDefault) && + FeatureWouldBeBlockedByRestrictedPermissionsPolicy(navigator)) { + AddWarningMessageToConsole(script_state, "run-ad-auction", + "getInterestGroupAdAuctionData"); + } + + return From(ExecutionContext::From(script_state), navigator) + .getInterestGroupAdAuctionData(script_state, config, exception_state); +} + } // namespace blink
diff --git a/third_party/blink/renderer/modules/ad_auction/navigator_auction.h b/third_party/blink/renderer/modules/ad_auction/navigator_auction.h index a28e3042..f6638c2 100644 --- a/third_party/blink/renderer/modules/ad_auction/navigator_auction.h +++ b/third_party/blink/renderer/modules/ad_auction/navigator_auction.h
@@ -26,6 +26,7 @@ namespace blink { +class AdAuctionDataConfig; class AdRequestConfig; class Ads; class AuctionAdInterestGroup; @@ -123,6 +124,15 @@ const Vector<std::pair<String, String>>& replacement, ExceptionState& exception_state); + ScriptPromise getInterestGroupAdAuctionData(ScriptState* script_state, + const AdAuctionDataConfig* config, + ExceptionState& exception_state); + static ScriptPromise getInterestGroupAdAuctionData( + ScriptState* script_state, + Navigator& navigator, + const AdAuctionDataConfig* config, + ExceptionState& exception_state); + ScriptPromise createAdRequest(ScriptState*, const AdRequestConfig*, ExceptionState&); @@ -202,6 +212,9 @@ // Completion callback for Mojo call made by deprecatedReplaceInURNComplete(). void ReplaceInURNComplete(ScriptPromiseResolver* resolver); + void GetInterestGroupAdAuctionDataComplete(ScriptPromiseResolver* resolver, + mojo_base::BigBuffer data); + // Manage queues of cross-site join and leave operations that have yet to be // sent to the browser process. JoinLeaveQueue<PendingJoin> queued_cross_site_joins_;
diff --git a/third_party/blink/renderer/modules/ad_auction/navigator_auction.idl b/third_party/blink/renderer/modules/ad_auction/navigator_auction.idl index 8adf2fb..6d4a53a3 100644 --- a/third_party/blink/renderer/modules/ad_auction/navigator_auction.idl +++ b/third_party/blink/renderer/modules/ad_auction/navigator_auction.idl
@@ -37,6 +37,9 @@ [RuntimeEnable=AllowURLsinIframes, CallWith=ScriptState, Measure, RaisesException] Promise<void> deprecatedReplaceInURN(UrnOrConfig urn_or_config, record<USVString, USVString> replacements); + [RuntimeEnable=FledgeBiddingAndAuctionServer, CallWith=ScriptState, Measure, RaisesException] + Promise<Uint8Array> getInterestGroupAdAuctionData(AdAuctionDataConfig config); + [RuntimeEnabled=Parakeet, CallWith=ScriptState, Measure, RaisesException] Promise<Ads> createAdRequest(AdRequestConfig config);
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc index 3394cf7..dcf9247f8 100644 --- a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc +++ b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc
@@ -495,7 +495,8 @@ CanvasOps::kSetFont, IdentifiabilityBenignStringToken(new_font)); } - canvas()->GetDocument().UpdateStyleAndLayoutTreeForNode(canvas()); + canvas()->GetDocument().UpdateStyleAndLayoutTreeForNode( + canvas(), DocumentUpdateReason::kCanvas); // The following early exit is dependent on the cache not being empty // because an empty cache may indicate that a style change has occured @@ -725,8 +726,10 @@ String CanvasRenderingContext2D::direction() const { if (GetState().GetDirection() == - CanvasRenderingContext2DState::kDirectionInherit) - canvas()->GetDocument().UpdateStyleAndLayoutTreeForNode(canvas()); + CanvasRenderingContext2DState::kDirectionInherit) { + canvas()->GetDocument().UpdateStyleAndLayoutTreeForNode( + canvas(), DocumentUpdateReason::kCanvas); + } return ToTextDirection(GetState().GetDirection(), canvas()) == TextDirection::kRtl ? kRtlDirectionString @@ -931,7 +934,8 @@ if (!canvas()->GetDocument().GetFrame()) return MakeGarbageCollected<TextMetrics>(); - canvas()->GetDocument().UpdateStyleAndLayoutTreeForNode(canvas()); + canvas()->GetDocument().UpdateStyleAndLayoutTreeForNode( + canvas(), DocumentUpdateReason::kCanvas); const Font& font = AccessFont(); @@ -986,7 +990,8 @@ // accessFont needs the style to be up to date, but updating style can cause // script to run, (e.g. due to autofocus) which can free the canvas (set size // to 0, for example), so update style before grabbing the PaintCanvas. - canvas()->GetDocument().UpdateStyleAndLayoutTreeForNode(canvas()); + canvas()->GetDocument().UpdateStyleAndLayoutTreeForNode( + canvas(), DocumentUpdateReason::kCanvas); cc::PaintCanvas* c = GetOrCreatePaintCanvas(); if (!c)
diff --git a/third_party/blink/renderer/modules/indexeddb/idb_object_store.cc b/third_party/blink/renderer/modules/indexeddb/idb_object_store.cc index 7b052ccc7..a2822c4 100644 --- a/third_party/blink/renderer/modules/indexeddb/idb_object_store.cc +++ b/third_party/blink/renderer/modules/indexeddb/idb_object_store.cc
@@ -58,6 +58,7 @@ #include "third_party/blink/renderer/platform/bindings/exception_state.h" #include "third_party/blink/renderer/platform/bindings/script_state.h" #include "third_party/blink/renderer/platform/instrumentation/tracing/trace_event.h" +#include "third_party/blink/renderer/platform/wtf/functional.h" #include "third_party/blink/renderer/platform/wtf/shared_buffer.h" #include "v8/include/v8.h" @@ -772,8 +773,9 @@ IDBRequest* request = IDBRequest::Create( script_state, this, transaction_.Get(), std::move(metrics)); - BackendDB()->Clear(transaction_->Id(), Id(), - request->CreateWebCallbacks().release()); + BackendDB()->Clear( + transaction_->Id(), Id(), + WTF::BindOnce(&IDBRequest::OnClear, WrapPersistent(request))); return request; }
diff --git a/third_party/blink/renderer/modules/indexeddb/idb_request.cc b/third_party/blink/renderer/modules/indexeddb/idb_request.cc index 9054edf..b1abb5a 100644 --- a/third_party/blink/renderer/modules/indexeddb/idb_request.cc +++ b/third_party/blink/renderer/modules/indexeddb/idb_request.cc
@@ -445,6 +445,12 @@ WrapPersistent(transaction_.Get())))); } +void IDBRequest::OnClear(bool success) { + if (success) { + HandleResponse(); + } +} + void IDBRequest::EnqueueResponse(DOMException* error) { TRACE_EVENT0("IndexedDB", "IDBRequest::EnqueueResponse(DOMException)"); if (!ShouldEnqueueEvent()) {
diff --git a/third_party/blink/renderer/modules/indexeddb/idb_request.h b/third_party/blink/renderer/modules/indexeddb/idb_request.h index 2906fe9..2e67f39e 100644 --- a/third_party/blink/renderer/modules/indexeddb/idb_request.h +++ b/third_party/blink/renderer/modules/indexeddb/idb_request.h
@@ -282,6 +282,8 @@ mojo::PendingReceiver<mojom::blink::IDBDatabaseGetAllResultSink> receiver); + void OnClear(bool success); + // Only IDBOpenDBRequest instances should receive these: virtual void EnqueueBlocked(int64_t old_version) { NOTREACHED(); } virtual void EnqueueUpgradeNeeded(int64_t old_version,
diff --git a/third_party/blink/renderer/modules/indexeddb/idb_request_test.cc b/third_party/blink/renderer/modules/indexeddb/idb_request_test.cc index e9c252f..624e0cc 100644 --- a/third_party/blink/renderer/modules/indexeddb/idb_request_test.cc +++ b/third_party/blink/renderer/modules/indexeddb/idb_request_test.cc
@@ -143,8 +143,7 @@ pending_callbacks) override {} void Clear(int64_t transaction_id, int64_t object_store_id, - mojo::PendingAssociatedRemote<mojom::blink::IDBCallbacks> - pending_callbacks) override {} + ClearCallback callback) override {} void CreateIndex(int64_t transaction_id, int64_t object_store_id, int64_t index_id,
diff --git a/third_party/blink/renderer/modules/indexeddb/mock_idb_database.h b/third_party/blink/renderer/modules/indexeddb/mock_idb_database.h index 54015c80..4c7940b1 100644 --- a/third_party/blink/renderer/modules/indexeddb/mock_idb_database.h +++ b/third_party/blink/renderer/modules/indexeddb/mock_idb_database.h
@@ -132,9 +132,7 @@ (override)); MOCK_METHOD(void, Clear, - (int64_t transaction_id, - int64_t object_store_id, - mojo::PendingAssociatedRemote<mojom::blink::IDBCallbacks>), + (int64_t transaction_id, int64_t object_store_id, ClearCallback), (override)); MOCK_METHOD(void, DidBecomeInactive, (), (override));
diff --git a/third_party/blink/renderer/modules/indexeddb/web_idb_database.cc b/third_party/blink/renderer/modules/indexeddb/web_idb_database.cc index 739a4d16..925d442 100644 --- a/third_party/blink/renderer/modules/indexeddb/web_idb_database.cc +++ b/third_party/blink/renderer/modules/indexeddb/web_idb_database.cc
@@ -275,14 +275,13 @@ GetCallbacksProxy(base::WrapUnique(callbacks))); } -void WebIDBDatabase::Clear(int64_t transaction_id, - int64_t object_store_id, - WebIDBCallbacks* callbacks) { +void WebIDBDatabase::Clear( + int64_t transaction_id, + int64_t object_store_id, + mojom::blink::IDBDatabase::ClearCallback success_callback) { IndexedDBDispatcher::ResetCursorPrefetchCaches(transaction_id, nullptr); - - callbacks->SetState(nullptr, transaction_id); database_->Clear(transaction_id, object_store_id, - GetCallbacksProxy(base::WrapUnique(callbacks))); + std::move(success_callback)); } void WebIDBDatabase::CreateIndex(int64_t transaction_id,
diff --git a/third_party/blink/renderer/modules/indexeddb/web_idb_database.h b/third_party/blink/renderer/modules/indexeddb/web_idb_database.h index 60b8d34..90a60e8 100644 --- a/third_party/blink/renderer/modules/indexeddb/web_idb_database.h +++ b/third_party/blink/renderer/modules/indexeddb/web_idb_database.h
@@ -105,7 +105,9 @@ void GetKeyGeneratorCurrentNumber(int64_t transaction_id, int64_t object_store_id, WebIDBCallbacks*); - void Clear(int64_t transaction_id, int64_t object_store_id, WebIDBCallbacks*); + void Clear(int64_t transaction_id, + int64_t object_store_id, + mojom::blink::IDBDatabase::ClearCallback success_callback); void CreateIndex(int64_t transaction_id, int64_t object_store_id, int64_t index_id,
diff --git a/third_party/blink/renderer/modules/sensor/README.md b/third_party/blink/renderer/modules/sensor/README.md index 4231db0..b36be89c 100644 --- a/third_party/blink/renderer/modules/sensor/README.md +++ b/third_party/blink/renderer/modules/sensor/README.md
@@ -1,25 +1,35 @@ -# Generic Sensor +# Generic Sensor API -`third_party/blink/renderer/modules/sensor` implements the following concrete -sensor interfaces based on the [Generic Sensor API] -(https://w3c.github.io/sensors): -1. [Ambient Light Sensor] (https://w3c.github.io/ambient-light) -1. [Accelerometer] (https://w3c.github.io/accelerometer) -1. [Gyroscope] (https://w3c.github.io/gyroscope) -1. [Magnetometer] (https://w3c.github.io/magnetometer) -1. [Absolute Orientation Sensor] (https://w3c.github.io/orientation-sensor) +This directory contains the Blink part (including the JavaScript APIs exposed +to users) of the [Generic Sensor API](https://w3c.github.io/sensors). + +The following concrete sensor interfaces are currently implemented: + +1. [Ambient Light Sensor](https://w3c.github.io/ambient-light) +1. [Accelerometer, Gravity Sensor and Linear Acceleration Sensor](https://w3c.github.io/accelerometer) +1. [Gyroscope](https://w3c.github.io/gyroscope) +1. [Magnetometer](https://w3c.github.io/magnetometer) +1. [Absolute Orientation Sensor and Relative Orientation Sensor](https://w3c.github.io/orientation-sensor) + +Some of the interfaces above depend on the `SensorExtraClasses` runtime flag. The platform-specific parts of the implementation are located in -`services/device/generic_sensor`. - +[`services/device/generic_sensor`](/services/device/generic_sensor). ## Testing -Sensors web tests are located in `web_tests/sensor`. +Sensors web tests are part of the +[web-platform-tests](https://web-platform-tests.org) project and are located in +multiple directories under `web_tests/external/wpt`. For example , +[`web_tests/external/wpt/accelerometer`](/third_party/blink/web_tests/external/wpt/accelerometer). +The sensor-agnostic parts of the tests are located in +[`web_tests/external/wpt/generic-sensor`](/third_party/blink/web_tests/external/wpt/generic-sensor). -Sensors browser tests are located in `content/test/data/generic_sensor`. +Browser tests are located in +[`content/browser/generic_sensor`](/content/browser/generic_sensor). +## Overall architecture -## Design Documents - -Please refer to the [design documentation](https://docs.google.com/document/d/1Ml65ZdW5AgIsZTszk4mD_ohr40pcrdVFOIf0ZtWxDv0) for more details. +The current design of the Chromium implementation of the Generic Sensor API is +described in +[`services/device/generic_sensor`](/services/device/generic_sensor/README.md).
diff --git a/third_party/blink/renderer/platform/scheduler/worker/non_main_thread_impl.cc b/third_party/blink/renderer/platform/scheduler/worker/non_main_thread_impl.cc index 78a45fe..2a07162f 100644 --- a/third_party/blink/renderer/platform/scheduler/worker/non_main_thread_impl.cc +++ b/third_party/blink/renderer/platform/scheduler/worker/non_main_thread_impl.cc
@@ -20,6 +20,7 @@ #include "base/task/single_thread_task_runner.h" #include "base/threading/thread_restrictions.h" #include "base/time/default_tick_clock.h" +#include "mojo/public/cpp/bindings/direct_receiver.h" #include "third_party/blink/public/common/features.h" #include "third_party/blink/public/platform/task_type.h" #include "third_party/blink/renderer/platform/heap/blink_gc_memory_dump_provider.h" @@ -54,7 +55,8 @@ base::MessagePumpType message_pump_type = base::MessagePumpType::DEFAULT; if (params.thread_type == ThreadType::kCompositorThread && - base::FeatureList::IsEnabled(features::kInputIpcDirect)) { + base::FeatureList::IsEnabled(features::kDirectCompositorThreadIpc) && + mojo::IsDirectReceiverSupported()) { message_pump_type = base::MessagePumpType::IO; } thread_ = std::make_unique<SimpleThreadImpl>(
diff --git a/third_party/blink/renderer/platform/widget/input/widget_input_handler_impl.cc b/third_party/blink/renderer/platform/widget/input/widget_input_handler_impl.cc index 97b5d5f4..cd71042 100644 --- a/third_party/blink/renderer/platform/widget/input/widget_input_handler_impl.cc +++ b/third_party/blink/renderer/platform/widget/input/widget_input_handler_impl.cc
@@ -51,8 +51,8 @@ frame_widget_input_handler_(std::move(frame_widget_input_handler)) { // NOTE: DirectReceiver must be bound on an IO thread, so input handlers which // live on the main thread (e.g. for popups) cannot use direct IPC for now. - if (base::FeatureList::IsEnabled(features::kInputIpcDirect) && - base::CurrentIOThread::IsSet()) { + if (base::FeatureList::IsEnabled(features::kDirectCompositorThreadIpc) && + base::CurrentIOThread::IsSet() && mojo::IsDirectReceiverSupported()) { receiver_.emplace<DirectReceiver>(mojo::DirectReceiverKey{}, this); } else { receiver_.emplace<Receiver>(this);
diff --git a/third_party/blink/renderer/platform/widget/widget_base.cc b/third_party/blink/renderer/platform/widget/widget_base.cc index 6fa9ebe3..1b6374e 100644 --- a/third_party/blink/renderer/platform/widget/widget_base.cc +++ b/third_party/blink/renderer/platform/widget/widget_base.cc
@@ -22,6 +22,7 @@ #include "gpu/command_buffer/client/shared_memory_limits.h" #include "gpu/command_buffer/common/context_creation_attribs.h" #include "gpu/ipc/client/gpu_channel_host.h" +#include "mojo/public/cpp/bindings/direct_receiver.h" #include "mojo/public/cpp/bindings/pending_associated_receiver.h" #include "mojo/public/cpp/bindings/pending_associated_remote.h" #include "services/viz/public/cpp/gpu/context_provider_command_buffer.h" @@ -611,6 +612,12 @@ params->compositor_task_runner = main_thread_compositor_task_runner_; } + if (base::FeatureList::IsEnabled(features::kDirectCompositorThreadIpc) && + !for_web_tests && params->compositor_task_runner && + mojo::IsDirectReceiverSupported()) { + params->use_direct_client_receiver = true; + } + // The renderer runs animations and layout for animate_only BeginFrames. params->wants_animate_only_begin_frames = true;
diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/web_tests/TestExpectations index 25ce4b6..15c480a 100644 --- a/third_party/blink/web_tests/TestExpectations +++ b/third_party/blink/web_tests/TestExpectations
@@ -266,11 +266,6 @@ crbug.com/1443559 virtual/view-transition-mpa-serialization/inspector-protocol/css/css-get-styles-for-view-transition.js [ Failure ] crbug.com/1443559 virtual/view-transition-mpa-serialization/view-transition/capture-callback-exception.html [ Failure ] crbug.com/1443559 virtual/view-transition-mpa-serialization/external/wpt/css/css-view-transitions/old-content-captures-clip-path.html [ Failure ] -crbug.com/1443559 virtual/view-transition-mpa-serialization/external/wpt/css/css-view-transitions/only-child-new.html [ Timeout ] -crbug.com/1443559 virtual/view-transition-mpa-serialization/external/wpt/css/css-view-transitions/only-child-old.html [ Timeout ] -crbug.com/1443559 virtual/view-transition-mpa-serialization/external/wpt/css/css-view-transitions/root-to-shared-animation-end.html [ Timeout ] -crbug.com/1443559 virtual/view-transition-mpa-serialization/external/wpt/css/css-view-transitions/root-to-shared-animation-incoming.html [ Timeout ] -crbug.com/1443559 virtual/view-transition-mpa-serialization/external/wpt/css/css-view-transitions/root-to-shared-animation-start.html [ Timeout ] crbug.com/1443559 [ Mac ] virtual/view-transition-mpa-serialization/external/wpt/css/css-view-transitions/fractional-translation-from-transform.html [ Failure ] ########## Ref tests can't be rebaselined ########## @@ -2895,6 +2890,7 @@ crbug.com/626703 [ Win ] virtual/partitioned-cookies/http/tests/inspector-protocol/network/disabled-cache-navigation.js [ Failure ] # ====== New tests from wpt-importer added here ====== +crbug.com/626703 [ Mac13 ] external/wpt/webrtc-encoded-transform/RTCPeerConnection-insertable-streams-simulcast.https.html [ Timeout ] crbug.com/626703 [ Mac13 ] external/wpt/html/semantics/links/hyperlink-auditing/headers.optional.html [ Timeout ] crbug.com/626703 [ Mac13 ] virtual/threaded-prefer-compositing/external/wpt/scroll-animations/scroll-timelines/effect-updateTiming.html [ Timeout ] crbug.com/626703 [ Mac13 ] virtual/threaded-prefer-compositing/external/wpt/scroll-animations/view-timelines/view-timeline-range.html [ Timeout ] @@ -6838,3 +6834,4 @@ crbug.com/1448024 external/wpt/scroll-animations/scroll-timelines/scroll-timeline-invalidation.html [ Failure Pass ] crbug.com/1447101 media/video-source-none-supported.html [ Failure Pass Timeout ] crbug.com/1430215 external/wpt/dom/events/scrolling/scrollend-event-for-user-scroll.html [ Failure Pass ] +crbug.com/1434378 virtual/fenced-frame-mparch/http/tests/inspector-protocol/fenced-frame/permissions-policy-fenced-frame.https.js [ Pass Timeout ]
diff --git a/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_8.json b/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_8.json index dc5e8b3..35f9590 100644 --- a/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_8.json +++ b/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_8.json
@@ -187893,7 +187893,7 @@ ] ], "break-spaces-006.html": [ - "c13a28e95fc8305cec401a2f61da4edc4caaf8ce", + "056aa8a21bcda057df1aef26836c7705c715874f", [ null, [ @@ -187958,7 +187958,7 @@ ] ], "break-spaces-011.html": [ - "8c40a31a35688512742727639c11091ac8163dd8", + "0355d6d6b519bca0e210c0a1151f4deccd1666d7", [ null, [ @@ -272683,11 +272683,11 @@ "support": { ".cache": { "gitignore2.json": [ - "0986412eeea04432d4ea5aafe271f99667be86e4", + "ede94680d234933a92ae243efcb257984f7d7149", [] ], "mtime.json": [ - "efff8b6c4f72cbf15b12faf22ec23cde496fe03d", + "4acca455e47ccbaa0633d90d75813ff291b4c01a", [] ] }, @@ -298133,6 +298133,10 @@ "eda83f2d1d575ab6f45e99146a3b6d3f13b3a20d", [] ], + "stretch-flex-item-checkbox-input.html.ini": [ + "63968e3e8e8a1f7bcc28f0ec74185129bd03b86d", + [] + ], "stretch-flex-item-radio-input-ref.html": [ "7ba10710b70fa15d03c5666570efadceeb6e93ae", [] @@ -327118,7 +327122,7 @@ [] ], "perspective-split-by-zero-w.html.ini": [ - "353d29429bfa0e114c37c27c8647715cc41592a7", + "32f1568b4024e788214c6a8a4fe812cbeaa12ed9", [] ], "perspective-svg-001-ref.html": [ @@ -330143,7 +330147,7 @@ [] ], "kind-of-widget-fallback-input-search-background-origin-001.html.ini": [ - "e701273fda8c0dd3be9dd3e01c02d2f0c8095745", + "75d19889abe7c3dbe90f3827115c58fe7ce20649", [] ], "kind-of-widget-fallback-input-search-background-position-001.html.ini": [ @@ -330158,6 +330162,10 @@ "01b12488a5a9b1a3900b8a88af5aa28f09582a51", [] ], + "kind-of-widget-fallback-input-search-border-block-start-style-001.html.ini": [ + "67d20de08231711ebeea0d56868aecd6e9d4be5c", + [] + ], "kind-of-widget-fallback-input-search-border-block-start-width-001.html.ini": [ "58815a13a5947defd3acedc17f7f9536d72d7f8d", [] @@ -337476,7 +337484,7 @@ [] ], "backdrop-filter-isolation-isolate.html.ini": [ - "0a19619ada965955bd9934f6fa60735037683908", + "134197d0a59c2320de5970fd2e4922af025f30cd", [] ], "backdrop-filter-isolation-ref.html": [ @@ -337596,13 +337604,17 @@ [] ], "backdrop-filters-opacity.html.ini": [ - "9b23d738a343d8334c35d9bed08c69578c395907", + "ff938bf4b69f33093b887cb0b30b75855f33df48", [] ], "backdrop-filters-saturate-ref.html": [ "f3407f344906e0a3e362a7d18c35e7fad9a6068e", [] ], + "backdrop-filters-saturate.html.ini": [ + "54fa147072000a13154fba488d0942f9ac161eb8", + [] + ], "backdrop-filters-sepia-ref.html": [ "eae10fe65c16ad94f9d6b6a3d9319daeb09692e5", [] @@ -337671,6 +337683,10 @@ "f10855da38fcd86b07151db96e2b9b8afd726379", [] ], + "css-backdrop-filters-animation-hue-rotate.html.ini": [ + "ce4f2d71c05abf55f3e507adcd0bab655be146e6", + [] + ], "css-backdrop-filters-animation-invert-ref.html": [ "9d4efb433e08dadac9e9d69b3f7e7e7791d2d002", [] @@ -338746,10 +338762,6 @@ [] ], "parsing": { - "offset-parsing-valid-expected.txt": [ - "82b61e302a466b6e72e19ba47ba86a338bb11cd1", - [] - ], "offset-parsing-valid.html.ini": [ "d001224a3047b7d59854e55d58b045a9716f5707", [] @@ -340813,6 +340825,10 @@ "01b8bbccd44d7f265c321227ba4052baac9471ec", [] ], + "override-to-optional.tentative.html.ini": [ + "2ae8803c7a319307129356489c95b991ee204f3f", + [] + ], "report-only-auto.tentative.html.headers": [ "1509127277798c1fae2c4acff201a1b8ee518d12", [] @@ -351849,7 +351865,7 @@ ], "event-order": { "before-load-hash-twice.html.ini": [ - "eeba5ab9572d12ad0a74c1e30d96c4fa476e5028", + "46f2992a1b006effd80a729210b14cf08351a570", [] ], "before-load-hash.html.ini": [ @@ -378448,6 +378464,14 @@ "e619090fcb964cbc6cdfadd61658e13fe27a69f4", [] ], + "constructor-basic.https-expected.txt": [ + "1ad81d46030e1f76e60f7931d2d8d76edc870f51", + [] + ], + "constructor-basic.https.html.ini": [ + "3cf1ba2ee67744272852f4ce24f8d7bdd0f6f7e2", + [] + ], "constructor-invalid-expected.txt": [ "812d44e52debafc3b28207676a4b25a1b7eb97cb", [] @@ -380501,7 +380525,7 @@ [] ], "modulepreload-as.html.ini": [ - "fe423267e5bf94f1984c2c03e29c51198028b9c0", + "cf114795216288c6a1815835316c415c6ffcb713", [] ], "modulepreload-expected.txt": [ @@ -387496,7 +387520,7 @@ [] ], "unregister-immediately-during-extendable-events.https.html.ini": [ - "0f2204cc829bab1ce95e8ac9ee827d992dc061ea", + "5a9efe769f34f0fa60d440ea7426f969dfc320a9", [] ], "unregister-then-register-new-script.https-expected.txt": [ @@ -393017,7 +393041,7 @@ [] ], "request-video-frame-callback-webrtc.https.html.ini": [ - "b19357b2428c43ae23bf3b42e41e36a8324b2b99", + "ca1de5dc41799bed5f77904d0eab5c1dd5505f98", [] ] }, @@ -472768,7 +472792,7 @@ ] ], "offset-parsing-valid.html": [ - "3ec10a7918f4c54197801a854df8a325b878af7a", + "7a5d9c94f057f2c20baa68a246e98424967c0d14", [ null, {} @@ -580594,7 +580618,7 @@ }, "notifications": { "constructor-basic.https.html": [ - "3f704de03e3395e0a4a1266f3e1eec17fc94cbe0", + "df959b922f9745c14045f423de8dafc89556f464", [ null, {}
diff --git a/third_party/blink/web_tests/external/wpt/css/css-flexbox/stretch-flex-item-checkbox-input.html.ini b/third_party/blink/web_tests/external/wpt/css/css-flexbox/stretch-flex-item-checkbox-input.html.ini new file mode 100644 index 0000000..63968e3e --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-flexbox/stretch-flex-item-checkbox-input.html.ini
@@ -0,0 +1,3 @@ +[stretch-flex-item-checkbox-input.html] + expected: + if (product == "content_shell") and (os == "mac") and (port == "mac12-arm64"): FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-transforms/perspective-split-by-zero-w.html.ini b/third_party/blink/web_tests/external/wpt/css/css-transforms/perspective-split-by-zero-w.html.ini index 353d294..32f1568 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-transforms/perspective-split-by-zero-w.html.ini +++ b/third_party/blink/web_tests/external/wpt/css/css-transforms/perspective-split-by-zero-w.html.ini
@@ -1,4 +1,5 @@ [perspective-split-by-zero-w.html] expected: - if (product == "content_shell") and (os == "mac") and (port == "mac13"): FAIL if (product == "content_shell") and (os == "mac") and (port == "mac13-arm64"): FAIL + if (product == "content_shell") and (os == "mac") and (port == "mac13"): FAIL + if (product == "content_shell") and (os == "mac") and (port == "mac12-arm64"): FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-background-origin-001.html.ini b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-background-origin-001.html.ini index e701273f..75d1988 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-background-origin-001.html.ini +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-background-origin-001.html.ini
@@ -1,3 +1,4 @@ [kind-of-widget-fallback-input-search-background-origin-001.html] expected: + if (product == "content_shell") and (os == "win") and (port == "win10.20h2"): FAIL if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-block-start-style-001.html.ini b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-block-start-style-001.html.ini new file mode 100644 index 0000000..67d20de --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-block-start-style-001.html.ini
@@ -0,0 +1,3 @@ +[kind-of-widget-fallback-input-search-border-block-start-style-001.html] + expected: + if (product == "content_shell") and (os == "linux"): FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/filter-effects/backdrop-filter-isolation-isolate.html.ini b/third_party/blink/web_tests/external/wpt/css/filter-effects/backdrop-filter-isolation-isolate.html.ini index 0a19619..134197d 100644 --- a/third_party/blink/web_tests/external/wpt/css/filter-effects/backdrop-filter-isolation-isolate.html.ini +++ b/third_party/blink/web_tests/external/wpt/css/filter-effects/backdrop-filter-isolation-isolate.html.ini
@@ -1,5 +1,6 @@ [backdrop-filter-isolation-isolate.html] expected: - if (product == "content_shell") and (os == "mac") and (port == "mac10.15"): FAIL if (product == "content_shell") and (os == "mac") and (port == "mac11"): FAIL + if (product == "content_shell") and (os == "mac") and (port == "mac12-arm64"): FAIL + if (product == "content_shell") and (os == "mac") and (port == "mac10.15"): FAIL if (product == "content_shell") and (os == "mac") and (port == "mac13-arm64"): FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/filter-effects/backdrop-filters-opacity.html.ini b/third_party/blink/web_tests/external/wpt/css/filter-effects/backdrop-filters-opacity.html.ini index 9b23d73..ff938bf 100644 --- a/third_party/blink/web_tests/external/wpt/css/filter-effects/backdrop-filters-opacity.html.ini +++ b/third_party/blink/web_tests/external/wpt/css/filter-effects/backdrop-filters-opacity.html.ini
@@ -1,4 +1,5 @@ [backdrop-filters-opacity.html] expected: + if (product == "content_shell") and (os == "mac") and (port == "mac10.15"): FAIL if (product == "content_shell") and (os == "mac") and (port == "mac13-arm64"): FAIL if (product == "content_shell") and (os == "mac") and (port == "mac12"): FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/filter-effects/backdrop-filters-saturate.html.ini b/third_party/blink/web_tests/external/wpt/css/filter-effects/backdrop-filters-saturate.html.ini new file mode 100644 index 0000000..54fa1470 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/filter-effects/backdrop-filters-saturate.html.ini
@@ -0,0 +1,3 @@ +[backdrop-filters-saturate.html] + expected: + if (product == "content_shell") and (os == "mac") and (port == "mac12-arm64"): FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/filter-effects/css-backdrop-filters-animation-hue-rotate.html.ini b/third_party/blink/web_tests/external/wpt/css/filter-effects/css-backdrop-filters-animation-hue-rotate.html.ini new file mode 100644 index 0000000..ce4f2d7 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/filter-effects/css-backdrop-filters-animation-hue-rotate.html.ini
@@ -0,0 +1,3 @@ +[css-backdrop-filters-animation-hue-rotate.html] + expected: + if (product == "content_shell") and (os == "mac") and (port == "mac12"): FAIL
diff --git a/third_party/blink/web_tests/external/wpt/css/motion/parsing/offset-parsing-valid-expected.txt b/third_party/blink/web_tests/external/wpt/css/motion/parsing/offset-parsing-valid-expected.txt new file mode 100644 index 0000000..d864253 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/motion/parsing/offset-parsing-valid-expected.txt
@@ -0,0 +1,32 @@ +This is a testharness.js-based test. +PASS e.style['offset'] = "100px none auto 90deg" should set the property value +PASS e.style['offset'] = "100px" should set the property value +FAIL e.style['offset'] = "auto none reverse" should set the property value assert_equals: serialization should be canonical expected "none reverse" but got "auto none reverse" +PASS e.style['offset'] = "auto" should set the property value +PASS e.style['offset'] = "center bottom path(\"M 1 2 V 3 Z\")" should set the property value +PASS e.style['offset'] = "center center path(\"M 0 0 L 100 100 M 100 200 L 200 200 Z L 300 300 Z\") 100% 90deg / left bottom" should set the property value +PASS e.style['offset'] = "left bottom ray(0rad closest-corner) 10px auto 30deg / right bottom" should set the property value +PASS e.style['offset'] = "left top" should set the property value +PASS e.style['offset'] = "none 30deg reverse" should set the property value +PASS e.style['offset'] = "none 50px reverse 30deg" should set the property value +FAIL e.style['offset'] = "none calc(20% + 10px) auto" should set the property value assert_equals: serialization should be canonical expected "none calc(20% + 10px)" but got "none calc(20% + 10px) auto" +PASS e.style['offset'] = "none reverse" should set the property value +FAIL e.style['offset'] = "path(\"M 0 0 H 1\") -200% auto" should set the property value assert_equals: serialization should be canonical expected "path(\"M 0 0 H 1\") -200%" but got "path(\"M 0 0 H 1\") -200% auto" +PASS e.style['offset'] = "path(\"M 0 0 H 1\") -200%" should set the property value +PASS e.style['offset'] = "path('M 0 0 H 1') 50px" should set the property value +FAIL e.style['offset'] = "path(\"M 0 0 H 1\") auto" should set the property value assert_equals: serialization should be canonical expected "path(\"M 0 0 H 1\")" but got "path(\"M 0 0 H 1\") auto" +FAIL e.style['offset'] = "path(\"M 0 0 H 1\") auto 0deg" should set the property value assert_equals: serialization should be canonical expected "path(\"M 0 0 H 1\")" but got "path(\"M 0 0 H 1\") auto 0deg" +FAIL e.style['offset'] = "path(\"M 0 0 H 1\") auto 0rad" should set the property value assert_equals: serialization should be canonical expected "path(\"M 0 0 H 1\")" but got "path(\"M 0 0 H 1\") auto 0rad" +PASS e.style['offset'] = "path(\"M 0 0 H 1\") auto 0.5turn" should set the property value +PASS e.style['offset'] = "path('M 0 0 H 1') reverse 30deg 50px" should set the property value +PASS e.style['offset'] = "path(\"M 0 0 H 1\")" should set the property value +FAIL e.style['offset'] = "path('m 20 0 h 100') -7rad 8px / auto" should set the property value assert_equals: serialization should be canonical expected "path(\"m 20 0 h 100\") 8px -7rad" but got "path(\"m 20 0 h 100\") 8px -7rad / auto" +PASS e.style['offset'] = "path('m 0 30 v 100') -7rad 8px / left top" should set the property value +PASS e.style['offset'] = "path('m 0 0 h 100') -7rad 8px" should set the property value +PASS e.style['offset'] = "path(\"M 0 0 H 100\") 100px 0deg" should set the property value +PASS e.style['offset'] = "path( 'm 1 2 v 3.00 z')" should set the property value +PASS e.style['offset'] = "ray(farthest-corner 90deg) 1%" should set the property value +PASS e.style['offset'] = "ray(sides 0deg) 50% 90deg auto" should set the property value +PASS e.style['offset'] = "right bottom / left top" should set the property value +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/external/wpt/css/motion/parsing/offset-shorthand-expected.txt b/third_party/blink/web_tests/external/wpt/css/motion/parsing/offset-shorthand-expected.txt new file mode 100644 index 0000000..f588c32 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/motion/parsing/offset-shorthand-expected.txt
@@ -0,0 +1,21 @@ +This is a testharness.js-based test. +PASS e.style['offset'] = "left bottom ray(0rad closest-corner) 10px auto 30deg / right bottom" should set offset-anchor +PASS e.style['offset'] = "left bottom ray(0rad closest-corner) 10px auto 30deg / right bottom" should set offset-distance +PASS e.style['offset'] = "left bottom ray(0rad closest-corner) 10px auto 30deg / right bottom" should set offset-path +PASS e.style['offset'] = "left bottom ray(0rad closest-corner) 10px auto 30deg / right bottom" should set offset-position +PASS e.style['offset'] = "left bottom ray(0rad closest-corner) 10px auto 30deg / right bottom" should set offset-rotate +PASS e.style['offset'] = "left bottom ray(0rad closest-corner) 10px auto 30deg / right bottom" should not set unrelated longhands +PASS e.style['offset'] = "top right / top left" should set offset-anchor +FAIL e.style['offset'] = "top right / top left" should set offset-distance assert_equals: offset-distance should be canonical expected "0px" but got "initial" +FAIL e.style['offset'] = "top right / top left" should set offset-path assert_equals: offset-path should be canonical expected "none" but got "initial" +PASS e.style['offset'] = "top right / top left" should set offset-position +FAIL e.style['offset'] = "top right / top left" should set offset-rotate assert_equals: offset-rotate should be canonical expected "auto" but got "initial" +PASS e.style['offset'] = "top right / top left" should not set unrelated longhands +FAIL e.style['offset'] = "path(\"M 0 0 H 2\") reverse 50%" should set offset-anchor assert_equals: offset-anchor should be canonical expected "auto" but got "initial" +PASS e.style['offset'] = "path(\"M 0 0 H 2\") reverse 50%" should set offset-distance +PASS e.style['offset'] = "path(\"M 0 0 H 2\") reverse 50%" should set offset-path +FAIL e.style['offset'] = "path(\"M 0 0 H 2\") reverse 50%" should set offset-position assert_equals: offset-position should be canonical expected "auto" but got "initial" +PASS e.style['offset'] = "path(\"M 0 0 H 2\") reverse 50%" should set offset-rotate +PASS e.style['offset'] = "path(\"M 0 0 H 2\") reverse 50%" should not set unrelated longhands +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/external/wpt/document-policy/font-display/override-to-optional.tentative.html.ini b/third_party/blink/web_tests/external/wpt/document-policy/font-display/override-to-optional.tentative.html.ini new file mode 100644 index 0000000..2ae8803 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/document-policy/font-display/override-to-optional.tentative.html.ini
@@ -0,0 +1,3 @@ +[override-to-optional.tentative.html] + expected: + if (product == "content_shell") and (os == "win") and (port == "win11"): FAIL
diff --git a/third_party/blink/web_tests/external/wpt/fenced-frame/config-cross-origin-apis.https.html b/third_party/blink/web_tests/external/wpt/fenced-frame/config-cross-origin-apis.https.html new file mode 100644 index 0000000..2d6b97e --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/fenced-frame/config-cross-origin-apis.https.html
@@ -0,0 +1,44 @@ +<!DOCTYPE html> +<title>Test default permission policy features gating (*)</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/common/utils.js"></script> +<script src="/common/dispatcher/dispatcher.js"></script> +<script src="resources/utils.js"></script> +<script src="/common/get-host-info.sub.js"></script> + +<body> +<script> +promise_test(async(t) => { + const key = token(); + + const fencedframe = attachFencedFrame( + await generateURNFromFledge( + "resources/config-cross-origin-apis-inner.https.html", + [key])); + + // The fenced frame will send its attribution reporting result and then + // attempt to redirect to a remote origin page. + const resp = await nextValueFromServer(key); + assert_equals(resp, "0", + "The call to getNestedConfigs() should not have returned anything."); +}, 'A fenced frame that navigates itself to a cross origin page loses ' + + 'window.fence API access.'); + +promise_test(async(t) => { + const key = token(); + + const fencedframe = attachFencedFrame( + await generateURNFromFledge( + "resources/config-embed-cross-origin-iframe.https.html", + [key])); + + const resp = await nextValueFromServer(key); + assert_equals(resp, "0", + "The call to getNestedConfigs() should not have returned anything."); +}, 'A cross-origin iframe inside a fenced frame does not get ' + + 'window.fence API access.'); + +</script> +</body> +</html>
diff --git a/third_party/blink/web_tests/external/wpt/fenced-frame/default-enabled-features-allow-all.https.html b/third_party/blink/web_tests/external/wpt/fenced-frame/default-enabled-features-allow-all.https.html index f5084cf3..00044a4c 100644 --- a/third_party/blink/web_tests/external/wpt/fenced-frame/default-enabled-features-allow-all.https.html +++ b/third_party/blink/web_tests/external/wpt/fenced-frame/default-enabled-features-allow-all.https.html
@@ -22,6 +22,32 @@ generator_api="sharedstorage"); }, 'Cross-origin fenced frame loads when feature policies are *'); +promise_test(async(t) => { + // We do this test the "old fashioned way" because a redirect in a fenced + // frame remote context will cause it to lose its ability to communicate with + // the main page (which results in a timeout). + const page1_key = token(); + const redirect_key = token(); + + const fencedframe = attachFencedFrame( + await generateURNFromFledge( + "resources/default-enabled-features-navigate.https.html", + [page1_key, redirect_key])); + + // The fenced frame will send its attribution reporting result and then + // attempt to redirect to a remote origin page. + const page1_resp = await nextValueFromServer(page1_key); + assert_equals(page1_resp, "true", + "Attribution reporting should be enabled on the original page."); + + // The fenced frame will send its attribution reporting result and then + // attempt to redirect to a remote origin page. + const redirect_resp = await nextValueFromServer(redirect_key); + assert_equals(redirect_resp, "true", + "Attribution reporting should be enabled on the redirected page."); +}, 'A fenced frame that navigates itself to a cross origin page that allows feature policies ' + + 'can still access the feature policies'); + </script> </body> </html>
diff --git a/third_party/blink/web_tests/external/wpt/fenced-frame/default-enabled-features-allow-self.https.html b/third_party/blink/web_tests/external/wpt/fenced-frame/default-enabled-features-allow-self.https.html index 0360963a..c212a6f 100644 --- a/third_party/blink/web_tests/external/wpt/fenced-frame/default-enabled-features-allow-self.https.html +++ b/third_party/blink/web_tests/external/wpt/fenced-frame/default-enabled-features-allow-self.https.html
@@ -11,10 +11,10 @@ <body> <script> promise_test(async(t) => { - await runDefaultEnabledFeaturesTest(t, true, get_host_info().ORIGIN); - await runDefaultEnabledFeaturesTest(t, true, get_host_info().ORIGIN, + await runDefaultEnabledFeaturesTest(t, false, get_host_info().ORIGIN); + await runDefaultEnabledFeaturesTest(t, false, get_host_info().ORIGIN, generator_api="sharedstorage"); -}, 'Same-origin fenced frame loads when feature policies are self'); +}, 'Same-origin fenced frame does not when feature policies are self'); promise_test(async(t) => { await runDefaultEnabledFeaturesTest(t, false, get_host_info().REMOTE_ORIGIN); @@ -39,35 +39,6 @@ }, []); }, 'Fenced frames default feature policies are set to not allow anything.'); -promise_test(async(t) => { - // We do this test the "old fashioned way" because a redirect in a fenced - // frame remote context will cause it to lose its ability to communicate with - // the main page (which results in a timeout). - const page1_key = token(); - const redirect_key = token(); - - const fencedframe = attachFencedFrame( - await generateURNFromFledge( - "resources/default-enabled-features-redirect.https.html", - [page1_key, redirect_key])); - - // The fenced frame will send its attribution reporting result and then - // attempt to redirect to a remote origin page. - const page1_resp = await nextValueFromServer(page1_key); - assert_equals(page1_resp, "true", - "Attribution reporting should be enabled on the original page."); - - // There is no API to observe whether the document in the fenced frame loaded - // or not. Instead, set up a timeout. If the document loads, "FAIL" will be - // sent to the server. Otherwise "blocked" will be sent after 2 seconds. - const fencedframe_blocked = new Promise(r => t.step_timeout(r, 1000)); - assert_equals("blocked", await Promise.any([ - nextValueFromServer(redirect_key).then(() => "loaded"), - fencedframe_blocked.then(() => "blocked") - ]), "The fenced frame redirect should not be successful."); -}, 'A fenced frame redirected to a page that does not allow feature policies ' + - 'does not navigate'); - </script> </body> </html>
diff --git a/third_party/blink/web_tests/external/wpt/fenced-frame/resources/config-cross-origin-apis-inner.https.html b/third_party/blink/web_tests/external/wpt/fenced-frame/resources/config-cross-origin-apis-inner.https.html new file mode 100644 index 0000000..79e9affe --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/fenced-frame/resources/config-cross-origin-apis-inner.https.html
@@ -0,0 +1,37 @@ +<!DOCTYPE html> +<script src="utils.js"></script> +<script src="/common/get-host-info.sub.js"></script> +<title>Fenced frame attribution reporting self navigation test</title> + +<body> +<script> +// This helper function will navigate a fenced frame to a remote origin page. +// It will then check to make sure that window.fence APIs are not allowed after +// the navigation. +const [key] = parseKeylist(); + +if (location.origin == get_host_info().ORIGIN) { + const configs = window.fence.getNestedConfigs(); + const next_url = getRemoteOriginURL(generateURL( + "config-cross-origin-apis-inner.https.html", [key])); + location.href = next_url; +} else { + const event = { + eventType: "reserved.top_navigation", + eventData: "data!", + destination: ["buyer"], + } + + // These should gracefully fail without badmessaging the renderer. + window.fence.setReportEventDataForAutomaticBeacons(event); + window.fence.reportEvent(event); + + const configs = window.fence.getNestedConfigs(); + + // Report how many configs were obtained. Cross-origin pages should not + // obtain any nested configs. + writeValueToServer(key, configs.length); +} + +</script> +</body>
diff --git a/third_party/blink/web_tests/external/wpt/fenced-frame/resources/default-enabled-features-redirect.https.html.headers b/third_party/blink/web_tests/external/wpt/fenced-frame/resources/config-cross-origin-apis-inner.https.html.headers similarity index 100% rename from third_party/blink/web_tests/external/wpt/fenced-frame/resources/default-enabled-features-redirect.https.html.headers rename to third_party/blink/web_tests/external/wpt/fenced-frame/resources/config-cross-origin-apis-inner.https.html.headers
diff --git a/third_party/blink/web_tests/external/wpt/fenced-frame/resources/config-cross-origin-iframe.https.html b/third_party/blink/web_tests/external/wpt/fenced-frame/resources/config-cross-origin-iframe.https.html new file mode 100644 index 0000000..b6e390a --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/fenced-frame/resources/config-cross-origin-iframe.https.html
@@ -0,0 +1,30 @@ +<!DOCTYPE html> +<script src="utils.js"></script> +<script src="/common/get-host-info.sub.js"></script> +<title>Fenced frame attribution reporting self navigation test</title> + +<body> +<script> +// This helper function will navigate a child iframe to a remote origin page. +// It will then check to make sure that window.fence APIs are not allowed after +// the navigation. This code is meant to run in a fenced frame. +const [key] = parseKeylist(); + +const event = { + eventType: "reserved.top_navigation", + eventData: "data!", + destination: ["buyer"], +} + +// These should gracefully fail without badmessaging the renderer. +window.fence.setReportEventDataForAutomaticBeacons(event); +window.fence.reportEvent(event); + +const configs = window.fence.getNestedConfigs(); + +// Report how many configs were obtained. Cross-origin pages should not +// obtain any nested configs. +writeValueToServer(key, configs.length); + +</script> +</body>
diff --git a/third_party/blink/web_tests/external/wpt/fenced-frame/resources/default-enabled-features-redirect.https.html.headers b/third_party/blink/web_tests/external/wpt/fenced-frame/resources/config-cross-origin-iframe.https.html.headers similarity index 100% copy from third_party/blink/web_tests/external/wpt/fenced-frame/resources/default-enabled-features-redirect.https.html.headers copy to third_party/blink/web_tests/external/wpt/fenced-frame/resources/config-cross-origin-iframe.https.html.headers
diff --git a/third_party/blink/web_tests/external/wpt/fenced-frame/resources/config-embed-cross-origin-iframe.https.html b/third_party/blink/web_tests/external/wpt/fenced-frame/resources/config-embed-cross-origin-iframe.https.html new file mode 100644 index 0000000..f21afee --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/fenced-frame/resources/config-embed-cross-origin-iframe.https.html
@@ -0,0 +1,18 @@ +<!DOCTYPE html> +<script src="utils.js"></script> +<script src="/common/get-host-info.sub.js"></script> +<title>Fenced frame attribution reporting self navigation test</title> + +<body> +<script> +// This helper function will navigate a child iframe to a remote origin page. +// It will then check to make sure that window.fence APIs are not allowed after +// the navigation. This code is meant to run in a fenced frame. +const [key] = parseKeylist(); + +const configs = window.fence.getNestedConfigs(); +const next_url = getRemoteOriginURL(generateURL( + "config-cross-origin-iframe.https.html", [key])); +attachIFrame(next_url); +</script> +</body>
diff --git a/third_party/blink/web_tests/external/wpt/fenced-frame/resources/default-enabled-features-redirect.https.html.headers b/third_party/blink/web_tests/external/wpt/fenced-frame/resources/config-embed-cross-origin-iframe.https.html.headers similarity index 100% copy from third_party/blink/web_tests/external/wpt/fenced-frame/resources/default-enabled-features-redirect.https.html.headers copy to third_party/blink/web_tests/external/wpt/fenced-frame/resources/config-embed-cross-origin-iframe.https.html.headers
diff --git a/third_party/blink/web_tests/external/wpt/fenced-frame/resources/default-enabled-features-navigate.https.html b/third_party/blink/web_tests/external/wpt/fenced-frame/resources/default-enabled-features-navigate.https.html new file mode 100644 index 0000000..6bfb033 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/fenced-frame/resources/default-enabled-features-navigate.https.html
@@ -0,0 +1,25 @@ +<!DOCTYPE html> +<script src="utils.js"></script> +<script src="/common/get-host-info.sub.js"></script> +<title>Fenced frame attribution reporting self navigation test</title> + +<body> +<script> +// This helper function will navigate a fenced frame to a remote origin page. +// That redirect should succeed to load and the permissions from the previous page should be in +// place. +const [key1, key2] = parseKeylist(); + +const result_val = document.featurePolicy.allowsFeature('attribution-reporting'); +if (location.origin == get_host_info().ORIGIN) { + writeValueToServer(key1, result_val); + + const next_url = getRemoteOriginURL(generateURL( + "default-enabled-features-navigate.https.html", [key1, key2])); + location.href = next_url; +} else { + writeValueToServer(key2, result_val); +} + +</script> +</body>
diff --git a/third_party/blink/web_tests/external/wpt/fenced-frame/resources/default-enabled-features-redirect.https.html.headers b/third_party/blink/web_tests/external/wpt/fenced-frame/resources/default-enabled-features-navigate.https.html.headers similarity index 100% copy from third_party/blink/web_tests/external/wpt/fenced-frame/resources/default-enabled-features-redirect.https.html.headers copy to third_party/blink/web_tests/external/wpt/fenced-frame/resources/default-enabled-features-navigate.https.html.headers
diff --git a/third_party/blink/web_tests/external/wpt/fenced-frame/resources/default-enabled-features-redirect.https.html b/third_party/blink/web_tests/external/wpt/fenced-frame/resources/default-enabled-features-redirect.https.html deleted file mode 100644 index 000b1eb6..0000000 --- a/third_party/blink/web_tests/external/wpt/fenced-frame/resources/default-enabled-features-redirect.https.html +++ /dev/null
@@ -1,32 +0,0 @@ -<!DOCTYPE html> -<script src="utils.js"></script> -<script src="/common/get-host-info.sub.js"></script> -<title>Fenced frame attribution reporting redirect test</title> - -<body> -<script> -// This helper function will redirect a fenced frame to a remote origin page -// while embedded in a frame that does not allow attribution reporting on -// remote origins. That redirect should fail to load because of the attribution -// reporting restriction. -const [key1, key2] = parseKeylist(); - -if (location.origin == get_host_info().ORIGIN) { - const result_val = - document.featurePolicy.allowsFeature('attribution-reporting') & - document.featurePolicy.allowsFeature('shared-storage'); - - writeValueToServer(key1, - document.featurePolicy.allowsFeature('attribution-reporting')); - - const next_url = getRemoteOriginURL(generateURL( - "attribution-reporting-redirect.https.html", [key1, key2])); - location.href = next_url; -} else { - // The redirect should have been unsuccessful, so we should not reach this - // point. - writeValueToServer(key2, "FAIL"); -} - -</script> -</body>
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/browsing-the-web/history-traversal/event-order/before-load-hash-twice.html.ini b/third_party/blink/web_tests/external/wpt/html/browsers/browsing-the-web/history-traversal/event-order/before-load-hash-twice.html.ini index eeba5ab..46f2992 100644 --- a/third_party/blink/web_tests/external/wpt/html/browsers/browsing-the-web/history-traversal/event-order/before-load-hash-twice.html.ini +++ b/third_party/blink/web_tests/external/wpt/html/browsers/browsing-the-web/history-traversal/event-order/before-load-hash-twice.html.ini
@@ -3,4 +3,5 @@ expected: if (product == "content_shell") and (os == "linux") and (flag_specific == ""): FAIL if (product == "content_shell") and (os == "mac") and (port == "mac13"): FAIL - if (product == "content_shell") and (os == "mac") and (port == "mac11"): [FAIL, PASS] + if (product == "content_shell") and (os == "mac") and (port == "mac11"): FAIL + if (product == "content_shell") and (os == "mac") and (port == "mac10.15"): [FAIL, PASS]
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.canvas.clear.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.canvas.clear.html index 40685597..cb805b69 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.canvas.clear.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.canvas.clear.html
@@ -19,18 +19,16 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -var canvas2 = document.createElement('canvas'); -canvas2.width = canvas.width; -canvas2.height = canvas.height; -var ctx2 = canvas2.getContext('2d'); -ctx2.drawImage(document.getElementById('yellow75.png'), 0, 0); -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'clear'; -ctx.drawImage(canvas2, 0, 0); -_assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); - + var canvas2 = document.createElement('canvas'); + canvas2.width = canvas.width; + canvas2.height = canvas.height; + var ctx2 = canvas2.getContext('2d'); + ctx2.drawImage(document.getElementById('yellow75.png'), 0, 0); + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'clear'; + ctx.drawImage(canvas2, 0, 0); + _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.canvas.copy.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.canvas.copy.html index ac022f95..d4e75b7b 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.canvas.copy.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.canvas.copy.html
@@ -19,18 +19,16 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -var canvas2 = document.createElement('canvas'); -canvas2.width = canvas.width; -canvas2.height = canvas.height; -var ctx2 = canvas2.getContext('2d'); -ctx2.drawImage(document.getElementById('yellow75.png'), 0, 0); -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'copy'; -ctx.drawImage(canvas2, 0, 0); -_assertPixelApprox(canvas, 50,25, 255,255,0,191, 5); - + var canvas2 = document.createElement('canvas'); + canvas2.width = canvas.width; + canvas2.height = canvas.height; + var ctx2 = canvas2.getContext('2d'); + ctx2.drawImage(document.getElementById('yellow75.png'), 0, 0); + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'copy'; + ctx.drawImage(canvas2, 0, 0); + _assertPixelApprox(canvas, 50,25, 255,255,0,191, 5); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.canvas.destination-atop.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.canvas.destination-atop.html index 29cf9bc..6fded39e 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.canvas.destination-atop.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.canvas.destination-atop.html
@@ -19,18 +19,16 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -var canvas2 = document.createElement('canvas'); -canvas2.width = canvas.width; -canvas2.height = canvas.height; -var ctx2 = canvas2.getContext('2d'); -ctx2.drawImage(document.getElementById('yellow75.png'), 0, 0); -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'destination-atop'; -ctx.drawImage(canvas2, 0, 0); -_assertPixelApprox(canvas, 50,25, 128,255,128,191, 5); - + var canvas2 = document.createElement('canvas'); + canvas2.width = canvas.width; + canvas2.height = canvas.height; + var ctx2 = canvas2.getContext('2d'); + ctx2.drawImage(document.getElementById('yellow75.png'), 0, 0); + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-atop'; + ctx.drawImage(canvas2, 0, 0); + _assertPixelApprox(canvas, 50,25, 128,255,128,191, 5); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.canvas.destination-in.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.canvas.destination-in.html index dc748df1..7277286d 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.canvas.destination-in.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.canvas.destination-in.html
@@ -19,18 +19,16 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -var canvas2 = document.createElement('canvas'); -canvas2.width = canvas.width; -canvas2.height = canvas.height; -var ctx2 = canvas2.getContext('2d'); -ctx2.drawImage(document.getElementById('yellow75.png'), 0, 0); -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'destination-in'; -ctx.drawImage(canvas2, 0, 0); -_assertPixelApprox(canvas, 50,25, 0,255,255,96, 5); - + var canvas2 = document.createElement('canvas'); + canvas2.width = canvas.width; + canvas2.height = canvas.height; + var ctx2 = canvas2.getContext('2d'); + ctx2.drawImage(document.getElementById('yellow75.png'), 0, 0); + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-in'; + ctx.drawImage(canvas2, 0, 0); + _assertPixelApprox(canvas, 50,25, 0,255,255,96, 5); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.canvas.destination-out.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.canvas.destination-out.html index ebf33f3..5860c3d 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.canvas.destination-out.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.canvas.destination-out.html
@@ -19,18 +19,16 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -var canvas2 = document.createElement('canvas'); -canvas2.width = canvas.width; -canvas2.height = canvas.height; -var ctx2 = canvas2.getContext('2d'); -ctx2.drawImage(document.getElementById('yellow75.png'), 0, 0); -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'destination-out'; -ctx.drawImage(canvas2, 0, 0); -_assertPixelApprox(canvas, 50,25, 0,255,255,32, 5); - + var canvas2 = document.createElement('canvas'); + canvas2.width = canvas.width; + canvas2.height = canvas.height; + var ctx2 = canvas2.getContext('2d'); + ctx2.drawImage(document.getElementById('yellow75.png'), 0, 0); + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-out'; + ctx.drawImage(canvas2, 0, 0); + _assertPixelApprox(canvas, 50,25, 0,255,255,32, 5); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.canvas.destination-over.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.canvas.destination-over.html index 6727e32..76bad843 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.canvas.destination-over.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.canvas.destination-over.html
@@ -19,18 +19,16 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -var canvas2 = document.createElement('canvas'); -canvas2.width = canvas.width; -canvas2.height = canvas.height; -var ctx2 = canvas2.getContext('2d'); -ctx2.drawImage(document.getElementById('yellow75.png'), 0, 0); -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'destination-over'; -ctx.drawImage(canvas2, 0, 0); -_assertPixelApprox(canvas, 50,25, 109,255,146,223, 5); - + var canvas2 = document.createElement('canvas'); + canvas2.width = canvas.width; + canvas2.height = canvas.height; + var ctx2 = canvas2.getContext('2d'); + ctx2.drawImage(document.getElementById('yellow75.png'), 0, 0); + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-over'; + ctx.drawImage(canvas2, 0, 0); + _assertPixelApprox(canvas, 50,25, 109,255,146,223, 5); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.canvas.lighter.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.canvas.lighter.html index abb1fe0..8d706df 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.canvas.lighter.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.canvas.lighter.html
@@ -19,18 +19,16 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -var canvas2 = document.createElement('canvas'); -canvas2.width = canvas.width; -canvas2.height = canvas.height; -var ctx2 = canvas2.getContext('2d'); -ctx2.drawImage(document.getElementById('yellow75.png'), 0, 0); -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'lighter'; -ctx.drawImage(canvas2, 0, 0); -_assertPixelApprox(canvas, 50,25, 191,255,128,255, 5); - + var canvas2 = document.createElement('canvas'); + canvas2.width = canvas.width; + canvas2.height = canvas.height; + var ctx2 = canvas2.getContext('2d'); + ctx2.drawImage(document.getElementById('yellow75.png'), 0, 0); + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'lighter'; + ctx.drawImage(canvas2, 0, 0); + _assertPixelApprox(canvas, 50,25, 191,255,128,255, 5); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.canvas.source-atop.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.canvas.source-atop.html index 76ee7db0..cf3e449 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.canvas.source-atop.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.canvas.source-atop.html
@@ -19,18 +19,16 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -var canvas2 = document.createElement('canvas'); -canvas2.width = canvas.width; -canvas2.height = canvas.height; -var ctx2 = canvas2.getContext('2d'); -ctx2.drawImage(document.getElementById('yellow75.png'), 0, 0); -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'source-atop'; -ctx.drawImage(canvas2, 0, 0); -_assertPixelApprox(canvas, 50,25, 191,255,64,128, 5); - + var canvas2 = document.createElement('canvas'); + canvas2.width = canvas.width; + canvas2.height = canvas.height; + var ctx2 = canvas2.getContext('2d'); + ctx2.drawImage(document.getElementById('yellow75.png'), 0, 0); + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-atop'; + ctx.drawImage(canvas2, 0, 0); + _assertPixelApprox(canvas, 50,25, 191,255,64,128, 5); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.canvas.source-in.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.canvas.source-in.html index 77cbb5e..dabcced 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.canvas.source-in.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.canvas.source-in.html
@@ -19,18 +19,16 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -var canvas2 = document.createElement('canvas'); -canvas2.width = canvas.width; -canvas2.height = canvas.height; -var ctx2 = canvas2.getContext('2d'); -ctx2.drawImage(document.getElementById('yellow75.png'), 0, 0); -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'source-in'; -ctx.drawImage(canvas2, 0, 0); -_assertPixelApprox(canvas, 50,25, 255,255,0,96, 5); - + var canvas2 = document.createElement('canvas'); + canvas2.width = canvas.width; + canvas2.height = canvas.height; + var ctx2 = canvas2.getContext('2d'); + ctx2.drawImage(document.getElementById('yellow75.png'), 0, 0); + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-in'; + ctx.drawImage(canvas2, 0, 0); + _assertPixelApprox(canvas, 50,25, 255,255,0,96, 5); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.canvas.source-out.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.canvas.source-out.html index 353dcd4..2fcf708 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.canvas.source-out.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.canvas.source-out.html
@@ -19,18 +19,16 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -var canvas2 = document.createElement('canvas'); -canvas2.width = canvas.width; -canvas2.height = canvas.height; -var ctx2 = canvas2.getContext('2d'); -ctx2.drawImage(document.getElementById('yellow75.png'), 0, 0); -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'source-out'; -ctx.drawImage(canvas2, 0, 0); -_assertPixelApprox(canvas, 50,25, 255,255,0,96, 5); - + var canvas2 = document.createElement('canvas'); + canvas2.width = canvas.width; + canvas2.height = canvas.height; + var ctx2 = canvas2.getContext('2d'); + ctx2.drawImage(document.getElementById('yellow75.png'), 0, 0); + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-out'; + ctx.drawImage(canvas2, 0, 0); + _assertPixelApprox(canvas, 50,25, 255,255,0,96, 5); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.canvas.source-over.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.canvas.source-over.html index 06516cb..b9dca65 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.canvas.source-over.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.canvas.source-over.html
@@ -19,18 +19,16 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -var canvas2 = document.createElement('canvas'); -canvas2.width = canvas.width; -canvas2.height = canvas.height; -var ctx2 = canvas2.getContext('2d'); -ctx2.drawImage(document.getElementById('yellow75.png'), 0, 0); -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'source-over'; -ctx.drawImage(canvas2, 0, 0); -_assertPixelApprox(canvas, 50,25, 219,255,36,223, 5); - + var canvas2 = document.createElement('canvas'); + canvas2.width = canvas.width; + canvas2.height = canvas.height; + var ctx2 = canvas2.getContext('2d'); + ctx2.drawImage(document.getElementById('yellow75.png'), 0, 0); + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-over'; + ctx.drawImage(canvas2, 0, 0); + _assertPixelApprox(canvas, 50,25, 219,255,36,223, 5); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.canvas.xor.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.canvas.xor.html index 3bc6eb5..c252e17 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.canvas.xor.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.canvas.xor.html
@@ -19,18 +19,16 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -var canvas2 = document.createElement('canvas'); -canvas2.width = canvas.width; -canvas2.height = canvas.height; -var ctx2 = canvas2.getContext('2d'); -ctx2.drawImage(document.getElementById('yellow75.png'), 0, 0); -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'xor'; -ctx.drawImage(canvas2, 0, 0); -_assertPixelApprox(canvas, 50,25, 191,255,64,128, 5); - + var canvas2 = document.createElement('canvas'); + canvas2.width = canvas.width; + canvas2.height = canvas.height; + var ctx2 = canvas2.getContext('2d'); + ctx2.drawImage(document.getElementById('yellow75.png'), 0, 0); + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'xor'; + ctx.drawImage(canvas2, 0, 0); + _assertPixelApprox(canvas, 50,25, 191,255,64,128, 5); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.clip.clear.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.clip.clear.html index 1757870..65cfd95 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.clip.clear.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.clip.clear.html
@@ -19,17 +19,15 @@ var t = async_test("fill() does not affect pixels outside the clip region."); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'clear'; -ctx.rect(-20, -20, 10, 10); -ctx.clip(); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 50, 50); -_assertPixel(canvas, 25,25, 0,255,0,255); -_assertPixel(canvas, 75,25, 0,255,0,255); - + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'clear'; + ctx.rect(-20, -20, 10, 10); + ctx.clip(); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 50, 50); + _assertPixel(canvas, 25,25, 0,255,0,255); + _assertPixel(canvas, 75,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.clip.copy.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.clip.copy.html index ace0618..b38397a2 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.clip.copy.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.clip.copy.html
@@ -19,17 +19,15 @@ var t = async_test("fill() does not affect pixels outside the clip region."); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'copy'; -ctx.rect(-20, -20, 10, 10); -ctx.clip(); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 50, 50); -_assertPixel(canvas, 25,25, 0,255,0,255); -_assertPixel(canvas, 75,25, 0,255,0,255); - + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'copy'; + ctx.rect(-20, -20, 10, 10); + ctx.clip(); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 50, 50); + _assertPixel(canvas, 25,25, 0,255,0,255); + _assertPixel(canvas, 75,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.clip.destination-atop.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.clip.destination-atop.html index 45301941..79fb3af 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.clip.destination-atop.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.clip.destination-atop.html
@@ -19,17 +19,15 @@ var t = async_test("fill() does not affect pixels outside the clip region."); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'destination-atop'; -ctx.rect(-20, -20, 10, 10); -ctx.clip(); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 50, 50); -_assertPixel(canvas, 25,25, 0,255,0,255); -_assertPixel(canvas, 75,25, 0,255,0,255); - + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-atop'; + ctx.rect(-20, -20, 10, 10); + ctx.clip(); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 50, 50); + _assertPixel(canvas, 25,25, 0,255,0,255); + _assertPixel(canvas, 75,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.clip.destination-in.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.clip.destination-in.html index 2ace910..63e8d3ac 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.clip.destination-in.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.clip.destination-in.html
@@ -19,17 +19,15 @@ var t = async_test("fill() does not affect pixels outside the clip region."); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'destination-in'; -ctx.rect(-20, -20, 10, 10); -ctx.clip(); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 50, 50); -_assertPixel(canvas, 25,25, 0,255,0,255); -_assertPixel(canvas, 75,25, 0,255,0,255); - + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-in'; + ctx.rect(-20, -20, 10, 10); + ctx.clip(); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 50, 50); + _assertPixel(canvas, 25,25, 0,255,0,255); + _assertPixel(canvas, 75,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.clip.destination-out.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.clip.destination-out.html index 4b3acf9b..8392464 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.clip.destination-out.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.clip.destination-out.html
@@ -19,17 +19,15 @@ var t = async_test("fill() does not affect pixels outside the clip region."); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'destination-out'; -ctx.rect(-20, -20, 10, 10); -ctx.clip(); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 50, 50); -_assertPixel(canvas, 25,25, 0,255,0,255); -_assertPixel(canvas, 75,25, 0,255,0,255); - + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-out'; + ctx.rect(-20, -20, 10, 10); + ctx.clip(); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 50, 50); + _assertPixel(canvas, 25,25, 0,255,0,255); + _assertPixel(canvas, 75,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.clip.destination-over.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.clip.destination-over.html index 0b1f9b5..fc7f1ab 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.clip.destination-over.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.clip.destination-over.html
@@ -19,17 +19,15 @@ var t = async_test("fill() does not affect pixels outside the clip region."); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'destination-over'; -ctx.rect(-20, -20, 10, 10); -ctx.clip(); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 50, 50); -_assertPixel(canvas, 25,25, 0,255,0,255); -_assertPixel(canvas, 75,25, 0,255,0,255); - + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-over'; + ctx.rect(-20, -20, 10, 10); + ctx.clip(); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 50, 50); + _assertPixel(canvas, 25,25, 0,255,0,255); + _assertPixel(canvas, 75,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.clip.lighter.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.clip.lighter.html index 4d2525d7..b3acab0 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.clip.lighter.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.clip.lighter.html
@@ -19,17 +19,15 @@ var t = async_test("fill() does not affect pixels outside the clip region."); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'lighter'; -ctx.rect(-20, -20, 10, 10); -ctx.clip(); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 50, 50); -_assertPixel(canvas, 25,25, 0,255,0,255); -_assertPixel(canvas, 75,25, 0,255,0,255); - + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'lighter'; + ctx.rect(-20, -20, 10, 10); + ctx.clip(); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 50, 50); + _assertPixel(canvas, 25,25, 0,255,0,255); + _assertPixel(canvas, 75,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.clip.source-atop.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.clip.source-atop.html index db722a89..49c3eb0 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.clip.source-atop.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.clip.source-atop.html
@@ -19,17 +19,15 @@ var t = async_test("fill() does not affect pixels outside the clip region."); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'source-atop'; -ctx.rect(-20, -20, 10, 10); -ctx.clip(); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 50, 50); -_assertPixel(canvas, 25,25, 0,255,0,255); -_assertPixel(canvas, 75,25, 0,255,0,255); - + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-atop'; + ctx.rect(-20, -20, 10, 10); + ctx.clip(); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 50, 50); + _assertPixel(canvas, 25,25, 0,255,0,255); + _assertPixel(canvas, 75,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.clip.source-in.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.clip.source-in.html index 4347924..afe92ba 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.clip.source-in.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.clip.source-in.html
@@ -19,17 +19,15 @@ var t = async_test("fill() does not affect pixels outside the clip region."); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'source-in'; -ctx.rect(-20, -20, 10, 10); -ctx.clip(); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 50, 50); -_assertPixel(canvas, 25,25, 0,255,0,255); -_assertPixel(canvas, 75,25, 0,255,0,255); - + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-in'; + ctx.rect(-20, -20, 10, 10); + ctx.clip(); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 50, 50); + _assertPixel(canvas, 25,25, 0,255,0,255); + _assertPixel(canvas, 75,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.clip.source-out.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.clip.source-out.html index 358dad3..43b352fb 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.clip.source-out.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.clip.source-out.html
@@ -19,17 +19,15 @@ var t = async_test("fill() does not affect pixels outside the clip region."); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'source-out'; -ctx.rect(-20, -20, 10, 10); -ctx.clip(); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 50, 50); -_assertPixel(canvas, 25,25, 0,255,0,255); -_assertPixel(canvas, 75,25, 0,255,0,255); - + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-out'; + ctx.rect(-20, -20, 10, 10); + ctx.clip(); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 50, 50); + _assertPixel(canvas, 25,25, 0,255,0,255); + _assertPixel(canvas, 75,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.clip.source-over.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.clip.source-over.html index 542f889..4973f8e 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.clip.source-over.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.clip.source-over.html
@@ -19,17 +19,15 @@ var t = async_test("fill() does not affect pixels outside the clip region."); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'source-over'; -ctx.rect(-20, -20, 10, 10); -ctx.clip(); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 50, 50); -_assertPixel(canvas, 25,25, 0,255,0,255); -_assertPixel(canvas, 75,25, 0,255,0,255); - + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-over'; + ctx.rect(-20, -20, 10, 10); + ctx.clip(); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 50, 50); + _assertPixel(canvas, 25,25, 0,255,0,255); + _assertPixel(canvas, 75,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.clip.xor.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.clip.xor.html index edbf6b0..5239d6f 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.clip.xor.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.clip.xor.html
@@ -19,17 +19,15 @@ var t = async_test("fill() does not affect pixels outside the clip region."); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'xor'; -ctx.rect(-20, -20, 10, 10); -ctx.clip(); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 50, 50); -_assertPixel(canvas, 25,25, 0,255,0,255); -_assertPixel(canvas, 75,25, 0,255,0,255); - + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'xor'; + ctx.rect(-20, -20, 10, 10); + ctx.clip(); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 50, 50); + _assertPixel(canvas, 25,25, 0,255,0,255); + _assertPixel(canvas, 75,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.image.clear.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.image.clear.html index b9ab69b8..a44f8e3 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.image.clear.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.image.clear.html
@@ -19,13 +19,11 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'clear'; -ctx.drawImage(document.getElementById('yellow75.png'), 0, 0); -_assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); - + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'clear'; + ctx.drawImage(document.getElementById('yellow75.png'), 0, 0); + _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.image.copy.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.image.copy.html index f32e03b..d3c972b 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.image.copy.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.image.copy.html
@@ -19,13 +19,11 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'copy'; -ctx.drawImage(document.getElementById('yellow75.png'), 0, 0); -_assertPixelApprox(canvas, 50,25, 255,255,0,191, 5); - + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'copy'; + ctx.drawImage(document.getElementById('yellow75.png'), 0, 0); + _assertPixelApprox(canvas, 50,25, 255,255,0,191, 5); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.image.destination-atop.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.image.destination-atop.html index 2da0d19..7c6f9344 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.image.destination-atop.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.image.destination-atop.html
@@ -19,13 +19,11 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'destination-atop'; -ctx.drawImage(document.getElementById('yellow75.png'), 0, 0); -_assertPixelApprox(canvas, 50,25, 128,255,128,191, 5); - + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-atop'; + ctx.drawImage(document.getElementById('yellow75.png'), 0, 0); + _assertPixelApprox(canvas, 50,25, 128,255,128,191, 5); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.image.destination-in.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.image.destination-in.html index 63871b2..a2bf972 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.image.destination-in.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.image.destination-in.html
@@ -19,13 +19,11 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'destination-in'; -ctx.drawImage(document.getElementById('yellow75.png'), 0, 0); -_assertPixelApprox(canvas, 50,25, 0,255,255,96, 5); - + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-in'; + ctx.drawImage(document.getElementById('yellow75.png'), 0, 0); + _assertPixelApprox(canvas, 50,25, 0,255,255,96, 5); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.image.destination-out.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.image.destination-out.html index 3d96b19..d0d08fa 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.image.destination-out.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.image.destination-out.html
@@ -19,13 +19,11 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'destination-out'; -ctx.drawImage(document.getElementById('yellow75.png'), 0, 0); -_assertPixelApprox(canvas, 50,25, 0,255,255,32, 5); - + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-out'; + ctx.drawImage(document.getElementById('yellow75.png'), 0, 0); + _assertPixelApprox(canvas, 50,25, 0,255,255,32, 5); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.image.destination-over.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.image.destination-over.html index 8e3dafb6..7ac98904 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.image.destination-over.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.image.destination-over.html
@@ -19,13 +19,11 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'destination-over'; -ctx.drawImage(document.getElementById('yellow75.png'), 0, 0); -_assertPixelApprox(canvas, 50,25, 109,255,146,223, 5); - + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-over'; + ctx.drawImage(document.getElementById('yellow75.png'), 0, 0); + _assertPixelApprox(canvas, 50,25, 109,255,146,223, 5); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.image.lighter.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.image.lighter.html index 6271a77..1df4c68 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.image.lighter.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.image.lighter.html
@@ -19,13 +19,11 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'lighter'; -ctx.drawImage(document.getElementById('yellow75.png'), 0, 0); -_assertPixelApprox(canvas, 50,25, 191,255,128,255, 5); - + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'lighter'; + ctx.drawImage(document.getElementById('yellow75.png'), 0, 0); + _assertPixelApprox(canvas, 50,25, 191,255,128,255, 5); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.image.source-atop.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.image.source-atop.html index eb7d754..86833df6 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.image.source-atop.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.image.source-atop.html
@@ -19,13 +19,11 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'source-atop'; -ctx.drawImage(document.getElementById('yellow75.png'), 0, 0); -_assertPixelApprox(canvas, 50,25, 191,255,64,128, 5); - + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-atop'; + ctx.drawImage(document.getElementById('yellow75.png'), 0, 0); + _assertPixelApprox(canvas, 50,25, 191,255,64,128, 5); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.image.source-in.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.image.source-in.html index 0f2fdad9..0b6ca4b5 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.image.source-in.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.image.source-in.html
@@ -19,13 +19,11 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'source-in'; -ctx.drawImage(document.getElementById('yellow75.png'), 0, 0); -_assertPixelApprox(canvas, 50,25, 255,255,0,96, 5); - + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-in'; + ctx.drawImage(document.getElementById('yellow75.png'), 0, 0); + _assertPixelApprox(canvas, 50,25, 255,255,0,96, 5); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.image.source-out.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.image.source-out.html index fd92085..31dfe47 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.image.source-out.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.image.source-out.html
@@ -19,13 +19,11 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'source-out'; -ctx.drawImage(document.getElementById('yellow75.png'), 0, 0); -_assertPixelApprox(canvas, 50,25, 255,255,0,96, 5); - + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-out'; + ctx.drawImage(document.getElementById('yellow75.png'), 0, 0); + _assertPixelApprox(canvas, 50,25, 255,255,0,96, 5); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.image.source-over.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.image.source-over.html index ce5b6c6..e396faa 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.image.source-over.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.image.source-over.html
@@ -19,13 +19,11 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'source-over'; -ctx.drawImage(document.getElementById('yellow75.png'), 0, 0); -_assertPixelApprox(canvas, 50,25, 219,255,36,223, 5); - + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-over'; + ctx.drawImage(document.getElementById('yellow75.png'), 0, 0); + _assertPixelApprox(canvas, 50,25, 219,255,36,223, 5); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.image.xor.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.image.xor.html index 68ce901d..d43742c27 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.image.xor.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.image.xor.html
@@ -19,13 +19,11 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'xor'; -ctx.drawImage(document.getElementById('yellow75.png'), 0, 0); -_assertPixelApprox(canvas, 50,25, 191,255,64,128, 5); - + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'xor'; + ctx.drawImage(document.getElementById('yellow75.png'), 0, 0); + _assertPixelApprox(canvas, 50,25, 191,255,64,128, 5); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.solid.clear.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.solid.clear.html index e270df3..a946989 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.solid.clear.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.solid.clear.html
@@ -19,14 +19,12 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = 'rgba(0, 255, 255, 1.0)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'clear'; -ctx.fillStyle = 'rgba(255, 255, 0, 1.0)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); - + ctx.fillStyle = 'rgba(0, 255, 255, 1.0)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'clear'; + ctx.fillStyle = 'rgba(255, 255, 0, 1.0)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.solid.copy.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.solid.copy.html index 74d9ad5..14bee74 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.solid.copy.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.solid.copy.html
@@ -19,14 +19,12 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = 'rgba(0, 255, 255, 1.0)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'copy'; -ctx.fillStyle = 'rgba(255, 255, 0, 1.0)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 255,255,0,255, 5); - + ctx.fillStyle = 'rgba(0, 255, 255, 1.0)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'copy'; + ctx.fillStyle = 'rgba(255, 255, 0, 1.0)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 255,255,0,255, 5); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.solid.destination-atop.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.solid.destination-atop.html index 5e8f6047..d82fb44c 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.solid.destination-atop.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.solid.destination-atop.html
@@ -19,14 +19,12 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = 'rgba(0, 255, 255, 1.0)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'destination-atop'; -ctx.fillStyle = 'rgba(255, 255, 0, 1.0)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,255,255,255, 5); - + ctx.fillStyle = 'rgba(0, 255, 255, 1.0)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-atop'; + ctx.fillStyle = 'rgba(255, 255, 0, 1.0)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,255,255,255, 5); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.solid.destination-in.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.solid.destination-in.html index 246bdee5..6a491f5 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.solid.destination-in.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.solid.destination-in.html
@@ -19,14 +19,12 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = 'rgba(0, 255, 255, 1.0)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'destination-in'; -ctx.fillStyle = 'rgba(255, 255, 0, 1.0)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,255,255,255, 5); - + ctx.fillStyle = 'rgba(0, 255, 255, 1.0)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-in'; + ctx.fillStyle = 'rgba(255, 255, 0, 1.0)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,255,255,255, 5); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.solid.destination-out.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.solid.destination-out.html index 7227cf4..bcc7f24 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.solid.destination-out.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.solid.destination-out.html
@@ -19,14 +19,12 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = 'rgba(0, 255, 255, 1.0)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'destination-out'; -ctx.fillStyle = 'rgba(255, 255, 0, 1.0)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); - + ctx.fillStyle = 'rgba(0, 255, 255, 1.0)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-out'; + ctx.fillStyle = 'rgba(255, 255, 0, 1.0)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.solid.destination-over.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.solid.destination-over.html index 48671ce..6e634e6 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.solid.destination-over.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.solid.destination-over.html
@@ -19,14 +19,12 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = 'rgba(0, 255, 255, 1.0)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'destination-over'; -ctx.fillStyle = 'rgba(255, 255, 0, 1.0)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,255,255,255, 5); - + ctx.fillStyle = 'rgba(0, 255, 255, 1.0)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-over'; + ctx.fillStyle = 'rgba(255, 255, 0, 1.0)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,255,255,255, 5); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.solid.lighter.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.solid.lighter.html index f869b6d..fddbe92 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.solid.lighter.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.solid.lighter.html
@@ -19,14 +19,12 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = 'rgba(0, 255, 255, 1.0)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'lighter'; -ctx.fillStyle = 'rgba(255, 255, 0, 1.0)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 255,255,255,255, 5); - + ctx.fillStyle = 'rgba(0, 255, 255, 1.0)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'lighter'; + ctx.fillStyle = 'rgba(255, 255, 0, 1.0)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 255,255,255,255, 5); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.solid.source-atop.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.solid.source-atop.html index 14041236..4bb0e3d 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.solid.source-atop.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.solid.source-atop.html
@@ -19,14 +19,12 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = 'rgba(0, 255, 255, 1.0)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'source-atop'; -ctx.fillStyle = 'rgba(255, 255, 0, 1.0)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 255,255,0,255, 5); - + ctx.fillStyle = 'rgba(0, 255, 255, 1.0)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-atop'; + ctx.fillStyle = 'rgba(255, 255, 0, 1.0)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 255,255,0,255, 5); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.solid.source-in.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.solid.source-in.html index 8f1cfcd..f8fee40 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.solid.source-in.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.solid.source-in.html
@@ -19,14 +19,12 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = 'rgba(0, 255, 255, 1.0)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'source-in'; -ctx.fillStyle = 'rgba(255, 255, 0, 1.0)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 255,255,0,255, 5); - + ctx.fillStyle = 'rgba(0, 255, 255, 1.0)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-in'; + ctx.fillStyle = 'rgba(255, 255, 0, 1.0)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 255,255,0,255, 5); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.solid.source-out.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.solid.source-out.html index 55522d5..2c9d0861 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.solid.source-out.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.solid.source-out.html
@@ -19,14 +19,12 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = 'rgba(0, 255, 255, 1.0)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'source-out'; -ctx.fillStyle = 'rgba(255, 255, 0, 1.0)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); - + ctx.fillStyle = 'rgba(0, 255, 255, 1.0)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-out'; + ctx.fillStyle = 'rgba(255, 255, 0, 1.0)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.solid.source-over.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.solid.source-over.html index 61945263..335987b1 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.solid.source-over.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.solid.source-over.html
@@ -19,14 +19,12 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = 'rgba(0, 255, 255, 1.0)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'source-over'; -ctx.fillStyle = 'rgba(255, 255, 0, 1.0)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 255,255,0,255, 5); - + ctx.fillStyle = 'rgba(0, 255, 255, 1.0)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-over'; + ctx.fillStyle = 'rgba(255, 255, 0, 1.0)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 255,255,0,255, 5); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.solid.xor.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.solid.xor.html index 431b8a3..d9da430 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.solid.xor.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.solid.xor.html
@@ -19,14 +19,12 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = 'rgba(0, 255, 255, 1.0)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'xor'; -ctx.fillStyle = 'rgba(255, 255, 0, 1.0)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); - + ctx.fillStyle = 'rgba(0, 255, 255, 1.0)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'xor'; + ctx.fillStyle = 'rgba(255, 255, 0, 1.0)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.transparent.clear.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.transparent.clear.html index 606d925..de417ee 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.transparent.clear.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.transparent.clear.html
@@ -19,14 +19,12 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'clear'; -ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); - + ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'clear'; + ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.transparent.copy.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.transparent.copy.html index 58673a1..2048975 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.transparent.copy.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.transparent.copy.html
@@ -19,14 +19,12 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'copy'; -ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,0,255,191, 5); - + ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'copy'; + ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,0,255,191, 5); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.transparent.destination-atop.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.transparent.destination-atop.html index 4d22016f..1da1f1a 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.transparent.destination-atop.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.transparent.destination-atop.html
@@ -19,14 +19,12 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'destination-atop'; -ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,128,128,191, 5); - + ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-atop'; + ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,128,128,191, 5); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.transparent.destination-in.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.transparent.destination-in.html index e946c72..b0f8abe 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.transparent.destination-in.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.transparent.destination-in.html
@@ -19,14 +19,12 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'destination-in'; -ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,255,0,96, 5); - + ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-in'; + ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,255,0,96, 5); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.transparent.destination-out.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.transparent.destination-out.html index 6e24825..badbfc4 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.transparent.destination-out.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.transparent.destination-out.html
@@ -19,14 +19,12 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'destination-out'; -ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,255,0,32, 5); - + ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-out'; + ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,255,0,32, 5); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.transparent.destination-over.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.transparent.destination-over.html index 4c9c9fb..e8e0051 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.transparent.destination-over.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.transparent.destination-over.html
@@ -19,14 +19,12 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'destination-over'; -ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,146,109,223, 5); - + ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-over'; + ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,146,109,223, 5); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.transparent.lighter.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.transparent.lighter.html index 4b3d148..6e4c42a 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.transparent.lighter.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.transparent.lighter.html
@@ -19,14 +19,12 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'lighter'; -ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,128,191,255, 5); - + ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'lighter'; + ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,128,191,255, 5); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.transparent.source-atop.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.transparent.source-atop.html index 4b09877..d3d3fbd 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.transparent.source-atop.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.transparent.source-atop.html
@@ -19,14 +19,12 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'source-atop'; -ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,64,191,128, 5); - + ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-atop'; + ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,64,191,128, 5); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.transparent.source-in.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.transparent.source-in.html index 236f01b..27c66cb6 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.transparent.source-in.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.transparent.source-in.html
@@ -19,14 +19,12 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'source-in'; -ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,0,255,96, 5); - + ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-in'; + ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,0,255,96, 5); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.transparent.source-out.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.transparent.source-out.html index d597ff9..31bb6a2 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.transparent.source-out.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.transparent.source-out.html
@@ -19,14 +19,12 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'source-out'; -ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,0,255,96, 5); - + ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-out'; + ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,0,255,96, 5); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.transparent.source-over.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.transparent.source-over.html index e2f8a7f6..ee20f52 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.transparent.source-over.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.transparent.source-over.html
@@ -19,14 +19,12 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'source-over'; -ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,36,219,223, 5); - + ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-over'; + ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,36,219,223, 5); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.transparent.xor.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.transparent.xor.html index 83027e5..d181875 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.transparent.xor.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.transparent.xor.html
@@ -19,14 +19,12 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'xor'; -ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,64,191,128, 5); - + ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'xor'; + ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,64,191,128, 5); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.uncovered.fill.copy.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.uncovered.fill.copy.html index cd443ae..9dfd650b 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.uncovered.fill.copy.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.uncovered.fill.copy.html
@@ -19,15 +19,13 @@ var t = async_test("fill() draws pixels not covered by the source object as (0,0,0,0), and does not leave the pixels unchanged."); _addTest(function(canvas, ctx) { - -ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'copy'; -ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; -ctx.translate(0, 25); -ctx.fillRect(0, 50, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); - + ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'copy'; + ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; + ctx.translate(0, 25); + ctx.fillRect(0, 50, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.uncovered.fill.destination-atop.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.uncovered.fill.destination-atop.html index 9182124e..685a139 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.uncovered.fill.destination-atop.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.uncovered.fill.destination-atop.html
@@ -19,15 +19,13 @@ var t = async_test("fill() draws pixels not covered by the source object as (0,0,0,0), and does not leave the pixels unchanged."); _addTest(function(canvas, ctx) { - -ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'destination-atop'; -ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; -ctx.translate(0, 25); -ctx.fillRect(0, 50, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); - + ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-atop'; + ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; + ctx.translate(0, 25); + ctx.fillRect(0, 50, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.uncovered.fill.destination-in.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.uncovered.fill.destination-in.html index 7906c15..9ca8021 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.uncovered.fill.destination-in.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.uncovered.fill.destination-in.html
@@ -19,15 +19,13 @@ var t = async_test("fill() draws pixels not covered by the source object as (0,0,0,0), and does not leave the pixels unchanged."); _addTest(function(canvas, ctx) { - -ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'destination-in'; -ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; -ctx.translate(0, 25); -ctx.fillRect(0, 50, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); - + ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-in'; + ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; + ctx.translate(0, 25); + ctx.fillRect(0, 50, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.uncovered.fill.source-in.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.uncovered.fill.source-in.html index d46b7d4..9f1a5f9 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.uncovered.fill.source-in.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.uncovered.fill.source-in.html
@@ -19,15 +19,13 @@ var t = async_test("fill() draws pixels not covered by the source object as (0,0,0,0), and does not leave the pixels unchanged."); _addTest(function(canvas, ctx) { - -ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'source-in'; -ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; -ctx.translate(0, 25); -ctx.fillRect(0, 50, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); - + ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-in'; + ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; + ctx.translate(0, 25); + ctx.fillRect(0, 50, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.uncovered.fill.source-out.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.uncovered.fill.source-out.html index 08a02649..7653677 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.uncovered.fill.source-out.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.uncovered.fill.source-out.html
@@ -19,15 +19,13 @@ var t = async_test("fill() draws pixels not covered by the source object as (0,0,0,0), and does not leave the pixels unchanged."); _addTest(function(canvas, ctx) { - -ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'source-out'; -ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; -ctx.translate(0, 25); -ctx.fillRect(0, 50, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); - + ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-out'; + ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; + ctx.translate(0, 25); + ctx.fillRect(0, 50, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.uncovered.image.copy.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.uncovered.image.copy.html index e909612..61dd038 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.uncovered.image.copy.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.uncovered.image.copy.html
@@ -19,14 +19,12 @@ var t = async_test("drawImage() draws pixels not covered by the source object as (0,0,0,0), and does not leave the pixels unchanged."); _addTest(function(canvas, ctx) { - -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'copy'; -ctx.drawImage(document.getElementById('yellow.png'), 40, 40, 10, 10, 40, 50, 10, 10); -_assertPixelApprox(canvas, 15,15, 0,0,0,0, 5); -_assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); - + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'copy'; + ctx.drawImage(document.getElementById('yellow.png'), 40, 40, 10, 10, 40, 50, 10, 10); + _assertPixelApprox(canvas, 15,15, 0,0,0,0, 5); + _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.uncovered.image.destination-atop.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.uncovered.image.destination-atop.html index d257e2f2..440c832c 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.uncovered.image.destination-atop.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.uncovered.image.destination-atop.html
@@ -19,14 +19,12 @@ var t = async_test("drawImage() draws pixels not covered by the source object as (0,0,0,0), and does not leave the pixels unchanged."); _addTest(function(canvas, ctx) { - -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'destination-atop'; -ctx.drawImage(document.getElementById('yellow.png'), 40, 40, 10, 10, 40, 50, 10, 10); -_assertPixelApprox(canvas, 15,15, 0,0,0,0, 5); -_assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); - + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-atop'; + ctx.drawImage(document.getElementById('yellow.png'), 40, 40, 10, 10, 40, 50, 10, 10); + _assertPixelApprox(canvas, 15,15, 0,0,0,0, 5); + _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.uncovered.image.destination-in.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.uncovered.image.destination-in.html index c3e3bc0..03e2e807 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.uncovered.image.destination-in.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.uncovered.image.destination-in.html
@@ -19,14 +19,12 @@ var t = async_test("drawImage() draws pixels not covered by the source object as (0,0,0,0), and does not leave the pixels unchanged."); _addTest(function(canvas, ctx) { - -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'destination-in'; -ctx.drawImage(document.getElementById('yellow.png'), 40, 40, 10, 10, 40, 50, 10, 10); -_assertPixelApprox(canvas, 15,15, 0,0,0,0, 5); -_assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); - + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-in'; + ctx.drawImage(document.getElementById('yellow.png'), 40, 40, 10, 10, 40, 50, 10, 10); + _assertPixelApprox(canvas, 15,15, 0,0,0,0, 5); + _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.uncovered.image.source-in.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.uncovered.image.source-in.html index fbcb3c2..de2e5fa 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.uncovered.image.source-in.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.uncovered.image.source-in.html
@@ -19,14 +19,12 @@ var t = async_test("drawImage() draws pixels not covered by the source object as (0,0,0,0), and does not leave the pixels unchanged."); _addTest(function(canvas, ctx) { - -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'source-in'; -ctx.drawImage(document.getElementById('yellow.png'), 40, 40, 10, 10, 40, 50, 10, 10); -_assertPixelApprox(canvas, 15,15, 0,0,0,0, 5); -_assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); - + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-in'; + ctx.drawImage(document.getElementById('yellow.png'), 40, 40, 10, 10, 40, 50, 10, 10); + _assertPixelApprox(canvas, 15,15, 0,0,0,0, 5); + _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.uncovered.image.source-out.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.uncovered.image.source-out.html index 03979e6..5cb9b07 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.uncovered.image.source-out.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.uncovered.image.source-out.html
@@ -19,14 +19,12 @@ var t = async_test("drawImage() draws pixels not covered by the source object as (0,0,0,0), and does not leave the pixels unchanged."); _addTest(function(canvas, ctx) { - -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'source-out'; -ctx.drawImage(document.getElementById('yellow.png'), 40, 40, 10, 10, 40, 50, 10, 10); -_assertPixelApprox(canvas, 15,15, 0,0,0,0, 5); -_assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); - + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-out'; + ctx.drawImage(document.getElementById('yellow.png'), 40, 40, 10, 10, 40, 50, 10, 10); + _assertPixelApprox(canvas, 15,15, 0,0,0,0, 5); + _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.uncovered.nocontext.copy.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.uncovered.nocontext.copy.html index 4bdf1d21..cac66ad 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.uncovered.nocontext.copy.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.uncovered.nocontext.copy.html
@@ -19,14 +19,12 @@ var t = async_test("drawImage() of a canvas with no context draws pixels as (0,0,0,0), and does not leave the pixels unchanged."); _addTest(function(canvas, ctx) { - -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'copy'; -var canvas2 = document.createElement('canvas'); -ctx.drawImage(canvas2, 0, 0); -_assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); - + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'copy'; + var canvas2 = document.createElement('canvas'); + ctx.drawImage(canvas2, 0, 0); + _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.uncovered.nocontext.destination-atop.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.uncovered.nocontext.destination-atop.html index 093b6829..c7cecc2e 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.uncovered.nocontext.destination-atop.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.uncovered.nocontext.destination-atop.html
@@ -19,14 +19,12 @@ var t = async_test("drawImage() of a canvas with no context draws pixels as (0,0,0,0), and does not leave the pixels unchanged."); _addTest(function(canvas, ctx) { - -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'destination-atop'; -var canvas2 = document.createElement('canvas'); -ctx.drawImage(canvas2, 0, 0); -_assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); - + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-atop'; + var canvas2 = document.createElement('canvas'); + ctx.drawImage(canvas2, 0, 0); + _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.uncovered.nocontext.destination-in.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.uncovered.nocontext.destination-in.html index dc613bd0..e090d7d4 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.uncovered.nocontext.destination-in.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.uncovered.nocontext.destination-in.html
@@ -19,14 +19,12 @@ var t = async_test("drawImage() of a canvas with no context draws pixels as (0,0,0,0), and does not leave the pixels unchanged."); _addTest(function(canvas, ctx) { - -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'destination-in'; -var canvas2 = document.createElement('canvas'); -ctx.drawImage(canvas2, 0, 0); -_assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); - + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-in'; + var canvas2 = document.createElement('canvas'); + ctx.drawImage(canvas2, 0, 0); + _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.uncovered.nocontext.source-in.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.uncovered.nocontext.source-in.html index 6616b4e..0436b40 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.uncovered.nocontext.source-in.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.uncovered.nocontext.source-in.html
@@ -19,14 +19,12 @@ var t = async_test("drawImage() of a canvas with no context draws pixels as (0,0,0,0), and does not leave the pixels unchanged."); _addTest(function(canvas, ctx) { - -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'source-in'; -var canvas2 = document.createElement('canvas'); -ctx.drawImage(canvas2, 0, 0); -_assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); - + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-in'; + var canvas2 = document.createElement('canvas'); + ctx.drawImage(canvas2, 0, 0); + _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.uncovered.nocontext.source-out.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.uncovered.nocontext.source-out.html index fe2d70f2..efbc8ab 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.uncovered.nocontext.source-out.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.uncovered.nocontext.source-out.html
@@ -19,14 +19,12 @@ var t = async_test("drawImage() of a canvas with no context draws pixels as (0,0,0,0), and does not leave the pixels unchanged."); _addTest(function(canvas, ctx) { - -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'source-out'; -var canvas2 = document.createElement('canvas'); -ctx.drawImage(canvas2, 0, 0); -_assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); - + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-out'; + var canvas2 = document.createElement('canvas'); + ctx.drawImage(canvas2, 0, 0); + _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.uncovered.pattern.copy.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.uncovered.pattern.copy.html index 4d6a91d..aaee920 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.uncovered.pattern.copy.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.uncovered.pattern.copy.html
@@ -19,14 +19,12 @@ var t = async_test("Pattern fill() draws pixels not covered by the source object as (0,0,0,0), and does not leave the pixels unchanged."); _addTest(function(canvas, ctx) { - -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'copy'; -ctx.fillStyle = ctx.createPattern(document.getElementById('yellow.png'), 'no-repeat'); -ctx.fillRect(0, 50, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); - + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'copy'; + ctx.fillStyle = ctx.createPattern(document.getElementById('yellow.png'), 'no-repeat'); + ctx.fillRect(0, 50, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.uncovered.pattern.destination-atop.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.uncovered.pattern.destination-atop.html index bf03da07..aded018f 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.uncovered.pattern.destination-atop.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.uncovered.pattern.destination-atop.html
@@ -19,14 +19,12 @@ var t = async_test("Pattern fill() draws pixels not covered by the source object as (0,0,0,0), and does not leave the pixels unchanged."); _addTest(function(canvas, ctx) { - -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'destination-atop'; -ctx.fillStyle = ctx.createPattern(document.getElementById('yellow.png'), 'no-repeat'); -ctx.fillRect(0, 50, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); - + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-atop'; + ctx.fillStyle = ctx.createPattern(document.getElementById('yellow.png'), 'no-repeat'); + ctx.fillRect(0, 50, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.uncovered.pattern.destination-in.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.uncovered.pattern.destination-in.html index f5a5fe3..e520e1ff 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.uncovered.pattern.destination-in.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.uncovered.pattern.destination-in.html
@@ -19,14 +19,12 @@ var t = async_test("Pattern fill() draws pixels not covered by the source object as (0,0,0,0), and does not leave the pixels unchanged."); _addTest(function(canvas, ctx) { - -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'destination-in'; -ctx.fillStyle = ctx.createPattern(document.getElementById('yellow.png'), 'no-repeat'); -ctx.fillRect(0, 50, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); - + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-in'; + ctx.fillStyle = ctx.createPattern(document.getElementById('yellow.png'), 'no-repeat'); + ctx.fillRect(0, 50, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.uncovered.pattern.source-in.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.uncovered.pattern.source-in.html index 385334d..bee6548 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.uncovered.pattern.source-in.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.uncovered.pattern.source-in.html
@@ -19,14 +19,12 @@ var t = async_test("Pattern fill() draws pixels not covered by the source object as (0,0,0,0), and does not leave the pixels unchanged."); _addTest(function(canvas, ctx) { - -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'source-in'; -ctx.fillStyle = ctx.createPattern(document.getElementById('yellow.png'), 'no-repeat'); -ctx.fillRect(0, 50, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); - + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-in'; + ctx.fillStyle = ctx.createPattern(document.getElementById('yellow.png'), 'no-repeat'); + ctx.fillRect(0, 50, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.uncovered.pattern.source-out.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.uncovered.pattern.source-out.html index ae0be111..9478930 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.uncovered.pattern.source-out.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/compositing/2d.composite.uncovered.pattern.source-out.html
@@ -19,14 +19,12 @@ var t = async_test("Pattern fill() draws pixels not covered by the source object as (0,0,0,0), and does not leave the pixels unchanged."); _addTest(function(canvas, ctx) { - -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'source-out'; -ctx.fillStyle = ctx.createPattern(document.getElementById('yellow.png'), 'no-repeat'); -ctx.fillRect(0, 50, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); - + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-out'; + ctx.fillStyle = ctx.createPattern(document.getElementById('yellow.png'), 'no-repeat'); + ctx.fillRect(0, 50, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.align.center.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.align.center.html index 71a7cae..6f54844 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.align.center.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.align.center.html
@@ -26,22 +26,21 @@ var t = async_test("textAlign center is the center of the em squares (not the bounding box)"); _addTest(function(canvas, ctx) { -ctx.font = '50px CanvasTest'; -deferTest(); -step_timeout(t.step_func_done(function () { - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.fillStyle = '#0f0'; - ctx.textAlign = 'center'; - ctx.fillText('DD', 50, 37.5); - _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 5,45, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,45, 0,255,0,255, 2); -}), 500); - + ctx.font = '50px CanvasTest'; + deferTest(); + step_timeout(t.step_func_done(function () { + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.textAlign = 'center'; + ctx.fillText('DD', 50, 37.5); + _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 5,45, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,45, 0,255,0,255, 2); + }), 500); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.align.end.ltr.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.align.end.ltr.html index 5bd7aa1..39751e1 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.align.end.ltr.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.align.end.ltr.html
@@ -26,22 +26,21 @@ var t = async_test("textAlign end with ltr is the right edge"); _addTest(function(canvas, ctx) { -ctx.font = '50px CanvasTest'; -deferTest(); -step_timeout(t.step_func_done(function () { - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.fillStyle = '#0f0'; - ctx.textAlign = 'end'; - ctx.fillText('DD', 100, 37.5); - _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 5,45, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,45, 0,255,0,255, 2); -}), 500); - + ctx.font = '50px CanvasTest'; + deferTest(); + step_timeout(t.step_func_done(function () { + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.textAlign = 'end'; + ctx.fillText('DD', 100, 37.5); + _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 5,45, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,45, 0,255,0,255, 2); + }), 500); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.align.end.rtl.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.align.end.rtl.html index d37a29c..86645a9 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.align.end.rtl.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.align.end.rtl.html
@@ -26,22 +26,21 @@ var t = async_test("textAlign end with rtl is the left edge"); _addTest(function(canvas, ctx) { -ctx.font = '50px CanvasTest'; -deferTest(); -step_timeout(t.step_func_done(function () { - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.fillStyle = '#0f0'; - ctx.textAlign = 'end'; - ctx.fillText('DD', 0, 37.5); - _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 5,45, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,45, 0,255,0,255, 2); -}), 500); - + ctx.font = '50px CanvasTest'; + deferTest(); + step_timeout(t.step_func_done(function () { + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.textAlign = 'end'; + ctx.fillText('DD', 0, 37.5); + _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 5,45, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,45, 0,255,0,255, 2); + }), 500); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.align.left.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.align.left.html index 5a4bdb6a..cd01f25 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.align.left.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.align.left.html
@@ -26,22 +26,21 @@ var t = async_test("textAlign left is the left of the first em square (not the bounding box)"); _addTest(function(canvas, ctx) { -ctx.font = '50px CanvasTest'; -deferTest(); -step_timeout(t.step_func_done(function () { - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.fillStyle = '#0f0'; - ctx.textAlign = 'left'; - ctx.fillText('DD', 0, 37.5); - _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 5,45, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,45, 0,255,0,255, 2); -}), 500); - + ctx.font = '50px CanvasTest'; + deferTest(); + step_timeout(t.step_func_done(function () { + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.textAlign = 'left'; + ctx.fillText('DD', 0, 37.5); + _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 5,45, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,45, 0,255,0,255, 2); + }), 500); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.align.right.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.align.right.html index 29e009e..64207b0 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.align.right.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.align.right.html
@@ -26,22 +26,21 @@ var t = async_test("textAlign right is the right of the last em square (not the bounding box)"); _addTest(function(canvas, ctx) { -ctx.font = '50px CanvasTest'; -deferTest(); -step_timeout(t.step_func_done(function () { - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.fillStyle = '#0f0'; - ctx.textAlign = 'right'; - ctx.fillText('DD', 100, 37.5); - _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 5,45, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,45, 0,255,0,255, 2); -}), 500); - + ctx.font = '50px CanvasTest'; + deferTest(); + step_timeout(t.step_func_done(function () { + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.textAlign = 'right'; + ctx.fillText('DD', 100, 37.5); + _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 5,45, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,45, 0,255,0,255, 2); + }), 500); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.align.start.ltr.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.align.start.ltr.html index d74a4b89..abf8086 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.align.start.ltr.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.align.start.ltr.html
@@ -26,22 +26,21 @@ var t = async_test("textAlign start with ltr is the left edge"); _addTest(function(canvas, ctx) { -ctx.font = '50px CanvasTest'; -deferTest(); -step_timeout(t.step_func_done(function () { - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.fillStyle = '#0f0'; - ctx.textAlign = 'start'; - ctx.fillText('DD', 0, 37.5); - _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 5,45, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,45, 0,255,0,255, 2); -}), 500); - + ctx.font = '50px CanvasTest'; + deferTest(); + step_timeout(t.step_func_done(function () { + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.textAlign = 'start'; + ctx.fillText('DD', 0, 37.5); + _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 5,45, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,45, 0,255,0,255, 2); + }), 500); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.align.start.rtl.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.align.start.rtl.html index 8dd671c..8c5b8198 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.align.start.rtl.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.align.start.rtl.html
@@ -26,22 +26,21 @@ var t = async_test("textAlign start with rtl is the right edge"); _addTest(function(canvas, ctx) { -ctx.font = '50px CanvasTest'; -deferTest(); -step_timeout(t.step_func_done(function () { - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.fillStyle = '#0f0'; - ctx.textAlign = 'start'; - ctx.fillText('DD', 100, 37.5); - _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 5,45, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,45, 0,255,0,255, 2); -}), 500); - + ctx.font = '50px CanvasTest'; + deferTest(); + step_timeout(t.step_func_done(function () { + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.textAlign = 'start'; + ctx.fillText('DD', 100, 37.5); + _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 5,45, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,45, 0,255,0,255, 2); + }), 500); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.fill.basic-manual.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.fill.basic-manual.html index 3652a21..d3f5df9d 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.fill.basic-manual.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.fill.basic-manual.html
@@ -19,13 +19,12 @@ var t = async_test("fillText draws filled text"); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#000'; -ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = '#0f0'; -ctx.strokeStyle = '#f00'; -ctx.font = '35px Arial, sans-serif'; -ctx.fillText('PASS', 5, 35); - + ctx.fillStyle = '#000'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.strokeStyle = '#f00'; + ctx.font = '35px Arial, sans-serif'; + ctx.fillText('PASS', 5, 35); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.fill.maxWidth.NaN.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.fill.maxWidth.NaN.html index d33df3c..9705d288 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.fill.maxWidth.NaN.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.fill.maxWidth.NaN.html
@@ -19,13 +19,12 @@ var t = async_test("fillText handles maxWidth correctly"); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = '#f00'; -ctx.font = '35px Arial, sans-serif'; -ctx.fillText('fail fail fail fail fail', 5, 35, NaN); -_assertGreen(ctx, 100, 50); - + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#f00'; + ctx.font = '35px Arial, sans-serif'; + ctx.fillText('fail fail fail fail fail', 5, 35, NaN); + _assertGreen(ctx, 100, 50); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.fill.maxWidth.bound.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.fill.maxWidth.bound.html index 50c6729..88dc1099 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.fill.maxWidth.bound.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.fill.maxWidth.bound.html
@@ -26,19 +26,18 @@ var t = async_test("fillText handles maxWidth based on line size, not bounding box size"); _addTest(function(canvas, ctx) { -ctx.font = '50px CanvasTest'; -deferTest(); -step_timeout(t.step_func_done(function () { - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.fillStyle = '#0f0'; - ctx.fillText('DD', 0, 37.5, 100); - _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); -}), 500); - + ctx.font = '50px CanvasTest'; + deferTest(); + step_timeout(t.step_func_done(function () { + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.fillText('DD', 0, 37.5, 100); + _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); + }), 500); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.fill.maxWidth.fontface.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.fill.maxWidth.fontface.html index 1e133a6..ed241de 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.fill.maxWidth.fontface.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.fill.maxWidth.fontface.html
@@ -26,19 +26,18 @@ var t = async_test("fillText works on @font-face fonts"); _addTest(function(canvas, ctx) { -ctx.font = '50px CanvasTest'; -deferTest(); -step_timeout(t.step_func_done(function () { - ctx.fillStyle = '#0f0'; - ctx.fillRect(0, 0, 100, 50); - ctx.fillStyle = '#f00'; - ctx.fillText('EEEE', -50, 37.5, 40); - _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); -}), 500); - + ctx.font = '50px CanvasTest'; + deferTest(); + step_timeout(t.step_func_done(function () { + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#f00'; + ctx.fillText('EEEE', -50, 37.5, 40); + _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); + }), 500); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.fill.maxWidth.large-manual.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.fill.maxWidth.large-manual.html index 761679ec..96bb2e7d 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.fill.maxWidth.large-manual.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.fill.maxWidth.large-manual.html
@@ -19,12 +19,11 @@ var t = async_test("fillText handles maxWidth correctly"); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#000'; -ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = '#0f0'; -ctx.font = '35px Arial, sans-serif'; -ctx.fillText('PASS', 5, 35, 200); - + ctx.fillStyle = '#000'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.font = '35px Arial, sans-serif'; + ctx.fillText('PASS', 5, 35, 200); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.fill.maxWidth.negative.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.fill.maxWidth.negative.html index b9febd1..ad50d576 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.fill.maxWidth.negative.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.fill.maxWidth.negative.html
@@ -19,13 +19,12 @@ var t = async_test("fillText handles maxWidth correctly"); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = '#f00'; -ctx.font = '35px Arial, sans-serif'; -ctx.fillText('fail fail fail fail fail', 5, 35, -1); -_assertGreen(ctx, 100, 50); - + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#f00'; + ctx.font = '35px Arial, sans-serif'; + ctx.fillText('fail fail fail fail fail', 5, 35, -1); + _assertGreen(ctx, 100, 50); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.fill.maxWidth.small.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.fill.maxWidth.small.html index 0d7b8ff2..75866af40 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.fill.maxWidth.small.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.fill.maxWidth.small.html
@@ -19,13 +19,12 @@ var t = async_test("fillText handles maxWidth correctly"); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = '#f00'; -ctx.font = '35px Arial, sans-serif'; -ctx.fillText('fail fail fail fail fail', -100, 35, 90); -_assertGreen(ctx, 100, 50); - + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#f00'; + ctx.font = '35px Arial, sans-serif'; + ctx.fillText('fail fail fail fail fail', -100, 35, 90); + _assertGreen(ctx, 100, 50); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.fill.maxWidth.zero.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.fill.maxWidth.zero.html index 64a3fdc..a175a57 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.fill.maxWidth.zero.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.fill.maxWidth.zero.html
@@ -19,13 +19,12 @@ var t = async_test("fillText handles maxWidth correctly"); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = '#f00'; -ctx.font = '35px Arial, sans-serif'; -ctx.fillText('fail fail fail fail fail', 5, 35, 0); -_assertGreen(ctx, 100, 50); - + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#f00'; + ctx.font = '35px Arial, sans-serif'; + ctx.fillText('fail fail fail fail fail', 5, 35, 0); + _assertGreen(ctx, 100, 50); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.fill.rtl-manual.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.fill.rtl-manual.html index 07eeeb49..6917d7e 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.fill.rtl-manual.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.fill.rtl-manual.html
@@ -19,13 +19,12 @@ var t = async_test("fillText respects Right-To-Left Override characters"); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#000'; -ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = '#0f0'; -ctx.strokeStyle = '#f00'; -ctx.font = '35px Arial, sans-serif'; -ctx.fillText('\u202eFAIL \xa0 \xa0 SSAP', 5, 35); - + ctx.fillStyle = '#000'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.strokeStyle = '#f00'; + ctx.font = '35px Arial, sans-serif'; + ctx.fillText('\u202eFAIL \xa0 \xa0 SSAP', 5, 35); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.fill.unaffected.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.fill.unaffected.html index cb1e7db..94ed31d1 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.fill.unaffected.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.fill.unaffected.html
@@ -19,23 +19,22 @@ var t = async_test("fillText does not start a new path or subpath"); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); -ctx.moveTo(0, 0); -ctx.lineTo(100, 0); + ctx.moveTo(0, 0); + ctx.lineTo(100, 0); -ctx.font = '35px Arial, sans-serif'; -ctx.fillText('FAIL', 5, 35); + ctx.font = '35px Arial, sans-serif'; + ctx.fillText('FAIL', 5, 35); -ctx.lineTo(100, 50); -ctx.lineTo(0, 50); -ctx.fillStyle = '#0f0'; -ctx.fill(); + ctx.lineTo(100, 50); + ctx.lineTo(0, 50); + ctx.fillStyle = '#0f0'; + ctx.fill(); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 5,45, 0,255,0,255); - + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 5,45, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.fontface.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.fontface.html index 9adcf356..cb7d6984 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.fontface.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.fontface.html
@@ -26,19 +26,18 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -ctx.font = '67px CanvasTest'; -deferTest(); -step_timeout(t.step_func_done(function () { - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.fillStyle = '#0f0'; - ctx.fillText('AA', 0, 50); - _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); -}), 500); - + ctx.font = '67px CanvasTest'; + deferTest(); + step_timeout(t.step_func_done(function () { + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.fillText('AA', 0, 50); + _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); + }), 500); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.fontface.notinpage.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.fontface.notinpage.html index 6ccb0c0..6c34739 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.fontface.notinpage.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.fontface.notinpage.html
@@ -25,19 +25,18 @@ var t = async_test("@font-face fonts should work even if they are not used in the page"); _addTest(function(canvas, ctx) { -ctx.font = '67px CanvasTest'; -deferTest(); -step_timeout(t.step_func_done(function () { - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.fillStyle = '#0f0'; - ctx.fillText('AA', 0, 50); - _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); -}), 500); - + ctx.font = '67px CanvasTest'; + deferTest(); + step_timeout(t.step_func_done(function () { + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.fillText('AA', 0, 50); + _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); + }), 500); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.fontface.repeat.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.fontface.repeat.html index 457c48c..d6d33a0 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.fontface.repeat.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.fontface.repeat.html
@@ -25,20 +25,19 @@ var t = async_test("Draw with the font immediately, then wait a bit until and draw again. (This crashes some version of WebKit.)"); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.font = '67px CanvasTest'; -ctx.fillStyle = '#0f0'; -ctx.fillText('AA', 0, 50); -deferTest(); -step_timeout(t.step_func_done(function () { - ctx.fillText('AA', 0, 50); - _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); -}), 500); - + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.font = '67px CanvasTest'; + ctx.fillStyle = '#0f0'; + ctx.fillText('AA', 0, 50); + deferTest(); + step_timeout(t.step_func_done(function () { + ctx.fillText('AA', 0, 50); + _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); + }), 500); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.kern.consistent-manual.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.kern.consistent-manual.html index f27c2a7..1840ef0 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.kern.consistent-manual.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.kern.consistent-manual.html
@@ -19,17 +19,16 @@ var t = async_test("Stroked and filled text should have exactly the same kerning so it overlaps"); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = '#f00'; -ctx.strokeStyle = '#0f0'; -ctx.lineWidth = 3; -ctx.font = '20px Arial, sans-serif'; -ctx.fillText('VAVAVAVAVAVAVA', -50, 25); -ctx.fillText('ToToToToToToTo', -50, 45); -ctx.strokeText('VAVAVAVAVAVAVA', -50, 25); -ctx.strokeText('ToToToToToToTo', -50, 45); - + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#f00'; + ctx.strokeStyle = '#0f0'; + ctx.lineWidth = 3; + ctx.font = '20px Arial, sans-serif'; + ctx.fillText('VAVAVAVAVAVAVA', -50, 25); + ctx.fillText('ToToToToToToTo', -50, 45); + ctx.strokeText('VAVAVAVAVAVAVA', -50, 25); + ctx.strokeText('ToToToToToToTo', -50, 45); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.space.basic.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.space.basic.html index 26f8114e..2c5d471 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.space.basic.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.space.basic.html
@@ -26,17 +26,16 @@ var t = async_test("U+0020 is rendered the correct size (1em wide)"); _addTest(function(canvas, ctx) { -ctx.font = '50px CanvasTest'; -deferTest(); -step_timeout(t.step_func_done(function () { - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.fillStyle = '#0f0'; - ctx.fillText('E EE', -100, 37.5); - _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); -}), 500); - + ctx.font = '50px CanvasTest'; + deferTest(); + step_timeout(t.step_func_done(function () { + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.fillText('E EE', -100, 37.5); + _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); + }), 500); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.space.collapse.nonspace.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.space.collapse.nonspace.html index e105ec35..00877c6 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.space.collapse.nonspace.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.space.collapse.nonspace.html
@@ -26,17 +26,16 @@ var t = async_test("Non-space characters are not converted to U+0020 and collapsed"); _addTest(function(canvas, ctx) { -ctx.font = '50px CanvasTest'; -deferTest(); -step_timeout(t.step_func_done(function () { - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.fillStyle = '#0f0'; - ctx.fillText('E\x0b EE', -150, 37.5); - _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); -}), 500); - + ctx.font = '50px CanvasTest'; + deferTest(); + step_timeout(t.step_func_done(function () { + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.fillText('E\x0b EE', -150, 37.5); + _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); + }), 500); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.stroke.basic-manual.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.stroke.basic-manual.html index 4481a0d2..1db0f06 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.stroke.basic-manual.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.stroke.basic-manual.html
@@ -19,14 +19,13 @@ var t = async_test("strokeText draws stroked text"); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#000'; -ctx.fillRect(0, 0, 100, 50); -ctx.strokeStyle = '#0f0'; -ctx.fillStyle = '#f00'; -ctx.lineWidth = 1; -ctx.font = '35px Arial, sans-serif'; -ctx.strokeText('PASS', 5, 35); - + ctx.fillStyle = '#000'; + ctx.fillRect(0, 0, 100, 50); + ctx.strokeStyle = '#0f0'; + ctx.fillStyle = '#f00'; + ctx.lineWidth = 1; + ctx.font = '35px Arial, sans-serif'; + ctx.strokeText('PASS', 5, 35); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.stroke.unaffected.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.stroke.unaffected.html index 728765c..76a3647 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.stroke.unaffected.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.draw.stroke.unaffected.html
@@ -19,24 +19,23 @@ var t = async_test("strokeText does not start a new path or subpath"); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); -ctx.moveTo(0, 0); -ctx.lineTo(100, 0); + ctx.moveTo(0, 0); + ctx.lineTo(100, 0); -ctx.font = '35px Arial, sans-serif'; -ctx.strokeStyle = '#f00'; -ctx.strokeText('FAIL', 5, 35); + ctx.font = '35px Arial, sans-serif'; + ctx.strokeStyle = '#f00'; + ctx.strokeText('FAIL', 5, 35); -ctx.lineTo(100, 50); -ctx.lineTo(0, 50); -ctx.fillStyle = '#0f0'; -ctx.fill(); + ctx.lineTo(100, 50); + ctx.lineTo(0, 50); + ctx.fillStyle = '#0f0'; + ctx.fill(); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 5,45, 0,255,0,255); - + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 5,45, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.drawing.style.fontKerning.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.drawing.style.fontKerning.html index f6c3826..6de9c6eb 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.drawing.style.fontKerning.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.drawing.style.fontKerning.html
@@ -19,15 +19,14 @@ var t = async_test("Testing basic functionalities of fontKerning for canvas"); _addTest(function(canvas, ctx) { -_assertSame(ctx.fontKerning, "auto", "ctx.fontKerning", "\"auto\""); -ctx.fontKerning = "normal"; -_assertSame(ctx.fontKerning, "normal", "ctx.fontKerning", "\"normal\""); -width_normal = ctx.measureText("TAWATAVA").width; -ctx.fontKerning = "none"; -_assertSame(ctx.fontKerning, "none", "ctx.fontKerning", "\"none\""); -width_none = ctx.measureText("TAWATAVA").width; -_assert(width_normal < width_none, "width_normal < width_none"); - + _assertSame(ctx.fontKerning, "auto", "ctx.fontKerning", "\"auto\""); + ctx.fontKerning = "normal"; + _assertSame(ctx.fontKerning, "normal", "ctx.fontKerning", "\"normal\""); + width_normal = ctx.measureText("TAWATAVA").width; + ctx.fontKerning = "none"; + _assertSame(ctx.fontKerning, "none", "ctx.fontKerning", "\"none\""); + width_none = ctx.measureText("TAWATAVA").width; + _assert(width_normal < width_none, "width_normal < width_none"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.drawing.style.fontKerning.with.uppercase.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.drawing.style.fontKerning.with.uppercase.html index db62fbe..fd91a09 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.drawing.style.fontKerning.with.uppercase.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.drawing.style.fontKerning.with.uppercase.html
@@ -19,37 +19,36 @@ var t = async_test("Testing basic functionalities of fontKerning for canvas"); _addTest(function(canvas, ctx) { -_assertSame(ctx.fontKerning, "auto", "ctx.fontKerning", "\"auto\""); -ctx.fontKerning = "Normal"; -_assertSame(ctx.fontKerning, "normal", "ctx.fontKerning", "\"normal\""); -ctx.fontKerning = "Auto"; -ctx.fontKerning = "normal"; -_assertSame(ctx.fontKerning, "normal", "ctx.fontKerning", "\"normal\""); -ctx.fontKerning = "Auto"; -ctx.fontKerning = "noRmal"; -_assertSame(ctx.fontKerning, "normal", "ctx.fontKerning", "\"normal\""); -ctx.fontKerning = "Auto"; -ctx.fontKerning = "NoRMal"; -_assertSame(ctx.fontKerning, "normal", "ctx.fontKerning", "\"normal\""); -ctx.fontKerning = "Auto"; -ctx.fontKerning = "NORMAL"; -_assertSame(ctx.fontKerning, "normal", "ctx.fontKerning", "\"normal\""); + _assertSame(ctx.fontKerning, "auto", "ctx.fontKerning", "\"auto\""); + ctx.fontKerning = "Normal"; + _assertSame(ctx.fontKerning, "normal", "ctx.fontKerning", "\"normal\""); + ctx.fontKerning = "Auto"; + ctx.fontKerning = "normal"; + _assertSame(ctx.fontKerning, "normal", "ctx.fontKerning", "\"normal\""); + ctx.fontKerning = "Auto"; + ctx.fontKerning = "noRmal"; + _assertSame(ctx.fontKerning, "normal", "ctx.fontKerning", "\"normal\""); + ctx.fontKerning = "Auto"; + ctx.fontKerning = "NoRMal"; + _assertSame(ctx.fontKerning, "normal", "ctx.fontKerning", "\"normal\""); + ctx.fontKerning = "Auto"; + ctx.fontKerning = "NORMAL"; + _assertSame(ctx.fontKerning, "normal", "ctx.fontKerning", "\"normal\""); -ctx.fontKerning = "None"; -_assertSame(ctx.fontKerning, "none", "ctx.fontKerning", "\"none\""); -ctx.fontKerning = "Auto"; -ctx.fontKerning = "none"; -_assertSame(ctx.fontKerning, "none", "ctx.fontKerning", "\"none\""); -ctx.fontKerning = "Auto"; -ctx.fontKerning = "nOne"; -_assertSame(ctx.fontKerning, "none", "ctx.fontKerning", "\"none\""); -ctx.fontKerning = "Auto"; -ctx.fontKerning = "nonE"; -_assertSame(ctx.fontKerning, "none", "ctx.fontKerning", "\"none\""); -ctx.fontKerning = "Auto"; -ctx.fontKerning = "NONE"; -_assertSame(ctx.fontKerning, "none", "ctx.fontKerning", "\"none\""); - + ctx.fontKerning = "None"; + _assertSame(ctx.fontKerning, "none", "ctx.fontKerning", "\"none\""); + ctx.fontKerning = "Auto"; + ctx.fontKerning = "none"; + _assertSame(ctx.fontKerning, "none", "ctx.fontKerning", "\"none\""); + ctx.fontKerning = "Auto"; + ctx.fontKerning = "nOne"; + _assertSame(ctx.fontKerning, "none", "ctx.fontKerning", "\"none\""); + ctx.fontKerning = "Auto"; + ctx.fontKerning = "nonE"; + _assertSame(ctx.fontKerning, "none", "ctx.fontKerning", "\"none\""); + ctx.fontKerning = "Auto"; + ctx.fontKerning = "NONE"; + _assertSame(ctx.fontKerning, "none", "ctx.fontKerning", "\"none\""); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.drawing.style.fontVariant.settings.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.drawing.style.fontVariant.settings.html index 6fdd145..cf0a3230 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.drawing.style.fontVariant.settings.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.drawing.style.fontVariant.settings.html
@@ -19,56 +19,55 @@ var t = async_test("Testing basic functionalities of fontKerning for canvas"); _addTest(function(canvas, ctx) { -// Setting fontVariantCaps with lower cases -_assertSame(ctx.fontVariantCaps, "normal", "ctx.fontVariantCaps", "\"normal\""); + // Setting fontVariantCaps with lower cases + _assertSame(ctx.fontVariantCaps, "normal", "ctx.fontVariantCaps", "\"normal\""); -ctx.fontVariantCaps = "normal"; -_assertSame(ctx.fontVariantCaps, "normal", "ctx.fontVariantCaps", "\"normal\""); + ctx.fontVariantCaps = "normal"; + _assertSame(ctx.fontVariantCaps, "normal", "ctx.fontVariantCaps", "\"normal\""); -ctx.fontVariantCaps = "small-caps"; -_assertSame(ctx.fontVariantCaps, "small-caps", "ctx.fontVariantCaps", "\"small-caps\""); + ctx.fontVariantCaps = "small-caps"; + _assertSame(ctx.fontVariantCaps, "small-caps", "ctx.fontVariantCaps", "\"small-caps\""); -ctx.fontVariantCaps = "all-small-caps"; -_assertSame(ctx.fontVariantCaps, "all-small-caps", "ctx.fontVariantCaps", "\"all-small-caps\""); + ctx.fontVariantCaps = "all-small-caps"; + _assertSame(ctx.fontVariantCaps, "all-small-caps", "ctx.fontVariantCaps", "\"all-small-caps\""); -ctx.fontVariantCaps = "petite-caps"; -_assertSame(ctx.fontVariantCaps, "petite-caps", "ctx.fontVariantCaps", "\"petite-caps\""); + ctx.fontVariantCaps = "petite-caps"; + _assertSame(ctx.fontVariantCaps, "petite-caps", "ctx.fontVariantCaps", "\"petite-caps\""); -ctx.fontVariantCaps = "all-petite-caps"; -_assertSame(ctx.fontVariantCaps, "all-petite-caps", "ctx.fontVariantCaps", "\"all-petite-caps\""); + ctx.fontVariantCaps = "all-petite-caps"; + _assertSame(ctx.fontVariantCaps, "all-petite-caps", "ctx.fontVariantCaps", "\"all-petite-caps\""); -ctx.fontVariantCaps = "unicase"; -_assertSame(ctx.fontVariantCaps, "unicase", "ctx.fontVariantCaps", "\"unicase\""); + ctx.fontVariantCaps = "unicase"; + _assertSame(ctx.fontVariantCaps, "unicase", "ctx.fontVariantCaps", "\"unicase\""); -ctx.fontVariantCaps = "titling-caps"; -_assertSame(ctx.fontVariantCaps, "titling-caps", "ctx.fontVariantCaps", "\"titling-caps\""); + ctx.fontVariantCaps = "titling-caps"; + _assertSame(ctx.fontVariantCaps, "titling-caps", "ctx.fontVariantCaps", "\"titling-caps\""); -// Setting fontVariantCaps with lower cases and upper cases word. -ctx.fontVariantCaps = "nORmal"; -_assertSame(ctx.fontVariantCaps, "normal", "ctx.fontVariantCaps", "\"normal\""); + // Setting fontVariantCaps with lower cases and upper cases word. + ctx.fontVariantCaps = "nORmal"; + _assertSame(ctx.fontVariantCaps, "normal", "ctx.fontVariantCaps", "\"normal\""); -ctx.fontVariantCaps = "smaLL-caps"; -_assertSame(ctx.fontVariantCaps, "small-caps", "ctx.fontVariantCaps", "\"small-caps\""); + ctx.fontVariantCaps = "smaLL-caps"; + _assertSame(ctx.fontVariantCaps, "small-caps", "ctx.fontVariantCaps", "\"small-caps\""); -ctx.fontVariantCaps = "all-small-CAPS"; -_assertSame(ctx.fontVariantCaps, "all-small-caps", "ctx.fontVariantCaps", "\"all-small-caps\""); + ctx.fontVariantCaps = "all-small-CAPS"; + _assertSame(ctx.fontVariantCaps, "all-small-caps", "ctx.fontVariantCaps", "\"all-small-caps\""); -ctx.fontVariantCaps = "pEtitE-caps"; -_assertSame(ctx.fontVariantCaps, "petite-caps", "ctx.fontVariantCaps", "\"petite-caps\""); + ctx.fontVariantCaps = "pEtitE-caps"; + _assertSame(ctx.fontVariantCaps, "petite-caps", "ctx.fontVariantCaps", "\"petite-caps\""); -ctx.fontVariantCaps = "All-Petite-Caps"; -_assertSame(ctx.fontVariantCaps, "all-petite-caps", "ctx.fontVariantCaps", "\"all-petite-caps\""); + ctx.fontVariantCaps = "All-Petite-Caps"; + _assertSame(ctx.fontVariantCaps, "all-petite-caps", "ctx.fontVariantCaps", "\"all-petite-caps\""); -ctx.fontVariantCaps = "uNIcase"; -_assertSame(ctx.fontVariantCaps, "unicase", "ctx.fontVariantCaps", "\"unicase\""); + ctx.fontVariantCaps = "uNIcase"; + _assertSame(ctx.fontVariantCaps, "unicase", "ctx.fontVariantCaps", "\"unicase\""); -ctx.fontVariantCaps = "titling-CAPS"; -_assertSame(ctx.fontVariantCaps, "titling-caps", "ctx.fontVariantCaps", "\"titling-caps\""); + ctx.fontVariantCaps = "titling-CAPS"; + _assertSame(ctx.fontVariantCaps, "titling-caps", "ctx.fontVariantCaps", "\"titling-caps\""); -// Setting fontVariantCaps with non-existing font variant. -ctx.fontVariantCaps = "abcd"; -_assertSame(ctx.fontVariantCaps, "titling-caps", "ctx.fontVariantCaps", "\"titling-caps\""); - + // Setting fontVariantCaps with non-existing font variant. + ctx.fontVariantCaps = "abcd"; + _assertSame(ctx.fontVariantCaps, "titling-caps", "ctx.fontVariantCaps", "\"titling-caps\""); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.drawing.style.invalid.spacing.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.drawing.style.invalid.spacing.html index 9bf2440..a0b8340 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.drawing.style.invalid.spacing.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.drawing.style.invalid.spacing.html
@@ -19,24 +19,23 @@ var t = async_test("Testing letter spacing and word spacing with invalid units"); _addTest(function(canvas, ctx) { -_assertSame(ctx.letterSpacing, '0px', "ctx.letterSpacing", "'0px'"); -_assertSame(ctx.wordSpacing, '0px', "ctx.wordSpacing", "'0px'"); - -function test_word_spacing(value) { - ctx.wordSpacing = value; - ctx.letterSpacing = value; - _assertSame(ctx.wordSpacing, '0px', "ctx.wordSpacing", "'0px'"); _assertSame(ctx.letterSpacing, '0px', "ctx.letterSpacing", "'0px'"); -} -test_word_spacing('0s'); -test_word_spacing('1min'); -test_word_spacing('1deg'); -test_word_spacing('1pp'); -test_word_spacing('initial'); -test_word_spacing('inherit'); -test_word_spacing('normal'); -test_word_spacing('none'); + _assertSame(ctx.wordSpacing, '0px', "ctx.wordSpacing", "'0px'"); + function test_word_spacing(value) { + ctx.wordSpacing = value; + ctx.letterSpacing = value; + _assertSame(ctx.wordSpacing, '0px', "ctx.wordSpacing", "'0px'"); + _assertSame(ctx.letterSpacing, '0px', "ctx.letterSpacing", "'0px'"); + } + test_word_spacing('0s'); + test_word_spacing('1min'); + test_word_spacing('1deg'); + test_word_spacing('1pp'); + test_word_spacing('initial'); + test_word_spacing('inherit'); + test_word_spacing('normal'); + test_word_spacing('none'); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.drawing.style.letterSpacing.change.font.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.drawing.style.letterSpacing.change.font.html index 3b88ab6..d7543e5d9 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.drawing.style.letterSpacing.change.font.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.drawing.style.letterSpacing.change.font.html
@@ -19,27 +19,26 @@ var t = async_test("Set letter spacing and word spacing to font dependent value and verify it works after font change."); _addTest(function(canvas, ctx) { -_assertSame(ctx.letterSpacing, '0px', "ctx.letterSpacing", "'0px'"); -_assertSame(ctx.wordSpacing, '0px', "ctx.wordSpacing", "'0px'"); -// Get the width for 'Hello World' at default size, 10px. -var width_normal = ctx.measureText('Hello World').width; + _assertSame(ctx.letterSpacing, '0px', "ctx.letterSpacing", "'0px'"); + _assertSame(ctx.wordSpacing, '0px', "ctx.wordSpacing", "'0px'"); + // Get the width for 'Hello World' at default size, 10px. + var width_normal = ctx.measureText('Hello World').width; -ctx.letterSpacing = '1em'; -_assertSame(ctx.letterSpacing, '1em', "ctx.letterSpacing", "'1em'"); -// 1em = 10px. Add 10px after each letter in "Hello World", -// makes it 110px longer. -var width_with_spacing = ctx.measureText('Hello World').width; -assert_approx_equals(width_with_spacing, width_normal + 110, 0.1, "letterSpacing incorrect before font change"); + ctx.letterSpacing = '1em'; + _assertSame(ctx.letterSpacing, '1em', "ctx.letterSpacing", "'1em'"); + // 1em = 10px. Add 10px after each letter in "Hello World", + // makes it 110px longer. + var width_with_spacing = ctx.measureText('Hello World').width; + assert_approx_equals(width_with_spacing, width_normal + 110, 0.1, "letterSpacing incorrect before font change"); -// Changing font to 20px. Without resetting the spacing, 1em letterSpacing -// is now 20px, so it's suppose to be 220px longer without any letterSpacing set. -ctx.font = '20px serif'; -width_with_spacing = ctx.measureText('Hello World').width; -// Now calculate the reference spacing for "Hello World" with no spacing. -ctx.letterSpacing = '0em'; -width_normal = ctx.measureText('Hello World').width; -assert_approx_equals(width_with_spacing, width_normal + 220, 0.1, "letterSpacing incorrect after font change"); - + // Changing font to 20px. Without resetting the spacing, 1em letterSpacing + // is now 20px, so it's suppose to be 220px longer without any letterSpacing set. + ctx.font = '20px serif'; + width_with_spacing = ctx.measureText('Hello World').width; + // Now calculate the reference spacing for "Hello World" with no spacing. + ctx.letterSpacing = '0em'; + width_normal = ctx.measureText('Hello World').width; + assert_approx_equals(width_with_spacing, width_normal + 220, 0.1, "letterSpacing incorrect after font change"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.drawing.style.letterSpacing.measure.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.drawing.style.letterSpacing.measure.html index ba8656e..9b0ce16e 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.drawing.style.letterSpacing.measure.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.drawing.style.letterSpacing.measure.html
@@ -19,35 +19,34 @@ var t = async_test("Testing letter spacing and word spacing"); _addTest(function(canvas, ctx) { -_assertSame(ctx.letterSpacing, '0px', "ctx.letterSpacing", "'0px'"); -_assertSame(ctx.wordSpacing, '0px', "ctx.wordSpacing", "'0px'"); -var width_normal = ctx.measureText('Hello World').width; - -function test_letter_spacing(value, difference_spacing, epsilon) { - ctx.letterSpacing = value; - _assertSame(ctx.letterSpacing, value, "ctx.letterSpacing", "value"); + _assertSame(ctx.letterSpacing, '0px', "ctx.letterSpacing", "'0px'"); _assertSame(ctx.wordSpacing, '0px', "ctx.wordSpacing", "'0px'"); - width_with_letter_spacing = ctx.measureText('Hello World').width; - assert_approx_equals(width_with_letter_spacing, width_normal + difference_spacing, epsilon, "letter spacing doesn't work."); -} + var width_normal = ctx.measureText('Hello World').width; -// The first value is the letter Spacing to be set, the second value the -// change in length of string 'Hello World', note that there are 11 letters -// in 'hello world', so the length difference is always letterSpacing * 11. -// and the third value is the acceptable differencee for the length change, -// note that unit such as 1cm/1mm doesn't map to an exact pixel value. -test_cases = [['3px', 33, 0.1], - ['5px', 55, 0.1], - ['-2px', -22, 0.1], - ['1em', 110, 0.1], - ['1in', 1056, 0.1], - ['-0.1cm', -41.65, 0.2], - ['-0.6mm', -24,95, 0.2]] + function test_letter_spacing(value, difference_spacing, epsilon) { + ctx.letterSpacing = value; + _assertSame(ctx.letterSpacing, value, "ctx.letterSpacing", "value"); + _assertSame(ctx.wordSpacing, '0px', "ctx.wordSpacing", "'0px'"); + width_with_letter_spacing = ctx.measureText('Hello World').width; + assert_approx_equals(width_with_letter_spacing, width_normal + difference_spacing, epsilon, "letter spacing doesn't work."); + } -for (const test_case of test_cases) { - test_letter_spacing(test_case[0], test_case[1], test_case[2]); -} + // The first value is the letter Spacing to be set, the second value the + // change in length of string 'Hello World', note that there are 11 letters + // in 'hello world', so the length difference is always letterSpacing * 11. + // and the third value is the acceptable differencee for the length change, + // note that unit such as 1cm/1mm doesn't map to an exact pixel value. + test_cases = [['3px', 33, 0.1], + ['5px', 55, 0.1], + ['-2px', -22, 0.1], + ['1em', 110, 0.1], + ['1in', 1056, 0.1], + ['-0.1cm', -41.65, 0.2], + ['-0.6mm', -24,95, 0.2]] + for (const test_case of test_cases) { + test_letter_spacing(test_case[0], test_case[1], test_case[2]); + } }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.drawing.style.nonfinite.spacing.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.drawing.style.nonfinite.spacing.html index f197d22..5ba2020 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.drawing.style.nonfinite.spacing.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.drawing.style.nonfinite.spacing.html
@@ -19,19 +19,18 @@ var t = async_test("Testing letter spacing and word spacing with nonfinite inputs"); _addTest(function(canvas, ctx) { -_assertSame(ctx.letterSpacing, '0px', "ctx.letterSpacing", "'0px'"); -_assertSame(ctx.wordSpacing, '0px', "ctx.wordSpacing", "'0px'"); - -function test_word_spacing(value) { - ctx.wordSpacing = value; - ctx.letterSpacing = value; - _assertSame(ctx.wordSpacing, '0px', "ctx.wordSpacing", "'0px'"); _assertSame(ctx.letterSpacing, '0px', "ctx.letterSpacing", "'0px'"); -} -test_word_spacing(NaN); -test_word_spacing(Infinity); -test_word_spacing(-Infinity); + _assertSame(ctx.wordSpacing, '0px', "ctx.wordSpacing", "'0px'"); + function test_word_spacing(value) { + ctx.wordSpacing = value; + ctx.letterSpacing = value; + _assertSame(ctx.wordSpacing, '0px', "ctx.wordSpacing", "'0px'"); + _assertSame(ctx.letterSpacing, '0px', "ctx.letterSpacing", "'0px'"); + } + test_word_spacing(NaN); + test_word_spacing(Infinity); + test_word_spacing(-Infinity); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.drawing.style.spacing.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.drawing.style.spacing.html index b5a411e..82a0fe3 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.drawing.style.spacing.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.drawing.style.spacing.html
@@ -19,27 +19,26 @@ var t = async_test("Testing letter spacing and word spacing"); _addTest(function(canvas, ctx) { -_assertSame(ctx.letterSpacing, '0px', "ctx.letterSpacing", "'0px'"); -_assertSame(ctx.wordSpacing, '0px', "ctx.wordSpacing", "'0px'"); + _assertSame(ctx.letterSpacing, '0px', "ctx.letterSpacing", "'0px'"); + _assertSame(ctx.wordSpacing, '0px', "ctx.wordSpacing", "'0px'"); -ctx.letterSpacing = '3px'; -_assertSame(ctx.letterSpacing, '3px', "ctx.letterSpacing", "'3px'"); -_assertSame(ctx.wordSpacing, '0px', "ctx.wordSpacing", "'0px'"); + ctx.letterSpacing = '3px'; + _assertSame(ctx.letterSpacing, '3px', "ctx.letterSpacing", "'3px'"); + _assertSame(ctx.wordSpacing, '0px', "ctx.wordSpacing", "'0px'"); -ctx.wordSpacing = '5px'; -_assertSame(ctx.letterSpacing, '3px', "ctx.letterSpacing", "'3px'"); -_assertSame(ctx.wordSpacing, '5px', "ctx.wordSpacing", "'5px'"); + ctx.wordSpacing = '5px'; + _assertSame(ctx.letterSpacing, '3px', "ctx.letterSpacing", "'3px'"); + _assertSame(ctx.wordSpacing, '5px', "ctx.wordSpacing", "'5px'"); -ctx.letterSpacing = '-1px'; -ctx.wordSpacing = '-1px'; -_assertSame(ctx.letterSpacing, '-1px', "ctx.letterSpacing", "'-1px'"); -_assertSame(ctx.wordSpacing, '-1px', "ctx.wordSpacing", "'-1px'"); + ctx.letterSpacing = '-1px'; + ctx.wordSpacing = '-1px'; + _assertSame(ctx.letterSpacing, '-1px', "ctx.letterSpacing", "'-1px'"); + _assertSame(ctx.wordSpacing, '-1px', "ctx.wordSpacing", "'-1px'"); -ctx.letterSpacing = '1PX'; -ctx.wordSpacing = '1EM'; -_assertSame(ctx.letterSpacing, '1px', "ctx.letterSpacing", "'1px'"); -_assertSame(ctx.wordSpacing, '1em', "ctx.wordSpacing", "'1em'"); - + ctx.letterSpacing = '1PX'; + ctx.wordSpacing = '1EM'; + _assertSame(ctx.letterSpacing, '1px', "ctx.letterSpacing", "'1px'"); + _assertSame(ctx.wordSpacing, '1em', "ctx.wordSpacing", "'1em'"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.drawing.style.textRendering.settings.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.drawing.style.textRendering.settings.html index f6634ee..03b35dfa 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.drawing.style.textRendering.settings.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.drawing.style.textRendering.settings.html
@@ -19,38 +19,37 @@ var t = async_test("Testing basic functionalities of textRendering in Canvas"); _addTest(function(canvas, ctx) { -// Setting textRendering with lower cases -_assertSame(ctx.textRendering, "auto", "ctx.textRendering", "\"auto\""); + // Setting textRendering with lower cases + _assertSame(ctx.textRendering, "auto", "ctx.textRendering", "\"auto\""); -ctx.textRendering = "auto"; -_assertSame(ctx.textRendering, "auto", "ctx.textRendering", "\"auto\""); + ctx.textRendering = "auto"; + _assertSame(ctx.textRendering, "auto", "ctx.textRendering", "\"auto\""); -ctx.textRendering = "optimizespeed"; -_assertSame(ctx.textRendering, "optimizeSpeed", "ctx.textRendering", "\"optimizeSpeed\""); + ctx.textRendering = "optimizespeed"; + _assertSame(ctx.textRendering, "optimizeSpeed", "ctx.textRendering", "\"optimizeSpeed\""); -ctx.textRendering = "optimizelegibility"; -_assertSame(ctx.textRendering, "optimizeLegibility", "ctx.textRendering", "\"optimizeLegibility\""); + ctx.textRendering = "optimizelegibility"; + _assertSame(ctx.textRendering, "optimizeLegibility", "ctx.textRendering", "\"optimizeLegibility\""); -ctx.textRendering = "geometricprecision"; -_assertSame(ctx.textRendering, "geometricPrecision", "ctx.textRendering", "\"geometricPrecision\""); + ctx.textRendering = "geometricprecision"; + _assertSame(ctx.textRendering, "geometricPrecision", "ctx.textRendering", "\"geometricPrecision\""); -// Setting textRendering with lower cases and upper cases word. -ctx.textRendering = "aUto"; -_assertSame(ctx.textRendering, "auto", "ctx.textRendering", "\"auto\""); + // Setting textRendering with lower cases and upper cases word. + ctx.textRendering = "aUto"; + _assertSame(ctx.textRendering, "auto", "ctx.textRendering", "\"auto\""); -ctx.textRendering = "OPtimizeSpeed"; -_assertSame(ctx.textRendering, "optimizeSpeed", "ctx.textRendering", "\"optimizeSpeed\""); + ctx.textRendering = "OPtimizeSpeed"; + _assertSame(ctx.textRendering, "optimizeSpeed", "ctx.textRendering", "\"optimizeSpeed\""); -ctx.textRendering = "OPtimizELEgibility"; -_assertSame(ctx.textRendering, "optimizeLegibility", "ctx.textRendering", "\"optimizeLegibility\""); + ctx.textRendering = "OPtimizELEgibility"; + _assertSame(ctx.textRendering, "optimizeLegibility", "ctx.textRendering", "\"optimizeLegibility\""); -ctx.textRendering = "GeometricPrecision"; -_assertSame(ctx.textRendering, "geometricPrecision", "ctx.textRendering", "\"geometricPrecision\""); + ctx.textRendering = "GeometricPrecision"; + _assertSame(ctx.textRendering, "geometricPrecision", "ctx.textRendering", "\"geometricPrecision\""); -// Setting textRendering with non-existing font variant. -ctx.textRendering = "abcd"; -_assertSame(ctx.textRendering, "geometricPrecision", "ctx.textRendering", "\"geometricPrecision\""); - + // Setting textRendering with non-existing font variant. + ctx.textRendering = "abcd"; + _assertSame(ctx.textRendering, "geometricPrecision", "ctx.textRendering", "\"geometricPrecision\""); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.drawing.style.wordSpacing.change.font.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.drawing.style.wordSpacing.change.font.html index d29bc8e..8bad1a0 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.drawing.style.wordSpacing.change.font.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.drawing.style.wordSpacing.change.font.html
@@ -19,27 +19,26 @@ var t = async_test("Set word spacing and word spacing to font dependent value and verify it works after font change."); _addTest(function(canvas, ctx) { -_assertSame(ctx.letterSpacing, '0px', "ctx.letterSpacing", "'0px'"); -_assertSame(ctx.wordSpacing, '0px', "ctx.wordSpacing", "'0px'"); -// Get the width for 'Hello World, again' at default size, 10px. -var width_normal = ctx.measureText('Hello World, again').width; + _assertSame(ctx.letterSpacing, '0px', "ctx.letterSpacing", "'0px'"); + _assertSame(ctx.wordSpacing, '0px', "ctx.wordSpacing", "'0px'"); + // Get the width for 'Hello World, again' at default size, 10px. + var width_normal = ctx.measureText('Hello World, again').width; -ctx.wordSpacing = '1em'; -_assertSame(ctx.wordSpacing, '1em', "ctx.wordSpacing", "'1em'"); -// 1em = 10px. Add 10px after each word in "Hello World, again", -// makes it 20px longer. -var width_with_spacing = ctx.measureText('Hello World, again').width; -_assertSame(width_with_spacing, width_normal + 20, "width_with_spacing", "width_normal + 20"); + ctx.wordSpacing = '1em'; + _assertSame(ctx.wordSpacing, '1em', "ctx.wordSpacing", "'1em'"); + // 1em = 10px. Add 10px after each word in "Hello World, again", + // makes it 20px longer. + var width_with_spacing = ctx.measureText('Hello World, again').width; + _assertSame(width_with_spacing, width_normal + 20, "width_with_spacing", "width_normal + 20"); -// Changing font to 20px. Without resetting the spacing, 1em wordSpacing -// is now 20px, so it's suppose to be 40px longer without any wordSpacing set. -ctx.font = '20px serif'; -width_with_spacing = ctx.measureText('Hello World, again').width; -// Now calculate the reference spacing for "Hello World, again" with no spacing. -ctx.wordSpacing = '0em'; -width_normal = ctx.measureText('Hello World, again').width; -_assertSame(width_with_spacing, width_normal + 40, "width_with_spacing", "width_normal + 40"); - + // Changing font to 20px. Without resetting the spacing, 1em wordSpacing + // is now 20px, so it's suppose to be 40px longer without any wordSpacing set. + ctx.font = '20px serif'; + width_with_spacing = ctx.measureText('Hello World, again').width; + // Now calculate the reference spacing for "Hello World, again" with no spacing. + ctx.wordSpacing = '0em'; + width_normal = ctx.measureText('Hello World, again').width; + _assertSame(width_with_spacing, width_normal + 40, "width_with_spacing", "width_normal + 40"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.drawing.style.wordSpacing.measure.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.drawing.style.wordSpacing.measure.html index 4898c23e..d4f10032e 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.drawing.style.wordSpacing.measure.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.drawing.style.wordSpacing.measure.html
@@ -19,35 +19,34 @@ var t = async_test("Testing if word spacing is working properly"); _addTest(function(canvas, ctx) { -_assertSame(ctx.letterSpacing, '0px', "ctx.letterSpacing", "'0px'"); -_assertSame(ctx.wordSpacing, '0px', "ctx.wordSpacing", "'0px'"); -var width_normal = ctx.measureText('Hello World, again').width; - -function test_word_spacing(value, difference_spacing, epsilon) { - ctx.wordSpacing = value; _assertSame(ctx.letterSpacing, '0px', "ctx.letterSpacing", "'0px'"); - _assertSame(ctx.wordSpacing, value, "ctx.wordSpacing", "value"); - width_with_word_spacing = ctx.measureText('Hello World, again').width; - assert_approx_equals(width_with_word_spacing, width_normal + difference_spacing, epsilon, "word spacing doesn't work."); -} + _assertSame(ctx.wordSpacing, '0px', "ctx.wordSpacing", "'0px'"); + var width_normal = ctx.measureText('Hello World, again').width; -// The first value is the word Spacing to be set, the second value the -// change in length of string 'Hello World', note that there are 2 words -// in 'Hello World, again', so the length difference is always wordSpacing * 2. -// and the third value is the acceptable differencee for the length change, -// note that unit such as 1cm/1mm doesn't map to an exact pixel value. -test_cases = [['3px', 6, 0.1], - ['5px', 10, 0.1], - ['-2px', -4, 0.1], - ['1em', 20, 0.1], - ['1in', 192, 0.1], - ['-0.1cm', -7.57, 0.2], - ['-0.6mm', -4.54, 0.2]] + function test_word_spacing(value, difference_spacing, epsilon) { + ctx.wordSpacing = value; + _assertSame(ctx.letterSpacing, '0px', "ctx.letterSpacing", "'0px'"); + _assertSame(ctx.wordSpacing, value, "ctx.wordSpacing", "value"); + width_with_word_spacing = ctx.measureText('Hello World, again').width; + assert_approx_equals(width_with_word_spacing, width_normal + difference_spacing, epsilon, "word spacing doesn't work."); + } -for (const test_case of test_cases) { - test_word_spacing(test_case[0], test_case[1], test_case[2]); -} + // The first value is the word Spacing to be set, the second value the + // change in length of string 'Hello World', note that there are 2 words + // in 'Hello World, again', so the length difference is always wordSpacing * 2. + // and the third value is the acceptable differencee for the length change, + // note that unit such as 1cm/1mm doesn't map to an exact pixel value. + test_cases = [['3px', 6, 0.1], + ['5px', 10, 0.1], + ['-2px', -4, 0.1], + ['1em', 20, 0.1], + ['1in', 192, 0.1], + ['-0.1cm', -7.57, 0.2], + ['-0.6mm', -4.54, 0.2]] + for (const test_case of test_cases) { + test_word_spacing(test_case[0], test_case[1], test_case[2]); + } }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.measure.actualBoundingBox.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.measure.actualBoundingBox.html index 44cff25..2317493 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.measure.actualBoundingBox.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.measure.actualBoundingBox.html
@@ -26,39 +26,38 @@ var t = async_test("Testing actualBoundingBox"); _addTest(function(canvas, ctx) { -deferTest(); -var f = new FontFace("CanvasTest", "/fonts/CanvasTest.ttf"); -document.fonts.add(f); -document.fonts.ready.then(() => { - step_timeout(t.step_func_done(function () { - ctx.font = '50px CanvasTest'; - ctx.direction = 'ltr'; - ctx.align = 'left' - ctx.baseline = 'alphabetic' - // Different platforms may render text slightly different. - // Values that are nominally expected to be zero might actually vary by a pixel or so - // if the UA accounts for antialiasing at glyph edges, so we allow a slight deviation. - _assert(Math.abs(ctx.measureText('A').actualBoundingBoxLeft) <= 1, "Math.abs(ctx.measureText('A').actualBoundingBoxLeft) <= 1"); - _assert(ctx.measureText('A').actualBoundingBoxRight >= 50, "ctx.measureText('A').actualBoundingBoxRight >= 50"); - _assert(ctx.measureText('A').actualBoundingBoxAscent >= 35, "ctx.measureText('A').actualBoundingBoxAscent >= 35"); - _assert(Math.abs(ctx.measureText('A').actualBoundingBoxDescent) <= 1, "Math.abs(ctx.measureText('A').actualBoundingBoxDescent) <= 1"); + deferTest(); + var f = new FontFace("CanvasTest", "/fonts/CanvasTest.ttf"); + document.fonts.add(f); + document.fonts.ready.then(() => { + step_timeout(t.step_func_done(function () { + ctx.font = '50px CanvasTest'; + ctx.direction = 'ltr'; + ctx.align = 'left' + ctx.baseline = 'alphabetic' + // Different platforms may render text slightly different. + // Values that are nominally expected to be zero might actually vary by a pixel or so + // if the UA accounts for antialiasing at glyph edges, so we allow a slight deviation. + _assert(Math.abs(ctx.measureText('A').actualBoundingBoxLeft) <= 1, "Math.abs(ctx.measureText('A').actualBoundingBoxLeft) <= 1"); + _assert(ctx.measureText('A').actualBoundingBoxRight >= 50, "ctx.measureText('A').actualBoundingBoxRight >= 50"); + _assert(ctx.measureText('A').actualBoundingBoxAscent >= 35, "ctx.measureText('A').actualBoundingBoxAscent >= 35"); + _assert(Math.abs(ctx.measureText('A').actualBoundingBoxDescent) <= 1, "Math.abs(ctx.measureText('A').actualBoundingBoxDescent) <= 1"); - _assert(ctx.measureText('D').actualBoundingBoxLeft >= 48, "ctx.measureText('D').actualBoundingBoxLeft >= 48"); - _assert(ctx.measureText('D').actualBoundingBoxLeft <= 52, "ctx.measureText('D').actualBoundingBoxLeft <= 52"); - _assert(ctx.measureText('D').actualBoundingBoxRight >= 75, "ctx.measureText('D').actualBoundingBoxRight >= 75"); - _assert(ctx.measureText('D').actualBoundingBoxRight <= 80, "ctx.measureText('D').actualBoundingBoxRight <= 80"); - _assert(ctx.measureText('D').actualBoundingBoxAscent >= 35, "ctx.measureText('D').actualBoundingBoxAscent >= 35"); - _assert(ctx.measureText('D').actualBoundingBoxAscent <= 40, "ctx.measureText('D').actualBoundingBoxAscent <= 40"); - _assert(ctx.measureText('D').actualBoundingBoxDescent >= 12, "ctx.measureText('D').actualBoundingBoxDescent >= 12"); - _assert(ctx.measureText('D').actualBoundingBoxDescent <= 15, "ctx.measureText('D').actualBoundingBoxDescent <= 15"); + _assert(ctx.measureText('D').actualBoundingBoxLeft >= 48, "ctx.measureText('D').actualBoundingBoxLeft >= 48"); + _assert(ctx.measureText('D').actualBoundingBoxLeft <= 52, "ctx.measureText('D').actualBoundingBoxLeft <= 52"); + _assert(ctx.measureText('D').actualBoundingBoxRight >= 75, "ctx.measureText('D').actualBoundingBoxRight >= 75"); + _assert(ctx.measureText('D').actualBoundingBoxRight <= 80, "ctx.measureText('D').actualBoundingBoxRight <= 80"); + _assert(ctx.measureText('D').actualBoundingBoxAscent >= 35, "ctx.measureText('D').actualBoundingBoxAscent >= 35"); + _assert(ctx.measureText('D').actualBoundingBoxAscent <= 40, "ctx.measureText('D').actualBoundingBoxAscent <= 40"); + _assert(ctx.measureText('D').actualBoundingBoxDescent >= 12, "ctx.measureText('D').actualBoundingBoxDescent >= 12"); + _assert(ctx.measureText('D').actualBoundingBoxDescent <= 15, "ctx.measureText('D').actualBoundingBoxDescent <= 15"); - _assert(Math.abs(ctx.measureText('ABCD').actualBoundingBoxLeft) <= 1, "Math.abs(ctx.measureText('ABCD').actualBoundingBoxLeft) <= 1"); - _assert(ctx.measureText('ABCD').actualBoundingBoxRight >= 200, "ctx.measureText('ABCD').actualBoundingBoxRight >= 200"); - _assert(ctx.measureText('ABCD').actualBoundingBoxAscent >= 85, "ctx.measureText('ABCD').actualBoundingBoxAscent >= 85"); - _assert(ctx.measureText('ABCD').actualBoundingBoxDescent >= 37, "ctx.measureText('ABCD').actualBoundingBoxDescent >= 37"); - }), 500); -}); - + _assert(Math.abs(ctx.measureText('ABCD').actualBoundingBoxLeft) <= 1, "Math.abs(ctx.measureText('ABCD').actualBoundingBoxLeft) <= 1"); + _assert(ctx.measureText('ABCD').actualBoundingBoxRight >= 200, "ctx.measureText('ABCD').actualBoundingBoxRight >= 200"); + _assert(ctx.measureText('ABCD').actualBoundingBoxAscent >= 85, "ctx.measureText('ABCD').actualBoundingBoxAscent >= 85"); + _assert(ctx.measureText('ABCD').actualBoundingBoxDescent >= 37, "ctx.measureText('ABCD').actualBoundingBoxDescent >= 37"); + }), 500); + }); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.measure.advances.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.measure.advances.html index e7039c7..84d0af4 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.measure.advances.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.measure.advances.html
@@ -26,31 +26,30 @@ var t = async_test("Testing width advances"); _addTest(function(canvas, ctx) { -deferTest(); -var f = new FontFace("CanvasTest", "/fonts/CanvasTest.ttf"); -document.fonts.add(f); -document.fonts.ready.then(() => { - step_timeout(t.step_func_done(function () { - ctx.font = '50px CanvasTest'; - ctx.direction = 'ltr'; - ctx.align = 'left' - // Some platforms may return '-0'. - _assertSame(Math.abs(ctx.measureText('Hello').advances[0]), 0, "Math.abs(ctx.measureText('Hello').advances[\""+(0)+"\"])", "0"); - // Different platforms may render text slightly different. - _assert(ctx.measureText('Hello').advances[1] >= 36, "ctx.measureText('Hello').advances[\""+(1)+"\"] >= 36"); - _assert(ctx.measureText('Hello').advances[2] >= 58, "ctx.measureText('Hello').advances[\""+(2)+"\"] >= 58"); - _assert(ctx.measureText('Hello').advances[3] >= 70, "ctx.measureText('Hello').advances[\""+(3)+"\"] >= 70"); - _assert(ctx.measureText('Hello').advances[4] >= 80, "ctx.measureText('Hello').advances[\""+(4)+"\"] >= 80"); + deferTest(); + var f = new FontFace("CanvasTest", "/fonts/CanvasTest.ttf"); + document.fonts.add(f); + document.fonts.ready.then(() => { + step_timeout(t.step_func_done(function () { + ctx.font = '50px CanvasTest'; + ctx.direction = 'ltr'; + ctx.align = 'left' + // Some platforms may return '-0'. + _assertSame(Math.abs(ctx.measureText('Hello').advances[0]), 0, "Math.abs(ctx.measureText('Hello').advances[\""+(0)+"\"])", "0"); + // Different platforms may render text slightly different. + _assert(ctx.measureText('Hello').advances[1] >= 36, "ctx.measureText('Hello').advances[\""+(1)+"\"] >= 36"); + _assert(ctx.measureText('Hello').advances[2] >= 58, "ctx.measureText('Hello').advances[\""+(2)+"\"] >= 58"); + _assert(ctx.measureText('Hello').advances[3] >= 70, "ctx.measureText('Hello').advances[\""+(3)+"\"] >= 70"); + _assert(ctx.measureText('Hello').advances[4] >= 80, "ctx.measureText('Hello').advances[\""+(4)+"\"] >= 80"); - var tm = ctx.measureText('Hello'); - _assertSame(ctx.measureText('Hello').advances[0], tm.advances[0], "ctx.measureText('Hello').advances[\""+(0)+"\"]", "tm.advances[\""+(0)+"\"]"); - _assertSame(ctx.measureText('Hello').advances[1], tm.advances[1], "ctx.measureText('Hello').advances[\""+(1)+"\"]", "tm.advances[\""+(1)+"\"]"); - _assertSame(ctx.measureText('Hello').advances[2], tm.advances[2], "ctx.measureText('Hello').advances[\""+(2)+"\"]", "tm.advances[\""+(2)+"\"]"); - _assertSame(ctx.measureText('Hello').advances[3], tm.advances[3], "ctx.measureText('Hello').advances[\""+(3)+"\"]", "tm.advances[\""+(3)+"\"]"); - _assertSame(ctx.measureText('Hello').advances[4], tm.advances[4], "ctx.measureText('Hello').advances[\""+(4)+"\"]", "tm.advances[\""+(4)+"\"]"); - }), 500); -}); - + var tm = ctx.measureText('Hello'); + _assertSame(ctx.measureText('Hello').advances[0], tm.advances[0], "ctx.measureText('Hello').advances[\""+(0)+"\"]", "tm.advances[\""+(0)+"\"]"); + _assertSame(ctx.measureText('Hello').advances[1], tm.advances[1], "ctx.measureText('Hello').advances[\""+(1)+"\"]", "tm.advances[\""+(1)+"\"]"); + _assertSame(ctx.measureText('Hello').advances[2], tm.advances[2], "ctx.measureText('Hello').advances[\""+(2)+"\"]", "tm.advances[\""+(2)+"\"]"); + _assertSame(ctx.measureText('Hello').advances[3], tm.advances[3], "ctx.measureText('Hello').advances[\""+(3)+"\"]", "tm.advances[\""+(3)+"\"]"); + _assertSame(ctx.measureText('Hello').advances[4], tm.advances[4], "ctx.measureText('Hello').advances[\""+(4)+"\"]", "tm.advances[\""+(4)+"\"]"); + }), 500); + }); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.measure.baselines.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.measure.baselines.html index 812949e2..95fac52 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.measure.baselines.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.measure.baselines.html
@@ -26,24 +26,23 @@ var t = async_test("Testing baselines"); _addTest(function(canvas, ctx) { -deferTest(); -var f = new FontFace("CanvasTest", "/fonts/CanvasTest.ttf"); -document.fonts.add(f); -document.fonts.ready.then(() => { - step_timeout(t.step_func_done(function () { - ctx.font = '50px CanvasTest'; - ctx.direction = 'ltr'; - ctx.align = 'left' - _assertSame(Math.abs(ctx.measureText('A').getBaselines().alphabetic), 0, "Math.abs(ctx.measureText('A').getBaselines().alphabetic)", "0"); - _assertSame(ctx.measureText('A').getBaselines().ideographic, -39, "ctx.measureText('A').getBaselines().ideographic", "-39"); - _assertSame(ctx.measureText('A').getBaselines().hanging, 68, "ctx.measureText('A').getBaselines().hanging", "68"); + deferTest(); + var f = new FontFace("CanvasTest", "/fonts/CanvasTest.ttf"); + document.fonts.add(f); + document.fonts.ready.then(() => { + step_timeout(t.step_func_done(function () { + ctx.font = '50px CanvasTest'; + ctx.direction = 'ltr'; + ctx.align = 'left' + _assertSame(Math.abs(ctx.measureText('A').getBaselines().alphabetic), 0, "Math.abs(ctx.measureText('A').getBaselines().alphabetic)", "0"); + _assertSame(ctx.measureText('A').getBaselines().ideographic, -39, "ctx.measureText('A').getBaselines().ideographic", "-39"); + _assertSame(ctx.measureText('A').getBaselines().hanging, 68, "ctx.measureText('A').getBaselines().hanging", "68"); - _assertSame(Math.abs(ctx.measureText('ABCD').getBaselines().alphabetic), 0, "Math.abs(ctx.measureText('ABCD').getBaselines().alphabetic)", "0"); - _assertSame(ctx.measureText('ABCD').getBaselines().ideographic, -39, "ctx.measureText('ABCD').getBaselines().ideographic", "-39"); - _assertSame(ctx.measureText('ABCD').getBaselines().hanging, 68, "ctx.measureText('ABCD').getBaselines().hanging", "68"); - }), 500); -}); - + _assertSame(Math.abs(ctx.measureText('ABCD').getBaselines().alphabetic), 0, "Math.abs(ctx.measureText('ABCD').getBaselines().alphabetic)", "0"); + _assertSame(ctx.measureText('ABCD').getBaselines().ideographic, -39, "ctx.measureText('ABCD').getBaselines().ideographic", "-39"); + _assertSame(ctx.measureText('ABCD').getBaselines().hanging, 68, "ctx.measureText('ABCD').getBaselines().hanging", "68"); + }), 500); + }); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.measure.boundingBox.direction.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.measure.boundingBox.direction.html index 4387b6c..a00eb7e 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.measure.boundingBox.direction.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.measure.boundingBox.direction.html
@@ -19,14 +19,13 @@ var t = async_test("Measurement should follow text direction"); _addTest(function(canvas, ctx) { -ctx.direction = "ltr"; -metrics = ctx.measureText('hello'); -_assert(metrics.actualBoundingBoxLeft < metrics.actualBoundingBoxRight, "metrics.actualBoundingBoxLeft < metrics.actualBoundingBoxRight"); + ctx.direction = "ltr"; + metrics = ctx.measureText('hello'); + _assert(metrics.actualBoundingBoxLeft < metrics.actualBoundingBoxRight, "metrics.actualBoundingBoxLeft < metrics.actualBoundingBoxRight"); -ctx.direction = "rtl"; -metrics = ctx.measureText('hello'); -_assert(metrics.actualBoundingBoxLeft > metrics.actualBoundingBoxRight, "metrics.actualBoundingBoxLeft > metrics.actualBoundingBoxRight"); - + ctx.direction = "rtl"; + metrics = ctx.measureText('hello'); + _assert(metrics.actualBoundingBoxLeft > metrics.actualBoundingBoxRight, "metrics.actualBoundingBoxLeft > metrics.actualBoundingBoxRight"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.measure.boundingBox.textAlign.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.measure.boundingBox.textAlign.html index 65c03093..88f594c7 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.measure.boundingBox.textAlign.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.measure.boundingBox.textAlign.html
@@ -19,14 +19,13 @@ var t = async_test("Measurement should be related to textAlignment"); _addTest(function(canvas, ctx) { -ctx.textAlign = "right"; -metrics = ctx.measureText('hello'); -_assert(metrics.actualBoundingBoxLeft > metrics.actualBoundingBoxRight, "metrics.actualBoundingBoxLeft > metrics.actualBoundingBoxRight"); + ctx.textAlign = "right"; + metrics = ctx.measureText('hello'); + _assert(metrics.actualBoundingBoxLeft > metrics.actualBoundingBoxRight, "metrics.actualBoundingBoxLeft > metrics.actualBoundingBoxRight"); -ctx.textAlign = "left" -metrics = ctx.measureText('hello'); -_assert(metrics.actualBoundingBoxLeft < metrics.actualBoundingBoxRight, "metrics.actualBoundingBoxLeft < metrics.actualBoundingBoxRight"); - + ctx.textAlign = "left" + metrics = ctx.measureText('hello'); + _assert(metrics.actualBoundingBoxLeft < metrics.actualBoundingBoxRight, "metrics.actualBoundingBoxLeft < metrics.actualBoundingBoxRight"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.measure.emHeights.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.measure.emHeights.html index 7a4b779..d1085ab 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.measure.emHeights.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.measure.emHeights.html
@@ -26,24 +26,23 @@ var t = async_test("Testing emHeights"); _addTest(function(canvas, ctx) { -deferTest(); -var f = new FontFace("CanvasTest", "/fonts/CanvasTest.ttf"); -document.fonts.add(f); -document.fonts.ready.then(() => { - step_timeout(t.step_func_done(function () { - ctx.font = '50px CanvasTest'; - ctx.direction = 'ltr'; - ctx.align = 'left' - _assertSame(ctx.measureText('A').emHeightAscent, 37.5, "ctx.measureText('A').emHeightAscent", "37.5"); - _assertSame(ctx.measureText('A').emHeightDescent, 12.5, "ctx.measureText('A').emHeightDescent", "12.5"); - _assertSame(ctx.measureText('A').emHeightDescent + ctx.measureText('A').emHeightAscent, 50, "ctx.measureText('A').emHeightDescent + ctx.measureText('A').emHeightAscent", "50"); + deferTest(); + var f = new FontFace("CanvasTest", "/fonts/CanvasTest.ttf"); + document.fonts.add(f); + document.fonts.ready.then(() => { + step_timeout(t.step_func_done(function () { + ctx.font = '50px CanvasTest'; + ctx.direction = 'ltr'; + ctx.align = 'left' + _assertSame(ctx.measureText('A').emHeightAscent, 37.5, "ctx.measureText('A').emHeightAscent", "37.5"); + _assertSame(ctx.measureText('A').emHeightDescent, 12.5, "ctx.measureText('A').emHeightDescent", "12.5"); + _assertSame(ctx.measureText('A').emHeightDescent + ctx.measureText('A').emHeightAscent, 50, "ctx.measureText('A').emHeightDescent + ctx.measureText('A').emHeightAscent", "50"); - _assertSame(ctx.measureText('ABCD').emHeightAscent, 37.5, "ctx.measureText('ABCD').emHeightAscent", "37.5"); - _assertSame(ctx.measureText('ABCD').emHeightDescent, 12.5, "ctx.measureText('ABCD').emHeightDescent", "12.5"); - _assertSame(ctx.measureText('ABCD').emHeightDescent + ctx.measureText('ABCD').emHeightAscent, 50, "ctx.measureText('ABCD').emHeightDescent + ctx.measureText('ABCD').emHeightAscent", "50"); - }), 500); -}); - + _assertSame(ctx.measureText('ABCD').emHeightAscent, 37.5, "ctx.measureText('ABCD').emHeightAscent", "37.5"); + _assertSame(ctx.measureText('ABCD').emHeightDescent, 12.5, "ctx.measureText('ABCD').emHeightDescent", "12.5"); + _assertSame(ctx.measureText('ABCD').emHeightDescent + ctx.measureText('ABCD').emHeightAscent, 50, "ctx.measureText('ABCD').emHeightDescent + ctx.measureText('ABCD').emHeightAscent", "50"); + }), 500); + }); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.measure.fontBoundingBox.ahem.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.measure.fontBoundingBox.ahem.html index 7af141a..80cbaba 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.measure.fontBoundingBox.ahem.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.measure.fontBoundingBox.ahem.html
@@ -26,22 +26,21 @@ var t = async_test("Testing fontBoundingBox for font ahem"); _addTest(function(canvas, ctx) { -deferTest(); -var f = new FontFace("Ahem", "/fonts/Ahem.ttf"); -document.fonts.add(f); -document.fonts.ready.then(() => { - step_timeout(t.step_func_done(function () { - ctx.font = '50px Ahem'; - ctx.direction = 'ltr'; - ctx.align = 'left' - _assertSame(ctx.measureText('A').fontBoundingBoxAscent, 40, "ctx.measureText('A').fontBoundingBoxAscent", "40"); - _assertSame(ctx.measureText('A').fontBoundingBoxDescent, 10, "ctx.measureText('A').fontBoundingBoxDescent", "10"); + deferTest(); + var f = new FontFace("Ahem", "/fonts/Ahem.ttf"); + document.fonts.add(f); + document.fonts.ready.then(() => { + step_timeout(t.step_func_done(function () { + ctx.font = '50px Ahem'; + ctx.direction = 'ltr'; + ctx.align = 'left' + _assertSame(ctx.measureText('A').fontBoundingBoxAscent, 40, "ctx.measureText('A').fontBoundingBoxAscent", "40"); + _assertSame(ctx.measureText('A').fontBoundingBoxDescent, 10, "ctx.measureText('A').fontBoundingBoxDescent", "10"); - _assertSame(ctx.measureText('ABCD').fontBoundingBoxAscent, 40, "ctx.measureText('ABCD').fontBoundingBoxAscent", "40"); - _assertSame(ctx.measureText('ABCD').fontBoundingBoxDescent, 10, "ctx.measureText('ABCD').fontBoundingBoxDescent", "10"); - }), 500); -}); - + _assertSame(ctx.measureText('ABCD').fontBoundingBoxAscent, 40, "ctx.measureText('ABCD').fontBoundingBoxAscent", "40"); + _assertSame(ctx.measureText('ABCD').fontBoundingBoxDescent, 10, "ctx.measureText('ABCD').fontBoundingBoxDescent", "10"); + }), 500); + }); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.measure.fontBoundingBox.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.measure.fontBoundingBox.html index 6cdd7b8..2737d2d 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.measure.fontBoundingBox.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.measure.fontBoundingBox.html
@@ -26,22 +26,21 @@ var t = async_test("Testing fontBoundingBox"); _addTest(function(canvas, ctx) { -deferTest(); -var f = new FontFace("CanvasTest", "/fonts/CanvasTest.ttf"); -document.fonts.add(f); -document.fonts.ready.then(() => { - step_timeout(t.step_func_done(function () { - ctx.font = '50px CanvasTest'; - ctx.direction = 'ltr'; - ctx.align = 'left' - _assertSame(ctx.measureText('A').fontBoundingBoxAscent, 85, "ctx.measureText('A').fontBoundingBoxAscent", "85"); - _assertSame(ctx.measureText('A').fontBoundingBoxDescent, 39, "ctx.measureText('A').fontBoundingBoxDescent", "39"); + deferTest(); + var f = new FontFace("CanvasTest", "/fonts/CanvasTest.ttf"); + document.fonts.add(f); + document.fonts.ready.then(() => { + step_timeout(t.step_func_done(function () { + ctx.font = '50px CanvasTest'; + ctx.direction = 'ltr'; + ctx.align = 'left' + _assertSame(ctx.measureText('A').fontBoundingBoxAscent, 85, "ctx.measureText('A').fontBoundingBoxAscent", "85"); + _assertSame(ctx.measureText('A').fontBoundingBoxDescent, 39, "ctx.measureText('A').fontBoundingBoxDescent", "39"); - _assertSame(ctx.measureText('ABCD').fontBoundingBoxAscent, 85, "ctx.measureText('ABCD').fontBoundingBoxAscent", "85"); - _assertSame(ctx.measureText('ABCD').fontBoundingBoxDescent, 39, "ctx.measureText('ABCD').fontBoundingBoxDescent", "39"); - }), 500); -}); - + _assertSame(ctx.measureText('ABCD').fontBoundingBoxAscent, 85, "ctx.measureText('ABCD').fontBoundingBoxAscent", "85"); + _assertSame(ctx.measureText('ABCD').fontBoundingBoxDescent, 39, "ctx.measureText('ABCD').fontBoundingBoxDescent", "39"); + }), 500); + }); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.measure.rtl.text.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.measure.rtl.text.html index 539eab0..a92d5cb 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.measure.rtl.text.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.measure.rtl.text.html
@@ -26,12 +26,11 @@ var t = async_test("Measurement should follow canvas direction instead text direction"); _addTest(function(canvas, ctx) { -metrics = ctx.measureText('اَلْعَرَبِيَّةُ'); -_assert(metrics.actualBoundingBoxLeft < metrics.actualBoundingBoxRight, "metrics.actualBoundingBoxLeft < metrics.actualBoundingBoxRight"); + metrics = ctx.measureText('اَلْعَرَبِيَّةُ'); + _assert(metrics.actualBoundingBoxLeft < metrics.actualBoundingBoxRight, "metrics.actualBoundingBoxLeft < metrics.actualBoundingBoxRight"); -metrics = ctx.measureText('hello'); -_assert(metrics.actualBoundingBoxLeft < metrics.actualBoundingBoxRight, "metrics.actualBoundingBoxLeft < metrics.actualBoundingBoxRight"); - + metrics = ctx.measureText('hello'); + _assert(metrics.actualBoundingBoxLeft < metrics.actualBoundingBoxRight, "metrics.actualBoundingBoxLeft < metrics.actualBoundingBoxRight"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.measure.width.basic.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.measure.width.basic.html index 4c528ed..1d5502d 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.measure.width.basic.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.measure.width.basic.html
@@ -26,21 +26,20 @@ var t = async_test("The width of character is same as font used"); _addTest(function(canvas, ctx) { -deferTest(); -var f = new FontFace("CanvasTest", "/fonts/CanvasTest.ttf"); -document.fonts.add(f); -document.fonts.ready.then(() => { - step_timeout(t.step_func_done(function () { - ctx.font = '50px CanvasTest'; - _assertSame(ctx.measureText('A').width, 50, "ctx.measureText('A').width", "50"); - _assertSame(ctx.measureText('AA').width, 100, "ctx.measureText('AA').width", "100"); - _assertSame(ctx.measureText('ABCD').width, 200, "ctx.measureText('ABCD').width", "200"); + deferTest(); + var f = new FontFace("CanvasTest", "/fonts/CanvasTest.ttf"); + document.fonts.add(f); + document.fonts.ready.then(() => { + step_timeout(t.step_func_done(function () { + ctx.font = '50px CanvasTest'; + _assertSame(ctx.measureText('A').width, 50, "ctx.measureText('A').width", "50"); + _assertSame(ctx.measureText('AA').width, 100, "ctx.measureText('AA').width", "100"); + _assertSame(ctx.measureText('ABCD').width, 200, "ctx.measureText('ABCD').width", "200"); - ctx.font = '100px CanvasTest'; - _assertSame(ctx.measureText('A').width, 100, "ctx.measureText('A').width", "100"); - }), 500); -}); - + ctx.font = '100px CanvasTest'; + _assertSame(ctx.measureText('A').width, 100, "ctx.measureText('A').width", "100"); + }), 500); + }); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.measure.width.empty.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.measure.width.empty.html index 83686314..ce9e80b 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.measure.width.empty.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.measure.width.empty.html
@@ -26,16 +26,15 @@ var t = async_test("The empty string has zero width"); _addTest(function(canvas, ctx) { -deferTest(); -var f = new FontFace("CanvasTest", "/fonts/CanvasTest.ttf"); -document.fonts.add(f); -document.fonts.ready.then(() => { - step_timeout(t.step_func_done(function () { - ctx.font = '50px CanvasTest'; - _assertSame(ctx.measureText("").width, 0, "ctx.measureText(\"\").width", "0"); - }), 500); -}); - + deferTest(); + var f = new FontFace("CanvasTest", "/fonts/CanvasTest.ttf"); + document.fonts.add(f); + document.fonts.ready.then(() => { + step_timeout(t.step_func_done(function () { + ctx.font = '50px CanvasTest'; + _assertSame(ctx.measureText("").width, 0, "ctx.measureText(\"\").width", "0"); + }), 500); + }); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.CSSHSL.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.CSSHSL.html index cc48c2e..481d6fe 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.CSSHSL.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.CSSHSL.html
@@ -19,32 +19,31 @@ var t = async_test("CSSHSL works as color input"); _addTest(function(canvas, ctx) { -ctx.fillStyle = new CSSHSL(CSS.deg(180), 0.5, 0.5); -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 64,191,191,255, 3); + ctx.fillStyle = new CSSHSL(CSS.deg(180), 0.5, 0.5); + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 64,191,191,255, 3); -const color = new CSSHSL(CSS.deg(180), 1, 1); -ctx.fillStyle = color; -_assertSame(ctx.fillStyle, '#ffffff', "ctx.fillStyle", "'#ffffff'"); -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 255,255,255,255); -color.l = 0.5; -ctx.fillStyle = color; -_assertSame(ctx.fillStyle, '#00ffff', "ctx.fillStyle", "'#00ffff'"); -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,255,255); + const color = new CSSHSL(CSS.deg(180), 1, 1); + ctx.fillStyle = color; + _assertSame(ctx.fillStyle, '#ffffff', "ctx.fillStyle", "'#ffffff'"); + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 255,255,255,255); + color.l = 0.5; + ctx.fillStyle = color; + _assertSame(ctx.fillStyle, '#00ffff', "ctx.fillStyle", "'#00ffff'"); + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,255,255); -ctx.fillStyle = new CSSRGB(1, 0, 1).toHSL(); -_assertSame(ctx.fillStyle, '#ff00ff', "ctx.fillStyle", "'#ff00ff'"); -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 255,0,255,255); + ctx.fillStyle = new CSSRGB(1, 0, 1).toHSL(); + _assertSame(ctx.fillStyle, '#ff00ff', "ctx.fillStyle", "'#ff00ff'"); + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 255,0,255,255); -color.h = CSS.deg(120); -color.s = 1; -color.l = 0.5; -ctx.fillStyle = color; -ctx.fillRect(0, 0, 100, 50); - + color.h = CSS.deg(120); + color.s = 1; + color.l = 0.5; + ctx.fillStyle = color; + ctx.fillRect(0, 0, 100, 50); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.CSSRGB.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.CSSRGB.html index 0e3fcd4f..cfdb603 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.CSSRGB.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.CSSRGB.html
@@ -19,41 +19,40 @@ var t = async_test("CSSRGB works as color input"); _addTest(function(canvas, ctx) { -ctx.fillStyle = new CSSRGB(1, 0, 1); -_assertSame(ctx.fillStyle, '#ff00ff', "ctx.fillStyle", "'#ff00ff'"); -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 255,0,255,255); + ctx.fillStyle = new CSSRGB(1, 0, 1); + _assertSame(ctx.fillStyle, '#ff00ff', "ctx.fillStyle", "'#ff00ff'"); + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 255,0,255,255); -const color = new CSSRGB(0, CSS.percent(50), 0); -ctx.fillStyle = color; -_assertSame(ctx.fillStyle, '#008000', "ctx.fillStyle", "'#008000'"); -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,128,0,255); -color.g = 0; -ctx.fillStyle = color; -_assertSame(ctx.fillStyle, '#000000', "ctx.fillStyle", "'#000000'"); -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,0,0,255); + const color = new CSSRGB(0, CSS.percent(50), 0); + ctx.fillStyle = color; + _assertSame(ctx.fillStyle, '#008000', "ctx.fillStyle", "'#008000'"); + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,128,0,255); + color.g = 0; + ctx.fillStyle = color; + _assertSame(ctx.fillStyle, '#000000', "ctx.fillStyle", "'#000000'"); + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,0,0,255); -color.alpha = 0; -ctx.fillStyle = color; -_assertSame(ctx.fillStyle, 'rgba(0, 0, 0, 0)', "ctx.fillStyle", "'rgba(0, 0, 0, 0)'"); -ctx.reset(); -color.alpha = 0.5; -ctx.fillStyle = color; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,0,0,128); + color.alpha = 0; + ctx.fillStyle = color; + _assertSame(ctx.fillStyle, 'rgba(0, 0, 0, 0)', "ctx.fillStyle", "'rgba(0, 0, 0, 0)'"); + ctx.reset(); + color.alpha = 0.5; + ctx.fillStyle = color; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,0,0,128); -ctx.fillStyle = new CSSHSL(CSS.deg(0), 1, 1).toRGB(); -_assertSame(ctx.fillStyle, '#ffffff', "ctx.fillStyle", "'#ffffff'"); -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 255,255,255,255); + ctx.fillStyle = new CSSHSL(CSS.deg(0), 1, 1).toRGB(); + _assertSame(ctx.fillStyle, '#ffffff', "ctx.fillStyle", "'#ffffff'"); + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 255,255,255,255); -color.alpha = 1; -color.g = 1; -ctx.fillStyle = color; -ctx.fillRect(0, 0, 100, 50); - + color.alpha = 1; + color.g = 1; + ctx.fillStyle = color; + ctx.fillRect(0, 0, 100, 50); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.default.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.default.html index 31e051a..1bd3e2d4 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.default.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.default.html
@@ -19,8 +19,7 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -_assertSame(ctx.fillStyle, '#000000', "ctx.fillStyle", "'#000000'"); - + _assertSame(ctx.fillStyle, '#000000', "ctx.fillStyle", "'#000000'"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.get.halftransparent.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.get.halftransparent.html index 4101bf4..423293e 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.get.halftransparent.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.get.halftransparent.html
@@ -19,9 +19,8 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -ctx.fillStyle = 'rgba(255,255,255,0.5)'; -_assertSame(ctx.fillStyle, 'rgba(255, 255, 255, 0.5)', "ctx.fillStyle", "'rgba(255, 255, 255, 0.5)'"); - + ctx.fillStyle = 'rgba(255,255,255,0.5)'; + _assertSame(ctx.fillStyle, 'rgba(255, 255, 255, 0.5)', "ctx.fillStyle", "'rgba(255, 255, 255, 0.5)'"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.get.semitransparent.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.get.semitransparent.html index 9f178473..ec63d76 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.get.semitransparent.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.get.semitransparent.html
@@ -19,9 +19,8 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -ctx.fillStyle = 'rgba(255,255,255,0.45)'; -assert_regexp_match(ctx.fillStyle, /^rgba\(255, 255, 255, 0\.4\d+\)$/); - + ctx.fillStyle = 'rgba(255,255,255,0.45)'; + assert_regexp_match(ctx.fillStyle, /^rgba\(255, 255, 255, 0\.4\d+\)$/); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.get.solid.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.get.solid.html index 9361389..bcdd57a 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.get.solid.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.get.solid.html
@@ -19,9 +19,8 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#fa0'; -_assertSame(ctx.fillStyle, '#ffaa00', "ctx.fillStyle", "'#ffaa00'"); - + ctx.fillStyle = '#fa0'; + _assertSame(ctx.fillStyle, '#ffaa00', "ctx.fillStyle", "'#ffaa00'"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.get.transparent.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.get.transparent.html index fd381eb8..21931aa 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.get.transparent.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.get.transparent.html
@@ -19,9 +19,8 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -ctx.fillStyle = 'rgba(0,0,0,0)'; -_assertSame(ctx.fillStyle, 'rgba(0, 0, 0, 0)', "ctx.fillStyle", "'rgba(0, 0, 0, 0)'"); - + ctx.fillStyle = 'rgba(0,0,0,0)'; + _assertSame(ctx.fillStyle, 'rgba(0, 0, 0, 0)', "ctx.fillStyle", "'rgba(0, 0, 0, 0)'"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.invalidstring.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.invalidstring.html index 16bb923..9fb83063 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.invalidstring.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.invalidstring.html
@@ -19,13 +19,12 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = '#0f0'; -ctx.fillStyle = 'invalid'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.fillStyle = 'invalid'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.invalidtype.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.invalidtype.html index d2183683..84d8fbd3 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.invalidtype.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.invalidtype.html
@@ -19,13 +19,12 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = '#0f0'; -ctx.fillStyle = null; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.fillStyle = null; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-1.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-1.html index 12a338e..87b5bc93 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-1.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl(120 100.0% 50.0%)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl(120 100.0% 50.0%)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-2.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-2.html index 71db4187a..746c358 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-2.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl(120 100.0% 50.0% / 0.2)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,51); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl(120 100.0% 50.0% / 0.2)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,51); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-3.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-3.html index 6c84e94..b8a9cd5 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-3.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-3.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl(120.0, 100.0%, 50.0%, 0.2)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,51); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl(120.0, 100.0%, 50.0%, 0.2)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,51); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-4.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-4.html index d379657..d5e58b9 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-4.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-4.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl(120.0, 100.0%, 50.0%, 20%)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,51); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl(120.0, 100.0%, 50.0%, 20%)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,51); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-5.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-5.html index 62ad91f..85bbb802 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-5.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-5.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl(120deg, 100.0%, 50.0%, 0.2)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,51); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl(120deg, 100.0%, 50.0%, 0.2)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,51); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-6.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-6.html index 9c879828..154bdcd 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-6.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-6.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl(120deg, 100.0%, 50.0%)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl(120deg, 100.0%, 50.0%)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-7.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-7.html index c3e2334..5cf81e4 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-7.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-7.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl(133.33333333grad, 100.0%, 50.0%)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl(133.33333333grad, 100.0%, 50.0%)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-8.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-8.html index b9baf11..17d0782df 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-8.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-8.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl(2.0943951024rad, 100.0%, 50.0%)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl(2.0943951024rad, 100.0%, 50.0%)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-9.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-9.html index 274585c3..2f4b1e8e 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-9.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-9.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl(0.3333333333turn, 100.0%, 50.0%)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl(0.3333333333turn, 100.0%, 50.0%)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-1.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-1.html index e4a5cbc09..bc70e21 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-1.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl(120 100.0% 50.0%)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl(120 100.0% 50.0%)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-2.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-2.html index 976bf71..7f77498 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-2.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl(120 100.0% 50.0% / 0.2)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,51); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl(120 100.0% 50.0% / 0.2)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,51); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-3.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-3.html index 16100e6a..c33a50a 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-3.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-3.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl(120.0, 100.0%, 50.0%, 0.2)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,51); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl(120.0, 100.0%, 50.0%, 0.2)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,51); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-4.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-4.html index eb0158e..3d0cafc 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-4.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-4.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl(120.0, 100.0%, 50.0%, 20%)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,51); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl(120.0, 100.0%, 50.0%, 20%)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,51); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-5.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-5.html index c1b7c56..a70613b 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-5.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-5.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl(120deg, 100.0%, 50.0%, 0.2)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,51); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl(120deg, 100.0%, 50.0%, 0.2)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,51); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-6.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-6.html index 06aa355..8c46d88 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-6.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-6.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl(120deg, 100.0%, 50.0%)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl(120deg, 100.0%, 50.0%)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-7.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-7.html index eb66e27..b6b4760 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-7.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-7.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl(133.33333333grad, 100.0%, 50.0%)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl(133.33333333grad, 100.0%, 50.0%)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-8.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-8.html index 0c13368..7933d47 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-8.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-8.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl(2.0943951024rad, 100.0%, 50.0%)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl(2.0943951024rad, 100.0%, 50.0%)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-9.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-9.html index fd2cedd5..8a4e29d4 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-9.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-9.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl(0.3333333333turn, 100.0%, 50.0%)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl(0.3333333333turn, 100.0%, 50.0%)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-1.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-1.html index 7fa79bf..632b7f5 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-1.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgb(0, 255.0, 0)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgb(0, 255.0, 0)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-2.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-2.html index 89ef218..1d3e683 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-2.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgb(0, 255, 0, 0.2)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,51); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgb(0, 255, 0, 0.2)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,51); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-3.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-3.html index 6be6f06..8a6f3523 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-3.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-3.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgb(0, 255, 0, 20%)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,51); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgb(0, 255, 0, 20%)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,51); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-4.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-4.html index 23c69bd..1fdf9ecf 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-4.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-4.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgb(0 255 0)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgb(0 255 0)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-5.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-5.html index b853fbf35..a1d99d5 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-5.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-5.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgb(0 255 0 / 0.2)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,51); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgb(0 255 0 / 0.2)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,51); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-6.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-6.html index 8a62fa2..ad2c5f5 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-6.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-6.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgb(0 255 0 / 20%)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,51); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgb(0 255 0 / 20%)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,51); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-1.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-1.html index 66834dd..f394dbf 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-1.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgba(0, 255.0, 0)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgba(0, 255.0, 0)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-2.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-2.html index 4a4cb78c..5529bc1 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-2.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgba(0, 255, 0, 0.2)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,51); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgba(0, 255, 0, 0.2)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,51); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-3.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-3.html index 51e9468..82047a56 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-3.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-3.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgba(0, 255, 0, 20%)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,51); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgba(0, 255, 0, 20%)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,51); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-4.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-4.html index 07a65ac..5fea546 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-4.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-4.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgba(0 255 0)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgba(0 255 0)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-5.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-5.html index 2f798f47..d048566 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-5.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-5.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgba(0 255 0 / 0.2)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,51); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgba(0 255 0 / 0.2)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,51); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-6.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-6.html index 5ca7564..28feb2e 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-6.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-6.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgba(0 255 0 / 20%)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,51); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgba(0 255 0 / 20%)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,51); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.current.basic.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.current.basic.html index e48d05c..a1481e36 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.current.basic.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.current.basic.html
@@ -19,12 +19,11 @@ var t = async_test("currentColor is computed from the canvas element"); _addTest(function(canvas, ctx) { -canvas.setAttribute('style', 'color: #0f0'); -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'currentColor'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + canvas.setAttribute('style', 'color: #0f0'); + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'currentColor'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.current.changed.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.current.changed.html index f298af5..2f4d0fe 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.current.changed.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.current.changed.html
@@ -19,13 +19,12 @@ var t = async_test("currentColor is computed when the attribute is set, not when it is painted"); _addTest(function(canvas, ctx) { -canvas.setAttribute('style', 'color: #0f0'); -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'currentColor'; -canvas.setAttribute('style', 'color: #f00'); -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + canvas.setAttribute('style', 'color: #0f0'); + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'currentColor'; + canvas.setAttribute('style', 'color: #f00'); + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.current.removed.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.current.removed.html index 2642b888..96b070c 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.current.removed.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.current.removed.html
@@ -19,24 +19,23 @@ var t = async_test("currentColor is solid black when the canvas element is not in a document"); _addTest(function(canvas, ctx) { -// Try not to let it undetectably incorrectly pick up opaque-black -// from other parts of the document: -document.body.parentNode.setAttribute('style', 'color: #f00'); -document.body.setAttribute('style', 'color: #f00'); -canvas.setAttribute('style', 'color: #f00'); + // Try not to let it undetectably incorrectly pick up opaque-black + // from other parts of the document: + document.body.parentNode.setAttribute('style', 'color: #f00'); + document.body.setAttribute('style', 'color: #f00'); + canvas.setAttribute('style', 'color: #f00'); -var canvas2 = document.createElement('canvas'); -var ctx2 = canvas2.getContext('2d'); -ctx2.fillStyle = '#f00'; -ctx2.fillStyle = 'currentColor'; -ctx2.fillRect(0, 0, 100, 50); -ctx.drawImage(canvas2, 0, 0); + var canvas2 = document.createElement('canvas'); + var ctx2 = canvas2.getContext('2d'); + ctx2.fillStyle = '#f00'; + ctx2.fillStyle = 'currentColor'; + ctx2.fillRect(0, 0, 100, 50); + ctx.drawImage(canvas2, 0, 0); -document.body.parentNode.removeAttribute('style'); -document.body.removeAttribute('style'); + document.body.parentNode.removeAttribute('style'); + document.body.removeAttribute('style'); -_assertPixel(canvas, 50,25, 0,0,0,255); - + _assertPixel(canvas, 50,25, 0,0,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hex3.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hex3.html index 9fbb275..017bfc8 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hex3.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hex3.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#f00'; -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hex4.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hex4.html index fc79cc7..c8704edb 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hex4.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hex4.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#f00'; -ctx.fillStyle = '#0f0f'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = '#0f0f'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hex6.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hex6.html index b946c30..9644a46 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hex6.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hex6.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#f00'; -ctx.fillStyle = '#00fF00'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = '#00fF00'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hex8.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hex8.html index 5865e98..b2dd069 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hex8.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hex8.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#f00'; -ctx.fillStyle = '#00ff00ff'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = '#00ff00ff'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsl-1.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsl-1.html index e169904..ceb3da5 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsl-1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsl-1.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl(120, 100%, 50%)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl(120, 100%, 50%)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsl-2.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsl-2.html index ec61f58..22e67e3 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsl-2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsl-2.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl( -240 , 100% , 50% )'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl( -240 , 100% , 50% )'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsl-3.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsl-3.html index 0ec6fce..e182952 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsl-3.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsl-3.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl(360120, 100%, 50%)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl(360120, 100%, 50%)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsl-4.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsl-4.html index b3119da..b320c1c 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsl-4.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsl-4.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl(-360240, 100%, 50%)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl(-360240, 100%, 50%)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsl-5.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsl-5.html index 1867bba..1264f626 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsl-5.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsl-5.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl(120.0, 100.0%, 50.0%)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl(120.0, 100.0%, 50.0%)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsl-6.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsl-6.html index 7a5e764..e0fc787 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsl-6.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsl-6.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl(+120, +100%, +50%)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl(+120, +100%, +50%)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsl-clamp-1.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsl-clamp-1.html index f623320..59d66c3 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsl-clamp-1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsl-clamp-1.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl(120, 200%, 50%)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl(120, 200%, 50%)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsl-clamp-2.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsl-clamp-2.html index 0293acd..1a1939e 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsl-clamp-2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsl-clamp-2.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl(120, -200%, 49.9%)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 127,127,127,255); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl(120, -200%, 49.9%)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 127,127,127,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsl-clamp-3.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsl-clamp-3.html index 2ea1a51..56f3a0a8b 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsl-clamp-3.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsl-clamp-3.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl(120, 100%, 200%)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 255,255,255,255); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl(120, 100%, 200%)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 255,255,255,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsl-clamp-4.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsl-clamp-4.html index add688e..af9d11e 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsl-clamp-4.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsl-clamp-4.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl(120, 100%, -200%)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,0,0,255); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl(120, 100%, -200%)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,0,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsla-1.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsla-1.html index 38427cf..dbc738f 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsla-1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsla-1.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsla(120, 100%, 50%, 0.499)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,127); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsla(120, 100%, 50%, 0.499)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,127); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsla-2.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsla-2.html index 01a83676..aa21789 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsla-2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsla-2.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsla( 120.0 , 100.0% , 50.0% , 1 )'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsla( 120.0 , 100.0% , 50.0% , 1 )'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-1.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-1.html index b7914e3..2acac26e 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-1.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsla(120, 200%, 50%, 1)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsla(120, 200%, 50%, 1)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-2.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-2.html index 94b6237..0f32fb54 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-2.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsla(120, -200%, 49.9%, 1)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 127,127,127,255); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsla(120, -200%, 49.9%, 1)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 127,127,127,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-3.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-3.html index bc2466b..4bc134a 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-3.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-3.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsla(120, 100%, 200%, 1)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 255,255,255,255); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsla(120, 100%, 200%, 1)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 255,255,255,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-4.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-4.html index 35c0d00..f8b2382 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-4.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-4.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsla(120, 100%, -200%, 1)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,0,0,255); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsla(120, 100%, -200%, 1)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,0,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-5.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-5.html index 13fac2f..9c5e225 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-5.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-5.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsla(120, 100%, 50%, 2)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsla(120, 100%, 50%, 2)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-6.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-6.html index ba76ad6a..153515e 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-6.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-6.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsla(120, 100%, 0%, -2)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,0,0,0); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsla(120, 100%, 0%, -2)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,0,0,0); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.html4.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.html4.html index ae54397..65d0d20 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.html4.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.html4.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'limE'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'limE'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-1.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-1.html index 1850125..4046f82 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-1.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'hsl(0, 100%, 50% / 1)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'hsl(0, 100%, 50% / 1)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-2.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-2.html index b4fd4a6..2075f8e 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-2.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'hsl(0 100% 50%, 1)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'hsl(0 100% 50%, 1)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-3.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-3.html index 224da3a..53bbf6c 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-3.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-3.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'hsl(0, 100% 50%)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'hsl(0, 100% 50%)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-4.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-4.html index 0e4b77b..e8be93b 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-4.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-4.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'hsl(0 100% 50% /)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'hsl(0 100% 50% /)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-5.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-5.html index 08e03db1..b8938ad 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-5.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-5.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'hsl(0, 100%, 50% /)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'hsl(0, 100%, 50% /)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsla-1.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsla-1.html index 62f8295..7104ca6 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsla-1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsla-1.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'hsla(0, 100%, 50% / 1)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'hsla(0, 100%, 50% / 1)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsla-2.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsla-2.html index d6b78e9..c340e74 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsla-2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsla-2.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'hsla(0 100% 50%, 1)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'hsla(0 100% 50%, 1)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsla-3.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsla-3.html index c571740..3f94ec1 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsla-3.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsla-3.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'hsla(0, 100% 50%)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'hsla(0, 100% 50%)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-1.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-1.html index 01ff94e8b..6950359 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-1.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'rgb(255, 0, 0 / 1)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'rgb(255, 0, 0 / 1)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-2.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-2.html index 2b782e35..96af643e 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-2.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'rgb(255 0 0, 1)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'rgb(255 0 0, 1)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-3.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-3.html index 54849f6..a2691ac 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-3.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-3.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'rgb(255, 0 0)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'rgb(255, 0 0)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-4.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-4.html index 97d5748..eb5f566 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-4.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-4.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'rgb(0 0 0 /)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'rgb(0 0 0 /)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-5.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-5.html index 666c3c3..7de9dd4 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-5.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-5.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'rgb(0, 0, 0 /)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'rgb(0, 0, 0 /)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgba-1.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgba-1.html index fefe336..20b889c 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgba-1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgba-1.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'rgba(255, 0, 0 / 1)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'rgba(255, 0, 0 / 1)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgba-2.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgba-2.html index bf12006..908545c 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgba-2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgba-2.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'rgba(255 0 0, 1)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'rgba(255 0 0, 1)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgba-3.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgba-3.html index a4e4e90..851314f 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgba-3.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgba-3.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'rgba(255, 0 0)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'rgba(255, 0 0)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex1.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex1.html index 04c67e3..9aba392 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex1.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = '#f'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = '#f'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex2.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex2.html index 7027db50..361db1de 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex2.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = '#f0'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = '#f0'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex3.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex3.html index ae7a32a5..7df089d 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex3.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex3.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = '#g00'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = '#g00'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex4.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex4.html index d355309..6089675b 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex4.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex4.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = '#fg00'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = '#fg00'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex5.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex5.html index 0b80566b..488daf4 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex5.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex5.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = '#ff000'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = '#ff000'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex6.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex6.html index 02b75c3..ec0def2 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex6.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex6.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = '#fg0000'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = '#fg0000'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex7.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex7.html index 6a73bc1..2b07b8d 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex7.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex7.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = '#ff0000f'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = '#ff0000f'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex8.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex8.html index 3a03959e..f886d4a6 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex8.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex8.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = '#fg0000ff'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = '#fg0000ff'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-1.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-1.html index 38a01fc..153f9cb5 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-1.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'hsl(0%, 100%, 50%)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'hsl(0%, 100%, 50%)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-2.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-2.html index 6783a18..7a2bd4f9 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-2.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'hsl(z, 100%, 50%)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'hsl(z, 100%, 50%)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-3.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-3.html index 8f9137e4..8ad0f54 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-3.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-3.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'hsl(0, 0, 50%)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'hsl(0, 0, 50%)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-4.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-4.html index 56c7228..780b83b 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-4.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-4.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'hsl(0, 100%, 0)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'hsl(0, 100%, 0)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-5.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-5.html index df84f68..ad5944f 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-5.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-5.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'hsl(0, 100.%, 50%)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'hsl(0, 100.%, 50%)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-6.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-6.html index 2a7d0753..948a9d8 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-6.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-6.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'hsl(0, 100%, 50%,)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'hsl(0, 100%, 50%,)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsla-1.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsla-1.html index 5d22135c..7a4bdb3 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsla-1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsla-1.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'hsla(0%, 100%, 50%, 1)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'hsla(0%, 100%, 50%, 1)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsla-2.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsla-2.html index f1a29cd..4164de3 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsla-2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsla-2.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'hsla(0, 0, 50%, 1)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'hsla(0, 0, 50%, 1)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsla-3.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsla-3.html index e48d086e..109a22cd 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsla-3.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsla-3.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'hsla(0, 0, 50%, 1,)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'hsla(0, 0, 50%, 1,)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-1.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-1.html index 80433bc..acdd4d4c 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-1.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'darkbrown'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'darkbrown'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-2.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-2.html index e1a49f9..292f909 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-2.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'firebrick1'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'firebrick1'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-3.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-3.html index c8a7f2e..f47ec43 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-3.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-3.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'red blue'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'red blue'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-4.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-4.html index b9c491f..d15d787f 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-4.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-4.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = '"red"'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = '"red"'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-5.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-5.html index 15dab0b..ce391d0 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-5.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-5.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = '"red'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = '"red'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-1.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-1.html index 7ab4a42..934f725 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-1.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'rgb(255.0, 0, 0,)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'rgb(255.0, 0, 0,)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-2.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-2.html index 1aa36bb..f92a06b4 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-2.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'rgb(100%, 0, 0)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'rgb(100%, 0, 0)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-3.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-3.html index 7ce48c1..8ebde17 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-3.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-3.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'rgb(255, - 1, 0)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'rgb(255, - 1, 0)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-1.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-1.html index d3bd36dc..6e3d135 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-1.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'rgba(100%, 0, 0, 1)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'rgba(100%, 0, 0, 1)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-2.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-2.html index 0f468b6..a6a6100 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-2.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'rgba(255, 0, 0, 1. 0)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'rgba(255, 0, 0, 1. 0)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-3.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-3.html index 20da461a..464d562 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-3.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-3.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'rgba(255, 0, 0, 1.)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'rgba(255, 0, 0, 1.)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-4.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-4.html index 6dc36ea..815ce2f 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-4.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-4.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'rgba(255, 0, 0, '; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'rgba(255, 0, 0, '; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-5.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-5.html index 86afaa70..33c3e33 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-5.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-5.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'rgba(255, 0, 0, 1,)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'rgba(255, 0, 0, 1,)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-1.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-1.html index dfaac146..0432a3b 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-1.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgb(-1000, 1000, -1000)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgb(-1000, 1000, -1000)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-2.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-2.html index 5247f467..cf81e3c7 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-2.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgb(-200%, 200%, -200%)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgb(-200%, 200%, -200%)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-3.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-3.html index 8db471c3..b3c609f 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-3.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-3.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgb(-2147483649, 4294967298, -18446744073709551619)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgb(-2147483649, 4294967298, -18446744073709551619)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-4.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-4.html index e7a210f4..60aa8563 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-4.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-4.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgb(-1000000000000000000000000000000000000000, 1000000000000000000000000000000000000000, -1000000000000000000000000000000000000000)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgb(-1000000000000000000000000000000000000000, 1000000000000000000000000000000000000000, -1000000000000000000000000000000000000000)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-5.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-5.html index 1f1e9ef7..242ca393 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-5.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-5.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgb(-10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, -10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgb(-10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, -10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgb-eof.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgb-eof.html index b69c779..201874c 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgb-eof.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgb-eof.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgb(0, 255, 0'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgb(0, 255, 0'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgb-num.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgb-num.html index 7d9d5ed..0ce1db8 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgb-num.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgb-num.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgb(0,255,0)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgb(0,255,0)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgb-percent.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgb-percent.html index ea5529c..9b3de61 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgb-percent.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgb-percent.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgb(0% ,100% ,0%)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgb(0% ,100% ,0%)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgba-clamp-1.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgba-clamp-1.html index c5816e06..587253a 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgba-clamp-1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgba-clamp-1.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgba(0, 255, 0, -2)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,0,0,0); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgba(0, 255, 0, -2)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,0,0,0); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgba-clamp-2.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgba-clamp-2.html index 69a55cf..4e8156e 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgba-clamp-2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgba-clamp-2.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgba(0, 255, 0, 2)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgba(0, 255, 0, 2)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgba-eof.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgba-eof.html index 12c296dc..5f07d38b 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgba-eof.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgba-eof.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgba(0, 255, 0, 1'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgba(0, 255, 0, 1'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgba-num-1.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgba-num-1.html index 4196888..0c329c96e 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgba-num-1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgba-num-1.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgba( 0 , 255 , 0 , .499 )'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,127); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgba( 0 , 255 , 0 , .499 )'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,127); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgba-num-2.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgba-num-2.html index f7fb618..384a7f412 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgba-num-2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgba-num-2.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgba( 0 , 255 , 0 , 0.499 )'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,127); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgba( 0 , 255 , 0 , 0.499 )'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,127); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgba-percent.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgba-percent.html index 3f1a7305..60ee007 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgba-percent.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgba-percent.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgba(0%,100%,0%,0.499)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,127); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgba(0%,100%,0%,0.499)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,127); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgba-solid-1.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgba-solid-1.html index efa7eb8..eaec0de 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgba-solid-1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgba-solid-1.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgba( 0 , 255 , 0 , 1 )'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgba( 0 , 255 , 0 , 1 )'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgba-solid-2.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgba-solid-2.html index eaf917e..947bbbc 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgba-solid-2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgba-solid-2.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgba( 0 , 255 , 0 , 1.0 )'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgba( 0 , 255 , 0 , 1.0 )'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgba-solid-3.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgba-solid-3.html index c525f824..052a12b 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgba-solid-3.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgba-solid-3.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgba( 0 , 255 , 0 , +1 )'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgba( 0 , 255 , 0 , +1 )'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgba-solid-4.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgba-solid-4.html index b7f9674..ee9cd4e 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgba-solid-4.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgba-solid-4.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgba( -0 , 255 , +0 , 1 )'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgba( -0 , 255 , +0 , 1 )'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.svg-1.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.svg-1.html index 9a9a280..0ff839b 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.svg-1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.svg-1.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'gray'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 128,128,128,255); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'gray'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 128,128,128,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.svg-2.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.svg-2.html index 26c2abec..141f4bf 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.svg-2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.svg-2.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'grey'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 128,128,128,255); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'grey'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 128,128,128,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.system.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.system.html index d6c61951..3a563899 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.system.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.system.html
@@ -19,11 +19,9 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'ThreeDDarkShadow'; -assert_regexp_match(ctx.fillStyle, /^#(?!(FF0000|ff0000|f00)$)/); // test that it's not red - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'ThreeDDarkShadow'; + assert_regexp_match(ctx.fillStyle, /^#(?!(FF0000|ff0000|f00)$)/); // test that it's not red }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.transparent-1.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.transparent-1.html index 9ab01f0..5b9a834 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.transparent-1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.transparent-1.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'transparent'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,0,0,0); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'transparent'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,0,0,0); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.transparent-2.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.transparent-2.html index d7730a5..a077534c 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.transparent-2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.transparent-2.html
@@ -19,12 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'TrAnSpArEnT'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,0,0,0); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'TrAnSpArEnT'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,0,0,0); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.toStringFunctionCallback.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.toStringFunctionCallback.html index d420bbfc..2a12b05 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.toStringFunctionCallback.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.toStringFunctionCallback.html
@@ -19,21 +19,20 @@ var t = async_test("Passing a function in to ctx.fillStyle or ctx.strokeStyle with a toString callback works as specified"); _addTest(function(canvas, ctx) { -ctx.fillStyle = { toString: function() { return "#008000"; } }; -_assertSame(ctx.fillStyle, "#008000", "ctx.fillStyle", "\"#008000\""); -ctx.fillStyle = {}; -_assertSame(ctx.fillStyle, "#008000", "ctx.fillStyle", "\"#008000\""); -ctx.fillStyle = 800000; -_assertSame(ctx.fillStyle, "#008000", "ctx.fillStyle", "\"#008000\""); -assert_throws_js(TypeError, function() { ctx.fillStyle = { toString: function() { throw new TypeError; } }; }); -ctx.strokeStyle = { toString: function() { return "#008000"; } }; -_assertSame(ctx.strokeStyle, "#008000", "ctx.strokeStyle", "\"#008000\""); -ctx.strokeStyle = {}; -_assertSame(ctx.strokeStyle, "#008000", "ctx.strokeStyle", "\"#008000\""); -ctx.strokeStyle = 800000; -_assertSame(ctx.strokeStyle, "#008000", "ctx.strokeStyle", "\"#008000\""); -assert_throws_js(TypeError, function() { ctx.strokeStyle = { toString: function() { throw new TypeError; } }; }); - + ctx.fillStyle = { toString: function() { return "#008000"; } }; + _assertSame(ctx.fillStyle, "#008000", "ctx.fillStyle", "\"#008000\""); + ctx.fillStyle = {}; + _assertSame(ctx.fillStyle, "#008000", "ctx.fillStyle", "\"#008000\""); + ctx.fillStyle = 800000; + _assertSame(ctx.fillStyle, "#008000", "ctx.fillStyle", "\"#008000\""); + assert_throws_js(TypeError, function() { ctx.fillStyle = { toString: function() { throw new TypeError; } }; }); + ctx.strokeStyle = { toString: function() { return "#008000"; } }; + _assertSame(ctx.strokeStyle, "#008000", "ctx.strokeStyle", "\"#008000\""); + ctx.strokeStyle = {}; + _assertSame(ctx.strokeStyle, "#008000", "ctx.strokeStyle", "\"#008000\""); + ctx.strokeStyle = 800000; + _assertSame(ctx.strokeStyle, "#008000", "ctx.strokeStyle", "\"#008000\""); + assert_throws_js(TypeError, function() { ctx.strokeStyle = { toString: function() { throw new TypeError; } }; }); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.conic.invalid.inputs.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.conic.invalid.inputs.html index ab10f44b..1a4cde4 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.conic.invalid.inputs.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.conic.invalid.inputs.html
@@ -19,26 +19,25 @@ var t = async_test("Conic gradient function with invalid inputs"); _addTest(function(canvas, ctx) { -assert_throws_js(TypeError, function() { ctx.createConicGradient(Infinity, 0, 1); }); -assert_throws_js(TypeError, function() { ctx.createConicGradient(-Infinity, 0, 1); }); -assert_throws_js(TypeError, function() { ctx.createConicGradient(NaN, 0, 1); }); -assert_throws_js(TypeError, function() { ctx.createConicGradient(0, Infinity, 1); }); -assert_throws_js(TypeError, function() { ctx.createConicGradient(0, -Infinity, 1); }); -assert_throws_js(TypeError, function() { ctx.createConicGradient(0, NaN, 1); }); -assert_throws_js(TypeError, function() { ctx.createConicGradient(0, 0, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createConicGradient(0, 0, -Infinity); }); -assert_throws_js(TypeError, function() { ctx.createConicGradient(0, 0, NaN); }); -assert_throws_js(TypeError, function() { ctx.createConicGradient(Infinity, Infinity, 1); }); -assert_throws_js(TypeError, function() { ctx.createConicGradient(Infinity, Infinity, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createConicGradient(Infinity, 0, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createConicGradient(0, Infinity, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createConicGradient(Infinity, 0, 1); }); + assert_throws_js(TypeError, function() { ctx.createConicGradient(-Infinity, 0, 1); }); + assert_throws_js(TypeError, function() { ctx.createConicGradient(NaN, 0, 1); }); + assert_throws_js(TypeError, function() { ctx.createConicGradient(0, Infinity, 1); }); + assert_throws_js(TypeError, function() { ctx.createConicGradient(0, -Infinity, 1); }); + assert_throws_js(TypeError, function() { ctx.createConicGradient(0, NaN, 1); }); + assert_throws_js(TypeError, function() { ctx.createConicGradient(0, 0, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createConicGradient(0, 0, -Infinity); }); + assert_throws_js(TypeError, function() { ctx.createConicGradient(0, 0, NaN); }); + assert_throws_js(TypeError, function() { ctx.createConicGradient(Infinity, Infinity, 1); }); + assert_throws_js(TypeError, function() { ctx.createConicGradient(Infinity, Infinity, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createConicGradient(Infinity, 0, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createConicGradient(0, Infinity, Infinity); }); -const g = ctx.createConicGradient(0, 0, 25); -assert_throws_js(TypeError, function() { g.addColorStop(-Infinity, '#f00'); }); -assert_throws_js(TypeError, function() { g.addColorStop(NaN, '#f00'); }); -assert_throws_dom("SYNTAX_ERR", function() { g.addColorStop(0, -Infinity); }); -assert_throws_dom("SYNTAX_ERR", function() { g.addColorStop(0, NaN); }); - + const g = ctx.createConicGradient(0, 0, 25); + assert_throws_js(TypeError, function() { g.addColorStop(-Infinity, '#f00'); }); + assert_throws_js(TypeError, function() { g.addColorStop(NaN, '#f00'); }); + assert_throws_dom("SYNTAX_ERR", function() { g.addColorStop(0, -Infinity); }); + assert_throws_dom("SYNTAX_ERR", function() { g.addColorStop(0, NaN); }); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.conic.negative.rotation.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.conic.negative.rotation.html index f61b614..ba85463 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.conic.negative.rotation.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.conic.negative.rotation.html
@@ -19,17 +19,16 @@ var t = async_test("Conic gradient with negative rotation"); _addTest(function(canvas, ctx) { -const g = ctx.createConicGradient(-Math.PI/2, 50, 25); -// It's red in the upper right region and green on the lower left region -g.addColorStop(0, "#f00"); -g.addColorStop(0.25, "#0f0"); -g.addColorStop(0.50, "#0f0"); -g.addColorStop(0.75, "#f00"); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 25,15, 255,0,0,255, 3); -_assertPixelApprox(canvas, 75,40, 0,255,0,255, 3); - + const g = ctx.createConicGradient(-Math.PI/2, 50, 25); + // It's red in the upper right region and green on the lower left region + g.addColorStop(0, "#f00"); + g.addColorStop(0.25, "#0f0"); + g.addColorStop(0.50, "#0f0"); + g.addColorStop(0.75, "#f00"); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 25,15, 255,0,0,255, 3); + _assertPixelApprox(canvas, 75,40, 0,255,0,255, 3); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.conic.positive.rotation.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.conic.positive.rotation.html index ffe95866..f8cebbb0 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.conic.positive.rotation.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.conic.positive.rotation.html
@@ -19,17 +19,16 @@ var t = async_test("Conic gradient with positive rotation"); _addTest(function(canvas, ctx) { -const g = ctx.createConicGradient(3*Math.PI/2, 50, 25); -// It's red in the upper right region and green on the lower left region -g.addColorStop(0, "#f00"); -g.addColorStop(0.25, "#0f0"); -g.addColorStop(0.50, "#0f0"); -g.addColorStop(0.75, "#f00"); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 25,15, 255,0,0,255, 3); -_assertPixelApprox(canvas, 75,40, 0,255,0,255, 3); - + const g = ctx.createConicGradient(3*Math.PI/2, 50, 25); + // It's red in the upper right region and green on the lower left region + g.addColorStop(0, "#f00"); + g.addColorStop(0.25, "#0f0"); + g.addColorStop(0.50, "#0f0"); + g.addColorStop(0.75, "#f00"); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 25,15, 255,0,0,255, 3); + _assertPixelApprox(canvas, 75,40, 0,255,0,255, 3); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.empty.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.empty.html index bdf702f..dcc7575 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.empty.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.empty.html
@@ -19,13 +19,12 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -var g = ctx.createLinearGradient(0, 0, 0, 50); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,255,0,255, 2); - + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + var g = ctx.createLinearGradient(0, 0, 0, 50); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,255,0,255, 2); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.interpolate.alpha.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.interpolate.alpha.html index e0ed47e..13f48f3 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.interpolate.alpha.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.interpolate.alpha.html
@@ -19,17 +19,16 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#ff0'; -ctx.fillRect(0, 0, 100, 50); -var g = ctx.createLinearGradient(0, 0, 100, 0); -g.addColorStop(0, 'rgba(0,0,255, 0)'); -g.addColorStop(1, 'rgba(0,0,255, 1)'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 25,25, 191,191,63,255, 3); -_assertPixelApprox(canvas, 50,25, 127,127,127,255, 3); -_assertPixelApprox(canvas, 75,25, 63,63,191,255, 3); - + ctx.fillStyle = '#ff0'; + ctx.fillRect(0, 0, 100, 50); + var g = ctx.createLinearGradient(0, 0, 100, 0); + g.addColorStop(0, 'rgba(0,0,255, 0)'); + g.addColorStop(1, 'rgba(0,0,255, 1)'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 25,25, 191,191,63,255, 3); + _assertPixelApprox(canvas, 50,25, 127,127,127,255, 3); + _assertPixelApprox(canvas, 75,25, 63,63,191,255, 3); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.interpolate.color.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.interpolate.color.html index e6806d7d..3f7e27a 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.interpolate.color.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.interpolate.color.html
@@ -19,15 +19,14 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -var g = ctx.createLinearGradient(0, 0, 100, 0); -g.addColorStop(0, '#ff0'); -g.addColorStop(1, '#00f'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 25,25, 191,191,63,255, 3); -_assertPixelApprox(canvas, 50,25, 127,127,127,255, 3); -_assertPixelApprox(canvas, 75,25, 63,63,191,255, 3); - + var g = ctx.createLinearGradient(0, 0, 100, 0); + g.addColorStop(0, '#ff0'); + g.addColorStop(1, '#00f'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 25,25, 191,191,63,255, 3); + _assertPixelApprox(canvas, 50,25, 127,127,127,255, 3); + _assertPixelApprox(canvas, 75,25, 63,63,191,255, 3); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.interpolate.coloralpha.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.interpolate.coloralpha.html index 33fee527..0d635ed6 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.interpolate.coloralpha.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.interpolate.coloralpha.html
@@ -19,15 +19,14 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -var g = ctx.createLinearGradient(0, 0, 100, 0); -g.addColorStop(0, 'rgba(255,255,0, 0)'); -g.addColorStop(1, 'rgba(0,0,255, 1)'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 25,25, 190,190,65,65, 3); -_assertPixelApprox(canvas, 50,25, 126,126,128,128, 3); -_assertPixelApprox(canvas, 75,25, 62,62,192,192, 3); - + var g = ctx.createLinearGradient(0, 0, 100, 0); + g.addColorStop(0, 'rgba(255,255,0, 0)'); + g.addColorStop(1, 'rgba(0,0,255, 1)'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 25,25, 190,190,65,65, 3); + _assertPixelApprox(canvas, 50,25, 126,126,128,128, 3); + _assertPixelApprox(canvas, 75,25, 62,62,192,192, 3); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.interpolate.multiple.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.interpolate.multiple.html index adfac66d..9e62f343 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.interpolate.multiple.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.interpolate.multiple.html
@@ -19,17 +19,16 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -canvas.width = 200; -var g = ctx.createLinearGradient(0, 0, 200, 0); -g.addColorStop(0, '#ff0'); -g.addColorStop(0.5, '#0ff'); -g.addColorStop(1, '#f0f'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 200, 50); -_assertPixelApprox(canvas, 50,25, 127,255,127,255, 3); -_assertPixelApprox(canvas, 100,25, 0,255,255,255, 3); -_assertPixelApprox(canvas, 150,25, 127,127,255,255, 3); - + canvas.width = 200; + var g = ctx.createLinearGradient(0, 0, 200, 0); + g.addColorStop(0, '#ff0'); + g.addColorStop(0.5, '#0ff'); + g.addColorStop(1, '#f0f'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 200, 50); + _assertPixelApprox(canvas, 50,25, 127,255,127,255, 3); + _assertPixelApprox(canvas, 100,25, 0,255,255,255, 3); + _assertPixelApprox(canvas, 150,25, 127,127,255,255, 3); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.interpolate.outside.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.interpolate.outside.html index abad0b5c..b46a7bed 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.interpolate.outside.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.interpolate.outside.html
@@ -19,19 +19,18 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); -var g = ctx.createLinearGradient(25, 0, 75, 0); -g.addColorStop(0.4, '#0f0'); -g.addColorStop(0.6, '#0f0'); + var g = ctx.createLinearGradient(25, 0, 75, 0); + g.addColorStop(0.4, '#0f0'); + g.addColorStop(0.6, '#0f0'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 20,25, 0,255,0,255, 2); -_assertPixelApprox(canvas, 50,25, 0,255,0,255, 2); -_assertPixelApprox(canvas, 80,25, 0,255,0,255, 2); - + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 20,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 50,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 80,25, 0,255,0,255, 2); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.interpolate.overlap.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.interpolate.overlap.html index ecd61728..099a3ea 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.interpolate.overlap.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.interpolate.overlap.html
@@ -19,33 +19,32 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -canvas.width = 200; -var g = ctx.createLinearGradient(0, 0, 200, 0); -g.addColorStop(0, '#f00'); -g.addColorStop(0, '#ff0'); -g.addColorStop(0.25, '#00f'); -g.addColorStop(0.25, '#0f0'); -g.addColorStop(0.25, '#0f0'); -g.addColorStop(0.25, '#0f0'); -g.addColorStop(0.25, '#ff0'); -g.addColorStop(0.5, '#00f'); -g.addColorStop(0.5, '#0f0'); -g.addColorStop(0.75, '#00f'); -g.addColorStop(0.75, '#f00'); -g.addColorStop(0.75, '#ff0'); -g.addColorStop(0.5, '#0f0'); -g.addColorStop(0.5, '#0f0'); -g.addColorStop(0.5, '#ff0'); -g.addColorStop(1, '#00f'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 200, 50); -_assertPixelApprox(canvas, 49,25, 0,0,255,255, 16); -_assertPixelApprox(canvas, 51,25, 255,255,0,255, 16); -_assertPixelApprox(canvas, 99,25, 0,0,255,255, 16); -_assertPixelApprox(canvas, 101,25, 255,255,0,255, 16); -_assertPixelApprox(canvas, 149,25, 0,0,255,255, 16); -_assertPixelApprox(canvas, 151,25, 255,255,0,255, 16); - + canvas.width = 200; + var g = ctx.createLinearGradient(0, 0, 200, 0); + g.addColorStop(0, '#f00'); + g.addColorStop(0, '#ff0'); + g.addColorStop(0.25, '#00f'); + g.addColorStop(0.25, '#0f0'); + g.addColorStop(0.25, '#0f0'); + g.addColorStop(0.25, '#0f0'); + g.addColorStop(0.25, '#ff0'); + g.addColorStop(0.5, '#00f'); + g.addColorStop(0.5, '#0f0'); + g.addColorStop(0.75, '#00f'); + g.addColorStop(0.75, '#f00'); + g.addColorStop(0.75, '#ff0'); + g.addColorStop(0.5, '#0f0'); + g.addColorStop(0.5, '#0f0'); + g.addColorStop(0.5, '#ff0'); + g.addColorStop(1, '#00f'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 200, 50); + _assertPixelApprox(canvas, 49,25, 0,0,255,255, 16); + _assertPixelApprox(canvas, 51,25, 255,255,0,255, 16); + _assertPixelApprox(canvas, 99,25, 0,0,255,255, 16); + _assertPixelApprox(canvas, 101,25, 255,255,0,255, 16); + _assertPixelApprox(canvas, 149,25, 0,0,255,255, 16); + _assertPixelApprox(canvas, 151,25, 255,255,0,255, 16); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.interpolate.overlap2.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.interpolate.overlap2.html index 3b54469..a4a2955 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.interpolate.overlap2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.interpolate.overlap2.html
@@ -19,23 +19,22 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -var g = ctx.createLinearGradient(0, 0, 100, 0); -var ps = [ 0, 1/10, 1/4, 1/3, 1/2, 3/4, 1 ]; -for (var p = 0; p < ps.length; ++p) -{ - g.addColorStop(ps[p], '#0f0'); - for (var i = 0; i < 15; ++i) - g.addColorStop(ps[p], '#f00'); - g.addColorStop(ps[p], '#0f0'); -} -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 1,25, 0,255,0,255); -_assertPixel(canvas, 30,25, 0,255,0,255); -_assertPixel(canvas, 40,25, 0,255,0,255); -_assertPixel(canvas, 60,25, 0,255,0,255); -_assertPixel(canvas, 80,25, 0,255,0,255); - + var g = ctx.createLinearGradient(0, 0, 100, 0); + var ps = [ 0, 1/10, 1/4, 1/3, 1/2, 3/4, 1 ]; + for (var p = 0; p < ps.length; ++p) + { + g.addColorStop(ps[p], '#0f0'); + for (var i = 0; i < 15; ++i) + g.addColorStop(ps[p], '#f00'); + g.addColorStop(ps[p], '#0f0'); + } + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 1,25, 0,255,0,255); + _assertPixel(canvas, 30,25, 0,255,0,255); + _assertPixel(canvas, 40,25, 0,255,0,255); + _assertPixel(canvas, 60,25, 0,255,0,255); + _assertPixel(canvas, 80,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.interpolate.solid.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.interpolate.solid.html index f6fa974..9ac3162 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.interpolate.solid.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.interpolate.solid.html
@@ -19,13 +19,12 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -var g = ctx.createLinearGradient(0, 0, 100, 0); -g.addColorStop(0, '#0f0'); -g.addColorStop(1, '#0f0'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + var g = ctx.createLinearGradient(0, 0, 100, 0); + g.addColorStop(0, '#0f0'); + g.addColorStop(1, '#0f0'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.interpolate.vertical.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.interpolate.vertical.html index 5297996..8030276 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.interpolate.vertical.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.interpolate.vertical.html
@@ -19,15 +19,14 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -var g = ctx.createLinearGradient(0, 0, 0, 50); -g.addColorStop(0, '#ff0'); -g.addColorStop(1, '#00f'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,12, 191,191,63,255, 10); -_assertPixelApprox(canvas, 50,25, 127,127,127,255, 5); -_assertPixelApprox(canvas, 50,37, 63,63,191,255, 10); - + var g = ctx.createLinearGradient(0, 0, 0, 50); + g.addColorStop(0, '#ff0'); + g.addColorStop(1, '#00f'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,12, 191,191,63,255, 10); + _assertPixelApprox(canvas, 50,25, 127,127,127,255, 5); + _assertPixelApprox(canvas, 50,37, 63,63,191,255, 10); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.fill.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.fill.html index 8c6b944..7a8892d 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.fill.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.fill.html
@@ -19,17 +19,16 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); -var g = ctx.createLinearGradient(50, 25, 50, 25); // zero-length line (undefined direction) -g.addColorStop(0, '#f00'); -g.addColorStop(1, '#f00'); -ctx.fillStyle = g; -ctx.rect(0, 0, 100, 50); -ctx.fill(); -_assertPixel(canvas, 40,20, 0,255,0,255); - + var g = ctx.createLinearGradient(50, 25, 50, 25); // zero-length line (undefined direction) + g.addColorStop(0, '#f00'); + g.addColorStop(1, '#f00'); + ctx.fillStyle = g; + ctx.rect(0, 0, 100, 50); + ctx.fill(); + _assertPixel(canvas, 40,20, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.fillRect.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.fillRect.html index 3a7fe18a..7696cef 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.fillRect.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.fillRect.html
@@ -19,16 +19,15 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); -var g = ctx.createLinearGradient(50, 25, 50, 25); // zero-length line (undefined direction) -g.addColorStop(0, '#f00'); -g.addColorStop(1, '#f00'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 40,20, 0,255,0,255); - + var g = ctx.createLinearGradient(50, 25, 50, 25); // zero-length line (undefined direction) + g.addColorStop(0, '#f00'); + g.addColorStop(1, '#f00'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 40,20, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.fillText.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.fillText.html index 619dc84..98ef6c3 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.fillText.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.fillText.html
@@ -19,17 +19,16 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); -var g = ctx.createLinearGradient(50, 25, 50, 25); // zero-length line (undefined direction) -g.addColorStop(0, '#f00'); -g.addColorStop(1, '#f00'); -ctx.fillStyle = g; -ctx.font = '100px sans-serif'; -ctx.fillText("AA", 0, 50); -_assertGreen(ctx, 100, 50); - + var g = ctx.createLinearGradient(50, 25, 50, 25); // zero-length line (undefined direction) + g.addColorStop(0, '#f00'); + g.addColorStop(1, '#f00'); + ctx.fillStyle = g; + ctx.font = '100px sans-serif'; + ctx.fillText("AA", 0, 50); + _assertGreen(ctx, 100, 50); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.stroke.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.stroke.html index e5fb6482..283e387 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.stroke.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.stroke.html
@@ -19,25 +19,24 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); -var g = ctx.createLinearGradient(50, 25, 50, 25); // zero-length line (undefined direction) -g.addColorStop(0, '#f00'); -g.addColorStop(1, '#f00'); -ctx.strokeStyle = g; -ctx.rect(20, 20, 60, 10); -ctx.stroke(); -_assertPixel(canvas, 19,19, 0,255,0,255); -_assertPixel(canvas, 20,19, 0,255,0,255); -_assertPixel(canvas, 21,19, 0,255,0,255); -_assertPixel(canvas, 19,20, 0,255,0,255); -_assertPixel(canvas, 20,20, 0,255,0,255); -_assertPixel(canvas, 21,20, 0,255,0,255); -_assertPixel(canvas, 19,21, 0,255,0,255); -_assertPixel(canvas, 20,21, 0,255,0,255); -_assertPixel(canvas, 21,21, 0,255,0,255); - + var g = ctx.createLinearGradient(50, 25, 50, 25); // zero-length line (undefined direction) + g.addColorStop(0, '#f00'); + g.addColorStop(1, '#f00'); + ctx.strokeStyle = g; + ctx.rect(20, 20, 60, 10); + ctx.stroke(); + _assertPixel(canvas, 19,19, 0,255,0,255); + _assertPixel(canvas, 20,19, 0,255,0,255); + _assertPixel(canvas, 21,19, 0,255,0,255); + _assertPixel(canvas, 19,20, 0,255,0,255); + _assertPixel(canvas, 20,20, 0,255,0,255); + _assertPixel(canvas, 21,20, 0,255,0,255); + _assertPixel(canvas, 19,21, 0,255,0,255); + _assertPixel(canvas, 20,21, 0,255,0,255); + _assertPixel(canvas, 21,21, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.strokeRect.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.strokeRect.html index 54f4923..7d243ec 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.strokeRect.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.strokeRect.html
@@ -19,24 +19,23 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); -var g = ctx.createLinearGradient(50, 25, 50, 25); // zero-length line (undefined direction) -g.addColorStop(0, '#f00'); -g.addColorStop(1, '#f00'); -ctx.strokeStyle = g; -ctx.strokeRect(20, 20, 60, 10); -_assertPixel(canvas, 19,19, 0,255,0,255); -_assertPixel(canvas, 20,19, 0,255,0,255); -_assertPixel(canvas, 21,19, 0,255,0,255); -_assertPixel(canvas, 19,20, 0,255,0,255); -_assertPixel(canvas, 20,20, 0,255,0,255); -_assertPixel(canvas, 21,20, 0,255,0,255); -_assertPixel(canvas, 19,21, 0,255,0,255); -_assertPixel(canvas, 20,21, 0,255,0,255); -_assertPixel(canvas, 21,21, 0,255,0,255); - + var g = ctx.createLinearGradient(50, 25, 50, 25); // zero-length line (undefined direction) + g.addColorStop(0, '#f00'); + g.addColorStop(1, '#f00'); + ctx.strokeStyle = g; + ctx.strokeRect(20, 20, 60, 10); + _assertPixel(canvas, 19,19, 0,255,0,255); + _assertPixel(canvas, 20,19, 0,255,0,255); + _assertPixel(canvas, 21,19, 0,255,0,255); + _assertPixel(canvas, 19,20, 0,255,0,255); + _assertPixel(canvas, 20,20, 0,255,0,255); + _assertPixel(canvas, 21,20, 0,255,0,255); + _assertPixel(canvas, 19,21, 0,255,0,255); + _assertPixel(canvas, 20,21, 0,255,0,255); + _assertPixel(canvas, 21,21, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.strokeText.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.strokeText.html index df8553d67e..bab7c6b6 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.strokeText.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.strokeText.html
@@ -19,17 +19,16 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); -var g = ctx.createLinearGradient(50, 25, 50, 25); // zero-length line (undefined direction) -g.addColorStop(0, '#f00'); -g.addColorStop(1, '#f00'); -ctx.strokeStyle = g; -ctx.font = '100px sans-serif'; -ctx.strokeText("AA", 0, 50); -_assertGreen(ctx, 100, 50); - + var g = ctx.createLinearGradient(50, 25, 50, 25); // zero-length line (undefined direction) + g.addColorStop(0, '#f00'); + g.addColorStop(1, '#f00'); + ctx.strokeStyle = g; + ctx.font = '100px sans-serif'; + ctx.strokeText("AA", 0, 50); + _assertGreen(ctx, 100, 50); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.linear.nonfinite.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.linear.nonfinite.html index 2a7e270b..89d00927 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.linear.nonfinite.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.linear.nonfinite.html
@@ -19,30 +19,29 @@ var t = async_test("createLinearGradient() throws TypeError if arguments are not finite"); _addTest(function(canvas, ctx) { -assert_throws_js(TypeError, function() { ctx.createLinearGradient(Infinity, 0, 1, 0); }); -assert_throws_js(TypeError, function() { ctx.createLinearGradient(-Infinity, 0, 1, 0); }); -assert_throws_js(TypeError, function() { ctx.createLinearGradient(NaN, 0, 1, 0); }); -assert_throws_js(TypeError, function() { ctx.createLinearGradient(0, Infinity, 1, 0); }); -assert_throws_js(TypeError, function() { ctx.createLinearGradient(0, -Infinity, 1, 0); }); -assert_throws_js(TypeError, function() { ctx.createLinearGradient(0, NaN, 1, 0); }); -assert_throws_js(TypeError, function() { ctx.createLinearGradient(0, 0, Infinity, 0); }); -assert_throws_js(TypeError, function() { ctx.createLinearGradient(0, 0, -Infinity, 0); }); -assert_throws_js(TypeError, function() { ctx.createLinearGradient(0, 0, NaN, 0); }); -assert_throws_js(TypeError, function() { ctx.createLinearGradient(0, 0, 1, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createLinearGradient(0, 0, 1, -Infinity); }); -assert_throws_js(TypeError, function() { ctx.createLinearGradient(0, 0, 1, NaN); }); -assert_throws_js(TypeError, function() { ctx.createLinearGradient(Infinity, Infinity, 1, 0); }); -assert_throws_js(TypeError, function() { ctx.createLinearGradient(Infinity, Infinity, Infinity, 0); }); -assert_throws_js(TypeError, function() { ctx.createLinearGradient(Infinity, Infinity, Infinity, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createLinearGradient(Infinity, Infinity, 1, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createLinearGradient(Infinity, 0, Infinity, 0); }); -assert_throws_js(TypeError, function() { ctx.createLinearGradient(Infinity, 0, Infinity, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createLinearGradient(Infinity, 0, 1, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createLinearGradient(0, Infinity, Infinity, 0); }); -assert_throws_js(TypeError, function() { ctx.createLinearGradient(0, Infinity, Infinity, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createLinearGradient(0, Infinity, 1, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createLinearGradient(0, 0, Infinity, Infinity); }); - + assert_throws_js(TypeError, function() { ctx.createLinearGradient(Infinity, 0, 1, 0); }); + assert_throws_js(TypeError, function() { ctx.createLinearGradient(-Infinity, 0, 1, 0); }); + assert_throws_js(TypeError, function() { ctx.createLinearGradient(NaN, 0, 1, 0); }); + assert_throws_js(TypeError, function() { ctx.createLinearGradient(0, Infinity, 1, 0); }); + assert_throws_js(TypeError, function() { ctx.createLinearGradient(0, -Infinity, 1, 0); }); + assert_throws_js(TypeError, function() { ctx.createLinearGradient(0, NaN, 1, 0); }); + assert_throws_js(TypeError, function() { ctx.createLinearGradient(0, 0, Infinity, 0); }); + assert_throws_js(TypeError, function() { ctx.createLinearGradient(0, 0, -Infinity, 0); }); + assert_throws_js(TypeError, function() { ctx.createLinearGradient(0, 0, NaN, 0); }); + assert_throws_js(TypeError, function() { ctx.createLinearGradient(0, 0, 1, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createLinearGradient(0, 0, 1, -Infinity); }); + assert_throws_js(TypeError, function() { ctx.createLinearGradient(0, 0, 1, NaN); }); + assert_throws_js(TypeError, function() { ctx.createLinearGradient(Infinity, Infinity, 1, 0); }); + assert_throws_js(TypeError, function() { ctx.createLinearGradient(Infinity, Infinity, Infinity, 0); }); + assert_throws_js(TypeError, function() { ctx.createLinearGradient(Infinity, Infinity, Infinity, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createLinearGradient(Infinity, Infinity, 1, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createLinearGradient(Infinity, 0, Infinity, 0); }); + assert_throws_js(TypeError, function() { ctx.createLinearGradient(Infinity, 0, Infinity, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createLinearGradient(Infinity, 0, 1, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createLinearGradient(0, Infinity, Infinity, 0); }); + assert_throws_js(TypeError, function() { ctx.createLinearGradient(0, Infinity, Infinity, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createLinearGradient(0, Infinity, 1, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createLinearGradient(0, 0, Infinity, Infinity); }); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.linear.transform.1.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.linear.transform.1.html index b2b1f78..0ae3220 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.linear.transform.1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.linear.transform.1.html
@@ -19,18 +19,17 @@ var t = async_test("Linear gradient coordinates are relative to the coordinate space at the time of filling"); _addTest(function(canvas, ctx) { -var g = ctx.createLinearGradient(0, 0, 200, 0); -g.addColorStop(0, '#f00'); -g.addColorStop(0.25, '#0f0'); -g.addColorStop(0.75, '#0f0'); -g.addColorStop(1, '#f00'); -ctx.fillStyle = g; -ctx.translate(-50, 0); -ctx.fillRect(50, 0, 100, 50); -_assertPixel(canvas, 25,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 75,25, 0,255,0,255); - + var g = ctx.createLinearGradient(0, 0, 200, 0); + g.addColorStop(0, '#f00'); + g.addColorStop(0.25, '#0f0'); + g.addColorStop(0.75, '#0f0'); + g.addColorStop(1, '#f00'); + ctx.fillStyle = g; + ctx.translate(-50, 0); + ctx.fillRect(50, 0, 100, 50); + _assertPixel(canvas, 25,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 75,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.linear.transform.2.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.linear.transform.2.html index 49ff026..8f761c66 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.linear.transform.2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.linear.transform.2.html
@@ -19,19 +19,18 @@ var t = async_test("Linear gradient coordinates are relative to the coordinate space at the time of filling"); _addTest(function(canvas, ctx) { -ctx.translate(100, 0); -var g = ctx.createLinearGradient(0, 0, 200, 0); -g.addColorStop(0, '#f00'); -g.addColorStop(0.25, '#0f0'); -g.addColorStop(0.75, '#0f0'); -g.addColorStop(1, '#f00'); -ctx.fillStyle = g; -ctx.translate(-150, 0); -ctx.fillRect(50, 0, 100, 50); -_assertPixel(canvas, 25,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 75,25, 0,255,0,255); - + ctx.translate(100, 0); + var g = ctx.createLinearGradient(0, 0, 200, 0); + g.addColorStop(0, '#f00'); + g.addColorStop(0.25, '#0f0'); + g.addColorStop(0.75, '#0f0'); + g.addColorStop(1, '#f00'); + ctx.fillStyle = g; + ctx.translate(-150, 0); + ctx.fillRect(50, 0, 100, 50); + _assertPixel(canvas, 25,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 75,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.linear.transform.3.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.linear.transform.3.html index 36f5e469..fdd1e0e 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.linear.transform.3.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.linear.transform.3.html
@@ -19,19 +19,18 @@ var t = async_test("Linear gradient transforms do not experience broken caching effects"); _addTest(function(canvas, ctx) { -var g = ctx.createLinearGradient(0, 0, 200, 0); -g.addColorStop(0, '#f00'); -g.addColorStop(0.25, '#0f0'); -g.addColorStop(0.75, '#0f0'); -g.addColorStop(1, '#f00'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -ctx.translate(-50, 0); -ctx.fillRect(50, 0, 100, 50); -_assertPixel(canvas, 25,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 75,25, 0,255,0,255); - + var g = ctx.createLinearGradient(0, 0, 200, 0); + g.addColorStop(0, '#f00'); + g.addColorStop(0.25, '#0f0'); + g.addColorStop(0.75, '#0f0'); + g.addColorStop(1, '#f00'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + ctx.translate(-50, 0); + ctx.fillRect(50, 0, 100, 50); + _assertPixel(canvas, 25,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 75,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.object.compare.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.object.compare.html index cc20035..9ff3e607 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.object.compare.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.object.compare.html
@@ -19,12 +19,11 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -var g1 = ctx.createLinearGradient(0, 0, 100, 0); -var g2 = ctx.createLinearGradient(0, 0, 100, 0); -_assertDifferent(g1, g2, "g1", "g2"); -ctx.fillStyle = g1; -_assertSame(ctx.fillStyle, g1, "ctx.fillStyle", "g1"); - + var g1 = ctx.createLinearGradient(0, 0, 100, 0); + var g2 = ctx.createLinearGradient(0, 0, 100, 0); + _assertDifferent(g1, g2, "g1", "g2"); + ctx.fillStyle = g1; + _assertSame(ctx.fillStyle, g1, "ctx.fillStyle", "g1"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.object.crosscanvas.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.object.crosscanvas.html index 3b185b4d..9c30d9c 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.object.crosscanvas.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.object.crosscanvas.html
@@ -19,15 +19,14 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -var g = document.createElement('canvas').getContext('2d').createLinearGradient(0, 0, 100, 0); -g.addColorStop(0, '#0f0'); -g.addColorStop(1, '#0f0'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,255,0,255, 2); - + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + var g = document.createElement('canvas').getContext('2d').createLinearGradient(0, 0, 100, 0); + g.addColorStop(0, '#0f0'); + g.addColorStop(1, '#0f0'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,255,0,255, 2); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.object.current.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.object.current.html index b0d5c01..95cc893 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.object.current.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.object.current.html
@@ -19,18 +19,17 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -canvas.setAttribute('style', 'color: #f00'); + canvas.setAttribute('style', 'color: #f00'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); -var g = ctx.createLinearGradient(0, 0, 100, 0); -g.addColorStop(0, 'currentColor'); -g.addColorStop(1, 'currentColor'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,0,0,255, 2); - + var g = ctx.createLinearGradient(0, 0, 100, 0); + g.addColorStop(0, 'currentColor'); + g.addColorStop(1, 'currentColor'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,0,0,255, 2); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.object.invalidcolor.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.object.invalidcolor.html index 3150e9c..2be7b3d6 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.object.invalidcolor.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.object.invalidcolor.html
@@ -19,22 +19,21 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -var g = ctx.createLinearGradient(0, 0, 100, 0); -assert_throws_dom("SYNTAX_ERR", function() { g.addColorStop(0, ""); }); -assert_throws_dom("SYNTAX_ERR", function() { g.addColorStop(0, 'rgb(NaN%, NaN%, NaN%)'); }); -assert_throws_dom("SYNTAX_ERR", function() { g.addColorStop(0, 'null'); }); -assert_throws_dom("SYNTAX_ERR", function() { g.addColorStop(0, 'undefined'); }); -assert_throws_dom("SYNTAX_ERR", function() { g.addColorStop(0, null); }); -assert_throws_dom("SYNTAX_ERR", function() { g.addColorStop(0, undefined); }); + var g = ctx.createLinearGradient(0, 0, 100, 0); + assert_throws_dom("SYNTAX_ERR", function() { g.addColorStop(0, ""); }); + assert_throws_dom("SYNTAX_ERR", function() { g.addColorStop(0, 'rgb(NaN%, NaN%, NaN%)'); }); + assert_throws_dom("SYNTAX_ERR", function() { g.addColorStop(0, 'null'); }); + assert_throws_dom("SYNTAX_ERR", function() { g.addColorStop(0, 'undefined'); }); + assert_throws_dom("SYNTAX_ERR", function() { g.addColorStop(0, null); }); + assert_throws_dom("SYNTAX_ERR", function() { g.addColorStop(0, undefined); }); -var g = ctx.createRadialGradient(0, 0, 0, 100, 0, 0); -assert_throws_dom("SYNTAX_ERR", function() { g.addColorStop(0, ""); }); -assert_throws_dom("SYNTAX_ERR", function() { g.addColorStop(0, 'rgb(NaN%, NaN%, NaN%)'); }); -assert_throws_dom("SYNTAX_ERR", function() { g.addColorStop(0, 'null'); }); -assert_throws_dom("SYNTAX_ERR", function() { g.addColorStop(0, 'undefined'); }); -assert_throws_dom("SYNTAX_ERR", function() { g.addColorStop(0, null); }); -assert_throws_dom("SYNTAX_ERR", function() { g.addColorStop(0, undefined); }); - + var g = ctx.createRadialGradient(0, 0, 0, 100, 0, 0); + assert_throws_dom("SYNTAX_ERR", function() { g.addColorStop(0, ""); }); + assert_throws_dom("SYNTAX_ERR", function() { g.addColorStop(0, 'rgb(NaN%, NaN%, NaN%)'); }); + assert_throws_dom("SYNTAX_ERR", function() { g.addColorStop(0, 'null'); }); + assert_throws_dom("SYNTAX_ERR", function() { g.addColorStop(0, 'undefined'); }); + assert_throws_dom("SYNTAX_ERR", function() { g.addColorStop(0, null); }); + assert_throws_dom("SYNTAX_ERR", function() { g.addColorStop(0, undefined); }); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.object.invalidoffset.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.object.invalidoffset.html index b11a1a5..76aaed7 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.object.invalidoffset.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.object.invalidoffset.html
@@ -19,13 +19,12 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -var g = ctx.createLinearGradient(0, 0, 100, 0); -assert_throws_dom("INDEX_SIZE_ERR", function() { g.addColorStop(-1, '#000'); }); -assert_throws_dom("INDEX_SIZE_ERR", function() { g.addColorStop(2, '#000'); }); -assert_throws_js(TypeError, function() { g.addColorStop(Infinity, '#000'); }); -assert_throws_js(TypeError, function() { g.addColorStop(-Infinity, '#000'); }); -assert_throws_js(TypeError, function() { g.addColorStop(NaN, '#000'); }); - + var g = ctx.createLinearGradient(0, 0, 100, 0); + assert_throws_dom("INDEX_SIZE_ERR", function() { g.addColorStop(-1, '#000'); }); + assert_throws_dom("INDEX_SIZE_ERR", function() { g.addColorStop(2, '#000'); }); + assert_throws_js(TypeError, function() { g.addColorStop(Infinity, '#000'); }); + assert_throws_js(TypeError, function() { g.addColorStop(-Infinity, '#000'); }); + assert_throws_js(TypeError, function() { g.addColorStop(NaN, '#000'); }); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.object.return.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.object.return.html index 80af9ca..c3231214 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.object.return.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.object.return.html
@@ -19,16 +19,15 @@ var t = async_test("createLinearGradient() and createRadialGradient() returns objects implementing CanvasGradient"); _addTest(function(canvas, ctx) { -window.CanvasGradient.prototype.thisImplementsCanvasGradient = true; + window.CanvasGradient.prototype.thisImplementsCanvasGradient = true; -var g1 = ctx.createLinearGradient(0, 0, 100, 0); -_assertDifferent(g1.addColorStop, undefined, "g1.addColorStop", "undefined"); -_assertSame(g1.thisImplementsCanvasGradient, true, "g1.thisImplementsCanvasGradient", "true"); + var g1 = ctx.createLinearGradient(0, 0, 100, 0); + _assertDifferent(g1.addColorStop, undefined, "g1.addColorStop", "undefined"); + _assertSame(g1.thisImplementsCanvasGradient, true, "g1.thisImplementsCanvasGradient", "true"); -var g2 = ctx.createRadialGradient(0, 0, 10, 0, 0, 20); -_assertDifferent(g2.addColorStop, undefined, "g2.addColorStop", "undefined"); -_assertSame(g2.thisImplementsCanvasGradient, true, "g2.thisImplementsCanvasGradient", "true"); - + var g2 = ctx.createRadialGradient(0, 0, 10, 0, 0, 20); + _assertDifferent(g2.addColorStop, undefined, "g2.addColorStop", "undefined"); + _assertSame(g2.thisImplementsCanvasGradient, true, "g2.thisImplementsCanvasGradient", "true"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.object.type.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.object.type.html index e79f8d0b..37c77d2f 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.object.type.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.object.type.html
@@ -19,9 +19,8 @@ var t = async_test("window.CanvasGradient exists and has the right properties"); _addTest(function(canvas, ctx) { -_assertDifferent(window.CanvasGradient, undefined, "window.CanvasGradient", "undefined"); -_assertDifferent(window.CanvasGradient.prototype.addColorStop, undefined, "window.CanvasGradient.prototype.addColorStop", "undefined"); - + _assertDifferent(window.CanvasGradient, undefined, "window.CanvasGradient", "undefined"); + _assertDifferent(window.CanvasGradient.prototype.addColorStop, undefined, "window.CanvasGradient.prototype.addColorStop", "undefined"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.object.update.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.object.update.html index 6f363177..ae78d0d 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.object.update.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.object.update.html
@@ -19,16 +19,15 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -var g = ctx.createLinearGradient(-100, 0, 200, 0); -g.addColorStop(0, '#f00'); -g.addColorStop(1, '#f00'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -g.addColorStop(0.1, '#0f0'); -g.addColorStop(0.9, '#0f0'); -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,255,0,255, 2); - + var g = ctx.createLinearGradient(-100, 0, 200, 0); + g.addColorStop(0, '#f00'); + g.addColorStop(1, '#f00'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + g.addColorStop(0.1, '#0f0'); + g.addColorStop(0.9, '#0f0'); + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,255,0,255, 2); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.cone.behind.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.cone.behind.html index 4200a1e7..758fbcf 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.cone.behind.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.cone.behind.html
@@ -19,25 +19,24 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); -var g = ctx.createRadialGradient(120, 25, 10, 211, 25, 100); -g.addColorStop(0, '#f00'); -g.addColorStop(1, '#f00'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); + var g = ctx.createRadialGradient(120, 25, 10, 211, 25, 100); + g.addColorStop(0, '#f00'); + g.addColorStop(1, '#f00'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 50,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 98,25, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 50,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); - + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 50,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 98,25, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 50,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.cone.beside.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.cone.beside.html index ab183f9..111cb80 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.cone.beside.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.cone.beside.html
@@ -19,25 +19,24 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); -var g = ctx.createRadialGradient(0, 100, 40, 100, 100, 50); -g.addColorStop(0, '#f00'); -g.addColorStop(1, '#f00'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); + var g = ctx.createRadialGradient(0, 100, 40, 100, 100, 50); + g.addColorStop(0, '#f00'); + g.addColorStop(1, '#f00'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 50,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 98,25, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 50,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); - + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 50,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 98,25, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 50,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.cone.bottom.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.cone.bottom.html index 872420b..a7ebc6ab 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.cone.bottom.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.cone.bottom.html
@@ -19,25 +19,24 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); -var g = ctx.createRadialGradient(210, 25, 100, 230, 25, 101); -g.addColorStop(0, '#0f0'); -g.addColorStop(1, '#f00'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); + var g = ctx.createRadialGradient(210, 25, 100, 230, 25, 101); + g.addColorStop(0, '#0f0'); + g.addColorStop(1, '#f00'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 50,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 98,25, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 50,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); - + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 50,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 98,25, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 50,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.cone.cylinder.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.cone.cylinder.html index fae7ef8..9f270f4 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.cone.cylinder.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.cone.cylinder.html
@@ -19,25 +19,24 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); -var g = ctx.createRadialGradient(210, 25, 100, 230, 25, 100); -g.addColorStop(0, '#0f0'); -g.addColorStop(1, '#f00'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); + var g = ctx.createRadialGradient(210, 25, 100, 230, 25, 100); + g.addColorStop(0, '#0f0'); + g.addColorStop(1, '#f00'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 50,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 98,25, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 50,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); - + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 50,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 98,25, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 50,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.cone.front.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.cone.front.html index ff7438249..23f4723 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.cone.front.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.cone.front.html
@@ -19,25 +19,24 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); -var g = ctx.createRadialGradient(311, 25, 10, 210, 25, 100); -g.addColorStop(0, '#f00'); -g.addColorStop(1, '#0f0'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); + var g = ctx.createRadialGradient(311, 25, 10, 210, 25, 100); + g.addColorStop(0, '#f00'); + g.addColorStop(1, '#0f0'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 50,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 98,25, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 50,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); - + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 50,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 98,25, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 50,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.cone.shape1.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.cone.shape1.html index 7e95eb25..15ac2bf 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.cone.shape1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.cone.shape1.html
@@ -19,34 +19,33 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -var tol = 1; // tolerance to avoid antialiasing artifacts + var tol = 1; // tolerance to avoid antialiasing artifacts -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = '#f00'; -ctx.beginPath(); -ctx.moveTo(30+tol, 40); -ctx.lineTo(110, -20+tol); -ctx.lineTo(110, 100-tol); -ctx.fill(); + ctx.fillStyle = '#f00'; + ctx.beginPath(); + ctx.moveTo(30+tol, 40); + ctx.lineTo(110, -20+tol); + ctx.lineTo(110, 100-tol); + ctx.fill(); -var g = ctx.createRadialGradient(30+10*5/2, 40, 10*3/2, 30+10*15/4, 40, 10*9/4); -g.addColorStop(0, '#0f0'); -g.addColorStop(1, '#0f0'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); + var g = ctx.createRadialGradient(30+10*5/2, 40, 10*3/2, 30+10*15/4, 40, 10*9/4); + g.addColorStop(0, '#0f0'); + g.addColorStop(1, '#0f0'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 50,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 98,25, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 50,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); - + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 50,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 98,25, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 50,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.cone.shape2.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.cone.shape2.html index 7ebe7d2..d1f5be3 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.cone.shape2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.cone.shape2.html
@@ -19,34 +19,33 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -var tol = 1; // tolerance to avoid antialiasing artifacts + var tol = 1; // tolerance to avoid antialiasing artifacts -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); -var g = ctx.createRadialGradient(30+10*5/2, 40, 10*3/2, 30+10*15/4, 40, 10*9/4); -g.addColorStop(0, '#f00'); -g.addColorStop(1, '#f00'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); + var g = ctx.createRadialGradient(30+10*5/2, 40, 10*3/2, 30+10*15/4, 40, 10*9/4); + g.addColorStop(0, '#f00'); + g.addColorStop(1, '#f00'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = '#0f0'; -ctx.beginPath(); -ctx.moveTo(30-tol, 40); -ctx.lineTo(110, -20-tol); -ctx.lineTo(110, 100+tol); -ctx.fill(); + ctx.fillStyle = '#0f0'; + ctx.beginPath(); + ctx.moveTo(30-tol, 40); + ctx.lineTo(110, -20-tol); + ctx.lineTo(110, 100+tol); + ctx.fill(); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 50,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 98,25, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 50,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); - + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 50,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 98,25, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 50,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.cone.top.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.cone.top.html index 5db91b7..85c23d60 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.cone.top.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.cone.top.html
@@ -19,25 +19,24 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); -var g = ctx.createRadialGradient(230, 25, 100, 100, 25, 101); -g.addColorStop(0, '#f00'); -g.addColorStop(1, '#0f0'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); + var g = ctx.createRadialGradient(230, 25, 100, 100, 25, 101); + g.addColorStop(0, '#f00'); + g.addColorStop(1, '#0f0'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 50,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 98,25, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 50,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); - + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 50,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 98,25, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 50,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.equal.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.equal.html index aeb4990..bcb4750 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.equal.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.equal.html
@@ -19,25 +19,24 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); -var g = ctx.createRadialGradient(50, 25, 20, 50, 25, 20); -g.addColorStop(0, '#f00'); -g.addColorStop(1, '#f00'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); + var g = ctx.createRadialGradient(50, 25, 20, 50, 25, 20); + g.addColorStop(0, '#f00'); + g.addColorStop(1, '#f00'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 50,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 98,25, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 50,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); - + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 50,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 98,25, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 50,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.inside1.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.inside1.html index 102a31b..070a97e4 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.inside1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.inside1.html
@@ -19,25 +19,24 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); -var g = ctx.createRadialGradient(50, 25, 100, 50, 25, 200); -g.addColorStop(0, '#0f0'); -g.addColorStop(1, '#f00'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); + var g = ctx.createRadialGradient(50, 25, 100, 50, 25, 200); + g.addColorStop(0, '#0f0'); + g.addColorStop(1, '#f00'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 50,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 98,25, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 50,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); - + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 50,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 98,25, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 50,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.inside2.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.inside2.html index 5b26ec5..a7b06f1 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.inside2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.inside2.html
@@ -19,25 +19,24 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); -var g = ctx.createRadialGradient(50, 25, 200, 50, 25, 100); -g.addColorStop(0, '#f00'); -g.addColorStop(1, '#0f0'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); + var g = ctx.createRadialGradient(50, 25, 200, 50, 25, 100); + g.addColorStop(0, '#f00'); + g.addColorStop(1, '#0f0'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 50,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 98,25, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 50,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); - + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 50,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 98,25, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 50,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.inside3.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.inside3.html index 30612d4..d7abedc 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.inside3.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.inside3.html
@@ -19,26 +19,25 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); -var g = ctx.createRadialGradient(50, 25, 200, 50, 25, 100); -g.addColorStop(0, '#f00'); -g.addColorStop(0.993, '#f00'); -g.addColorStop(1, '#0f0'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); + var g = ctx.createRadialGradient(50, 25, 200, 50, 25, 100); + g.addColorStop(0, '#f00'); + g.addColorStop(0.993, '#f00'); + g.addColorStop(1, '#0f0'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 50,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 98,25, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 50,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); - + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 50,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 98,25, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 50,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.negative.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.negative.html index ab2ecf2..d86812b 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.negative.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.negative.html
@@ -19,10 +19,9 @@ var t = async_test("createRadialGradient() throws INDEX_SIZE_ERR if either radius is negative"); _addTest(function(canvas, ctx) { -assert_throws_dom("INDEX_SIZE_ERR", function() { ctx.createRadialGradient(0, 0, -0.1, 0, 0, 1); }); -assert_throws_dom("INDEX_SIZE_ERR", function() { ctx.createRadialGradient(0, 0, 1, 0, 0, -0.1); }); -assert_throws_dom("INDEX_SIZE_ERR", function() { ctx.createRadialGradient(0, 0, -0.1, 0, 0, -0.1); }); - + assert_throws_dom("INDEX_SIZE_ERR", function() { ctx.createRadialGradient(0, 0, -0.1, 0, 0, 1); }); + assert_throws_dom("INDEX_SIZE_ERR", function() { ctx.createRadialGradient(0, 0, 1, 0, 0, -0.1); }); + assert_throws_dom("INDEX_SIZE_ERR", function() { ctx.createRadialGradient(0, 0, -0.1, 0, 0, -0.1); }); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.nonfinite.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.nonfinite.html index b602661..0c16b41 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.nonfinite.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.nonfinite.html
@@ -19,82 +19,81 @@ var t = async_test("createRadialGradient() throws TypeError if arguments are not finite"); _addTest(function(canvas, ctx) { -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, 1, 0, 0, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(-Infinity, 0, 1, 0, 0, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(NaN, 0, 1, 0, 0, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, 1, 0, 0, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, -Infinity, 1, 0, 0, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, NaN, 1, 0, 0, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, Infinity, 0, 0, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, -Infinity, 0, 0, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, NaN, 0, 0, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, 1, Infinity, 0, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, 1, -Infinity, 0, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, 1, NaN, 0, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, 1, 0, Infinity, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, 1, 0, -Infinity, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, 1, 0, NaN, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, 1, 0, 0, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, 1, 0, 0, -Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, 1, 0, 0, NaN); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, 1, 0, 0, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, Infinity, 0, 0, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, Infinity, Infinity, 0, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, Infinity, Infinity, Infinity, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, Infinity, Infinity, Infinity, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, Infinity, Infinity, 0, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, Infinity, 0, Infinity, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, Infinity, 0, Infinity, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, Infinity, 0, 0, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, 1, Infinity, 0, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, 1, Infinity, Infinity, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, 1, Infinity, Infinity, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, 1, Infinity, 0, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, 1, 0, Infinity, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, 1, 0, Infinity, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, 1, 0, 0, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, Infinity, 0, 0, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, Infinity, Infinity, 0, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, Infinity, Infinity, Infinity, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, Infinity, Infinity, Infinity, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, Infinity, Infinity, 0, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, Infinity, 0, Infinity, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, Infinity, 0, Infinity, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, Infinity, 0, 0, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, 1, Infinity, 0, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, 1, Infinity, Infinity, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, 1, Infinity, Infinity, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, 1, Infinity, 0, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, 1, 0, Infinity, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, 1, 0, Infinity, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, 1, 0, 0, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, Infinity, 0, 0, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, Infinity, Infinity, 0, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, Infinity, Infinity, Infinity, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, Infinity, Infinity, Infinity, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, Infinity, Infinity, 0, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, Infinity, 0, Infinity, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, Infinity, 0, Infinity, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, Infinity, 0, 0, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, 1, Infinity, 0, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, 1, Infinity, Infinity, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, 1, Infinity, Infinity, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, 1, Infinity, 0, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, 1, 0, Infinity, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, 1, 0, Infinity, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, 1, 0, 0, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, Infinity, Infinity, 0, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, Infinity, Infinity, Infinity, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, Infinity, Infinity, Infinity, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, Infinity, Infinity, 0, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, Infinity, 0, Infinity, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, Infinity, 0, Infinity, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, Infinity, 0, 0, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, 1, Infinity, Infinity, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, 1, Infinity, Infinity, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, 1, Infinity, 0, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, 1, 0, Infinity, Infinity); }); - + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, 1, 0, 0, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(-Infinity, 0, 1, 0, 0, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(NaN, 0, 1, 0, 0, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, 1, 0, 0, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, -Infinity, 1, 0, 0, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, NaN, 1, 0, 0, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, Infinity, 0, 0, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, -Infinity, 0, 0, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, NaN, 0, 0, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, 1, Infinity, 0, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, 1, -Infinity, 0, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, 1, NaN, 0, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, 1, 0, Infinity, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, 1, 0, -Infinity, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, 1, 0, NaN, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, 1, 0, 0, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, 1, 0, 0, -Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, 1, 0, 0, NaN); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, 1, 0, 0, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, Infinity, 0, 0, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, Infinity, Infinity, 0, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, Infinity, Infinity, Infinity, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, Infinity, Infinity, Infinity, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, Infinity, Infinity, 0, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, Infinity, 0, Infinity, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, Infinity, 0, Infinity, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, Infinity, 0, 0, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, 1, Infinity, 0, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, 1, Infinity, Infinity, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, 1, Infinity, Infinity, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, 1, Infinity, 0, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, 1, 0, Infinity, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, 1, 0, Infinity, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, 1, 0, 0, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, Infinity, 0, 0, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, Infinity, Infinity, 0, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, Infinity, Infinity, Infinity, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, Infinity, Infinity, Infinity, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, Infinity, Infinity, 0, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, Infinity, 0, Infinity, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, Infinity, 0, Infinity, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, Infinity, 0, 0, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, 1, Infinity, 0, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, 1, Infinity, Infinity, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, 1, Infinity, Infinity, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, 1, Infinity, 0, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, 1, 0, Infinity, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, 1, 0, Infinity, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, 1, 0, 0, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, Infinity, 0, 0, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, Infinity, Infinity, 0, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, Infinity, Infinity, Infinity, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, Infinity, Infinity, Infinity, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, Infinity, Infinity, 0, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, Infinity, 0, Infinity, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, Infinity, 0, Infinity, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, Infinity, 0, 0, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, 1, Infinity, 0, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, 1, Infinity, Infinity, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, 1, Infinity, Infinity, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, 1, Infinity, 0, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, 1, 0, Infinity, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, 1, 0, Infinity, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, 1, 0, 0, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, Infinity, Infinity, 0, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, Infinity, Infinity, Infinity, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, Infinity, Infinity, Infinity, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, Infinity, Infinity, 0, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, Infinity, 0, Infinity, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, Infinity, 0, Infinity, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, Infinity, 0, 0, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, 1, Infinity, Infinity, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, 1, Infinity, Infinity, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, 1, Infinity, 0, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, 1, 0, Infinity, Infinity); }); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.outside1.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.outside1.html index cb161445..c928e18 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.outside1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.outside1.html
@@ -19,25 +19,24 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); -var g = ctx.createRadialGradient(200, 25, 10, 200, 25, 20); -g.addColorStop(0, '#f00'); -g.addColorStop(1, '#0f0'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); + var g = ctx.createRadialGradient(200, 25, 10, 200, 25, 20); + g.addColorStop(0, '#f00'); + g.addColorStop(1, '#0f0'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 50,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 98,25, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 50,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); - + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 50,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 98,25, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 50,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.outside2.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.outside2.html index 6853849..7bbe734 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.outside2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.outside2.html
@@ -19,25 +19,24 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); -var g = ctx.createRadialGradient(200, 25, 20, 200, 25, 10); -g.addColorStop(0, '#0f0'); -g.addColorStop(1, '#f00'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); + var g = ctx.createRadialGradient(200, 25, 20, 200, 25, 10); + g.addColorStop(0, '#0f0'); + g.addColorStop(1, '#f00'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 50,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 98,25, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 50,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); - + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 50,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 98,25, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 50,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.outside3.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.outside3.html index 9330fcd..7705d09 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.outside3.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.outside3.html
@@ -19,26 +19,25 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); -var g = ctx.createRadialGradient(200, 25, 20, 200, 25, 10); -g.addColorStop(0, '#0f0'); -g.addColorStop(0.001, '#f00'); -g.addColorStop(1, '#f00'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); + var g = ctx.createRadialGradient(200, 25, 20, 200, 25, 10); + g.addColorStop(0, '#0f0'); + g.addColorStop(0.001, '#f00'); + g.addColorStop(1, '#f00'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 50,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 98,25, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 50,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); - + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 50,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 98,25, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 50,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.touch1.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.touch1.html index 3a13947..25e1c01 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.touch1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.touch1.html
@@ -19,25 +19,24 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); -var g = ctx.createRadialGradient(150, 25, 50, 200, 25, 100); -g.addColorStop(0, '#f00'); -g.addColorStop(1, '#f00'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); + var g = ctx.createRadialGradient(150, 25, 50, 200, 25, 100); + g.addColorStop(0, '#f00'); + g.addColorStop(1, '#f00'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 50,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 98,25, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 50,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); - + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 50,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 98,25, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 50,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.touch2.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.touch2.html index ca6c1b7..75a077a 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.touch2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.touch2.html
@@ -19,27 +19,26 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); -var g = ctx.createRadialGradient(-80, 25, 70, 0, 25, 150); -g.addColorStop(0, '#f00'); -g.addColorStop(0.01, '#0f0'); -g.addColorStop(0.99, '#0f0'); -g.addColorStop(1, '#f00'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); + var g = ctx.createRadialGradient(-80, 25, 70, 0, 25, 150); + g.addColorStop(0, '#f00'); + g.addColorStop(0.01, '#0f0'); + g.addColorStop(0.99, '#0f0'); + g.addColorStop(1, '#f00'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 50,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 98,25, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 50,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); - + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 50,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 98,25, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 50,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.touch3.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.touch3.html index bd032a94d..a93120c 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.touch3.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.touch3.html
@@ -19,25 +19,24 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); -var g = ctx.createRadialGradient(120, -15, 25, 140, -30, 50); -g.addColorStop(0, '#f00'); -g.addColorStop(1, '#f00'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); + var g = ctx.createRadialGradient(120, -15, 25, 140, -30, 50); + g.addColorStop(0, '#f00'); + g.addColorStop(1, '#f00'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 50,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 98,25, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 50,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); - + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 50,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 98,25, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 50,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.transform.1.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.transform.1.html index 505dd698..d0eb13c 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.transform.1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.transform.1.html
@@ -19,19 +19,18 @@ var t = async_test("Radial gradient coordinates are relative to the coordinate space at the time of filling"); _addTest(function(canvas, ctx) { -var g = ctx.createRadialGradient(0, 0, 0, 0, 0, 11.2); -g.addColorStop(0, '#0f0'); -g.addColorStop(0.5, '#0f0'); -g.addColorStop(0.51, '#f00'); -g.addColorStop(1, '#f00'); -ctx.fillStyle = g; -ctx.translate(50, 25); -ctx.scale(10, 10); -ctx.fillRect(-5, -2.5, 10, 5); -_assertPixel(canvas, 25,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 75,25, 0,255,0,255); - + var g = ctx.createRadialGradient(0, 0, 0, 0, 0, 11.2); + g.addColorStop(0, '#0f0'); + g.addColorStop(0.5, '#0f0'); + g.addColorStop(0.51, '#f00'); + g.addColorStop(1, '#f00'); + ctx.fillStyle = g; + ctx.translate(50, 25); + ctx.scale(10, 10); + ctx.fillRect(-5, -2.5, 10, 5); + _assertPixel(canvas, 25,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 75,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.transform.2.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.transform.2.html index d8d475f..6e56c4c 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.transform.2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.transform.2.html
@@ -19,20 +19,19 @@ var t = async_test("Radial gradient coordinates are relative to the coordinate space at the time of filling"); _addTest(function(canvas, ctx) { -ctx.translate(100, 0); -var g = ctx.createRadialGradient(0, 0, 0, 0, 0, 11.2); -g.addColorStop(0, '#0f0'); -g.addColorStop(0.5, '#0f0'); -g.addColorStop(0.51, '#f00'); -g.addColorStop(1, '#f00'); -ctx.fillStyle = g; -ctx.translate(-50, 25); -ctx.scale(10, 10); -ctx.fillRect(-5, -2.5, 10, 5); -_assertPixel(canvas, 25,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 75,25, 0,255,0,255); - + ctx.translate(100, 0); + var g = ctx.createRadialGradient(0, 0, 0, 0, 0, 11.2); + g.addColorStop(0, '#0f0'); + g.addColorStop(0.5, '#0f0'); + g.addColorStop(0.51, '#f00'); + g.addColorStop(1, '#f00'); + ctx.fillStyle = g; + ctx.translate(-50, 25); + ctx.scale(10, 10); + ctx.fillRect(-5, -2.5, 10, 5); + _assertPixel(canvas, 25,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 75,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.transform.3.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.transform.3.html index ff27cb0..426021d 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.transform.3.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.transform.3.html
@@ -19,20 +19,19 @@ var t = async_test("Radial gradient transforms do not experience broken caching effects"); _addTest(function(canvas, ctx) { -var g = ctx.createRadialGradient(0, 0, 0, 0, 0, 11.2); -g.addColorStop(0, '#0f0'); -g.addColorStop(0.5, '#0f0'); -g.addColorStop(0.51, '#f00'); -g.addColorStop(1, '#f00'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -ctx.translate(50, 25); -ctx.scale(10, 10); -ctx.fillRect(-5, -2.5, 10, 5); -_assertPixel(canvas, 25,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 75,25, 0,255,0,255); - + var g = ctx.createRadialGradient(0, 0, 0, 0, 0, 11.2); + g.addColorStop(0, '#0f0'); + g.addColorStop(0.5, '#0f0'); + g.addColorStop(0.51, '#f00'); + g.addColorStop(1, '#f00'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + ctx.translate(50, 25); + ctx.scale(10, 10); + ctx.fillRect(-5, -2.5, 10, 5); + _assertPixel(canvas, 25,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 75,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.animated.gif.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.animated.gif.html index 9b97522..be69cca 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.animated.gif.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.animated.gif.html
@@ -19,18 +19,17 @@ var t = async_test("createPattern() of an animated GIF draws the first frame"); _addTest(function(canvas, ctx) { -deferTest(); -step_timeout(function () { - var pattern = ctx.createPattern(document.getElementById('anim-gr.gif'), 'repeat'); - ctx.fillStyle = pattern; - ctx.fillRect(0, 0, 50, 50); - step_timeout(t.step_func_done(function () { - ctx.fillRect(50, 0, 50, 50); - _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); - }), 250); -}, 250); - + deferTest(); + step_timeout(function () { + var pattern = ctx.createPattern(document.getElementById('anim-gr.gif'), 'repeat'); + ctx.fillStyle = pattern; + ctx.fillRect(0, 0, 50, 50); + step_timeout(t.step_func_done(function () { + ctx.fillRect(50, 0, 50, 50); + _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); + }), 250); + }, 250); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.basic.canvas.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.basic.canvas.html index f0e50d0..069263ad 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.basic.canvas.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.basic.canvas.html
@@ -19,30 +19,29 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); -var canvas2 = document.createElement('canvas'); -canvas2.width = 100; -canvas2.height = 50; -var ctx2 = canvas2.getContext('2d'); -ctx2.fillStyle = '#0f0'; -ctx2.fillRect(0, 0, 100, 50); + var canvas2 = document.createElement('canvas'); + canvas2.width = 100; + canvas2.height = 50; + var ctx2 = canvas2.getContext('2d'); + ctx2.fillStyle = '#0f0'; + ctx2.fillRect(0, 0, 100, 50); -var pattern = ctx.createPattern(canvas2, 'no-repeat'); -ctx.fillStyle = pattern; -ctx.fillRect(0, 0, 100, 50); + var pattern = ctx.createPattern(canvas2, 'no-repeat'); + ctx.fillStyle = pattern; + ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 50,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 98,25, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 50,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); - + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 50,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 98,25, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 50,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.basic.image.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.basic.image.html index 31999965..5ebffe5 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.basic.image.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.basic.image.html
@@ -19,18 +19,17 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -var img = document.getElementById('green.png'); -var pattern = ctx.createPattern(img, 'no-repeat'); -ctx.fillStyle = pattern; -ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + var img = document.getElementById('green.png'); + var pattern = ctx.createPattern(img, 'no-repeat'); + ctx.fillStyle = pattern; + ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); - + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.basic.nocontext.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.basic.nocontext.html index 09e0a047..f24899c 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.basic.nocontext.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.basic.nocontext.html
@@ -19,22 +19,21 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -var canvas2 = document.createElement('canvas'); -canvas2.width = 100; -canvas2.height = 50; -var pattern = ctx.createPattern(canvas2, 'no-repeat'); + var canvas2 = document.createElement('canvas'); + canvas2.width = 100; + canvas2.height = 50; + var pattern = ctx.createPattern(canvas2, 'no-repeat'); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = '#f00'; -ctx.fillStyle = pattern; -ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#f00'; + ctx.fillStyle = pattern; + ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); - + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.basic.type.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.basic.type.html index c07005e..c510063 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.basic.type.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.basic.type.html
@@ -19,14 +19,13 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -_assertDifferent(window.CanvasPattern, undefined, "window.CanvasPattern", "undefined"); + _assertDifferent(window.CanvasPattern, undefined, "window.CanvasPattern", "undefined"); -window.CanvasPattern.prototype.thisImplementsCanvasPattern = true; + window.CanvasPattern.prototype.thisImplementsCanvasPattern = true; -var img = document.getElementById('green.png'); -var pattern = ctx.createPattern(img, 'no-repeat'); -_assert(pattern.thisImplementsCanvasPattern, "pattern.thisImplementsCanvasPattern"); - + var img = document.getElementById('green.png'); + var pattern = ctx.createPattern(img, 'no-repeat'); + _assert(pattern.thisImplementsCanvasPattern, "pattern.thisImplementsCanvasPattern"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.basic.zerocanvas.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.basic.zerocanvas.html index eba1ad50..fbeb7bd 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.basic.zerocanvas.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.basic.zerocanvas.html
@@ -19,24 +19,23 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -canvas.width = 0; -canvas.height = 10; -_assertSame(canvas.width, 0, "canvas.width", "0"); -_assertSame(canvas.height, 10, "canvas.height", "10"); -assert_throws_dom("INVALID_STATE_ERR", function() { ctx.createPattern(canvas, 'repeat'); }); + canvas.width = 0; + canvas.height = 10; + _assertSame(canvas.width, 0, "canvas.width", "0"); + _assertSame(canvas.height, 10, "canvas.height", "10"); + assert_throws_dom("INVALID_STATE_ERR", function() { ctx.createPattern(canvas, 'repeat'); }); -canvas.width = 10; -canvas.height = 0; -_assertSame(canvas.width, 10, "canvas.width", "10"); -_assertSame(canvas.height, 0, "canvas.height", "0"); -assert_throws_dom("INVALID_STATE_ERR", function() { ctx.createPattern(canvas, 'repeat'); }); + canvas.width = 10; + canvas.height = 0; + _assertSame(canvas.width, 10, "canvas.width", "10"); + _assertSame(canvas.height, 0, "canvas.height", "0"); + assert_throws_dom("INVALID_STATE_ERR", function() { ctx.createPattern(canvas, 'repeat'); }); -canvas.width = 0; -canvas.height = 0; -_assertSame(canvas.width, 0, "canvas.width", "0"); -_assertSame(canvas.height, 0, "canvas.height", "0"); -assert_throws_dom("INVALID_STATE_ERR", function() { ctx.createPattern(canvas, 'repeat'); }); - + canvas.width = 0; + canvas.height = 0; + _assertSame(canvas.width, 0, "canvas.width", "0"); + _assertSame(canvas.height, 0, "canvas.height", "0"); + assert_throws_dom("INVALID_STATE_ERR", function() { ctx.createPattern(canvas, 'repeat'); }); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.crosscanvas.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.crosscanvas.html index cbda7d0..f93b36d 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.crosscanvas.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.crosscanvas.html
@@ -19,16 +19,15 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -var img = document.getElementById('green.png'); + var img = document.getElementById('green.png'); -var pattern = document.createElement('canvas').getContext('2d').createPattern(img, 'no-repeat'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = pattern; -ctx.fillRect(0, 0, 100, 50); + var pattern = document.createElement('canvas').getContext('2d').createPattern(img, 'no-repeat'); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = pattern; + ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.image.broken.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.image.broken.html index 9f1bb2d..2cf2174 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.image.broken.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.image.broken.html
@@ -19,9 +19,8 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -var img = document.getElementById('broken.png'); -assert_throws_dom("INVALID_STATE_ERR", function() { ctx.createPattern(img, 'repeat'); }); - + var img = document.getElementById('broken.png'); + assert_throws_dom("INVALID_STATE_ERR", function() { ctx.createPattern(img, 'repeat'); }); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.image.incomplete.emptysrc.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.image.incomplete.emptysrc.html index 82b8624..fb05cbb4 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.image.incomplete.emptysrc.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.image.incomplete.emptysrc.html
@@ -19,10 +19,9 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -var img = document.getElementById('red.png'); -img.src = ""; -_assertSame(ctx.createPattern(img, 'repeat'), null, "ctx.createPattern(img, 'repeat')", "null"); - + var img = document.getElementById('red.png'); + img.src = ""; + _assertSame(ctx.createPattern(img, 'repeat'), null, "ctx.createPattern(img, 'repeat')", "null"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.image.incomplete.immediate.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.image.incomplete.immediate.html index 91d92fea..375c1b49 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.image.incomplete.immediate.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.image.incomplete.immediate.html
@@ -19,14 +19,13 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -var img = new Image(); -img.src = '../images/red.png'; -// This triggers the "update the image data" algorithm. -// The image will not go to the "completely available" state -// until a fetch task in the networking task source is processed, -// so the image must not be fully decodable yet: -_assertSame(ctx.createPattern(img, 'repeat'), null, "ctx.createPattern(img, 'repeat')", "null"); - + var img = new Image(); + img.src = '../images/red.png'; + // This triggers the "update the image data" algorithm. + // The image will not go to the "completely available" state + // until a fetch task in the networking task source is processed, + // so the image must not be fully decodable yet: + _assertSame(ctx.createPattern(img, 'repeat'), null, "ctx.createPattern(img, 'repeat')", "null"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.image.incomplete.nosrc.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.image.incomplete.nosrc.html index 69d039994f..d43a0ca9 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.image.incomplete.nosrc.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.image.incomplete.nosrc.html
@@ -19,9 +19,8 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -var img = new Image(); -_assertSame(ctx.createPattern(img, 'repeat'), null, "ctx.createPattern(img, 'repeat')", "null"); - + var img = new Image(); + _assertSame(ctx.createPattern(img, 'repeat'), null, "ctx.createPattern(img, 'repeat')", "null"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.image.incomplete.reload.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.image.incomplete.reload.html index 0acd089..984bd36 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.image.incomplete.reload.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.image.incomplete.reload.html
@@ -19,15 +19,14 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -var img = document.getElementById('yellow.png'); -img.src = '../images/red.png'; -// This triggers the "update the image data" algorithm, -// and resets the image to the "unavailable" state. -// The image will not go to the "completely available" state -// until a fetch task in the networking task source is processed, -// so the image must not be fully decodable yet: -_assertSame(ctx.createPattern(img, 'repeat'), null, "ctx.createPattern(img, 'repeat')", "null"); - + var img = document.getElementById('yellow.png'); + img.src = '../images/red.png'; + // This triggers the "update the image data" algorithm, + // and resets the image to the "unavailable" state. + // The image will not go to the "completely available" state + // until a fetch task in the networking task source is processed, + // so the image must not be fully decodable yet: + _assertSame(ctx.createPattern(img, 'repeat'), null, "ctx.createPattern(img, 'repeat')", "null"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.image.incomplete.removedsrc.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.image.incomplete.removedsrc.html index 6df23c0..20d5543 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.image.incomplete.removedsrc.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.image.incomplete.removedsrc.html
@@ -19,10 +19,9 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -var img = document.getElementById('red.png'); -img.removeAttribute('src'); -_assertSame(ctx.createPattern(img, 'repeat'), null, "ctx.createPattern(img, 'repeat')", "null"); - + var img = document.getElementById('red.png'); + img.removeAttribute('src'); + _assertSame(ctx.createPattern(img, 'repeat'), null, "ctx.createPattern(img, 'repeat')", "null"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.image.nonexistent-but-loading.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.image.nonexistent-but-loading.html index fe2722f..2af0a3ed 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.image.nonexistent-but-loading.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.image.nonexistent-but-loading.html
@@ -19,13 +19,12 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -var img = document.createElement("img"); -img.src = "/images/no-such-image-really.png"; -_assertSame(ctx.createPattern(img, 'repeat'), null, "ctx.createPattern(img, 'repeat')", "null"); -var img = document.createElementNS("http://www.w3.org/2000/svg", "image"); -img.src = "/images/no-such-image-really.png"; -_assertSame(ctx.createPattern(img, 'repeat'), null, "ctx.createPattern(img, 'repeat')", "null"); - + var img = document.createElement("img"); + img.src = "/images/no-such-image-really.png"; + _assertSame(ctx.createPattern(img, 'repeat'), null, "ctx.createPattern(img, 'repeat')", "null"); + var img = document.createElementNS("http://www.w3.org/2000/svg", "image"); + img.src = "/images/no-such-image-really.png"; + _assertSame(ctx.createPattern(img, 'repeat'), null, "ctx.createPattern(img, 'repeat')", "null"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.image.nonexistent.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.image.nonexistent.html index 71a31e3..b365281 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.image.nonexistent.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.image.nonexistent.html
@@ -19,9 +19,8 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -var img = document.getElementById('no-such-image-really.png'); -assert_throws_dom("INVALID_STATE_ERR", function() { ctx.createPattern(img, 'repeat'); }); - + var img = document.getElementById('no-such-image-really.png'); + assert_throws_dom("INVALID_STATE_ERR", function() { ctx.createPattern(img, 'repeat'); }); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.image.nosrc.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.image.nosrc.html index b1bcad5..710749d 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.image.nosrc.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.image.nosrc.html
@@ -19,11 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -var img = document.createElement("img"); -_assertSame(ctx.createPattern(img, 'repeat'), null, "ctx.createPattern(img, 'repeat')", "null"); -var img = document.createElementNS("http://www.w3.org/2000/svg", "image"); -_assertSame(ctx.createPattern(img, 'repeat'), null, "ctx.createPattern(img, 'repeat')", "null"); - + var img = document.createElement("img"); + _assertSame(ctx.createPattern(img, 'repeat'), null, "ctx.createPattern(img, 'repeat')", "null"); + var img = document.createElementNS("http://www.w3.org/2000/svg", "image"); + _assertSame(ctx.createPattern(img, 'repeat'), null, "ctx.createPattern(img, 'repeat')", "null"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.image.null.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.image.null.html index 0a9407ba..8ae002d 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.image.null.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.image.null.html
@@ -19,8 +19,7 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -assert_throws_js(TypeError, function() { ctx.createPattern(null, 'repeat'); }); - + assert_throws_js(TypeError, function() { ctx.createPattern(null, 'repeat'); }); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.image.string.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.image.string.html index c612982e..af32e63b 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.image.string.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.image.string.html
@@ -19,8 +19,7 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -assert_throws_js(TypeError, function() { ctx.createPattern('../images/red.png', 'repeat'); }); - + assert_throws_js(TypeError, function() { ctx.createPattern('../images/red.png', 'repeat'); }); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.image.undefined.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.image.undefined.html index 27fea184..75f50c7a4 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.image.undefined.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.image.undefined.html
@@ -19,8 +19,7 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -assert_throws_js(TypeError, function() { ctx.createPattern(undefined, 'repeat'); }); - + assert_throws_js(TypeError, function() { ctx.createPattern(undefined, 'repeat'); }); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.image.zeroheight.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.image.zeroheight.html index aebf34e9..cd12c2e 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.image.zeroheight.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.image.zeroheight.html
@@ -19,9 +19,8 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -var img = document.getElementById('red-zeroheight.svg'); -_assertSame(ctx.createPattern(img, 'repeat'), null, "ctx.createPattern(img, 'repeat')", "null"); - + var img = document.getElementById('red-zeroheight.svg'); + _assertSame(ctx.createPattern(img, 'repeat'), null, "ctx.createPattern(img, 'repeat')", "null"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.image.zerowidth.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.image.zerowidth.html index 0e74363..053b8ac 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.image.zerowidth.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.image.zerowidth.html
@@ -19,9 +19,8 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -var img = document.getElementById('red-zerowidth.svg'); -_assertSame(ctx.createPattern(img, 'repeat'), null, "ctx.createPattern(img, 'repeat')", "null"); - + var img = document.getElementById('red-zerowidth.svg'); + _assertSame(ctx.createPattern(img, 'repeat'), null, "ctx.createPattern(img, 'repeat')", "null"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.modify.canvas1.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.modify.canvas1.html index 066b30a9..0524351 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.modify.canvas1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.modify.canvas1.html
@@ -19,26 +19,25 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -var canvas2 = document.createElement('canvas'); -canvas2.width = 100; -canvas2.height = 50; -var ctx2 = canvas2.getContext('2d'); -ctx2.fillStyle = '#0f0'; -ctx2.fillRect(0, 0, 100, 50); + var canvas2 = document.createElement('canvas'); + canvas2.width = 100; + canvas2.height = 50; + var ctx2 = canvas2.getContext('2d'); + ctx2.fillStyle = '#0f0'; + ctx2.fillRect(0, 0, 100, 50); -var pattern = ctx.createPattern(canvas2, 'no-repeat'); + var pattern = ctx.createPattern(canvas2, 'no-repeat'); -ctx2.fillStyle = '#f00'; -ctx2.fillRect(0, 0, 100, 50); + ctx2.fillStyle = '#f00'; + ctx2.fillRect(0, 0, 100, 50); -ctx.fillStyle = pattern; -ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = pattern; + ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); - + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.modify.canvas2.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.modify.canvas2.html index 10f9c0a..6e50a576 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.modify.canvas2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.modify.canvas2.html
@@ -19,30 +19,29 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -var canvas2 = document.createElement('canvas'); -canvas2.width = 100; -canvas2.height = 50; -var ctx2 = canvas2.getContext('2d'); -ctx2.fillStyle = '#0f0'; -ctx2.fillRect(0, 0, 100, 50); + var canvas2 = document.createElement('canvas'); + canvas2.width = 100; + canvas2.height = 50; + var ctx2 = canvas2.getContext('2d'); + ctx2.fillStyle = '#0f0'; + ctx2.fillRect(0, 0, 100, 50); -var pattern = ctx.createPattern(canvas2, 'no-repeat'); -ctx.fillStyle = pattern; -ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); + var pattern = ctx.createPattern(canvas2, 'no-repeat'); + ctx.fillStyle = pattern; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); -ctx2.fillStyle = '#f00'; -ctx2.fillRect(0, 0, 100, 50); + ctx2.fillStyle = '#f00'; + ctx2.fillRect(0, 0, 100, 50); -ctx.fillStyle = pattern; -ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = pattern; + ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); - + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.modify.image1.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.modify.image1.html index 5ac850a..94f55c8 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.modify.image1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.modify.image1.html
@@ -19,21 +19,20 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -var img = document.getElementById('green.png'); -var pattern = ctx.createPattern(img, 'no-repeat'); -deferTest(); -img.onload = t.step_func_done(function () -{ - ctx.fillStyle = pattern; - ctx.fillRect(0, 0, 100, 50); + var img = document.getElementById('green.png'); + var pattern = ctx.createPattern(img, 'no-repeat'); + deferTest(); + img.onload = t.step_func_done(function () + { + ctx.fillStyle = pattern; + ctx.fillRect(0, 0, 100, 50); - _assertPixel(canvas, 1,1, 0,255,0,255); - _assertPixel(canvas, 98,1, 0,255,0,255); - _assertPixel(canvas, 1,48, 0,255,0,255); - _assertPixel(canvas, 98,48, 0,255,0,255); -}); -img.src = '/images/red.png'; - + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + }); + img.src = '/images/red.png'; }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.modify.image2.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.modify.image2.html index 1c95aa0..1025d19 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.modify.image2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.modify.image2.html
@@ -19,25 +19,24 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -var img = document.getElementById('green.png'); -var pattern = ctx.createPattern(img, 'no-repeat'); -ctx.fillStyle = pattern; -ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = '#00f'; -ctx.fillRect(0, 0, 100, 50); -deferTest(); -img.onload = t.step_func_done(function () -{ - ctx.fillStyle = pattern; - ctx.fillRect(0, 0, 100, 50); + var img = document.getElementById('green.png'); + var pattern = ctx.createPattern(img, 'no-repeat'); + ctx.fillStyle = pattern; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#00f'; + ctx.fillRect(0, 0, 100, 50); + deferTest(); + img.onload = t.step_func_done(function () + { + ctx.fillStyle = pattern; + ctx.fillRect(0, 0, 100, 50); - _assertPixel(canvas, 1,1, 0,255,0,255); - _assertPixel(canvas, 98,1, 0,255,0,255); - _assertPixel(canvas, 1,48, 0,255,0,255); - _assertPixel(canvas, 98,48, 0,255,0,255); -}); -img.src = '/images/red.png'; - + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + }); + img.src = '/images/red.png'; }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.paint.norepeat.basic.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.paint.norepeat.basic.html index 6b0fb8c..036be9e 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.paint.norepeat.basic.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.paint.norepeat.basic.html
@@ -19,19 +19,18 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); -var img = document.getElementById('green.png'); -var pattern = ctx.createPattern(img, 'no-repeat'); -ctx.fillStyle = pattern; -ctx.fillRect(0, 0, 100, 50); + var img = document.getElementById('green.png'); + var pattern = ctx.createPattern(img, 'no-repeat'); + ctx.fillStyle = pattern; + ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); - + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.paint.norepeat.coord1.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.paint.norepeat.coord1.html index 1b1b9bb..dfe2b858 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.paint.norepeat.coord1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.paint.norepeat.coord1.html
@@ -19,22 +19,21 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 50, 50); -ctx.fillStyle = '#f00'; -ctx.fillRect(50, 0, 50, 50); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 50, 50); + ctx.fillStyle = '#f00'; + ctx.fillRect(50, 0, 50, 50); -var img = document.getElementById('green.png'); -var pattern = ctx.createPattern(img, 'no-repeat'); -ctx.fillStyle = pattern; -ctx.translate(50, 0); -ctx.fillRect(-50, 0, 100, 50); + var img = document.getElementById('green.png'); + var pattern = ctx.createPattern(img, 'no-repeat'); + ctx.fillStyle = pattern; + ctx.translate(50, 0); + ctx.fillRect(-50, 0, 100, 50); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); - + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.paint.norepeat.coord2.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.paint.norepeat.coord2.html index c483e4f..dfd63721 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.paint.norepeat.coord2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.paint.norepeat.coord2.html
@@ -19,23 +19,22 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -var img = document.getElementById('green.png'); -var pattern = ctx.createPattern(img, 'no-repeat'); -ctx.fillStyle = pattern; -ctx.fillRect(0, 0, 50, 50); + var img = document.getElementById('green.png'); + var pattern = ctx.createPattern(img, 'no-repeat'); + ctx.fillStyle = pattern; + ctx.fillRect(0, 0, 50, 50); -ctx.fillStyle = '#f00'; -ctx.fillRect(50, 0, 50, 50); + ctx.fillStyle = '#f00'; + ctx.fillRect(50, 0, 50, 50); -ctx.fillStyle = pattern; -ctx.translate(50, 0); -ctx.fillRect(-50, 0, 100, 50); + ctx.fillStyle = pattern; + ctx.translate(50, 0); + ctx.fillRect(-50, 0, 100, 50); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); - + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.paint.norepeat.coord3.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.paint.norepeat.coord3.html index 733f728..5456a54 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.paint.norepeat.coord3.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.paint.norepeat.coord3.html
@@ -19,23 +19,22 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); -var img = document.getElementById('red.png'); -var pattern = ctx.createPattern(img, 'no-repeat'); -ctx.fillStyle = pattern; -ctx.translate(50, 25); -ctx.fillRect(-50, -25, 100, 50); + var img = document.getElementById('red.png'); + var pattern = ctx.createPattern(img, 'no-repeat'); + ctx.fillStyle = pattern; + ctx.translate(50, 25); + ctx.fillRect(-50, -25, 100, 50); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 50, 25); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 50, 25); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); - + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.paint.norepeat.outside.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.paint.norepeat.outside.html index a727994..4df0cdf 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.paint.norepeat.outside.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.paint.norepeat.outside.html
@@ -19,25 +19,24 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); -var img = document.getElementById('red.png'); -var pattern = ctx.createPattern(img, 'no-repeat'); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); + var img = document.getElementById('red.png'); + var pattern = ctx.createPattern(img, 'no-repeat'); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = pattern; -ctx.fillRect(0, -50, 100, 50); -ctx.fillRect(-100, 0, 100, 50); -ctx.fillRect(0, 50, 100, 50); -ctx.fillRect(100, 0, 100, 50); + ctx.fillStyle = pattern; + ctx.fillRect(0, -50, 100, 50); + ctx.fillRect(-100, 0, 100, 50); + ctx.fillRect(0, 50, 100, 50); + ctx.fillRect(100, 0, 100, 50); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); - + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.paint.orientation.canvas.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.paint.orientation.canvas.html index b45c95b..f0ad70fc 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.paint.orientation.canvas.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.paint.orientation.canvas.html
@@ -19,29 +19,28 @@ var t = async_test("Canvas patterns do not get flipped when painted"); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); -var canvas2 = document.createElement('canvas'); -canvas2.width = 100; -canvas2.height = 50; -var ctx2 = canvas2.getContext('2d'); -ctx2.fillStyle = '#f00'; -ctx2.fillRect(0, 0, 100, 25); -ctx2.fillStyle = '#0f0'; -ctx2.fillRect(0, 25, 100, 25); + var canvas2 = document.createElement('canvas'); + canvas2.width = 100; + canvas2.height = 50; + var ctx2 = canvas2.getContext('2d'); + ctx2.fillStyle = '#f00'; + ctx2.fillRect(0, 0, 100, 25); + ctx2.fillStyle = '#0f0'; + ctx2.fillRect(0, 25, 100, 25); -var pattern = ctx.createPattern(canvas2, 'no-repeat'); -ctx.fillStyle = pattern; -ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 25); + var pattern = ctx.createPattern(canvas2, 'no-repeat'); + ctx.fillStyle = pattern; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 25); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); - + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.paint.orientation.image.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.paint.orientation.image.html index a618223..b45f4ab 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.paint.orientation.image.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.paint.orientation.image.html
@@ -19,25 +19,24 @@ var t = async_test("Image patterns do not get flipped when painted"); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); -var img = document.getElementById('rrgg-256x256.png'); -var pattern = ctx.createPattern(img, 'no-repeat'); -ctx.fillStyle = pattern; -ctx.save(); -ctx.translate(0, -103); -ctx.fillRect(0, 103, 100, 50); -ctx.restore(); + var img = document.getElementById('rrgg-256x256.png'); + var pattern = ctx.createPattern(img, 'no-repeat'); + ctx.fillStyle = pattern; + ctx.save(); + ctx.translate(0, -103); + ctx.fillRect(0, 103, 100, 50); + ctx.restore(); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 25); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 25); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); - + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.paint.repeat.basic.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.paint.repeat.basic.html index 238f155..8999ac4 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.paint.repeat.basic.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.paint.repeat.basic.html
@@ -19,19 +19,18 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); -var img = document.getElementById('green-16x16.png'); -var pattern = ctx.createPattern(img, 'repeat'); -ctx.fillStyle = pattern; -ctx.fillRect(0, 0, 100, 50); + var img = document.getElementById('green-16x16.png'); + var pattern = ctx.createPattern(img, 'repeat'); + ctx.fillStyle = pattern; + ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); - + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.paint.repeat.coord1.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.paint.repeat.coord1.html index cfc270d..8dc6402 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.paint.repeat.coord1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.paint.repeat.coord1.html
@@ -19,20 +19,19 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); -var img = document.getElementById('rgrg-256x256.png'); -var pattern = ctx.createPattern(img, 'repeat'); -ctx.fillStyle = pattern; -ctx.translate(-128, -78); -ctx.fillRect(128, 78, 100, 50); + var img = document.getElementById('rgrg-256x256.png'); + var pattern = ctx.createPattern(img, 'repeat'); + ctx.fillStyle = pattern; + ctx.translate(-128, -78); + ctx.fillRect(128, 78, 100, 50); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); - + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.paint.repeat.coord2.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.paint.repeat.coord2.html index b05feec..9c03d02 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.paint.repeat.coord2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.paint.repeat.coord2.html
@@ -19,16 +19,15 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -var img = document.getElementById('ggrr-256x256.png'); -var pattern = ctx.createPattern(img, 'repeat'); -ctx.fillStyle = pattern; -ctx.fillRect(0, 0, 100, 50); + var img = document.getElementById('ggrr-256x256.png'); + var pattern = ctx.createPattern(img, 'repeat'); + ctx.fillStyle = pattern; + ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); - + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.paint.repeat.coord3.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.paint.repeat.coord3.html index 223d8c0..0dc0a865 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.paint.repeat.coord3.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.paint.repeat.coord3.html
@@ -19,19 +19,18 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -var img = document.getElementById('rgrg-256x256.png'); -var pattern = ctx.createPattern(img, 'repeat'); -ctx.fillStyle = pattern; -ctx.fillRect(0, 0, 100, 50); + var img = document.getElementById('rgrg-256x256.png'); + var pattern = ctx.createPattern(img, 'repeat'); + ctx.fillStyle = pattern; + ctx.fillRect(0, 0, 100, 50); -ctx.translate(-128, -78); -ctx.fillRect(128, 78, 100, 50); + ctx.translate(-128, -78); + ctx.fillRect(128, 78, 100, 50); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); - + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.paint.repeat.outside.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.paint.repeat.outside.html index ca14040..b93919587 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.paint.repeat.outside.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.paint.repeat.outside.html
@@ -19,20 +19,19 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); -var img = document.getElementById('green-16x16.png'); -var pattern = ctx.createPattern(img, 'repeat'); -ctx.fillStyle = pattern; -ctx.translate(50, 25); -ctx.fillRect(-50, -25, 100, 50); + var img = document.getElementById('green-16x16.png'); + var pattern = ctx.createPattern(img, 'repeat'); + ctx.fillStyle = pattern; + ctx.translate(50, 25); + ctx.fillRect(-50, -25, 100, 50); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); - + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.paint.repeatx.basic.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.paint.repeatx.basic.html index 9f2f871..8c77908 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.paint.repeatx.basic.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.paint.repeatx.basic.html
@@ -19,21 +19,20 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 16); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 16); -var img = document.getElementById('green-16x16.png'); -var pattern = ctx.createPattern(img, 'repeat-x'); -ctx.fillStyle = pattern; -ctx.fillRect(0, 0, 100, 50); + var img = document.getElementById('green-16x16.png'); + var pattern = ctx.createPattern(img, 'repeat-x'); + ctx.fillStyle = pattern; + ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); - + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.paint.repeatx.coord1.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.paint.repeatx.coord1.html index 38ad51b..4c7fa9d4 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.paint.repeatx.coord1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.paint.repeatx.coord1.html
@@ -19,25 +19,24 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); -var img = document.getElementById('red-16x16.png'); -var pattern = ctx.createPattern(img, 'repeat-x'); -ctx.fillStyle = pattern; -ctx.translate(0, 16); -ctx.fillRect(0, -16, 100, 50); + var img = document.getElementById('red-16x16.png'); + var pattern = ctx.createPattern(img, 'repeat-x'); + ctx.fillStyle = pattern; + ctx.translate(0, 16); + ctx.fillRect(0, -16, 100, 50); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 16); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 16); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,25, 0,255,0,255); -_assertPixel(canvas, 98,25, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); - + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,25, 0,255,0,255); + _assertPixel(canvas, 98,25, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.paint.repeatx.outside.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.paint.repeatx.outside.html index ba01bf3..26ee85e4 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.paint.repeatx.outside.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.paint.repeatx.outside.html
@@ -19,22 +19,21 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); -var img = document.getElementById('red-16x16.png'); -var pattern = ctx.createPattern(img, 'repeat-x'); -ctx.fillStyle = pattern; -ctx.fillRect(0, 0, 100, 50); + var img = document.getElementById('red-16x16.png'); + var pattern = ctx.createPattern(img, 'repeat-x'); + ctx.fillStyle = pattern; + ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 16); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 16); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); - + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.paint.repeaty.basic.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.paint.repeaty.basic.html index bb07aca..c28ff15 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.paint.repeaty.basic.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.paint.repeaty.basic.html
@@ -19,21 +19,20 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 16, 50); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 16, 50); -var img = document.getElementById('green-16x16.png'); -var pattern = ctx.createPattern(img, 'repeat-y'); -ctx.fillStyle = pattern; -ctx.fillRect(0, 0, 100, 50); + var img = document.getElementById('green-16x16.png'); + var pattern = ctx.createPattern(img, 'repeat-y'); + ctx.fillStyle = pattern; + ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); - + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.paint.repeaty.coord1.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.paint.repeaty.coord1.html index c7ec99e7..7f2bb163 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.paint.repeaty.coord1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.paint.repeaty.coord1.html
@@ -19,25 +19,24 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); -var img = document.getElementById('red-16x16.png'); -var pattern = ctx.createPattern(img, 'repeat-y'); -ctx.fillStyle = pattern; -ctx.translate(48, 0); -ctx.fillRect(-48, 0, 100, 50); + var img = document.getElementById('red-16x16.png'); + var pattern = ctx.createPattern(img, 'repeat-y'); + ctx.fillStyle = pattern; + ctx.translate(48, 0); + ctx.fillRect(-48, 0, 100, 50); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 16, 50); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 16, 50); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 50,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 50,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); - + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 50,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 50,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.paint.repeaty.outside.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.paint.repeaty.outside.html index a3267d9..7be743e 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.paint.repeaty.outside.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.paint.repeaty.outside.html
@@ -19,22 +19,21 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); -var img = document.getElementById('red-16x16.png'); -var pattern = ctx.createPattern(img, 'repeat-y'); -ctx.fillStyle = pattern; -ctx.fillRect(0, 0, 100, 50); + var img = document.getElementById('red-16x16.png'); + var pattern = ctx.createPattern(img, 'repeat-y'); + ctx.fillStyle = pattern; + ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 16, 50); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 16, 50); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); - + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.repeat.case.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.repeat.case.html index ccbef07..d998bbeb 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.repeat.case.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.repeat.case.html
@@ -19,8 +19,7 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -assert_throws_dom("SYNTAX_ERR", function() { ctx.createPattern(canvas, "Repeat"); }); - + assert_throws_dom("SYNTAX_ERR", function() { ctx.createPattern(canvas, "Repeat"); }); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.repeat.empty.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.repeat.empty.html index 48db7da2..2810efe 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.repeat.empty.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.repeat.empty.html
@@ -19,18 +19,17 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -var img = document.getElementById('green-1x1.png'); -var pattern = ctx.createPattern(img, ""); -ctx.fillStyle = pattern; -ctx.fillRect(0, 0, 200, 50); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + var img = document.getElementById('green-1x1.png'); + var pattern = ctx.createPattern(img, ""); + ctx.fillStyle = pattern; + ctx.fillRect(0, 0, 200, 50); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); - + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.repeat.null.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.repeat.null.html index 7a4b264d..0de121a 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.repeat.null.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.repeat.null.html
@@ -19,8 +19,7 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -_assert(ctx.createPattern(canvas, null) != null, "ctx.createPattern(canvas, null) != null"); - + _assert(ctx.createPattern(canvas, null) != null, "ctx.createPattern(canvas, null) != null"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.repeat.nullsuffix.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.repeat.nullsuffix.html index b28bf57..33d601d9 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.repeat.nullsuffix.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.repeat.nullsuffix.html
@@ -19,8 +19,7 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -assert_throws_dom("SYNTAX_ERR", function() { ctx.createPattern(canvas, "repeat\0"); }); - + assert_throws_dom("SYNTAX_ERR", function() { ctx.createPattern(canvas, "repeat\0"); }); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.repeat.undefined.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.repeat.undefined.html index ba40af0..f0a7ae8 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.repeat.undefined.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.repeat.undefined.html
@@ -19,8 +19,7 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -assert_throws_dom("SYNTAX_ERR", function() { ctx.createPattern(canvas, undefined); }); - + assert_throws_dom("SYNTAX_ERR", function() { ctx.createPattern(canvas, undefined); }); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.repeat.unrecognised.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.repeat.unrecognised.html index 5c26a41..cdcc7d6 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.repeat.unrecognised.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.repeat.unrecognised.html
@@ -19,8 +19,7 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -assert_throws_dom("SYNTAX_ERR", function() { ctx.createPattern(canvas, "invalid"); }); - + assert_throws_dom("SYNTAX_ERR", function() { ctx.createPattern(canvas, "invalid"); }); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.repeat.unrecognisednull.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.repeat.unrecognisednull.html index f9b47f5..11c9ec0 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.repeat.unrecognisednull.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.repeat.unrecognisednull.html
@@ -19,8 +19,7 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -assert_throws_dom("SYNTAX_ERR", function() { ctx.createPattern(canvas, "null"); }); - + assert_throws_dom("SYNTAX_ERR", function() { ctx.createPattern(canvas, "null"); }); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.svgimage.nonexistent.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.svgimage.nonexistent.html index 1f25bbc8..8cd3983d 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.svgimage.nonexistent.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.svgimage.nonexistent.html
@@ -19,9 +19,8 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -var img = document.getElementById('no-such-image-really.png'); -assert_throws_dom("INVALID_STATE_ERR", function() { ctx.createPattern(img, 'repeat'); }); - + var img = document.getElementById('no-such-image-really.png'); + assert_throws_dom("INVALID_STATE_ERR", function() { ctx.createPattern(img, 'repeat'); }); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.svgimage.zeroheight.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.svgimage.zeroheight.html index b186113..11c07e3 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.svgimage.zeroheight.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.svgimage.zeroheight.html
@@ -19,9 +19,8 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -var img = document.getElementById('red-zeroheight.svg'); -_assertSame(ctx.createPattern(img, 'repeat'), null, "ctx.createPattern(img, 'repeat')", "null"); - + var img = document.getElementById('red-zeroheight.svg'); + _assertSame(ctx.createPattern(img, 'repeat'), null, "ctx.createPattern(img, 'repeat')", "null"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.svgimage.zerowidth.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.svgimage.zerowidth.html index 2f93d7c..a8b8cb1 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.svgimage.zerowidth.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.svgimage.zerowidth.html
@@ -19,9 +19,8 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -var img = document.getElementById('red-zerowidth.svg'); -_assertSame(ctx.createPattern(img, 'repeat'), null, "ctx.createPattern(img, 'repeat')", "null"); - + var img = document.getElementById('red-zerowidth.svg'); + _assertSame(ctx.createPattern(img, 'repeat'), null, "ctx.createPattern(img, 'repeat')", "null"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.transform.identity.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.transform.identity.html index 775d360..21da305 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.transform.identity.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.transform.identity.html
@@ -19,23 +19,22 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -var canvas2 = document.createElement('canvas'); -canvas2.width = 100; -canvas2.height = 50; -var pattern = ctx.createPattern(canvas2, 'no-repeat'); -pattern.setTransform(new DOMMatrix()); + var canvas2 = document.createElement('canvas'); + canvas2.width = 100; + canvas2.height = 50; + var pattern = ctx.createPattern(canvas2, 'no-repeat'); + pattern.setTransform(new DOMMatrix()); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = '#f00'; -ctx.fillStyle = pattern; -ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#f00'; + ctx.fillStyle = pattern; + ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); - + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.transform.infinity.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.transform.infinity.html index 8650ed9..bfb22aeb 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.transform.infinity.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.transform.infinity.html
@@ -19,23 +19,22 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -var canvas2 = document.createElement('canvas'); -canvas2.width = 100; -canvas2.height = 50; -var pattern = ctx.createPattern(canvas2, 'no-repeat'); -pattern.setTransform({a: Infinity}); + var canvas2 = document.createElement('canvas'); + canvas2.width = 100; + canvas2.height = 50; + var pattern = ctx.createPattern(canvas2, 'no-repeat'); + pattern.setTransform({a: Infinity}); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = '#f00'; -ctx.fillStyle = pattern; -ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#f00'; + ctx.fillStyle = pattern; + ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); - + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.transform.invalid.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.transform.invalid.html index ebd2801..13f0459 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.transform.invalid.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.pattern.transform.invalid.html
@@ -19,12 +19,11 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -var canvas2 = document.createElement('canvas'); -canvas2.width = 100; -canvas2.height = 50; -var pattern = ctx.createPattern(canvas2, 'no-repeat'); -assert_throws_js(TypeError, function() { pattern.setTransform({a: 1, m11: 2}); }); - + var canvas2 = document.createElement('canvas'); + canvas2.width = 100; + canvas2.height = 50; + var pattern = ctx.createPattern(canvas2, 'no-repeat'); + assert_throws_js(TypeError, function() { pattern.setTransform({a: 1, m11: 2}); }); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.strokeStyle.default.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.strokeStyle.default.html index 91542e28..a432d74a4 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.strokeStyle.default.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.strokeStyle.default.html
@@ -19,8 +19,7 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -_assertSame(ctx.strokeStyle, '#000000', "ctx.strokeStyle", "'#000000'"); - + _assertSame(ctx.strokeStyle, '#000000', "ctx.strokeStyle", "'#000000'"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.alpha.1.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.alpha.1.html index 38d3bd74..8888ae6 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.alpha.1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.alpha.1.html
@@ -19,14 +19,13 @@ var t = async_test("Shadow color alpha components are used"); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.shadowColor = 'rgba(255, 0, 0, 0.01)'; -ctx.shadowOffsetY = 50; -ctx.fillRect(0, -50, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.shadowColor = 'rgba(255, 0, 0, 0.01)'; + ctx.shadowOffsetY = 50; + ctx.fillRect(0, -50, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,255,0,255, 4); - + _assertPixelApprox(canvas, 50,25, 0,255,0,255, 4); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.alpha.2.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.alpha.2.html index ae81303..534d3dd 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.alpha.2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.alpha.2.html
@@ -19,14 +19,13 @@ var t = async_test("Shadow color alpha components are used"); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.shadowColor = 'rgba(0, 0, 255, 0.5)'; -ctx.shadowOffsetY = 50; -ctx.fillRect(0, -50, 100, 50); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.shadowColor = 'rgba(0, 0, 255, 0.5)'; + ctx.shadowOffsetY = 50; + ctx.fillRect(0, -50, 100, 50); -_assertPixelApprox(canvas, 50,25, 127,0,127,255, 2); - + _assertPixelApprox(canvas, 50,25, 127,0,127,255, 2); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.alpha.3.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.alpha.3.html index 42cabad..4682282 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.alpha.3.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.alpha.3.html
@@ -19,16 +19,15 @@ var t = async_test("Shadows are affected by globalAlpha"); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = '#f00'; // (work around broken Firefox globalAlpha caching) -ctx.shadowColor = '#00f'; -ctx.shadowOffsetY = 50; -ctx.globalAlpha = 0.5; -ctx.fillRect(0, -50, 100, 50); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#f00'; // (work around broken Firefox globalAlpha caching) + ctx.shadowColor = '#00f'; + ctx.shadowOffsetY = 50; + ctx.globalAlpha = 0.5; + ctx.fillRect(0, -50, 100, 50); -_assertPixelApprox(canvas, 50,25, 127,0,127,255, 2); - + _assertPixelApprox(canvas, 50,25, 127,0,127,255, 2); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.alpha.4.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.alpha.4.html index 96af9df..2932c9d 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.alpha.4.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.alpha.4.html
@@ -19,16 +19,15 @@ var t = async_test("Shadows with alpha components are correctly affected by globalAlpha"); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = '#f00'; // (work around broken Firefox globalAlpha caching) -ctx.shadowColor = 'rgba(0, 0, 255, 0.707)'; -ctx.shadowOffsetY = 50; -ctx.globalAlpha = 0.707; -ctx.fillRect(0, -50, 100, 50); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#f00'; // (work around broken Firefox globalAlpha caching) + ctx.shadowColor = 'rgba(0, 0, 255, 0.707)'; + ctx.shadowOffsetY = 50; + ctx.globalAlpha = 0.707; + ctx.fillRect(0, -50, 100, 50); -_assertPixelApprox(canvas, 50,25, 127,0,127,255, 2); - + _assertPixelApprox(canvas, 50,25, 127,0,127,255, 2); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.alpha.5.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.alpha.5.html index 2f0b6838..ffa9ed8 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.alpha.5.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.alpha.5.html
@@ -19,15 +19,14 @@ var t = async_test("Shadows of shapes with alpha components are drawn correctly"); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = 'rgba(64, 0, 0, 0.5)'; -ctx.shadowColor = '#00f'; -ctx.shadowOffsetY = 50; -ctx.fillRect(0, -50, 100, 50); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = 'rgba(64, 0, 0, 0.5)'; + ctx.shadowColor = '#00f'; + ctx.shadowOffsetY = 50; + ctx.fillRect(0, -50, 100, 50); -_assertPixelApprox(canvas, 50,25, 127,0,127,255, 2); - + _assertPixelApprox(canvas, 50,25, 127,0,127,255, 2); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.attributes.shadowBlur.initial.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.attributes.shadowBlur.initial.html index 4d1d71c..b688156 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.attributes.shadowBlur.initial.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.attributes.shadowBlur.initial.html
@@ -19,8 +19,7 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -_assertSame(ctx.shadowBlur, 0, "ctx.shadowBlur", "0"); - + _assertSame(ctx.shadowBlur, 0, "ctx.shadowBlur", "0"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.attributes.shadowBlur.invalid.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.attributes.shadowBlur.invalid.html index cbd68c9..68f5dd4 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.attributes.shadowBlur.invalid.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.attributes.shadowBlur.invalid.html
@@ -19,34 +19,33 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -ctx.shadowBlur = 1; -ctx.shadowBlur = -2; -_assertSame(ctx.shadowBlur, 1, "ctx.shadowBlur", "1"); + ctx.shadowBlur = 1; + ctx.shadowBlur = -2; + _assertSame(ctx.shadowBlur, 1, "ctx.shadowBlur", "1"); -ctx.shadowBlur = 1; -ctx.shadowBlur = Infinity; -_assertSame(ctx.shadowBlur, 1, "ctx.shadowBlur", "1"); + ctx.shadowBlur = 1; + ctx.shadowBlur = Infinity; + _assertSame(ctx.shadowBlur, 1, "ctx.shadowBlur", "1"); -ctx.shadowBlur = 1; -ctx.shadowBlur = -Infinity; -_assertSame(ctx.shadowBlur, 1, "ctx.shadowBlur", "1"); + ctx.shadowBlur = 1; + ctx.shadowBlur = -Infinity; + _assertSame(ctx.shadowBlur, 1, "ctx.shadowBlur", "1"); -ctx.shadowBlur = 1; -ctx.shadowBlur = NaN; -_assertSame(ctx.shadowBlur, 1, "ctx.shadowBlur", "1"); + ctx.shadowBlur = 1; + ctx.shadowBlur = NaN; + _assertSame(ctx.shadowBlur, 1, "ctx.shadowBlur", "1"); -ctx.shadowBlur = 1; -ctx.shadowBlur = 'string'; -_assertSame(ctx.shadowBlur, 1, "ctx.shadowBlur", "1"); + ctx.shadowBlur = 1; + ctx.shadowBlur = 'string'; + _assertSame(ctx.shadowBlur, 1, "ctx.shadowBlur", "1"); -ctx.shadowBlur = 1; -ctx.shadowBlur = true; -_assertSame(ctx.shadowBlur, 1, "ctx.shadowBlur", "1"); + ctx.shadowBlur = 1; + ctx.shadowBlur = true; + _assertSame(ctx.shadowBlur, 1, "ctx.shadowBlur", "1"); -ctx.shadowBlur = 1; -ctx.shadowBlur = false; -_assertSame(ctx.shadowBlur, 0, "ctx.shadowBlur", "0"); - + ctx.shadowBlur = 1; + ctx.shadowBlur = false; + _assertSame(ctx.shadowBlur, 0, "ctx.shadowBlur", "0"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.attributes.shadowBlur.valid.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.attributes.shadowBlur.valid.html index 1e6a1a80..51063a6 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.attributes.shadowBlur.valid.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.attributes.shadowBlur.valid.html
@@ -19,18 +19,17 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -ctx.shadowBlur = 1; -_assertSame(ctx.shadowBlur, 1, "ctx.shadowBlur", "1"); + ctx.shadowBlur = 1; + _assertSame(ctx.shadowBlur, 1, "ctx.shadowBlur", "1"); -ctx.shadowBlur = 0.5; -_assertSame(ctx.shadowBlur, 0.5, "ctx.shadowBlur", "0.5"); + ctx.shadowBlur = 0.5; + _assertSame(ctx.shadowBlur, 0.5, "ctx.shadowBlur", "0.5"); -ctx.shadowBlur = 1e6; -_assertSame(ctx.shadowBlur, 1e6, "ctx.shadowBlur", "1e6"); + ctx.shadowBlur = 1e6; + _assertSame(ctx.shadowBlur, 1e6, "ctx.shadowBlur", "1e6"); -ctx.shadowBlur = 0; -_assertSame(ctx.shadowBlur, 0, "ctx.shadowBlur", "0"); - + ctx.shadowBlur = 0; + _assertSame(ctx.shadowBlur, 0, "ctx.shadowBlur", "0"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.attributes.shadowColor.initial.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.attributes.shadowColor.initial.html index 5e02f3d1..f4d0d33 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.attributes.shadowColor.initial.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.attributes.shadowColor.initial.html
@@ -19,8 +19,7 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -_assertSame(ctx.shadowColor, 'rgba(0, 0, 0, 0)', "ctx.shadowColor", "'rgba(0, 0, 0, 0)'"); - + _assertSame(ctx.shadowColor, 'rgba(0, 0, 0, 0)', "ctx.shadowColor", "'rgba(0, 0, 0, 0)'"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.attributes.shadowColor.invalid.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.attributes.shadowColor.invalid.html index 68b82d842..73f835dd 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.attributes.shadowColor.invalid.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.attributes.shadowColor.invalid.html
@@ -19,22 +19,21 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -ctx.shadowColor = '#00ff00'; -ctx.shadowColor = 'bogus'; -_assertSame(ctx.shadowColor, '#00ff00', "ctx.shadowColor", "'#00ff00'"); + ctx.shadowColor = '#00ff00'; + ctx.shadowColor = 'bogus'; + _assertSame(ctx.shadowColor, '#00ff00', "ctx.shadowColor", "'#00ff00'"); -ctx.shadowColor = '#00ff00'; -ctx.shadowColor = 'red bogus'; -_assertSame(ctx.shadowColor, '#00ff00', "ctx.shadowColor", "'#00ff00'"); + ctx.shadowColor = '#00ff00'; + ctx.shadowColor = 'red bogus'; + _assertSame(ctx.shadowColor, '#00ff00', "ctx.shadowColor", "'#00ff00'"); -ctx.shadowColor = '#00ff00'; -ctx.shadowColor = ctx; -_assertSame(ctx.shadowColor, '#00ff00', "ctx.shadowColor", "'#00ff00'"); + ctx.shadowColor = '#00ff00'; + ctx.shadowColor = ctx; + _assertSame(ctx.shadowColor, '#00ff00', "ctx.shadowColor", "'#00ff00'"); -ctx.shadowColor = '#00ff00'; -ctx.shadowColor = undefined; -_assertSame(ctx.shadowColor, '#00ff00', "ctx.shadowColor", "'#00ff00'"); - + ctx.shadowColor = '#00ff00'; + ctx.shadowColor = undefined; + _assertSame(ctx.shadowColor, '#00ff00', "ctx.shadowColor", "'#00ff00'"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.attributes.shadowColor.valid.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.attributes.shadowColor.valid.html index 84728f0..bc86c3d 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.attributes.shadowColor.valid.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.attributes.shadowColor.valid.html
@@ -19,12 +19,11 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -ctx.shadowColor = 'lime'; -_assertSame(ctx.shadowColor, '#00ff00', "ctx.shadowColor", "'#00ff00'"); + ctx.shadowColor = 'lime'; + _assertSame(ctx.shadowColor, '#00ff00', "ctx.shadowColor", "'#00ff00'"); -ctx.shadowColor = 'RGBA(0,255, 0,0)'; -_assertSame(ctx.shadowColor, 'rgba(0, 255, 0, 0)', "ctx.shadowColor", "'rgba(0, 255, 0, 0)'"); - + ctx.shadowColor = 'RGBA(0,255, 0,0)'; + _assertSame(ctx.shadowColor, 'rgba(0, 255, 0, 0)', "ctx.shadowColor", "'rgba(0, 255, 0, 0)'"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.attributes.shadowOffset.initial.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.attributes.shadowOffset.initial.html index f15e383..056dd160 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.attributes.shadowOffset.initial.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.attributes.shadowOffset.initial.html
@@ -19,9 +19,8 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -_assertSame(ctx.shadowOffsetX, 0, "ctx.shadowOffsetX", "0"); -_assertSame(ctx.shadowOffsetY, 0, "ctx.shadowOffsetY", "0"); - + _assertSame(ctx.shadowOffsetX, 0, "ctx.shadowOffsetX", "0"); + _assertSame(ctx.shadowOffsetY, 0, "ctx.shadowOffsetY", "0"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.attributes.shadowOffset.invalid.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.attributes.shadowOffset.invalid.html index c9872cb..1567edb 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.attributes.shadowOffset.invalid.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.attributes.shadowOffset.invalid.html
@@ -19,48 +19,47 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -ctx.shadowOffsetX = 1; -ctx.shadowOffsetY = 2; -ctx.shadowOffsetX = Infinity; -ctx.shadowOffsetY = Infinity; -_assertSame(ctx.shadowOffsetX, 1, "ctx.shadowOffsetX", "1"); -_assertSame(ctx.shadowOffsetY, 2, "ctx.shadowOffsetY", "2"); + ctx.shadowOffsetX = 1; + ctx.shadowOffsetY = 2; + ctx.shadowOffsetX = Infinity; + ctx.shadowOffsetY = Infinity; + _assertSame(ctx.shadowOffsetX, 1, "ctx.shadowOffsetX", "1"); + _assertSame(ctx.shadowOffsetY, 2, "ctx.shadowOffsetY", "2"); -ctx.shadowOffsetX = 1; -ctx.shadowOffsetY = 2; -ctx.shadowOffsetX = -Infinity; -ctx.shadowOffsetY = -Infinity; -_assertSame(ctx.shadowOffsetX, 1, "ctx.shadowOffsetX", "1"); -_assertSame(ctx.shadowOffsetY, 2, "ctx.shadowOffsetY", "2"); + ctx.shadowOffsetX = 1; + ctx.shadowOffsetY = 2; + ctx.shadowOffsetX = -Infinity; + ctx.shadowOffsetY = -Infinity; + _assertSame(ctx.shadowOffsetX, 1, "ctx.shadowOffsetX", "1"); + _assertSame(ctx.shadowOffsetY, 2, "ctx.shadowOffsetY", "2"); -ctx.shadowOffsetX = 1; -ctx.shadowOffsetY = 2; -ctx.shadowOffsetX = NaN; -ctx.shadowOffsetY = NaN; -_assertSame(ctx.shadowOffsetX, 1, "ctx.shadowOffsetX", "1"); -_assertSame(ctx.shadowOffsetY, 2, "ctx.shadowOffsetY", "2"); + ctx.shadowOffsetX = 1; + ctx.shadowOffsetY = 2; + ctx.shadowOffsetX = NaN; + ctx.shadowOffsetY = NaN; + _assertSame(ctx.shadowOffsetX, 1, "ctx.shadowOffsetX", "1"); + _assertSame(ctx.shadowOffsetY, 2, "ctx.shadowOffsetY", "2"); -ctx.shadowOffsetX = 1; -ctx.shadowOffsetY = 2; -ctx.shadowOffsetX = 'string'; -ctx.shadowOffsetY = 'string'; -_assertSame(ctx.shadowOffsetX, 1, "ctx.shadowOffsetX", "1"); -_assertSame(ctx.shadowOffsetY, 2, "ctx.shadowOffsetY", "2"); + ctx.shadowOffsetX = 1; + ctx.shadowOffsetY = 2; + ctx.shadowOffsetX = 'string'; + ctx.shadowOffsetY = 'string'; + _assertSame(ctx.shadowOffsetX, 1, "ctx.shadowOffsetX", "1"); + _assertSame(ctx.shadowOffsetY, 2, "ctx.shadowOffsetY", "2"); -ctx.shadowOffsetX = 1; -ctx.shadowOffsetY = 2; -ctx.shadowOffsetX = true; -ctx.shadowOffsetY = true; -_assertSame(ctx.shadowOffsetX, 1, "ctx.shadowOffsetX", "1"); -_assertSame(ctx.shadowOffsetY, 1, "ctx.shadowOffsetY", "1"); + ctx.shadowOffsetX = 1; + ctx.shadowOffsetY = 2; + ctx.shadowOffsetX = true; + ctx.shadowOffsetY = true; + _assertSame(ctx.shadowOffsetX, 1, "ctx.shadowOffsetX", "1"); + _assertSame(ctx.shadowOffsetY, 1, "ctx.shadowOffsetY", "1"); -ctx.shadowOffsetX = 1; -ctx.shadowOffsetY = 2; -ctx.shadowOffsetX = false; -ctx.shadowOffsetY = false; -_assertSame(ctx.shadowOffsetX, 0, "ctx.shadowOffsetX", "0"); -_assertSame(ctx.shadowOffsetY, 0, "ctx.shadowOffsetY", "0"); - + ctx.shadowOffsetX = 1; + ctx.shadowOffsetY = 2; + ctx.shadowOffsetX = false; + ctx.shadowOffsetY = false; + _assertSame(ctx.shadowOffsetX, 0, "ctx.shadowOffsetX", "0"); + _assertSame(ctx.shadowOffsetY, 0, "ctx.shadowOffsetY", "0"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.attributes.shadowOffset.valid.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.attributes.shadowOffset.valid.html index dc89870e..04fe18c3 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.attributes.shadowOffset.valid.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.attributes.shadowOffset.valid.html
@@ -19,31 +19,30 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -ctx.shadowOffsetX = 1; -ctx.shadowOffsetY = 2; -_assertSame(ctx.shadowOffsetX, 1, "ctx.shadowOffsetX", "1"); -_assertSame(ctx.shadowOffsetY, 2, "ctx.shadowOffsetY", "2"); + ctx.shadowOffsetX = 1; + ctx.shadowOffsetY = 2; + _assertSame(ctx.shadowOffsetX, 1, "ctx.shadowOffsetX", "1"); + _assertSame(ctx.shadowOffsetY, 2, "ctx.shadowOffsetY", "2"); -ctx.shadowOffsetX = 0.5; -ctx.shadowOffsetY = 0.25; -_assertSame(ctx.shadowOffsetX, 0.5, "ctx.shadowOffsetX", "0.5"); -_assertSame(ctx.shadowOffsetY, 0.25, "ctx.shadowOffsetY", "0.25"); + ctx.shadowOffsetX = 0.5; + ctx.shadowOffsetY = 0.25; + _assertSame(ctx.shadowOffsetX, 0.5, "ctx.shadowOffsetX", "0.5"); + _assertSame(ctx.shadowOffsetY, 0.25, "ctx.shadowOffsetY", "0.25"); -ctx.shadowOffsetX = -0.5; -ctx.shadowOffsetY = -0.25; -_assertSame(ctx.shadowOffsetX, -0.5, "ctx.shadowOffsetX", "-0.5"); -_assertSame(ctx.shadowOffsetY, -0.25, "ctx.shadowOffsetY", "-0.25"); + ctx.shadowOffsetX = -0.5; + ctx.shadowOffsetY = -0.25; + _assertSame(ctx.shadowOffsetX, -0.5, "ctx.shadowOffsetX", "-0.5"); + _assertSame(ctx.shadowOffsetY, -0.25, "ctx.shadowOffsetY", "-0.25"); -ctx.shadowOffsetX = 0; -ctx.shadowOffsetY = 0; -_assertSame(ctx.shadowOffsetX, 0, "ctx.shadowOffsetX", "0"); -_assertSame(ctx.shadowOffsetY, 0, "ctx.shadowOffsetY", "0"); + ctx.shadowOffsetX = 0; + ctx.shadowOffsetY = 0; + _assertSame(ctx.shadowOffsetX, 0, "ctx.shadowOffsetX", "0"); + _assertSame(ctx.shadowOffsetY, 0, "ctx.shadowOffsetY", "0"); -ctx.shadowOffsetX = 1e6; -ctx.shadowOffsetY = 1e6; -_assertSame(ctx.shadowOffsetX, 1e6, "ctx.shadowOffsetX", "1e6"); -_assertSame(ctx.shadowOffsetY, 1e6, "ctx.shadowOffsetY", "1e6"); - + ctx.shadowOffsetX = 1e6; + ctx.shadowOffsetY = 1e6; + _assertSame(ctx.shadowOffsetX, 1e6, "ctx.shadowOffsetX", "1e6"); + _assertSame(ctx.shadowOffsetY, 1e6, "ctx.shadowOffsetY", "1e6"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.blur.high-manual.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.blur.high-manual.html index f5acaa9..aae0a16 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.blur.high-manual.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.blur.high-manual.html
@@ -19,13 +19,12 @@ var t = async_test("Shadows look correct for large blurs"); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#ff0'; -ctx.fillRect(0, 0, 100, 50); -ctx.shadowColor = '#00f'; -ctx.shadowOffsetY = 0; -ctx.shadowBlur = 100; -ctx.fillRect(-200, -200, 200, 400); - + ctx.fillStyle = '#ff0'; + ctx.fillRect(0, 0, 100, 50); + ctx.shadowColor = '#00f'; + ctx.shadowOffsetY = 0; + ctx.shadowBlur = 100; + ctx.fillRect(-200, -200, 200, 400); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.blur.low-manual.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.blur.low-manual.html index ba594ce..9674d6f0 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.blur.low-manual.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.blur.low-manual.html
@@ -19,20 +19,19 @@ var t = async_test("Shadows look correct for small blurs"); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#ff0'; -ctx.fillRect(0, 0, 100, 50); -ctx.shadowColor = '#00f'; -ctx.shadowOffsetY = 25; -for (var x = 0; x < 100; ++x) { - ctx.save(); - ctx.beginPath(); - ctx.rect(x, 0, 1, 50); - ctx.clip(); - ctx.shadowBlur = x; - ctx.fillRect(-200, -200, 500, 200); - ctx.restore(); -} - + ctx.fillStyle = '#ff0'; + ctx.fillRect(0, 0, 100, 50); + ctx.shadowColor = '#00f'; + ctx.shadowOffsetY = 25; + for (var x = 0; x < 100; ++x) { + ctx.save(); + ctx.beginPath(); + ctx.rect(x, 0, 1, 50); + ctx.clip(); + ctx.shadowBlur = x; + ctx.fillRect(-200, -200, 500, 200); + ctx.restore(); + } }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.canvas.alpha.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.canvas.alpha.html index 5ad64e1..222199e6 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.canvas.alpha.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.canvas.alpha.html
@@ -19,21 +19,20 @@ var t = async_test("Shadows are drawn correctly for partially-transparent canvases"); _addTest(function(canvas, ctx) { -var canvas2 = document.createElement('canvas'); -canvas2.width = 100; -canvas2.height = 50; -var ctx2 = canvas2.getContext('2d'); -ctx2.fillStyle = 'rgba(255, 0, 0, 0.5)'; -ctx2.fillRect(0, 0, 100, 50); + var canvas2 = document.createElement('canvas'); + canvas2.width = 100; + canvas2.height = 50; + var ctx2 = canvas2.getContext('2d'); + ctx2.fillStyle = 'rgba(255, 0, 0, 0.5)'; + ctx2.fillRect(0, 0, 100, 50); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.shadowOffsetY = 50; -ctx.shadowColor = '#00f'; -ctx.drawImage(canvas2, 0, -50); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.shadowOffsetY = 50; + ctx.shadowColor = '#00f'; + ctx.drawImage(canvas2, 0, -50); -_assertPixelApprox(canvas, 50,25, 127,0,127,255, 2); - + _assertPixelApprox(canvas, 50,25, 127,0,127,255, 2); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.canvas.basic.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.canvas.basic.html index fd70884..e752c8f 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.canvas.basic.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.canvas.basic.html
@@ -19,21 +19,20 @@ var t = async_test("Shadows are drawn for canvases"); _addTest(function(canvas, ctx) { -var canvas2 = document.createElement('canvas'); -canvas2.width = 100; -canvas2.height = 50; -var ctx2 = canvas2.getContext('2d'); -ctx2.fillStyle = '#f00'; -ctx2.fillRect(0, 0, 100, 50); + var canvas2 = document.createElement('canvas'); + canvas2.width = 100; + canvas2.height = 50; + var ctx2 = canvas2.getContext('2d'); + ctx2.fillStyle = '#f00'; + ctx2.fillRect(0, 0, 100, 50); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.shadowColor = '#0f0'; -ctx.shadowOffsetY = 50; -ctx.drawImage(canvas2, 0, -50); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.shadowColor = '#0f0'; + ctx.shadowOffsetY = 50; + ctx.drawImage(canvas2, 0, -50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.canvas.transparent.1.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.canvas.transparent.1.html index f18b7d71..7d159328 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.canvas.transparent.1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.canvas.transparent.1.html
@@ -19,19 +19,18 @@ var t = async_test("Shadows are not drawn for transparent canvases"); _addTest(function(canvas, ctx) { -var canvas2 = document.createElement('canvas'); -canvas2.width = 100; -canvas2.height = 50; -var ctx2 = canvas2.getContext('2d'); + var canvas2 = document.createElement('canvas'); + canvas2.width = 100; + canvas2.height = 50; + var ctx2 = canvas2.getContext('2d'); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.shadowColor = '#f00'; -ctx.shadowOffsetY = 50; -ctx.drawImage(canvas2, 0, -50); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.shadowColor = '#f00'; + ctx.shadowOffsetY = 50; + ctx.drawImage(canvas2, 0, -50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.canvas.transparent.2.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.canvas.transparent.2.html index c959054..4326d42 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.canvas.transparent.2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.canvas.transparent.2.html
@@ -19,27 +19,26 @@ var t = async_test("Shadows are not drawn for transparent parts of canvases"); _addTest(function(canvas, ctx) { -var canvas2 = document.createElement('canvas'); -canvas2.width = 100; -canvas2.height = 50; -var ctx2 = canvas2.getContext('2d'); -ctx2.fillStyle = '#f00'; -ctx2.fillRect(0, 0, 50, 50); + var canvas2 = document.createElement('canvas'); + canvas2.width = 100; + canvas2.height = 50; + var ctx2 = canvas2.getContext('2d'); + ctx2.fillStyle = '#f00'; + ctx2.fillRect(0, 0, 50, 50); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 50, 50); -ctx.fillStyle = '#f00'; -ctx.fillRect(50, 0, 50, 50); -ctx.shadowOffsetY = 50; -ctx.shadowColor = '#0f0'; -ctx.drawImage(canvas2, 50, -50); -ctx.shadowColor = '#f00'; -ctx.drawImage(canvas2, -50, -50); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 50, 50); + ctx.fillStyle = '#f00'; + ctx.fillRect(50, 0, 50, 50); + ctx.shadowOffsetY = 50; + ctx.shadowColor = '#0f0'; + ctx.drawImage(canvas2, 50, -50); + ctx.shadowColor = '#f00'; + ctx.drawImage(canvas2, -50, -50); -_assertPixel(canvas, 25,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 75,25, 0,255,0,255); - + _assertPixel(canvas, 25,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 75,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.clip.1.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.clip.1.html index f952096..6caff8b 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.clip.1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.clip.1.html
@@ -19,23 +19,22 @@ var t = async_test("Shadows of clipped shapes are still drawn within the clipping region"); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 50, 50); -ctx.fillStyle = '#f00'; -ctx.fillRect(50, 0, 50, 50); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 50, 50); + ctx.fillStyle = '#f00'; + ctx.fillRect(50, 0, 50, 50); -ctx.save(); -ctx.beginPath(); -ctx.rect(50, 0, 50, 50); -ctx.clip(); -ctx.shadowColor = '#0f0'; -ctx.shadowOffsetX = 50; -ctx.fillRect(0, 0, 50, 50); -ctx.restore(); + ctx.save(); + ctx.beginPath(); + ctx.rect(50, 0, 50, 50); + ctx.clip(); + ctx.shadowColor = '#0f0'; + ctx.shadowOffsetX = 50; + ctx.fillRect(0, 0, 50, 50); + ctx.restore(); -_assertPixel(canvas, 25,25, 0,255,0,255); -_assertPixel(canvas, 75,25, 0,255,0,255); - + _assertPixel(canvas, 25,25, 0,255,0,255); + _assertPixel(canvas, 75,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.clip.2.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.clip.2.html index 22208c5..a5b05237 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.clip.2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.clip.2.html
@@ -19,23 +19,22 @@ var t = async_test("Shadows are not drawn outside the clipping region"); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 50, 50); -ctx.fillStyle = '#0f0'; -ctx.fillRect(50, 0, 50, 50); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 50, 50); + ctx.fillStyle = '#0f0'; + ctx.fillRect(50, 0, 50, 50); -ctx.save(); -ctx.beginPath(); -ctx.rect(0, 0, 50, 50); -ctx.clip(); -ctx.shadowColor = '#f00'; -ctx.shadowOffsetX = 50; -ctx.fillRect(0, 0, 50, 50); -ctx.restore(); + ctx.save(); + ctx.beginPath(); + ctx.rect(0, 0, 50, 50); + ctx.clip(); + ctx.shadowColor = '#f00'; + ctx.shadowOffsetX = 50; + ctx.fillRect(0, 0, 50, 50); + ctx.restore(); -_assertPixel(canvas, 25,25, 0,255,0,255); -_assertPixel(canvas, 75,25, 0,255,0,255); - + _assertPixel(canvas, 25,25, 0,255,0,255); + _assertPixel(canvas, 75,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.clip.3.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.clip.3.html index 5af9b012..b765263 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.clip.3.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.clip.3.html
@@ -19,24 +19,23 @@ var t = async_test("Shadows of clipped shapes are still drawn within the clipping region"); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 50, 50); -ctx.fillStyle = '#0f0'; -ctx.fillRect(50, 0, 50, 50); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 50, 50); + ctx.fillStyle = '#0f0'; + ctx.fillRect(50, 0, 50, 50); -ctx.save(); -ctx.beginPath(); -ctx.rect(0, 0, 50, 50); -ctx.clip(); -ctx.fillStyle = '#f00'; -ctx.shadowColor = '#0f0'; -ctx.shadowOffsetX = 50; -ctx.fillRect(-50, 0, 50, 50); -ctx.restore(); + ctx.save(); + ctx.beginPath(); + ctx.rect(0, 0, 50, 50); + ctx.clip(); + ctx.fillStyle = '#f00'; + ctx.shadowColor = '#0f0'; + ctx.shadowOffsetX = 50; + ctx.fillRect(-50, 0, 50, 50); + ctx.restore(); -_assertPixel(canvas, 25,25, 0,255,0,255); -_assertPixel(canvas, 75,25, 0,255,0,255); - + _assertPixel(canvas, 25,25, 0,255,0,255); + _assertPixel(canvas, 75,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.composite.1.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.composite.1.html index 28a82e6..d64ecb49 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.composite.1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.composite.1.html
@@ -19,16 +19,15 @@ var t = async_test("Shadows are drawn using globalCompositeOperation"); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'xor'; -ctx.shadowColor = '#f00'; -ctx.shadowOffsetX = 100; -ctx.fillStyle = '#0f0'; -ctx.fillRect(-100, 0, 200, 50); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'xor'; + ctx.shadowColor = '#f00'; + ctx.shadowOffsetX = 100; + ctx.fillStyle = '#0f0'; + ctx.fillRect(-100, 0, 200, 50); -_assertPixelApprox(canvas, 50,25, 0,255,0,255, 2); - + _assertPixelApprox(canvas, 50,25, 0,255,0,255, 2); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.composite.2.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.composite.2.html index aeb6dc1..abc6b98 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.composite.2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.composite.2.html
@@ -19,16 +19,15 @@ var t = async_test("Shadows are drawn using globalCompositeOperation"); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'xor'; -ctx.shadowColor = '#f00'; -ctx.shadowBlur = 1; -ctx.fillStyle = '#0f0'; -ctx.fillRect(-10, -10, 120, 70); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'xor'; + ctx.shadowColor = '#f00'; + ctx.shadowBlur = 1; + ctx.fillStyle = '#0f0'; + ctx.fillRect(-10, -10, 120, 70); -_assertPixelApprox(canvas, 50,25, 0,255,0,255, 2); - + _assertPixelApprox(canvas, 50,25, 0,255,0,255, 2); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.composite.3.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.composite.3.html index 9a0c02e11..45eebd9e 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.composite.3.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.composite.3.html
@@ -19,17 +19,16 @@ var t = async_test("Areas outside shadows are drawn correctly with destination-out"); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'destination-out'; -ctx.shadowColor = '#f00'; -ctx.shadowBlur = 10; -ctx.fillStyle = '#f00'; -ctx.fillRect(200, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-out'; + ctx.shadowColor = '#f00'; + ctx.shadowBlur = 10; + ctx.fillStyle = '#f00'; + ctx.fillRect(200, 0, 100, 50); -_assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); -_assertPixelApprox(canvas, 50,25, 0,255,0,255, 2); - + _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 50,25, 0,255,0,255, 2); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.enable.blur.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.enable.blur.html index ffe70f1c..7efa459c 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.enable.blur.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.enable.blur.html
@@ -19,13 +19,12 @@ var t = async_test("Shadows are drawn if shadowBlur is set"); _addTest(function(canvas, ctx) { -ctx.globalCompositeOperation = 'destination-atop'; -ctx.shadowColor = '#0f0'; -ctx.shadowBlur = 0.1; -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.globalCompositeOperation = 'destination-atop'; + ctx.shadowColor = '#0f0'; + ctx.shadowBlur = 0.1; + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.enable.off.1.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.enable.off.1.html index e3adc9ae..953ea04 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.enable.off.1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.enable.off.1.html
@@ -19,11 +19,10 @@ var t = async_test("Shadows are not drawn when only shadowColor is set"); _addTest(function(canvas, ctx) { -ctx.shadowColor = '#f00'; -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.shadowColor = '#f00'; + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.enable.off.2.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.enable.off.2.html index 8dd3fc3..2a8cf730 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.enable.off.2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.enable.off.2.html
@@ -19,12 +19,11 @@ var t = async_test("Shadows are not drawn when only shadowColor is set"); _addTest(function(canvas, ctx) { -ctx.globalCompositeOperation = 'destination-atop'; -ctx.shadowColor = '#f00'; -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.globalCompositeOperation = 'destination-atop'; + ctx.shadowColor = '#f00'; + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.enable.x.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.enable.x.html index 54fa86e..6eae985 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.enable.x.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.enable.x.html
@@ -19,13 +19,12 @@ var t = async_test("Shadows are drawn if shadowOffsetX is set"); _addTest(function(canvas, ctx) { -ctx.globalCompositeOperation = 'destination-atop'; -ctx.shadowColor = '#0f0'; -ctx.shadowOffsetX = 0.1; -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.globalCompositeOperation = 'destination-atop'; + ctx.shadowColor = '#0f0'; + ctx.shadowOffsetX = 0.1; + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.enable.y.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.enable.y.html index 7295d57..2025bab 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.enable.y.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.enable.y.html
@@ -19,13 +19,12 @@ var t = async_test("Shadows are drawn if shadowOffsetY is set"); _addTest(function(canvas, ctx) { -ctx.globalCompositeOperation = 'destination-atop'; -ctx.shadowColor = '#0f0'; -ctx.shadowOffsetY = 0.1; -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.globalCompositeOperation = 'destination-atop'; + ctx.shadowColor = '#0f0'; + ctx.shadowOffsetY = 0.1; + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.gradient.alpha.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.gradient.alpha.html index 7ae83eb..65f4fda 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.gradient.alpha.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.gradient.alpha.html
@@ -19,18 +19,17 @@ var t = async_test("Shadows are drawn correctly for partially-transparent gradient fills"); _addTest(function(canvas, ctx) { -var gradient = ctx.createLinearGradient(0, 0, 100, 0); -gradient.addColorStop(0, 'rgba(255,0,0,0.5)'); -gradient.addColorStop(1, 'rgba(255,0,0,0.5)'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.shadowOffsetY = 50; -ctx.shadowColor = '#00f'; -ctx.fillStyle = gradient; -ctx.fillRect(0, -50, 100, 50); + var gradient = ctx.createLinearGradient(0, 0, 100, 0); + gradient.addColorStop(0, 'rgba(255,0,0,0.5)'); + gradient.addColorStop(1, 'rgba(255,0,0,0.5)'); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.shadowOffsetY = 50; + ctx.shadowColor = '#00f'; + ctx.fillStyle = gradient; + ctx.fillRect(0, -50, 100, 50); -_assertPixelApprox(canvas, 50,25, 127,0,127,255, 2); - + _assertPixelApprox(canvas, 50,25, 127,0,127,255, 2); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.gradient.basic.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.gradient.basic.html index 233770e..a7c5efe7 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.gradient.basic.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.gradient.basic.html
@@ -19,18 +19,17 @@ var t = async_test("Shadows are drawn for gradient fills"); _addTest(function(canvas, ctx) { -var gradient = ctx.createLinearGradient(0, 0, 100, 0); -gradient.addColorStop(0, '#f00'); -gradient.addColorStop(1, '#f00'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.shadowColor = '#0f0'; -ctx.shadowOffsetY = 50; -ctx.fillStyle = gradient; -ctx.fillRect(0, -50, 100, 50); + var gradient = ctx.createLinearGradient(0, 0, 100, 0); + gradient.addColorStop(0, '#f00'); + gradient.addColorStop(1, '#f00'); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.shadowColor = '#0f0'; + ctx.shadowOffsetY = 50; + ctx.fillStyle = gradient; + ctx.fillRect(0, -50, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.gradient.transparent.1.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.gradient.transparent.1.html index 2427c7f..1c11f75 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.gradient.transparent.1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.gradient.transparent.1.html
@@ -19,18 +19,17 @@ var t = async_test("Shadows are not drawn for transparent gradient fills"); _addTest(function(canvas, ctx) { -var gradient = ctx.createLinearGradient(0, 0, 100, 0); -gradient.addColorStop(0, 'rgba(0,0,0,0)'); -gradient.addColorStop(1, 'rgba(0,0,0,0)'); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.shadowColor = '#f00'; -ctx.shadowOffsetY = 50; -ctx.fillStyle = gradient; -ctx.fillRect(0, -50, 100, 50); + var gradient = ctx.createLinearGradient(0, 0, 100, 0); + gradient.addColorStop(0, 'rgba(0,0,0,0)'); + gradient.addColorStop(1, 'rgba(0,0,0,0)'); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.shadowColor = '#f00'; + ctx.shadowOffsetY = 50; + ctx.fillStyle = gradient; + ctx.fillRect(0, -50, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.gradient.transparent.2.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.gradient.transparent.2.html index e27b19c..244aeca 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.gradient.transparent.2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.gradient.transparent.2.html
@@ -19,24 +19,23 @@ var t = async_test("Shadows are not drawn for transparent parts of gradient fills"); _addTest(function(canvas, ctx) { -var gradient = ctx.createLinearGradient(0, 0, 100, 0); -gradient.addColorStop(0, '#f00'); -gradient.addColorStop(0.499, '#f00'); -gradient.addColorStop(0.5, 'rgba(0,0,0,0)'); -gradient.addColorStop(1, 'rgba(0,0,0,0)'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 50, 50); -ctx.fillStyle = '#0f0'; -ctx.fillRect(50, 0, 50, 50); -ctx.shadowOffsetY = 50; -ctx.shadowColor = '#0f0'; -ctx.fillStyle = gradient; -ctx.fillRect(0, -50, 100, 50); + var gradient = ctx.createLinearGradient(0, 0, 100, 0); + gradient.addColorStop(0, '#f00'); + gradient.addColorStop(0.499, '#f00'); + gradient.addColorStop(0.5, 'rgba(0,0,0,0)'); + gradient.addColorStop(1, 'rgba(0,0,0,0)'); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 50, 50); + ctx.fillStyle = '#0f0'; + ctx.fillRect(50, 0, 50, 50); + ctx.shadowOffsetY = 50; + ctx.shadowColor = '#0f0'; + ctx.fillStyle = gradient; + ctx.fillRect(0, -50, 100, 50); -_assertPixel(canvas, 25,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 75,25, 0,255,0,255); - + _assertPixel(canvas, 25,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 75,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.image.alpha.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.image.alpha.html index 2c8133f..8d9022d6 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.image.alpha.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.image.alpha.html
@@ -19,14 +19,13 @@ var t = async_test("Shadows are drawn correctly for partially-transparent images"); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.shadowOffsetY = 50; -ctx.shadowColor = '#00f'; -ctx.drawImage(document.getElementById('transparent50.png'), 0, -50); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.shadowOffsetY = 50; + ctx.shadowColor = '#00f'; + ctx.drawImage(document.getElementById('transparent50.png'), 0, -50); -_assertPixelApprox(canvas, 50,25, 127,0,127,255, 2); - + _assertPixelApprox(canvas, 50,25, 127,0,127,255, 2); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.image.basic.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.image.basic.html index f91b195..351e7515 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.image.basic.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.image.basic.html
@@ -19,14 +19,13 @@ var t = async_test("Shadows are drawn for images"); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.shadowColor = '#0f0'; -ctx.shadowOffsetY = 50; -ctx.drawImage(document.getElementById('red.png'), 0, -50); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.shadowColor = '#0f0'; + ctx.shadowOffsetY = 50; + ctx.drawImage(document.getElementById('red.png'), 0, -50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.image.scale.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.image.scale.html index c0edc313..cbec7cc 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.image.scale.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.image.scale.html
@@ -19,16 +19,15 @@ var t = async_test("Shadows are drawn correctly for scaled images"); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.shadowOffsetY = 50; -ctx.shadowColor = '#0f0'; -ctx.drawImage(document.getElementById('redtransparent.png'), 0, 0, 100, 50, -10, -50, 240, 50); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.shadowOffsetY = 50; + ctx.shadowColor = '#0f0'; + ctx.drawImage(document.getElementById('redtransparent.png'), 0, 0, 100, 50, -10, -50, 240, 50); -_assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); -_assertPixelApprox(canvas, 50,25, 0,255,0,255, 2); -_assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); - + _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 50,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.image.section.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.image.section.html index 2ff2bf2..472559b7 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.image.section.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.image.section.html
@@ -19,16 +19,15 @@ var t = async_test("Shadows are not drawn for areas outside image source rectangles"); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.shadowOffsetY = 50; -ctx.shadowColor = '#f00'; -ctx.drawImage(document.getElementById('redtransparent.png'), 50, 0, 50, 50, 0, -50, 50, 50); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.shadowOffsetY = 50; + ctx.shadowColor = '#f00'; + ctx.drawImage(document.getElementById('redtransparent.png'), 50, 0, 50, 50, 0, -50, 50, 50); -_assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); -_assertPixelApprox(canvas, 50,25, 0,255,0,255, 2); -_assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); - + _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 50,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.image.transparent.1.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.image.transparent.1.html index c152dc2..768e961 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.image.transparent.1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.image.transparent.1.html
@@ -19,14 +19,13 @@ var t = async_test("Shadows are not drawn for transparent images"); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.shadowColor = '#f00'; -ctx.shadowOffsetY = 50; -ctx.drawImage(document.getElementById('transparent.png'), 0, -50); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.shadowColor = '#f00'; + ctx.shadowOffsetY = 50; + ctx.drawImage(document.getElementById('transparent.png'), 0, -50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.image.transparent.2.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.image.transparent.2.html index 636c72d..a445b7ae 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.image.transparent.2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.image.transparent.2.html
@@ -19,20 +19,19 @@ var t = async_test("Shadows are not drawn for transparent parts of images"); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 50, 50); -ctx.fillStyle = '#f00'; -ctx.fillRect(50, 0, 50, 50); -ctx.shadowOffsetY = 50; -ctx.shadowColor = '#0f0'; -ctx.drawImage(document.getElementById('redtransparent.png'), 50, -50); -ctx.shadowColor = '#f00'; -ctx.drawImage(document.getElementById('redtransparent.png'), -50, -50); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 50, 50); + ctx.fillStyle = '#f00'; + ctx.fillRect(50, 0, 50, 50); + ctx.shadowOffsetY = 50; + ctx.shadowColor = '#0f0'; + ctx.drawImage(document.getElementById('redtransparent.png'), 50, -50); + ctx.shadowColor = '#f00'; + ctx.drawImage(document.getElementById('redtransparent.png'), -50, -50); -_assertPixel(canvas, 25,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 75,25, 0,255,0,255); - + _assertPixel(canvas, 25,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 75,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.offset.negativeX.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.offset.negativeX.html index 828fe89..0a73b07 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.offset.negativeX.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.offset.negativeX.html
@@ -19,15 +19,14 @@ var t = async_test("Shadows can be offset with negative x"); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = '#0f0'; -ctx.shadowColor = '#0f0'; -ctx.shadowOffsetX = -50; -ctx.fillRect(50, 0, 50, 50); -_assertPixel(canvas, 25,25, 0,255,0,255); -_assertPixel(canvas, 75,25, 0,255,0,255); - + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.shadowColor = '#0f0'; + ctx.shadowOffsetX = -50; + ctx.fillRect(50, 0, 50, 50); + _assertPixel(canvas, 25,25, 0,255,0,255); + _assertPixel(canvas, 75,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.offset.negativeY.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.offset.negativeY.html index daf9b7e..04c9620 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.offset.negativeY.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.offset.negativeY.html
@@ -19,15 +19,14 @@ var t = async_test("Shadows can be offset with negative y"); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = '#0f0'; -ctx.shadowColor = '#0f0'; -ctx.shadowOffsetY = -25; -ctx.fillRect(0, 25, 100, 25); -_assertPixel(canvas, 50,12, 0,255,0,255); -_assertPixel(canvas, 50,37, 0,255,0,255); - + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.shadowColor = '#0f0'; + ctx.shadowOffsetY = -25; + ctx.fillRect(0, 25, 100, 25); + _assertPixel(canvas, 50,12, 0,255,0,255); + _assertPixel(canvas, 50,37, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.offset.positiveX.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.offset.positiveX.html index 9d627dd..1254474 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.offset.positiveX.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.offset.positiveX.html
@@ -19,15 +19,14 @@ var t = async_test("Shadows can be offset with positive x"); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = '#0f0'; -ctx.shadowColor = '#0f0'; -ctx.shadowOffsetX = 50; -ctx.fillRect(0, 0, 50, 50); -_assertPixel(canvas, 25,25, 0,255,0,255); -_assertPixel(canvas, 75,25, 0,255,0,255); - + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.shadowColor = '#0f0'; + ctx.shadowOffsetX = 50; + ctx.fillRect(0, 0, 50, 50); + _assertPixel(canvas, 25,25, 0,255,0,255); + _assertPixel(canvas, 75,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.offset.positiveY.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.offset.positiveY.html index 6198263..fdcf25a 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.offset.positiveY.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.offset.positiveY.html
@@ -19,15 +19,14 @@ var t = async_test("Shadows can be offset with positive y"); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = '#0f0'; -ctx.shadowColor = '#0f0'; -ctx.shadowOffsetY = 25; -ctx.fillRect(0, 0, 100, 25); -_assertPixel(canvas, 50,12, 0,255,0,255); -_assertPixel(canvas, 50,37, 0,255,0,255); - + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.shadowColor = '#0f0'; + ctx.shadowOffsetY = 25; + ctx.fillRect(0, 0, 100, 25); + _assertPixel(canvas, 50,12, 0,255,0,255); + _assertPixel(canvas, 50,37, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.outside.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.outside.html index 331dca9..fcf2129 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.outside.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.outside.html
@@ -19,23 +19,22 @@ var t = async_test("Shadows of shapes outside the visible area can be offset onto the visible area"); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.shadowColor = '#0f0'; -ctx.shadowOffsetX = 100; -ctx.fillRect(-100, 0, 25, 50); -ctx.shadowOffsetX = -100; -ctx.fillRect(175, 0, 25, 50); -ctx.shadowOffsetX = 0; -ctx.shadowOffsetY = 100; -ctx.fillRect(25, -100, 50, 25); -ctx.shadowOffsetY = -100; -ctx.fillRect(25, 125, 50, 25); -_assertPixel(canvas, 12,25, 0,255,0,255); -_assertPixel(canvas, 87,25, 0,255,0,255); -_assertPixel(canvas, 50,12, 0,255,0,255); -_assertPixel(canvas, 50,37, 0,255,0,255); - + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.shadowColor = '#0f0'; + ctx.shadowOffsetX = 100; + ctx.fillRect(-100, 0, 25, 50); + ctx.shadowOffsetX = -100; + ctx.fillRect(175, 0, 25, 50); + ctx.shadowOffsetX = 0; + ctx.shadowOffsetY = 100; + ctx.fillRect(25, -100, 50, 25); + ctx.shadowOffsetY = -100; + ctx.fillRect(25, 125, 50, 25); + _assertPixel(canvas, 12,25, 0,255,0,255); + _assertPixel(canvas, 87,25, 0,255,0,255); + _assertPixel(canvas, 50,12, 0,255,0,255); + _assertPixel(canvas, 50,37, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.pattern.alpha.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.pattern.alpha.html index a995a4ab..8e602d6c2 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.pattern.alpha.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.pattern.alpha.html
@@ -19,16 +19,15 @@ var t = async_test("Shadows are drawn correctly for partially-transparent fill patterns"); _addTest(function(canvas, ctx) { -var pattern = ctx.createPattern(document.getElementById('transparent50.png'), 'repeat'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.shadowOffsetY = 50; -ctx.shadowColor = '#00f'; -ctx.fillStyle = pattern; -ctx.fillRect(0, -50, 100, 50); + var pattern = ctx.createPattern(document.getElementById('transparent50.png'), 'repeat'); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.shadowOffsetY = 50; + ctx.shadowColor = '#00f'; + ctx.fillStyle = pattern; + ctx.fillRect(0, -50, 100, 50); -_assertPixelApprox(canvas, 50,25, 127,0,127,255, 2); - + _assertPixelApprox(canvas, 50,25, 127,0,127,255, 2); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.pattern.basic.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.pattern.basic.html index adb8aea..c776d6bc 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.pattern.basic.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.pattern.basic.html
@@ -19,16 +19,15 @@ var t = async_test("Shadows are drawn for fill patterns"); _addTest(function(canvas, ctx) { -var pattern = ctx.createPattern(document.getElementById('red.png'), 'repeat'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.shadowColor = '#0f0'; -ctx.shadowOffsetY = 50; -ctx.fillStyle = pattern; -ctx.fillRect(0, -50, 100, 50); + var pattern = ctx.createPattern(document.getElementById('red.png'), 'repeat'); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.shadowColor = '#0f0'; + ctx.shadowOffsetY = 50; + ctx.fillStyle = pattern; + ctx.fillRect(0, -50, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.pattern.transparent.1.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.pattern.transparent.1.html index 37af35d..c3dca30 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.pattern.transparent.1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.pattern.transparent.1.html
@@ -19,16 +19,15 @@ var t = async_test("Shadows are not drawn for transparent fill patterns"); _addTest(function(canvas, ctx) { -var pattern = ctx.createPattern(document.getElementById('transparent.png'), 'repeat'); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.shadowColor = '#f00'; -ctx.shadowOffsetY = 50; -ctx.fillStyle = pattern; -ctx.fillRect(0, -50, 100, 50); + var pattern = ctx.createPattern(document.getElementById('transparent.png'), 'repeat'); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.shadowColor = '#f00'; + ctx.shadowOffsetY = 50; + ctx.fillStyle = pattern; + ctx.fillRect(0, -50, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.pattern.transparent.2.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.pattern.transparent.2.html index e96e9e3..ecb8241 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.pattern.transparent.2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.pattern.transparent.2.html
@@ -19,20 +19,19 @@ var t = async_test("Shadows are not drawn for transparent parts of fill patterns"); _addTest(function(canvas, ctx) { -var pattern = ctx.createPattern(document.getElementById('redtransparent.png'), 'repeat'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 50, 50); -ctx.fillStyle = '#0f0'; -ctx.fillRect(50, 0, 50, 50); -ctx.shadowOffsetY = 50; -ctx.shadowColor = '#0f0'; -ctx.fillStyle = pattern; -ctx.fillRect(0, -50, 100, 50); + var pattern = ctx.createPattern(document.getElementById('redtransparent.png'), 'repeat'); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 50, 50); + ctx.fillStyle = '#0f0'; + ctx.fillRect(50, 0, 50, 50); + ctx.shadowOffsetY = 50; + ctx.shadowColor = '#0f0'; + ctx.fillStyle = pattern; + ctx.fillRect(0, -50, 100, 50); -_assertPixel(canvas, 25,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 75,25, 0,255,0,255); - + _assertPixel(canvas, 25,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 75,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.stroke.basic.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.stroke.basic.html index c5834b8..6146ba7 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.stroke.basic.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.stroke.basic.html
@@ -19,21 +19,20 @@ var t = async_test("Shadows are drawn for strokes"); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.strokeStyle = '#f00'; -ctx.shadowColor = '#0f0'; -ctx.shadowOffsetY = 50; -ctx.beginPath(); -ctx.lineWidth = 50; -ctx.moveTo(0, -25); -ctx.lineTo(100, -25); -ctx.stroke(); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.strokeStyle = '#f00'; + ctx.shadowColor = '#0f0'; + ctx.shadowOffsetY = 50; + ctx.beginPath(); + ctx.lineWidth = 50; + ctx.moveTo(0, -25); + ctx.lineTo(100, -25); + ctx.stroke(); -_assertPixel(canvas, 1,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 98,25, 0,255,0,255); - + _assertPixel(canvas, 1,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 98,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.stroke.cap.1.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.stroke.cap.1.html index ff6a1c4..5d6e53a 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.stroke.cap.1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.stroke.cap.1.html
@@ -19,24 +19,23 @@ var t = async_test("Shadows are not drawn for areas outside stroke caps"); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.strokeStyle = '#f00'; -ctx.shadowColor = '#f00'; -ctx.shadowOffsetY = 50; -ctx.beginPath(); -ctx.lineWidth = 50; -ctx.lineCap = 'butt'; -ctx.moveTo(-50, -25); -ctx.lineTo(0, -25); -ctx.moveTo(100, -25); -ctx.lineTo(150, -25); -ctx.stroke(); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.strokeStyle = '#f00'; + ctx.shadowColor = '#f00'; + ctx.shadowOffsetY = 50; + ctx.beginPath(); + ctx.lineWidth = 50; + ctx.lineCap = 'butt'; + ctx.moveTo(-50, -25); + ctx.lineTo(0, -25); + ctx.moveTo(100, -25); + ctx.lineTo(150, -25); + ctx.stroke(); -_assertPixel(canvas, 1,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 98,25, 0,255,0,255); - + _assertPixel(canvas, 1,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 98,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.stroke.cap.2.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.stroke.cap.2.html index 40fd22a1..f18a9b6c 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.stroke.cap.2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.stroke.cap.2.html
@@ -19,22 +19,21 @@ var t = async_test("Shadows are drawn for stroke caps"); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.strokeStyle = '#f00'; -ctx.shadowColor = '#0f0'; -ctx.shadowOffsetY = 50; -ctx.beginPath(); -ctx.lineWidth = 50; -ctx.lineCap = 'square'; -ctx.moveTo(25, -25); -ctx.lineTo(75, -25); -ctx.stroke(); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.strokeStyle = '#f00'; + ctx.shadowColor = '#0f0'; + ctx.shadowOffsetY = 50; + ctx.beginPath(); + ctx.lineWidth = 50; + ctx.lineCap = 'square'; + ctx.moveTo(25, -25); + ctx.lineTo(75, -25); + ctx.stroke(); -_assertPixel(canvas, 1,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 98,25, 0,255,0,255); - + _assertPixel(canvas, 1,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 98,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.stroke.join.1.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.stroke.join.1.html index 5c7cda8e..46735a9 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.stroke.join.1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.stroke.join.1.html
@@ -19,24 +19,23 @@ var t = async_test("Shadows are not drawn for areas outside stroke joins"); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.strokeStyle = '#f00'; -ctx.shadowColor = '#f00'; -ctx.shadowOffsetX = 100; -ctx.lineWidth = 200; -ctx.lineJoin = 'bevel'; -ctx.beginPath(); -ctx.moveTo(-200, -50); -ctx.lineTo(-150, -50); -ctx.lineTo(-151, -100); -ctx.stroke(); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.strokeStyle = '#f00'; + ctx.shadowColor = '#f00'; + ctx.shadowOffsetX = 100; + ctx.lineWidth = 200; + ctx.lineJoin = 'bevel'; + ctx.beginPath(); + ctx.moveTo(-200, -50); + ctx.lineTo(-150, -50); + ctx.lineTo(-151, -100); + ctx.stroke(); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 48,48, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); - + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 48,48, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.stroke.join.2.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.stroke.join.2.html index 0ed3c90..85abc24e 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.stroke.join.2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.stroke.join.2.html
@@ -19,26 +19,25 @@ var t = async_test("Shadows are drawn for stroke joins"); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 50, 50); -ctx.fillStyle = '#0f0'; -ctx.fillRect(50, 0, 50, 50); -ctx.strokeStyle = '#f00'; -ctx.shadowColor = '#0f0'; -ctx.shadowOffsetX = 100; -ctx.lineWidth = 200; -ctx.lineJoin = 'miter'; -ctx.beginPath(); -ctx.moveTo(-200, -50); -ctx.lineTo(-150, -50); -ctx.lineTo(-151, -100); -ctx.stroke(); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 50, 50); + ctx.fillStyle = '#0f0'; + ctx.fillRect(50, 0, 50, 50); + ctx.strokeStyle = '#f00'; + ctx.shadowColor = '#0f0'; + ctx.shadowOffsetX = 100; + ctx.lineWidth = 200; + ctx.lineJoin = 'miter'; + ctx.beginPath(); + ctx.moveTo(-200, -50); + ctx.lineTo(-150, -50); + ctx.lineTo(-151, -100); + ctx.stroke(); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 48,48, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); - + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 48,48, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.stroke.join.3.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.stroke.join.3.html index ada4e159..795c613 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.stroke.join.3.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.stroke.join.3.html
@@ -19,25 +19,24 @@ var t = async_test("Shadows are drawn for stroke joins respecting miter limit"); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.strokeStyle = '#f00'; -ctx.shadowColor = '#f00'; -ctx.shadowOffsetX = 100; -ctx.lineWidth = 200; -ctx.lineJoin = 'miter'; -ctx.miterLimit = 0.1; -ctx.beginPath(); -ctx.moveTo(-200, -50); -ctx.lineTo(-150, -50); -ctx.lineTo(-151, -100); // (not an exact right angle, to avoid some other bug in Firefox 3) -ctx.stroke(); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.strokeStyle = '#f00'; + ctx.shadowColor = '#f00'; + ctx.shadowOffsetX = 100; + ctx.lineWidth = 200; + ctx.lineJoin = 'miter'; + ctx.miterLimit = 0.1; + ctx.beginPath(); + ctx.moveTo(-200, -50); + ctx.lineTo(-150, -50); + ctx.lineTo(-151, -100); // (not an exact right angle, to avoid some other bug in Firefox 3) + ctx.stroke(); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 48,48, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); - + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 48,48, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.transform.1.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.transform.1.html index 5745051..abfb54e 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.transform.1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.transform.1.html
@@ -19,15 +19,14 @@ var t = async_test("Shadows take account of transformations"); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.shadowOffsetY = 50; -ctx.shadowColor = '#0f0'; -ctx.translate(100, 100); -ctx.fillRect(-100, -150, 100, 50); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.shadowOffsetY = 50; + ctx.shadowColor = '#0f0'; + ctx.translate(100, 100); + ctx.fillRect(-100, -150, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.transform.2.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.transform.2.html index dc97c0672..736dd4e 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.transform.2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/shadows/2d.shadow.transform.2.html
@@ -19,15 +19,14 @@ var t = async_test("Shadow offsets are not affected by transformations"); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.shadowOffsetY = 50; -ctx.shadowColor = '#0f0'; -ctx.rotate(Math.PI) -ctx.fillRect(-100, 0, 100, 50); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.shadowOffsetY = 50; + ctx.shadowColor = '#0f0'; + ctx.rotate(Math.PI) + ctx.fillRect(-100, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.align.default.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.align.default.html index 5c725d4..d32f783 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.align.default.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.align.default.html
@@ -19,8 +19,7 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -_assertSame(ctx.textAlign, 'start', "ctx.textAlign", "'start'"); - + _assertSame(ctx.textAlign, 'start', "ctx.textAlign", "'start'"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.align.invalid.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.align.invalid.html index 7c69b5a..7b7f337 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.align.invalid.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.align.invalid.html
@@ -19,22 +19,21 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -ctx.textAlign = 'start'; -ctx.textAlign = 'bogus'; -_assertSame(ctx.textAlign, 'start', "ctx.textAlign", "'start'"); + ctx.textAlign = 'start'; + ctx.textAlign = 'bogus'; + _assertSame(ctx.textAlign, 'start', "ctx.textAlign", "'start'"); -ctx.textAlign = 'start'; -ctx.textAlign = 'END'; -_assertSame(ctx.textAlign, 'start', "ctx.textAlign", "'start'"); + ctx.textAlign = 'start'; + ctx.textAlign = 'END'; + _assertSame(ctx.textAlign, 'start', "ctx.textAlign", "'start'"); -ctx.textAlign = 'start'; -ctx.textAlign = 'end '; -_assertSame(ctx.textAlign, 'start', "ctx.textAlign", "'start'"); + ctx.textAlign = 'start'; + ctx.textAlign = 'end '; + _assertSame(ctx.textAlign, 'start', "ctx.textAlign", "'start'"); -ctx.textAlign = 'start'; -ctx.textAlign = 'end\0'; -_assertSame(ctx.textAlign, 'start', "ctx.textAlign", "'start'"); - + ctx.textAlign = 'start'; + ctx.textAlign = 'end\0'; + _assertSame(ctx.textAlign, 'start', "ctx.textAlign", "'start'"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.align.valid.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.align.valid.html index c8fb253a..a568530 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.align.valid.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.align.valid.html
@@ -19,21 +19,20 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -ctx.textAlign = 'start'; -_assertSame(ctx.textAlign, 'start', "ctx.textAlign", "'start'"); + ctx.textAlign = 'start'; + _assertSame(ctx.textAlign, 'start', "ctx.textAlign", "'start'"); -ctx.textAlign = 'end'; -_assertSame(ctx.textAlign, 'end', "ctx.textAlign", "'end'"); + ctx.textAlign = 'end'; + _assertSame(ctx.textAlign, 'end', "ctx.textAlign", "'end'"); -ctx.textAlign = 'left'; -_assertSame(ctx.textAlign, 'left', "ctx.textAlign", "'left'"); + ctx.textAlign = 'left'; + _assertSame(ctx.textAlign, 'left', "ctx.textAlign", "'left'"); -ctx.textAlign = 'right'; -_assertSame(ctx.textAlign, 'right', "ctx.textAlign", "'right'"); + ctx.textAlign = 'right'; + _assertSame(ctx.textAlign, 'right', "ctx.textAlign", "'right'"); -ctx.textAlign = 'center'; -_assertSame(ctx.textAlign, 'center', "ctx.textAlign", "'center'"); - + ctx.textAlign = 'center'; + _assertSame(ctx.textAlign, 'center', "ctx.textAlign", "'center'"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.baseline.default.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.baseline.default.html index 8e44225..08e8512 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.baseline.default.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.baseline.default.html
@@ -19,8 +19,7 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -_assertSame(ctx.textBaseline, 'alphabetic', "ctx.textBaseline", "'alphabetic'"); - + _assertSame(ctx.textBaseline, 'alphabetic', "ctx.textBaseline", "'alphabetic'"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.baseline.invalid.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.baseline.invalid.html index 1b31ce1..e527a772 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.baseline.invalid.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.baseline.invalid.html
@@ -19,22 +19,21 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -ctx.textBaseline = 'top'; -ctx.textBaseline = 'bogus'; -_assertSame(ctx.textBaseline, 'top', "ctx.textBaseline", "'top'"); + ctx.textBaseline = 'top'; + ctx.textBaseline = 'bogus'; + _assertSame(ctx.textBaseline, 'top', "ctx.textBaseline", "'top'"); -ctx.textBaseline = 'top'; -ctx.textBaseline = 'MIDDLE'; -_assertSame(ctx.textBaseline, 'top', "ctx.textBaseline", "'top'"); + ctx.textBaseline = 'top'; + ctx.textBaseline = 'MIDDLE'; + _assertSame(ctx.textBaseline, 'top', "ctx.textBaseline", "'top'"); -ctx.textBaseline = 'top'; -ctx.textBaseline = 'middle '; -_assertSame(ctx.textBaseline, 'top', "ctx.textBaseline", "'top'"); + ctx.textBaseline = 'top'; + ctx.textBaseline = 'middle '; + _assertSame(ctx.textBaseline, 'top', "ctx.textBaseline", "'top'"); -ctx.textBaseline = 'top'; -ctx.textBaseline = 'middle\0'; -_assertSame(ctx.textBaseline, 'top', "ctx.textBaseline", "'top'"); - + ctx.textBaseline = 'top'; + ctx.textBaseline = 'middle\0'; + _assertSame(ctx.textBaseline, 'top', "ctx.textBaseline", "'top'"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.baseline.valid.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.baseline.valid.html index 3e1cb35..238f6ff 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.baseline.valid.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.baseline.valid.html
@@ -19,24 +19,23 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -ctx.textBaseline = 'top'; -_assertSame(ctx.textBaseline, 'top', "ctx.textBaseline", "'top'"); + ctx.textBaseline = 'top'; + _assertSame(ctx.textBaseline, 'top', "ctx.textBaseline", "'top'"); -ctx.textBaseline = 'hanging'; -_assertSame(ctx.textBaseline, 'hanging', "ctx.textBaseline", "'hanging'"); + ctx.textBaseline = 'hanging'; + _assertSame(ctx.textBaseline, 'hanging', "ctx.textBaseline", "'hanging'"); -ctx.textBaseline = 'middle'; -_assertSame(ctx.textBaseline, 'middle', "ctx.textBaseline", "'middle'"); + ctx.textBaseline = 'middle'; + _assertSame(ctx.textBaseline, 'middle', "ctx.textBaseline", "'middle'"); -ctx.textBaseline = 'alphabetic'; -_assertSame(ctx.textBaseline, 'alphabetic', "ctx.textBaseline", "'alphabetic'"); + ctx.textBaseline = 'alphabetic'; + _assertSame(ctx.textBaseline, 'alphabetic', "ctx.textBaseline", "'alphabetic'"); -ctx.textBaseline = 'ideographic'; -_assertSame(ctx.textBaseline, 'ideographic', "ctx.textBaseline", "'ideographic'"); + ctx.textBaseline = 'ideographic'; + _assertSame(ctx.textBaseline, 'ideographic', "ctx.textBaseline", "'ideographic'"); -ctx.textBaseline = 'bottom'; -_assertSame(ctx.textBaseline, 'bottom', "ctx.textBaseline", "'bottom'"); - + ctx.textBaseline = 'bottom'; + _assertSame(ctx.textBaseline, 'bottom', "ctx.textBaseline", "'bottom'"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.draw.baseline.alphabetic.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.draw.baseline.alphabetic.html index 5bbd90f..0f70a47 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.draw.baseline.alphabetic.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.draw.baseline.alphabetic.html
@@ -26,22 +26,21 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -ctx.font = '50px CanvasTest'; -deferTest(); -step_timeout(t.step_func_done(function () { - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.fillStyle = '#0f0'; - ctx.textBaseline = 'alphabetic'; - ctx.fillText('CC', 0, 37.5); - _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 5,45, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,45, 0,255,0,255, 2); -}), 500); - + ctx.font = '50px CanvasTest'; + deferTest(); + step_timeout(t.step_func_done(function () { + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.textBaseline = 'alphabetic'; + ctx.fillText('CC', 0, 37.5); + _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 5,45, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,45, 0,255,0,255, 2); + }), 500); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.draw.baseline.bottom.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.draw.baseline.bottom.html index 311be39..706d774 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.draw.baseline.bottom.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.draw.baseline.bottom.html
@@ -26,22 +26,21 @@ var t = async_test("textBaseline bottom is the bottom of the em square (not the bounding box)"); _addTest(function(canvas, ctx) { -ctx.font = '50px CanvasTest'; -deferTest(); -step_timeout(t.step_func_done(function () { - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.fillStyle = '#0f0'; - ctx.textBaseline = 'bottom'; - ctx.fillText('CC', 0, 50); - _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 5,45, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,45, 0,255,0,255, 2); -}), 500); - + ctx.font = '50px CanvasTest'; + deferTest(); + step_timeout(t.step_func_done(function () { + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.textBaseline = 'bottom'; + ctx.fillText('CC', 0, 50); + _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 5,45, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,45, 0,255,0,255, 2); + }), 500); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.draw.baseline.hanging.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.draw.baseline.hanging.html index 65aa7cd..7b3a0a93 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.draw.baseline.hanging.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.draw.baseline.hanging.html
@@ -26,22 +26,21 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -ctx.font = '50px CanvasTest'; -deferTest(); -step_timeout(t.step_func_done(function () { - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.fillStyle = '#0f0'; - ctx.textBaseline = 'hanging'; - ctx.fillText('CC', 0, 12.5); - _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 5,45, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,45, 0,255,0,255, 2); -}), 500); - + ctx.font = '50px CanvasTest'; + deferTest(); + step_timeout(t.step_func_done(function () { + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.textBaseline = 'hanging'; + ctx.fillText('CC', 0, 12.5); + _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 5,45, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,45, 0,255,0,255, 2); + }), 500); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.draw.baseline.ideographic.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.draw.baseline.ideographic.html index 84f1262..8da9aab 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.draw.baseline.ideographic.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.draw.baseline.ideographic.html
@@ -26,22 +26,21 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -ctx.font = '50px CanvasTest'; -deferTest(); -step_timeout(t.step_func_done(function () { - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.fillStyle = '#0f0'; - ctx.textBaseline = 'ideographic'; - ctx.fillText('CC', 0, 31.25); - _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 5,45, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,45, 0,255,0,255, 2); -}), 500); - + ctx.font = '50px CanvasTest'; + deferTest(); + step_timeout(t.step_func_done(function () { + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.textBaseline = 'ideographic'; + ctx.fillText('CC', 0, 31.25); + _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 5,45, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,45, 0,255,0,255, 2); + }), 500); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.draw.baseline.middle.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.draw.baseline.middle.html index a09a2f31..ebc821c2 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.draw.baseline.middle.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.draw.baseline.middle.html
@@ -26,22 +26,21 @@ var t = async_test("textBaseline middle is the middle of the em square (not the bounding box)"); _addTest(function(canvas, ctx) { -ctx.font = '50px CanvasTest'; -deferTest(); -step_timeout(t.step_func_done(function () { - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.fillStyle = '#0f0'; - ctx.textBaseline = 'middle'; - ctx.fillText('CC', 0, 25); - _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 5,45, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,45, 0,255,0,255, 2); -}), 500); - + ctx.font = '50px CanvasTest'; + deferTest(); + step_timeout(t.step_func_done(function () { + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.textBaseline = 'middle'; + ctx.fillText('CC', 0, 25); + _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 5,45, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,45, 0,255,0,255, 2); + }), 500); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.draw.baseline.top.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.draw.baseline.top.html index b0c72c41..21e505ec7 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.draw.baseline.top.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.draw.baseline.top.html
@@ -26,22 +26,21 @@ var t = async_test("textBaseline top is the top of the em square (not the bounding box)"); _addTest(function(canvas, ctx) { -ctx.font = '50px CanvasTest'; -deferTest(); -step_timeout(t.step_func_done(function () { - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.fillStyle = '#0f0'; - ctx.textBaseline = 'top'; - ctx.fillText('CC', 0, 0); - _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 5,45, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,45, 0,255,0,255, 2); -}), 500); - + ctx.font = '50px CanvasTest'; + deferTest(); + step_timeout(t.step_func_done(function () { + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.textBaseline = 'top'; + ctx.fillText('CC', 0, 0); + _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 5,45, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,45, 0,255,0,255, 2); + }), 500); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.draw.space.collapse.end.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.draw.space.collapse.end.html index 57de14a..15b802f 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.draw.space.collapse.end.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.draw.space.collapse.end.html
@@ -26,18 +26,17 @@ var t = async_test("Space characters at the end of a line are collapsed (per CSS)"); _addTest(function(canvas, ctx) { -ctx.font = '50px CanvasTest'; -deferTest(); -step_timeout(t.step_func_done(function () { - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.fillStyle = '#0f0'; - ctx.textAlign = 'right'; - ctx.fillText('EE ', 100, 37.5); - _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); -}), 500); - + ctx.font = '50px CanvasTest'; + deferTest(); + step_timeout(t.step_func_done(function () { + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.textAlign = 'right'; + ctx.fillText('EE ', 100, 37.5); + _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); + }), 500); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.draw.space.collapse.other.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.draw.space.collapse.other.html index e593b97..3454cfb 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.draw.space.collapse.other.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.draw.space.collapse.other.html
@@ -26,17 +26,16 @@ var t = async_test("Space characters are converted to U+0020, and collapsed (per CSS)"); _addTest(function(canvas, ctx) { -ctx.font = '50px CanvasTest'; -deferTest(); -step_timeout(t.step_func_done(function () { - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.fillStyle = '#0f0'; - ctx.fillText('E \x09\x0a\x0c\x0d \x09\x0a\x0c\x0dEE', -100, 37.5); - _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); -}), 500); - + ctx.font = '50px CanvasTest'; + deferTest(); + step_timeout(t.step_func_done(function () { + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.fillText('E \x09\x0a\x0c\x0d \x09\x0a\x0c\x0dEE', -100, 37.5); + _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); + }), 500); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.draw.space.collapse.space.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.draw.space.collapse.space.html index 6e24007..20c5f705 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.draw.space.collapse.space.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.draw.space.collapse.space.html
@@ -26,17 +26,16 @@ var t = async_test("Space characters are converted to U+0020, and collapsed (per CSS)"); _addTest(function(canvas, ctx) { -ctx.font = '50px CanvasTest'; -deferTest(); -step_timeout(t.step_func_done(function () { - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.fillStyle = '#0f0'; - ctx.fillText('E EE', -100, 37.5); - _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); -}), 500); - + ctx.font = '50px CanvasTest'; + deferTest(); + step_timeout(t.step_func_done(function () { + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.fillText('E EE', -100, 37.5); + _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); + }), 500); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.draw.space.collapse.start.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.draw.space.collapse.start.html index 5ec776e..c06efba 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.draw.space.collapse.start.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.draw.space.collapse.start.html
@@ -26,17 +26,16 @@ var t = async_test("Space characters at the start of a line are collapsed (per CSS)"); _addTest(function(canvas, ctx) { -ctx.font = '50px CanvasTest'; -deferTest(); -step_timeout(t.step_func_done(function () { - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.fillStyle = '#0f0'; - ctx.fillText(' EE', 0, 37.5); - _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); -}), 500); - + ctx.font = '50px CanvasTest'; + deferTest(); + step_timeout(t.step_func_done(function () { + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.fillText(' EE', 0, 37.5); + _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); + }), 500); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.font.default.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.font.default.html index 135c9bd..c6ac084 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.font.default.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.font.default.html
@@ -19,8 +19,7 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -_assertSame(ctx.font, '10px sans-serif', "ctx.font", "'10px sans-serif'"); - + _assertSame(ctx.font, '10px sans-serif', "ctx.font", "'10px sans-serif'"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.font.parse.basic.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.font.parse.basic.html index 57db32b..70efec77 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.font.parse.basic.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.font.parse.basic.html
@@ -19,12 +19,11 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -ctx.font = '20px serif'; -_assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); + ctx.font = '20px serif'; + _assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); -ctx.font = '20PX SERIF'; -_assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); - + ctx.font = '20PX SERIF'; + _assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.font.parse.complex.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.font.parse.complex.html index cd6235e..7f11506 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.font.parse.complex.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.font.parse.complex.html
@@ -19,9 +19,8 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -ctx.font = 'small-caps italic 400 12px/2 Unknown Font, sans-serif'; -_assertSame(ctx.font, 'italic small-caps 12px "Unknown Font", sans-serif', "ctx.font", "'italic small-caps 12px \"Unknown Font\", sans-serif'"); - + ctx.font = 'small-caps italic 400 12px/2 Unknown Font, sans-serif'; + _assertSame(ctx.font, 'italic small-caps 12px "Unknown Font", sans-serif', "ctx.font", "'italic small-caps 12px \"Unknown Font\", sans-serif'"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.font.parse.family.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.font.parse.family.html index f5c24bd..c53bedb 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.font.parse.family.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.font.parse.family.html
@@ -19,9 +19,8 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -ctx.font = '20px cursive,fantasy,monospace,sans-serif,serif,UnquotedFont,"QuotedFont\\\\\\","'; -_assertSame(ctx.font, '20px cursive, fantasy, monospace, sans-serif, serif, UnquotedFont, "QuotedFont\\\\\\","', "ctx.font", "'20px cursive, fantasy, monospace, sans-serif, serif, UnquotedFont, \"QuotedFont\\\\\\\\\\\\\",\"'"); - + ctx.font = '20px cursive,fantasy,monospace,sans-serif,serif,UnquotedFont,"QuotedFont\\\\\\","'; + _assertSame(ctx.font, '20px cursive, fantasy, monospace, sans-serif, serif, UnquotedFont, "QuotedFont\\\\\\","', "ctx.font", "'20px cursive, fantasy, monospace, sans-serif, serif, UnquotedFont, \"QuotedFont\\\\\\\\\\\\\",\"'"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.font.parse.invalid.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.font.parse.invalid.html index e273544..4fef0b4 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.font.parse.invalid.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.font.parse.invalid.html
@@ -19,53 +19,52 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -ctx.font = '20px serif'; -_assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); + ctx.font = '20px serif'; + _assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); -ctx.font = '20px serif'; -ctx.font = ''; -_assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); + ctx.font = '20px serif'; + ctx.font = ''; + _assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); -ctx.font = '20px serif'; -ctx.font = 'bogus'; -_assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); + ctx.font = '20px serif'; + ctx.font = 'bogus'; + _assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); -ctx.font = '20px serif'; -ctx.font = 'inherit'; -_assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); + ctx.font = '20px serif'; + ctx.font = 'inherit'; + _assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); -ctx.font = '20px serif'; -ctx.font = '10px {bogus}'; -_assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); + ctx.font = '20px serif'; + ctx.font = '10px {bogus}'; + _assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); -ctx.font = '20px serif'; -ctx.font = '10px initial'; -_assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); + ctx.font = '20px serif'; + ctx.font = '10px initial'; + _assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); -ctx.font = '20px serif'; -ctx.font = '10px default'; -_assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); + ctx.font = '20px serif'; + ctx.font = '10px default'; + _assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); -ctx.font = '20px serif'; -ctx.font = '10px inherit'; -_assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); + ctx.font = '20px serif'; + ctx.font = '10px inherit'; + _assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); -ctx.font = '20px serif'; -ctx.font = '10px revert'; -_assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); + ctx.font = '20px serif'; + ctx.font = '10px revert'; + _assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); -ctx.font = '20px serif'; -ctx.font = 'var(--x)'; -_assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); + ctx.font = '20px serif'; + ctx.font = 'var(--x)'; + _assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); -ctx.font = '20px serif'; -ctx.font = 'var(--x, 10px serif)'; -_assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); + ctx.font = '20px serif'; + ctx.font = 'var(--x, 10px serif)'; + _assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); -ctx.font = '20px serif'; -ctx.font = '1em serif; background: green; margin: 10px'; -_assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); - + ctx.font = '20px serif'; + ctx.font = '1em serif; background: green; margin: 10px'; + _assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.font.parse.size.percentage.default.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.font.parse.size.percentage.default.html index 65bb5549..cb245f1 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.font.parse.size.percentage.default.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.font.parse.size.percentage.default.html
@@ -19,11 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -var canvas2 = document.createElement('canvas'); -var ctx2 = canvas2.getContext('2d'); -ctx2.font = '1000% serif'; -_assertSame(ctx2.font, '100px serif', "ctx2.font", "'100px serif'"); - + var canvas2 = document.createElement('canvas'); + var ctx2 = canvas2.getContext('2d'); + ctx2.font = '1000% serif'; + _assertSame(ctx2.font, '100px serif', "ctx2.font", "'100px serif'"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.font.parse.size.percentage.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.font.parse.size.percentage.html index 18476b3..519a1eb 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.font.parse.size.percentage.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.font.parse.size.percentage.html
@@ -19,11 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -ctx.font = '50% serif'; -_assertSame(ctx.font, '72px serif', "ctx.font", "'72px serif'"); -canvas.setAttribute('style', 'font-size: 100px'); -_assertSame(ctx.font, '72px serif', "ctx.font", "'72px serif'"); - + ctx.font = '50% serif'; + _assertSame(ctx.font, '72px serif', "ctx.font", "'72px serif'"); + canvas.setAttribute('style', 'font-size: 100px'); + _assertSame(ctx.font, '72px serif', "ctx.font", "'72px serif'"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.font.parse.system.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.font.parse.system.html index 707be4e..10fa0cb 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.font.parse.system.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.font.parse.system.html
@@ -19,9 +19,8 @@ var t = async_test("System fonts must be computed to explicit values"); _addTest(function(canvas, ctx) { -ctx.font = 'message-box'; -_assertDifferent(ctx.font, 'message-box', "ctx.font", "'message-box'"); - + ctx.font = 'message-box'; + _assertDifferent(ctx.font, 'message-box', "ctx.font", "'message-box'"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.font.parse.tiny.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.font.parse.tiny.html index e5215f1..10c9d2a 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.font.parse.tiny.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.font.parse.tiny.html
@@ -19,9 +19,8 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -ctx.font = '1px sans-serif'; -_assertSame(ctx.font, '1px sans-serif', "ctx.font", "'1px sans-serif'"); - + ctx.font = '1px sans-serif'; + _assertSame(ctx.font, '1px sans-serif', "ctx.font", "'1px sans-serif'"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.font.relative_size.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.font.relative_size.html index 8040d389..97b9718 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.font.relative_size.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.font.relative_size.html
@@ -19,11 +19,10 @@ var t = async_test(""); _addTest(function(canvas, ctx) { -var canvas2 = document.createElement('canvas'); -var ctx2 = canvas2.getContext('2d'); -ctx2.font = '1em sans-serif'; -_assertSame(ctx2.font, '10px sans-serif', "ctx2.font", "'10px sans-serif'"); - + var canvas2 = document.createElement('canvas'); + var ctx2 = canvas2.getContext('2d'); + ctx2.font = '1em sans-serif'; + _assertSame(ctx2.font, '10px sans-serif', "ctx2.font", "'10px sans-serif'"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.measure.width.space.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.measure.width.space.html index 4d7ee4ef..b6f2ef5 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.measure.width.space.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/text-styles/2d.text.measure.width.space.html
@@ -26,22 +26,21 @@ var t = async_test("Space characters are converted to U+0020 and collapsed (per CSS)"); _addTest(function(canvas, ctx) { -deferTest(); -var f = new FontFace("CanvasTest", "/fonts/CanvasTest.ttf"); -document.fonts.add(f); -document.fonts.ready.then(() => { - step_timeout(t.step_func_done(function () { - ctx.font = '50px CanvasTest'; - _assertSame(ctx.measureText('A B').width, 150, "ctx.measureText('A B').width", "150"); - _assertSame(ctx.measureText('A B').width, 200, "ctx.measureText('A B').width", "200"); - _assertSame(ctx.measureText('A \x09\x0a\x0c\x0d \x09\x0a\x0c\x0dB').width, 150, "ctx.measureText('A \\x09\\x0a\\x0c\\x0d \\x09\\x0a\\x0c\\x0dB').width", "150"); - _assert(ctx.measureText('A \x0b B').width >= 200, "ctx.measureText('A \\x0b B').width >= 200"); + deferTest(); + var f = new FontFace("CanvasTest", "/fonts/CanvasTest.ttf"); + document.fonts.add(f); + document.fonts.ready.then(() => { + step_timeout(t.step_func_done(function () { + ctx.font = '50px CanvasTest'; + _assertSame(ctx.measureText('A B').width, 150, "ctx.measureText('A B').width", "150"); + _assertSame(ctx.measureText('A B').width, 200, "ctx.measureText('A B').width", "200"); + _assertSame(ctx.measureText('A \x09\x0a\x0c\x0d \x09\x0a\x0c\x0dB').width, 150, "ctx.measureText('A \\x09\\x0a\\x0c\\x0d \\x09\\x0a\\x0c\\x0dB').width", "150"); + _assert(ctx.measureText('A \x0b B').width >= 200, "ctx.measureText('A \\x0b B').width >= 200"); - _assertSame(ctx.measureText(' AB').width, 100, "ctx.measureText(' AB').width", "100"); - _assertSame(ctx.measureText('AB ').width, 100, "ctx.measureText('AB ').width", "100"); - }), 500); -}); - + _assertSame(ctx.measureText(' AB').width, 100, "ctx.measureText(' AB').width", "100"); + _assertSame(ctx.measureText('AB ').width, 100, "ctx.measureText('AB ').width", "100"); + }), 500); + }); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.bitmap.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.bitmap.html index 459e0d54..6814679 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.bitmap.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.bitmap.html
@@ -19,14 +19,13 @@ var t = async_test("save()/restore() does not affect the current bitmap"); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.save(); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.restore(); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.save(); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.restore(); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.clip.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.clip.html index 6d1ab02..1ce44ab 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.clip.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.clip.html
@@ -19,16 +19,15 @@ var t = async_test("save()/restore() affects the clipping path"); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.save(); -ctx.rect(0, 0, 1, 1); -ctx.clip(); -ctx.restore(); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.save(); + ctx.rect(0, 0, 1, 1); + ctx.clip(); + ctx.restore(); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.fillStyle.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.fillStyle.html index a57274c..1eb8360 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.fillStyle.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.fillStyle.html
@@ -19,22 +19,21 @@ var t = async_test("save()/restore() works for fillStyle"); _addTest(function(canvas, ctx) { -// Test that restore() undoes any modifications -var old = ctx.fillStyle; -ctx.save(); -ctx.fillStyle = "#ff0000"; -ctx.restore(); -_assertSame(ctx.fillStyle, old, "ctx.fillStyle", "old"); + // Test that restore() undoes any modifications + var old = ctx.fillStyle; + ctx.save(); + ctx.fillStyle = "#ff0000"; + ctx.restore(); + _assertSame(ctx.fillStyle, old, "ctx.fillStyle", "old"); -// Also test that save() doesn't modify the values -ctx.fillStyle = "#ff0000"; -old = ctx.fillStyle; - // we're not interested in failures caused by get(set(x)) != x (e.g. - // from rounding), so compare against 'old' instead of against "#ff0000" -ctx.save(); -_assertSame(ctx.fillStyle, old, "ctx.fillStyle", "old"); -ctx.restore(); - + // Also test that save() doesn't modify the values + ctx.fillStyle = "#ff0000"; + old = ctx.fillStyle; + // we're not interested in failures caused by get(set(x)) != x (e.g. + // from rounding), so compare against 'old' instead of against "#ff0000" + ctx.save(); + _assertSame(ctx.fillStyle, old, "ctx.fillStyle", "old"); + ctx.restore(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.font.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.font.html index ff674ac3..8cb4d17 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.font.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.font.html
@@ -19,22 +19,21 @@ var t = async_test("save()/restore() works for font"); _addTest(function(canvas, ctx) { -// Test that restore() undoes any modifications -var old = ctx.font; -ctx.save(); -ctx.font = "25px serif"; -ctx.restore(); -_assertSame(ctx.font, old, "ctx.font", "old"); + // Test that restore() undoes any modifications + var old = ctx.font; + ctx.save(); + ctx.font = "25px serif"; + ctx.restore(); + _assertSame(ctx.font, old, "ctx.font", "old"); -// Also test that save() doesn't modify the values -ctx.font = "25px serif"; -old = ctx.font; - // we're not interested in failures caused by get(set(x)) != x (e.g. - // from rounding), so compare against 'old' instead of against "25px serif" -ctx.save(); -_assertSame(ctx.font, old, "ctx.font", "old"); -ctx.restore(); - + // Also test that save() doesn't modify the values + ctx.font = "25px serif"; + old = ctx.font; + // we're not interested in failures caused by get(set(x)) != x (e.g. + // from rounding), so compare against 'old' instead of against "25px serif" + ctx.save(); + _assertSame(ctx.font, old, "ctx.font", "old"); + ctx.restore(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.globalAlpha.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.globalAlpha.html index db48f96..f3dae5f 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.globalAlpha.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.globalAlpha.html
@@ -19,22 +19,21 @@ var t = async_test("save()/restore() works for globalAlpha"); _addTest(function(canvas, ctx) { -// Test that restore() undoes any modifications -var old = ctx.globalAlpha; -ctx.save(); -ctx.globalAlpha = 0.5; -ctx.restore(); -_assertSame(ctx.globalAlpha, old, "ctx.globalAlpha", "old"); + // Test that restore() undoes any modifications + var old = ctx.globalAlpha; + ctx.save(); + ctx.globalAlpha = 0.5; + ctx.restore(); + _assertSame(ctx.globalAlpha, old, "ctx.globalAlpha", "old"); -// Also test that save() doesn't modify the values -ctx.globalAlpha = 0.5; -old = ctx.globalAlpha; - // we're not interested in failures caused by get(set(x)) != x (e.g. - // from rounding), so compare against 'old' instead of against 0.5 -ctx.save(); -_assertSame(ctx.globalAlpha, old, "ctx.globalAlpha", "old"); -ctx.restore(); - + // Also test that save() doesn't modify the values + ctx.globalAlpha = 0.5; + old = ctx.globalAlpha; + // we're not interested in failures caused by get(set(x)) != x (e.g. + // from rounding), so compare against 'old' instead of against 0.5 + ctx.save(); + _assertSame(ctx.globalAlpha, old, "ctx.globalAlpha", "old"); + ctx.restore(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.globalCompositeOperation.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.globalCompositeOperation.html index cbc4198b..fed0cee 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.globalCompositeOperation.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.globalCompositeOperation.html
@@ -19,22 +19,21 @@ var t = async_test("save()/restore() works for globalCompositeOperation"); _addTest(function(canvas, ctx) { -// Test that restore() undoes any modifications -var old = ctx.globalCompositeOperation; -ctx.save(); -ctx.globalCompositeOperation = "copy"; -ctx.restore(); -_assertSame(ctx.globalCompositeOperation, old, "ctx.globalCompositeOperation", "old"); + // Test that restore() undoes any modifications + var old = ctx.globalCompositeOperation; + ctx.save(); + ctx.globalCompositeOperation = "copy"; + ctx.restore(); + _assertSame(ctx.globalCompositeOperation, old, "ctx.globalCompositeOperation", "old"); -// Also test that save() doesn't modify the values -ctx.globalCompositeOperation = "copy"; -old = ctx.globalCompositeOperation; - // we're not interested in failures caused by get(set(x)) != x (e.g. - // from rounding), so compare against 'old' instead of against "copy" -ctx.save(); -_assertSame(ctx.globalCompositeOperation, old, "ctx.globalCompositeOperation", "old"); -ctx.restore(); - + // Also test that save() doesn't modify the values + ctx.globalCompositeOperation = "copy"; + old = ctx.globalCompositeOperation; + // we're not interested in failures caused by get(set(x)) != x (e.g. + // from rounding), so compare against 'old' instead of against "copy" + ctx.save(); + _assertSame(ctx.globalCompositeOperation, old, "ctx.globalCompositeOperation", "old"); + ctx.restore(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.lineCap.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.lineCap.html index fafbde62..90c52ce 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.lineCap.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.lineCap.html
@@ -19,22 +19,21 @@ var t = async_test("save()/restore() works for lineCap"); _addTest(function(canvas, ctx) { -// Test that restore() undoes any modifications -var old = ctx.lineCap; -ctx.save(); -ctx.lineCap = "round"; -ctx.restore(); -_assertSame(ctx.lineCap, old, "ctx.lineCap", "old"); + // Test that restore() undoes any modifications + var old = ctx.lineCap; + ctx.save(); + ctx.lineCap = "round"; + ctx.restore(); + _assertSame(ctx.lineCap, old, "ctx.lineCap", "old"); -// Also test that save() doesn't modify the values -ctx.lineCap = "round"; -old = ctx.lineCap; - // we're not interested in failures caused by get(set(x)) != x (e.g. - // from rounding), so compare against 'old' instead of against "round" -ctx.save(); -_assertSame(ctx.lineCap, old, "ctx.lineCap", "old"); -ctx.restore(); - + // Also test that save() doesn't modify the values + ctx.lineCap = "round"; + old = ctx.lineCap; + // we're not interested in failures caused by get(set(x)) != x (e.g. + // from rounding), so compare against 'old' instead of against "round" + ctx.save(); + _assertSame(ctx.lineCap, old, "ctx.lineCap", "old"); + ctx.restore(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.lineJoin.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.lineJoin.html index 46d3ec6..00495d9 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.lineJoin.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.lineJoin.html
@@ -19,22 +19,21 @@ var t = async_test("save()/restore() works for lineJoin"); _addTest(function(canvas, ctx) { -// Test that restore() undoes any modifications -var old = ctx.lineJoin; -ctx.save(); -ctx.lineJoin = "round"; -ctx.restore(); -_assertSame(ctx.lineJoin, old, "ctx.lineJoin", "old"); + // Test that restore() undoes any modifications + var old = ctx.lineJoin; + ctx.save(); + ctx.lineJoin = "round"; + ctx.restore(); + _assertSame(ctx.lineJoin, old, "ctx.lineJoin", "old"); -// Also test that save() doesn't modify the values -ctx.lineJoin = "round"; -old = ctx.lineJoin; - // we're not interested in failures caused by get(set(x)) != x (e.g. - // from rounding), so compare against 'old' instead of against "round" -ctx.save(); -_assertSame(ctx.lineJoin, old, "ctx.lineJoin", "old"); -ctx.restore(); - + // Also test that save() doesn't modify the values + ctx.lineJoin = "round"; + old = ctx.lineJoin; + // we're not interested in failures caused by get(set(x)) != x (e.g. + // from rounding), so compare against 'old' instead of against "round" + ctx.save(); + _assertSame(ctx.lineJoin, old, "ctx.lineJoin", "old"); + ctx.restore(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.lineWidth.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.lineWidth.html index ac96381..0705878 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.lineWidth.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.lineWidth.html
@@ -19,22 +19,21 @@ var t = async_test("save()/restore() works for lineWidth"); _addTest(function(canvas, ctx) { -// Test that restore() undoes any modifications -var old = ctx.lineWidth; -ctx.save(); -ctx.lineWidth = 0.5; -ctx.restore(); -_assertSame(ctx.lineWidth, old, "ctx.lineWidth", "old"); + // Test that restore() undoes any modifications + var old = ctx.lineWidth; + ctx.save(); + ctx.lineWidth = 0.5; + ctx.restore(); + _assertSame(ctx.lineWidth, old, "ctx.lineWidth", "old"); -// Also test that save() doesn't modify the values -ctx.lineWidth = 0.5; -old = ctx.lineWidth; - // we're not interested in failures caused by get(set(x)) != x (e.g. - // from rounding), so compare against 'old' instead of against 0.5 -ctx.save(); -_assertSame(ctx.lineWidth, old, "ctx.lineWidth", "old"); -ctx.restore(); - + // Also test that save() doesn't modify the values + ctx.lineWidth = 0.5; + old = ctx.lineWidth; + // we're not interested in failures caused by get(set(x)) != x (e.g. + // from rounding), so compare against 'old' instead of against 0.5 + ctx.save(); + _assertSame(ctx.lineWidth, old, "ctx.lineWidth", "old"); + ctx.restore(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.miterLimit.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.miterLimit.html index ab3c55ea..efd2207 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.miterLimit.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.miterLimit.html
@@ -19,22 +19,21 @@ var t = async_test("save()/restore() works for miterLimit"); _addTest(function(canvas, ctx) { -// Test that restore() undoes any modifications -var old = ctx.miterLimit; -ctx.save(); -ctx.miterLimit = 0.5; -ctx.restore(); -_assertSame(ctx.miterLimit, old, "ctx.miterLimit", "old"); + // Test that restore() undoes any modifications + var old = ctx.miterLimit; + ctx.save(); + ctx.miterLimit = 0.5; + ctx.restore(); + _assertSame(ctx.miterLimit, old, "ctx.miterLimit", "old"); -// Also test that save() doesn't modify the values -ctx.miterLimit = 0.5; -old = ctx.miterLimit; - // we're not interested in failures caused by get(set(x)) != x (e.g. - // from rounding), so compare against 'old' instead of against 0.5 -ctx.save(); -_assertSame(ctx.miterLimit, old, "ctx.miterLimit", "old"); -ctx.restore(); - + // Also test that save() doesn't modify the values + ctx.miterLimit = 0.5; + old = ctx.miterLimit; + // we're not interested in failures caused by get(set(x)) != x (e.g. + // from rounding), so compare against 'old' instead of against 0.5 + ctx.save(); + _assertSame(ctx.miterLimit, old, "ctx.miterLimit", "old"); + ctx.restore(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.path.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.path.html index a8023f1..5848ae5 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.path.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.path.html
@@ -19,15 +19,14 @@ var t = async_test("save()/restore() does not affect the current path"); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.save(); -ctx.rect(0, 0, 100, 50); -ctx.restore(); -ctx.fillStyle = '#0f0'; -ctx.fill(); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.save(); + ctx.rect(0, 0, 100, 50); + ctx.restore(); + ctx.fillStyle = '#0f0'; + ctx.fill(); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.shadowBlur.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.shadowBlur.html index 2525271..c5699b7 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.shadowBlur.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.shadowBlur.html
@@ -19,22 +19,21 @@ var t = async_test("save()/restore() works for shadowBlur"); _addTest(function(canvas, ctx) { -// Test that restore() undoes any modifications -var old = ctx.shadowBlur; -ctx.save(); -ctx.shadowBlur = 5; -ctx.restore(); -_assertSame(ctx.shadowBlur, old, "ctx.shadowBlur", "old"); + // Test that restore() undoes any modifications + var old = ctx.shadowBlur; + ctx.save(); + ctx.shadowBlur = 5; + ctx.restore(); + _assertSame(ctx.shadowBlur, old, "ctx.shadowBlur", "old"); -// Also test that save() doesn't modify the values -ctx.shadowBlur = 5; -old = ctx.shadowBlur; - // we're not interested in failures caused by get(set(x)) != x (e.g. - // from rounding), so compare against 'old' instead of against 5 -ctx.save(); -_assertSame(ctx.shadowBlur, old, "ctx.shadowBlur", "old"); -ctx.restore(); - + // Also test that save() doesn't modify the values + ctx.shadowBlur = 5; + old = ctx.shadowBlur; + // we're not interested in failures caused by get(set(x)) != x (e.g. + // from rounding), so compare against 'old' instead of against 5 + ctx.save(); + _assertSame(ctx.shadowBlur, old, "ctx.shadowBlur", "old"); + ctx.restore(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.shadowColor.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.shadowColor.html index 64690e3..9b6a435 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.shadowColor.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.shadowColor.html
@@ -19,22 +19,21 @@ var t = async_test("save()/restore() works for shadowColor"); _addTest(function(canvas, ctx) { -// Test that restore() undoes any modifications -var old = ctx.shadowColor; -ctx.save(); -ctx.shadowColor = "#ff0000"; -ctx.restore(); -_assertSame(ctx.shadowColor, old, "ctx.shadowColor", "old"); + // Test that restore() undoes any modifications + var old = ctx.shadowColor; + ctx.save(); + ctx.shadowColor = "#ff0000"; + ctx.restore(); + _assertSame(ctx.shadowColor, old, "ctx.shadowColor", "old"); -// Also test that save() doesn't modify the values -ctx.shadowColor = "#ff0000"; -old = ctx.shadowColor; - // we're not interested in failures caused by get(set(x)) != x (e.g. - // from rounding), so compare against 'old' instead of against "#ff0000" -ctx.save(); -_assertSame(ctx.shadowColor, old, "ctx.shadowColor", "old"); -ctx.restore(); - + // Also test that save() doesn't modify the values + ctx.shadowColor = "#ff0000"; + old = ctx.shadowColor; + // we're not interested in failures caused by get(set(x)) != x (e.g. + // from rounding), so compare against 'old' instead of against "#ff0000" + ctx.save(); + _assertSame(ctx.shadowColor, old, "ctx.shadowColor", "old"); + ctx.restore(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.shadowOffsetX.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.shadowOffsetX.html index a140c3fa0..427a44a 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.shadowOffsetX.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.shadowOffsetX.html
@@ -19,22 +19,21 @@ var t = async_test("save()/restore() works for shadowOffsetX"); _addTest(function(canvas, ctx) { -// Test that restore() undoes any modifications -var old = ctx.shadowOffsetX; -ctx.save(); -ctx.shadowOffsetX = 5; -ctx.restore(); -_assertSame(ctx.shadowOffsetX, old, "ctx.shadowOffsetX", "old"); + // Test that restore() undoes any modifications + var old = ctx.shadowOffsetX; + ctx.save(); + ctx.shadowOffsetX = 5; + ctx.restore(); + _assertSame(ctx.shadowOffsetX, old, "ctx.shadowOffsetX", "old"); -// Also test that save() doesn't modify the values -ctx.shadowOffsetX = 5; -old = ctx.shadowOffsetX; - // we're not interested in failures caused by get(set(x)) != x (e.g. - // from rounding), so compare against 'old' instead of against 5 -ctx.save(); -_assertSame(ctx.shadowOffsetX, old, "ctx.shadowOffsetX", "old"); -ctx.restore(); - + // Also test that save() doesn't modify the values + ctx.shadowOffsetX = 5; + old = ctx.shadowOffsetX; + // we're not interested in failures caused by get(set(x)) != x (e.g. + // from rounding), so compare against 'old' instead of against 5 + ctx.save(); + _assertSame(ctx.shadowOffsetX, old, "ctx.shadowOffsetX", "old"); + ctx.restore(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.shadowOffsetY.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.shadowOffsetY.html index 8fc9b7c..b711445 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.shadowOffsetY.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.shadowOffsetY.html
@@ -19,22 +19,21 @@ var t = async_test("save()/restore() works for shadowOffsetY"); _addTest(function(canvas, ctx) { -// Test that restore() undoes any modifications -var old = ctx.shadowOffsetY; -ctx.save(); -ctx.shadowOffsetY = 5; -ctx.restore(); -_assertSame(ctx.shadowOffsetY, old, "ctx.shadowOffsetY", "old"); + // Test that restore() undoes any modifications + var old = ctx.shadowOffsetY; + ctx.save(); + ctx.shadowOffsetY = 5; + ctx.restore(); + _assertSame(ctx.shadowOffsetY, old, "ctx.shadowOffsetY", "old"); -// Also test that save() doesn't modify the values -ctx.shadowOffsetY = 5; -old = ctx.shadowOffsetY; - // we're not interested in failures caused by get(set(x)) != x (e.g. - // from rounding), so compare against 'old' instead of against 5 -ctx.save(); -_assertSame(ctx.shadowOffsetY, old, "ctx.shadowOffsetY", "old"); -ctx.restore(); - + // Also test that save() doesn't modify the values + ctx.shadowOffsetY = 5; + old = ctx.shadowOffsetY; + // we're not interested in failures caused by get(set(x)) != x (e.g. + // from rounding), so compare against 'old' instead of against 5 + ctx.save(); + _assertSame(ctx.shadowOffsetY, old, "ctx.shadowOffsetY", "old"); + ctx.restore(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.stack.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.stack.html index 252074f..122c5434 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.stack.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.stack.html
@@ -19,17 +19,16 @@ var t = async_test("save()/restore() can be nested as a stack"); _addTest(function(canvas, ctx) { -ctx.lineWidth = 1; -ctx.save(); -ctx.lineWidth = 2; -ctx.save(); -ctx.lineWidth = 3; -_assertSame(ctx.lineWidth, 3, "ctx.lineWidth", "3"); -ctx.restore(); -_assertSame(ctx.lineWidth, 2, "ctx.lineWidth", "2"); -ctx.restore(); -_assertSame(ctx.lineWidth, 1, "ctx.lineWidth", "1"); - + ctx.lineWidth = 1; + ctx.save(); + ctx.lineWidth = 2; + ctx.save(); + ctx.lineWidth = 3; + _assertSame(ctx.lineWidth, 3, "ctx.lineWidth", "3"); + ctx.restore(); + _assertSame(ctx.lineWidth, 2, "ctx.lineWidth", "2"); + ctx.restore(); + _assertSame(ctx.lineWidth, 1, "ctx.lineWidth", "1"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.stackdepth.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.stackdepth.html index 433e83c..6fa591d 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.stackdepth.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.stackdepth.html
@@ -19,18 +19,17 @@ var t = async_test("save()/restore() stack depth is not unreasonably limited"); _addTest(function(canvas, ctx) { -var limit = 512; -for (var i = 1; i < limit; ++i) -{ - ctx.save(); - ctx.lineWidth = i; -} -for (var i = limit-1; i > 0; --i) -{ - _assertSame(ctx.lineWidth, i, "ctx.lineWidth", "i"); - ctx.restore(); -} - + var limit = 512; + for (var i = 1; i < limit; ++i) + { + ctx.save(); + ctx.lineWidth = i; + } + for (var i = limit-1; i > 0; --i) + { + _assertSame(ctx.lineWidth, i, "ctx.lineWidth", "i"); + ctx.restore(); + } }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.strokeStyle.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.strokeStyle.html index aeae2f8..9ccaac7 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.strokeStyle.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.strokeStyle.html
@@ -19,22 +19,21 @@ var t = async_test("save()/restore() works for strokeStyle"); _addTest(function(canvas, ctx) { -// Test that restore() undoes any modifications -var old = ctx.strokeStyle; -ctx.save(); -ctx.strokeStyle = "#ff0000"; -ctx.restore(); -_assertSame(ctx.strokeStyle, old, "ctx.strokeStyle", "old"); + // Test that restore() undoes any modifications + var old = ctx.strokeStyle; + ctx.save(); + ctx.strokeStyle = "#ff0000"; + ctx.restore(); + _assertSame(ctx.strokeStyle, old, "ctx.strokeStyle", "old"); -// Also test that save() doesn't modify the values -ctx.strokeStyle = "#ff0000"; -old = ctx.strokeStyle; - // we're not interested in failures caused by get(set(x)) != x (e.g. - // from rounding), so compare against 'old' instead of against "#ff0000" -ctx.save(); -_assertSame(ctx.strokeStyle, old, "ctx.strokeStyle", "old"); -ctx.restore(); - + // Also test that save() doesn't modify the values + ctx.strokeStyle = "#ff0000"; + old = ctx.strokeStyle; + // we're not interested in failures caused by get(set(x)) != x (e.g. + // from rounding), so compare against 'old' instead of against "#ff0000" + ctx.save(); + _assertSame(ctx.strokeStyle, old, "ctx.strokeStyle", "old"); + ctx.restore(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.textAlign.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.textAlign.html index 3bac234..a86d62a 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.textAlign.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.textAlign.html
@@ -19,22 +19,21 @@ var t = async_test("save()/restore() works for textAlign"); _addTest(function(canvas, ctx) { -// Test that restore() undoes any modifications -var old = ctx.textAlign; -ctx.save(); -ctx.textAlign = "center"; -ctx.restore(); -_assertSame(ctx.textAlign, old, "ctx.textAlign", "old"); + // Test that restore() undoes any modifications + var old = ctx.textAlign; + ctx.save(); + ctx.textAlign = "center"; + ctx.restore(); + _assertSame(ctx.textAlign, old, "ctx.textAlign", "old"); -// Also test that save() doesn't modify the values -ctx.textAlign = "center"; -old = ctx.textAlign; - // we're not interested in failures caused by get(set(x)) != x (e.g. - // from rounding), so compare against 'old' instead of against "center" -ctx.save(); -_assertSame(ctx.textAlign, old, "ctx.textAlign", "old"); -ctx.restore(); - + // Also test that save() doesn't modify the values + ctx.textAlign = "center"; + old = ctx.textAlign; + // we're not interested in failures caused by get(set(x)) != x (e.g. + // from rounding), so compare against 'old' instead of against "center" + ctx.save(); + _assertSame(ctx.textAlign, old, "ctx.textAlign", "old"); + ctx.restore(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.textBaseline.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.textBaseline.html index 238ee7e..5cbf712 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.textBaseline.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.textBaseline.html
@@ -19,22 +19,21 @@ var t = async_test("save()/restore() works for textBaseline"); _addTest(function(canvas, ctx) { -// Test that restore() undoes any modifications -var old = ctx.textBaseline; -ctx.save(); -ctx.textBaseline = "bottom"; -ctx.restore(); -_assertSame(ctx.textBaseline, old, "ctx.textBaseline", "old"); + // Test that restore() undoes any modifications + var old = ctx.textBaseline; + ctx.save(); + ctx.textBaseline = "bottom"; + ctx.restore(); + _assertSame(ctx.textBaseline, old, "ctx.textBaseline", "old"); -// Also test that save() doesn't modify the values -ctx.textBaseline = "bottom"; -old = ctx.textBaseline; - // we're not interested in failures caused by get(set(x)) != x (e.g. - // from rounding), so compare against 'old' instead of against "bottom" -ctx.save(); -_assertSame(ctx.textBaseline, old, "ctx.textBaseline", "old"); -ctx.restore(); - + // Also test that save() doesn't modify the values + ctx.textBaseline = "bottom"; + old = ctx.textBaseline; + // we're not interested in failures caused by get(set(x)) != x (e.g. + // from rounding), so compare against 'old' instead of against "bottom" + ctx.save(); + _assertSame(ctx.textBaseline, old, "ctx.textBaseline", "old"); + ctx.restore(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.transformation.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.transformation.html index 6d035ef..6edee8a 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.transformation.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.transformation.html
@@ -19,15 +19,14 @@ var t = async_test("save()/restore() affects the current transformation matrix"); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.save(); -ctx.translate(200, 0); -ctx.restore(); -ctx.fillStyle = '#f00'; -ctx.fillRect(-200, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.save(); + ctx.translate(200, 0); + ctx.restore(); + ctx.fillStyle = '#f00'; + ctx.fillRect(-200, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.underflow.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.underflow.html index bbf6433..763f269 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.underflow.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/the-canvas-state/2d.state.saverestore.underflow.html
@@ -19,12 +19,11 @@ var t = async_test("restore() with an empty stack has no effect"); _addTest(function(canvas, ctx) { -for (var i = 0; i < 16; ++i) - ctx.restore(); -ctx.lineWidth = 0.5; -ctx.restore(); -_assertSame(ctx.lineWidth, 0.5, "ctx.lineWidth", "0.5"); - + for (var i = 0; i < 16; ++i) + ctx.restore(); + ctx.lineWidth = 0.5; + ctx.restore(); + _assertSame(ctx.lineWidth, 0.5, "ctx.lineWidth", "0.5"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.clear.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.clear.html index 0dad085..453d5e7f 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.clear.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.clear.html
@@ -17,31 +17,30 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -var offscreenCanvas2 = new OffscreenCanvas(canvas.width, canvas.height); -var ctx2 = offscreenCanvas2.getContext('2d'); -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/yellow75.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - ctx2.drawImage(bitmap, 0, 0); - ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; - ctx.fillRect(0, 0, 100, 50); - ctx.globalCompositeOperation = 'clear'; - ctx.drawImage(offscreenCanvas2, 0, 0); - _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); - }, t_fail); -}).then(t_pass, t_fail); + var offscreenCanvas2 = new OffscreenCanvas(canvas.width, canvas.height); + var ctx2 = offscreenCanvas2.getContext('2d'); + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/yellow75.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + ctx2.drawImage(bitmap, 0, 0); + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'clear'; + ctx.drawImage(offscreenCanvas2, 0, 0); + _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); + }, t_fail); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.clear.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.clear.worker.js index a06cbdc2..8640778 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.clear.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.clear.worker.js
@@ -13,31 +13,29 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -var offscreenCanvas2 = new OffscreenCanvas(canvas.width, canvas.height); -var ctx2 = offscreenCanvas2.getContext('2d'); -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/yellow75.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - ctx2.drawImage(bitmap, 0, 0); - ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; - ctx.fillRect(0, 0, 100, 50); - ctx.globalCompositeOperation = 'clear'; - ctx.drawImage(offscreenCanvas2, 0, 0); - _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); - }, t_fail); -}).then(t_pass, t_fail); - + var offscreenCanvas2 = new OffscreenCanvas(canvas.width, canvas.height); + var ctx2 = offscreenCanvas2.getContext('2d'); + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/yellow75.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + ctx2.drawImage(bitmap, 0, 0); + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'clear'; + ctx.drawImage(offscreenCanvas2, 0, 0); + _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); + }, t_fail); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.copy.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.copy.html index a89736b..a54b09bb 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.copy.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.copy.html
@@ -17,31 +17,30 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -var offscreenCanvas2 = new OffscreenCanvas(canvas.width, canvas.height); -var ctx2 = offscreenCanvas2.getContext('2d'); -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/yellow75.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - ctx2.drawImage(bitmap, 0, 0); - ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; - ctx.fillRect(0, 0, 100, 50); - ctx.globalCompositeOperation = 'copy'; - ctx.drawImage(offscreenCanvas2, 0, 0); - _assertPixelApprox(canvas, 50,25, 255,255,0,191, 5); - }, t_fail); -}).then(t_pass, t_fail); + var offscreenCanvas2 = new OffscreenCanvas(canvas.width, canvas.height); + var ctx2 = offscreenCanvas2.getContext('2d'); + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/yellow75.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + ctx2.drawImage(bitmap, 0, 0); + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'copy'; + ctx.drawImage(offscreenCanvas2, 0, 0); + _assertPixelApprox(canvas, 50,25, 255,255,0,191, 5); + }, t_fail); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.copy.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.copy.worker.js index a8fbc74..42d7ec2 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.copy.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.copy.worker.js
@@ -13,31 +13,29 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -var offscreenCanvas2 = new OffscreenCanvas(canvas.width, canvas.height); -var ctx2 = offscreenCanvas2.getContext('2d'); -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/yellow75.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - ctx2.drawImage(bitmap, 0, 0); - ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; - ctx.fillRect(0, 0, 100, 50); - ctx.globalCompositeOperation = 'copy'; - ctx.drawImage(offscreenCanvas2, 0, 0); - _assertPixelApprox(canvas, 50,25, 255,255,0,191, 5); - }, t_fail); -}).then(t_pass, t_fail); - + var offscreenCanvas2 = new OffscreenCanvas(canvas.width, canvas.height); + var ctx2 = offscreenCanvas2.getContext('2d'); + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/yellow75.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + ctx2.drawImage(bitmap, 0, 0); + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'copy'; + ctx.drawImage(offscreenCanvas2, 0, 0); + _assertPixelApprox(canvas, 50,25, 255,255,0,191, 5); + }, t_fail); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.destination-atop.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.destination-atop.html index dc53e8b..d88afa5d 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.destination-atop.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.destination-atop.html
@@ -17,31 +17,30 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -var offscreenCanvas2 = new OffscreenCanvas(canvas.width, canvas.height); -var ctx2 = offscreenCanvas2.getContext('2d'); -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/yellow75.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - ctx2.drawImage(bitmap, 0, 0); - ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; - ctx.fillRect(0, 0, 100, 50); - ctx.globalCompositeOperation = 'destination-atop'; - ctx.drawImage(offscreenCanvas2, 0, 0); - _assertPixelApprox(canvas, 50,25, 128,255,128,191, 5); - }, t_fail); -}).then(t_pass, t_fail); + var offscreenCanvas2 = new OffscreenCanvas(canvas.width, canvas.height); + var ctx2 = offscreenCanvas2.getContext('2d'); + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/yellow75.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + ctx2.drawImage(bitmap, 0, 0); + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-atop'; + ctx.drawImage(offscreenCanvas2, 0, 0); + _assertPixelApprox(canvas, 50,25, 128,255,128,191, 5); + }, t_fail); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.destination-atop.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.destination-atop.worker.js index fcb9445..96627b0 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.destination-atop.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.destination-atop.worker.js
@@ -13,31 +13,29 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -var offscreenCanvas2 = new OffscreenCanvas(canvas.width, canvas.height); -var ctx2 = offscreenCanvas2.getContext('2d'); -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/yellow75.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - ctx2.drawImage(bitmap, 0, 0); - ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; - ctx.fillRect(0, 0, 100, 50); - ctx.globalCompositeOperation = 'destination-atop'; - ctx.drawImage(offscreenCanvas2, 0, 0); - _assertPixelApprox(canvas, 50,25, 128,255,128,191, 5); - }, t_fail); -}).then(t_pass, t_fail); - + var offscreenCanvas2 = new OffscreenCanvas(canvas.width, canvas.height); + var ctx2 = offscreenCanvas2.getContext('2d'); + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/yellow75.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + ctx2.drawImage(bitmap, 0, 0); + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-atop'; + ctx.drawImage(offscreenCanvas2, 0, 0); + _assertPixelApprox(canvas, 50,25, 128,255,128,191, 5); + }, t_fail); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.destination-in.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.destination-in.html index 73140e1..54223ee 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.destination-in.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.destination-in.html
@@ -17,31 +17,30 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -var offscreenCanvas2 = new OffscreenCanvas(canvas.width, canvas.height); -var ctx2 = offscreenCanvas2.getContext('2d'); -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/yellow75.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - ctx2.drawImage(bitmap, 0, 0); - ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; - ctx.fillRect(0, 0, 100, 50); - ctx.globalCompositeOperation = 'destination-in'; - ctx.drawImage(offscreenCanvas2, 0, 0); - _assertPixelApprox(canvas, 50,25, 0,255,255,96, 5); - }, t_fail); -}).then(t_pass, t_fail); + var offscreenCanvas2 = new OffscreenCanvas(canvas.width, canvas.height); + var ctx2 = offscreenCanvas2.getContext('2d'); + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/yellow75.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + ctx2.drawImage(bitmap, 0, 0); + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-in'; + ctx.drawImage(offscreenCanvas2, 0, 0); + _assertPixelApprox(canvas, 50,25, 0,255,255,96, 5); + }, t_fail); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.destination-in.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.destination-in.worker.js index e5d7f0b..525ca84f 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.destination-in.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.destination-in.worker.js
@@ -13,31 +13,29 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -var offscreenCanvas2 = new OffscreenCanvas(canvas.width, canvas.height); -var ctx2 = offscreenCanvas2.getContext('2d'); -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/yellow75.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - ctx2.drawImage(bitmap, 0, 0); - ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; - ctx.fillRect(0, 0, 100, 50); - ctx.globalCompositeOperation = 'destination-in'; - ctx.drawImage(offscreenCanvas2, 0, 0); - _assertPixelApprox(canvas, 50,25, 0,255,255,96, 5); - }, t_fail); -}).then(t_pass, t_fail); - + var offscreenCanvas2 = new OffscreenCanvas(canvas.width, canvas.height); + var ctx2 = offscreenCanvas2.getContext('2d'); + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/yellow75.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + ctx2.drawImage(bitmap, 0, 0); + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-in'; + ctx.drawImage(offscreenCanvas2, 0, 0); + _assertPixelApprox(canvas, 50,25, 0,255,255,96, 5); + }, t_fail); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.destination-out.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.destination-out.html index 5f89aa2..1b9b88a 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.destination-out.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.destination-out.html
@@ -17,31 +17,30 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -var offscreenCanvas2 = new OffscreenCanvas(canvas.width, canvas.height); -var ctx2 = offscreenCanvas2.getContext('2d'); -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/yellow75.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - ctx2.drawImage(bitmap, 0, 0); - ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; - ctx.fillRect(0, 0, 100, 50); - ctx.globalCompositeOperation = 'destination-out'; - ctx.drawImage(offscreenCanvas2, 0, 0); - _assertPixelApprox(canvas, 50,25, 0,255,255,32, 5); - }, t_fail); -}).then(t_pass, t_fail); + var offscreenCanvas2 = new OffscreenCanvas(canvas.width, canvas.height); + var ctx2 = offscreenCanvas2.getContext('2d'); + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/yellow75.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + ctx2.drawImage(bitmap, 0, 0); + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-out'; + ctx.drawImage(offscreenCanvas2, 0, 0); + _assertPixelApprox(canvas, 50,25, 0,255,255,32, 5); + }, t_fail); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.destination-out.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.destination-out.worker.js index a4436be..aaaadd7 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.destination-out.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.destination-out.worker.js
@@ -13,31 +13,29 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -var offscreenCanvas2 = new OffscreenCanvas(canvas.width, canvas.height); -var ctx2 = offscreenCanvas2.getContext('2d'); -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/yellow75.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - ctx2.drawImage(bitmap, 0, 0); - ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; - ctx.fillRect(0, 0, 100, 50); - ctx.globalCompositeOperation = 'destination-out'; - ctx.drawImage(offscreenCanvas2, 0, 0); - _assertPixelApprox(canvas, 50,25, 0,255,255,32, 5); - }, t_fail); -}).then(t_pass, t_fail); - + var offscreenCanvas2 = new OffscreenCanvas(canvas.width, canvas.height); + var ctx2 = offscreenCanvas2.getContext('2d'); + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/yellow75.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + ctx2.drawImage(bitmap, 0, 0); + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-out'; + ctx.drawImage(offscreenCanvas2, 0, 0); + _assertPixelApprox(canvas, 50,25, 0,255,255,32, 5); + }, t_fail); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.destination-over.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.destination-over.html index d18f9dc..44d6a5b 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.destination-over.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.destination-over.html
@@ -17,31 +17,30 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -var offscreenCanvas2 = new OffscreenCanvas(canvas.width, canvas.height); -var ctx2 = offscreenCanvas2.getContext('2d'); -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/yellow75.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - ctx2.drawImage(bitmap, 0, 0); - ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; - ctx.fillRect(0, 0, 100, 50); - ctx.globalCompositeOperation = 'destination-over'; - ctx.drawImage(offscreenCanvas2, 0, 0); - _assertPixelApprox(canvas, 50,25, 109,255,146,223, 5); - }, t_fail); -}).then(t_pass, t_fail); + var offscreenCanvas2 = new OffscreenCanvas(canvas.width, canvas.height); + var ctx2 = offscreenCanvas2.getContext('2d'); + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/yellow75.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + ctx2.drawImage(bitmap, 0, 0); + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-over'; + ctx.drawImage(offscreenCanvas2, 0, 0); + _assertPixelApprox(canvas, 50,25, 109,255,146,223, 5); + }, t_fail); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.destination-over.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.destination-over.worker.js index 967e47b3..b13e7b1 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.destination-over.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.destination-over.worker.js
@@ -13,31 +13,29 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -var offscreenCanvas2 = new OffscreenCanvas(canvas.width, canvas.height); -var ctx2 = offscreenCanvas2.getContext('2d'); -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/yellow75.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - ctx2.drawImage(bitmap, 0, 0); - ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; - ctx.fillRect(0, 0, 100, 50); - ctx.globalCompositeOperation = 'destination-over'; - ctx.drawImage(offscreenCanvas2, 0, 0); - _assertPixelApprox(canvas, 50,25, 109,255,146,223, 5); - }, t_fail); -}).then(t_pass, t_fail); - + var offscreenCanvas2 = new OffscreenCanvas(canvas.width, canvas.height); + var ctx2 = offscreenCanvas2.getContext('2d'); + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/yellow75.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + ctx2.drawImage(bitmap, 0, 0); + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-over'; + ctx.drawImage(offscreenCanvas2, 0, 0); + _assertPixelApprox(canvas, 50,25, 109,255,146,223, 5); + }, t_fail); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.lighter.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.lighter.html index 9de44ad..65186a7 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.lighter.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.lighter.html
@@ -17,31 +17,30 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -var offscreenCanvas2 = new OffscreenCanvas(canvas.width, canvas.height); -var ctx2 = offscreenCanvas2.getContext('2d'); -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/yellow75.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - ctx2.drawImage(bitmap, 0, 0); - ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; - ctx.fillRect(0, 0, 100, 50); - ctx.globalCompositeOperation = 'lighter'; - ctx.drawImage(offscreenCanvas2, 0, 0); - _assertPixelApprox(canvas, 50,25, 191,255,128,255, 5); - }, t_fail); -}).then(t_pass, t_fail); + var offscreenCanvas2 = new OffscreenCanvas(canvas.width, canvas.height); + var ctx2 = offscreenCanvas2.getContext('2d'); + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/yellow75.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + ctx2.drawImage(bitmap, 0, 0); + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'lighter'; + ctx.drawImage(offscreenCanvas2, 0, 0); + _assertPixelApprox(canvas, 50,25, 191,255,128,255, 5); + }, t_fail); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.lighter.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.lighter.worker.js index 849d4a6..e8dd516d2 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.lighter.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.lighter.worker.js
@@ -13,31 +13,29 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -var offscreenCanvas2 = new OffscreenCanvas(canvas.width, canvas.height); -var ctx2 = offscreenCanvas2.getContext('2d'); -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/yellow75.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - ctx2.drawImage(bitmap, 0, 0); - ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; - ctx.fillRect(0, 0, 100, 50); - ctx.globalCompositeOperation = 'lighter'; - ctx.drawImage(offscreenCanvas2, 0, 0); - _assertPixelApprox(canvas, 50,25, 191,255,128,255, 5); - }, t_fail); -}).then(t_pass, t_fail); - + var offscreenCanvas2 = new OffscreenCanvas(canvas.width, canvas.height); + var ctx2 = offscreenCanvas2.getContext('2d'); + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/yellow75.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + ctx2.drawImage(bitmap, 0, 0); + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'lighter'; + ctx.drawImage(offscreenCanvas2, 0, 0); + _assertPixelApprox(canvas, 50,25, 191,255,128,255, 5); + }, t_fail); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.source-atop.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.source-atop.html index cf9d5cf..2d0b6a6 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.source-atop.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.source-atop.html
@@ -17,31 +17,30 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -var offscreenCanvas2 = new OffscreenCanvas(canvas.width, canvas.height); -var ctx2 = offscreenCanvas2.getContext('2d'); -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/yellow75.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - ctx2.drawImage(bitmap, 0, 0); - ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; - ctx.fillRect(0, 0, 100, 50); - ctx.globalCompositeOperation = 'source-atop'; - ctx.drawImage(offscreenCanvas2, 0, 0); - _assertPixelApprox(canvas, 50,25, 191,255,64,128, 5); - }, t_fail); -}).then(t_pass, t_fail); + var offscreenCanvas2 = new OffscreenCanvas(canvas.width, canvas.height); + var ctx2 = offscreenCanvas2.getContext('2d'); + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/yellow75.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + ctx2.drawImage(bitmap, 0, 0); + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-atop'; + ctx.drawImage(offscreenCanvas2, 0, 0); + _assertPixelApprox(canvas, 50,25, 191,255,64,128, 5); + }, t_fail); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.source-atop.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.source-atop.worker.js index 7601db1..f40ef449 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.source-atop.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.source-atop.worker.js
@@ -13,31 +13,29 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -var offscreenCanvas2 = new OffscreenCanvas(canvas.width, canvas.height); -var ctx2 = offscreenCanvas2.getContext('2d'); -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/yellow75.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - ctx2.drawImage(bitmap, 0, 0); - ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; - ctx.fillRect(0, 0, 100, 50); - ctx.globalCompositeOperation = 'source-atop'; - ctx.drawImage(offscreenCanvas2, 0, 0); - _assertPixelApprox(canvas, 50,25, 191,255,64,128, 5); - }, t_fail); -}).then(t_pass, t_fail); - + var offscreenCanvas2 = new OffscreenCanvas(canvas.width, canvas.height); + var ctx2 = offscreenCanvas2.getContext('2d'); + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/yellow75.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + ctx2.drawImage(bitmap, 0, 0); + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-atop'; + ctx.drawImage(offscreenCanvas2, 0, 0); + _assertPixelApprox(canvas, 50,25, 191,255,64,128, 5); + }, t_fail); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.source-in.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.source-in.html index 30864d6..28cdc267 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.source-in.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.source-in.html
@@ -17,31 +17,30 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -var offscreenCanvas2 = new OffscreenCanvas(canvas.width, canvas.height); -var ctx2 = offscreenCanvas2.getContext('2d'); -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/yellow75.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - ctx2.drawImage(bitmap, 0, 0); - ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; - ctx.fillRect(0, 0, 100, 50); - ctx.globalCompositeOperation = 'source-in'; - ctx.drawImage(offscreenCanvas2, 0, 0); - _assertPixelApprox(canvas, 50,25, 255,255,0,96, 5); - }, t_fail); -}).then(t_pass, t_fail); + var offscreenCanvas2 = new OffscreenCanvas(canvas.width, canvas.height); + var ctx2 = offscreenCanvas2.getContext('2d'); + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/yellow75.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + ctx2.drawImage(bitmap, 0, 0); + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-in'; + ctx.drawImage(offscreenCanvas2, 0, 0); + _assertPixelApprox(canvas, 50,25, 255,255,0,96, 5); + }, t_fail); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.source-in.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.source-in.worker.js index 5b21b35..4f116ac 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.source-in.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.source-in.worker.js
@@ -13,31 +13,29 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -var offscreenCanvas2 = new OffscreenCanvas(canvas.width, canvas.height); -var ctx2 = offscreenCanvas2.getContext('2d'); -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/yellow75.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - ctx2.drawImage(bitmap, 0, 0); - ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; - ctx.fillRect(0, 0, 100, 50); - ctx.globalCompositeOperation = 'source-in'; - ctx.drawImage(offscreenCanvas2, 0, 0); - _assertPixelApprox(canvas, 50,25, 255,255,0,96, 5); - }, t_fail); -}).then(t_pass, t_fail); - + var offscreenCanvas2 = new OffscreenCanvas(canvas.width, canvas.height); + var ctx2 = offscreenCanvas2.getContext('2d'); + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/yellow75.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + ctx2.drawImage(bitmap, 0, 0); + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-in'; + ctx.drawImage(offscreenCanvas2, 0, 0); + _assertPixelApprox(canvas, 50,25, 255,255,0,96, 5); + }, t_fail); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.source-out.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.source-out.html index d698540..25d5e07 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.source-out.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.source-out.html
@@ -17,31 +17,30 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -var offscreenCanvas2 = new OffscreenCanvas(canvas.width, canvas.height); -var ctx2 = offscreenCanvas2.getContext('2d'); -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/yellow75.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - ctx2.drawImage(bitmap, 0, 0); - ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; - ctx.fillRect(0, 0, 100, 50); - ctx.globalCompositeOperation = 'source-out'; - ctx.drawImage(offscreenCanvas2, 0, 0); - _assertPixelApprox(canvas, 50,25, 255,255,0,96, 5); - }, t_fail); -}).then(t_pass, t_fail); + var offscreenCanvas2 = new OffscreenCanvas(canvas.width, canvas.height); + var ctx2 = offscreenCanvas2.getContext('2d'); + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/yellow75.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + ctx2.drawImage(bitmap, 0, 0); + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-out'; + ctx.drawImage(offscreenCanvas2, 0, 0); + _assertPixelApprox(canvas, 50,25, 255,255,0,96, 5); + }, t_fail); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.source-out.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.source-out.worker.js index cf5b0a9..ce1bdd9 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.source-out.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.source-out.worker.js
@@ -13,31 +13,29 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -var offscreenCanvas2 = new OffscreenCanvas(canvas.width, canvas.height); -var ctx2 = offscreenCanvas2.getContext('2d'); -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/yellow75.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - ctx2.drawImage(bitmap, 0, 0); - ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; - ctx.fillRect(0, 0, 100, 50); - ctx.globalCompositeOperation = 'source-out'; - ctx.drawImage(offscreenCanvas2, 0, 0); - _assertPixelApprox(canvas, 50,25, 255,255,0,96, 5); - }, t_fail); -}).then(t_pass, t_fail); - + var offscreenCanvas2 = new OffscreenCanvas(canvas.width, canvas.height); + var ctx2 = offscreenCanvas2.getContext('2d'); + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/yellow75.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + ctx2.drawImage(bitmap, 0, 0); + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-out'; + ctx.drawImage(offscreenCanvas2, 0, 0); + _assertPixelApprox(canvas, 50,25, 255,255,0,96, 5); + }, t_fail); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.source-over.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.source-over.html index e1e86c7..8e6b686 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.source-over.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.source-over.html
@@ -17,31 +17,30 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -var offscreenCanvas2 = new OffscreenCanvas(canvas.width, canvas.height); -var ctx2 = offscreenCanvas2.getContext('2d'); -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/yellow75.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - ctx2.drawImage(bitmap, 0, 0); - ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; - ctx.fillRect(0, 0, 100, 50); - ctx.globalCompositeOperation = 'source-over'; - ctx.drawImage(offscreenCanvas2, 0, 0); - _assertPixelApprox(canvas, 50,25, 219,255,36,223, 5); - }, t_fail); -}).then(t_pass, t_fail); + var offscreenCanvas2 = new OffscreenCanvas(canvas.width, canvas.height); + var ctx2 = offscreenCanvas2.getContext('2d'); + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/yellow75.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + ctx2.drawImage(bitmap, 0, 0); + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-over'; + ctx.drawImage(offscreenCanvas2, 0, 0); + _assertPixelApprox(canvas, 50,25, 219,255,36,223, 5); + }, t_fail); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.source-over.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.source-over.worker.js index d61ebd1..7f4355c 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.source-over.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.source-over.worker.js
@@ -13,31 +13,29 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -var offscreenCanvas2 = new OffscreenCanvas(canvas.width, canvas.height); -var ctx2 = offscreenCanvas2.getContext('2d'); -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/yellow75.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - ctx2.drawImage(bitmap, 0, 0); - ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; - ctx.fillRect(0, 0, 100, 50); - ctx.globalCompositeOperation = 'source-over'; - ctx.drawImage(offscreenCanvas2, 0, 0); - _assertPixelApprox(canvas, 50,25, 219,255,36,223, 5); - }, t_fail); -}).then(t_pass, t_fail); - + var offscreenCanvas2 = new OffscreenCanvas(canvas.width, canvas.height); + var ctx2 = offscreenCanvas2.getContext('2d'); + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/yellow75.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + ctx2.drawImage(bitmap, 0, 0); + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-over'; + ctx.drawImage(offscreenCanvas2, 0, 0); + _assertPixelApprox(canvas, 50,25, 219,255,36,223, 5); + }, t_fail); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.xor.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.xor.html index c2d1f52..a15811a 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.xor.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.xor.html
@@ -17,31 +17,30 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -var offscreenCanvas2 = new OffscreenCanvas(canvas.width, canvas.height); -var ctx2 = offscreenCanvas2.getContext('2d'); -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/yellow75.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - ctx2.drawImage(bitmap, 0, 0); - ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; - ctx.fillRect(0, 0, 100, 50); - ctx.globalCompositeOperation = 'xor'; - ctx.drawImage(offscreenCanvas2, 0, 0); - _assertPixelApprox(canvas, 50,25, 191,255,64,128, 5); - }, t_fail); -}).then(t_pass, t_fail); + var offscreenCanvas2 = new OffscreenCanvas(canvas.width, canvas.height); + var ctx2 = offscreenCanvas2.getContext('2d'); + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/yellow75.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + ctx2.drawImage(bitmap, 0, 0); + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'xor'; + ctx.drawImage(offscreenCanvas2, 0, 0); + _assertPixelApprox(canvas, 50,25, 191,255,64,128, 5); + }, t_fail); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.xor.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.xor.worker.js index 1b2286a8..929f6f7 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.xor.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.canvas.xor.worker.js
@@ -13,31 +13,29 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -var offscreenCanvas2 = new OffscreenCanvas(canvas.width, canvas.height); -var ctx2 = offscreenCanvas2.getContext('2d'); -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/yellow75.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - ctx2.drawImage(bitmap, 0, 0); - ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; - ctx.fillRect(0, 0, 100, 50); - ctx.globalCompositeOperation = 'xor'; - ctx.drawImage(offscreenCanvas2, 0, 0); - _assertPixelApprox(canvas, 50,25, 191,255,64,128, 5); - }, t_fail); -}).then(t_pass, t_fail); - + var offscreenCanvas2 = new OffscreenCanvas(canvas.width, canvas.height); + var ctx2 = offscreenCanvas2.getContext('2d'); + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/yellow75.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + ctx2.drawImage(bitmap, 0, 0); + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'xor'; + ctx.drawImage(offscreenCanvas2, 0, 0); + _assertPixelApprox(canvas, 50,25, 191,255,64,128, 5); + }, t_fail); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.clear.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.clear.html index 842bcf1..f0e9989 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.clear.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.clear.html
@@ -17,20 +17,19 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'clear'; -ctx.rect(-20, -20, 10, 10); -ctx.clip(); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 50, 50); -_assertPixel(canvas, 25,25, 0,255,0,255); -_assertPixel(canvas, 75,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'clear'; + ctx.rect(-20, -20, 10, 10); + ctx.clip(); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 50, 50); + _assertPixel(canvas, 25,25, 0,255,0,255); + _assertPixel(canvas, 75,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.clear.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.clear.worker.js index 7365ecc3..abae05ac 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.clear.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.clear.worker.js
@@ -13,20 +13,18 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'clear'; -ctx.rect(-20, -20, 10, 10); -ctx.clip(); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 50, 50); -_assertPixel(canvas, 25,25, 0,255,0,255); -_assertPixel(canvas, 75,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'clear'; + ctx.rect(-20, -20, 10, 10); + ctx.clip(); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 50, 50); + _assertPixel(canvas, 25,25, 0,255,0,255); + _assertPixel(canvas, 75,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.copy.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.copy.html index 5d6afc1..2471cd7 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.copy.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.copy.html
@@ -17,20 +17,19 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'copy'; -ctx.rect(-20, -20, 10, 10); -ctx.clip(); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 50, 50); -_assertPixel(canvas, 25,25, 0,255,0,255); -_assertPixel(canvas, 75,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'copy'; + ctx.rect(-20, -20, 10, 10); + ctx.clip(); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 50, 50); + _assertPixel(canvas, 25,25, 0,255,0,255); + _assertPixel(canvas, 75,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.copy.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.copy.worker.js index 3158893..dfebd98 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.copy.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.copy.worker.js
@@ -13,20 +13,18 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'copy'; -ctx.rect(-20, -20, 10, 10); -ctx.clip(); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 50, 50); -_assertPixel(canvas, 25,25, 0,255,0,255); -_assertPixel(canvas, 75,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'copy'; + ctx.rect(-20, -20, 10, 10); + ctx.clip(); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 50, 50); + _assertPixel(canvas, 25,25, 0,255,0,255); + _assertPixel(canvas, 75,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.destination-atop.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.destination-atop.html index 93d4d70..efb5e7a 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.destination-atop.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.destination-atop.html
@@ -17,20 +17,19 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'destination-atop'; -ctx.rect(-20, -20, 10, 10); -ctx.clip(); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 50, 50); -_assertPixel(canvas, 25,25, 0,255,0,255); -_assertPixel(canvas, 75,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-atop'; + ctx.rect(-20, -20, 10, 10); + ctx.clip(); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 50, 50); + _assertPixel(canvas, 25,25, 0,255,0,255); + _assertPixel(canvas, 75,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.destination-atop.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.destination-atop.worker.js index 78b5368..9c8fa79c5 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.destination-atop.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.destination-atop.worker.js
@@ -13,20 +13,18 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'destination-atop'; -ctx.rect(-20, -20, 10, 10); -ctx.clip(); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 50, 50); -_assertPixel(canvas, 25,25, 0,255,0,255); -_assertPixel(canvas, 75,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-atop'; + ctx.rect(-20, -20, 10, 10); + ctx.clip(); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 50, 50); + _assertPixel(canvas, 25,25, 0,255,0,255); + _assertPixel(canvas, 75,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.destination-in.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.destination-in.html index d252037..bc467a1 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.destination-in.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.destination-in.html
@@ -17,20 +17,19 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'destination-in'; -ctx.rect(-20, -20, 10, 10); -ctx.clip(); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 50, 50); -_assertPixel(canvas, 25,25, 0,255,0,255); -_assertPixel(canvas, 75,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-in'; + ctx.rect(-20, -20, 10, 10); + ctx.clip(); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 50, 50); + _assertPixel(canvas, 25,25, 0,255,0,255); + _assertPixel(canvas, 75,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.destination-in.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.destination-in.worker.js index bc12026..a98624f 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.destination-in.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.destination-in.worker.js
@@ -13,20 +13,18 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'destination-in'; -ctx.rect(-20, -20, 10, 10); -ctx.clip(); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 50, 50); -_assertPixel(canvas, 25,25, 0,255,0,255); -_assertPixel(canvas, 75,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-in'; + ctx.rect(-20, -20, 10, 10); + ctx.clip(); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 50, 50); + _assertPixel(canvas, 25,25, 0,255,0,255); + _assertPixel(canvas, 75,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.destination-out.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.destination-out.html index fdb1792..674ec3a 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.destination-out.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.destination-out.html
@@ -17,20 +17,19 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'destination-out'; -ctx.rect(-20, -20, 10, 10); -ctx.clip(); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 50, 50); -_assertPixel(canvas, 25,25, 0,255,0,255); -_assertPixel(canvas, 75,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-out'; + ctx.rect(-20, -20, 10, 10); + ctx.clip(); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 50, 50); + _assertPixel(canvas, 25,25, 0,255,0,255); + _assertPixel(canvas, 75,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.destination-out.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.destination-out.worker.js index ebe3a70..0cf915d 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.destination-out.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.destination-out.worker.js
@@ -13,20 +13,18 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'destination-out'; -ctx.rect(-20, -20, 10, 10); -ctx.clip(); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 50, 50); -_assertPixel(canvas, 25,25, 0,255,0,255); -_assertPixel(canvas, 75,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-out'; + ctx.rect(-20, -20, 10, 10); + ctx.clip(); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 50, 50); + _assertPixel(canvas, 25,25, 0,255,0,255); + _assertPixel(canvas, 75,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.destination-over.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.destination-over.html index ae4cb49..6abd0af 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.destination-over.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.destination-over.html
@@ -17,20 +17,19 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'destination-over'; -ctx.rect(-20, -20, 10, 10); -ctx.clip(); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 50, 50); -_assertPixel(canvas, 25,25, 0,255,0,255); -_assertPixel(canvas, 75,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-over'; + ctx.rect(-20, -20, 10, 10); + ctx.clip(); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 50, 50); + _assertPixel(canvas, 25,25, 0,255,0,255); + _assertPixel(canvas, 75,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.destination-over.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.destination-over.worker.js index fb8778f..b1b5eee 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.destination-over.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.destination-over.worker.js
@@ -13,20 +13,18 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'destination-over'; -ctx.rect(-20, -20, 10, 10); -ctx.clip(); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 50, 50); -_assertPixel(canvas, 25,25, 0,255,0,255); -_assertPixel(canvas, 75,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-over'; + ctx.rect(-20, -20, 10, 10); + ctx.clip(); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 50, 50); + _assertPixel(canvas, 25,25, 0,255,0,255); + _assertPixel(canvas, 75,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.lighter.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.lighter.html index 1f705f2..00782a6 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.lighter.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.lighter.html
@@ -17,20 +17,19 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'lighter'; -ctx.rect(-20, -20, 10, 10); -ctx.clip(); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 50, 50); -_assertPixel(canvas, 25,25, 0,255,0,255); -_assertPixel(canvas, 75,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'lighter'; + ctx.rect(-20, -20, 10, 10); + ctx.clip(); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 50, 50); + _assertPixel(canvas, 25,25, 0,255,0,255); + _assertPixel(canvas, 75,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.lighter.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.lighter.worker.js index f6bf4c4..8576d9d 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.lighter.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.lighter.worker.js
@@ -13,20 +13,18 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'lighter'; -ctx.rect(-20, -20, 10, 10); -ctx.clip(); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 50, 50); -_assertPixel(canvas, 25,25, 0,255,0,255); -_assertPixel(canvas, 75,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'lighter'; + ctx.rect(-20, -20, 10, 10); + ctx.clip(); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 50, 50); + _assertPixel(canvas, 25,25, 0,255,0,255); + _assertPixel(canvas, 75,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.source-atop.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.source-atop.html index eb54747..a7dc6a3 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.source-atop.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.source-atop.html
@@ -17,20 +17,19 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'source-atop'; -ctx.rect(-20, -20, 10, 10); -ctx.clip(); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 50, 50); -_assertPixel(canvas, 25,25, 0,255,0,255); -_assertPixel(canvas, 75,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-atop'; + ctx.rect(-20, -20, 10, 10); + ctx.clip(); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 50, 50); + _assertPixel(canvas, 25,25, 0,255,0,255); + _assertPixel(canvas, 75,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.source-atop.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.source-atop.worker.js index fec34e1..fd220f52 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.source-atop.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.source-atop.worker.js
@@ -13,20 +13,18 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'source-atop'; -ctx.rect(-20, -20, 10, 10); -ctx.clip(); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 50, 50); -_assertPixel(canvas, 25,25, 0,255,0,255); -_assertPixel(canvas, 75,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-atop'; + ctx.rect(-20, -20, 10, 10); + ctx.clip(); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 50, 50); + _assertPixel(canvas, 25,25, 0,255,0,255); + _assertPixel(canvas, 75,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.source-in.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.source-in.html index cdc814f..3f24076 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.source-in.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.source-in.html
@@ -17,20 +17,19 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'source-in'; -ctx.rect(-20, -20, 10, 10); -ctx.clip(); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 50, 50); -_assertPixel(canvas, 25,25, 0,255,0,255); -_assertPixel(canvas, 75,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-in'; + ctx.rect(-20, -20, 10, 10); + ctx.clip(); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 50, 50); + _assertPixel(canvas, 25,25, 0,255,0,255); + _assertPixel(canvas, 75,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.source-in.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.source-in.worker.js index b9a67cef..0c61fb7 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.source-in.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.source-in.worker.js
@@ -13,20 +13,18 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'source-in'; -ctx.rect(-20, -20, 10, 10); -ctx.clip(); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 50, 50); -_assertPixel(canvas, 25,25, 0,255,0,255); -_assertPixel(canvas, 75,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-in'; + ctx.rect(-20, -20, 10, 10); + ctx.clip(); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 50, 50); + _assertPixel(canvas, 25,25, 0,255,0,255); + _assertPixel(canvas, 75,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.source-out.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.source-out.html index 9df047f..4033893b 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.source-out.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.source-out.html
@@ -17,20 +17,19 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'source-out'; -ctx.rect(-20, -20, 10, 10); -ctx.clip(); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 50, 50); -_assertPixel(canvas, 25,25, 0,255,0,255); -_assertPixel(canvas, 75,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-out'; + ctx.rect(-20, -20, 10, 10); + ctx.clip(); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 50, 50); + _assertPixel(canvas, 25,25, 0,255,0,255); + _assertPixel(canvas, 75,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.source-out.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.source-out.worker.js index 9d252406..ec57663 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.source-out.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.source-out.worker.js
@@ -13,20 +13,18 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'source-out'; -ctx.rect(-20, -20, 10, 10); -ctx.clip(); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 50, 50); -_assertPixel(canvas, 25,25, 0,255,0,255); -_assertPixel(canvas, 75,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-out'; + ctx.rect(-20, -20, 10, 10); + ctx.clip(); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 50, 50); + _assertPixel(canvas, 25,25, 0,255,0,255); + _assertPixel(canvas, 75,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.source-over.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.source-over.html index 522f4f9..5b48161 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.source-over.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.source-over.html
@@ -17,20 +17,19 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'source-over'; -ctx.rect(-20, -20, 10, 10); -ctx.clip(); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 50, 50); -_assertPixel(canvas, 25,25, 0,255,0,255); -_assertPixel(canvas, 75,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-over'; + ctx.rect(-20, -20, 10, 10); + ctx.clip(); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 50, 50); + _assertPixel(canvas, 25,25, 0,255,0,255); + _assertPixel(canvas, 75,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.source-over.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.source-over.worker.js index 6d401c4..15c322e 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.source-over.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.source-over.worker.js
@@ -13,20 +13,18 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'source-over'; -ctx.rect(-20, -20, 10, 10); -ctx.clip(); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 50, 50); -_assertPixel(canvas, 25,25, 0,255,0,255); -_assertPixel(canvas, 75,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-over'; + ctx.rect(-20, -20, 10, 10); + ctx.clip(); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 50, 50); + _assertPixel(canvas, 25,25, 0,255,0,255); + _assertPixel(canvas, 75,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.xor.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.xor.html index dc1170d..0156e4a 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.xor.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.xor.html
@@ -17,20 +17,19 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'xor'; -ctx.rect(-20, -20, 10, 10); -ctx.clip(); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 50, 50); -_assertPixel(canvas, 25,25, 0,255,0,255); -_assertPixel(canvas, 75,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'xor'; + ctx.rect(-20, -20, 10, 10); + ctx.clip(); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 50, 50); + _assertPixel(canvas, 25,25, 0,255,0,255); + _assertPixel(canvas, 75,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.xor.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.xor.worker.js index 1d89becc..30bae44 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.xor.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.clip.xor.worker.js
@@ -13,20 +13,18 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'xor'; -ctx.rect(-20, -20, 10, 10); -ctx.clip(); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 50, 50); -_assertPixel(canvas, 25,25, 0,255,0,255); -_assertPixel(canvas, 75,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'xor'; + ctx.rect(-20, -20, 10, 10); + ctx.clip(); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 50, 50); + _assertPixel(canvas, 25,25, 0,255,0,255); + _assertPixel(canvas, 75,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.clear.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.clear.html index 5858e8f..75115ce7 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.clear.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.clear.html
@@ -17,28 +17,27 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'clear'; -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/yellow75.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - ctx.drawImage(bitmap, 0, 0); - _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); - }, t_fail); -}).then(t_pass, t_fail); + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'clear'; + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/yellow75.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + ctx.drawImage(bitmap, 0, 0); + _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); + }, t_fail); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.clear.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.clear.worker.js index 13765474..9a9ff0ec7 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.clear.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.clear.worker.js
@@ -13,28 +13,26 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'clear'; -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/yellow75.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - ctx.drawImage(bitmap, 0, 0); - _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); - }, t_fail); -}).then(t_pass, t_fail); - + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'clear'; + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/yellow75.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + ctx.drawImage(bitmap, 0, 0); + _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); + }, t_fail); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.copy.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.copy.html index 1aa9c98..4cb9c474 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.copy.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.copy.html
@@ -17,28 +17,27 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'copy'; -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/yellow75.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - ctx.drawImage(bitmap, 0, 0); - _assertPixelApprox(canvas, 50,25, 255,255,0,191, 5); - }, t_fail); -}).then(t_pass, t_fail); + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'copy'; + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/yellow75.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + ctx.drawImage(bitmap, 0, 0); + _assertPixelApprox(canvas, 50,25, 255,255,0,191, 5); + }, t_fail); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.copy.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.copy.worker.js index ba3399a..8fe345d 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.copy.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.copy.worker.js
@@ -13,28 +13,26 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'copy'; -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/yellow75.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - ctx.drawImage(bitmap, 0, 0); - _assertPixelApprox(canvas, 50,25, 255,255,0,191, 5); - }, t_fail); -}).then(t_pass, t_fail); - + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'copy'; + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/yellow75.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + ctx.drawImage(bitmap, 0, 0); + _assertPixelApprox(canvas, 50,25, 255,255,0,191, 5); + }, t_fail); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.destination-atop.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.destination-atop.html index 76547a1..a86950c 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.destination-atop.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.destination-atop.html
@@ -17,28 +17,27 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'destination-atop'; -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/yellow75.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - ctx.drawImage(bitmap, 0, 0); - _assertPixelApprox(canvas, 50,25, 128,255,128,191, 5); - }, t_fail); -}).then(t_pass, t_fail); + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-atop'; + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/yellow75.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + ctx.drawImage(bitmap, 0, 0); + _assertPixelApprox(canvas, 50,25, 128,255,128,191, 5); + }, t_fail); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.destination-atop.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.destination-atop.worker.js index 677b882b..8b862a0 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.destination-atop.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.destination-atop.worker.js
@@ -13,28 +13,26 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'destination-atop'; -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/yellow75.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - ctx.drawImage(bitmap, 0, 0); - _assertPixelApprox(canvas, 50,25, 128,255,128,191, 5); - }, t_fail); -}).then(t_pass, t_fail); - + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-atop'; + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/yellow75.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + ctx.drawImage(bitmap, 0, 0); + _assertPixelApprox(canvas, 50,25, 128,255,128,191, 5); + }, t_fail); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.destination-in.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.destination-in.html index 8fa5786..0415cbc7 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.destination-in.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.destination-in.html
@@ -17,28 +17,27 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'destination-in'; -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/yellow75.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - ctx.drawImage(bitmap, 0, 0); - _assertPixelApprox(canvas, 50,25, 0,255,255,96, 5); - }, t_fail); -}).then(t_pass, t_fail); + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-in'; + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/yellow75.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + ctx.drawImage(bitmap, 0, 0); + _assertPixelApprox(canvas, 50,25, 0,255,255,96, 5); + }, t_fail); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.destination-in.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.destination-in.worker.js index aa8c1ac0..1f580cd 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.destination-in.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.destination-in.worker.js
@@ -13,28 +13,26 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'destination-in'; -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/yellow75.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - ctx.drawImage(bitmap, 0, 0); - _assertPixelApprox(canvas, 50,25, 0,255,255,96, 5); - }, t_fail); -}).then(t_pass, t_fail); - + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-in'; + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/yellow75.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + ctx.drawImage(bitmap, 0, 0); + _assertPixelApprox(canvas, 50,25, 0,255,255,96, 5); + }, t_fail); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.destination-out.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.destination-out.html index 3a4da68..6c183fd 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.destination-out.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.destination-out.html
@@ -17,28 +17,27 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'destination-out'; -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/yellow75.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - ctx.drawImage(bitmap, 0, 0); - _assertPixelApprox(canvas, 50,25, 0,255,255,32, 5); - }, t_fail); -}).then(t_pass, t_fail); + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-out'; + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/yellow75.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + ctx.drawImage(bitmap, 0, 0); + _assertPixelApprox(canvas, 50,25, 0,255,255,32, 5); + }, t_fail); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.destination-out.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.destination-out.worker.js index 94ac27a0..d364abf8 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.destination-out.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.destination-out.worker.js
@@ -13,28 +13,26 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'destination-out'; -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/yellow75.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - ctx.drawImage(bitmap, 0, 0); - _assertPixelApprox(canvas, 50,25, 0,255,255,32, 5); - }, t_fail); -}).then(t_pass, t_fail); - + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-out'; + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/yellow75.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + ctx.drawImage(bitmap, 0, 0); + _assertPixelApprox(canvas, 50,25, 0,255,255,32, 5); + }, t_fail); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.destination-over.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.destination-over.html index c6da28db..3ace58d 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.destination-over.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.destination-over.html
@@ -17,28 +17,27 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'destination-over'; -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/yellow75.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - ctx.drawImage(bitmap, 0, 0); - _assertPixelApprox(canvas, 50,25, 109,255,146,223, 5); - }, t_fail); -}).then(t_pass, t_fail); + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-over'; + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/yellow75.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + ctx.drawImage(bitmap, 0, 0); + _assertPixelApprox(canvas, 50,25, 109,255,146,223, 5); + }, t_fail); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.destination-over.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.destination-over.worker.js index 3bc357d..7ee7d94 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.destination-over.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.destination-over.worker.js
@@ -13,28 +13,26 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'destination-over'; -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/yellow75.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - ctx.drawImage(bitmap, 0, 0); - _assertPixelApprox(canvas, 50,25, 109,255,146,223, 5); - }, t_fail); -}).then(t_pass, t_fail); - + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-over'; + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/yellow75.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + ctx.drawImage(bitmap, 0, 0); + _assertPixelApprox(canvas, 50,25, 109,255,146,223, 5); + }, t_fail); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.lighter.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.lighter.html index db89e5a3..9c50789 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.lighter.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.lighter.html
@@ -17,28 +17,27 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'lighter'; -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/yellow75.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - ctx.drawImage(bitmap, 0, 0); - _assertPixelApprox(canvas, 50,25, 191,255,128,255, 5); - }, t_fail); -}).then(t_pass, t_fail); + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'lighter'; + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/yellow75.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + ctx.drawImage(bitmap, 0, 0); + _assertPixelApprox(canvas, 50,25, 191,255,128,255, 5); + }, t_fail); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.lighter.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.lighter.worker.js index 922b5f46..aa55199 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.lighter.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.lighter.worker.js
@@ -13,28 +13,26 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'lighter'; -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/yellow75.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - ctx.drawImage(bitmap, 0, 0); - _assertPixelApprox(canvas, 50,25, 191,255,128,255, 5); - }, t_fail); -}).then(t_pass, t_fail); - + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'lighter'; + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/yellow75.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + ctx.drawImage(bitmap, 0, 0); + _assertPixelApprox(canvas, 50,25, 191,255,128,255, 5); + }, t_fail); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.source-atop.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.source-atop.html index 44dd6f4..a87385b2 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.source-atop.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.source-atop.html
@@ -17,28 +17,27 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'source-atop'; -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/yellow75.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - ctx.drawImage(bitmap, 0, 0); - _assertPixelApprox(canvas, 50,25, 191,255,64,128, 5); - }, t_fail); -}).then(t_pass, t_fail); + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-atop'; + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/yellow75.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + ctx.drawImage(bitmap, 0, 0); + _assertPixelApprox(canvas, 50,25, 191,255,64,128, 5); + }, t_fail); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.source-atop.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.source-atop.worker.js index 1b329938..b0ee8d86 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.source-atop.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.source-atop.worker.js
@@ -13,28 +13,26 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'source-atop'; -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/yellow75.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - ctx.drawImage(bitmap, 0, 0); - _assertPixelApprox(canvas, 50,25, 191,255,64,128, 5); - }, t_fail); -}).then(t_pass, t_fail); - + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-atop'; + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/yellow75.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + ctx.drawImage(bitmap, 0, 0); + _assertPixelApprox(canvas, 50,25, 191,255,64,128, 5); + }, t_fail); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.source-in.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.source-in.html index 64c28c0..bd1d09f 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.source-in.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.source-in.html
@@ -17,28 +17,27 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'source-in'; -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/yellow75.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - ctx.drawImage(bitmap, 0, 0); - _assertPixelApprox(canvas, 50,25, 255,255,0,96, 5); - }, t_fail); -}).then(t_pass, t_fail); + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-in'; + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/yellow75.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + ctx.drawImage(bitmap, 0, 0); + _assertPixelApprox(canvas, 50,25, 255,255,0,96, 5); + }, t_fail); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.source-in.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.source-in.worker.js index 3048f84..201c9bc 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.source-in.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.source-in.worker.js
@@ -13,28 +13,26 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'source-in'; -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/yellow75.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - ctx.drawImage(bitmap, 0, 0); - _assertPixelApprox(canvas, 50,25, 255,255,0,96, 5); - }, t_fail); -}).then(t_pass, t_fail); - + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-in'; + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/yellow75.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + ctx.drawImage(bitmap, 0, 0); + _assertPixelApprox(canvas, 50,25, 255,255,0,96, 5); + }, t_fail); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.source-out.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.source-out.html index 46d3e48..e31cf734 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.source-out.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.source-out.html
@@ -17,28 +17,27 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'source-out'; -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/yellow75.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - ctx.drawImage(bitmap, 0, 0); - _assertPixelApprox(canvas, 50,25, 255,255,0,96, 5); - }, t_fail); -}).then(t_pass, t_fail); + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-out'; + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/yellow75.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + ctx.drawImage(bitmap, 0, 0); + _assertPixelApprox(canvas, 50,25, 255,255,0,96, 5); + }, t_fail); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.source-out.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.source-out.worker.js index 090bbe7..16ed7c48 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.source-out.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.source-out.worker.js
@@ -13,28 +13,26 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'source-out'; -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/yellow75.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - ctx.drawImage(bitmap, 0, 0); - _assertPixelApprox(canvas, 50,25, 255,255,0,96, 5); - }, t_fail); -}).then(t_pass, t_fail); - + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-out'; + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/yellow75.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + ctx.drawImage(bitmap, 0, 0); + _assertPixelApprox(canvas, 50,25, 255,255,0,96, 5); + }, t_fail); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.source-over.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.source-over.html index 1d13b77..f4a871a 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.source-over.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.source-over.html
@@ -17,28 +17,27 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'source-over'; -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/yellow75.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - ctx.drawImage(bitmap, 0, 0); - _assertPixelApprox(canvas, 50,25, 219,255,36,223, 5); - }, t_fail); -}).then(t_pass, t_fail); + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-over'; + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/yellow75.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + ctx.drawImage(bitmap, 0, 0); + _assertPixelApprox(canvas, 50,25, 219,255,36,223, 5); + }, t_fail); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.source-over.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.source-over.worker.js index 7937e5be..a1deadc 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.source-over.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.source-over.worker.js
@@ -13,28 +13,26 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'source-over'; -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/yellow75.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - ctx.drawImage(bitmap, 0, 0); - _assertPixelApprox(canvas, 50,25, 219,255,36,223, 5); - }, t_fail); -}).then(t_pass, t_fail); - + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-over'; + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/yellow75.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + ctx.drawImage(bitmap, 0, 0); + _assertPixelApprox(canvas, 50,25, 219,255,36,223, 5); + }, t_fail); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.xor.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.xor.html index 73253fa..91e992e 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.xor.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.xor.html
@@ -17,28 +17,27 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'xor'; -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/yellow75.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - ctx.drawImage(bitmap, 0, 0); - _assertPixelApprox(canvas, 50,25, 191,255,64,128, 5); - }, t_fail); -}).then(t_pass, t_fail); + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'xor'; + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/yellow75.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + ctx.drawImage(bitmap, 0, 0); + _assertPixelApprox(canvas, 50,25, 191,255,64,128, 5); + }, t_fail); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.xor.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.xor.worker.js index 7a22f7d..a77191f9 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.xor.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.image.xor.worker.js
@@ -13,28 +13,26 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'xor'; -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/yellow75.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - ctx.drawImage(bitmap, 0, 0); - _assertPixelApprox(canvas, 50,25, 191,255,64,128, 5); - }, t_fail); -}).then(t_pass, t_fail); - + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'xor'; + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/yellow75.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + ctx.drawImage(bitmap, 0, 0); + _assertPixelApprox(canvas, 50,25, 191,255,64,128, 5); + }, t_fail); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.clear.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.clear.html index a06565d..9bb03097 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.clear.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.clear.html
@@ -17,17 +17,16 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 255, 1.0)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'clear'; -ctx.fillStyle = 'rgba(255, 255, 0, 1.0)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); -t.done(); + ctx.fillStyle = 'rgba(0, 255, 255, 1.0)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'clear'; + ctx.fillStyle = 'rgba(255, 255, 0, 1.0)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.clear.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.clear.worker.js index 983a3b0..c49ec7a 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.clear.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.clear.worker.js
@@ -13,17 +13,15 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 255, 1.0)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'clear'; -ctx.fillStyle = 'rgba(255, 255, 0, 1.0)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); -t.done(); - + ctx.fillStyle = 'rgba(0, 255, 255, 1.0)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'clear'; + ctx.fillStyle = 'rgba(255, 255, 0, 1.0)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.copy.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.copy.html index aaad0b41..a5bcda9 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.copy.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.copy.html
@@ -17,17 +17,16 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 255, 1.0)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'copy'; -ctx.fillStyle = 'rgba(255, 255, 0, 1.0)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 255,255,0,255, 5); -t.done(); + ctx.fillStyle = 'rgba(0, 255, 255, 1.0)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'copy'; + ctx.fillStyle = 'rgba(255, 255, 0, 1.0)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 255,255,0,255, 5); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.copy.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.copy.worker.js index 63cc6c1..ee4baec 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.copy.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.copy.worker.js
@@ -13,17 +13,15 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 255, 1.0)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'copy'; -ctx.fillStyle = 'rgba(255, 255, 0, 1.0)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 255,255,0,255, 5); -t.done(); - + ctx.fillStyle = 'rgba(0, 255, 255, 1.0)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'copy'; + ctx.fillStyle = 'rgba(255, 255, 0, 1.0)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 255,255,0,255, 5); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.destination-atop.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.destination-atop.html index be4cf39..c5554ff 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.destination-atop.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.destination-atop.html
@@ -17,17 +17,16 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 255, 1.0)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'destination-atop'; -ctx.fillStyle = 'rgba(255, 255, 0, 1.0)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,255,255,255, 5); -t.done(); + ctx.fillStyle = 'rgba(0, 255, 255, 1.0)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-atop'; + ctx.fillStyle = 'rgba(255, 255, 0, 1.0)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,255,255,255, 5); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.destination-atop.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.destination-atop.worker.js index a09827c..8829971 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.destination-atop.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.destination-atop.worker.js
@@ -13,17 +13,15 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 255, 1.0)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'destination-atop'; -ctx.fillStyle = 'rgba(255, 255, 0, 1.0)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,255,255,255, 5); -t.done(); - + ctx.fillStyle = 'rgba(0, 255, 255, 1.0)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-atop'; + ctx.fillStyle = 'rgba(255, 255, 0, 1.0)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,255,255,255, 5); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.destination-in.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.destination-in.html index e5ea33b..8e620e2 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.destination-in.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.destination-in.html
@@ -17,17 +17,16 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 255, 1.0)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'destination-in'; -ctx.fillStyle = 'rgba(255, 255, 0, 1.0)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,255,255,255, 5); -t.done(); + ctx.fillStyle = 'rgba(0, 255, 255, 1.0)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-in'; + ctx.fillStyle = 'rgba(255, 255, 0, 1.0)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,255,255,255, 5); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.destination-in.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.destination-in.worker.js index b06ad63..fe9e4617 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.destination-in.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.destination-in.worker.js
@@ -13,17 +13,15 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 255, 1.0)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'destination-in'; -ctx.fillStyle = 'rgba(255, 255, 0, 1.0)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,255,255,255, 5); -t.done(); - + ctx.fillStyle = 'rgba(0, 255, 255, 1.0)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-in'; + ctx.fillStyle = 'rgba(255, 255, 0, 1.0)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,255,255,255, 5); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.destination-out.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.destination-out.html index 49efe24..06da4d3 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.destination-out.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.destination-out.html
@@ -17,17 +17,16 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 255, 1.0)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'destination-out'; -ctx.fillStyle = 'rgba(255, 255, 0, 1.0)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); -t.done(); + ctx.fillStyle = 'rgba(0, 255, 255, 1.0)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-out'; + ctx.fillStyle = 'rgba(255, 255, 0, 1.0)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.destination-out.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.destination-out.worker.js index 3b0232e2..05ec2fa 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.destination-out.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.destination-out.worker.js
@@ -13,17 +13,15 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 255, 1.0)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'destination-out'; -ctx.fillStyle = 'rgba(255, 255, 0, 1.0)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); -t.done(); - + ctx.fillStyle = 'rgba(0, 255, 255, 1.0)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-out'; + ctx.fillStyle = 'rgba(255, 255, 0, 1.0)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.destination-over.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.destination-over.html index c1d7965c..e62c3fe 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.destination-over.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.destination-over.html
@@ -17,17 +17,16 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 255, 1.0)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'destination-over'; -ctx.fillStyle = 'rgba(255, 255, 0, 1.0)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,255,255,255, 5); -t.done(); + ctx.fillStyle = 'rgba(0, 255, 255, 1.0)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-over'; + ctx.fillStyle = 'rgba(255, 255, 0, 1.0)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,255,255,255, 5); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.destination-over.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.destination-over.worker.js index 99d64be..5c171fc 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.destination-over.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.destination-over.worker.js
@@ -13,17 +13,15 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 255, 1.0)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'destination-over'; -ctx.fillStyle = 'rgba(255, 255, 0, 1.0)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,255,255,255, 5); -t.done(); - + ctx.fillStyle = 'rgba(0, 255, 255, 1.0)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-over'; + ctx.fillStyle = 'rgba(255, 255, 0, 1.0)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,255,255,255, 5); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.lighter.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.lighter.html index 2877e14..2e09805c 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.lighter.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.lighter.html
@@ -17,17 +17,16 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 255, 1.0)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'lighter'; -ctx.fillStyle = 'rgba(255, 255, 0, 1.0)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 255,255,255,255, 5); -t.done(); + ctx.fillStyle = 'rgba(0, 255, 255, 1.0)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'lighter'; + ctx.fillStyle = 'rgba(255, 255, 0, 1.0)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 255,255,255,255, 5); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.lighter.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.lighter.worker.js index 011a1993..3533892 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.lighter.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.lighter.worker.js
@@ -13,17 +13,15 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 255, 1.0)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'lighter'; -ctx.fillStyle = 'rgba(255, 255, 0, 1.0)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 255,255,255,255, 5); -t.done(); - + ctx.fillStyle = 'rgba(0, 255, 255, 1.0)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'lighter'; + ctx.fillStyle = 'rgba(255, 255, 0, 1.0)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 255,255,255,255, 5); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.source-atop.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.source-atop.html index 9f972ed..dd36e0e 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.source-atop.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.source-atop.html
@@ -17,17 +17,16 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 255, 1.0)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'source-atop'; -ctx.fillStyle = 'rgba(255, 255, 0, 1.0)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 255,255,0,255, 5); -t.done(); + ctx.fillStyle = 'rgba(0, 255, 255, 1.0)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-atop'; + ctx.fillStyle = 'rgba(255, 255, 0, 1.0)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 255,255,0,255, 5); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.source-atop.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.source-atop.worker.js index 2dc6ec9..27e1c25 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.source-atop.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.source-atop.worker.js
@@ -13,17 +13,15 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 255, 1.0)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'source-atop'; -ctx.fillStyle = 'rgba(255, 255, 0, 1.0)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 255,255,0,255, 5); -t.done(); - + ctx.fillStyle = 'rgba(0, 255, 255, 1.0)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-atop'; + ctx.fillStyle = 'rgba(255, 255, 0, 1.0)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 255,255,0,255, 5); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.source-in.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.source-in.html index c674bbd..83dcc8e 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.source-in.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.source-in.html
@@ -17,17 +17,16 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 255, 1.0)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'source-in'; -ctx.fillStyle = 'rgba(255, 255, 0, 1.0)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 255,255,0,255, 5); -t.done(); + ctx.fillStyle = 'rgba(0, 255, 255, 1.0)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-in'; + ctx.fillStyle = 'rgba(255, 255, 0, 1.0)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 255,255,0,255, 5); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.source-in.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.source-in.worker.js index 5b833ec..7dfdb070 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.source-in.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.source-in.worker.js
@@ -13,17 +13,15 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 255, 1.0)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'source-in'; -ctx.fillStyle = 'rgba(255, 255, 0, 1.0)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 255,255,0,255, 5); -t.done(); - + ctx.fillStyle = 'rgba(0, 255, 255, 1.0)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-in'; + ctx.fillStyle = 'rgba(255, 255, 0, 1.0)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 255,255,0,255, 5); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.source-out.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.source-out.html index 0fa403b..3067c44f 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.source-out.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.source-out.html
@@ -17,17 +17,16 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 255, 1.0)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'source-out'; -ctx.fillStyle = 'rgba(255, 255, 0, 1.0)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); -t.done(); + ctx.fillStyle = 'rgba(0, 255, 255, 1.0)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-out'; + ctx.fillStyle = 'rgba(255, 255, 0, 1.0)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.source-out.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.source-out.worker.js index 04869399..82525492 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.source-out.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.source-out.worker.js
@@ -13,17 +13,15 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 255, 1.0)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'source-out'; -ctx.fillStyle = 'rgba(255, 255, 0, 1.0)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); -t.done(); - + ctx.fillStyle = 'rgba(0, 255, 255, 1.0)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-out'; + ctx.fillStyle = 'rgba(255, 255, 0, 1.0)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.source-over.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.source-over.html index 4392e60c..0596553 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.source-over.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.source-over.html
@@ -17,17 +17,16 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 255, 1.0)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'source-over'; -ctx.fillStyle = 'rgba(255, 255, 0, 1.0)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 255,255,0,255, 5); -t.done(); + ctx.fillStyle = 'rgba(0, 255, 255, 1.0)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-over'; + ctx.fillStyle = 'rgba(255, 255, 0, 1.0)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 255,255,0,255, 5); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.source-over.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.source-over.worker.js index ce8190e..1c82a95 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.source-over.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.source-over.worker.js
@@ -13,17 +13,15 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 255, 1.0)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'source-over'; -ctx.fillStyle = 'rgba(255, 255, 0, 1.0)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 255,255,0,255, 5); -t.done(); - + ctx.fillStyle = 'rgba(0, 255, 255, 1.0)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-over'; + ctx.fillStyle = 'rgba(255, 255, 0, 1.0)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 255,255,0,255, 5); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.xor.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.xor.html index a9eb83e..822c9c7 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.xor.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.xor.html
@@ -17,17 +17,16 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 255, 1.0)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'xor'; -ctx.fillStyle = 'rgba(255, 255, 0, 1.0)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); -t.done(); + ctx.fillStyle = 'rgba(0, 255, 255, 1.0)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'xor'; + ctx.fillStyle = 'rgba(255, 255, 0, 1.0)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.xor.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.xor.worker.js index 8b7edec..cb098eb 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.xor.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.solid.xor.worker.js
@@ -13,17 +13,15 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 255, 1.0)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'xor'; -ctx.fillStyle = 'rgba(255, 255, 0, 1.0)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); -t.done(); - + ctx.fillStyle = 'rgba(0, 255, 255, 1.0)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'xor'; + ctx.fillStyle = 'rgba(255, 255, 0, 1.0)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.clear.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.clear.html index 91ba094..81d781a 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.clear.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.clear.html
@@ -17,17 +17,16 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'clear'; -ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); -t.done(); + ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'clear'; + ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.clear.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.clear.worker.js index 6624bbc..8f30463c 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.clear.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.clear.worker.js
@@ -13,17 +13,15 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'clear'; -ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); -t.done(); - + ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'clear'; + ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.copy.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.copy.html index 20c107b..ab3a972 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.copy.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.copy.html
@@ -17,17 +17,16 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'copy'; -ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,0,255,191, 5); -t.done(); + ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'copy'; + ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,0,255,191, 5); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.copy.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.copy.worker.js index 7fb646ac..6b9ea9d 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.copy.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.copy.worker.js
@@ -13,17 +13,15 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'copy'; -ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,0,255,191, 5); -t.done(); - + ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'copy'; + ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,0,255,191, 5); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.destination-atop.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.destination-atop.html index 2bc5466..5e580f5 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.destination-atop.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.destination-atop.html
@@ -17,17 +17,16 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'destination-atop'; -ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,128,128,191, 5); -t.done(); + ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-atop'; + ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,128,128,191, 5); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.destination-atop.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.destination-atop.worker.js index f433bedf..3247632e 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.destination-atop.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.destination-atop.worker.js
@@ -13,17 +13,15 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'destination-atop'; -ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,128,128,191, 5); -t.done(); - + ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-atop'; + ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,128,128,191, 5); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.destination-in.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.destination-in.html index 1d11218..9f0ec56 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.destination-in.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.destination-in.html
@@ -17,17 +17,16 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'destination-in'; -ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,255,0,96, 5); -t.done(); + ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-in'; + ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,255,0,96, 5); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.destination-in.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.destination-in.worker.js index a4c159a..c9205230 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.destination-in.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.destination-in.worker.js
@@ -13,17 +13,15 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'destination-in'; -ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,255,0,96, 5); -t.done(); - + ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-in'; + ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,255,0,96, 5); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.destination-out.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.destination-out.html index 17b3fec..a1abe3e 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.destination-out.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.destination-out.html
@@ -17,17 +17,16 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'destination-out'; -ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,255,0,32, 5); -t.done(); + ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-out'; + ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,255,0,32, 5); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.destination-out.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.destination-out.worker.js index cf6827f..1a54095 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.destination-out.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.destination-out.worker.js
@@ -13,17 +13,15 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'destination-out'; -ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,255,0,32, 5); -t.done(); - + ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-out'; + ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,255,0,32, 5); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.destination-over.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.destination-over.html index 04c267a8..4f0305f 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.destination-over.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.destination-over.html
@@ -17,17 +17,16 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'destination-over'; -ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,146,109,223, 5); -t.done(); + ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-over'; + ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,146,109,223, 5); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.destination-over.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.destination-over.worker.js index 98a4b5b5..37eb785d 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.destination-over.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.destination-over.worker.js
@@ -13,17 +13,15 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'destination-over'; -ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,146,109,223, 5); -t.done(); - + ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-over'; + ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,146,109,223, 5); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.lighter.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.lighter.html index 86d06f24..6a2f5df7 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.lighter.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.lighter.html
@@ -17,17 +17,16 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'lighter'; -ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,128,191,255, 5); -t.done(); + ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'lighter'; + ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,128,191,255, 5); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.lighter.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.lighter.worker.js index f9b419a..3d890aff 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.lighter.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.lighter.worker.js
@@ -13,17 +13,15 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'lighter'; -ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,128,191,255, 5); -t.done(); - + ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'lighter'; + ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,128,191,255, 5); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.source-atop.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.source-atop.html index f4e79c0..bac035c 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.source-atop.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.source-atop.html
@@ -17,17 +17,16 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'source-atop'; -ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,64,191,128, 5); -t.done(); + ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-atop'; + ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,64,191,128, 5); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.source-atop.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.source-atop.worker.js index db65db8..d56ef6e2 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.source-atop.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.source-atop.worker.js
@@ -13,17 +13,15 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'source-atop'; -ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,64,191,128, 5); -t.done(); - + ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-atop'; + ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,64,191,128, 5); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.source-in.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.source-in.html index 56b4e77..5dd6704 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.source-in.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.source-in.html
@@ -17,17 +17,16 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'source-in'; -ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,0,255,96, 5); -t.done(); + ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-in'; + ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,0,255,96, 5); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.source-in.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.source-in.worker.js index 32765c4..58ad13b 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.source-in.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.source-in.worker.js
@@ -13,17 +13,15 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'source-in'; -ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,0,255,96, 5); -t.done(); - + ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-in'; + ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,0,255,96, 5); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.source-out.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.source-out.html index cca28c5e..56b1d4a 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.source-out.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.source-out.html
@@ -17,17 +17,16 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'source-out'; -ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,0,255,96, 5); -t.done(); + ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-out'; + ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,0,255,96, 5); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.source-out.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.source-out.worker.js index 3cf507b..62ec89595 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.source-out.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.source-out.worker.js
@@ -13,17 +13,15 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'source-out'; -ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,0,255,96, 5); -t.done(); - + ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-out'; + ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,0,255,96, 5); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.source-over.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.source-over.html index a8ae301..f038d44 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.source-over.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.source-over.html
@@ -17,17 +17,16 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'source-over'; -ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,36,219,223, 5); -t.done(); + ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-over'; + ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,36,219,223, 5); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.source-over.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.source-over.worker.js index 35545c0..494a45f 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.source-over.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.source-over.worker.js
@@ -13,17 +13,15 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'source-over'; -ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,36,219,223, 5); -t.done(); - + ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-over'; + ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,36,219,223, 5); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.xor.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.xor.html index 638bae0..bbab8a0 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.xor.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.xor.html
@@ -17,17 +17,16 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'xor'; -ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,64,191,128, 5); -t.done(); + ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'xor'; + ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,64,191,128, 5); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.xor.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.xor.worker.js index b21d30d..4b65667 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.xor.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.transparent.xor.worker.js
@@ -13,17 +13,15 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'xor'; -ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,64,191,128, 5); -t.done(); - + ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'xor'; + ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,64,191,128, 5); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.fill.copy.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.fill.copy.html index f10275f..0ff9d851dd 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.fill.copy.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.fill.copy.html
@@ -17,18 +17,17 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'copy'; -ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; -ctx.translate(0, 25); -ctx.fillRect(0, 50, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); -t.done(); + ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'copy'; + ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; + ctx.translate(0, 25); + ctx.fillRect(0, 50, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.fill.copy.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.fill.copy.worker.js index 3b86c720..50f3ed0 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.fill.copy.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.fill.copy.worker.js
@@ -13,18 +13,16 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'copy'; -ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; -ctx.translate(0, 25); -ctx.fillRect(0, 50, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); -t.done(); - + ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'copy'; + ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; + ctx.translate(0, 25); + ctx.fillRect(0, 50, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.fill.destination-atop.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.fill.destination-atop.html index 8672e9e..2d2f92ed 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.fill.destination-atop.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.fill.destination-atop.html
@@ -17,18 +17,17 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'destination-atop'; -ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; -ctx.translate(0, 25); -ctx.fillRect(0, 50, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); -t.done(); + ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-atop'; + ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; + ctx.translate(0, 25); + ctx.fillRect(0, 50, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.fill.destination-atop.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.fill.destination-atop.worker.js index 69610fc1..9a84b089 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.fill.destination-atop.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.fill.destination-atop.worker.js
@@ -13,18 +13,16 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'destination-atop'; -ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; -ctx.translate(0, 25); -ctx.fillRect(0, 50, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); -t.done(); - + ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-atop'; + ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; + ctx.translate(0, 25); + ctx.fillRect(0, 50, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.fill.destination-in.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.fill.destination-in.html index 0f069372..5670b32 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.fill.destination-in.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.fill.destination-in.html
@@ -18,18 +18,17 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'destination-in'; -ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; -ctx.translate(0, 25); -ctx.fillRect(0, 50, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); -t.done(); + ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-in'; + ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; + ctx.translate(0, 25); + ctx.fillRect(0, 50, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.fill.destination-in.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.fill.destination-in.worker.js index 26b2871..aa24ba9 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.fill.destination-in.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.fill.destination-in.worker.js
@@ -14,18 +14,16 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'destination-in'; -ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; -ctx.translate(0, 25); -ctx.fillRect(0, 50, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); -t.done(); - + ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-in'; + ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; + ctx.translate(0, 25); + ctx.fillRect(0, 50, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.fill.source-in.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.fill.source-in.html index 6e1ecdd..58347442 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.fill.source-in.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.fill.source-in.html
@@ -17,18 +17,17 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'source-in'; -ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; -ctx.translate(0, 25); -ctx.fillRect(0, 50, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); -t.done(); + ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-in'; + ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; + ctx.translate(0, 25); + ctx.fillRect(0, 50, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.fill.source-in.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.fill.source-in.worker.js index 6da9865..33e326d1 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.fill.source-in.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.fill.source-in.worker.js
@@ -13,18 +13,16 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'source-in'; -ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; -ctx.translate(0, 25); -ctx.fillRect(0, 50, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); -t.done(); - + ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-in'; + ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; + ctx.translate(0, 25); + ctx.fillRect(0, 50, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.fill.source-out.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.fill.source-out.html index de16897..ea44ca4 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.fill.source-out.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.fill.source-out.html
@@ -17,18 +17,17 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'source-out'; -ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; -ctx.translate(0, 25); -ctx.fillRect(0, 50, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); -t.done(); + ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-out'; + ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; + ctx.translate(0, 25); + ctx.fillRect(0, 50, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.fill.source-out.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.fill.source-out.worker.js index 515b587..1d39b36 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.fill.source-out.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.fill.source-out.worker.js
@@ -13,18 +13,16 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'source-out'; -ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; -ctx.translate(0, 25); -ctx.fillRect(0, 50, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); -t.done(); - + ctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-out'; + ctx.fillStyle = 'rgba(0, 0, 255, 0.75)'; + ctx.translate(0, 25); + ctx.fillRect(0, 50, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.image.copy.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.image.copy.html index 5f3c9a191..a3f0095 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.image.copy.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.image.copy.html
@@ -17,29 +17,28 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'copy'; -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/yellow.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - ctx.drawImage(bitmap, 40, 40, 10, 10, 40, 50, 10, 10); - _assertPixelApprox(canvas, 15,15, 0,0,0,0, 5); - _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); - }, t_fail); -}).then(t_pass, t_fail); + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'copy'; + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/yellow.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + ctx.drawImage(bitmap, 40, 40, 10, 10, 40, 50, 10, 10); + _assertPixelApprox(canvas, 15,15, 0,0,0,0, 5); + _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); + }, t_fail); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.image.copy.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.image.copy.worker.js index 2faecdf..05a208e 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.image.copy.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.image.copy.worker.js
@@ -13,29 +13,27 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'copy'; -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/yellow.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - ctx.drawImage(bitmap, 40, 40, 10, 10, 40, 50, 10, 10); - _assertPixelApprox(canvas, 15,15, 0,0,0,0, 5); - _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); - }, t_fail); -}).then(t_pass, t_fail); - + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'copy'; + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/yellow.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + ctx.drawImage(bitmap, 40, 40, 10, 10, 40, 50, 10, 10); + _assertPixelApprox(canvas, 15,15, 0,0,0,0, 5); + _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); + }, t_fail); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.image.destination-atop.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.image.destination-atop.html index 3605e44..e46d8c0c 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.image.destination-atop.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.image.destination-atop.html
@@ -17,29 +17,28 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'destination-atop'; -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/yellow.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - ctx.drawImage(bitmap, 40, 40, 10, 10, 40, 50, 10, 10); - _assertPixelApprox(canvas, 15,15, 0,0,0,0, 5); - _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); - }, t_fail); -}).then(t_pass, t_fail); + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-atop'; + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/yellow.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + ctx.drawImage(bitmap, 40, 40, 10, 10, 40, 50, 10, 10); + _assertPixelApprox(canvas, 15,15, 0,0,0,0, 5); + _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); + }, t_fail); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.image.destination-atop.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.image.destination-atop.worker.js index 8b361e0..3662f862 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.image.destination-atop.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.image.destination-atop.worker.js
@@ -13,29 +13,27 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'destination-atop'; -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/yellow.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - ctx.drawImage(bitmap, 40, 40, 10, 10, 40, 50, 10, 10); - _assertPixelApprox(canvas, 15,15, 0,0,0,0, 5); - _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); - }, t_fail); -}).then(t_pass, t_fail); - + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-atop'; + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/yellow.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + ctx.drawImage(bitmap, 40, 40, 10, 10, 40, 50, 10, 10); + _assertPixelApprox(canvas, 15,15, 0,0,0,0, 5); + _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); + }, t_fail); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.image.destination-in.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.image.destination-in.html index c48ee8e1..41c1c73 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.image.destination-in.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.image.destination-in.html
@@ -17,29 +17,28 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'destination-in'; -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/yellow.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - ctx.drawImage(bitmap, 40, 40, 10, 10, 40, 50, 10, 10); - _assertPixelApprox(canvas, 15,15, 0,0,0,0, 5); - _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); - }, t_fail); -}).then(t_pass, t_fail); + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-in'; + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/yellow.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + ctx.drawImage(bitmap, 40, 40, 10, 10, 40, 50, 10, 10); + _assertPixelApprox(canvas, 15,15, 0,0,0,0, 5); + _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); + }, t_fail); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.image.destination-in.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.image.destination-in.worker.js index b270efc7..d7cd348 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.image.destination-in.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.image.destination-in.worker.js
@@ -13,29 +13,27 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'destination-in'; -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/yellow.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - ctx.drawImage(bitmap, 40, 40, 10, 10, 40, 50, 10, 10); - _assertPixelApprox(canvas, 15,15, 0,0,0,0, 5); - _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); - }, t_fail); -}).then(t_pass, t_fail); - + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-in'; + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/yellow.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + ctx.drawImage(bitmap, 40, 40, 10, 10, 40, 50, 10, 10); + _assertPixelApprox(canvas, 15,15, 0,0,0,0, 5); + _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); + }, t_fail); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.image.source-in.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.image.source-in.html index af4c3b7..51c92d5d 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.image.source-in.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.image.source-in.html
@@ -17,29 +17,28 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'source-in'; -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/yellow.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - ctx.drawImage(bitmap, 40, 40, 10, 10, 40, 50, 10, 10); - _assertPixelApprox(canvas, 15,15, 0,0,0,0, 5); - _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); - }, t_fail); -}).then(t_pass, t_fail); + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-in'; + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/yellow.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + ctx.drawImage(bitmap, 40, 40, 10, 10, 40, 50, 10, 10); + _assertPixelApprox(canvas, 15,15, 0,0,0,0, 5); + _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); + }, t_fail); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.image.source-in.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.image.source-in.worker.js index 5fe00cf1..02397f0 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.image.source-in.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.image.source-in.worker.js
@@ -13,29 +13,27 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'source-in'; -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/yellow.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - ctx.drawImage(bitmap, 40, 40, 10, 10, 40, 50, 10, 10); - _assertPixelApprox(canvas, 15,15, 0,0,0,0, 5); - _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); - }, t_fail); -}).then(t_pass, t_fail); - + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-in'; + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/yellow.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + ctx.drawImage(bitmap, 40, 40, 10, 10, 40, 50, 10, 10); + _assertPixelApprox(canvas, 15,15, 0,0,0,0, 5); + _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); + }, t_fail); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.image.source-out.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.image.source-out.html index 4f1c386..29227f2a 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.image.source-out.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.image.source-out.html
@@ -17,29 +17,28 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'source-out'; -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/yellow.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - ctx.drawImage(bitmap, 40, 40, 10, 10, 40, 50, 10, 10); - _assertPixelApprox(canvas, 15,15, 0,0,0,0, 5); - _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); - }, t_fail); -}).then(t_pass, t_fail); + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-out'; + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/yellow.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + ctx.drawImage(bitmap, 40, 40, 10, 10, 40, 50, 10, 10); + _assertPixelApprox(canvas, 15,15, 0,0,0,0, 5); + _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); + }, t_fail); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.image.source-out.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.image.source-out.worker.js index f93185bc..70acee3 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.image.source-out.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.image.source-out.worker.js
@@ -13,29 +13,27 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'source-out'; -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/yellow.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - ctx.drawImage(bitmap, 40, 40, 10, 10, 40, 50, 10, 10); - _assertPixelApprox(canvas, 15,15, 0,0,0,0, 5); - _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); - }, t_fail); -}).then(t_pass, t_fail); - + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-out'; + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/yellow.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + ctx.drawImage(bitmap, 40, 40, 10, 10, 40, 50, 10, 10); + _assertPixelApprox(canvas, 15,15, 0,0,0,0, 5); + _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); + }, t_fail); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.nocontext.copy.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.nocontext.copy.html index 57c499d8..10a9960 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.nocontext.copy.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.nocontext.copy.html
@@ -17,17 +17,16 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'copy'; -var offscreenCanvas2 = new OffscreenCanvas(100, 50); -ctx.drawImage(offscreenCanvas2, 0, 0); -_assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); -t.done(); + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'copy'; + var offscreenCanvas2 = new OffscreenCanvas(100, 50); + ctx.drawImage(offscreenCanvas2, 0, 0); + _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.nocontext.copy.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.nocontext.copy.worker.js index bf6bdfe..1f285eae4 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.nocontext.copy.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.nocontext.copy.worker.js
@@ -13,17 +13,15 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'copy'; -var offscreenCanvas2 = new OffscreenCanvas(100, 50); -ctx.drawImage(offscreenCanvas2, 0, 0); -_assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); -t.done(); - + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'copy'; + var offscreenCanvas2 = new OffscreenCanvas(100, 50); + ctx.drawImage(offscreenCanvas2, 0, 0); + _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.nocontext.destination-atop.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.nocontext.destination-atop.html index 73684800..ead1299 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.nocontext.destination-atop.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.nocontext.destination-atop.html
@@ -17,17 +17,16 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'destination-atop'; -var offscreenCanvas2 = new OffscreenCanvas(100, 50); -ctx.drawImage(offscreenCanvas2, 0, 0); -_assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); -t.done(); + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-atop'; + var offscreenCanvas2 = new OffscreenCanvas(100, 50); + ctx.drawImage(offscreenCanvas2, 0, 0); + _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.nocontext.destination-atop.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.nocontext.destination-atop.worker.js index 3574add7..a9beb0f 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.nocontext.destination-atop.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.nocontext.destination-atop.worker.js
@@ -13,17 +13,15 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'destination-atop'; -var offscreenCanvas2 = new OffscreenCanvas(100, 50); -ctx.drawImage(offscreenCanvas2, 0, 0); -_assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); -t.done(); - + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-atop'; + var offscreenCanvas2 = new OffscreenCanvas(100, 50); + ctx.drawImage(offscreenCanvas2, 0, 0); + _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.nocontext.destination-in.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.nocontext.destination-in.html index b41c4b7..0322bfe2 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.nocontext.destination-in.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.nocontext.destination-in.html
@@ -17,17 +17,16 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'destination-in'; -var offscreenCanvas2 = new OffscreenCanvas(100, 50); -ctx.drawImage(offscreenCanvas2, 0, 0); -_assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); -t.done(); + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-in'; + var offscreenCanvas2 = new OffscreenCanvas(100, 50); + ctx.drawImage(offscreenCanvas2, 0, 0); + _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.nocontext.destination-in.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.nocontext.destination-in.worker.js index 979a084..e146e2e9 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.nocontext.destination-in.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.nocontext.destination-in.worker.js
@@ -13,17 +13,15 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'destination-in'; -var offscreenCanvas2 = new OffscreenCanvas(100, 50); -ctx.drawImage(offscreenCanvas2, 0, 0); -_assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); -t.done(); - + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-in'; + var offscreenCanvas2 = new OffscreenCanvas(100, 50); + ctx.drawImage(offscreenCanvas2, 0, 0); + _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.nocontext.source-in.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.nocontext.source-in.html index 99aeefb..0d93a036 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.nocontext.source-in.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.nocontext.source-in.html
@@ -17,17 +17,16 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'source-in'; -var offscreenCanvas2 = new OffscreenCanvas(100, 50); -ctx.drawImage(offscreenCanvas2, 0, 0); -_assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); -t.done(); + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-in'; + var offscreenCanvas2 = new OffscreenCanvas(100, 50); + ctx.drawImage(offscreenCanvas2, 0, 0); + _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.nocontext.source-in.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.nocontext.source-in.worker.js index 55596f8..cce4b54b 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.nocontext.source-in.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.nocontext.source-in.worker.js
@@ -13,17 +13,15 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'source-in'; -var offscreenCanvas2 = new OffscreenCanvas(100, 50); -ctx.drawImage(offscreenCanvas2, 0, 0); -_assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); -t.done(); - + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-in'; + var offscreenCanvas2 = new OffscreenCanvas(100, 50); + ctx.drawImage(offscreenCanvas2, 0, 0); + _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.nocontext.source-out.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.nocontext.source-out.html index 0dfd4ae..b6ab8cbd 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.nocontext.source-out.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.nocontext.source-out.html
@@ -17,17 +17,16 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'source-out'; -var offscreenCanvas2 = new OffscreenCanvas(100, 50); -ctx.drawImage(offscreenCanvas2, 0, 0); -_assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); -t.done(); + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-out'; + var offscreenCanvas2 = new OffscreenCanvas(100, 50); + ctx.drawImage(offscreenCanvas2, 0, 0); + _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.nocontext.source-out.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.nocontext.source-out.worker.js index f0820e0..501a84f 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.nocontext.source-out.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.nocontext.source-out.worker.js
@@ -13,17 +13,15 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'source-out'; -var offscreenCanvas2 = new OffscreenCanvas(100, 50); -ctx.drawImage(offscreenCanvas2, 0, 0); -_assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); -t.done(); - + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-out'; + var offscreenCanvas2 = new OffscreenCanvas(100, 50); + ctx.drawImage(offscreenCanvas2, 0, 0); + _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.pattern.copy.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.pattern.copy.html index 244cc82f5..6d9a23b 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.pattern.copy.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.pattern.copy.html
@@ -17,29 +17,28 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'copy'; -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/yellow.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - ctx.fillStyle = ctx.createPattern(bitmap, 'no-repeat'); - ctx.fillRect(0, 50, 100, 50); - _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); - }, t_fail); -}).then(t_pass, t_fail); + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'copy'; + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/yellow.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + ctx.fillStyle = ctx.createPattern(bitmap, 'no-repeat'); + ctx.fillRect(0, 50, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); + }, t_fail); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.pattern.copy.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.pattern.copy.worker.js index 3aeddac..d3b6e07 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.pattern.copy.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.pattern.copy.worker.js
@@ -13,29 +13,27 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'copy'; -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/yellow.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - ctx.fillStyle = ctx.createPattern(bitmap, 'no-repeat'); - ctx.fillRect(0, 50, 100, 50); - _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); - }, t_fail); -}).then(t_pass, t_fail); - + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'copy'; + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/yellow.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + ctx.fillStyle = ctx.createPattern(bitmap, 'no-repeat'); + ctx.fillRect(0, 50, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); + }, t_fail); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.pattern.destination-atop.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.pattern.destination-atop.html index 3624f1b..e5cb129 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.pattern.destination-atop.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.pattern.destination-atop.html
@@ -17,29 +17,28 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'destination-atop'; -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/yellow.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - ctx.fillStyle = ctx.createPattern(bitmap, 'no-repeat'); - ctx.fillRect(0, 50, 100, 50); - _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); - }, t_fail); -}).then(t_pass, t_fail); + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-atop'; + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/yellow.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + ctx.fillStyle = ctx.createPattern(bitmap, 'no-repeat'); + ctx.fillRect(0, 50, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); + }, t_fail); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.pattern.destination-atop.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.pattern.destination-atop.worker.js index 86aaf9fb..83bd328b 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.pattern.destination-atop.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.pattern.destination-atop.worker.js
@@ -13,29 +13,27 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'destination-atop'; -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/yellow.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - ctx.fillStyle = ctx.createPattern(bitmap, 'no-repeat'); - ctx.fillRect(0, 50, 100, 50); - _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); - }, t_fail); -}).then(t_pass, t_fail); - + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-atop'; + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/yellow.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + ctx.fillStyle = ctx.createPattern(bitmap, 'no-repeat'); + ctx.fillRect(0, 50, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); + }, t_fail); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.pattern.destination-in.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.pattern.destination-in.html index 21990f1..ef55aa72 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.pattern.destination-in.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.pattern.destination-in.html
@@ -17,29 +17,28 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'destination-in'; -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/yellow.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - ctx.fillStyle = ctx.createPattern(bitmap, 'no-repeat'); - ctx.fillRect(0, 50, 100, 50); - _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); - }, t_fail); -}).then(t_pass, t_fail); + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-in'; + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/yellow.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + ctx.fillStyle = ctx.createPattern(bitmap, 'no-repeat'); + ctx.fillRect(0, 50, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); + }, t_fail); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.pattern.destination-in.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.pattern.destination-in.worker.js index 184efcd7..c599c3d 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.pattern.destination-in.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.pattern.destination-in.worker.js
@@ -13,29 +13,27 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'destination-in'; -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/yellow.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - ctx.fillStyle = ctx.createPattern(bitmap, 'no-repeat'); - ctx.fillRect(0, 50, 100, 50); - _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); - }, t_fail); -}).then(t_pass, t_fail); - + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-in'; + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/yellow.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + ctx.fillStyle = ctx.createPattern(bitmap, 'no-repeat'); + ctx.fillRect(0, 50, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); + }, t_fail); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.pattern.source-in.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.pattern.source-in.html index f95da54..98ba8bb1 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.pattern.source-in.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.pattern.source-in.html
@@ -17,29 +17,28 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'source-in'; -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/yellow.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - ctx.fillStyle = ctx.createPattern(bitmap, 'no-repeat'); - ctx.fillRect(0, 50, 100, 50); - _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); - }, t_fail); -}).then(t_pass, t_fail); + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-in'; + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/yellow.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + ctx.fillStyle = ctx.createPattern(bitmap, 'no-repeat'); + ctx.fillRect(0, 50, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); + }, t_fail); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.pattern.source-in.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.pattern.source-in.worker.js index 61c798b7..1017869 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.pattern.source-in.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.pattern.source-in.worker.js
@@ -13,29 +13,27 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'source-in'; -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/yellow.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - ctx.fillStyle = ctx.createPattern(bitmap, 'no-repeat'); - ctx.fillRect(0, 50, 100, 50); - _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); - }, t_fail); -}).then(t_pass, t_fail); - + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-in'; + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/yellow.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + ctx.fillStyle = ctx.createPattern(bitmap, 'no-repeat'); + ctx.fillRect(0, 50, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); + }, t_fail); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.pattern.source-out.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.pattern.source-out.html index 4eb6ba5..bdd17f9e 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.pattern.source-out.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.pattern.source-out.html
@@ -17,29 +17,28 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'source-out'; -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/yellow.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - ctx.fillStyle = ctx.createPattern(bitmap, 'no-repeat'); - ctx.fillRect(0, 50, 100, 50); - _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); - }, t_fail); -}).then(t_pass, t_fail); + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-out'; + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/yellow.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + ctx.fillStyle = ctx.createPattern(bitmap, 'no-repeat'); + ctx.fillRect(0, 50, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); + }, t_fail); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.pattern.source-out.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.pattern.source-out.worker.js index 5827c7a..764a0941 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.pattern.source-out.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/compositing/2d.composite.uncovered.pattern.source-out.worker.js
@@ -13,29 +13,27 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'source-out'; -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/yellow.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - ctx.fillStyle = ctx.createPattern(bitmap, 'no-repeat'); - ctx.fillRect(0, 50, 100, 50); - _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); - }, t_fail); -}).then(t_pass, t_fail); - + ctx.fillStyle = 'rgba(0, 255, 255, 0.5)'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'source-out'; + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/yellow.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + ctx.fillStyle = ctx.createPattern(bitmap, 'no-repeat'); + ctx.fillRect(0, 50, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,0,0,0, 5); + }, t_fail); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.CSSHSL.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.CSSHSL.html index af5b0417..8e488a5 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.CSSHSL.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.CSSHSL.html
@@ -17,29 +17,35 @@ }); t.step(function() { -var offscreenCanvas = new OffscreenCanvas(100, 50); -var ctx = offscreenCanvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = new CSSHSL(CSS.deg(180), 0.5, 0.5); -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(offscreenCanvas, 50,25, 64,191,191,255, 3); + ctx.fillStyle = new CSSHSL(CSS.deg(180), 0.5, 0.5); + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 64,191,191,255, 3); -const color = new CSSHSL(CSS.deg(180), 1, 1); -ctx.fillStyle = color; -_assertSame(ctx.fillStyle, '#ffffff', "ctx.fillStyle", "'#ffffff'"); -ctx.fillRect(0, 0, 100, 50); -_assertPixel(offscreenCanvas, 50,25, 255,255,255,255); -color.l = 0.5; -ctx.fillStyle = color; -_assertSame(ctx.fillStyle, '#00ffff', "ctx.fillStyle", "'#00ffff'"); -ctx.fillRect(0, 0, 100, 50); -_assertPixel(offscreenCanvas, 50,25, 0,255,255,255); + const color = new CSSHSL(CSS.deg(180), 1, 1); + ctx.fillStyle = color; + _assertSame(ctx.fillStyle, '#ffffff', "ctx.fillStyle", "'#ffffff'"); + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 255,255,255,255); + color.l = 0.5; + ctx.fillStyle = color; + _assertSame(ctx.fillStyle, '#00ffff', "ctx.fillStyle", "'#00ffff'"); + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,255,255); -ctx.fillStyle = new CSSRGB(1, 0, 1).toHSL(); -_assertSame(ctx.fillStyle, '#ff00ff', "ctx.fillStyle", "'#ff00ff'"); -ctx.fillRect(0, 0, 100, 50); -_assertPixel(offscreenCanvas, 50,25, 255,0,255,255); -t.done(); + ctx.fillStyle = new CSSRGB(1, 0, 1).toHSL(); + _assertSame(ctx.fillStyle, '#ff00ff', "ctx.fillStyle", "'#ff00ff'"); + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 255,0,255,255); + + color.h = CSS.deg(120); + color.s = 1; + color.l = 0.5; + ctx.fillStyle = color; + ctx.fillRect(0, 0, 100, 50); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.default.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.default.html index 3a3b6a97..5807516 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.default.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.default.html
@@ -17,11 +17,11 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -_assertSame(ctx.fillStyle, '#000000', "ctx.fillStyle", "'#000000'"); -t.done(); + _assertSame(ctx.fillStyle, '#000000', "ctx.fillStyle", "'#000000'"); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.default.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.default.worker.js index 95ae259..34a6f12 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.default.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.default.worker.js
@@ -13,11 +13,10 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -_assertSame(ctx.fillStyle, '#000000', "ctx.fillStyle", "'#000000'"); -t.done(); - + _assertSame(ctx.fillStyle, '#000000', "ctx.fillStyle", "'#000000'"); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.get.halftransparent.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.get.halftransparent.html index 68b09d06..cd0b0c2 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.get.halftransparent.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.get.halftransparent.html
@@ -17,12 +17,12 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = 'rgba(255,255,255,0.5)'; -_assertSame(ctx.fillStyle, 'rgba(255, 255, 255, 0.5)', "ctx.fillStyle", "'rgba(255, 255, 255, 0.5)'"); -t.done(); + ctx.fillStyle = 'rgba(255,255,255,0.5)'; + _assertSame(ctx.fillStyle, 'rgba(255, 255, 255, 0.5)', "ctx.fillStyle", "'rgba(255, 255, 255, 0.5)'"); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.get.halftransparent.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.get.halftransparent.worker.js index de8f491..7590816 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.get.halftransparent.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.get.halftransparent.worker.js
@@ -13,12 +13,11 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = 'rgba(255,255,255,0.5)'; -_assertSame(ctx.fillStyle, 'rgba(255, 255, 255, 0.5)', "ctx.fillStyle", "'rgba(255, 255, 255, 0.5)'"); -t.done(); - + ctx.fillStyle = 'rgba(255,255,255,0.5)'; + _assertSame(ctx.fillStyle, 'rgba(255, 255, 255, 0.5)', "ctx.fillStyle", "'rgba(255, 255, 255, 0.5)'"); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.get.semitransparent.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.get.semitransparent.html index 9f85668..6be295a 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.get.semitransparent.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.get.semitransparent.html
@@ -17,12 +17,12 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = 'rgba(255,255,255,0.45)'; -assert_regexp_match(ctx.fillStyle, /^rgba\(255, 255, 255, 0\.4\d+\)$/); -t.done(); + ctx.fillStyle = 'rgba(255,255,255,0.45)'; + assert_regexp_match(ctx.fillStyle, /^rgba\(255, 255, 255, 0\.4\d+\)$/); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.get.semitransparent.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.get.semitransparent.worker.js index 3715183..1c25bc2 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.get.semitransparent.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.get.semitransparent.worker.js
@@ -13,12 +13,11 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = 'rgba(255,255,255,0.45)'; -assert_regexp_match(ctx.fillStyle, /^rgba\(255, 255, 255, 0\.4\d+\)$/); -t.done(); - + ctx.fillStyle = 'rgba(255,255,255,0.45)'; + assert_regexp_match(ctx.fillStyle, /^rgba\(255, 255, 255, 0\.4\d+\)$/); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.get.solid.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.get.solid.html index 3eca93e..4d8ccc0ff 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.get.solid.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.get.solid.html
@@ -17,12 +17,12 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#fa0'; -_assertSame(ctx.fillStyle, '#ffaa00', "ctx.fillStyle", "'#ffaa00'"); -t.done(); + ctx.fillStyle = '#fa0'; + _assertSame(ctx.fillStyle, '#ffaa00', "ctx.fillStyle", "'#ffaa00'"); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.get.solid.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.get.solid.worker.js index 2ada733..efec71c 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.get.solid.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.get.solid.worker.js
@@ -13,12 +13,11 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#fa0'; -_assertSame(ctx.fillStyle, '#ffaa00', "ctx.fillStyle", "'#ffaa00'"); -t.done(); - + ctx.fillStyle = '#fa0'; + _assertSame(ctx.fillStyle, '#ffaa00', "ctx.fillStyle", "'#ffaa00'"); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.get.transparent.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.get.transparent.html index caab8e02..8fe102f 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.get.transparent.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.get.transparent.html
@@ -17,12 +17,12 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = 'rgba(0,0,0,0)'; -_assertSame(ctx.fillStyle, 'rgba(0, 0, 0, 0)', "ctx.fillStyle", "'rgba(0, 0, 0, 0)'"); -t.done(); + ctx.fillStyle = 'rgba(0,0,0,0)'; + _assertSame(ctx.fillStyle, 'rgba(0, 0, 0, 0)', "ctx.fillStyle", "'rgba(0, 0, 0, 0)'"); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.get.transparent.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.get.transparent.worker.js index 57f5facf..51542bad 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.get.transparent.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.get.transparent.worker.js
@@ -13,12 +13,11 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = 'rgba(0,0,0,0)'; -_assertSame(ctx.fillStyle, 'rgba(0, 0, 0, 0)', "ctx.fillStyle", "'rgba(0, 0, 0, 0)'"); -t.done(); - + ctx.fillStyle = 'rgba(0,0,0,0)'; + _assertSame(ctx.fillStyle, 'rgba(0, 0, 0, 0)', "ctx.fillStyle", "'rgba(0, 0, 0, 0)'"); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.invalidstring.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.invalidstring.html index 260554c..a30bc4a 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.invalidstring.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.invalidstring.html
@@ -17,16 +17,16 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = '#0f0'; -ctx.fillStyle = 'invalid'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.fillStyle = 'invalid'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.invalidstring.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.invalidstring.worker.js index 4e4df4f..f2f5ccac 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.invalidstring.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.invalidstring.worker.js
@@ -13,16 +13,15 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = '#0f0'; -ctx.fillStyle = 'invalid'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.fillStyle = 'invalid'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.invalidtype.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.invalidtype.html index 53c0f77..23814ae8 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.invalidtype.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.invalidtype.html
@@ -17,16 +17,16 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = '#0f0'; -ctx.fillStyle = null; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.fillStyle = null; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.invalidtype.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.invalidtype.worker.js index 19b3120..13e10e12 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.invalidtype.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.invalidtype.worker.js
@@ -13,16 +13,15 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = '#0f0'; -ctx.fillStyle = null; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.fillStyle = null; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-1.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-1.html index d4a2466..222d7f6 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-1.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl(120 100.0% 50.0%)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl(120 100.0% 50.0%)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-1.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-1.worker.js index 074d796..7413788 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-1.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-1.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl(120 100.0% 50.0%)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl(120 100.0% 50.0%)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-2.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-2.html index 6853ae51..b2c93c1 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-2.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl(120 100.0% 50.0% / 0.2)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,51); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl(120 100.0% 50.0% / 0.2)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,51); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-2.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-2.worker.js index a4226cf..3ccd75a4 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-2.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-2.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl(120 100.0% 50.0% / 0.2)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,51); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl(120 100.0% 50.0% / 0.2)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,51); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-3.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-3.html index 62f4e48e..fc87269 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-3.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-3.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl(120.0, 100.0%, 50.0%, 0.2)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,51); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl(120.0, 100.0%, 50.0%, 0.2)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,51); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-3.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-3.worker.js index de3e379..bfaba36 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-3.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-3.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl(120.0, 100.0%, 50.0%, 0.2)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,51); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl(120.0, 100.0%, 50.0%, 0.2)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,51); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-4.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-4.html index 082ddcd..71cb327 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-4.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-4.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl(120.0, 100.0%, 50.0%, 20%)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,51); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl(120.0, 100.0%, 50.0%, 20%)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,51); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-4.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-4.worker.js index 2714bdf..afe1265 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-4.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-4.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl(120.0, 100.0%, 50.0%, 20%)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,51); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl(120.0, 100.0%, 50.0%, 20%)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,51); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-5.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-5.html index 55f92e1..787d5e76 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-5.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-5.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl(120deg, 100.0%, 50.0%, 0.2)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,51); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl(120deg, 100.0%, 50.0%, 0.2)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,51); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-5.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-5.worker.js index ef3fe13..05c77b0 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-5.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-5.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl(120deg, 100.0%, 50.0%, 0.2)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,51); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl(120deg, 100.0%, 50.0%, 0.2)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,51); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-6.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-6.html index 74657fc..8acc67f 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-6.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-6.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl(120deg, 100.0%, 50.0%)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl(120deg, 100.0%, 50.0%)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-6.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-6.worker.js index a36af9a..8ff0839 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-6.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-6.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl(120deg, 100.0%, 50.0%)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl(120deg, 100.0%, 50.0%)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-7.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-7.html index 419b15f7..dc295d0 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-7.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-7.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl(133.33333333grad, 100.0%, 50.0%)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl(133.33333333grad, 100.0%, 50.0%)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-7.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-7.worker.js index 10da114..9d0513f 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-7.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-7.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl(133.33333333grad, 100.0%, 50.0%)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl(133.33333333grad, 100.0%, 50.0%)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-8.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-8.html index a5acc80..50970585 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-8.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-8.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl(2.0943951024rad, 100.0%, 50.0%)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl(2.0943951024rad, 100.0%, 50.0%)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-8.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-8.worker.js index e12f963..ce56342 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-8.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-8.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl(2.0943951024rad, 100.0%, 50.0%)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl(2.0943951024rad, 100.0%, 50.0%)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-9.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-9.html index dc184153..47cd157c 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-9.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-9.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl(0.3333333333turn, 100.0%, 50.0%)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl(0.3333333333turn, 100.0%, 50.0%)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-9.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-9.worker.js index 51de0e0..e45f559 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-9.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-9.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl(0.3333333333turn, 100.0%, 50.0%)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl(0.3333333333turn, 100.0%, 50.0%)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-1.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-1.html index 84b8061..2d1e46f 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-1.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl(120 100.0% 50.0%)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl(120 100.0% 50.0%)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-1.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-1.worker.js index 2d7abab3..2a1157e 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-1.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-1.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl(120 100.0% 50.0%)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl(120 100.0% 50.0%)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-2.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-2.html index a3f2c67..f5531f6 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-2.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl(120 100.0% 50.0% / 0.2)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,51); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl(120 100.0% 50.0% / 0.2)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,51); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-2.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-2.worker.js index dd66b1d..23cd58d1 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-2.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-2.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl(120 100.0% 50.0% / 0.2)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,51); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl(120 100.0% 50.0% / 0.2)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,51); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-3.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-3.html index 5b809ba5..fde2328 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-3.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-3.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl(120.0, 100.0%, 50.0%, 0.2)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,51); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl(120.0, 100.0%, 50.0%, 0.2)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,51); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-3.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-3.worker.js index 7ef6d8f..64577bc 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-3.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-3.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl(120.0, 100.0%, 50.0%, 0.2)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,51); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl(120.0, 100.0%, 50.0%, 0.2)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,51); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-4.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-4.html index 3e06366..3b6e1f13 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-4.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-4.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl(120.0, 100.0%, 50.0%, 20%)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,51); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl(120.0, 100.0%, 50.0%, 20%)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,51); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-4.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-4.worker.js index ed1dec0..05b08f0 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-4.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-4.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl(120.0, 100.0%, 50.0%, 20%)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,51); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl(120.0, 100.0%, 50.0%, 20%)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,51); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-5.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-5.html index 34f626a..b0677c16 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-5.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-5.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl(120deg, 100.0%, 50.0%, 0.2)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,51); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl(120deg, 100.0%, 50.0%, 0.2)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,51); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-5.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-5.worker.js index 8904226..51484f3a 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-5.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-5.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl(120deg, 100.0%, 50.0%, 0.2)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,51); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl(120deg, 100.0%, 50.0%, 0.2)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,51); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-6.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-6.html index 3c1a23bf..809d11c 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-6.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-6.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl(120deg, 100.0%, 50.0%)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl(120deg, 100.0%, 50.0%)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-6.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-6.worker.js index 645081d..7b224e5 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-6.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-6.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl(120deg, 100.0%, 50.0%)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl(120deg, 100.0%, 50.0%)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-7.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-7.html index cc874e8f..48c3c69 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-7.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-7.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl(133.33333333grad, 100.0%, 50.0%)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl(133.33333333grad, 100.0%, 50.0%)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-7.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-7.worker.js index f42602e..ed51a5df4 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-7.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-7.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl(133.33333333grad, 100.0%, 50.0%)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl(133.33333333grad, 100.0%, 50.0%)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-8.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-8.html index 7501436..f49b313 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-8.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-8.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl(2.0943951024rad, 100.0%, 50.0%)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl(2.0943951024rad, 100.0%, 50.0%)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-8.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-8.worker.js index 376cb94c..c61fb1a 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-8.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-8.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl(2.0943951024rad, 100.0%, 50.0%)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl(2.0943951024rad, 100.0%, 50.0%)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-9.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-9.html index f759e69..68c4e22 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-9.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-9.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl(0.3333333333turn, 100.0%, 50.0%)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl(0.3333333333turn, 100.0%, 50.0%)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-9.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-9.worker.js index 58f4041..51541b7 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-9.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-9.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl(0.3333333333turn, 100.0%, 50.0%)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl(0.3333333333turn, 100.0%, 50.0%)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-1.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-1.html index 4464875..c9d75ca 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-1.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgb(0, 255.0, 0)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgb(0, 255.0, 0)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-1.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-1.worker.js index 34ecf3d..f0a67250 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-1.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-1.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgb(0, 255.0, 0)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgb(0, 255.0, 0)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-2.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-2.html index 328d731..0acc23e 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-2.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgb(0, 255, 0, 0.2)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,51); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgb(0, 255, 0, 0.2)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,51); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-2.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-2.worker.js index 958d5df35..eb6b952 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-2.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-2.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgb(0, 255, 0, 0.2)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,51); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgb(0, 255, 0, 0.2)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,51); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-3.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-3.html index 1dc99c2..85c2606c 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-3.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-3.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgb(0, 255, 0, 20%)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,51); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgb(0, 255, 0, 20%)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,51); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-3.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-3.worker.js index f82df16..9db5b7c 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-3.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-3.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgb(0, 255, 0, 20%)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,51); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgb(0, 255, 0, 20%)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,51); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-4.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-4.html index 1b72c4f..e028260e 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-4.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-4.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgb(0 255 0)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgb(0 255 0)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-4.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-4.worker.js index 08dba89..fecb3ec 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-4.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-4.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgb(0 255 0)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgb(0 255 0)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-5.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-5.html index 9044fe8..51ace91 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-5.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-5.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgb(0 255 0 / 0.2)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,51); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgb(0 255 0 / 0.2)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,51); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-5.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-5.worker.js index 27ccca6..03948b0 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-5.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-5.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgb(0 255 0 / 0.2)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,51); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgb(0 255 0 / 0.2)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,51); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-6.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-6.html index 66cb908..6df2f914 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-6.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-6.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgb(0 255 0 / 20%)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,51); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgb(0 255 0 / 20%)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,51); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-6.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-6.worker.js index 3ff4312..5f31d9a9 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-6.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-6.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgb(0 255 0 / 20%)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,51); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgb(0 255 0 / 20%)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,51); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-1.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-1.html index a0d2239..19d726e 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-1.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgba(0, 255.0, 0)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgba(0, 255.0, 0)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-1.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-1.worker.js index ef45434c..24f27822 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-1.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-1.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgba(0, 255.0, 0)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgba(0, 255.0, 0)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-2.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-2.html index 96dcbf6..1603ae93 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-2.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgba(0, 255, 0, 0.2)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,51); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgba(0, 255, 0, 0.2)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,51); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-2.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-2.worker.js index e03f5252..fcda86ba 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-2.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-2.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgba(0, 255, 0, 0.2)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,51); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgba(0, 255, 0, 0.2)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,51); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-3.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-3.html index f972e83..53ad717 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-3.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-3.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgba(0, 255, 0, 20%)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,51); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgba(0, 255, 0, 20%)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,51); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-3.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-3.worker.js index 3bc693f2..164f17f 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-3.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-3.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgba(0, 255, 0, 20%)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,51); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgba(0, 255, 0, 20%)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,51); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-4.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-4.html index 6825e865..3dc9f9c 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-4.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-4.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgba(0 255 0)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgba(0 255 0)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-4.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-4.worker.js index a50cc026..da512a261 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-4.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-4.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgba(0 255 0)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgba(0 255 0)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-5.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-5.html index 7c8b19c..db0e891f 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-5.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-5.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgba(0 255 0 / 0.2)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,51); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgba(0 255 0 / 0.2)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,51); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-5.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-5.worker.js index e134e34..7f10cba 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-5.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-5.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgba(0 255 0 / 0.2)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,51); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgba(0 255 0 / 0.2)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,51); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-6.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-6.html index b63b46f..c4ec462 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-6.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-6.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgba(0 255 0 / 20%)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,51); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgba(0 255 0 / 20%)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,51); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-6.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-6.worker.js index 3e401de..2d81992 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-6.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-6.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgba(0 255 0 / 20%)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,51); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgba(0 255 0 / 20%)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,51); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hex3.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hex3.html index 90d3e60..90c4d4f 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hex3.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hex3.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hex3.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hex3.worker.js index 9f0d0a4..7ee281b4 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hex3.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hex3.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hex4.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hex4.html index d10e3a8..8a6260fa 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hex4.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hex4.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = '#0f0f'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillStyle = '#0f0f'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hex4.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hex4.worker.js index fa84ca1..53001f9 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hex4.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hex4.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = '#0f0f'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = '#0f0f'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hex6.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hex6.html index 69394c9..02f698e 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hex6.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hex6.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = '#00fF00'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillStyle = '#00fF00'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hex6.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hex6.worker.js index cb432b4..e9420b62 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hex6.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hex6.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = '#00fF00'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = '#00fF00'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hex8.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hex8.html index 80abfe3..1563bab 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hex8.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hex8.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = '#00ff00ff'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillStyle = '#00ff00ff'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hex8.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hex8.worker.js index e114569..35cdc5c2 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hex8.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hex8.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = '#00ff00ff'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = '#00ff00ff'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-1.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-1.html index 65e5c18..96e6515 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-1.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl(120, 100%, 50%)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl(120, 100%, 50%)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-1.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-1.worker.js index 83d507c..204df1a 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-1.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-1.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl(120, 100%, 50%)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl(120, 100%, 50%)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-2.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-2.html index fdd78ad..b6f8f2b 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-2.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl( -240 , 100% , 50% )'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl( -240 , 100% , 50% )'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-2.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-2.worker.js index 0dfc848..f282d3c 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-2.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-2.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl( -240 , 100% , 50% )'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl( -240 , 100% , 50% )'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-3.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-3.html index 51692444..5ed3b96 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-3.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-3.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl(360120, 100%, 50%)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl(360120, 100%, 50%)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-3.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-3.worker.js index 54dec44..a4abd30 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-3.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-3.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl(360120, 100%, 50%)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl(360120, 100%, 50%)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-4.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-4.html index 90f30ab..f91edd7 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-4.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-4.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl(-360240, 100%, 50%)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl(-360240, 100%, 50%)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-4.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-4.worker.js index 43c2066..19cbfd08 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-4.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-4.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl(-360240, 100%, 50%)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl(-360240, 100%, 50%)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-5.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-5.html index 7760e23..c4624da 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-5.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-5.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl(120.0, 100.0%, 50.0%)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl(120.0, 100.0%, 50.0%)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-5.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-5.worker.js index d4c95c1..49689b8 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-5.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-5.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl(120.0, 100.0%, 50.0%)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl(120.0, 100.0%, 50.0%)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-6.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-6.html index 7950929..5baa5b3 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-6.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-6.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl(+120, +100%, +50%)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl(+120, +100%, +50%)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-6.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-6.worker.js index f5acc2d..9f99d964 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-6.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-6.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl(+120, +100%, +50%)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl(+120, +100%, +50%)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-clamp-1.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-clamp-1.html index 1b37546..db43c45d 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-clamp-1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-clamp-1.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl(120, 200%, 50%)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl(120, 200%, 50%)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-clamp-1.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-clamp-1.worker.js index cc3308d7..868beda 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-clamp-1.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-clamp-1.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl(120, 200%, 50%)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl(120, 200%, 50%)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-clamp-2.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-clamp-2.html index 0133f7f..a5b399a 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-clamp-2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-clamp-2.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl(120, -200%, 49.9%)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 127,127,127,255); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl(120, -200%, 49.9%)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 127,127,127,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-clamp-2.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-clamp-2.worker.js index 48c23aa1..2f1d2d72 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-clamp-2.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-clamp-2.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl(120, -200%, 49.9%)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 127,127,127,255); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl(120, -200%, 49.9%)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 127,127,127,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-clamp-3.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-clamp-3.html index e35355c..cfa6d823 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-clamp-3.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-clamp-3.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl(120, 100%, 200%)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 255,255,255,255); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl(120, 100%, 200%)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 255,255,255,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-clamp-3.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-clamp-3.worker.js index ef1ac418..4c71d6d1 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-clamp-3.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-clamp-3.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl(120, 100%, 200%)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 255,255,255,255); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl(120, 100%, 200%)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 255,255,255,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-clamp-4.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-clamp-4.html index c42b6f1..a3bfd8c 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-clamp-4.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-clamp-4.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl(120, 100%, -200%)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,0,0,255); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl(120, 100%, -200%)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,0,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-clamp-4.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-clamp-4.worker.js index 061685d..e4477f5c 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-clamp-4.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-clamp-4.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsl(120, 100%, -200%)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,0,0,255); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsl(120, 100%, -200%)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,0,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-1.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-1.html index 0defd457..67a65da 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-1.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsla(120, 100%, 50%, 0.499)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,127); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsla(120, 100%, 50%, 0.499)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,127); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-1.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-1.worker.js index 64a26e6..c0023682 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-1.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-1.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsla(120, 100%, 50%, 0.499)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,127); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsla(120, 100%, 50%, 0.499)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,127); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-2.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-2.html index 0498edd..c63fac5 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-2.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsla( 120.0 , 100.0% , 50.0% , 1 )'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsla( 120.0 , 100.0% , 50.0% , 1 )'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-2.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-2.worker.js index 6101f0e..aca5d8d9 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-2.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-2.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsla( 120.0 , 100.0% , 50.0% , 1 )'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsla( 120.0 , 100.0% , 50.0% , 1 )'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-1.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-1.html index 313ecf2..ebd7661 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-1.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsla(120, 200%, 50%, 1)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsla(120, 200%, 50%, 1)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-1.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-1.worker.js index 8724efd..6a29123 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-1.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-1.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsla(120, 200%, 50%, 1)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsla(120, 200%, 50%, 1)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-2.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-2.html index 761471f..91ec5484 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-2.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsla(120, -200%, 49.9%, 1)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 127,127,127,255); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsla(120, -200%, 49.9%, 1)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 127,127,127,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-2.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-2.worker.js index af4271c..c27c9f8 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-2.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-2.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsla(120, -200%, 49.9%, 1)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 127,127,127,255); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsla(120, -200%, 49.9%, 1)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 127,127,127,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-3.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-3.html index 287a23a5..343bf8b2 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-3.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-3.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsla(120, 100%, 200%, 1)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 255,255,255,255); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsla(120, 100%, 200%, 1)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 255,255,255,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-3.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-3.worker.js index 1e10a76d..64f459c 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-3.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-3.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsla(120, 100%, 200%, 1)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 255,255,255,255); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsla(120, 100%, 200%, 1)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 255,255,255,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-4.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-4.html index a0e420c..c54d4099 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-4.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-4.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsla(120, 100%, -200%, 1)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,0,0,255); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsla(120, 100%, -200%, 1)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,0,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-4.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-4.worker.js index e746bc3..b24163a7 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-4.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-4.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsla(120, 100%, -200%, 1)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,0,0,255); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsla(120, 100%, -200%, 1)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,0,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-5.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-5.html index 0683719..d068ffa 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-5.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-5.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsla(120, 100%, 50%, 2)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsla(120, 100%, 50%, 2)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-5.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-5.worker.js index 61d86a8..a10af90a 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-5.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-5.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsla(120, 100%, 50%, 2)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsla(120, 100%, 50%, 2)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-6.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-6.html index a810639..f8f0a78 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-6.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-6.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsla(120, 100%, 0%, -2)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,0,0,0); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsla(120, 100%, 0%, -2)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,0,0,0); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-6.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-6.worker.js index 57c0d587..da6cd93e 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-6.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-6.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'hsla(120, 100%, 0%, -2)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,0,0,0); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'hsla(120, 100%, 0%, -2)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,0,0,0); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.html4.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.html4.html index 767768a..fc1c1af 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.html4.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.html4.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'limE'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'limE'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.html4.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.html4.worker.js index a8b8552..7430608f 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.html4.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.html4.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'limE'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'limE'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-1.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-1.html index 1a227a43..3edffc6d 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-1.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'hsl(0, 100%, 50% / 1)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'hsl(0, 100%, 50% / 1)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-1.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-1.worker.js index 20fc879b..054568e 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-1.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-1.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'hsl(0, 100%, 50% / 1)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'hsl(0, 100%, 50% / 1)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-2.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-2.html index 36b95ed2..477b318 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-2.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'hsl(0 100% 50%, 1)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'hsl(0 100% 50%, 1)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-2.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-2.worker.js index c2c6fc0..74d6904f 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-2.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-2.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'hsl(0 100% 50%, 1)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'hsl(0 100% 50%, 1)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-3.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-3.html index d208c62..e209266 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-3.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-3.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'hsl(0, 100% 50%)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'hsl(0, 100% 50%)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-3.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-3.worker.js index c2f90ef..7e930df4 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-3.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-3.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'hsl(0, 100% 50%)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'hsl(0, 100% 50%)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-4.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-4.html index 2fba5aaf..5bcc175 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-4.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-4.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'hsl(0 100% 50% /)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'hsl(0 100% 50% /)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-4.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-4.worker.js index 6903ae9..cca9d52a 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-4.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-4.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'hsl(0 100% 50% /)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'hsl(0 100% 50% /)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-5.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-5.html index f340a52..ba465408 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-5.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-5.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'hsl(0, 100%, 50% /)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'hsl(0, 100%, 50% /)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-5.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-5.worker.js index 8f0cfc0..5c17b9ee 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-5.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-5.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'hsl(0, 100%, 50% /)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'hsl(0, 100%, 50% /)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsla-1.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsla-1.html index 834a1b7b..a5f8f3f 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsla-1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsla-1.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'hsla(0, 100%, 50% / 1)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'hsla(0, 100%, 50% / 1)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsla-1.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsla-1.worker.js index 45e0743..1ab7e71 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsla-1.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsla-1.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'hsla(0, 100%, 50% / 1)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'hsla(0, 100%, 50% / 1)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsla-2.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsla-2.html index cd33bbf..bd54322 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsla-2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsla-2.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'hsla(0 100% 50%, 1)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'hsla(0 100% 50%, 1)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsla-2.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsla-2.worker.js index e0d7571..9f1aeed 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsla-2.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsla-2.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'hsla(0 100% 50%, 1)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'hsla(0 100% 50%, 1)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsla-3.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsla-3.html index fd01b762..e33b9415 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsla-3.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsla-3.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'hsla(0, 100% 50%)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'hsla(0, 100% 50%)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsla-3.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsla-3.worker.js index 4adb92bb..c06a319 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsla-3.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsla-3.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'hsla(0, 100% 50%)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'hsla(0, 100% 50%)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-1.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-1.html index f1e1b2a..8fbbc7a 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-1.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'rgb(255, 0, 0 / 1)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'rgb(255, 0, 0 / 1)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-1.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-1.worker.js index 450556b..a728e8d3 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-1.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-1.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'rgb(255, 0, 0 / 1)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'rgb(255, 0, 0 / 1)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-2.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-2.html index dc22f99..adc82974 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-2.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'rgb(255 0 0, 1)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'rgb(255 0 0, 1)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-2.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-2.worker.js index 35217d1..da9b95c 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-2.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-2.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'rgb(255 0 0, 1)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'rgb(255 0 0, 1)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-3.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-3.html index 434c15ec..4d385d5 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-3.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-3.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'rgb(255, 0 0)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'rgb(255, 0 0)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-3.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-3.worker.js index 28200cf..eee7fb9 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-3.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-3.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'rgb(255, 0 0)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'rgb(255, 0 0)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-4.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-4.html index 58ed0e7..6b855b43 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-4.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-4.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'rgb(0 0 0 /)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'rgb(0 0 0 /)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-4.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-4.worker.js index 1830996..2b25416 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-4.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-4.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'rgb(0 0 0 /)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'rgb(0 0 0 /)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-5.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-5.html index 9564373..13fadb9 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-5.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-5.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'rgb(0, 0, 0 /)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'rgb(0, 0, 0 /)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-5.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-5.worker.js index 4591bbde..7932932 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-5.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-5.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'rgb(0, 0, 0 /)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'rgb(0, 0, 0 /)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgba-1.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgba-1.html index 5ae093e..5353f77 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgba-1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgba-1.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'rgba(255, 0, 0 / 1)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'rgba(255, 0, 0 / 1)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgba-1.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgba-1.worker.js index d9a315c..ef559c45 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgba-1.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgba-1.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'rgba(255, 0, 0 / 1)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'rgba(255, 0, 0 / 1)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgba-2.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgba-2.html index 036f389..aaa555a 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgba-2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgba-2.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'rgba(255 0 0, 1)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'rgba(255 0 0, 1)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgba-2.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgba-2.worker.js index 1fc2f5d..7a06f832 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgba-2.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgba-2.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'rgba(255 0 0, 1)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'rgba(255 0 0, 1)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgba-3.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgba-3.html index 6635579..e8c0588 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgba-3.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgba-3.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'rgba(255, 0 0)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'rgba(255, 0 0)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgba-3.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgba-3.worker.js index 1eadf91..65ed246 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgba-3.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgba-3.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'rgba(255, 0 0)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'rgba(255, 0 0)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex1.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex1.html index 83e1c41..28a7ff473 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex1.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = '#f'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = '#f'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex1.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex1.worker.js index 3807fd33..0cb79048 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex1.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex1.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = '#f'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = '#f'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex2.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex2.html index 453ec4bd..0dcf0f8 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex2.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = '#f0'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = '#f0'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex2.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex2.worker.js index 9bb7e2c..d2dd193 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex2.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex2.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = '#f0'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = '#f0'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex3.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex3.html index c1d4e8c..8e1bd9fa 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex3.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex3.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = '#g00'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = '#g00'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex3.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex3.worker.js index 4eaa0b0d..805becb 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex3.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex3.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = '#g00'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = '#g00'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex4.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex4.html index 89c23a00..f59991d3 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex4.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex4.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = '#fg00'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = '#fg00'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex4.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex4.worker.js index ceffb19..1499fb7 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex4.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex4.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = '#fg00'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = '#fg00'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex5.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex5.html index 4d62d09b..9567114 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex5.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex5.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = '#ff000'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = '#ff000'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex5.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex5.worker.js index 7225544f..d50daeb4 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex5.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex5.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = '#ff000'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = '#ff000'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex6.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex6.html index 69dfdc7..b36d0c86 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex6.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex6.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = '#fg0000'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = '#fg0000'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex6.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex6.worker.js index 2e5a93b..606aa4f 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex6.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex6.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = '#fg0000'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = '#fg0000'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex7.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex7.html index 2be93ca..5b38e78 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex7.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex7.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = '#ff0000f'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = '#ff0000f'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex7.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex7.worker.js index fbd4a88..92ff04a 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex7.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex7.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = '#ff0000f'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = '#ff0000f'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex8.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex8.html index f67758d4..1eda0c7 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex8.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex8.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = '#fg0000ff'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = '#fg0000ff'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex8.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex8.worker.js index fcc230c..4508cc56 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex8.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex8.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = '#fg0000ff'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = '#fg0000ff'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-1.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-1.html index 54e6711..9ff3c68 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-1.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'hsl(0%, 100%, 50%)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'hsl(0%, 100%, 50%)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-1.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-1.worker.js index 3b0bb91..e3cbe47 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-1.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-1.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'hsl(0%, 100%, 50%)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'hsl(0%, 100%, 50%)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-2.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-2.html index 7614b8c3..46fac5f 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-2.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'hsl(z, 100%, 50%)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'hsl(z, 100%, 50%)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-2.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-2.worker.js index ec906f7..56c36f3 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-2.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-2.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'hsl(z, 100%, 50%)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'hsl(z, 100%, 50%)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-3.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-3.html index 13d19ac..1f05e8d 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-3.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-3.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'hsl(0, 0, 50%)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'hsl(0, 0, 50%)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-3.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-3.worker.js index 370eba2..491b5bd 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-3.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-3.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'hsl(0, 0, 50%)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'hsl(0, 0, 50%)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-4.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-4.html index 9f01aa2..dd2cec79 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-4.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-4.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'hsl(0, 100%, 0)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'hsl(0, 100%, 0)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-4.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-4.worker.js index 9d53d26c9..fef0f0a 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-4.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-4.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'hsl(0, 100%, 0)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'hsl(0, 100%, 0)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-5.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-5.html index 23f3806..909e230b1 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-5.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-5.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'hsl(0, 100.%, 50%)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'hsl(0, 100.%, 50%)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-5.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-5.worker.js index 98f4b1c..635e0bf 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-5.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-5.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'hsl(0, 100.%, 50%)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'hsl(0, 100.%, 50%)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-6.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-6.html index 405a0e5..9bb652c 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-6.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-6.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'hsl(0, 100%, 50%,)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'hsl(0, 100%, 50%,)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-6.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-6.worker.js index 8718547..efe1aa7 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-6.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-6.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'hsl(0, 100%, 50%,)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'hsl(0, 100%, 50%,)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsla-1.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsla-1.html index ae9d7986..9b553c6 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsla-1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsla-1.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'hsla(0%, 100%, 50%, 1)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'hsla(0%, 100%, 50%, 1)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsla-1.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsla-1.worker.js index b6a70f2a..757ca91 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsla-1.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsla-1.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'hsla(0%, 100%, 50%, 1)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'hsla(0%, 100%, 50%, 1)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsla-2.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsla-2.html index de12341..d894bc42 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsla-2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsla-2.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'hsla(0, 0, 50%, 1)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'hsla(0, 0, 50%, 1)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsla-2.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsla-2.worker.js index 809c805..be2b2dd 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsla-2.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsla-2.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'hsla(0, 0, 50%, 1)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'hsla(0, 0, 50%, 1)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsla-3.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsla-3.html index beab07b8..8901a112 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsla-3.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsla-3.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'hsla(0, 0, 50%, 1,)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'hsla(0, 0, 50%, 1,)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsla-3.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsla-3.worker.js index 4d2b53b..52d3707 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsla-3.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsla-3.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'hsla(0, 0, 50%, 1,)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'hsla(0, 0, 50%, 1,)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-1.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-1.html index 4ac286e6..ceb6c53a 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-1.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'darkbrown'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'darkbrown'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-1.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-1.worker.js index ef588934..6331a2df 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-1.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-1.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'darkbrown'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'darkbrown'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-2.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-2.html index 6b54c18..684a6655 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-2.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'firebrick1'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'firebrick1'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-2.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-2.worker.js index b66a0741..101646c9 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-2.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-2.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'firebrick1'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'firebrick1'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-3.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-3.html index 05cfaa9..ebf508f 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-3.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-3.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'red blue'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'red blue'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-3.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-3.worker.js index da51a4a..61e43e0 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-3.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-3.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'red blue'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'red blue'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-4.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-4.html index 47aab58..ba1f71b 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-4.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-4.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = '"red"'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = '"red"'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-4.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-4.worker.js index c167c2b..b1efecd 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-4.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-4.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = '"red"'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = '"red"'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-5.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-5.html index af19e19..a889a387 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-5.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-5.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = '"red'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = '"red'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-5.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-5.worker.js index 8fe3a9b..e519fff4 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-5.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-5.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = '"red'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = '"red'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-1.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-1.html index 300bb85e..e1fb32a 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-1.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'rgb(255.0, 0, 0,)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'rgb(255.0, 0, 0,)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-1.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-1.worker.js index 3c97d85..8255f35 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-1.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-1.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'rgb(255.0, 0, 0,)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'rgb(255.0, 0, 0,)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-2.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-2.html index 8bc9c079..54d7daf 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-2.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'rgb(100%, 0, 0)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'rgb(100%, 0, 0)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-2.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-2.worker.js index 7e4e27c..c0787e3 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-2.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-2.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'rgb(100%, 0, 0)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'rgb(100%, 0, 0)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-3.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-3.html index 11e93a1c..9874fc6 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-3.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-3.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'rgb(255, - 1, 0)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'rgb(255, - 1, 0)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-3.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-3.worker.js index 59d89f7..62365ac 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-3.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-3.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'rgb(255, - 1, 0)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'rgb(255, - 1, 0)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-1.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-1.html index 3a0b399..fbfa4ba 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-1.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'rgba(100%, 0, 0, 1)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'rgba(100%, 0, 0, 1)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-1.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-1.worker.js index efd76405..53063fd9 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-1.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-1.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'rgba(100%, 0, 0, 1)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'rgba(100%, 0, 0, 1)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-2.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-2.html index 28a2180..43cd1763c 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-2.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'rgba(255, 0, 0, 1. 0)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'rgba(255, 0, 0, 1. 0)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-2.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-2.worker.js index dfdafb1..df70792 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-2.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-2.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'rgba(255, 0, 0, 1. 0)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'rgba(255, 0, 0, 1. 0)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-3.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-3.html index d9ad0be..9695522 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-3.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-3.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'rgba(255, 0, 0, 1.)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'rgba(255, 0, 0, 1.)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-3.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-3.worker.js index 1dca0eb9..8f45ef58 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-3.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-3.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'rgba(255, 0, 0, 1.)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'rgba(255, 0, 0, 1.)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-4.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-4.html index db71a88e..9334d69 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-4.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-4.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'rgba(255, 0, 0, '; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'rgba(255, 0, 0, '; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-4.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-4.worker.js index dff64ba..47549bea5 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-4.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-4.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'rgba(255, 0, 0, '; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'rgba(255, 0, 0, '; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-5.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-5.html index 00e7791..7b53652 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-5.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-5.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'rgba(255, 0, 0, 1,)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'rgba(255, 0, 0, 1,)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-5.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-5.worker.js index 80a65dc..562b966 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-5.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-5.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'rgba(255, 0, 0, 1,)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#0f0'; + try { ctx.fillStyle = 'rgba(255, 0, 0, 1,)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-1.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-1.html index ce03f7b..c9e9e4c 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-1.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgb(-1000, 1000, -1000)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgb(-1000, 1000, -1000)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-1.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-1.worker.js index 48cf6a7..51b81c5b 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-1.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-1.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgb(-1000, 1000, -1000)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgb(-1000, 1000, -1000)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-2.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-2.html index e4f9260..98df8d67 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-2.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgb(-200%, 200%, -200%)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgb(-200%, 200%, -200%)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-2.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-2.worker.js index 70adec46..bfe9102f 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-2.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-2.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgb(-200%, 200%, -200%)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgb(-200%, 200%, -200%)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-3.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-3.html index 73bbc00d..70f5ed0 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-3.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-3.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgb(-2147483649, 4294967298, -18446744073709551619)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgb(-2147483649, 4294967298, -18446744073709551619)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-3.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-3.worker.js index 883328b..809d2093 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-3.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-3.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgb(-2147483649, 4294967298, -18446744073709551619)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgb(-2147483649, 4294967298, -18446744073709551619)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-4.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-4.html index 1bdb70d..1f387998 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-4.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-4.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgb(-1000000000000000000000000000000000000000, 1000000000000000000000000000000000000000, -1000000000000000000000000000000000000000)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgb(-1000000000000000000000000000000000000000, 1000000000000000000000000000000000000000, -1000000000000000000000000000000000000000)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-4.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-4.worker.js index ca5543a..c0ec5ec 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-4.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-4.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgb(-1000000000000000000000000000000000000000, 1000000000000000000000000000000000000000, -1000000000000000000000000000000000000000)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgb(-1000000000000000000000000000000000000000, 1000000000000000000000000000000000000000, -1000000000000000000000000000000000000000)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-5.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-5.html index 880ad046..c2ac0b94 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-5.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-5.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgb(-10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, -10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgb(-10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, -10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-5.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-5.worker.js index 41f8799..ac2692ec 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-5.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-5.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgb(-10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, -10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgb(-10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, -10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-eof.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-eof.html index 9a84105d..2979d7d 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-eof.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-eof.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgb(0, 255, 0'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgb(0, 255, 0'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-eof.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-eof.worker.js index 3958993..997df7b0 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-eof.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-eof.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgb(0, 255, 0'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgb(0, 255, 0'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-num.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-num.html index 6cda83e..67ba77f 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-num.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-num.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgb(0,255,0)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgb(0,255,0)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-num.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-num.worker.js index 229d6ae..1d54b1f 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-num.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-num.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgb(0,255,0)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgb(0,255,0)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-percent.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-percent.html index 6f7125d..8fe3be55 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-percent.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-percent.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgb(0% ,100% ,0%)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgb(0% ,100% ,0%)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-percent.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-percent.worker.js index 4ba5c98..82437608 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-percent.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-percent.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgb(0% ,100% ,0%)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgb(0% ,100% ,0%)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-clamp-1.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-clamp-1.html index 1cf20f7..af3acb9 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-clamp-1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-clamp-1.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgba(0, 255, 0, -2)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,0,0,0); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgba(0, 255, 0, -2)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,0,0,0); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-clamp-1.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-clamp-1.worker.js index 9ba73e2..e3a5bf56 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-clamp-1.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-clamp-1.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgba(0, 255, 0, -2)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,0,0,0); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgba(0, 255, 0, -2)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,0,0,0); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-clamp-2.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-clamp-2.html index c8b4844..32ee979 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-clamp-2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-clamp-2.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgba(0, 255, 0, 2)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgba(0, 255, 0, 2)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-clamp-2.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-clamp-2.worker.js index fd1c53a..612c40b 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-clamp-2.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-clamp-2.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgba(0, 255, 0, 2)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgba(0, 255, 0, 2)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-eof.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-eof.html index d3fd3df2..baa42cde 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-eof.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-eof.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgba(0, 255, 0, 1'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgba(0, 255, 0, 1'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-eof.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-eof.worker.js index 6e51f09b..73e0b4f 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-eof.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-eof.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgba(0, 255, 0, 1'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgba(0, 255, 0, 1'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-num-1.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-num-1.html index 1ce69821..eaa83e18 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-num-1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-num-1.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgba( 0 , 255 , 0 , .499 )'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,127); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgba( 0 , 255 , 0 , .499 )'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,127); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-num-1.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-num-1.worker.js index 2805af6e..bb1a97fb 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-num-1.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-num-1.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgba( 0 , 255 , 0 , .499 )'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,127); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgba( 0 , 255 , 0 , .499 )'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,127); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-num-2.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-num-2.html index 979eff6..47bf3ddc 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-num-2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-num-2.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgba( 0 , 255 , 0 , 0.499 )'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,127); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgba( 0 , 255 , 0 , 0.499 )'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,127); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-num-2.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-num-2.worker.js index 2ed1549..5629ca5c 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-num-2.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-num-2.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgba( 0 , 255 , 0 , 0.499 )'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,127); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgba( 0 , 255 , 0 , 0.499 )'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,127); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-percent.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-percent.html index 2c737e2..068befd 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-percent.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-percent.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgba(0%,100%,0%,0.499)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,127); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgba(0%,100%,0%,0.499)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,127); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-percent.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-percent.worker.js index 5852ea3..6d90415 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-percent.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-percent.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgba(0%,100%,0%,0.499)'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,127); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgba(0%,100%,0%,0.499)'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,127); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-solid-1.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-solid-1.html index 701b5efc..0e58836 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-solid-1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-solid-1.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgba( 0 , 255 , 0 , 1 )'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgba( 0 , 255 , 0 , 1 )'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-solid-1.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-solid-1.worker.js index 51e6d774..cddedb7 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-solid-1.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-solid-1.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgba( 0 , 255 , 0 , 1 )'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgba( 0 , 255 , 0 , 1 )'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-solid-2.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-solid-2.html index 7280c10d..8da29ee 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-solid-2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-solid-2.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgba( 0 , 255 , 0 , 1.0 )'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgba( 0 , 255 , 0 , 1.0 )'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-solid-2.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-solid-2.worker.js index 4dcbd72..126cbb92 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-solid-2.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-solid-2.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgba( 0 , 255 , 0 , 1.0 )'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgba( 0 , 255 , 0 , 1.0 )'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-solid-3.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-solid-3.html index dfbb443..e67374c 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-solid-3.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-solid-3.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgba( 0 , 255 , 0 , +1 )'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgba( 0 , 255 , 0 , +1 )'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-solid-3.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-solid-3.worker.js index 060fad9..d8d1513 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-solid-3.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-solid-3.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgba( 0 , 255 , 0 , +1 )'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgba( 0 , 255 , 0 , +1 )'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-solid-4.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-solid-4.html index 131396c8..777aacea 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-solid-4.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-solid-4.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgba( -0 , 255 , +0 , 1 )'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgba( -0 , 255 , +0 , 1 )'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-solid-4.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-solid-4.worker.js index 43a8cf8..aa516a2d 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-solid-4.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-solid-4.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'rgba( -0 , 255 , +0 , 1 )'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'rgba( -0 , 255 , +0 , 1 )'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.svg-1.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.svg-1.html index ffcc525b..8dc6844 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.svg-1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.svg-1.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'gray'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 128,128,128,255); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'gray'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 128,128,128,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.svg-1.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.svg-1.worker.js index 86b4f81..e8660ca 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.svg-1.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.svg-1.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'gray'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 128,128,128,255); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'gray'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 128,128,128,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.svg-2.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.svg-2.html index eafecd0..2833565 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.svg-2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.svg-2.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'grey'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 128,128,128,255); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'grey'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 128,128,128,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.svg-2.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.svg-2.worker.js index 3aa5305..3488200 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.svg-2.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.svg-2.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'grey'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 128,128,128,255); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'grey'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 128,128,128,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.system.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.system.html index 65a84a78..6e12406 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.system.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.system.html
@@ -17,14 +17,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'ThreeDDarkShadow'; -assert_regexp_match(ctx.fillStyle, /^#(?!(FF0000|ff0000|f00)$)/); // test that it's not red -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'ThreeDDarkShadow'; + assert_regexp_match(ctx.fillStyle, /^#(?!(FF0000|ff0000|f00)$)/); // test that it's not red + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.system.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.system.worker.js index 8e21145..cf62855 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.system.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.system.worker.js
@@ -13,14 +13,12 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'ThreeDDarkShadow'; -assert_regexp_match(ctx.fillStyle, /^#(?!(FF0000|ff0000|f00)$)/); // test that it's not red -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'ThreeDDarkShadow'; + assert_regexp_match(ctx.fillStyle, /^#(?!(FF0000|ff0000|f00)$)/); // test that it's not red + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.transparent-1.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.transparent-1.html index 98da0c2..a595d70 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.transparent-1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.transparent-1.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'transparent'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,0,0,0); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'transparent'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,0,0,0); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.transparent-1.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.transparent-1.worker.js index a934b66c8..7f9a975 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.transparent-1.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.transparent-1.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'transparent'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,0,0,0); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'transparent'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,0,0,0); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.transparent-2.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.transparent-2.html index cfebe8fc..0f2a7e0 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.transparent-2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.transparent-2.html
@@ -17,15 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'TrAnSpArEnT'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,0,0,0); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'TrAnSpArEnT'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,0,0,0); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.transparent-2.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.transparent-2.worker.js index e577bf55..794ca92 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.transparent-2.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.transparent-2.worker.js
@@ -13,15 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); - -ctx.fillStyle = '#f00'; -ctx.fillStyle = 'TrAnSpArEnT'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,0,0,0); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillStyle = 'TrAnSpArEnT'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,0,0,0); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.toStringFunctionCallback.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.toStringFunctionCallback.html index 70eb6b1a2..3e56bd2 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.toStringFunctionCallback.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.toStringFunctionCallback.html
@@ -17,24 +17,24 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = { toString: function() { return "#008000"; } }; -_assertSame(ctx.fillStyle, "#008000", "ctx.fillStyle", "\"#008000\""); -ctx.fillStyle = {}; -_assertSame(ctx.fillStyle, "#008000", "ctx.fillStyle", "\"#008000\""); -ctx.fillStyle = 800000; -_assertSame(ctx.fillStyle, "#008000", "ctx.fillStyle", "\"#008000\""); -assert_throws_js(TypeError, function() { ctx.fillStyle = { toString: function() { throw new TypeError; } }; }); -ctx.strokeStyle = { toString: function() { return "#008000"; } }; -_assertSame(ctx.strokeStyle, "#008000", "ctx.strokeStyle", "\"#008000\""); -ctx.strokeStyle = {}; -_assertSame(ctx.strokeStyle, "#008000", "ctx.strokeStyle", "\"#008000\""); -ctx.strokeStyle = 800000; -_assertSame(ctx.strokeStyle, "#008000", "ctx.strokeStyle", "\"#008000\""); -assert_throws_js(TypeError, function() { ctx.strokeStyle = { toString: function() { throw new TypeError; } }; }); -t.done(); + ctx.fillStyle = { toString: function() { return "#008000"; } }; + _assertSame(ctx.fillStyle, "#008000", "ctx.fillStyle", "\"#008000\""); + ctx.fillStyle = {}; + _assertSame(ctx.fillStyle, "#008000", "ctx.fillStyle", "\"#008000\""); + ctx.fillStyle = 800000; + _assertSame(ctx.fillStyle, "#008000", "ctx.fillStyle", "\"#008000\""); + assert_throws_js(TypeError, function() { ctx.fillStyle = { toString: function() { throw new TypeError; } }; }); + ctx.strokeStyle = { toString: function() { return "#008000"; } }; + _assertSame(ctx.strokeStyle, "#008000", "ctx.strokeStyle", "\"#008000\""); + ctx.strokeStyle = {}; + _assertSame(ctx.strokeStyle, "#008000", "ctx.strokeStyle", "\"#008000\""); + ctx.strokeStyle = 800000; + _assertSame(ctx.strokeStyle, "#008000", "ctx.strokeStyle", "\"#008000\""); + assert_throws_js(TypeError, function() { ctx.strokeStyle = { toString: function() { throw new TypeError; } }; }); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.toStringFunctionCallback.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.toStringFunctionCallback.worker.js index 68ae0a5..3ae9309 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.toStringFunctionCallback.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.toStringFunctionCallback.worker.js
@@ -13,24 +13,23 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = { toString: function() { return "#008000"; } }; -_assertSame(ctx.fillStyle, "#008000", "ctx.fillStyle", "\"#008000\""); -ctx.fillStyle = {}; -_assertSame(ctx.fillStyle, "#008000", "ctx.fillStyle", "\"#008000\""); -ctx.fillStyle = 800000; -_assertSame(ctx.fillStyle, "#008000", "ctx.fillStyle", "\"#008000\""); -assert_throws_js(TypeError, function() { ctx.fillStyle = { toString: function() { throw new TypeError; } }; }); -ctx.strokeStyle = { toString: function() { return "#008000"; } }; -_assertSame(ctx.strokeStyle, "#008000", "ctx.strokeStyle", "\"#008000\""); -ctx.strokeStyle = {}; -_assertSame(ctx.strokeStyle, "#008000", "ctx.strokeStyle", "\"#008000\""); -ctx.strokeStyle = 800000; -_assertSame(ctx.strokeStyle, "#008000", "ctx.strokeStyle", "\"#008000\""); -assert_throws_js(TypeError, function() { ctx.strokeStyle = { toString: function() { throw new TypeError; } }; }); -t.done(); - + ctx.fillStyle = { toString: function() { return "#008000"; } }; + _assertSame(ctx.fillStyle, "#008000", "ctx.fillStyle", "\"#008000\""); + ctx.fillStyle = {}; + _assertSame(ctx.fillStyle, "#008000", "ctx.fillStyle", "\"#008000\""); + ctx.fillStyle = 800000; + _assertSame(ctx.fillStyle, "#008000", "ctx.fillStyle", "\"#008000\""); + assert_throws_js(TypeError, function() { ctx.fillStyle = { toString: function() { throw new TypeError; } }; }); + ctx.strokeStyle = { toString: function() { return "#008000"; } }; + _assertSame(ctx.strokeStyle, "#008000", "ctx.strokeStyle", "\"#008000\""); + ctx.strokeStyle = {}; + _assertSame(ctx.strokeStyle, "#008000", "ctx.strokeStyle", "\"#008000\""); + ctx.strokeStyle = 800000; + _assertSame(ctx.strokeStyle, "#008000", "ctx.strokeStyle", "\"#008000\""); + assert_throws_js(TypeError, function() { ctx.strokeStyle = { toString: function() { throw new TypeError; } }; }); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.conic.invalid.inputs.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.conic.invalid.inputs.html index 3d1f21e..5ccb19e 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.conic.invalid.inputs.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.conic.invalid.inputs.html
@@ -17,29 +17,29 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -assert_throws_js(TypeError, function() { ctx.createConicGradient(Infinity, 0, 1); }); -assert_throws_js(TypeError, function() { ctx.createConicGradient(-Infinity, 0, 1); }); -assert_throws_js(TypeError, function() { ctx.createConicGradient(NaN, 0, 1); }); -assert_throws_js(TypeError, function() { ctx.createConicGradient(0, Infinity, 1); }); -assert_throws_js(TypeError, function() { ctx.createConicGradient(0, -Infinity, 1); }); -assert_throws_js(TypeError, function() { ctx.createConicGradient(0, NaN, 1); }); -assert_throws_js(TypeError, function() { ctx.createConicGradient(0, 0, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createConicGradient(0, 0, -Infinity); }); -assert_throws_js(TypeError, function() { ctx.createConicGradient(0, 0, NaN); }); -assert_throws_js(TypeError, function() { ctx.createConicGradient(Infinity, Infinity, 1); }); -assert_throws_js(TypeError, function() { ctx.createConicGradient(Infinity, Infinity, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createConicGradient(Infinity, 0, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createConicGradient(0, Infinity, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createConicGradient(Infinity, 0, 1); }); + assert_throws_js(TypeError, function() { ctx.createConicGradient(-Infinity, 0, 1); }); + assert_throws_js(TypeError, function() { ctx.createConicGradient(NaN, 0, 1); }); + assert_throws_js(TypeError, function() { ctx.createConicGradient(0, Infinity, 1); }); + assert_throws_js(TypeError, function() { ctx.createConicGradient(0, -Infinity, 1); }); + assert_throws_js(TypeError, function() { ctx.createConicGradient(0, NaN, 1); }); + assert_throws_js(TypeError, function() { ctx.createConicGradient(0, 0, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createConicGradient(0, 0, -Infinity); }); + assert_throws_js(TypeError, function() { ctx.createConicGradient(0, 0, NaN); }); + assert_throws_js(TypeError, function() { ctx.createConicGradient(Infinity, Infinity, 1); }); + assert_throws_js(TypeError, function() { ctx.createConicGradient(Infinity, Infinity, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createConicGradient(Infinity, 0, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createConicGradient(0, Infinity, Infinity); }); -const g = ctx.createConicGradient(0, 0, 25); -assert_throws_js(TypeError, function() { g.addColorStop(-Infinity, '#f00'); }); -assert_throws_js(TypeError, function() { g.addColorStop(NaN, '#f00'); }); -assert_throws_dom("SYNTAX_ERR", function() { g.addColorStop(0, -Infinity); }); -assert_throws_dom("SYNTAX_ERR", function() { g.addColorStop(0, NaN); }); -t.done(); + const g = ctx.createConicGradient(0, 0, 25); + assert_throws_js(TypeError, function() { g.addColorStop(-Infinity, '#f00'); }); + assert_throws_js(TypeError, function() { g.addColorStop(NaN, '#f00'); }); + assert_throws_dom("SYNTAX_ERR", function() { g.addColorStop(0, -Infinity); }); + assert_throws_dom("SYNTAX_ERR", function() { g.addColorStop(0, NaN); }); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.conic.invalid.inputs.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.conic.invalid.inputs.worker.js index b6bd62c..19b603e 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.conic.invalid.inputs.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.conic.invalid.inputs.worker.js
@@ -13,29 +13,28 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -assert_throws_js(TypeError, function() { ctx.createConicGradient(Infinity, 0, 1); }); -assert_throws_js(TypeError, function() { ctx.createConicGradient(-Infinity, 0, 1); }); -assert_throws_js(TypeError, function() { ctx.createConicGradient(NaN, 0, 1); }); -assert_throws_js(TypeError, function() { ctx.createConicGradient(0, Infinity, 1); }); -assert_throws_js(TypeError, function() { ctx.createConicGradient(0, -Infinity, 1); }); -assert_throws_js(TypeError, function() { ctx.createConicGradient(0, NaN, 1); }); -assert_throws_js(TypeError, function() { ctx.createConicGradient(0, 0, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createConicGradient(0, 0, -Infinity); }); -assert_throws_js(TypeError, function() { ctx.createConicGradient(0, 0, NaN); }); -assert_throws_js(TypeError, function() { ctx.createConicGradient(Infinity, Infinity, 1); }); -assert_throws_js(TypeError, function() { ctx.createConicGradient(Infinity, Infinity, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createConicGradient(Infinity, 0, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createConicGradient(0, Infinity, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createConicGradient(Infinity, 0, 1); }); + assert_throws_js(TypeError, function() { ctx.createConicGradient(-Infinity, 0, 1); }); + assert_throws_js(TypeError, function() { ctx.createConicGradient(NaN, 0, 1); }); + assert_throws_js(TypeError, function() { ctx.createConicGradient(0, Infinity, 1); }); + assert_throws_js(TypeError, function() { ctx.createConicGradient(0, -Infinity, 1); }); + assert_throws_js(TypeError, function() { ctx.createConicGradient(0, NaN, 1); }); + assert_throws_js(TypeError, function() { ctx.createConicGradient(0, 0, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createConicGradient(0, 0, -Infinity); }); + assert_throws_js(TypeError, function() { ctx.createConicGradient(0, 0, NaN); }); + assert_throws_js(TypeError, function() { ctx.createConicGradient(Infinity, Infinity, 1); }); + assert_throws_js(TypeError, function() { ctx.createConicGradient(Infinity, Infinity, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createConicGradient(Infinity, 0, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createConicGradient(0, Infinity, Infinity); }); -const g = ctx.createConicGradient(0, 0, 25); -assert_throws_js(TypeError, function() { g.addColorStop(-Infinity, '#f00'); }); -assert_throws_js(TypeError, function() { g.addColorStop(NaN, '#f00'); }); -assert_throws_dom("SYNTAX_ERR", function() { g.addColorStop(0, -Infinity); }); -assert_throws_dom("SYNTAX_ERR", function() { g.addColorStop(0, NaN); }); -t.done(); - + const g = ctx.createConicGradient(0, 0, 25); + assert_throws_js(TypeError, function() { g.addColorStop(-Infinity, '#f00'); }); + assert_throws_js(TypeError, function() { g.addColorStop(NaN, '#f00'); }); + assert_throws_dom("SYNTAX_ERR", function() { g.addColorStop(0, -Infinity); }); + assert_throws_dom("SYNTAX_ERR", function() { g.addColorStop(0, NaN); }); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.conic.negative.rotation.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.conic.negative.rotation.html index dde5440..848f149 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.conic.negative.rotation.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.conic.negative.rotation.html
@@ -17,20 +17,20 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -const g = ctx.createConicGradient(-Math.PI/2, 50, 25); -// It's red in the upper right region and green on the lower left region -g.addColorStop(0, "#f00"); -g.addColorStop(0.25, "#0f0"); -g.addColorStop(0.50, "#0f0"); -g.addColorStop(0.75, "#f00"); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 25,15, 255,0,0,255, 3); -_assertPixelApprox(canvas, 75,40, 0,255,0,255, 3); -t.done(); + const g = ctx.createConicGradient(-Math.PI/2, 50, 25); + // It's red in the upper right region and green on the lower left region + g.addColorStop(0, "#f00"); + g.addColorStop(0.25, "#0f0"); + g.addColorStop(0.50, "#0f0"); + g.addColorStop(0.75, "#f00"); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 25,15, 255,0,0,255, 3); + _assertPixelApprox(canvas, 75,40, 0,255,0,255, 3); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.conic.negative.rotation.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.conic.negative.rotation.worker.js index 68589cfa..1f9735e 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.conic.negative.rotation.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.conic.negative.rotation.worker.js
@@ -13,20 +13,19 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -const g = ctx.createConicGradient(-Math.PI/2, 50, 25); -// It's red in the upper right region and green on the lower left region -g.addColorStop(0, "#f00"); -g.addColorStop(0.25, "#0f0"); -g.addColorStop(0.50, "#0f0"); -g.addColorStop(0.75, "#f00"); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 25,15, 255,0,0,255, 3); -_assertPixelApprox(canvas, 75,40, 0,255,0,255, 3); -t.done(); - + const g = ctx.createConicGradient(-Math.PI/2, 50, 25); + // It's red in the upper right region and green on the lower left region + g.addColorStop(0, "#f00"); + g.addColorStop(0.25, "#0f0"); + g.addColorStop(0.50, "#0f0"); + g.addColorStop(0.75, "#f00"); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 25,15, 255,0,0,255, 3); + _assertPixelApprox(canvas, 75,40, 0,255,0,255, 3); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.conic.positive.rotation.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.conic.positive.rotation.html index 42d5a87..06b59390 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.conic.positive.rotation.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.conic.positive.rotation.html
@@ -17,20 +17,20 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -const g = ctx.createConicGradient(3*Math.PI/2, 50, 25); -// It's red in the upper right region and green on the lower left region -g.addColorStop(0, "#f00"); -g.addColorStop(0.25, "#0f0"); -g.addColorStop(0.50, "#0f0"); -g.addColorStop(0.75, "#f00"); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 25,15, 255,0,0,255, 3); -_assertPixelApprox(canvas, 75,40, 0,255,0,255, 3); -t.done(); + const g = ctx.createConicGradient(3*Math.PI/2, 50, 25); + // It's red in the upper right region and green on the lower left region + g.addColorStop(0, "#f00"); + g.addColorStop(0.25, "#0f0"); + g.addColorStop(0.50, "#0f0"); + g.addColorStop(0.75, "#f00"); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 25,15, 255,0,0,255, 3); + _assertPixelApprox(canvas, 75,40, 0,255,0,255, 3); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.conic.positive.rotation.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.conic.positive.rotation.worker.js index cece603d..45bbf403 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.conic.positive.rotation.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.conic.positive.rotation.worker.js
@@ -13,20 +13,19 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -const g = ctx.createConicGradient(3*Math.PI/2, 50, 25); -// It's red in the upper right region and green on the lower left region -g.addColorStop(0, "#f00"); -g.addColorStop(0.25, "#0f0"); -g.addColorStop(0.50, "#0f0"); -g.addColorStop(0.75, "#f00"); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 25,15, 255,0,0,255, 3); -_assertPixelApprox(canvas, 75,40, 0,255,0,255, 3); -t.done(); - + const g = ctx.createConicGradient(3*Math.PI/2, 50, 25); + // It's red in the upper right region and green on the lower left region + g.addColorStop(0, "#f00"); + g.addColorStop(0.25, "#0f0"); + g.addColorStop(0.50, "#0f0"); + g.addColorStop(0.75, "#f00"); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 25,15, 255,0,0,255, 3); + _assertPixelApprox(canvas, 75,40, 0,255,0,255, 3); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.empty.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.empty.html index 93229d9..bad1ff4 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.empty.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.empty.html
@@ -17,16 +17,16 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -var g = ctx.createLinearGradient(0, 0, 0, 50); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,255,0,255, 2); -t.done(); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + var g = ctx.createLinearGradient(0, 0, 0, 50); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,255,0,255, 2); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.empty.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.empty.worker.js index 207a1b0..225de25 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.empty.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.empty.worker.js
@@ -13,16 +13,15 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -var g = ctx.createLinearGradient(0, 0, 0, 50); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,255,0,255, 2); -t.done(); - + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + var g = ctx.createLinearGradient(0, 0, 0, 50); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,255,0,255, 2); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.alpha.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.alpha.html index 52c11fc..525cb79 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.alpha.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.alpha.html
@@ -17,20 +17,20 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#ff0'; -ctx.fillRect(0, 0, 100, 50); -var g = ctx.createLinearGradient(0, 0, 100, 0); -g.addColorStop(0, 'rgba(0,0,255, 0)'); -g.addColorStop(1, 'rgba(0,0,255, 1)'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 25,25, 191,191,63,255, 3); -_assertPixelApprox(canvas, 50,25, 127,127,127,255, 3); -_assertPixelApprox(canvas, 75,25, 63,63,191,255, 3); -t.done(); + ctx.fillStyle = '#ff0'; + ctx.fillRect(0, 0, 100, 50); + var g = ctx.createLinearGradient(0, 0, 100, 0); + g.addColorStop(0, 'rgba(0,0,255, 0)'); + g.addColorStop(1, 'rgba(0,0,255, 1)'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 25,25, 191,191,63,255, 3); + _assertPixelApprox(canvas, 50,25, 127,127,127,255, 3); + _assertPixelApprox(canvas, 75,25, 63,63,191,255, 3); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.alpha.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.alpha.worker.js index d9f08a9..5c2f7e0 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.alpha.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.alpha.worker.js
@@ -13,20 +13,19 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#ff0'; -ctx.fillRect(0, 0, 100, 50); -var g = ctx.createLinearGradient(0, 0, 100, 0); -g.addColorStop(0, 'rgba(0,0,255, 0)'); -g.addColorStop(1, 'rgba(0,0,255, 1)'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 25,25, 191,191,63,255, 3); -_assertPixelApprox(canvas, 50,25, 127,127,127,255, 3); -_assertPixelApprox(canvas, 75,25, 63,63,191,255, 3); -t.done(); - + ctx.fillStyle = '#ff0'; + ctx.fillRect(0, 0, 100, 50); + var g = ctx.createLinearGradient(0, 0, 100, 0); + g.addColorStop(0, 'rgba(0,0,255, 0)'); + g.addColorStop(1, 'rgba(0,0,255, 1)'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 25,25, 191,191,63,255, 3); + _assertPixelApprox(canvas, 50,25, 127,127,127,255, 3); + _assertPixelApprox(canvas, 75,25, 63,63,191,255, 3); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.color.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.color.html index 8f327817..c742eff 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.color.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.color.html
@@ -17,18 +17,18 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var g = ctx.createLinearGradient(0, 0, 100, 0); -g.addColorStop(0, '#ff0'); -g.addColorStop(1, '#00f'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 25,25, 191,191,63,255, 3); -_assertPixelApprox(canvas, 50,25, 127,127,127,255, 3); -_assertPixelApprox(canvas, 75,25, 63,63,191,255, 3); -t.done(); + var g = ctx.createLinearGradient(0, 0, 100, 0); + g.addColorStop(0, '#ff0'); + g.addColorStop(1, '#00f'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 25,25, 191,191,63,255, 3); + _assertPixelApprox(canvas, 50,25, 127,127,127,255, 3); + _assertPixelApprox(canvas, 75,25, 63,63,191,255, 3); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.color.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.color.worker.js index fcf1f84f..6d273b7b 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.color.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.color.worker.js
@@ -13,18 +13,17 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var g = ctx.createLinearGradient(0, 0, 100, 0); -g.addColorStop(0, '#ff0'); -g.addColorStop(1, '#00f'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 25,25, 191,191,63,255, 3); -_assertPixelApprox(canvas, 50,25, 127,127,127,255, 3); -_assertPixelApprox(canvas, 75,25, 63,63,191,255, 3); -t.done(); - + var g = ctx.createLinearGradient(0, 0, 100, 0); + g.addColorStop(0, '#ff0'); + g.addColorStop(1, '#00f'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 25,25, 191,191,63,255, 3); + _assertPixelApprox(canvas, 50,25, 127,127,127,255, 3); + _assertPixelApprox(canvas, 75,25, 63,63,191,255, 3); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.coloralpha.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.coloralpha.html index 0e7d3b55..00575c3 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.coloralpha.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.coloralpha.html
@@ -17,18 +17,18 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var g = ctx.createLinearGradient(0, 0, 100, 0); -g.addColorStop(0, 'rgba(255,255,0, 0)'); -g.addColorStop(1, 'rgba(0,0,255, 1)'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 25,25, 190,190,65,65, 3); -_assertPixelApprox(canvas, 50,25, 126,126,128,128, 3); -_assertPixelApprox(canvas, 75,25, 62,62,192,192, 3); -t.done(); + var g = ctx.createLinearGradient(0, 0, 100, 0); + g.addColorStop(0, 'rgba(255,255,0, 0)'); + g.addColorStop(1, 'rgba(0,0,255, 1)'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 25,25, 190,190,65,65, 3); + _assertPixelApprox(canvas, 50,25, 126,126,128,128, 3); + _assertPixelApprox(canvas, 75,25, 62,62,192,192, 3); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.coloralpha.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.coloralpha.worker.js index cc1cc9f219..1462cb59 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.coloralpha.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.coloralpha.worker.js
@@ -13,18 +13,17 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var g = ctx.createLinearGradient(0, 0, 100, 0); -g.addColorStop(0, 'rgba(255,255,0, 0)'); -g.addColorStop(1, 'rgba(0,0,255, 1)'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 25,25, 190,190,65,65, 3); -_assertPixelApprox(canvas, 50,25, 126,126,128,128, 3); -_assertPixelApprox(canvas, 75,25, 62,62,192,192, 3); -t.done(); - + var g = ctx.createLinearGradient(0, 0, 100, 0); + g.addColorStop(0, 'rgba(255,255,0, 0)'); + g.addColorStop(1, 'rgba(0,0,255, 1)'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 25,25, 190,190,65,65, 3); + _assertPixelApprox(canvas, 50,25, 126,126,128,128, 3); + _assertPixelApprox(canvas, 75,25, 62,62,192,192, 3); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.multiple.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.multiple.html index 724ae5c..3f2594f 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.multiple.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.multiple.html
@@ -17,20 +17,20 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -canvas.width = 200; -var g = ctx.createLinearGradient(0, 0, 200, 0); -g.addColorStop(0, '#ff0'); -g.addColorStop(0.5, '#0ff'); -g.addColorStop(1, '#f0f'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 200, 50); -_assertPixelApprox(canvas, 50,25, 127,255,127,255, 3); -_assertPixelApprox(canvas, 100,25, 0,255,255,255, 3); -_assertPixelApprox(canvas, 150,25, 127,127,255,255, 3); -t.done(); + canvas.width = 200; + var g = ctx.createLinearGradient(0, 0, 200, 0); + g.addColorStop(0, '#ff0'); + g.addColorStop(0.5, '#0ff'); + g.addColorStop(1, '#f0f'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 200, 50); + _assertPixelApprox(canvas, 50,25, 127,255,127,255, 3); + _assertPixelApprox(canvas, 100,25, 0,255,255,255, 3); + _assertPixelApprox(canvas, 150,25, 127,127,255,255, 3); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.multiple.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.multiple.worker.js index ff3687c..ebfcddc 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.multiple.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.multiple.worker.js
@@ -13,20 +13,19 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -canvas.width = 200; -var g = ctx.createLinearGradient(0, 0, 200, 0); -g.addColorStop(0, '#ff0'); -g.addColorStop(0.5, '#0ff'); -g.addColorStop(1, '#f0f'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 200, 50); -_assertPixelApprox(canvas, 50,25, 127,255,127,255, 3); -_assertPixelApprox(canvas, 100,25, 0,255,255,255, 3); -_assertPixelApprox(canvas, 150,25, 127,127,255,255, 3); -t.done(); - + canvas.width = 200; + var g = ctx.createLinearGradient(0, 0, 200, 0); + g.addColorStop(0, '#ff0'); + g.addColorStop(0.5, '#0ff'); + g.addColorStop(1, '#f0f'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 200, 50); + _assertPixelApprox(canvas, 50,25, 127,255,127,255, 3); + _assertPixelApprox(canvas, 100,25, 0,255,255,255, 3); + _assertPixelApprox(canvas, 150,25, 127,127,255,255, 3); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.outside.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.outside.html index 0ef97af..0dda6c0c 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.outside.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.outside.html
@@ -17,20 +17,20 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -var g = ctx.createLinearGradient(25, 0, 75, 0); -g.addColorStop(0.4, '#0f0'); -g.addColorStop(0.6, '#0f0'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 20,25, 0,255,0,255, 2); -_assertPixelApprox(canvas, 50,25, 0,255,0,255, 2); -_assertPixelApprox(canvas, 80,25, 0,255,0,255, 2); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + var g = ctx.createLinearGradient(25, 0, 75, 0); + g.addColorStop(0.4, '#0f0'); + g.addColorStop(0.6, '#0f0'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 20,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 50,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 80,25, 0,255,0,255, 2); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.outside.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.outside.worker.js index 60d10a5..66fc180 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.outside.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.outside.worker.js
@@ -13,20 +13,19 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -var g = ctx.createLinearGradient(25, 0, 75, 0); -g.addColorStop(0.4, '#0f0'); -g.addColorStop(0.6, '#0f0'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 20,25, 0,255,0,255, 2); -_assertPixelApprox(canvas, 50,25, 0,255,0,255, 2); -_assertPixelApprox(canvas, 80,25, 0,255,0,255, 2); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + var g = ctx.createLinearGradient(25, 0, 75, 0); + g.addColorStop(0.4, '#0f0'); + g.addColorStop(0.6, '#0f0'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 20,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 50,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 80,25, 0,255,0,255, 2); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.overlap.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.overlap.html index 77eb328e..0139da17 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.overlap.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.overlap.html
@@ -17,36 +17,36 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -canvas.width = 200; -var g = ctx.createLinearGradient(0, 0, 200, 0); -g.addColorStop(0, '#f00'); -g.addColorStop(0, '#ff0'); -g.addColorStop(0.25, '#00f'); -g.addColorStop(0.25, '#0f0'); -g.addColorStop(0.25, '#0f0'); -g.addColorStop(0.25, '#0f0'); -g.addColorStop(0.25, '#ff0'); -g.addColorStop(0.5, '#00f'); -g.addColorStop(0.5, '#0f0'); -g.addColorStop(0.75, '#00f'); -g.addColorStop(0.75, '#f00'); -g.addColorStop(0.75, '#ff0'); -g.addColorStop(0.5, '#0f0'); -g.addColorStop(0.5, '#0f0'); -g.addColorStop(0.5, '#ff0'); -g.addColorStop(1, '#00f'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 200, 50); -_assertPixelApprox(canvas, 49,25, 0,0,255,255, 16); -_assertPixelApprox(canvas, 51,25, 255,255,0,255, 16); -_assertPixelApprox(canvas, 99,25, 0,0,255,255, 16); -_assertPixelApprox(canvas, 101,25, 255,255,0,255, 16); -_assertPixelApprox(canvas, 149,25, 0,0,255,255, 16); -_assertPixelApprox(canvas, 151,25, 255,255,0,255, 16); -t.done(); + canvas.width = 200; + var g = ctx.createLinearGradient(0, 0, 200, 0); + g.addColorStop(0, '#f00'); + g.addColorStop(0, '#ff0'); + g.addColorStop(0.25, '#00f'); + g.addColorStop(0.25, '#0f0'); + g.addColorStop(0.25, '#0f0'); + g.addColorStop(0.25, '#0f0'); + g.addColorStop(0.25, '#ff0'); + g.addColorStop(0.5, '#00f'); + g.addColorStop(0.5, '#0f0'); + g.addColorStop(0.75, '#00f'); + g.addColorStop(0.75, '#f00'); + g.addColorStop(0.75, '#ff0'); + g.addColorStop(0.5, '#0f0'); + g.addColorStop(0.5, '#0f0'); + g.addColorStop(0.5, '#ff0'); + g.addColorStop(1, '#00f'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 200, 50); + _assertPixelApprox(canvas, 49,25, 0,0,255,255, 16); + _assertPixelApprox(canvas, 51,25, 255,255,0,255, 16); + _assertPixelApprox(canvas, 99,25, 0,0,255,255, 16); + _assertPixelApprox(canvas, 101,25, 255,255,0,255, 16); + _assertPixelApprox(canvas, 149,25, 0,0,255,255, 16); + _assertPixelApprox(canvas, 151,25, 255,255,0,255, 16); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.overlap.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.overlap.worker.js index e11c85f..d404deab 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.overlap.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.overlap.worker.js
@@ -13,36 +13,35 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -canvas.width = 200; -var g = ctx.createLinearGradient(0, 0, 200, 0); -g.addColorStop(0, '#f00'); -g.addColorStop(0, '#ff0'); -g.addColorStop(0.25, '#00f'); -g.addColorStop(0.25, '#0f0'); -g.addColorStop(0.25, '#0f0'); -g.addColorStop(0.25, '#0f0'); -g.addColorStop(0.25, '#ff0'); -g.addColorStop(0.5, '#00f'); -g.addColorStop(0.5, '#0f0'); -g.addColorStop(0.75, '#00f'); -g.addColorStop(0.75, '#f00'); -g.addColorStop(0.75, '#ff0'); -g.addColorStop(0.5, '#0f0'); -g.addColorStop(0.5, '#0f0'); -g.addColorStop(0.5, '#ff0'); -g.addColorStop(1, '#00f'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 200, 50); -_assertPixelApprox(canvas, 49,25, 0,0,255,255, 16); -_assertPixelApprox(canvas, 51,25, 255,255,0,255, 16); -_assertPixelApprox(canvas, 99,25, 0,0,255,255, 16); -_assertPixelApprox(canvas, 101,25, 255,255,0,255, 16); -_assertPixelApprox(canvas, 149,25, 0,0,255,255, 16); -_assertPixelApprox(canvas, 151,25, 255,255,0,255, 16); -t.done(); - + canvas.width = 200; + var g = ctx.createLinearGradient(0, 0, 200, 0); + g.addColorStop(0, '#f00'); + g.addColorStop(0, '#ff0'); + g.addColorStop(0.25, '#00f'); + g.addColorStop(0.25, '#0f0'); + g.addColorStop(0.25, '#0f0'); + g.addColorStop(0.25, '#0f0'); + g.addColorStop(0.25, '#ff0'); + g.addColorStop(0.5, '#00f'); + g.addColorStop(0.5, '#0f0'); + g.addColorStop(0.75, '#00f'); + g.addColorStop(0.75, '#f00'); + g.addColorStop(0.75, '#ff0'); + g.addColorStop(0.5, '#0f0'); + g.addColorStop(0.5, '#0f0'); + g.addColorStop(0.5, '#ff0'); + g.addColorStop(1, '#00f'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 200, 50); + _assertPixelApprox(canvas, 49,25, 0,0,255,255, 16); + _assertPixelApprox(canvas, 51,25, 255,255,0,255, 16); + _assertPixelApprox(canvas, 99,25, 0,0,255,255, 16); + _assertPixelApprox(canvas, 101,25, 255,255,0,255, 16); + _assertPixelApprox(canvas, 149,25, 0,0,255,255, 16); + _assertPixelApprox(canvas, 151,25, 255,255,0,255, 16); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.overlap2.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.overlap2.html index 662913b..c26c8ecb 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.overlap2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.overlap2.html
@@ -17,26 +17,26 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var g = ctx.createLinearGradient(0, 0, 100, 0); -var ps = [ 0, 1/10, 1/4, 1/3, 1/2, 3/4, 1 ]; -for (var p = 0; p < ps.length; ++p) -{ - g.addColorStop(ps[p], '#0f0'); - for (var i = 0; i < 15; ++i) - g.addColorStop(ps[p], '#f00'); - g.addColorStop(ps[p], '#0f0'); -} -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 1,25, 0,255,0,255); -_assertPixel(canvas, 30,25, 0,255,0,255); -_assertPixel(canvas, 40,25, 0,255,0,255); -_assertPixel(canvas, 60,25, 0,255,0,255); -_assertPixel(canvas, 80,25, 0,255,0,255); -t.done(); + var g = ctx.createLinearGradient(0, 0, 100, 0); + var ps = [ 0, 1/10, 1/4, 1/3, 1/2, 3/4, 1 ]; + for (var p = 0; p < ps.length; ++p) + { + g.addColorStop(ps[p], '#0f0'); + for (var i = 0; i < 15; ++i) + g.addColorStop(ps[p], '#f00'); + g.addColorStop(ps[p], '#0f0'); + } + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 1,25, 0,255,0,255); + _assertPixel(canvas, 30,25, 0,255,0,255); + _assertPixel(canvas, 40,25, 0,255,0,255); + _assertPixel(canvas, 60,25, 0,255,0,255); + _assertPixel(canvas, 80,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.overlap2.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.overlap2.worker.js index a6329af9..3938081c 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.overlap2.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.overlap2.worker.js
@@ -13,26 +13,25 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var g = ctx.createLinearGradient(0, 0, 100, 0); -var ps = [ 0, 1/10, 1/4, 1/3, 1/2, 3/4, 1 ]; -for (var p = 0; p < ps.length; ++p) -{ - g.addColorStop(ps[p], '#0f0'); - for (var i = 0; i < 15; ++i) - g.addColorStop(ps[p], '#f00'); - g.addColorStop(ps[p], '#0f0'); -} -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 1,25, 0,255,0,255); -_assertPixel(canvas, 30,25, 0,255,0,255); -_assertPixel(canvas, 40,25, 0,255,0,255); -_assertPixel(canvas, 60,25, 0,255,0,255); -_assertPixel(canvas, 80,25, 0,255,0,255); -t.done(); - + var g = ctx.createLinearGradient(0, 0, 100, 0); + var ps = [ 0, 1/10, 1/4, 1/3, 1/2, 3/4, 1 ]; + for (var p = 0; p < ps.length; ++p) + { + g.addColorStop(ps[p], '#0f0'); + for (var i = 0; i < 15; ++i) + g.addColorStop(ps[p], '#f00'); + g.addColorStop(ps[p], '#0f0'); + } + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 1,25, 0,255,0,255); + _assertPixel(canvas, 30,25, 0,255,0,255); + _assertPixel(canvas, 40,25, 0,255,0,255); + _assertPixel(canvas, 60,25, 0,255,0,255); + _assertPixel(canvas, 80,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.solid.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.solid.html index aa488d9..dd369ae 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.solid.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.solid.html
@@ -17,16 +17,16 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var g = ctx.createLinearGradient(0, 0, 100, 0); -g.addColorStop(0, '#0f0'); -g.addColorStop(1, '#0f0'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + var g = ctx.createLinearGradient(0, 0, 100, 0); + g.addColorStop(0, '#0f0'); + g.addColorStop(1, '#0f0'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.solid.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.solid.worker.js index 8cc4a88..387aab0 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.solid.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.solid.worker.js
@@ -13,16 +13,15 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var g = ctx.createLinearGradient(0, 0, 100, 0); -g.addColorStop(0, '#0f0'); -g.addColorStop(1, '#0f0'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + var g = ctx.createLinearGradient(0, 0, 100, 0); + g.addColorStop(0, '#0f0'); + g.addColorStop(1, '#0f0'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.vertical.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.vertical.html index 15c4c7c..dff5708 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.vertical.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.vertical.html
@@ -17,18 +17,18 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var g = ctx.createLinearGradient(0, 0, 0, 50); -g.addColorStop(0, '#ff0'); -g.addColorStop(1, '#00f'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,12, 191,191,63,255, 10); -_assertPixelApprox(canvas, 50,25, 127,127,127,255, 5); -_assertPixelApprox(canvas, 50,37, 63,63,191,255, 10); -t.done(); + var g = ctx.createLinearGradient(0, 0, 0, 50); + g.addColorStop(0, '#ff0'); + g.addColorStop(1, '#00f'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,12, 191,191,63,255, 10); + _assertPixelApprox(canvas, 50,25, 127,127,127,255, 5); + _assertPixelApprox(canvas, 50,37, 63,63,191,255, 10); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.vertical.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.vertical.worker.js index a25692cf..61cf9b6 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.vertical.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.vertical.worker.js
@@ -13,18 +13,17 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var g = ctx.createLinearGradient(0, 0, 0, 50); -g.addColorStop(0, '#ff0'); -g.addColorStop(1, '#00f'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,12, 191,191,63,255, 10); -_assertPixelApprox(canvas, 50,25, 127,127,127,255, 5); -_assertPixelApprox(canvas, 50,37, 63,63,191,255, 10); -t.done(); - + var g = ctx.createLinearGradient(0, 0, 0, 50); + g.addColorStop(0, '#ff0'); + g.addColorStop(1, '#00f'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,12, 191,191,63,255, 10); + _assertPixelApprox(canvas, 50,25, 127,127,127,255, 5); + _assertPixelApprox(canvas, 50,37, 63,63,191,255, 10); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.fill.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.fill.html index b679d5b..71d5cb85 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.fill.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.fill.html
@@ -17,19 +17,19 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -var g = ctx.createLinearGradient(50, 25, 50, 25); // zero-length line (undefined direction) -g.addColorStop(0, '#f00'); -g.addColorStop(1, '#f00'); -ctx.fillStyle = g; -ctx.rect(0, 0, 100, 50); -ctx.fill(); -_assertPixel(canvas, 40,20, 0,255,0,255); -t.done(); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + var g = ctx.createLinearGradient(50, 25, 50, 25); // zero-length line (undefined direction) + g.addColorStop(0, '#f00'); + g.addColorStop(1, '#f00'); + ctx.fillStyle = g; + ctx.rect(0, 0, 100, 50); + ctx.fill(); + _assertPixel(canvas, 40,20, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.fill.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.fill.worker.js index 71df967..3b86cec 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.fill.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.fill.worker.js
@@ -13,19 +13,18 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -var g = ctx.createLinearGradient(50, 25, 50, 25); // zero-length line (undefined direction) -g.addColorStop(0, '#f00'); -g.addColorStop(1, '#f00'); -ctx.fillStyle = g; -ctx.rect(0, 0, 100, 50); -ctx.fill(); -_assertPixel(canvas, 40,20, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + var g = ctx.createLinearGradient(50, 25, 50, 25); // zero-length line (undefined direction) + g.addColorStop(0, '#f00'); + g.addColorStop(1, '#f00'); + ctx.fillStyle = g; + ctx.rect(0, 0, 100, 50); + ctx.fill(); + _assertPixel(canvas, 40,20, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.fillRect.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.fillRect.html index 9576f2a..1b3851c 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.fillRect.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.fillRect.html
@@ -17,18 +17,18 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -var g = ctx.createLinearGradient(50, 25, 50, 25); // zero-length line (undefined direction) -g.addColorStop(0, '#f00'); -g.addColorStop(1, '#f00'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 40,20, 0,255,0,255); -t.done(); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + var g = ctx.createLinearGradient(50, 25, 50, 25); // zero-length line (undefined direction) + g.addColorStop(0, '#f00'); + g.addColorStop(1, '#f00'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 40,20, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.fillRect.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.fillRect.worker.js index b6dfbf0..f6ab1d9 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.fillRect.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.fillRect.worker.js
@@ -13,18 +13,17 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -var g = ctx.createLinearGradient(50, 25, 50, 25); // zero-length line (undefined direction) -g.addColorStop(0, '#f00'); -g.addColorStop(1, '#f00'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 40,20, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + var g = ctx.createLinearGradient(50, 25, 50, 25); // zero-length line (undefined direction) + g.addColorStop(0, '#f00'); + g.addColorStop(1, '#f00'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 40,20, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.stroke.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.stroke.html index 81a5e4e..3b66f6c 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.stroke.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.stroke.html
@@ -17,27 +17,27 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -var g = ctx.createLinearGradient(50, 25, 50, 25); // zero-length line (undefined direction) -g.addColorStop(0, '#f00'); -g.addColorStop(1, '#f00'); -ctx.strokeStyle = g; -ctx.rect(20, 20, 60, 10); -ctx.stroke(); -_assertPixel(canvas, 19,19, 0,255,0,255); -_assertPixel(canvas, 20,19, 0,255,0,255); -_assertPixel(canvas, 21,19, 0,255,0,255); -_assertPixel(canvas, 19,20, 0,255,0,255); -_assertPixel(canvas, 20,20, 0,255,0,255); -_assertPixel(canvas, 21,20, 0,255,0,255); -_assertPixel(canvas, 19,21, 0,255,0,255); -_assertPixel(canvas, 20,21, 0,255,0,255); -_assertPixel(canvas, 21,21, 0,255,0,255); -t.done(); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + var g = ctx.createLinearGradient(50, 25, 50, 25); // zero-length line (undefined direction) + g.addColorStop(0, '#f00'); + g.addColorStop(1, '#f00'); + ctx.strokeStyle = g; + ctx.rect(20, 20, 60, 10); + ctx.stroke(); + _assertPixel(canvas, 19,19, 0,255,0,255); + _assertPixel(canvas, 20,19, 0,255,0,255); + _assertPixel(canvas, 21,19, 0,255,0,255); + _assertPixel(canvas, 19,20, 0,255,0,255); + _assertPixel(canvas, 20,20, 0,255,0,255); + _assertPixel(canvas, 21,20, 0,255,0,255); + _assertPixel(canvas, 19,21, 0,255,0,255); + _assertPixel(canvas, 20,21, 0,255,0,255); + _assertPixel(canvas, 21,21, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.stroke.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.stroke.worker.js index c8744645..7e21501 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.stroke.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.stroke.worker.js
@@ -13,27 +13,26 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -var g = ctx.createLinearGradient(50, 25, 50, 25); // zero-length line (undefined direction) -g.addColorStop(0, '#f00'); -g.addColorStop(1, '#f00'); -ctx.strokeStyle = g; -ctx.rect(20, 20, 60, 10); -ctx.stroke(); -_assertPixel(canvas, 19,19, 0,255,0,255); -_assertPixel(canvas, 20,19, 0,255,0,255); -_assertPixel(canvas, 21,19, 0,255,0,255); -_assertPixel(canvas, 19,20, 0,255,0,255); -_assertPixel(canvas, 20,20, 0,255,0,255); -_assertPixel(canvas, 21,20, 0,255,0,255); -_assertPixel(canvas, 19,21, 0,255,0,255); -_assertPixel(canvas, 20,21, 0,255,0,255); -_assertPixel(canvas, 21,21, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + var g = ctx.createLinearGradient(50, 25, 50, 25); // zero-length line (undefined direction) + g.addColorStop(0, '#f00'); + g.addColorStop(1, '#f00'); + ctx.strokeStyle = g; + ctx.rect(20, 20, 60, 10); + ctx.stroke(); + _assertPixel(canvas, 19,19, 0,255,0,255); + _assertPixel(canvas, 20,19, 0,255,0,255); + _assertPixel(canvas, 21,19, 0,255,0,255); + _assertPixel(canvas, 19,20, 0,255,0,255); + _assertPixel(canvas, 20,20, 0,255,0,255); + _assertPixel(canvas, 21,20, 0,255,0,255); + _assertPixel(canvas, 19,21, 0,255,0,255); + _assertPixel(canvas, 20,21, 0,255,0,255); + _assertPixel(canvas, 21,21, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.strokeRect.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.strokeRect.html index 91cedc7..e7fd7e78 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.strokeRect.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.strokeRect.html
@@ -17,26 +17,26 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -var g = ctx.createLinearGradient(50, 25, 50, 25); // zero-length line (undefined direction) -g.addColorStop(0, '#f00'); -g.addColorStop(1, '#f00'); -ctx.strokeStyle = g; -ctx.strokeRect(20, 20, 60, 10); -_assertPixel(canvas, 19,19, 0,255,0,255); -_assertPixel(canvas, 20,19, 0,255,0,255); -_assertPixel(canvas, 21,19, 0,255,0,255); -_assertPixel(canvas, 19,20, 0,255,0,255); -_assertPixel(canvas, 20,20, 0,255,0,255); -_assertPixel(canvas, 21,20, 0,255,0,255); -_assertPixel(canvas, 19,21, 0,255,0,255); -_assertPixel(canvas, 20,21, 0,255,0,255); -_assertPixel(canvas, 21,21, 0,255,0,255); -t.done(); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + var g = ctx.createLinearGradient(50, 25, 50, 25); // zero-length line (undefined direction) + g.addColorStop(0, '#f00'); + g.addColorStop(1, '#f00'); + ctx.strokeStyle = g; + ctx.strokeRect(20, 20, 60, 10); + _assertPixel(canvas, 19,19, 0,255,0,255); + _assertPixel(canvas, 20,19, 0,255,0,255); + _assertPixel(canvas, 21,19, 0,255,0,255); + _assertPixel(canvas, 19,20, 0,255,0,255); + _assertPixel(canvas, 20,20, 0,255,0,255); + _assertPixel(canvas, 21,20, 0,255,0,255); + _assertPixel(canvas, 19,21, 0,255,0,255); + _assertPixel(canvas, 20,21, 0,255,0,255); + _assertPixel(canvas, 21,21, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.strokeRect.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.strokeRect.worker.js index 0949fc8..d7344fb4e 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.strokeRect.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.strokeRect.worker.js
@@ -13,26 +13,25 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -var g = ctx.createLinearGradient(50, 25, 50, 25); // zero-length line (undefined direction) -g.addColorStop(0, '#f00'); -g.addColorStop(1, '#f00'); -ctx.strokeStyle = g; -ctx.strokeRect(20, 20, 60, 10); -_assertPixel(canvas, 19,19, 0,255,0,255); -_assertPixel(canvas, 20,19, 0,255,0,255); -_assertPixel(canvas, 21,19, 0,255,0,255); -_assertPixel(canvas, 19,20, 0,255,0,255); -_assertPixel(canvas, 20,20, 0,255,0,255); -_assertPixel(canvas, 21,20, 0,255,0,255); -_assertPixel(canvas, 19,21, 0,255,0,255); -_assertPixel(canvas, 20,21, 0,255,0,255); -_assertPixel(canvas, 21,21, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + var g = ctx.createLinearGradient(50, 25, 50, 25); // zero-length line (undefined direction) + g.addColorStop(0, '#f00'); + g.addColorStop(1, '#f00'); + ctx.strokeStyle = g; + ctx.strokeRect(20, 20, 60, 10); + _assertPixel(canvas, 19,19, 0,255,0,255); + _assertPixel(canvas, 20,19, 0,255,0,255); + _assertPixel(canvas, 21,19, 0,255,0,255); + _assertPixel(canvas, 19,20, 0,255,0,255); + _assertPixel(canvas, 20,20, 0,255,0,255); + _assertPixel(canvas, 21,20, 0,255,0,255); + _assertPixel(canvas, 19,21, 0,255,0,255); + _assertPixel(canvas, 20,21, 0,255,0,255); + _assertPixel(canvas, 21,21, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.linear.nonfinite.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.linear.nonfinite.html index f3c4209b..bc10ece 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.linear.nonfinite.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.linear.nonfinite.html
@@ -17,33 +17,33 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -assert_throws_js(TypeError, function() { ctx.createLinearGradient(Infinity, 0, 1, 0); }); -assert_throws_js(TypeError, function() { ctx.createLinearGradient(-Infinity, 0, 1, 0); }); -assert_throws_js(TypeError, function() { ctx.createLinearGradient(NaN, 0, 1, 0); }); -assert_throws_js(TypeError, function() { ctx.createLinearGradient(0, Infinity, 1, 0); }); -assert_throws_js(TypeError, function() { ctx.createLinearGradient(0, -Infinity, 1, 0); }); -assert_throws_js(TypeError, function() { ctx.createLinearGradient(0, NaN, 1, 0); }); -assert_throws_js(TypeError, function() { ctx.createLinearGradient(0, 0, Infinity, 0); }); -assert_throws_js(TypeError, function() { ctx.createLinearGradient(0, 0, -Infinity, 0); }); -assert_throws_js(TypeError, function() { ctx.createLinearGradient(0, 0, NaN, 0); }); -assert_throws_js(TypeError, function() { ctx.createLinearGradient(0, 0, 1, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createLinearGradient(0, 0, 1, -Infinity); }); -assert_throws_js(TypeError, function() { ctx.createLinearGradient(0, 0, 1, NaN); }); -assert_throws_js(TypeError, function() { ctx.createLinearGradient(Infinity, Infinity, 1, 0); }); -assert_throws_js(TypeError, function() { ctx.createLinearGradient(Infinity, Infinity, Infinity, 0); }); -assert_throws_js(TypeError, function() { ctx.createLinearGradient(Infinity, Infinity, Infinity, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createLinearGradient(Infinity, Infinity, 1, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createLinearGradient(Infinity, 0, Infinity, 0); }); -assert_throws_js(TypeError, function() { ctx.createLinearGradient(Infinity, 0, Infinity, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createLinearGradient(Infinity, 0, 1, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createLinearGradient(0, Infinity, Infinity, 0); }); -assert_throws_js(TypeError, function() { ctx.createLinearGradient(0, Infinity, Infinity, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createLinearGradient(0, Infinity, 1, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createLinearGradient(0, 0, Infinity, Infinity); }); -t.done(); + assert_throws_js(TypeError, function() { ctx.createLinearGradient(Infinity, 0, 1, 0); }); + assert_throws_js(TypeError, function() { ctx.createLinearGradient(-Infinity, 0, 1, 0); }); + assert_throws_js(TypeError, function() { ctx.createLinearGradient(NaN, 0, 1, 0); }); + assert_throws_js(TypeError, function() { ctx.createLinearGradient(0, Infinity, 1, 0); }); + assert_throws_js(TypeError, function() { ctx.createLinearGradient(0, -Infinity, 1, 0); }); + assert_throws_js(TypeError, function() { ctx.createLinearGradient(0, NaN, 1, 0); }); + assert_throws_js(TypeError, function() { ctx.createLinearGradient(0, 0, Infinity, 0); }); + assert_throws_js(TypeError, function() { ctx.createLinearGradient(0, 0, -Infinity, 0); }); + assert_throws_js(TypeError, function() { ctx.createLinearGradient(0, 0, NaN, 0); }); + assert_throws_js(TypeError, function() { ctx.createLinearGradient(0, 0, 1, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createLinearGradient(0, 0, 1, -Infinity); }); + assert_throws_js(TypeError, function() { ctx.createLinearGradient(0, 0, 1, NaN); }); + assert_throws_js(TypeError, function() { ctx.createLinearGradient(Infinity, Infinity, 1, 0); }); + assert_throws_js(TypeError, function() { ctx.createLinearGradient(Infinity, Infinity, Infinity, 0); }); + assert_throws_js(TypeError, function() { ctx.createLinearGradient(Infinity, Infinity, Infinity, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createLinearGradient(Infinity, Infinity, 1, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createLinearGradient(Infinity, 0, Infinity, 0); }); + assert_throws_js(TypeError, function() { ctx.createLinearGradient(Infinity, 0, Infinity, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createLinearGradient(Infinity, 0, 1, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createLinearGradient(0, Infinity, Infinity, 0); }); + assert_throws_js(TypeError, function() { ctx.createLinearGradient(0, Infinity, Infinity, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createLinearGradient(0, Infinity, 1, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createLinearGradient(0, 0, Infinity, Infinity); }); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.linear.nonfinite.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.linear.nonfinite.worker.js index 9fefcc3..87f68918 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.linear.nonfinite.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.linear.nonfinite.worker.js
@@ -13,33 +13,32 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -assert_throws_js(TypeError, function() { ctx.createLinearGradient(Infinity, 0, 1, 0); }); -assert_throws_js(TypeError, function() { ctx.createLinearGradient(-Infinity, 0, 1, 0); }); -assert_throws_js(TypeError, function() { ctx.createLinearGradient(NaN, 0, 1, 0); }); -assert_throws_js(TypeError, function() { ctx.createLinearGradient(0, Infinity, 1, 0); }); -assert_throws_js(TypeError, function() { ctx.createLinearGradient(0, -Infinity, 1, 0); }); -assert_throws_js(TypeError, function() { ctx.createLinearGradient(0, NaN, 1, 0); }); -assert_throws_js(TypeError, function() { ctx.createLinearGradient(0, 0, Infinity, 0); }); -assert_throws_js(TypeError, function() { ctx.createLinearGradient(0, 0, -Infinity, 0); }); -assert_throws_js(TypeError, function() { ctx.createLinearGradient(0, 0, NaN, 0); }); -assert_throws_js(TypeError, function() { ctx.createLinearGradient(0, 0, 1, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createLinearGradient(0, 0, 1, -Infinity); }); -assert_throws_js(TypeError, function() { ctx.createLinearGradient(0, 0, 1, NaN); }); -assert_throws_js(TypeError, function() { ctx.createLinearGradient(Infinity, Infinity, 1, 0); }); -assert_throws_js(TypeError, function() { ctx.createLinearGradient(Infinity, Infinity, Infinity, 0); }); -assert_throws_js(TypeError, function() { ctx.createLinearGradient(Infinity, Infinity, Infinity, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createLinearGradient(Infinity, Infinity, 1, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createLinearGradient(Infinity, 0, Infinity, 0); }); -assert_throws_js(TypeError, function() { ctx.createLinearGradient(Infinity, 0, Infinity, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createLinearGradient(Infinity, 0, 1, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createLinearGradient(0, Infinity, Infinity, 0); }); -assert_throws_js(TypeError, function() { ctx.createLinearGradient(0, Infinity, Infinity, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createLinearGradient(0, Infinity, 1, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createLinearGradient(0, 0, Infinity, Infinity); }); -t.done(); - + assert_throws_js(TypeError, function() { ctx.createLinearGradient(Infinity, 0, 1, 0); }); + assert_throws_js(TypeError, function() { ctx.createLinearGradient(-Infinity, 0, 1, 0); }); + assert_throws_js(TypeError, function() { ctx.createLinearGradient(NaN, 0, 1, 0); }); + assert_throws_js(TypeError, function() { ctx.createLinearGradient(0, Infinity, 1, 0); }); + assert_throws_js(TypeError, function() { ctx.createLinearGradient(0, -Infinity, 1, 0); }); + assert_throws_js(TypeError, function() { ctx.createLinearGradient(0, NaN, 1, 0); }); + assert_throws_js(TypeError, function() { ctx.createLinearGradient(0, 0, Infinity, 0); }); + assert_throws_js(TypeError, function() { ctx.createLinearGradient(0, 0, -Infinity, 0); }); + assert_throws_js(TypeError, function() { ctx.createLinearGradient(0, 0, NaN, 0); }); + assert_throws_js(TypeError, function() { ctx.createLinearGradient(0, 0, 1, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createLinearGradient(0, 0, 1, -Infinity); }); + assert_throws_js(TypeError, function() { ctx.createLinearGradient(0, 0, 1, NaN); }); + assert_throws_js(TypeError, function() { ctx.createLinearGradient(Infinity, Infinity, 1, 0); }); + assert_throws_js(TypeError, function() { ctx.createLinearGradient(Infinity, Infinity, Infinity, 0); }); + assert_throws_js(TypeError, function() { ctx.createLinearGradient(Infinity, Infinity, Infinity, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createLinearGradient(Infinity, Infinity, 1, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createLinearGradient(Infinity, 0, Infinity, 0); }); + assert_throws_js(TypeError, function() { ctx.createLinearGradient(Infinity, 0, Infinity, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createLinearGradient(Infinity, 0, 1, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createLinearGradient(0, Infinity, Infinity, 0); }); + assert_throws_js(TypeError, function() { ctx.createLinearGradient(0, Infinity, Infinity, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createLinearGradient(0, Infinity, 1, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createLinearGradient(0, 0, Infinity, Infinity); }); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.linear.transform.1.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.linear.transform.1.html index 5e791079..69fc52ce 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.linear.transform.1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.linear.transform.1.html
@@ -17,21 +17,21 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var g = ctx.createLinearGradient(0, 0, 200, 0); -g.addColorStop(0, '#f00'); -g.addColorStop(0.25, '#0f0'); -g.addColorStop(0.75, '#0f0'); -g.addColorStop(1, '#f00'); -ctx.fillStyle = g; -ctx.translate(-50, 0); -ctx.fillRect(50, 0, 100, 50); -_assertPixel(canvas, 25,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 75,25, 0,255,0,255); -t.done(); + var g = ctx.createLinearGradient(0, 0, 200, 0); + g.addColorStop(0, '#f00'); + g.addColorStop(0.25, '#0f0'); + g.addColorStop(0.75, '#0f0'); + g.addColorStop(1, '#f00'); + ctx.fillStyle = g; + ctx.translate(-50, 0); + ctx.fillRect(50, 0, 100, 50); + _assertPixel(canvas, 25,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 75,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.linear.transform.1.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.linear.transform.1.worker.js index 62a96e2..79cdc96 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.linear.transform.1.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.linear.transform.1.worker.js
@@ -13,21 +13,20 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var g = ctx.createLinearGradient(0, 0, 200, 0); -g.addColorStop(0, '#f00'); -g.addColorStop(0.25, '#0f0'); -g.addColorStop(0.75, '#0f0'); -g.addColorStop(1, '#f00'); -ctx.fillStyle = g; -ctx.translate(-50, 0); -ctx.fillRect(50, 0, 100, 50); -_assertPixel(canvas, 25,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 75,25, 0,255,0,255); -t.done(); - + var g = ctx.createLinearGradient(0, 0, 200, 0); + g.addColorStop(0, '#f00'); + g.addColorStop(0.25, '#0f0'); + g.addColorStop(0.75, '#0f0'); + g.addColorStop(1, '#f00'); + ctx.fillStyle = g; + ctx.translate(-50, 0); + ctx.fillRect(50, 0, 100, 50); + _assertPixel(canvas, 25,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 75,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.linear.transform.2.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.linear.transform.2.html index 86fb5073..5cf27f1 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.linear.transform.2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.linear.transform.2.html
@@ -17,22 +17,22 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.translate(100, 0); -var g = ctx.createLinearGradient(0, 0, 200, 0); -g.addColorStop(0, '#f00'); -g.addColorStop(0.25, '#0f0'); -g.addColorStop(0.75, '#0f0'); -g.addColorStop(1, '#f00'); -ctx.fillStyle = g; -ctx.translate(-150, 0); -ctx.fillRect(50, 0, 100, 50); -_assertPixel(canvas, 25,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 75,25, 0,255,0,255); -t.done(); + ctx.translate(100, 0); + var g = ctx.createLinearGradient(0, 0, 200, 0); + g.addColorStop(0, '#f00'); + g.addColorStop(0.25, '#0f0'); + g.addColorStop(0.75, '#0f0'); + g.addColorStop(1, '#f00'); + ctx.fillStyle = g; + ctx.translate(-150, 0); + ctx.fillRect(50, 0, 100, 50); + _assertPixel(canvas, 25,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 75,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.linear.transform.2.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.linear.transform.2.worker.js index dace251..a2b532d 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.linear.transform.2.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.linear.transform.2.worker.js
@@ -13,22 +13,21 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.translate(100, 0); -var g = ctx.createLinearGradient(0, 0, 200, 0); -g.addColorStop(0, '#f00'); -g.addColorStop(0.25, '#0f0'); -g.addColorStop(0.75, '#0f0'); -g.addColorStop(1, '#f00'); -ctx.fillStyle = g; -ctx.translate(-150, 0); -ctx.fillRect(50, 0, 100, 50); -_assertPixel(canvas, 25,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 75,25, 0,255,0,255); -t.done(); - + ctx.translate(100, 0); + var g = ctx.createLinearGradient(0, 0, 200, 0); + g.addColorStop(0, '#f00'); + g.addColorStop(0.25, '#0f0'); + g.addColorStop(0.75, '#0f0'); + g.addColorStop(1, '#f00'); + ctx.fillStyle = g; + ctx.translate(-150, 0); + ctx.fillRect(50, 0, 100, 50); + _assertPixel(canvas, 25,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 75,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.linear.transform.3.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.linear.transform.3.html index ccbc3ab2..074722a 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.linear.transform.3.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.linear.transform.3.html
@@ -17,22 +17,22 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var g = ctx.createLinearGradient(0, 0, 200, 0); -g.addColorStop(0, '#f00'); -g.addColorStop(0.25, '#0f0'); -g.addColorStop(0.75, '#0f0'); -g.addColorStop(1, '#f00'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -ctx.translate(-50, 0); -ctx.fillRect(50, 0, 100, 50); -_assertPixel(canvas, 25,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 75,25, 0,255,0,255); -t.done(); + var g = ctx.createLinearGradient(0, 0, 200, 0); + g.addColorStop(0, '#f00'); + g.addColorStop(0.25, '#0f0'); + g.addColorStop(0.75, '#0f0'); + g.addColorStop(1, '#f00'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + ctx.translate(-50, 0); + ctx.fillRect(50, 0, 100, 50); + _assertPixel(canvas, 25,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 75,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.linear.transform.3.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.linear.transform.3.worker.js index 8f5a711..77df949 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.linear.transform.3.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.linear.transform.3.worker.js
@@ -13,22 +13,21 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var g = ctx.createLinearGradient(0, 0, 200, 0); -g.addColorStop(0, '#f00'); -g.addColorStop(0.25, '#0f0'); -g.addColorStop(0.75, '#0f0'); -g.addColorStop(1, '#f00'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -ctx.translate(-50, 0); -ctx.fillRect(50, 0, 100, 50); -_assertPixel(canvas, 25,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 75,25, 0,255,0,255); -t.done(); - + var g = ctx.createLinearGradient(0, 0, 200, 0); + g.addColorStop(0, '#f00'); + g.addColorStop(0.25, '#0f0'); + g.addColorStop(0.75, '#0f0'); + g.addColorStop(1, '#f00'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + ctx.translate(-50, 0); + ctx.fillRect(50, 0, 100, 50); + _assertPixel(canvas, 25,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 75,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.object.compare.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.object.compare.html index a091c32..d923a2f 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.object.compare.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.object.compare.html
@@ -17,15 +17,15 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var g1 = ctx.createLinearGradient(0, 0, 100, 0); -var g2 = ctx.createLinearGradient(0, 0, 100, 0); -_assertDifferent(g1, g2, "g1", "g2"); -ctx.fillStyle = g1; -_assertSame(ctx.fillStyle, g1, "ctx.fillStyle", "g1"); -t.done(); + var g1 = ctx.createLinearGradient(0, 0, 100, 0); + var g2 = ctx.createLinearGradient(0, 0, 100, 0); + _assertDifferent(g1, g2, "g1", "g2"); + ctx.fillStyle = g1; + _assertSame(ctx.fillStyle, g1, "ctx.fillStyle", "g1"); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.object.compare.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.object.compare.worker.js index 6c69e1a..f6d45d2 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.object.compare.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.object.compare.worker.js
@@ -13,15 +13,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var g1 = ctx.createLinearGradient(0, 0, 100, 0); -var g2 = ctx.createLinearGradient(0, 0, 100, 0); -_assertDifferent(g1, g2, "g1", "g2"); -ctx.fillStyle = g1; -_assertSame(ctx.fillStyle, g1, "ctx.fillStyle", "g1"); -t.done(); - + var g1 = ctx.createLinearGradient(0, 0, 100, 0); + var g2 = ctx.createLinearGradient(0, 0, 100, 0); + _assertDifferent(g1, g2, "g1", "g2"); + ctx.fillStyle = g1; + _assertSame(ctx.fillStyle, g1, "ctx.fillStyle", "g1"); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.object.crosscanvas.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.object.crosscanvas.html index 8d54f95..7ea9d84 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.object.crosscanvas.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.object.crosscanvas.html
@@ -17,19 +17,19 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -var offscreenCanvas2 = new OffscreenCanvas(100, 50); -var g = offscreenCanvas2.getContext('2d').createLinearGradient(0, 0, 100, 0); -g.addColorStop(0, '#0f0'); -g.addColorStop(1, '#0f0'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,255,0,255, 2); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + var offscreenCanvas2 = new OffscreenCanvas(100, 50); + var g = offscreenCanvas2.getContext('2d').createLinearGradient(0, 0, 100, 0); + g.addColorStop(0, '#0f0'); + g.addColorStop(1, '#0f0'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,255,0,255, 2); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.object.crosscanvas.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.object.crosscanvas.worker.js index fa8cee4..f877d59 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.object.crosscanvas.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.object.crosscanvas.worker.js
@@ -13,19 +13,18 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -var offscreenCanvas2 = new OffscreenCanvas(100, 50); -var g = offscreenCanvas2.getContext('2d').createLinearGradient(0, 0, 100, 0); -g.addColorStop(0, '#0f0'); -g.addColorStop(1, '#0f0'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,255,0,255, 2); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + var offscreenCanvas2 = new OffscreenCanvas(100, 50); + var g = offscreenCanvas2.getContext('2d').createLinearGradient(0, 0, 100, 0); + g.addColorStop(0, '#0f0'); + g.addColorStop(1, '#0f0'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,255,0,255, 2); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.object.invalidcolor.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.object.invalidcolor.html index e812278..51160c5 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.object.invalidcolor.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.object.invalidcolor.html
@@ -17,16 +17,16 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var g = ctx.createLinearGradient(0, 0, 100, 0); -assert_throws_dom("SYNTAX_ERR", function() { g.addColorStop(0, ""); }); -assert_throws_dom("SYNTAX_ERR", function() { g.addColorStop(0, 'null'); }); -assert_throws_dom("SYNTAX_ERR", function() { g.addColorStop(0, 'undefined'); }); -assert_throws_dom("SYNTAX_ERR", function() { g.addColorStop(0, null); }); -assert_throws_dom("SYNTAX_ERR", function() { g.addColorStop(0, undefined); }); -t.done(); + var g = ctx.createLinearGradient(0, 0, 100, 0); + assert_throws_dom("SYNTAX_ERR", function() { g.addColorStop(0, ""); }); + assert_throws_dom("SYNTAX_ERR", function() { g.addColorStop(0, 'null'); }); + assert_throws_dom("SYNTAX_ERR", function() { g.addColorStop(0, 'undefined'); }); + assert_throws_dom("SYNTAX_ERR", function() { g.addColorStop(0, null); }); + assert_throws_dom("SYNTAX_ERR", function() { g.addColorStop(0, undefined); }); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.object.invalidcolor.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.object.invalidcolor.worker.js index 278df5a..40e84ba 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.object.invalidcolor.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.object.invalidcolor.worker.js
@@ -13,16 +13,15 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var g = ctx.createLinearGradient(0, 0, 100, 0); -assert_throws_dom("SYNTAX_ERR", function() { g.addColorStop(0, ""); }); -assert_throws_dom("SYNTAX_ERR", function() { g.addColorStop(0, 'null'); }); -assert_throws_dom("SYNTAX_ERR", function() { g.addColorStop(0, 'undefined'); }); -assert_throws_dom("SYNTAX_ERR", function() { g.addColorStop(0, null); }); -assert_throws_dom("SYNTAX_ERR", function() { g.addColorStop(0, undefined); }); -t.done(); - + var g = ctx.createLinearGradient(0, 0, 100, 0); + assert_throws_dom("SYNTAX_ERR", function() { g.addColorStop(0, ""); }); + assert_throws_dom("SYNTAX_ERR", function() { g.addColorStop(0, 'null'); }); + assert_throws_dom("SYNTAX_ERR", function() { g.addColorStop(0, 'undefined'); }); + assert_throws_dom("SYNTAX_ERR", function() { g.addColorStop(0, null); }); + assert_throws_dom("SYNTAX_ERR", function() { g.addColorStop(0, undefined); }); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.object.invalidoffset.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.object.invalidoffset.html index bba4050..b9f1104 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.object.invalidoffset.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.object.invalidoffset.html
@@ -17,16 +17,16 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var g = ctx.createLinearGradient(0, 0, 100, 0); -assert_throws_dom("INDEX_SIZE_ERR", function() { g.addColorStop(-1, '#000'); }); -assert_throws_dom("INDEX_SIZE_ERR", function() { g.addColorStop(2, '#000'); }); -assert_throws_js(TypeError, function() { g.addColorStop(Infinity, '#000'); }); -assert_throws_js(TypeError, function() { g.addColorStop(-Infinity, '#000'); }); -assert_throws_js(TypeError, function() { g.addColorStop(NaN, '#000'); }); -t.done(); + var g = ctx.createLinearGradient(0, 0, 100, 0); + assert_throws_dom("INDEX_SIZE_ERR", function() { g.addColorStop(-1, '#000'); }); + assert_throws_dom("INDEX_SIZE_ERR", function() { g.addColorStop(2, '#000'); }); + assert_throws_js(TypeError, function() { g.addColorStop(Infinity, '#000'); }); + assert_throws_js(TypeError, function() { g.addColorStop(-Infinity, '#000'); }); + assert_throws_js(TypeError, function() { g.addColorStop(NaN, '#000'); }); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.object.invalidoffset.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.object.invalidoffset.worker.js index f71c840..80be642 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.object.invalidoffset.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.object.invalidoffset.worker.js
@@ -13,16 +13,15 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var g = ctx.createLinearGradient(0, 0, 100, 0); -assert_throws_dom("INDEX_SIZE_ERR", function() { g.addColorStop(-1, '#000'); }); -assert_throws_dom("INDEX_SIZE_ERR", function() { g.addColorStop(2, '#000'); }); -assert_throws_js(TypeError, function() { g.addColorStop(Infinity, '#000'); }); -assert_throws_js(TypeError, function() { g.addColorStop(-Infinity, '#000'); }); -assert_throws_js(TypeError, function() { g.addColorStop(NaN, '#000'); }); -t.done(); - + var g = ctx.createLinearGradient(0, 0, 100, 0); + assert_throws_dom("INDEX_SIZE_ERR", function() { g.addColorStop(-1, '#000'); }); + assert_throws_dom("INDEX_SIZE_ERR", function() { g.addColorStop(2, '#000'); }); + assert_throws_js(TypeError, function() { g.addColorStop(Infinity, '#000'); }); + assert_throws_js(TypeError, function() { g.addColorStop(-Infinity, '#000'); }); + assert_throws_js(TypeError, function() { g.addColorStop(NaN, '#000'); }); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.object.update.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.object.update.html index 175c3a2..00c6004 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.object.update.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.object.update.html
@@ -17,19 +17,19 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var g = ctx.createLinearGradient(-100, 0, 200, 0); -g.addColorStop(0, '#f00'); -g.addColorStop(1, '#f00'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -g.addColorStop(0.1, '#0f0'); -g.addColorStop(0.9, '#0f0'); -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,255,0,255, 2); -t.done(); + var g = ctx.createLinearGradient(-100, 0, 200, 0); + g.addColorStop(0, '#f00'); + g.addColorStop(1, '#f00'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + g.addColorStop(0.1, '#0f0'); + g.addColorStop(0.9, '#0f0'); + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,255,0,255, 2); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.object.update.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.object.update.worker.js index 76721140..db79ebf 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.object.update.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.object.update.worker.js
@@ -13,19 +13,18 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var g = ctx.createLinearGradient(-100, 0, 200, 0); -g.addColorStop(0, '#f00'); -g.addColorStop(1, '#f00'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -g.addColorStop(0.1, '#0f0'); -g.addColorStop(0.9, '#0f0'); -ctx.fillRect(0, 0, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,255,0,255, 2); -t.done(); - + var g = ctx.createLinearGradient(-100, 0, 200, 0); + g.addColorStop(0, '#f00'); + g.addColorStop(1, '#f00'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + g.addColorStop(0.1, '#0f0'); + g.addColorStop(0.9, '#0f0'); + ctx.fillRect(0, 0, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,255,0,255, 2); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.cone.behind.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.cone.behind.html index 537f960d..9a07ec4 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.cone.behind.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.cone.behind.html
@@ -17,26 +17,26 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -var g = ctx.createRadialGradient(120, 25, 10, 211, 25, 100); -g.addColorStop(0, '#f00'); -g.addColorStop(1, '#f00'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 50,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 98,25, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 50,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); -t.done(); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + var g = ctx.createRadialGradient(120, 25, 10, 211, 25, 100); + g.addColorStop(0, '#f00'); + g.addColorStop(1, '#f00'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 50,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 98,25, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 50,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.cone.behind.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.cone.behind.worker.js index 99711c7..806a83f 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.cone.behind.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.cone.behind.worker.js
@@ -13,26 +13,25 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -var g = ctx.createRadialGradient(120, 25, 10, 211, 25, 100); -g.addColorStop(0, '#f00'); -g.addColorStop(1, '#f00'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 50,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 98,25, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 50,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + var g = ctx.createRadialGradient(120, 25, 10, 211, 25, 100); + g.addColorStop(0, '#f00'); + g.addColorStop(1, '#f00'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 50,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 98,25, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 50,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.cone.beside.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.cone.beside.html index 360f1ab7..1ab27b46 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.cone.beside.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.cone.beside.html
@@ -17,26 +17,26 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -var g = ctx.createRadialGradient(0, 100, 40, 100, 100, 50); -g.addColorStop(0, '#f00'); -g.addColorStop(1, '#f00'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 50,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 98,25, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 50,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); -t.done(); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + var g = ctx.createRadialGradient(0, 100, 40, 100, 100, 50); + g.addColorStop(0, '#f00'); + g.addColorStop(1, '#f00'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 50,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 98,25, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 50,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.cone.beside.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.cone.beside.worker.js index 6af4825..2bb0860 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.cone.beside.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.cone.beside.worker.js
@@ -13,26 +13,25 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -var g = ctx.createRadialGradient(0, 100, 40, 100, 100, 50); -g.addColorStop(0, '#f00'); -g.addColorStop(1, '#f00'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 50,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 98,25, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 50,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + var g = ctx.createRadialGradient(0, 100, 40, 100, 100, 50); + g.addColorStop(0, '#f00'); + g.addColorStop(1, '#f00'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 50,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 98,25, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 50,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.cone.bottom.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.cone.bottom.html index 3f369038..87cac451 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.cone.bottom.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.cone.bottom.html
@@ -17,26 +17,26 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -var g = ctx.createRadialGradient(210, 25, 100, 230, 25, 101); -g.addColorStop(0, '#0f0'); -g.addColorStop(1, '#f00'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 50,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 98,25, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 50,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + var g = ctx.createRadialGradient(210, 25, 100, 230, 25, 101); + g.addColorStop(0, '#0f0'); + g.addColorStop(1, '#f00'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 50,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 98,25, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 50,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.cone.bottom.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.cone.bottom.worker.js index 2eca2d5..a9c859e 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.cone.bottom.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.cone.bottom.worker.js
@@ -13,26 +13,25 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -var g = ctx.createRadialGradient(210, 25, 100, 230, 25, 101); -g.addColorStop(0, '#0f0'); -g.addColorStop(1, '#f00'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 50,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 98,25, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 50,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + var g = ctx.createRadialGradient(210, 25, 100, 230, 25, 101); + g.addColorStop(0, '#0f0'); + g.addColorStop(1, '#f00'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 50,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 98,25, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 50,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.cone.cylinder.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.cone.cylinder.html index 70074093..649b83c 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.cone.cylinder.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.cone.cylinder.html
@@ -17,26 +17,26 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -var g = ctx.createRadialGradient(210, 25, 100, 230, 25, 100); -g.addColorStop(0, '#0f0'); -g.addColorStop(1, '#f00'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 50,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 98,25, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 50,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + var g = ctx.createRadialGradient(210, 25, 100, 230, 25, 100); + g.addColorStop(0, '#0f0'); + g.addColorStop(1, '#f00'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 50,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 98,25, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 50,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.cone.cylinder.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.cone.cylinder.worker.js index 25ff9b8..8223f52 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.cone.cylinder.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.cone.cylinder.worker.js
@@ -13,26 +13,25 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -var g = ctx.createRadialGradient(210, 25, 100, 230, 25, 100); -g.addColorStop(0, '#0f0'); -g.addColorStop(1, '#f00'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 50,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 98,25, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 50,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + var g = ctx.createRadialGradient(210, 25, 100, 230, 25, 100); + g.addColorStop(0, '#0f0'); + g.addColorStop(1, '#f00'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 50,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 98,25, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 50,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.cone.front.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.cone.front.html index 12f14ce0..6ad51c1 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.cone.front.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.cone.front.html
@@ -17,26 +17,26 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -var g = ctx.createRadialGradient(311, 25, 10, 210, 25, 100); -g.addColorStop(0, '#f00'); -g.addColorStop(1, '#0f0'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 50,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 98,25, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 50,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + var g = ctx.createRadialGradient(311, 25, 10, 210, 25, 100); + g.addColorStop(0, '#f00'); + g.addColorStop(1, '#0f0'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 50,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 98,25, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 50,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.cone.front.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.cone.front.worker.js index 6053cb4..a1eb55f 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.cone.front.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.cone.front.worker.js
@@ -13,26 +13,25 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -var g = ctx.createRadialGradient(311, 25, 10, 210, 25, 100); -g.addColorStop(0, '#f00'); -g.addColorStop(1, '#0f0'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 50,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 98,25, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 50,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + var g = ctx.createRadialGradient(311, 25, 10, 210, 25, 100); + g.addColorStop(0, '#f00'); + g.addColorStop(1, '#0f0'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 50,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 98,25, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 50,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.cone.shape1.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.cone.shape1.html index 242aaa0..7de944a 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.cone.shape1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.cone.shape1.html
@@ -17,33 +17,33 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var tol = 1; // tolerance to avoid antialiasing artifacts -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = '#f00'; -ctx.beginPath(); -ctx.moveTo(30+tol, 40); -ctx.lineTo(110, -20+tol); -ctx.lineTo(110, 100-tol); -ctx.fill(); -var g = ctx.createRadialGradient(30+10*5/2, 40, 10*3/2, 30+10*15/4, 40, 10*9/4); -g.addColorStop(0, '#0f0'); -g.addColorStop(1, '#0f0'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 50,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 98,25, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 50,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); -t.done(); + var tol = 1; // tolerance to avoid antialiasing artifacts + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#f00'; + ctx.beginPath(); + ctx.moveTo(30+tol, 40); + ctx.lineTo(110, -20+tol); + ctx.lineTo(110, 100-tol); + ctx.fill(); + var g = ctx.createRadialGradient(30+10*5/2, 40, 10*3/2, 30+10*15/4, 40, 10*9/4); + g.addColorStop(0, '#0f0'); + g.addColorStop(1, '#0f0'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 50,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 98,25, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 50,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.cone.shape1.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.cone.shape1.worker.js index 15e7a6f..0d211a0c 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.cone.shape1.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.cone.shape1.worker.js
@@ -13,33 +13,32 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var tol = 1; // tolerance to avoid antialiasing artifacts -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = '#f00'; -ctx.beginPath(); -ctx.moveTo(30+tol, 40); -ctx.lineTo(110, -20+tol); -ctx.lineTo(110, 100-tol); -ctx.fill(); -var g = ctx.createRadialGradient(30+10*5/2, 40, 10*3/2, 30+10*15/4, 40, 10*9/4); -g.addColorStop(0, '#0f0'); -g.addColorStop(1, '#0f0'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 50,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 98,25, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 50,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); -t.done(); - + var tol = 1; // tolerance to avoid antialiasing artifacts + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#f00'; + ctx.beginPath(); + ctx.moveTo(30+tol, 40); + ctx.lineTo(110, -20+tol); + ctx.lineTo(110, 100-tol); + ctx.fill(); + var g = ctx.createRadialGradient(30+10*5/2, 40, 10*3/2, 30+10*15/4, 40, 10*9/4); + g.addColorStop(0, '#0f0'); + g.addColorStop(1, '#0f0'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 50,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 98,25, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 50,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.cone.shape2.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.cone.shape2.html index d51a132..a748546 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.cone.shape2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.cone.shape2.html
@@ -17,33 +17,33 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var tol = 1; // tolerance to avoid antialiasing artifacts -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -var g = ctx.createRadialGradient(30+10*5/2, 40, 10*3/2, 30+10*15/4, 40, 10*9/4); -g.addColorStop(0, '#f00'); -g.addColorStop(1, '#f00'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = '#0f0'; -ctx.beginPath(); -ctx.moveTo(30-tol, 40); -ctx.lineTo(110, -20-tol); -ctx.lineTo(110, 100+tol); -ctx.fill(); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 50,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 98,25, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 50,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); -t.done(); + var tol = 1; // tolerance to avoid antialiasing artifacts + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + var g = ctx.createRadialGradient(30+10*5/2, 40, 10*3/2, 30+10*15/4, 40, 10*9/4); + g.addColorStop(0, '#f00'); + g.addColorStop(1, '#f00'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.beginPath(); + ctx.moveTo(30-tol, 40); + ctx.lineTo(110, -20-tol); + ctx.lineTo(110, 100+tol); + ctx.fill(); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 50,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 98,25, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 50,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.cone.shape2.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.cone.shape2.worker.js index 793d251..2f56159 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.cone.shape2.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.cone.shape2.worker.js
@@ -13,33 +13,32 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var tol = 1; // tolerance to avoid antialiasing artifacts -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -var g = ctx.createRadialGradient(30+10*5/2, 40, 10*3/2, 30+10*15/4, 40, 10*9/4); -g.addColorStop(0, '#f00'); -g.addColorStop(1, '#f00'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = '#0f0'; -ctx.beginPath(); -ctx.moveTo(30-tol, 40); -ctx.lineTo(110, -20-tol); -ctx.lineTo(110, 100+tol); -ctx.fill(); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 50,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 98,25, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 50,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); -t.done(); - + var tol = 1; // tolerance to avoid antialiasing artifacts + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + var g = ctx.createRadialGradient(30+10*5/2, 40, 10*3/2, 30+10*15/4, 40, 10*9/4); + g.addColorStop(0, '#f00'); + g.addColorStop(1, '#f00'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.beginPath(); + ctx.moveTo(30-tol, 40); + ctx.lineTo(110, -20-tol); + ctx.lineTo(110, 100+tol); + ctx.fill(); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 50,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 98,25, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 50,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.cone.top.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.cone.top.html index 9759eb3..802006b 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.cone.top.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.cone.top.html
@@ -17,26 +17,26 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -var g = ctx.createRadialGradient(230, 25, 100, 100, 25, 101); -g.addColorStop(0, '#f00'); -g.addColorStop(1, '#0f0'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 50,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 98,25, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 50,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + var g = ctx.createRadialGradient(230, 25, 100, 100, 25, 101); + g.addColorStop(0, '#f00'); + g.addColorStop(1, '#0f0'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 50,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 98,25, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 50,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.cone.top.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.cone.top.worker.js index 2ee6de3..731ee8f 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.cone.top.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.cone.top.worker.js
@@ -13,26 +13,25 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -var g = ctx.createRadialGradient(230, 25, 100, 100, 25, 101); -g.addColorStop(0, '#f00'); -g.addColorStop(1, '#0f0'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 50,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 98,25, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 50,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + var g = ctx.createRadialGradient(230, 25, 100, 100, 25, 101); + g.addColorStop(0, '#f00'); + g.addColorStop(1, '#0f0'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 50,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 98,25, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 50,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.equal.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.equal.html index 465ee97..3786e18 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.equal.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.equal.html
@@ -17,26 +17,26 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -var g = ctx.createRadialGradient(50, 25, 20, 50, 25, 20); -g.addColorStop(0, '#f00'); -g.addColorStop(1, '#f00'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 50,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 98,25, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 50,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); -t.done(); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + var g = ctx.createRadialGradient(50, 25, 20, 50, 25, 20); + g.addColorStop(0, '#f00'); + g.addColorStop(1, '#f00'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 50,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 98,25, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 50,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.equal.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.equal.worker.js index 74567335..d046809 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.equal.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.equal.worker.js
@@ -13,26 +13,25 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -var g = ctx.createRadialGradient(50, 25, 20, 50, 25, 20); -g.addColorStop(0, '#f00'); -g.addColorStop(1, '#f00'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 50,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 98,25, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 50,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + var g = ctx.createRadialGradient(50, 25, 20, 50, 25, 20); + g.addColorStop(0, '#f00'); + g.addColorStop(1, '#f00'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 50,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 98,25, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 50,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.inside1.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.inside1.html index 7c6fd31..db269a9 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.inside1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.inside1.html
@@ -17,26 +17,26 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -var g = ctx.createRadialGradient(50, 25, 100, 50, 25, 200); -g.addColorStop(0, '#0f0'); -g.addColorStop(1, '#f00'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 50,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 98,25, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 50,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + var g = ctx.createRadialGradient(50, 25, 100, 50, 25, 200); + g.addColorStop(0, '#0f0'); + g.addColorStop(1, '#f00'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 50,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 98,25, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 50,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.inside1.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.inside1.worker.js index 6d73c093..bc48654 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.inside1.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.inside1.worker.js
@@ -13,26 +13,25 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -var g = ctx.createRadialGradient(50, 25, 100, 50, 25, 200); -g.addColorStop(0, '#0f0'); -g.addColorStop(1, '#f00'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 50,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 98,25, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 50,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + var g = ctx.createRadialGradient(50, 25, 100, 50, 25, 200); + g.addColorStop(0, '#0f0'); + g.addColorStop(1, '#f00'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 50,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 98,25, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 50,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.inside2.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.inside2.html index fbad8b5..23de3b00 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.inside2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.inside2.html
@@ -17,26 +17,26 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -var g = ctx.createRadialGradient(50, 25, 200, 50, 25, 100); -g.addColorStop(0, '#f00'); -g.addColorStop(1, '#0f0'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 50,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 98,25, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 50,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + var g = ctx.createRadialGradient(50, 25, 200, 50, 25, 100); + g.addColorStop(0, '#f00'); + g.addColorStop(1, '#0f0'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 50,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 98,25, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 50,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.inside2.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.inside2.worker.js index aa6ecba..ffc1040 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.inside2.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.inside2.worker.js
@@ -13,26 +13,25 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -var g = ctx.createRadialGradient(50, 25, 200, 50, 25, 100); -g.addColorStop(0, '#f00'); -g.addColorStop(1, '#0f0'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 50,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 98,25, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 50,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + var g = ctx.createRadialGradient(50, 25, 200, 50, 25, 100); + g.addColorStop(0, '#f00'); + g.addColorStop(1, '#0f0'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 50,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 98,25, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 50,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.inside3.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.inside3.html index 54794b1..bbb2ecbc 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.inside3.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.inside3.html
@@ -17,27 +17,27 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -var g = ctx.createRadialGradient(50, 25, 200, 50, 25, 100); -g.addColorStop(0, '#f00'); -g.addColorStop(0.993, '#f00'); -g.addColorStop(1, '#0f0'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 50,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 98,25, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 50,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + var g = ctx.createRadialGradient(50, 25, 200, 50, 25, 100); + g.addColorStop(0, '#f00'); + g.addColorStop(0.993, '#f00'); + g.addColorStop(1, '#0f0'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 50,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 98,25, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 50,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.inside3.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.inside3.worker.js index b6d58b6..792d9e78 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.inside3.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.inside3.worker.js
@@ -13,27 +13,26 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -var g = ctx.createRadialGradient(50, 25, 200, 50, 25, 100); -g.addColorStop(0, '#f00'); -g.addColorStop(0.993, '#f00'); -g.addColorStop(1, '#0f0'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 50,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 98,25, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 50,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + var g = ctx.createRadialGradient(50, 25, 200, 50, 25, 100); + g.addColorStop(0, '#f00'); + g.addColorStop(0.993, '#f00'); + g.addColorStop(1, '#0f0'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 50,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 98,25, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 50,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.negative.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.negative.html index 1fb6af522..b6dcaf1 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.negative.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.negative.html
@@ -17,13 +17,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -assert_throws_dom("INDEX_SIZE_ERR", function() { ctx.createRadialGradient(0, 0, -0.1, 0, 0, 1); }); -assert_throws_dom("INDEX_SIZE_ERR", function() { ctx.createRadialGradient(0, 0, 1, 0, 0, -0.1); }); -assert_throws_dom("INDEX_SIZE_ERR", function() { ctx.createRadialGradient(0, 0, -0.1, 0, 0, -0.1); }); -t.done(); + assert_throws_dom("INDEX_SIZE_ERR", function() { ctx.createRadialGradient(0, 0, -0.1, 0, 0, 1); }); + assert_throws_dom("INDEX_SIZE_ERR", function() { ctx.createRadialGradient(0, 0, 1, 0, 0, -0.1); }); + assert_throws_dom("INDEX_SIZE_ERR", function() { ctx.createRadialGradient(0, 0, -0.1, 0, 0, -0.1); }); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.negative.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.negative.worker.js index e0d2c7c..72ad3f8 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.negative.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.negative.worker.js
@@ -13,13 +13,12 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -assert_throws_dom("INDEX_SIZE_ERR", function() { ctx.createRadialGradient(0, 0, -0.1, 0, 0, 1); }); -assert_throws_dom("INDEX_SIZE_ERR", function() { ctx.createRadialGradient(0, 0, 1, 0, 0, -0.1); }); -assert_throws_dom("INDEX_SIZE_ERR", function() { ctx.createRadialGradient(0, 0, -0.1, 0, 0, -0.1); }); -t.done(); - + assert_throws_dom("INDEX_SIZE_ERR", function() { ctx.createRadialGradient(0, 0, -0.1, 0, 0, 1); }); + assert_throws_dom("INDEX_SIZE_ERR", function() { ctx.createRadialGradient(0, 0, 1, 0, 0, -0.1); }); + assert_throws_dom("INDEX_SIZE_ERR", function() { ctx.createRadialGradient(0, 0, -0.1, 0, 0, -0.1); }); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.nonfinite.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.nonfinite.html index 75ab5740..8ba04769 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.nonfinite.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.nonfinite.html
@@ -17,85 +17,85 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, 1, 0, 0, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(-Infinity, 0, 1, 0, 0, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(NaN, 0, 1, 0, 0, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, 1, 0, 0, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, -Infinity, 1, 0, 0, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, NaN, 1, 0, 0, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, Infinity, 0, 0, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, -Infinity, 0, 0, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, NaN, 0, 0, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, 1, Infinity, 0, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, 1, -Infinity, 0, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, 1, NaN, 0, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, 1, 0, Infinity, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, 1, 0, -Infinity, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, 1, 0, NaN, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, 1, 0, 0, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, 1, 0, 0, -Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, 1, 0, 0, NaN); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, 1, 0, 0, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, Infinity, 0, 0, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, Infinity, Infinity, 0, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, Infinity, Infinity, Infinity, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, Infinity, Infinity, Infinity, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, Infinity, Infinity, 0, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, Infinity, 0, Infinity, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, Infinity, 0, Infinity, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, Infinity, 0, 0, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, 1, Infinity, 0, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, 1, Infinity, Infinity, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, 1, Infinity, Infinity, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, 1, Infinity, 0, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, 1, 0, Infinity, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, 1, 0, Infinity, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, 1, 0, 0, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, Infinity, 0, 0, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, Infinity, Infinity, 0, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, Infinity, Infinity, Infinity, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, Infinity, Infinity, Infinity, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, Infinity, Infinity, 0, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, Infinity, 0, Infinity, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, Infinity, 0, Infinity, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, Infinity, 0, 0, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, 1, Infinity, 0, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, 1, Infinity, Infinity, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, 1, Infinity, Infinity, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, 1, Infinity, 0, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, 1, 0, Infinity, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, 1, 0, Infinity, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, 1, 0, 0, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, Infinity, 0, 0, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, Infinity, Infinity, 0, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, Infinity, Infinity, Infinity, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, Infinity, Infinity, Infinity, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, Infinity, Infinity, 0, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, Infinity, 0, Infinity, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, Infinity, 0, Infinity, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, Infinity, 0, 0, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, 1, Infinity, 0, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, 1, Infinity, Infinity, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, 1, Infinity, Infinity, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, 1, Infinity, 0, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, 1, 0, Infinity, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, 1, 0, Infinity, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, 1, 0, 0, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, Infinity, Infinity, 0, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, Infinity, Infinity, Infinity, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, Infinity, Infinity, Infinity, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, Infinity, Infinity, 0, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, Infinity, 0, Infinity, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, Infinity, 0, Infinity, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, Infinity, 0, 0, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, 1, Infinity, Infinity, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, 1, Infinity, Infinity, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, 1, Infinity, 0, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, 1, 0, Infinity, Infinity); }); -t.done(); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, 1, 0, 0, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(-Infinity, 0, 1, 0, 0, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(NaN, 0, 1, 0, 0, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, 1, 0, 0, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, -Infinity, 1, 0, 0, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, NaN, 1, 0, 0, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, Infinity, 0, 0, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, -Infinity, 0, 0, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, NaN, 0, 0, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, 1, Infinity, 0, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, 1, -Infinity, 0, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, 1, NaN, 0, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, 1, 0, Infinity, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, 1, 0, -Infinity, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, 1, 0, NaN, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, 1, 0, 0, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, 1, 0, 0, -Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, 1, 0, 0, NaN); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, 1, 0, 0, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, Infinity, 0, 0, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, Infinity, Infinity, 0, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, Infinity, Infinity, Infinity, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, Infinity, Infinity, Infinity, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, Infinity, Infinity, 0, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, Infinity, 0, Infinity, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, Infinity, 0, Infinity, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, Infinity, 0, 0, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, 1, Infinity, 0, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, 1, Infinity, Infinity, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, 1, Infinity, Infinity, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, 1, Infinity, 0, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, 1, 0, Infinity, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, 1, 0, Infinity, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, 1, 0, 0, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, Infinity, 0, 0, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, Infinity, Infinity, 0, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, Infinity, Infinity, Infinity, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, Infinity, Infinity, Infinity, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, Infinity, Infinity, 0, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, Infinity, 0, Infinity, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, Infinity, 0, Infinity, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, Infinity, 0, 0, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, 1, Infinity, 0, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, 1, Infinity, Infinity, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, 1, Infinity, Infinity, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, 1, Infinity, 0, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, 1, 0, Infinity, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, 1, 0, Infinity, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, 1, 0, 0, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, Infinity, 0, 0, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, Infinity, Infinity, 0, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, Infinity, Infinity, Infinity, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, Infinity, Infinity, Infinity, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, Infinity, Infinity, 0, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, Infinity, 0, Infinity, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, Infinity, 0, Infinity, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, Infinity, 0, 0, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, 1, Infinity, 0, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, 1, Infinity, Infinity, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, 1, Infinity, Infinity, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, 1, Infinity, 0, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, 1, 0, Infinity, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, 1, 0, Infinity, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, 1, 0, 0, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, Infinity, Infinity, 0, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, Infinity, Infinity, Infinity, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, Infinity, Infinity, Infinity, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, Infinity, Infinity, 0, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, Infinity, 0, Infinity, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, Infinity, 0, Infinity, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, Infinity, 0, 0, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, 1, Infinity, Infinity, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, 1, Infinity, Infinity, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, 1, Infinity, 0, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, 1, 0, Infinity, Infinity); }); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.nonfinite.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.nonfinite.worker.js index f0994694..dd25e607 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.nonfinite.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.nonfinite.worker.js
@@ -13,85 +13,84 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, 1, 0, 0, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(-Infinity, 0, 1, 0, 0, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(NaN, 0, 1, 0, 0, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, 1, 0, 0, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, -Infinity, 1, 0, 0, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, NaN, 1, 0, 0, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, Infinity, 0, 0, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, -Infinity, 0, 0, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, NaN, 0, 0, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, 1, Infinity, 0, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, 1, -Infinity, 0, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, 1, NaN, 0, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, 1, 0, Infinity, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, 1, 0, -Infinity, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, 1, 0, NaN, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, 1, 0, 0, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, 1, 0, 0, -Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, 1, 0, 0, NaN); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, 1, 0, 0, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, Infinity, 0, 0, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, Infinity, Infinity, 0, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, Infinity, Infinity, Infinity, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, Infinity, Infinity, Infinity, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, Infinity, Infinity, 0, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, Infinity, 0, Infinity, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, Infinity, 0, Infinity, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, Infinity, 0, 0, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, 1, Infinity, 0, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, 1, Infinity, Infinity, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, 1, Infinity, Infinity, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, 1, Infinity, 0, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, 1, 0, Infinity, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, 1, 0, Infinity, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, 1, 0, 0, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, Infinity, 0, 0, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, Infinity, Infinity, 0, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, Infinity, Infinity, Infinity, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, Infinity, Infinity, Infinity, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, Infinity, Infinity, 0, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, Infinity, 0, Infinity, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, Infinity, 0, Infinity, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, Infinity, 0, 0, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, 1, Infinity, 0, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, 1, Infinity, Infinity, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, 1, Infinity, Infinity, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, 1, Infinity, 0, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, 1, 0, Infinity, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, 1, 0, Infinity, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, 1, 0, 0, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, Infinity, 0, 0, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, Infinity, Infinity, 0, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, Infinity, Infinity, Infinity, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, Infinity, Infinity, Infinity, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, Infinity, Infinity, 0, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, Infinity, 0, Infinity, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, Infinity, 0, Infinity, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, Infinity, 0, 0, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, 1, Infinity, 0, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, 1, Infinity, Infinity, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, 1, Infinity, Infinity, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, 1, Infinity, 0, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, 1, 0, Infinity, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, 1, 0, Infinity, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, 1, 0, 0, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, Infinity, Infinity, 0, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, Infinity, Infinity, Infinity, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, Infinity, Infinity, Infinity, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, Infinity, Infinity, 0, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, Infinity, 0, Infinity, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, Infinity, 0, Infinity, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, Infinity, 0, 0, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, 1, Infinity, Infinity, 1); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, 1, Infinity, Infinity, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, 1, Infinity, 0, Infinity); }); -assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, 1, 0, Infinity, Infinity); }); -t.done(); - + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, 1, 0, 0, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(-Infinity, 0, 1, 0, 0, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(NaN, 0, 1, 0, 0, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, 1, 0, 0, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, -Infinity, 1, 0, 0, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, NaN, 1, 0, 0, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, Infinity, 0, 0, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, -Infinity, 0, 0, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, NaN, 0, 0, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, 1, Infinity, 0, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, 1, -Infinity, 0, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, 1, NaN, 0, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, 1, 0, Infinity, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, 1, 0, -Infinity, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, 1, 0, NaN, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, 1, 0, 0, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, 1, 0, 0, -Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, 1, 0, 0, NaN); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, 1, 0, 0, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, Infinity, 0, 0, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, Infinity, Infinity, 0, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, Infinity, Infinity, Infinity, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, Infinity, Infinity, Infinity, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, Infinity, Infinity, 0, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, Infinity, 0, Infinity, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, Infinity, 0, Infinity, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, Infinity, 0, 0, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, 1, Infinity, 0, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, 1, Infinity, Infinity, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, 1, Infinity, Infinity, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, 1, Infinity, 0, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, 1, 0, Infinity, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, 1, 0, Infinity, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, Infinity, 1, 0, 0, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, Infinity, 0, 0, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, Infinity, Infinity, 0, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, Infinity, Infinity, Infinity, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, Infinity, Infinity, Infinity, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, Infinity, Infinity, 0, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, Infinity, 0, Infinity, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, Infinity, 0, Infinity, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, Infinity, 0, 0, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, 1, Infinity, 0, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, 1, Infinity, Infinity, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, 1, Infinity, Infinity, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, 1, Infinity, 0, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, 1, 0, Infinity, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, 1, 0, Infinity, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(Infinity, 0, 1, 0, 0, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, Infinity, 0, 0, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, Infinity, Infinity, 0, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, Infinity, Infinity, Infinity, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, Infinity, Infinity, Infinity, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, Infinity, Infinity, 0, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, Infinity, 0, Infinity, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, Infinity, 0, Infinity, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, Infinity, 0, 0, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, 1, Infinity, 0, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, 1, Infinity, Infinity, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, 1, Infinity, Infinity, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, 1, Infinity, 0, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, 1, 0, Infinity, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, 1, 0, Infinity, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, Infinity, 1, 0, 0, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, Infinity, Infinity, 0, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, Infinity, Infinity, Infinity, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, Infinity, Infinity, Infinity, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, Infinity, Infinity, 0, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, Infinity, 0, Infinity, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, Infinity, 0, Infinity, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, Infinity, 0, 0, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, 1, Infinity, Infinity, 1); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, 1, Infinity, Infinity, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, 1, Infinity, 0, Infinity); }); + assert_throws_js(TypeError, function() { ctx.createRadialGradient(0, 0, 1, 0, Infinity, Infinity); }); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.outside1.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.outside1.html index 44b2aa4..6c65f23 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.outside1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.outside1.html
@@ -17,26 +17,26 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -var g = ctx.createRadialGradient(200, 25, 10, 200, 25, 20); -g.addColorStop(0, '#f00'); -g.addColorStop(1, '#0f0'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 50,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 98,25, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 50,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + var g = ctx.createRadialGradient(200, 25, 10, 200, 25, 20); + g.addColorStop(0, '#f00'); + g.addColorStop(1, '#0f0'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 50,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 98,25, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 50,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.outside1.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.outside1.worker.js index e1d3cdd..d7beb71 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.outside1.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.outside1.worker.js
@@ -13,26 +13,25 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -var g = ctx.createRadialGradient(200, 25, 10, 200, 25, 20); -g.addColorStop(0, '#f00'); -g.addColorStop(1, '#0f0'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 50,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 98,25, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 50,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + var g = ctx.createRadialGradient(200, 25, 10, 200, 25, 20); + g.addColorStop(0, '#f00'); + g.addColorStop(1, '#0f0'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 50,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 98,25, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 50,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.outside2.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.outside2.html index e9e7ce497..8f4c48e 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.outside2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.outside2.html
@@ -17,26 +17,26 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -var g = ctx.createRadialGradient(200, 25, 20, 200, 25, 10); -g.addColorStop(0, '#0f0'); -g.addColorStop(1, '#f00'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 50,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 98,25, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 50,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + var g = ctx.createRadialGradient(200, 25, 20, 200, 25, 10); + g.addColorStop(0, '#0f0'); + g.addColorStop(1, '#f00'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 50,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 98,25, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 50,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.outside2.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.outside2.worker.js index a3f0235e..6c753e3 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.outside2.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.outside2.worker.js
@@ -13,26 +13,25 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -var g = ctx.createRadialGradient(200, 25, 20, 200, 25, 10); -g.addColorStop(0, '#0f0'); -g.addColorStop(1, '#f00'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 50,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 98,25, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 50,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + var g = ctx.createRadialGradient(200, 25, 20, 200, 25, 10); + g.addColorStop(0, '#0f0'); + g.addColorStop(1, '#f00'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 50,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 98,25, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 50,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.outside3.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.outside3.html index b66480a..5cfd308 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.outside3.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.outside3.html
@@ -17,27 +17,27 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -var g = ctx.createRadialGradient(200, 25, 20, 200, 25, 10); -g.addColorStop(0, '#0f0'); -g.addColorStop(0.001, '#f00'); -g.addColorStop(1, '#f00'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 50,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 98,25, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 50,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + var g = ctx.createRadialGradient(200, 25, 20, 200, 25, 10); + g.addColorStop(0, '#0f0'); + g.addColorStop(0.001, '#f00'); + g.addColorStop(1, '#f00'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 50,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 98,25, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 50,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.outside3.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.outside3.worker.js index 7b90c87..70593ce 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.outside3.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.outside3.worker.js
@@ -13,27 +13,26 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -var g = ctx.createRadialGradient(200, 25, 20, 200, 25, 10); -g.addColorStop(0, '#0f0'); -g.addColorStop(0.001, '#f00'); -g.addColorStop(1, '#f00'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 50,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 98,25, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 50,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + var g = ctx.createRadialGradient(200, 25, 20, 200, 25, 10); + g.addColorStop(0, '#0f0'); + g.addColorStop(0.001, '#f00'); + g.addColorStop(1, '#f00'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 50,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 98,25, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 50,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.touch1.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.touch1.html index c042b03..983071ec 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.touch1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.touch1.html
@@ -17,26 +17,26 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -var g = ctx.createRadialGradient(150, 25, 50, 200, 25, 100); -g.addColorStop(0, '#f00'); -g.addColorStop(1, '#f00'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 50,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 98,25, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 50,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); -t.done(); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + var g = ctx.createRadialGradient(150, 25, 50, 200, 25, 100); + g.addColorStop(0, '#f00'); + g.addColorStop(1, '#f00'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 50,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 98,25, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 50,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.touch1.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.touch1.worker.js index 7465345..21bbce1 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.touch1.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.touch1.worker.js
@@ -13,26 +13,25 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -var g = ctx.createRadialGradient(150, 25, 50, 200, 25, 100); -g.addColorStop(0, '#f00'); -g.addColorStop(1, '#f00'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 50,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 98,25, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 50,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + var g = ctx.createRadialGradient(150, 25, 50, 200, 25, 100); + g.addColorStop(0, '#f00'); + g.addColorStop(1, '#f00'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 50,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 98,25, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 50,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.touch2.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.touch2.html index 5da1d59..bd23924 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.touch2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.touch2.html
@@ -17,28 +17,28 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -var g = ctx.createRadialGradient(-80, 25, 70, 0, 25, 150); -g.addColorStop(0, '#f00'); -g.addColorStop(0.01, '#0f0'); -g.addColorStop(0.99, '#0f0'); -g.addColorStop(1, '#f00'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 50,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 98,25, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 50,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + var g = ctx.createRadialGradient(-80, 25, 70, 0, 25, 150); + g.addColorStop(0, '#f00'); + g.addColorStop(0.01, '#0f0'); + g.addColorStop(0.99, '#0f0'); + g.addColorStop(1, '#f00'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 50,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 98,25, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 50,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.touch2.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.touch2.worker.js index 91dfcb3..75abd38d 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.touch2.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.touch2.worker.js
@@ -13,28 +13,27 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -var g = ctx.createRadialGradient(-80, 25, 70, 0, 25, 150); -g.addColorStop(0, '#f00'); -g.addColorStop(0.01, '#0f0'); -g.addColorStop(0.99, '#0f0'); -g.addColorStop(1, '#f00'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 50,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 98,25, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 50,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + var g = ctx.createRadialGradient(-80, 25, 70, 0, 25, 150); + g.addColorStop(0, '#f00'); + g.addColorStop(0.01, '#0f0'); + g.addColorStop(0.99, '#0f0'); + g.addColorStop(1, '#f00'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 50,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 98,25, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 50,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.touch3.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.touch3.html index 804589f..bdaed6f 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.touch3.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.touch3.html
@@ -17,26 +17,26 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -var g = ctx.createRadialGradient(120, -15, 25, 140, -30, 50); -g.addColorStop(0, '#f00'); -g.addColorStop(1, '#f00'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 50,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 98,25, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 50,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); -t.done(); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + var g = ctx.createRadialGradient(120, -15, 25, 140, -30, 50); + g.addColorStop(0, '#f00'); + g.addColorStop(1, '#f00'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 50,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 98,25, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 50,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.touch3.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.touch3.worker.js index 11e17fbb..b2f3b0b4 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.touch3.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.touch3.worker.js
@@ -13,26 +13,25 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -var g = ctx.createRadialGradient(120, -15, 25, 140, -30, 50); -g.addColorStop(0, '#f00'); -g.addColorStop(1, '#f00'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 50,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 98,25, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 50,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + var g = ctx.createRadialGradient(120, -15, 25, 140, -30, 50); + g.addColorStop(0, '#f00'); + g.addColorStop(1, '#f00'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 50,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 98,25, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 50,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.transform.1.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.transform.1.html index c54044c..517c9e3 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.transform.1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.transform.1.html
@@ -17,22 +17,22 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var g = ctx.createRadialGradient(0, 0, 0, 0, 0, 11.2); -g.addColorStop(0, '#0f0'); -g.addColorStop(0.5, '#0f0'); -g.addColorStop(0.51, '#f00'); -g.addColorStop(1, '#f00'); -ctx.fillStyle = g; -ctx.translate(50, 25); -ctx.scale(10, 10); -ctx.fillRect(-5, -2.5, 10, 5); -_assertPixel(canvas, 25,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 75,25, 0,255,0,255); -t.done(); + var g = ctx.createRadialGradient(0, 0, 0, 0, 0, 11.2); + g.addColorStop(0, '#0f0'); + g.addColorStop(0.5, '#0f0'); + g.addColorStop(0.51, '#f00'); + g.addColorStop(1, '#f00'); + ctx.fillStyle = g; + ctx.translate(50, 25); + ctx.scale(10, 10); + ctx.fillRect(-5, -2.5, 10, 5); + _assertPixel(canvas, 25,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 75,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.transform.1.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.transform.1.worker.js index e2159d26..198dab1 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.transform.1.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.transform.1.worker.js
@@ -13,22 +13,21 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var g = ctx.createRadialGradient(0, 0, 0, 0, 0, 11.2); -g.addColorStop(0, '#0f0'); -g.addColorStop(0.5, '#0f0'); -g.addColorStop(0.51, '#f00'); -g.addColorStop(1, '#f00'); -ctx.fillStyle = g; -ctx.translate(50, 25); -ctx.scale(10, 10); -ctx.fillRect(-5, -2.5, 10, 5); -_assertPixel(canvas, 25,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 75,25, 0,255,0,255); -t.done(); - + var g = ctx.createRadialGradient(0, 0, 0, 0, 0, 11.2); + g.addColorStop(0, '#0f0'); + g.addColorStop(0.5, '#0f0'); + g.addColorStop(0.51, '#f00'); + g.addColorStop(1, '#f00'); + ctx.fillStyle = g; + ctx.translate(50, 25); + ctx.scale(10, 10); + ctx.fillRect(-5, -2.5, 10, 5); + _assertPixel(canvas, 25,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 75,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.transform.2.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.transform.2.html index 145c292..f7f4120a 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.transform.2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.transform.2.html
@@ -17,23 +17,23 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.translate(100, 0); -var g = ctx.createRadialGradient(0, 0, 0, 0, 0, 11.2); -g.addColorStop(0, '#0f0'); -g.addColorStop(0.5, '#0f0'); -g.addColorStop(0.51, '#f00'); -g.addColorStop(1, '#f00'); -ctx.fillStyle = g; -ctx.translate(-50, 25); -ctx.scale(10, 10); -ctx.fillRect(-5, -2.5, 10, 5); -_assertPixel(canvas, 25,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 75,25, 0,255,0,255); -t.done(); + ctx.translate(100, 0); + var g = ctx.createRadialGradient(0, 0, 0, 0, 0, 11.2); + g.addColorStop(0, '#0f0'); + g.addColorStop(0.5, '#0f0'); + g.addColorStop(0.51, '#f00'); + g.addColorStop(1, '#f00'); + ctx.fillStyle = g; + ctx.translate(-50, 25); + ctx.scale(10, 10); + ctx.fillRect(-5, -2.5, 10, 5); + _assertPixel(canvas, 25,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 75,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.transform.2.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.transform.2.worker.js index 511b7f3..27793b90 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.transform.2.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.transform.2.worker.js
@@ -13,23 +13,22 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.translate(100, 0); -var g = ctx.createRadialGradient(0, 0, 0, 0, 0, 11.2); -g.addColorStop(0, '#0f0'); -g.addColorStop(0.5, '#0f0'); -g.addColorStop(0.51, '#f00'); -g.addColorStop(1, '#f00'); -ctx.fillStyle = g; -ctx.translate(-50, 25); -ctx.scale(10, 10); -ctx.fillRect(-5, -2.5, 10, 5); -_assertPixel(canvas, 25,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 75,25, 0,255,0,255); -t.done(); - + ctx.translate(100, 0); + var g = ctx.createRadialGradient(0, 0, 0, 0, 0, 11.2); + g.addColorStop(0, '#0f0'); + g.addColorStop(0.5, '#0f0'); + g.addColorStop(0.51, '#f00'); + g.addColorStop(1, '#f00'); + ctx.fillStyle = g; + ctx.translate(-50, 25); + ctx.scale(10, 10); + ctx.fillRect(-5, -2.5, 10, 5); + _assertPixel(canvas, 25,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 75,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.transform.3.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.transform.3.html index 01d14cf..e0ac17f 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.transform.3.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.transform.3.html
@@ -17,23 +17,23 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var g = ctx.createRadialGradient(0, 0, 0, 0, 0, 11.2); -g.addColorStop(0, '#0f0'); -g.addColorStop(0.5, '#0f0'); -g.addColorStop(0.51, '#f00'); -g.addColorStop(1, '#f00'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -ctx.translate(50, 25); -ctx.scale(10, 10); -ctx.fillRect(-5, -2.5, 10, 5); -_assertPixel(canvas, 25,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 75,25, 0,255,0,255); -t.done(); + var g = ctx.createRadialGradient(0, 0, 0, 0, 0, 11.2); + g.addColorStop(0, '#0f0'); + g.addColorStop(0.5, '#0f0'); + g.addColorStop(0.51, '#f00'); + g.addColorStop(1, '#f00'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + ctx.translate(50, 25); + ctx.scale(10, 10); + ctx.fillRect(-5, -2.5, 10, 5); + _assertPixel(canvas, 25,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 75,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.transform.3.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.transform.3.worker.js index b7bf68a..1b74d8b 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.transform.3.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.transform.3.worker.js
@@ -13,23 +13,22 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var g = ctx.createRadialGradient(0, 0, 0, 0, 0, 11.2); -g.addColorStop(0, '#0f0'); -g.addColorStop(0.5, '#0f0'); -g.addColorStop(0.51, '#f00'); -g.addColorStop(1, '#f00'); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -ctx.translate(50, 25); -ctx.scale(10, 10); -ctx.fillRect(-5, -2.5, 10, 5); -_assertPixel(canvas, 25,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 75,25, 0,255,0,255); -t.done(); - + var g = ctx.createRadialGradient(0, 0, 0, 0, 0, 11.2); + g.addColorStop(0, '#0f0'); + g.addColorStop(0.5, '#0f0'); + g.addColorStop(0.51, '#f00'); + g.addColorStop(1, '#f00'); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + ctx.translate(50, 25); + ctx.scale(10, 10); + ctx.fillRect(-5, -2.5, 10, 5); + _assertPixel(canvas, 25,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 75,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.basic.canvas.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.basic.canvas.html index 80bb9466..6f66f50 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.basic.canvas.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.basic.canvas.html
@@ -17,28 +17,28 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -var offscreenCanvas2 = new OffscreenCanvas(100, 50); -var ctx2 = offscreenCanvas2.getContext('2d'); -ctx2.fillStyle = '#0f0'; -ctx2.fillRect(0, 0, 100, 50); -var pattern = ctx.createPattern(offscreenCanvas2, 'no-repeat'); -ctx.fillStyle = pattern; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 50,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 98,25, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 50,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + var offscreenCanvas2 = new OffscreenCanvas(100, 50); + var ctx2 = offscreenCanvas2.getContext('2d'); + ctx2.fillStyle = '#0f0'; + ctx2.fillRect(0, 0, 100, 50); + var pattern = ctx.createPattern(offscreenCanvas2, 'no-repeat'); + ctx.fillStyle = pattern; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 50,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 98,25, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 50,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.basic.canvas.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.basic.canvas.worker.js index a2608066..6f6b882 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.basic.canvas.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.basic.canvas.worker.js
@@ -13,28 +13,27 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -var offscreenCanvas2 = new OffscreenCanvas(100, 50); -var ctx2 = offscreenCanvas2.getContext('2d'); -ctx2.fillStyle = '#0f0'; -ctx2.fillRect(0, 0, 100, 50); -var pattern = ctx.createPattern(offscreenCanvas2, 'no-repeat'); -ctx.fillStyle = pattern; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 50,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 98,25, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 50,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + var offscreenCanvas2 = new OffscreenCanvas(100, 50); + var ctx2 = offscreenCanvas2.getContext('2d'); + ctx2.fillStyle = '#0f0'; + ctx2.fillRect(0, 0, 100, 50); + var pattern = ctx.createPattern(offscreenCanvas2, 'no-repeat'); + ctx.fillStyle = pattern; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 50,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 98,25, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 50,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.basic.image.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.basic.image.html index 965daccd..4ffbc6d 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.basic.image.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.basic.image.html
@@ -17,31 +17,31 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/green.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - var pattern = ctx.createPattern(bitmap, 'no-repeat'); - ctx.fillStyle = pattern; - ctx.fillRect(0, 0, 100, 50); - _assertPixel(canvas, 1,1, 0,255,0,255); - _assertPixel(canvas, 98,1, 0,255,0,255); - _assertPixel(canvas, 1,48, 0,255,0,255); - _assertPixel(canvas, 98,48, 0,255,0,255); - }, t_fail); -}).then(t_pass, t_fail); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/green.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + var pattern = ctx.createPattern(bitmap, 'no-repeat'); + ctx.fillStyle = pattern; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + }, t_fail); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.basic.image.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.basic.image.worker.js index 725df51..b9a79d7 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.basic.image.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.basic.image.worker.js
@@ -13,31 +13,30 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/green.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - var pattern = ctx.createPattern(bitmap, 'no-repeat'); - ctx.fillStyle = pattern; - ctx.fillRect(0, 0, 100, 50); - _assertPixel(canvas, 1,1, 0,255,0,255); - _assertPixel(canvas, 98,1, 0,255,0,255); - _assertPixel(canvas, 1,48, 0,255,0,255); - _assertPixel(canvas, 98,48, 0,255,0,255); - }, t_fail); -}).then(t_pass, t_fail); - + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/green.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + var pattern = ctx.createPattern(bitmap, 'no-repeat'); + ctx.fillStyle = pattern; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + }, t_fail); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.basic.nocontext.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.basic.nocontext.html index 50cd38e..9fa124277 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.basic.nocontext.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.basic.nocontext.html
@@ -17,21 +17,21 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var offscreenCanvas2 = new OffscreenCanvas(100, 50); -var pattern = ctx.createPattern(offscreenCanvas2, 'no-repeat'); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = '#f00'; -ctx.fillStyle = pattern; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); -t.done(); + var offscreenCanvas2 = new OffscreenCanvas(100, 50); + var pattern = ctx.createPattern(offscreenCanvas2, 'no-repeat'); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#f00'; + ctx.fillStyle = pattern; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.basic.nocontext.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.basic.nocontext.worker.js index 8f33ec9d..11c30765 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.basic.nocontext.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.basic.nocontext.worker.js
@@ -13,21 +13,20 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var offscreenCanvas2 = new OffscreenCanvas(100, 50); -var pattern = ctx.createPattern(offscreenCanvas2, 'no-repeat'); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = '#f00'; -ctx.fillStyle = pattern; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); -t.done(); - + var offscreenCanvas2 = new OffscreenCanvas(100, 50); + var pattern = ctx.createPattern(offscreenCanvas2, 'no-repeat'); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#f00'; + ctx.fillStyle = pattern; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.basic.zerocanvas.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.basic.zerocanvas.html index 5c395ab..c7f6188 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.basic.zerocanvas.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.basic.zerocanvas.html
@@ -17,25 +17,25 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -canvas.width = 0; -canvas.height = 10; -_assertSame(canvas.width, 0, "canvas.width", "0"); -_assertSame(canvas.height, 10, "canvas.height", "10"); -assert_throws_dom("INVALID_STATE_ERR", function() { ctx.createPattern(canvas, 'repeat'); }); -canvas.width = 10; -canvas.height = 0; -_assertSame(canvas.width, 10, "canvas.width", "10"); -_assertSame(canvas.height, 0, "canvas.height", "0"); -assert_throws_dom("INVALID_STATE_ERR", function() { ctx.createPattern(canvas, 'repeat'); }); -canvas.width = 0; -canvas.height = 0; -_assertSame(canvas.width, 0, "canvas.width", "0"); -_assertSame(canvas.height, 0, "canvas.height", "0"); -assert_throws_dom("INVALID_STATE_ERR", function() { ctx.createPattern(canvas, 'repeat'); }); -t.done(); + canvas.width = 0; + canvas.height = 10; + _assertSame(canvas.width, 0, "canvas.width", "0"); + _assertSame(canvas.height, 10, "canvas.height", "10"); + assert_throws_dom("INVALID_STATE_ERR", function() { ctx.createPattern(canvas, 'repeat'); }); + canvas.width = 10; + canvas.height = 0; + _assertSame(canvas.width, 10, "canvas.width", "10"); + _assertSame(canvas.height, 0, "canvas.height", "0"); + assert_throws_dom("INVALID_STATE_ERR", function() { ctx.createPattern(canvas, 'repeat'); }); + canvas.width = 0; + canvas.height = 0; + _assertSame(canvas.width, 0, "canvas.width", "0"); + _assertSame(canvas.height, 0, "canvas.height", "0"); + assert_throws_dom("INVALID_STATE_ERR", function() { ctx.createPattern(canvas, 'repeat'); }); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.basic.zerocanvas.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.basic.zerocanvas.worker.js index b02e3cc..caeff7c 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.basic.zerocanvas.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.basic.zerocanvas.worker.js
@@ -13,25 +13,24 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -canvas.width = 0; -canvas.height = 10; -_assertSame(canvas.width, 0, "canvas.width", "0"); -_assertSame(canvas.height, 10, "canvas.height", "10"); -assert_throws_dom("INVALID_STATE_ERR", function() { ctx.createPattern(canvas, 'repeat'); }); -canvas.width = 10; -canvas.height = 0; -_assertSame(canvas.width, 10, "canvas.width", "10"); -_assertSame(canvas.height, 0, "canvas.height", "0"); -assert_throws_dom("INVALID_STATE_ERR", function() { ctx.createPattern(canvas, 'repeat'); }); -canvas.width = 0; -canvas.height = 0; -_assertSame(canvas.width, 0, "canvas.width", "0"); -_assertSame(canvas.height, 0, "canvas.height", "0"); -assert_throws_dom("INVALID_STATE_ERR", function() { ctx.createPattern(canvas, 'repeat'); }); -t.done(); - + canvas.width = 0; + canvas.height = 10; + _assertSame(canvas.width, 0, "canvas.width", "0"); + _assertSame(canvas.height, 10, "canvas.height", "10"); + assert_throws_dom("INVALID_STATE_ERR", function() { ctx.createPattern(canvas, 'repeat'); }); + canvas.width = 10; + canvas.height = 0; + _assertSame(canvas.width, 10, "canvas.width", "10"); + _assertSame(canvas.height, 0, "canvas.height", "0"); + assert_throws_dom("INVALID_STATE_ERR", function() { ctx.createPattern(canvas, 'repeat'); }); + canvas.width = 0; + canvas.height = 0; + _assertSame(canvas.width, 0, "canvas.width", "0"); + _assertSame(canvas.height, 0, "canvas.height", "0"); + assert_throws_dom("INVALID_STATE_ERR", function() { ctx.createPattern(canvas, 'repeat'); }); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.crosscanvas.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.crosscanvas.html index c6e0b36..b040e02 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.crosscanvas.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.crosscanvas.html
@@ -17,29 +17,29 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/green.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - var offscreenCanvas2 = new OffscreenCanvas(100, 50); - var pattern = offscreenCanvas2.getContext('2d').createPattern(bitmap, 'no-repeat'); - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.fillStyle = pattern; - ctx.fillRect(0, 0, 100, 50); - _assertPixel(canvas, 50,25, 0,255,0,255); - }, t_fail); -}).then(t_pass, t_fail); + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/green.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + var offscreenCanvas2 = new OffscreenCanvas(100, 50); + var pattern = offscreenCanvas2.getContext('2d').createPattern(bitmap, 'no-repeat'); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = pattern; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + }, t_fail); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.crosscanvas.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.crosscanvas.worker.js index 1a1d045..e7a20744 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.crosscanvas.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.crosscanvas.worker.js
@@ -13,29 +13,28 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/green.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - var offscreenCanvas2 = new OffscreenCanvas(100, 50); - var pattern = offscreenCanvas2.getContext('2d').createPattern(bitmap, 'no-repeat'); - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.fillStyle = pattern; - ctx.fillRect(0, 0, 100, 50); - _assertPixel(canvas, 50,25, 0,255,0,255); - }, t_fail); -}).then(t_pass, t_fail); - + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/green.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + var offscreenCanvas2 = new OffscreenCanvas(100, 50); + var pattern = offscreenCanvas2.getContext('2d').createPattern(bitmap, 'no-repeat'); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = pattern; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + }, t_fail); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.image.null.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.image.null.html index e3ad031..4297814b 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.image.null.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.image.null.html
@@ -17,11 +17,11 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -assert_throws_js(TypeError, function() { ctx.createPattern(null, 'repeat'); }); -t.done(); + assert_throws_js(TypeError, function() { ctx.createPattern(null, 'repeat'); }); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.image.null.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.image.null.worker.js index 63dcb8f9..c7d99696 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.image.null.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.image.null.worker.js
@@ -13,11 +13,10 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -assert_throws_js(TypeError, function() { ctx.createPattern(null, 'repeat'); }); -t.done(); - + assert_throws_js(TypeError, function() { ctx.createPattern(null, 'repeat'); }); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.image.string.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.image.string.html index ac202ee..469f223 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.image.string.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.image.string.html
@@ -17,11 +17,11 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -assert_throws_js(TypeError, function() { ctx.createPattern('../images/red.png', 'repeat'); }); -t.done(); + assert_throws_js(TypeError, function() { ctx.createPattern('../images/red.png', 'repeat'); }); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.image.string.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.image.string.worker.js index c07e7d51..f8525e4 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.image.string.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.image.string.worker.js
@@ -13,11 +13,10 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -assert_throws_js(TypeError, function() { ctx.createPattern('../images/red.png', 'repeat'); }); -t.done(); - + assert_throws_js(TypeError, function() { ctx.createPattern('../images/red.png', 'repeat'); }); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.image.undefined.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.image.undefined.html index 0593d415..475d8dd 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.image.undefined.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.image.undefined.html
@@ -17,11 +17,11 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -assert_throws_js(TypeError, function() { ctx.createPattern(undefined, 'repeat'); }); -t.done(); + assert_throws_js(TypeError, function() { ctx.createPattern(undefined, 'repeat'); }); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.image.undefined.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.image.undefined.worker.js index 1e94f39..dbfdbe9 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.image.undefined.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.image.undefined.worker.js
@@ -13,11 +13,10 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -assert_throws_js(TypeError, function() { ctx.createPattern(undefined, 'repeat'); }); -t.done(); - + assert_throws_js(TypeError, function() { ctx.createPattern(undefined, 'repeat'); }); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.modify.canvas1.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.modify.canvas1.html index 4c27f263..11586f5a 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.modify.canvas1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.modify.canvas1.html
@@ -17,23 +17,23 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var offscreenCanvas2 = new OffscreenCanvas(100, 50); -var ctx2 = offscreenCanvas2.getContext('2d'); -ctx2.fillStyle = '#0f0'; -ctx2.fillRect(0, 0, 100, 50); -var pattern = ctx.createPattern(offscreenCanvas2, 'no-repeat'); -ctx2.fillStyle = '#f00'; -ctx2.fillRect(0, 0, 100, 50); -ctx.fillStyle = pattern; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); -t.done(); + var offscreenCanvas2 = new OffscreenCanvas(100, 50); + var ctx2 = offscreenCanvas2.getContext('2d'); + ctx2.fillStyle = '#0f0'; + ctx2.fillRect(0, 0, 100, 50); + var pattern = ctx.createPattern(offscreenCanvas2, 'no-repeat'); + ctx2.fillStyle = '#f00'; + ctx2.fillRect(0, 0, 100, 50); + ctx.fillStyle = pattern; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.modify.canvas1.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.modify.canvas1.worker.js index c83755c..3dde0ef9 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.modify.canvas1.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.modify.canvas1.worker.js
@@ -13,23 +13,22 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var offscreenCanvas2 = new OffscreenCanvas(100, 50); -var ctx2 = offscreenCanvas2.getContext('2d'); -ctx2.fillStyle = '#0f0'; -ctx2.fillRect(0, 0, 100, 50); -var pattern = ctx.createPattern(offscreenCanvas2, 'no-repeat'); -ctx2.fillStyle = '#f00'; -ctx2.fillRect(0, 0, 100, 50); -ctx.fillStyle = pattern; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); -t.done(); - + var offscreenCanvas2 = new OffscreenCanvas(100, 50); + var ctx2 = offscreenCanvas2.getContext('2d'); + ctx2.fillStyle = '#0f0'; + ctx2.fillRect(0, 0, 100, 50); + var pattern = ctx.createPattern(offscreenCanvas2, 'no-repeat'); + ctx2.fillStyle = '#f00'; + ctx2.fillRect(0, 0, 100, 50); + ctx.fillStyle = pattern; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.modify.canvas2.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.modify.canvas2.html index 08a6cd8..568140a 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.modify.canvas2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.modify.canvas2.html
@@ -17,27 +17,27 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var offscreenCanvas2 = new OffscreenCanvas(100, 50); -var ctx2 = offscreenCanvas2.getContext('2d'); -ctx2.fillStyle = '#0f0'; -ctx2.fillRect(0, 0, 100, 50); -var pattern = ctx.createPattern(offscreenCanvas2, 'no-repeat'); -ctx.fillStyle = pattern; -ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx2.fillStyle = '#f00'; -ctx2.fillRect(0, 0, 100, 50); -ctx.fillStyle = pattern; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); -t.done(); + var offscreenCanvas2 = new OffscreenCanvas(100, 50); + var ctx2 = offscreenCanvas2.getContext('2d'); + ctx2.fillStyle = '#0f0'; + ctx2.fillRect(0, 0, 100, 50); + var pattern = ctx.createPattern(offscreenCanvas2, 'no-repeat'); + ctx.fillStyle = pattern; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx2.fillStyle = '#f00'; + ctx2.fillRect(0, 0, 100, 50); + ctx.fillStyle = pattern; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.modify.canvas2.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.modify.canvas2.worker.js index a49dd10..fd70a2fc 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.modify.canvas2.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.modify.canvas2.worker.js
@@ -13,27 +13,26 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var offscreenCanvas2 = new OffscreenCanvas(100, 50); -var ctx2 = offscreenCanvas2.getContext('2d'); -ctx2.fillStyle = '#0f0'; -ctx2.fillRect(0, 0, 100, 50); -var pattern = ctx.createPattern(offscreenCanvas2, 'no-repeat'); -ctx.fillStyle = pattern; -ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx2.fillStyle = '#f00'; -ctx2.fillRect(0, 0, 100, 50); -ctx.fillStyle = pattern; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); -t.done(); - + var offscreenCanvas2 = new OffscreenCanvas(100, 50); + var ctx2 = offscreenCanvas2.getContext('2d'); + ctx2.fillStyle = '#0f0'; + ctx2.fillRect(0, 0, 100, 50); + var pattern = ctx.createPattern(offscreenCanvas2, 'no-repeat'); + ctx.fillStyle = pattern; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx2.fillStyle = '#f00'; + ctx2.fillRect(0, 0, 100, 50); + ctx.fillStyle = pattern; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.norepeat.basic.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.norepeat.basic.html index f5d9f5a..7ec80af 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.norepeat.basic.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.norepeat.basic.html
@@ -17,31 +17,31 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/green.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - var pattern = ctx.createPattern(bitmap, 'no-repeat'); - ctx.fillStyle = pattern; - ctx.fillRect(0, 0, 100, 50); - _assertPixel(canvas, 1,1, 0,255,0,255); - _assertPixel(canvas, 98,1, 0,255,0,255); - _assertPixel(canvas, 1,48, 0,255,0,255); - _assertPixel(canvas, 98,48, 0,255,0,255); - }, t_fail); -}).then(t_pass, t_fail); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/green.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + var pattern = ctx.createPattern(bitmap, 'no-repeat'); + ctx.fillStyle = pattern; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + }, t_fail); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.norepeat.basic.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.norepeat.basic.worker.js index 82a49c3..178be23 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.norepeat.basic.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.norepeat.basic.worker.js
@@ -13,31 +13,30 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/green.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - var pattern = ctx.createPattern(bitmap, 'no-repeat'); - ctx.fillStyle = pattern; - ctx.fillRect(0, 0, 100, 50); - _assertPixel(canvas, 1,1, 0,255,0,255); - _assertPixel(canvas, 98,1, 0,255,0,255); - _assertPixel(canvas, 1,48, 0,255,0,255); - _assertPixel(canvas, 98,48, 0,255,0,255); - }, t_fail); -}).then(t_pass, t_fail); - + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/green.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + var pattern = ctx.createPattern(bitmap, 'no-repeat'); + ctx.fillStyle = pattern; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + }, t_fail); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.norepeat.coord1.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.norepeat.coord1.html index 87158be..d6ebd242 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.norepeat.coord1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.norepeat.coord1.html
@@ -17,34 +17,34 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 50, 50); -ctx.fillStyle = '#f00'; -ctx.fillRect(50, 0, 50, 50); -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/green.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - var pattern = ctx.createPattern(bitmap, 'no-repeat'); - ctx.fillStyle = pattern; - ctx.translate(50, 0); - ctx.fillRect(-50, 0, 100, 50); - _assertPixel(canvas, 1,1, 0,255,0,255); - _assertPixel(canvas, 98,1, 0,255,0,255); - _assertPixel(canvas, 1,48, 0,255,0,255); - _assertPixel(canvas, 98,48, 0,255,0,255); - }, t_fail); -}).then(t_pass, t_fail); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 50, 50); + ctx.fillStyle = '#f00'; + ctx.fillRect(50, 0, 50, 50); + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/green.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + var pattern = ctx.createPattern(bitmap, 'no-repeat'); + ctx.fillStyle = pattern; + ctx.translate(50, 0); + ctx.fillRect(-50, 0, 100, 50); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + }, t_fail); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.norepeat.coord1.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.norepeat.coord1.worker.js index 731df50c..8596a46 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.norepeat.coord1.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.norepeat.coord1.worker.js
@@ -13,34 +13,33 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 50, 50); -ctx.fillStyle = '#f00'; -ctx.fillRect(50, 0, 50, 50); -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/green.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - var pattern = ctx.createPattern(bitmap, 'no-repeat'); - ctx.fillStyle = pattern; - ctx.translate(50, 0); - ctx.fillRect(-50, 0, 100, 50); - _assertPixel(canvas, 1,1, 0,255,0,255); - _assertPixel(canvas, 98,1, 0,255,0,255); - _assertPixel(canvas, 1,48, 0,255,0,255); - _assertPixel(canvas, 98,48, 0,255,0,255); - }, t_fail); -}).then(t_pass, t_fail); - + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 50, 50); + ctx.fillStyle = '#f00'; + ctx.fillRect(50, 0, 50, 50); + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/green.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + var pattern = ctx.createPattern(bitmap, 'no-repeat'); + ctx.fillStyle = pattern; + ctx.translate(50, 0); + ctx.fillRect(-50, 0, 100, 50); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + }, t_fail); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.norepeat.coord2.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.norepeat.coord2.html index a600e6e..97205f54 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.norepeat.coord2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.norepeat.coord2.html
@@ -17,34 +17,34 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/green.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - var pattern = ctx.createPattern(bitmap, 'no-repeat'); - ctx.fillStyle = pattern; - ctx.fillRect(0, 0, 50, 50); - ctx.fillStyle = '#f00'; - ctx.fillRect(50, 0, 50, 50); - ctx.fillStyle = pattern; - ctx.translate(50, 0); - ctx.fillRect(-50, 0, 100, 50); - _assertPixel(canvas, 1,1, 0,255,0,255); - _assertPixel(canvas, 98,1, 0,255,0,255); - _assertPixel(canvas, 1,48, 0,255,0,255); - _assertPixel(canvas, 98,48, 0,255,0,255); - }, t_fail); -}).then(t_pass, t_fail); + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/green.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + var pattern = ctx.createPattern(bitmap, 'no-repeat'); + ctx.fillStyle = pattern; + ctx.fillRect(0, 0, 50, 50); + ctx.fillStyle = '#f00'; + ctx.fillRect(50, 0, 50, 50); + ctx.fillStyle = pattern; + ctx.translate(50, 0); + ctx.fillRect(-50, 0, 100, 50); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + }, t_fail); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.norepeat.coord2.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.norepeat.coord2.worker.js index bd9c115..5c69536d 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.norepeat.coord2.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.norepeat.coord2.worker.js
@@ -13,34 +13,33 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/green.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - var pattern = ctx.createPattern(bitmap, 'no-repeat'); - ctx.fillStyle = pattern; - ctx.fillRect(0, 0, 50, 50); - ctx.fillStyle = '#f00'; - ctx.fillRect(50, 0, 50, 50); - ctx.fillStyle = pattern; - ctx.translate(50, 0); - ctx.fillRect(-50, 0, 100, 50); - _assertPixel(canvas, 1,1, 0,255,0,255); - _assertPixel(canvas, 98,1, 0,255,0,255); - _assertPixel(canvas, 1,48, 0,255,0,255); - _assertPixel(canvas, 98,48, 0,255,0,255); - }, t_fail); -}).then(t_pass, t_fail); - + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/green.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + var pattern = ctx.createPattern(bitmap, 'no-repeat'); + ctx.fillStyle = pattern; + ctx.fillRect(0, 0, 50, 50); + ctx.fillStyle = '#f00'; + ctx.fillRect(50, 0, 50, 50); + ctx.fillStyle = pattern; + ctx.translate(50, 0); + ctx.fillRect(-50, 0, 100, 50); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + }, t_fail); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.norepeat.coord3.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.norepeat.coord3.html index c569d87..28104ab 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.norepeat.coord3.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.norepeat.coord3.html
@@ -17,34 +17,34 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/red.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - var pattern = ctx.createPattern(bitmap, 'no-repeat'); - ctx.fillStyle = pattern; - ctx.translate(50, 25); - ctx.fillRect(-50, -25, 100, 50); - ctx.fillStyle = '#0f0'; - ctx.fillRect(0, 0, 50, 25); - _assertPixel(canvas, 1,1, 0,255,0,255); - _assertPixel(canvas, 98,1, 0,255,0,255); - _assertPixel(canvas, 1,48, 0,255,0,255); - _assertPixel(canvas, 98,48, 0,255,0,255); - }, t_fail); -}).then(t_pass, t_fail); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/red.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + var pattern = ctx.createPattern(bitmap, 'no-repeat'); + ctx.fillStyle = pattern; + ctx.translate(50, 25); + ctx.fillRect(-50, -25, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 50, 25); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + }, t_fail); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.norepeat.coord3.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.norepeat.coord3.worker.js index cf88ebab..994bcc8 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.norepeat.coord3.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.norepeat.coord3.worker.js
@@ -13,34 +13,33 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/red.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - var pattern = ctx.createPattern(bitmap, 'no-repeat'); - ctx.fillStyle = pattern; - ctx.translate(50, 25); - ctx.fillRect(-50, -25, 100, 50); - ctx.fillStyle = '#0f0'; - ctx.fillRect(0, 0, 50, 25); - _assertPixel(canvas, 1,1, 0,255,0,255); - _assertPixel(canvas, 98,1, 0,255,0,255); - _assertPixel(canvas, 1,48, 0,255,0,255); - _assertPixel(canvas, 98,48, 0,255,0,255); - }, t_fail); -}).then(t_pass, t_fail); - + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/red.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + var pattern = ctx.createPattern(bitmap, 'no-repeat'); + ctx.fillStyle = pattern; + ctx.translate(50, 25); + ctx.fillRect(-50, -25, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 50, 25); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + }, t_fail); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.norepeat.outside.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.norepeat.outside.html index 4242375..5036f8b 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.norepeat.outside.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.norepeat.outside.html
@@ -17,36 +17,36 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/red.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - var pattern = ctx.createPattern(bitmap, 'no-repeat'); - ctx.fillStyle = '#0f0'; - ctx.fillRect(0, 0, 100, 50); - ctx.fillStyle = pattern; - ctx.fillRect(0, -50, 100, 50); - ctx.fillRect(-100, 0, 100, 50); - ctx.fillRect(0, 50, 100, 50); - ctx.fillRect(100, 0, 100, 50); - _assertPixel(canvas, 1,1, 0,255,0,255); - _assertPixel(canvas, 98,1, 0,255,0,255); - _assertPixel(canvas, 1,48, 0,255,0,255); - _assertPixel(canvas, 98,48, 0,255,0,255); - }, t_fail); -}).then(t_pass, t_fail); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/red.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + var pattern = ctx.createPattern(bitmap, 'no-repeat'); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = pattern; + ctx.fillRect(0, -50, 100, 50); + ctx.fillRect(-100, 0, 100, 50); + ctx.fillRect(0, 50, 100, 50); + ctx.fillRect(100, 0, 100, 50); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + }, t_fail); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.norepeat.outside.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.norepeat.outside.worker.js index 85a6e43b..f6ccb83 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.norepeat.outside.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.norepeat.outside.worker.js
@@ -13,36 +13,35 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/red.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - var pattern = ctx.createPattern(bitmap, 'no-repeat'); - ctx.fillStyle = '#0f0'; - ctx.fillRect(0, 0, 100, 50); - ctx.fillStyle = pattern; - ctx.fillRect(0, -50, 100, 50); - ctx.fillRect(-100, 0, 100, 50); - ctx.fillRect(0, 50, 100, 50); - ctx.fillRect(100, 0, 100, 50); - _assertPixel(canvas, 1,1, 0,255,0,255); - _assertPixel(canvas, 98,1, 0,255,0,255); - _assertPixel(canvas, 1,48, 0,255,0,255); - _assertPixel(canvas, 98,48, 0,255,0,255); - }, t_fail); -}).then(t_pass, t_fail); - + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/red.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + var pattern = ctx.createPattern(bitmap, 'no-repeat'); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = pattern; + ctx.fillRect(0, -50, 100, 50); + ctx.fillRect(-100, 0, 100, 50); + ctx.fillRect(0, 50, 100, 50); + ctx.fillRect(100, 0, 100, 50); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + }, t_fail); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.orientation.canvas.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.orientation.canvas.html index ccad92e5..f730557 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.orientation.canvas.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.orientation.canvas.html
@@ -17,27 +17,27 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -var offscreenCanvas2 = new OffscreenCanvas(100, 50); -var ctx2 = offscreenCanvas2.getContext('2d'); -ctx2.fillStyle = '#f00'; -ctx2.fillRect(0, 0, 100, 25); -ctx2.fillStyle = '#0f0'; -ctx2.fillRect(0, 25, 100, 25); -var pattern = ctx.createPattern(offscreenCanvas2, 'no-repeat'); -ctx.fillStyle = pattern; -ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 25); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + var offscreenCanvas2 = new OffscreenCanvas(100, 50); + var ctx2 = offscreenCanvas2.getContext('2d'); + ctx2.fillStyle = '#f00'; + ctx2.fillRect(0, 0, 100, 25); + ctx2.fillStyle = '#0f0'; + ctx2.fillRect(0, 25, 100, 25); + var pattern = ctx.createPattern(offscreenCanvas2, 'no-repeat'); + ctx.fillStyle = pattern; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 25); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.orientation.canvas.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.orientation.canvas.worker.js index 38fa35f..7896c70 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.orientation.canvas.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.orientation.canvas.worker.js
@@ -13,27 +13,26 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -var offscreenCanvas2 = new OffscreenCanvas(100, 50); -var ctx2 = offscreenCanvas2.getContext('2d'); -ctx2.fillStyle = '#f00'; -ctx2.fillRect(0, 0, 100, 25); -ctx2.fillStyle = '#0f0'; -ctx2.fillRect(0, 25, 100, 25); -var pattern = ctx.createPattern(offscreenCanvas2, 'no-repeat'); -ctx.fillStyle = pattern; -ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 25); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 98,1, 0,255,0,255); -_assertPixel(canvas, 1,48, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + var offscreenCanvas2 = new OffscreenCanvas(100, 50); + var ctx2 = offscreenCanvas2.getContext('2d'); + ctx2.fillStyle = '#f00'; + ctx2.fillRect(0, 0, 100, 25); + ctx2.fillStyle = '#0f0'; + ctx2.fillRect(0, 25, 100, 25); + var pattern = ctx.createPattern(offscreenCanvas2, 'no-repeat'); + ctx.fillStyle = pattern; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 25); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.orientation.image.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.orientation.image.html index 377cc58..05b278a 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.orientation.image.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.orientation.image.html
@@ -17,36 +17,36 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/rrgg-256x256.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - var pattern = ctx.createPattern(bitmap, 'no-repeat'); - ctx.fillStyle = pattern; - ctx.save(); - ctx.translate(0, -103); - ctx.fillRect(0, 103, 100, 50); - ctx.restore(); - ctx.fillStyle = '#0f0'; - ctx.fillRect(0, 0, 100, 25); - _assertPixel(canvas, 1,1, 0,255,0,255); - _assertPixel(canvas, 98,1, 0,255,0,255); - _assertPixel(canvas, 1,48, 0,255,0,255); - _assertPixel(canvas, 98,48, 0,255,0,255); - }, t_fail); -}).then(t_pass, t_fail); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/rrgg-256x256.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + var pattern = ctx.createPattern(bitmap, 'no-repeat'); + ctx.fillStyle = pattern; + ctx.save(); + ctx.translate(0, -103); + ctx.fillRect(0, 103, 100, 50); + ctx.restore(); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 25); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + }, t_fail); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.orientation.image.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.orientation.image.worker.js index fccfe704..825e12a 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.orientation.image.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.orientation.image.worker.js
@@ -13,36 +13,35 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/rrgg-256x256.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - var pattern = ctx.createPattern(bitmap, 'no-repeat'); - ctx.fillStyle = pattern; - ctx.save(); - ctx.translate(0, -103); - ctx.fillRect(0, 103, 100, 50); - ctx.restore(); - ctx.fillStyle = '#0f0'; - ctx.fillRect(0, 0, 100, 25); - _assertPixel(canvas, 1,1, 0,255,0,255); - _assertPixel(canvas, 98,1, 0,255,0,255); - _assertPixel(canvas, 1,48, 0,255,0,255); - _assertPixel(canvas, 98,48, 0,255,0,255); - }, t_fail); -}).then(t_pass, t_fail); - + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/rrgg-256x256.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + var pattern = ctx.createPattern(bitmap, 'no-repeat'); + ctx.fillStyle = pattern; + ctx.save(); + ctx.translate(0, -103); + ctx.fillRect(0, 103, 100, 50); + ctx.restore(); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 25); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + }, t_fail); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeat.basic.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeat.basic.html index b5613c37..15b7ff2c 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeat.basic.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeat.basic.html
@@ -17,31 +17,31 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/green-16x16.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - var pattern = ctx.createPattern(bitmap, 'no-repeat'); - ctx.fillStyle = pattern; - ctx.fillRect(0, 0, 100, 50); - _assertPixel(canvas, 1,1, 0,255,0,255); - _assertPixel(canvas, 98,1, 0,255,0,255); - _assertPixel(canvas, 1,48, 0,255,0,255); - _assertPixel(canvas, 98,48, 0,255,0,255); - }, t_fail); -}).then(t_pass, t_fail); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/green-16x16.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + var pattern = ctx.createPattern(bitmap, 'no-repeat'); + ctx.fillStyle = pattern; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + }, t_fail); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeat.basic.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeat.basic.worker.js index 1f09d29..6bf7392 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeat.basic.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeat.basic.worker.js
@@ -13,31 +13,30 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/green-16x16.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - var pattern = ctx.createPattern(bitmap, 'no-repeat'); - ctx.fillStyle = pattern; - ctx.fillRect(0, 0, 100, 50); - _assertPixel(canvas, 1,1, 0,255,0,255); - _assertPixel(canvas, 98,1, 0,255,0,255); - _assertPixel(canvas, 1,48, 0,255,0,255); - _assertPixel(canvas, 98,48, 0,255,0,255); - }, t_fail); -}).then(t_pass, t_fail); - + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/green-16x16.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + var pattern = ctx.createPattern(bitmap, 'no-repeat'); + ctx.fillStyle = pattern; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + }, t_fail); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeat.coord1.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeat.coord1.html index a4b2bbd..22583897 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeat.coord1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeat.coord1.html
@@ -17,32 +17,32 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/rgrg-256x256.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - var pattern = ctx.createPattern(bitmap, 'no-repeat'); - ctx.fillStyle = pattern; - ctx.translate(-128, -78); - ctx.fillRect(128, 78, 100, 50); - _assertPixel(canvas, 1,1, 0,255,0,255); - _assertPixel(canvas, 98,1, 0,255,0,255); - _assertPixel(canvas, 1,48, 0,255,0,255); - _assertPixel(canvas, 98,48, 0,255,0,255); - }, t_fail); -}).then(t_pass, t_fail); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/rgrg-256x256.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + var pattern = ctx.createPattern(bitmap, 'no-repeat'); + ctx.fillStyle = pattern; + ctx.translate(-128, -78); + ctx.fillRect(128, 78, 100, 50); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + }, t_fail); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeat.coord1.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeat.coord1.worker.js index ea064ea..32d1a27 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeat.coord1.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeat.coord1.worker.js
@@ -13,32 +13,31 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/rgrg-256x256.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - var pattern = ctx.createPattern(bitmap, 'no-repeat'); - ctx.fillStyle = pattern; - ctx.translate(-128, -78); - ctx.fillRect(128, 78, 100, 50); - _assertPixel(canvas, 1,1, 0,255,0,255); - _assertPixel(canvas, 98,1, 0,255,0,255); - _assertPixel(canvas, 1,48, 0,255,0,255); - _assertPixel(canvas, 98,48, 0,255,0,255); - }, t_fail); -}).then(t_pass, t_fail); - + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/rgrg-256x256.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + var pattern = ctx.createPattern(bitmap, 'no-repeat'); + ctx.fillStyle = pattern; + ctx.translate(-128, -78); + ctx.fillRect(128, 78, 100, 50); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + }, t_fail); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeat.coord2.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeat.coord2.html index 52449506..73c31e0 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeat.coord2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeat.coord2.html
@@ -17,29 +17,29 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/grgr-256x256.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - var pattern = ctx.createPattern(bitmap, 'no-repeat'); - ctx.fillStyle = pattern; - ctx.fillRect(0, 0, 100, 50); - _assertPixel(canvas, 1,1, 0,255,0,255); - _assertPixel(canvas, 98,1, 0,255,0,255); - _assertPixel(canvas, 1,48, 0,255,0,255); - _assertPixel(canvas, 98,48, 0,255,0,255); - }, t_fail); -}).then(t_pass, t_fail); + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/grgr-256x256.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + var pattern = ctx.createPattern(bitmap, 'no-repeat'); + ctx.fillStyle = pattern; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + }, t_fail); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeat.coord2.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeat.coord2.worker.js index 29c6f8f..a94f8206 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeat.coord2.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeat.coord2.worker.js
@@ -13,29 +13,28 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/grgr-256x256.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - var pattern = ctx.createPattern(bitmap, 'no-repeat'); - ctx.fillStyle = pattern; - ctx.fillRect(0, 0, 100, 50); - _assertPixel(canvas, 1,1, 0,255,0,255); - _assertPixel(canvas, 98,1, 0,255,0,255); - _assertPixel(canvas, 1,48, 0,255,0,255); - _assertPixel(canvas, 98,48, 0,255,0,255); - }, t_fail); -}).then(t_pass, t_fail); - + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/grgr-256x256.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + var pattern = ctx.createPattern(bitmap, 'no-repeat'); + ctx.fillStyle = pattern; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + }, t_fail); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeat.coord3.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeat.coord3.html index d01acb8..c31528d 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeat.coord3.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeat.coord3.html
@@ -17,31 +17,31 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/rgrg-256x256.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - var pattern = ctx.createPattern(bitmap, 'no-repeat'); - ctx.fillStyle = pattern; - ctx.fillRect(0, 0, 100, 50); - ctx.translate(-128, -78); - ctx.fillRect(128, 78, 100, 50); - _assertPixel(canvas, 1,1, 0,255,0,255); - _assertPixel(canvas, 98,1, 0,255,0,255); - _assertPixel(canvas, 1,48, 0,255,0,255); - _assertPixel(canvas, 98,48, 0,255,0,255); - }, t_fail); -}).then(t_pass, t_fail); + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/rgrg-256x256.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + var pattern = ctx.createPattern(bitmap, 'no-repeat'); + ctx.fillStyle = pattern; + ctx.fillRect(0, 0, 100, 50); + ctx.translate(-128, -78); + ctx.fillRect(128, 78, 100, 50); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + }, t_fail); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeat.coord3.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeat.coord3.worker.js index 91c14f9..ab7059b7 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeat.coord3.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeat.coord3.worker.js
@@ -13,31 +13,30 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/rgrg-256x256.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - var pattern = ctx.createPattern(bitmap, 'no-repeat'); - ctx.fillStyle = pattern; - ctx.fillRect(0, 0, 100, 50); - ctx.translate(-128, -78); - ctx.fillRect(128, 78, 100, 50); - _assertPixel(canvas, 1,1, 0,255,0,255); - _assertPixel(canvas, 98,1, 0,255,0,255); - _assertPixel(canvas, 1,48, 0,255,0,255); - _assertPixel(canvas, 98,48, 0,255,0,255); - }, t_fail); -}).then(t_pass, t_fail); - + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/rgrg-256x256.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + var pattern = ctx.createPattern(bitmap, 'no-repeat'); + ctx.fillStyle = pattern; + ctx.fillRect(0, 0, 100, 50); + ctx.translate(-128, -78); + ctx.fillRect(128, 78, 100, 50); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + }, t_fail); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeat.outside.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeat.outside.html index 2c91f1d7..1230be9 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeat.outside.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeat.outside.html
@@ -17,32 +17,32 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/green-16x16.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - var pattern = ctx.createPattern(bitmap, 'no-repeat'); - ctx.fillStyle = pattern; - ctx.translate(50, 25); - ctx.fillRect(-50, -25, 100, 50); - _assertPixel(canvas, 1,1, 0,255,0,255); - _assertPixel(canvas, 98,1, 0,255,0,255); - _assertPixel(canvas, 1,48, 0,255,0,255); - _assertPixel(canvas, 98,48, 0,255,0,255); - }, t_fail); -}).then(t_pass, t_fail); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/green-16x16.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + var pattern = ctx.createPattern(bitmap, 'no-repeat'); + ctx.fillStyle = pattern; + ctx.translate(50, 25); + ctx.fillRect(-50, -25, 100, 50); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + }, t_fail); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeat.outside.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeat.outside.worker.js index 147eadf8..1874aa9a 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeat.outside.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeat.outside.worker.js
@@ -13,32 +13,31 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/green-16x16.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - var pattern = ctx.createPattern(bitmap, 'no-repeat'); - ctx.fillStyle = pattern; - ctx.translate(50, 25); - ctx.fillRect(-50, -25, 100, 50); - _assertPixel(canvas, 1,1, 0,255,0,255); - _assertPixel(canvas, 98,1, 0,255,0,255); - _assertPixel(canvas, 1,48, 0,255,0,255); - _assertPixel(canvas, 98,48, 0,255,0,255); - }, t_fail); -}).then(t_pass, t_fail); - + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/green-16x16.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + var pattern = ctx.createPattern(bitmap, 'no-repeat'); + ctx.fillStyle = pattern; + ctx.translate(50, 25); + ctx.fillRect(-50, -25, 100, 50); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + }, t_fail); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeatx.basic.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeatx.basic.html index ed7cee29..3e7b8b2b 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeatx.basic.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeatx.basic.html
@@ -17,33 +17,33 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 16); -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/green-16x16.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - var pattern = ctx.createPattern(bitmap, 'repeat-x'); - ctx.fillStyle = pattern; - ctx.fillRect(0, 0, 100, 50); - _assertPixel(canvas, 1,1, 0,255,0,255); - _assertPixel(canvas, 98,1, 0,255,0,255); - _assertPixel(canvas, 1,48, 0,255,0,255); - _assertPixel(canvas, 98,48, 0,255,0,255); - }, t_fail); -}).then(t_pass, t_fail); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 16); + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/green-16x16.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + var pattern = ctx.createPattern(bitmap, 'repeat-x'); + ctx.fillStyle = pattern; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + }, t_fail); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeatx.basic.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeatx.basic.worker.js index d7efcfa..49d343cf 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeatx.basic.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeatx.basic.worker.js
@@ -13,33 +13,32 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 16); -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/green-16x16.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - var pattern = ctx.createPattern(bitmap, 'repeat-x'); - ctx.fillStyle = pattern; - ctx.fillRect(0, 0, 100, 50); - _assertPixel(canvas, 1,1, 0,255,0,255); - _assertPixel(canvas, 98,1, 0,255,0,255); - _assertPixel(canvas, 1,48, 0,255,0,255); - _assertPixel(canvas, 98,48, 0,255,0,255); - }, t_fail); -}).then(t_pass, t_fail); - + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 16); + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/green-16x16.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + var pattern = ctx.createPattern(bitmap, 'repeat-x'); + ctx.fillStyle = pattern; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + }, t_fail); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeatx.coord1.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeatx.coord1.html index 342ce06a..9405b3a 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeatx.coord1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeatx.coord1.html
@@ -17,36 +17,36 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/red-16x16.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - var pattern = ctx.createPattern(bitmap, 'repeat-x'); - ctx.fillStyle = pattern; - ctx.translate(0, 16); - ctx.fillRect(0, -16, 100, 50); - ctx.fillStyle = '#0f0'; - ctx.fillRect(0, 0, 100, 16); - _assertPixel(canvas, 1,1, 0,255,0,255); - _assertPixel(canvas, 98,1, 0,255,0,255); - _assertPixel(canvas, 1,25, 0,255,0,255); - _assertPixel(canvas, 98,25, 0,255,0,255); - _assertPixel(canvas, 1,48, 0,255,0,255); - _assertPixel(canvas, 98,48, 0,255,0,255); - }, t_fail); -}).then(t_pass, t_fail); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/red-16x16.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + var pattern = ctx.createPattern(bitmap, 'repeat-x'); + ctx.fillStyle = pattern; + ctx.translate(0, 16); + ctx.fillRect(0, -16, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 16); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,25, 0,255,0,255); + _assertPixel(canvas, 98,25, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + }, t_fail); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeatx.coord1.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeatx.coord1.worker.js index 351092b..69c54c4 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeatx.coord1.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeatx.coord1.worker.js
@@ -13,36 +13,35 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/red-16x16.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - var pattern = ctx.createPattern(bitmap, 'repeat-x'); - ctx.fillStyle = pattern; - ctx.translate(0, 16); - ctx.fillRect(0, -16, 100, 50); - ctx.fillStyle = '#0f0'; - ctx.fillRect(0, 0, 100, 16); - _assertPixel(canvas, 1,1, 0,255,0,255); - _assertPixel(canvas, 98,1, 0,255,0,255); - _assertPixel(canvas, 1,25, 0,255,0,255); - _assertPixel(canvas, 98,25, 0,255,0,255); - _assertPixel(canvas, 1,48, 0,255,0,255); - _assertPixel(canvas, 98,48, 0,255,0,255); - }, t_fail); -}).then(t_pass, t_fail); - + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/red-16x16.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + var pattern = ctx.createPattern(bitmap, 'repeat-x'); + ctx.fillStyle = pattern; + ctx.translate(0, 16); + ctx.fillRect(0, -16, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 16); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,25, 0,255,0,255); + _assertPixel(canvas, 98,25, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + }, t_fail); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeatx.outside.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeatx.outside.html index ad4a4a24..c81e3ce1 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeatx.outside.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeatx.outside.html
@@ -17,33 +17,33 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/red-16x16.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - var pattern = ctx.createPattern(bitmap, 'repeat-x'); - ctx.fillStyle = pattern; - ctx.fillRect(0, 0, 100, 50); - ctx.fillStyle = '#0f0'; - ctx.fillRect(0, 0, 100, 16); - _assertPixel(canvas, 1,1, 0,255,0,255); - _assertPixel(canvas, 98,1, 0,255,0,255); - _assertPixel(canvas, 1,48, 0,255,0,255); - _assertPixel(canvas, 98,48, 0,255,0,255); - }, t_fail); -}).then(t_pass, t_fail); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/red-16x16.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + var pattern = ctx.createPattern(bitmap, 'repeat-x'); + ctx.fillStyle = pattern; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 16); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + }, t_fail); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeatx.outside.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeatx.outside.worker.js index 0e031109..c4194a3 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeatx.outside.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeatx.outside.worker.js
@@ -13,33 +13,32 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/red-16x16.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - var pattern = ctx.createPattern(bitmap, 'repeat-x'); - ctx.fillStyle = pattern; - ctx.fillRect(0, 0, 100, 50); - ctx.fillStyle = '#0f0'; - ctx.fillRect(0, 0, 100, 16); - _assertPixel(canvas, 1,1, 0,255,0,255); - _assertPixel(canvas, 98,1, 0,255,0,255); - _assertPixel(canvas, 1,48, 0,255,0,255); - _assertPixel(canvas, 98,48, 0,255,0,255); - }, t_fail); -}).then(t_pass, t_fail); - + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/red-16x16.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + var pattern = ctx.createPattern(bitmap, 'repeat-x'); + ctx.fillStyle = pattern; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 16); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + }, t_fail); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeaty.basic.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeaty.basic.html index 60699024..cef32b3 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeaty.basic.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeaty.basic.html
@@ -17,33 +17,33 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 16, 50); -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/green-16x16.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - var pattern = ctx.createPattern(bitmap, 'repeat-y'); - ctx.fillStyle = pattern; - ctx.fillRect(0, 0, 100, 50); - _assertPixel(canvas, 1,1, 0,255,0,255); - _assertPixel(canvas, 98,1, 0,255,0,255); - _assertPixel(canvas, 1,48, 0,255,0,255); - _assertPixel(canvas, 98,48, 0,255,0,255); - }, t_fail); -}).then(t_pass, t_fail); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 16, 50); + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/green-16x16.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + var pattern = ctx.createPattern(bitmap, 'repeat-y'); + ctx.fillStyle = pattern; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + }, t_fail); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeaty.basic.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeaty.basic.worker.js index 09e9b02..b460e24 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeaty.basic.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeaty.basic.worker.js
@@ -13,33 +13,32 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 16, 50); -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/green-16x16.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - var pattern = ctx.createPattern(bitmap, 'repeat-y'); - ctx.fillStyle = pattern; - ctx.fillRect(0, 0, 100, 50); - _assertPixel(canvas, 1,1, 0,255,0,255); - _assertPixel(canvas, 98,1, 0,255,0,255); - _assertPixel(canvas, 1,48, 0,255,0,255); - _assertPixel(canvas, 98,48, 0,255,0,255); - }, t_fail); -}).then(t_pass, t_fail); - + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 16, 50); + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/green-16x16.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + var pattern = ctx.createPattern(bitmap, 'repeat-y'); + ctx.fillStyle = pattern; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + }, t_fail); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeaty.coord1.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeaty.coord1.html index fd1cca2e9..490b2a19 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeaty.coord1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeaty.coord1.html
@@ -17,36 +17,36 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/red-16x16.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - var pattern = ctx.createPattern(bitmap, 'repeat-y'); - ctx.fillStyle = pattern; - ctx.translate(48, 0); - ctx.fillRect(-48, 0, 100, 50); - ctx.fillStyle = '#0f0'; - ctx.fillRect(0, 0, 16, 50); - _assertPixel(canvas, 1,1, 0,255,0,255); - _assertPixel(canvas, 50,1, 0,255,0,255); - _assertPixel(canvas, 98,1, 0,255,0,255); - _assertPixel(canvas, 1,48, 0,255,0,255); - _assertPixel(canvas, 50,48, 0,255,0,255); - _assertPixel(canvas, 98,48, 0,255,0,255); - }, t_fail); -}).then(t_pass, t_fail); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/red-16x16.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + var pattern = ctx.createPattern(bitmap, 'repeat-y'); + ctx.fillStyle = pattern; + ctx.translate(48, 0); + ctx.fillRect(-48, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 16, 50); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 50,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 50,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + }, t_fail); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeaty.coord1.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeaty.coord1.worker.js index 1701d3cc..05fde11 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeaty.coord1.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeaty.coord1.worker.js
@@ -13,36 +13,35 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/red-16x16.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - var pattern = ctx.createPattern(bitmap, 'repeat-y'); - ctx.fillStyle = pattern; - ctx.translate(48, 0); - ctx.fillRect(-48, 0, 100, 50); - ctx.fillStyle = '#0f0'; - ctx.fillRect(0, 0, 16, 50); - _assertPixel(canvas, 1,1, 0,255,0,255); - _assertPixel(canvas, 50,1, 0,255,0,255); - _assertPixel(canvas, 98,1, 0,255,0,255); - _assertPixel(canvas, 1,48, 0,255,0,255); - _assertPixel(canvas, 50,48, 0,255,0,255); - _assertPixel(canvas, 98,48, 0,255,0,255); - }, t_fail); -}).then(t_pass, t_fail); - + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/red-16x16.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + var pattern = ctx.createPattern(bitmap, 'repeat-y'); + ctx.fillStyle = pattern; + ctx.translate(48, 0); + ctx.fillRect(-48, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 16, 50); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 50,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 50,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + }, t_fail); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeaty.outside.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeaty.outside.html index b7fbd9eb..9542806 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeaty.outside.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeaty.outside.html
@@ -17,33 +17,33 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/red-16x16.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - var pattern = ctx.createPattern(bitmap, 'repeat-y'); - ctx.fillStyle = pattern; - ctx.fillRect(0, 0, 100, 50); - ctx.fillStyle = '#0f0'; - ctx.fillRect(0, 0, 16, 50); - _assertPixel(canvas, 1,1, 0,255,0,255); - _assertPixel(canvas, 98,1, 0,255,0,255); - _assertPixel(canvas, 1,48, 0,255,0,255); - _assertPixel(canvas, 98,48, 0,255,0,255); - }, t_fail); -}).then(t_pass, t_fail); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/red-16x16.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + var pattern = ctx.createPattern(bitmap, 'repeat-y'); + ctx.fillStyle = pattern; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 16, 50); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + }, t_fail); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeaty.outside.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeaty.outside.worker.js index 7242c8ff..c421fbc0 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeaty.outside.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeaty.outside.worker.js
@@ -13,33 +13,32 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/red-16x16.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - var pattern = ctx.createPattern(bitmap, 'repeat-y'); - ctx.fillStyle = pattern; - ctx.fillRect(0, 0, 100, 50); - ctx.fillStyle = '#0f0'; - ctx.fillRect(0, 0, 16, 50); - _assertPixel(canvas, 1,1, 0,255,0,255); - _assertPixel(canvas, 98,1, 0,255,0,255); - _assertPixel(canvas, 1,48, 0,255,0,255); - _assertPixel(canvas, 98,48, 0,255,0,255); - }, t_fail); -}).then(t_pass, t_fail); - + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/red-16x16.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + var pattern = ctx.createPattern(bitmap, 'repeat-y'); + ctx.fillStyle = pattern; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 16, 50); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + }, t_fail); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.repeat.case.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.repeat.case.html index 5251f93..377ae3e 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.repeat.case.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.repeat.case.html
@@ -17,11 +17,11 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -assert_throws_dom("SYNTAX_ERR", function() { ctx.createPattern(canvas, "Repeat"); }); -t.done(); + assert_throws_dom("SYNTAX_ERR", function() { ctx.createPattern(canvas, "Repeat"); }); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.repeat.case.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.repeat.case.worker.js index 6a7dd8d..8073f47 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.repeat.case.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.repeat.case.worker.js
@@ -13,11 +13,10 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -assert_throws_dom("SYNTAX_ERR", function() { ctx.createPattern(canvas, "Repeat"); }); -t.done(); - + assert_throws_dom("SYNTAX_ERR", function() { ctx.createPattern(canvas, "Repeat"); }); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.repeat.empty.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.repeat.empty.html index 76e54e9..95baf29 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.repeat.empty.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.repeat.empty.html
@@ -17,31 +17,31 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/green-1x1.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - var pattern = ctx.createPattern(bitmap, ""); - ctx.fillStyle = pattern; - ctx.fillRect(0, 0, 200, 50); - _assertPixel(canvas, 1,1, 0,255,0,255); - _assertPixel(canvas, 98,1, 0,255,0,255); - _assertPixel(canvas, 1,48, 0,255,0,255); - _assertPixel(canvas, 98,48, 0,255,0,255); - }, t_fail); -}).then(t_pass, t_fail); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/green-1x1.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + var pattern = ctx.createPattern(bitmap, ""); + ctx.fillStyle = pattern; + ctx.fillRect(0, 0, 200, 50); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + }, t_fail); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.repeat.empty.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.repeat.empty.worker.js index e3048881..5187ea4 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.repeat.empty.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.repeat.empty.worker.js
@@ -13,31 +13,30 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/green-1x1.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - var pattern = ctx.createPattern(bitmap, ""); - ctx.fillStyle = pattern; - ctx.fillRect(0, 0, 200, 50); - _assertPixel(canvas, 1,1, 0,255,0,255); - _assertPixel(canvas, 98,1, 0,255,0,255); - _assertPixel(canvas, 1,48, 0,255,0,255); - _assertPixel(canvas, 98,48, 0,255,0,255); - }, t_fail); -}).then(t_pass, t_fail); - + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/green-1x1.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + var pattern = ctx.createPattern(bitmap, ""); + ctx.fillStyle = pattern; + ctx.fillRect(0, 0, 200, 50); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 98,1, 0,255,0,255); + _assertPixel(canvas, 1,48, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + }, t_fail); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.repeat.null.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.repeat.null.html index 0e97c7a..d79551a 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.repeat.null.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.repeat.null.html
@@ -17,11 +17,11 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -_assert(ctx.createPattern(canvas, null) != null, "ctx.createPattern(canvas, null) != null"); -t.done(); + _assert(ctx.createPattern(canvas, null) != null, "ctx.createPattern(canvas, null) != null"); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.repeat.null.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.repeat.null.worker.js index 57353f3..6ab4da9 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.repeat.null.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.repeat.null.worker.js
@@ -13,11 +13,10 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -_assert(ctx.createPattern(canvas, null) != null, "ctx.createPattern(canvas, null) != null"); -t.done(); - + _assert(ctx.createPattern(canvas, null) != null, "ctx.createPattern(canvas, null) != null"); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.repeat.nullsuffix.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.repeat.nullsuffix.html index d5166d7..2f4a35de 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.repeat.nullsuffix.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.repeat.nullsuffix.html
@@ -17,11 +17,11 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -assert_throws_dom("SYNTAX_ERR", function() { ctx.createPattern(canvas, "repeat\0"); }); -t.done(); + assert_throws_dom("SYNTAX_ERR", function() { ctx.createPattern(canvas, "repeat\0"); }); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.repeat.nullsuffix.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.repeat.nullsuffix.worker.js index baafd4b..83e7c62 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.repeat.nullsuffix.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.repeat.nullsuffix.worker.js
@@ -13,11 +13,10 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -assert_throws_dom("SYNTAX_ERR", function() { ctx.createPattern(canvas, "repeat\0"); }); -t.done(); - + assert_throws_dom("SYNTAX_ERR", function() { ctx.createPattern(canvas, "repeat\0"); }); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.repeat.undefined.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.repeat.undefined.html index 731ef86..8ddd231 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.repeat.undefined.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.repeat.undefined.html
@@ -17,11 +17,11 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -assert_throws_dom("SYNTAX_ERR", function() { ctx.createPattern(canvas, undefined); }); -t.done(); + assert_throws_dom("SYNTAX_ERR", function() { ctx.createPattern(canvas, undefined); }); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.repeat.undefined.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.repeat.undefined.worker.js index 1474ac4..f4f25ae 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.repeat.undefined.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.repeat.undefined.worker.js
@@ -13,11 +13,10 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -assert_throws_dom("SYNTAX_ERR", function() { ctx.createPattern(canvas, undefined); }); -t.done(); - + assert_throws_dom("SYNTAX_ERR", function() { ctx.createPattern(canvas, undefined); }); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.repeat.unrecognised.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.repeat.unrecognised.html index 793ed67a..3a37b46a 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.repeat.unrecognised.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.repeat.unrecognised.html
@@ -17,11 +17,11 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -assert_throws_dom("SYNTAX_ERR", function() { ctx.createPattern(canvas, "invalid"); }); -t.done(); + assert_throws_dom("SYNTAX_ERR", function() { ctx.createPattern(canvas, "invalid"); }); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.repeat.unrecognised.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.repeat.unrecognised.worker.js index 076cba5..3114dde2 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.repeat.unrecognised.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.repeat.unrecognised.worker.js
@@ -13,11 +13,10 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -assert_throws_dom("SYNTAX_ERR", function() { ctx.createPattern(canvas, "invalid"); }); -t.done(); - + assert_throws_dom("SYNTAX_ERR", function() { ctx.createPattern(canvas, "invalid"); }); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.repeat.unrecognisednull.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.repeat.unrecognisednull.html index 59a0be42..58fb005 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.repeat.unrecognisednull.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.repeat.unrecognisednull.html
@@ -17,11 +17,11 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -assert_throws_dom("SYNTAX_ERR", function() { ctx.createPattern(canvas, "null"); }); -t.done(); + assert_throws_dom("SYNTAX_ERR", function() { ctx.createPattern(canvas, "null"); }); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.repeat.unrecognisednull.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.repeat.unrecognisednull.worker.js index 0adfe9bf..c8d1851 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.repeat.unrecognisednull.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.repeat.unrecognisednull.worker.js
@@ -13,11 +13,10 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -assert_throws_dom("SYNTAX_ERR", function() { ctx.createPattern(canvas, "null"); }); -t.done(); - + assert_throws_dom("SYNTAX_ERR", function() { ctx.createPattern(canvas, "null"); }); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.strokeStyle.default.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.strokeStyle.default.html index 70524cb6d..cd7e424 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.strokeStyle.default.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.strokeStyle.default.html
@@ -17,11 +17,11 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -_assertSame(ctx.strokeStyle, '#000000', "ctx.strokeStyle", "'#000000'"); -t.done(); + _assertSame(ctx.strokeStyle, '#000000', "ctx.strokeStyle", "'#000000'"); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.strokeStyle.default.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.strokeStyle.default.worker.js index 0d72f352..9e0ac8b 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.strokeStyle.default.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.strokeStyle.default.worker.js
@@ -13,11 +13,10 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -_assertSame(ctx.strokeStyle, '#000000', "ctx.strokeStyle", "'#000000'"); -t.done(); - + _assertSame(ctx.strokeStyle, '#000000', "ctx.strokeStyle", "'#000000'"); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.alpha.1.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.alpha.1.html index cf887b62..603d5e5 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.alpha.1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.alpha.1.html
@@ -17,16 +17,16 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.shadowColor = 'rgba(255, 0, 0, 0.01)'; -ctx.shadowOffsetY = 50; -ctx.fillRect(0, -50, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,255,0,255, 4); -t.done(); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.shadowColor = 'rgba(255, 0, 0, 0.01)'; + ctx.shadowOffsetY = 50; + ctx.fillRect(0, -50, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,255,0,255, 4); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.alpha.1.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.alpha.1.worker.js index 7bcf744..0bc92ac4 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.alpha.1.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.alpha.1.worker.js
@@ -13,16 +13,15 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.shadowColor = 'rgba(255, 0, 0, 0.01)'; -ctx.shadowOffsetY = 50; -ctx.fillRect(0, -50, 100, 50); -_assertPixelApprox(canvas, 50,25, 0,255,0,255, 4); -t.done(); - + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.shadowColor = 'rgba(255, 0, 0, 0.01)'; + ctx.shadowOffsetY = 50; + ctx.fillRect(0, -50, 100, 50); + _assertPixelApprox(canvas, 50,25, 0,255,0,255, 4); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.alpha.2.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.alpha.2.html index cb03866..254d214 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.alpha.2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.alpha.2.html
@@ -17,16 +17,16 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.shadowColor = 'rgba(0, 0, 255, 0.5)'; -ctx.shadowOffsetY = 50; -ctx.fillRect(0, -50, 100, 50); -_assertPixelApprox(canvas, 50,25, 127,0,127,255, 2); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.shadowColor = 'rgba(0, 0, 255, 0.5)'; + ctx.shadowOffsetY = 50; + ctx.fillRect(0, -50, 100, 50); + _assertPixelApprox(canvas, 50,25, 127,0,127,255, 2); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.alpha.2.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.alpha.2.worker.js index 8f4b981..ff543b3c 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.alpha.2.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.alpha.2.worker.js
@@ -13,16 +13,15 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.shadowColor = 'rgba(0, 0, 255, 0.5)'; -ctx.shadowOffsetY = 50; -ctx.fillRect(0, -50, 100, 50); -_assertPixelApprox(canvas, 50,25, 127,0,127,255, 2); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.shadowColor = 'rgba(0, 0, 255, 0.5)'; + ctx.shadowOffsetY = 50; + ctx.fillRect(0, -50, 100, 50); + _assertPixelApprox(canvas, 50,25, 127,0,127,255, 2); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.alpha.3.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.alpha.3.html index efc9fca9..2c50c0d 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.alpha.3.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.alpha.3.html
@@ -17,18 +17,18 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = '#f00'; // (work around broken Firefox globalAlpha caching) -ctx.shadowColor = '#00f'; -ctx.shadowOffsetY = 50; -ctx.globalAlpha = 0.5; -ctx.fillRect(0, -50, 100, 50); -_assertPixelApprox(canvas, 50,25, 127,0,127,255, 2); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#f00'; // (work around broken Firefox globalAlpha caching) + ctx.shadowColor = '#00f'; + ctx.shadowOffsetY = 50; + ctx.globalAlpha = 0.5; + ctx.fillRect(0, -50, 100, 50); + _assertPixelApprox(canvas, 50,25, 127,0,127,255, 2); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.alpha.3.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.alpha.3.worker.js index ddaae24..d8bc071c 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.alpha.3.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.alpha.3.worker.js
@@ -13,18 +13,17 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = '#f00'; // (work around broken Firefox globalAlpha caching) -ctx.shadowColor = '#00f'; -ctx.shadowOffsetY = 50; -ctx.globalAlpha = 0.5; -ctx.fillRect(0, -50, 100, 50); -_assertPixelApprox(canvas, 50,25, 127,0,127,255, 2); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#f00'; // (work around broken Firefox globalAlpha caching) + ctx.shadowColor = '#00f'; + ctx.shadowOffsetY = 50; + ctx.globalAlpha = 0.5; + ctx.fillRect(0, -50, 100, 50); + _assertPixelApprox(canvas, 50,25, 127,0,127,255, 2); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.alpha.4.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.alpha.4.html index 295b612..d86ee4c4b 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.alpha.4.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.alpha.4.html
@@ -17,18 +17,18 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = '#f00'; // (work around broken Firefox globalAlpha caching) -ctx.shadowColor = 'rgba(0, 0, 255, 0.707)'; -ctx.shadowOffsetY = 50; -ctx.globalAlpha = 0.707; -ctx.fillRect(0, -50, 100, 50); -_assertPixelApprox(canvas, 50,25, 127,0,127,255, 2); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#f00'; // (work around broken Firefox globalAlpha caching) + ctx.shadowColor = 'rgba(0, 0, 255, 0.707)'; + ctx.shadowOffsetY = 50; + ctx.globalAlpha = 0.707; + ctx.fillRect(0, -50, 100, 50); + _assertPixelApprox(canvas, 50,25, 127,0,127,255, 2); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.alpha.4.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.alpha.4.worker.js index 16defd9..4fdb8ca7 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.alpha.4.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.alpha.4.worker.js
@@ -13,18 +13,17 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = '#f00'; // (work around broken Firefox globalAlpha caching) -ctx.shadowColor = 'rgba(0, 0, 255, 0.707)'; -ctx.shadowOffsetY = 50; -ctx.globalAlpha = 0.707; -ctx.fillRect(0, -50, 100, 50); -_assertPixelApprox(canvas, 50,25, 127,0,127,255, 2); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#f00'; // (work around broken Firefox globalAlpha caching) + ctx.shadowColor = 'rgba(0, 0, 255, 0.707)'; + ctx.shadowOffsetY = 50; + ctx.globalAlpha = 0.707; + ctx.fillRect(0, -50, 100, 50); + _assertPixelApprox(canvas, 50,25, 127,0,127,255, 2); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.alpha.5.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.alpha.5.html index 3b1089d7..4c1a9b0 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.alpha.5.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.alpha.5.html
@@ -17,17 +17,17 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = 'rgba(64, 0, 0, 0.5)'; -ctx.shadowColor = '#00f'; -ctx.shadowOffsetY = 50; -ctx.fillRect(0, -50, 100, 50); -_assertPixelApprox(canvas, 50,25, 127,0,127,255, 2); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = 'rgba(64, 0, 0, 0.5)'; + ctx.shadowColor = '#00f'; + ctx.shadowOffsetY = 50; + ctx.fillRect(0, -50, 100, 50); + _assertPixelApprox(canvas, 50,25, 127,0,127,255, 2); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.alpha.5.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.alpha.5.worker.js index 5437c65..be4b78d 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.alpha.5.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.alpha.5.worker.js
@@ -13,17 +13,16 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = 'rgba(64, 0, 0, 0.5)'; -ctx.shadowColor = '#00f'; -ctx.shadowOffsetY = 50; -ctx.fillRect(0, -50, 100, 50); -_assertPixelApprox(canvas, 50,25, 127,0,127,255, 2); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = 'rgba(64, 0, 0, 0.5)'; + ctx.shadowColor = '#00f'; + ctx.shadowOffsetY = 50; + ctx.fillRect(0, -50, 100, 50); + _assertPixelApprox(canvas, 50,25, 127,0,127,255, 2); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.attributes.shadowBlur.initial.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.attributes.shadowBlur.initial.html index e6c4c2fd..2122588 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.attributes.shadowBlur.initial.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.attributes.shadowBlur.initial.html
@@ -17,11 +17,11 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -_assertSame(ctx.shadowBlur, 0, "ctx.shadowBlur", "0"); -t.done(); + _assertSame(ctx.shadowBlur, 0, "ctx.shadowBlur", "0"); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.attributes.shadowBlur.initial.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.attributes.shadowBlur.initial.worker.js index 9cf55e7..7643f0e 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.attributes.shadowBlur.initial.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.attributes.shadowBlur.initial.worker.js
@@ -13,11 +13,10 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -_assertSame(ctx.shadowBlur, 0, "ctx.shadowBlur", "0"); -t.done(); - + _assertSame(ctx.shadowBlur, 0, "ctx.shadowBlur", "0"); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.attributes.shadowBlur.invalid.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.attributes.shadowBlur.invalid.html index a506da4..8f199766 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.attributes.shadowBlur.invalid.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.attributes.shadowBlur.invalid.html
@@ -17,22 +17,22 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.shadowBlur = 1; -ctx.shadowBlur = -2; -_assertSame(ctx.shadowBlur, 1, "ctx.shadowBlur", "1"); -ctx.shadowBlur = 1; -ctx.shadowBlur = Infinity; -_assertSame(ctx.shadowBlur, 1, "ctx.shadowBlur", "1"); -ctx.shadowBlur = 1; -ctx.shadowBlur = -Infinity; -_assertSame(ctx.shadowBlur, 1, "ctx.shadowBlur", "1"); -ctx.shadowBlur = 1; -ctx.shadowBlur = NaN; -_assertSame(ctx.shadowBlur, 1, "ctx.shadowBlur", "1"); -t.done(); + ctx.shadowBlur = 1; + ctx.shadowBlur = -2; + _assertSame(ctx.shadowBlur, 1, "ctx.shadowBlur", "1"); + ctx.shadowBlur = 1; + ctx.shadowBlur = Infinity; + _assertSame(ctx.shadowBlur, 1, "ctx.shadowBlur", "1"); + ctx.shadowBlur = 1; + ctx.shadowBlur = -Infinity; + _assertSame(ctx.shadowBlur, 1, "ctx.shadowBlur", "1"); + ctx.shadowBlur = 1; + ctx.shadowBlur = NaN; + _assertSame(ctx.shadowBlur, 1, "ctx.shadowBlur", "1"); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.attributes.shadowBlur.invalid.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.attributes.shadowBlur.invalid.worker.js index 1f79c36..303b43e 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.attributes.shadowBlur.invalid.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.attributes.shadowBlur.invalid.worker.js
@@ -13,22 +13,21 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.shadowBlur = 1; -ctx.shadowBlur = -2; -_assertSame(ctx.shadowBlur, 1, "ctx.shadowBlur", "1"); -ctx.shadowBlur = 1; -ctx.shadowBlur = Infinity; -_assertSame(ctx.shadowBlur, 1, "ctx.shadowBlur", "1"); -ctx.shadowBlur = 1; -ctx.shadowBlur = -Infinity; -_assertSame(ctx.shadowBlur, 1, "ctx.shadowBlur", "1"); -ctx.shadowBlur = 1; -ctx.shadowBlur = NaN; -_assertSame(ctx.shadowBlur, 1, "ctx.shadowBlur", "1"); -t.done(); - + ctx.shadowBlur = 1; + ctx.shadowBlur = -2; + _assertSame(ctx.shadowBlur, 1, "ctx.shadowBlur", "1"); + ctx.shadowBlur = 1; + ctx.shadowBlur = Infinity; + _assertSame(ctx.shadowBlur, 1, "ctx.shadowBlur", "1"); + ctx.shadowBlur = 1; + ctx.shadowBlur = -Infinity; + _assertSame(ctx.shadowBlur, 1, "ctx.shadowBlur", "1"); + ctx.shadowBlur = 1; + ctx.shadowBlur = NaN; + _assertSame(ctx.shadowBlur, 1, "ctx.shadowBlur", "1"); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.attributes.shadowBlur.valid.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.attributes.shadowBlur.valid.html index b69b9c4..299826a 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.attributes.shadowBlur.valid.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.attributes.shadowBlur.valid.html
@@ -17,18 +17,18 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.shadowBlur = 1; -_assertSame(ctx.shadowBlur, 1, "ctx.shadowBlur", "1"); -ctx.shadowBlur = 0.5; -_assertSame(ctx.shadowBlur, 0.5, "ctx.shadowBlur", "0.5"); -ctx.shadowBlur = 1e6; -_assertSame(ctx.shadowBlur, 1e6, "ctx.shadowBlur", "1e6"); -ctx.shadowBlur = 0; -_assertSame(ctx.shadowBlur, 0, "ctx.shadowBlur", "0"); -t.done(); + ctx.shadowBlur = 1; + _assertSame(ctx.shadowBlur, 1, "ctx.shadowBlur", "1"); + ctx.shadowBlur = 0.5; + _assertSame(ctx.shadowBlur, 0.5, "ctx.shadowBlur", "0.5"); + ctx.shadowBlur = 1e6; + _assertSame(ctx.shadowBlur, 1e6, "ctx.shadowBlur", "1e6"); + ctx.shadowBlur = 0; + _assertSame(ctx.shadowBlur, 0, "ctx.shadowBlur", "0"); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.attributes.shadowBlur.valid.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.attributes.shadowBlur.valid.worker.js index b41fa249..c41588b 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.attributes.shadowBlur.valid.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.attributes.shadowBlur.valid.worker.js
@@ -13,18 +13,17 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.shadowBlur = 1; -_assertSame(ctx.shadowBlur, 1, "ctx.shadowBlur", "1"); -ctx.shadowBlur = 0.5; -_assertSame(ctx.shadowBlur, 0.5, "ctx.shadowBlur", "0.5"); -ctx.shadowBlur = 1e6; -_assertSame(ctx.shadowBlur, 1e6, "ctx.shadowBlur", "1e6"); -ctx.shadowBlur = 0; -_assertSame(ctx.shadowBlur, 0, "ctx.shadowBlur", "0"); -t.done(); - + ctx.shadowBlur = 1; + _assertSame(ctx.shadowBlur, 1, "ctx.shadowBlur", "1"); + ctx.shadowBlur = 0.5; + _assertSame(ctx.shadowBlur, 0.5, "ctx.shadowBlur", "0.5"); + ctx.shadowBlur = 1e6; + _assertSame(ctx.shadowBlur, 1e6, "ctx.shadowBlur", "1e6"); + ctx.shadowBlur = 0; + _assertSame(ctx.shadowBlur, 0, "ctx.shadowBlur", "0"); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.attributes.shadowColor.initial.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.attributes.shadowColor.initial.html index 44a25308..92a8bd1 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.attributes.shadowColor.initial.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.attributes.shadowColor.initial.html
@@ -17,11 +17,11 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -_assertSame(ctx.shadowColor, 'rgba(0, 0, 0, 0)', "ctx.shadowColor", "'rgba(0, 0, 0, 0)'"); -t.done(); + _assertSame(ctx.shadowColor, 'rgba(0, 0, 0, 0)', "ctx.shadowColor", "'rgba(0, 0, 0, 0)'"); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.attributes.shadowColor.initial.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.attributes.shadowColor.initial.worker.js index f8132d5..8b1ec38 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.attributes.shadowColor.initial.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.attributes.shadowColor.initial.worker.js
@@ -13,11 +13,10 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -_assertSame(ctx.shadowColor, 'rgba(0, 0, 0, 0)', "ctx.shadowColor", "'rgba(0, 0, 0, 0)'"); -t.done(); - + _assertSame(ctx.shadowColor, 'rgba(0, 0, 0, 0)', "ctx.shadowColor", "'rgba(0, 0, 0, 0)'"); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.attributes.shadowColor.invalid.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.attributes.shadowColor.invalid.html index ed09bcb..93a480b3 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.attributes.shadowColor.invalid.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.attributes.shadowColor.invalid.html
@@ -17,22 +17,22 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.shadowColor = '#00ff00'; -ctx.shadowColor = 'bogus'; -_assertSame(ctx.shadowColor, '#00ff00', "ctx.shadowColor", "'#00ff00'"); -ctx.shadowColor = '#00ff00'; -ctx.shadowColor = 'red bogus'; -_assertSame(ctx.shadowColor, '#00ff00', "ctx.shadowColor", "'#00ff00'"); -ctx.shadowColor = '#00ff00'; -ctx.shadowColor = ctx; -_assertSame(ctx.shadowColor, '#00ff00', "ctx.shadowColor", "'#00ff00'"); -ctx.shadowColor = '#00ff00'; -ctx.shadowColor = undefined; -_assertSame(ctx.shadowColor, '#00ff00', "ctx.shadowColor", "'#00ff00'"); -t.done(); + ctx.shadowColor = '#00ff00'; + ctx.shadowColor = 'bogus'; + _assertSame(ctx.shadowColor, '#00ff00', "ctx.shadowColor", "'#00ff00'"); + ctx.shadowColor = '#00ff00'; + ctx.shadowColor = 'red bogus'; + _assertSame(ctx.shadowColor, '#00ff00', "ctx.shadowColor", "'#00ff00'"); + ctx.shadowColor = '#00ff00'; + ctx.shadowColor = ctx; + _assertSame(ctx.shadowColor, '#00ff00', "ctx.shadowColor", "'#00ff00'"); + ctx.shadowColor = '#00ff00'; + ctx.shadowColor = undefined; + _assertSame(ctx.shadowColor, '#00ff00', "ctx.shadowColor", "'#00ff00'"); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.attributes.shadowColor.invalid.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.attributes.shadowColor.invalid.worker.js index b100371..67e0fa8 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.attributes.shadowColor.invalid.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.attributes.shadowColor.invalid.worker.js
@@ -13,22 +13,21 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.shadowColor = '#00ff00'; -ctx.shadowColor = 'bogus'; -_assertSame(ctx.shadowColor, '#00ff00', "ctx.shadowColor", "'#00ff00'"); -ctx.shadowColor = '#00ff00'; -ctx.shadowColor = 'red bogus'; -_assertSame(ctx.shadowColor, '#00ff00', "ctx.shadowColor", "'#00ff00'"); -ctx.shadowColor = '#00ff00'; -ctx.shadowColor = ctx; -_assertSame(ctx.shadowColor, '#00ff00', "ctx.shadowColor", "'#00ff00'"); -ctx.shadowColor = '#00ff00'; -ctx.shadowColor = undefined; -_assertSame(ctx.shadowColor, '#00ff00', "ctx.shadowColor", "'#00ff00'"); -t.done(); - + ctx.shadowColor = '#00ff00'; + ctx.shadowColor = 'bogus'; + _assertSame(ctx.shadowColor, '#00ff00', "ctx.shadowColor", "'#00ff00'"); + ctx.shadowColor = '#00ff00'; + ctx.shadowColor = 'red bogus'; + _assertSame(ctx.shadowColor, '#00ff00', "ctx.shadowColor", "'#00ff00'"); + ctx.shadowColor = '#00ff00'; + ctx.shadowColor = ctx; + _assertSame(ctx.shadowColor, '#00ff00', "ctx.shadowColor", "'#00ff00'"); + ctx.shadowColor = '#00ff00'; + ctx.shadowColor = undefined; + _assertSame(ctx.shadowColor, '#00ff00', "ctx.shadowColor", "'#00ff00'"); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.attributes.shadowColor.valid.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.attributes.shadowColor.valid.html index 9511027..acd36360 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.attributes.shadowColor.valid.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.attributes.shadowColor.valid.html
@@ -17,14 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.shadowColor = 'lime'; -_assertSame(ctx.shadowColor, '#00ff00', "ctx.shadowColor", "'#00ff00'"); -ctx.shadowColor = 'RGBA(0,255, 0,0)'; -_assertSame(ctx.shadowColor, 'rgba(0, 255, 0, 0)', "ctx.shadowColor", "'rgba(0, 255, 0, 0)'"); -t.done(); + ctx.shadowColor = 'lime'; + _assertSame(ctx.shadowColor, '#00ff00', "ctx.shadowColor", "'#00ff00'"); + ctx.shadowColor = 'RGBA(0,255, 0,0)'; + _assertSame(ctx.shadowColor, 'rgba(0, 255, 0, 0)', "ctx.shadowColor", "'rgba(0, 255, 0, 0)'"); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.attributes.shadowColor.valid.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.attributes.shadowColor.valid.worker.js index f47e3660..02444723b4 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.attributes.shadowColor.valid.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.attributes.shadowColor.valid.worker.js
@@ -13,14 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.shadowColor = 'lime'; -_assertSame(ctx.shadowColor, '#00ff00', "ctx.shadowColor", "'#00ff00'"); -ctx.shadowColor = 'RGBA(0,255, 0,0)'; -_assertSame(ctx.shadowColor, 'rgba(0, 255, 0, 0)', "ctx.shadowColor", "'rgba(0, 255, 0, 0)'"); -t.done(); - + ctx.shadowColor = 'lime'; + _assertSame(ctx.shadowColor, '#00ff00', "ctx.shadowColor", "'#00ff00'"); + ctx.shadowColor = 'RGBA(0,255, 0,0)'; + _assertSame(ctx.shadowColor, 'rgba(0, 255, 0, 0)', "ctx.shadowColor", "'rgba(0, 255, 0, 0)'"); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.attributes.shadowOffset.initial.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.attributes.shadowOffset.initial.html index e568569a..52be5ad5 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.attributes.shadowOffset.initial.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.attributes.shadowOffset.initial.html
@@ -17,12 +17,12 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -_assertSame(ctx.shadowOffsetX, 0, "ctx.shadowOffsetX", "0"); -_assertSame(ctx.shadowOffsetY, 0, "ctx.shadowOffsetY", "0"); -t.done(); + _assertSame(ctx.shadowOffsetX, 0, "ctx.shadowOffsetX", "0"); + _assertSame(ctx.shadowOffsetY, 0, "ctx.shadowOffsetY", "0"); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.attributes.shadowOffset.initial.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.attributes.shadowOffset.initial.worker.js index af2e77f4..b7b399b 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.attributes.shadowOffset.initial.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.attributes.shadowOffset.initial.worker.js
@@ -13,12 +13,11 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -_assertSame(ctx.shadowOffsetX, 0, "ctx.shadowOffsetX", "0"); -_assertSame(ctx.shadowOffsetY, 0, "ctx.shadowOffsetY", "0"); -t.done(); - + _assertSame(ctx.shadowOffsetX, 0, "ctx.shadowOffsetX", "0"); + _assertSame(ctx.shadowOffsetY, 0, "ctx.shadowOffsetY", "0"); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.attributes.shadowOffset.invalid.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.attributes.shadowOffset.invalid.html index 58c8efec..be055aa 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.attributes.shadowOffset.invalid.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.attributes.shadowOffset.invalid.html
@@ -17,28 +17,28 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.shadowOffsetX = 1; -ctx.shadowOffsetY = 2; -ctx.shadowOffsetX = Infinity; -ctx.shadowOffsetY = Infinity; -_assertSame(ctx.shadowOffsetX, 1, "ctx.shadowOffsetX", "1"); -_assertSame(ctx.shadowOffsetY, 2, "ctx.shadowOffsetY", "2"); -ctx.shadowOffsetX = 1; -ctx.shadowOffsetY = 2; -ctx.shadowOffsetX = -Infinity; -ctx.shadowOffsetY = -Infinity; -_assertSame(ctx.shadowOffsetX, 1, "ctx.shadowOffsetX", "1"); -_assertSame(ctx.shadowOffsetY, 2, "ctx.shadowOffsetY", "2"); -ctx.shadowOffsetX = 1; -ctx.shadowOffsetY = 2; -ctx.shadowOffsetX = NaN; -ctx.shadowOffsetY = NaN; -_assertSame(ctx.shadowOffsetX, 1, "ctx.shadowOffsetX", "1"); -_assertSame(ctx.shadowOffsetY, 2, "ctx.shadowOffsetY", "2"); -t.done(); + ctx.shadowOffsetX = 1; + ctx.shadowOffsetY = 2; + ctx.shadowOffsetX = Infinity; + ctx.shadowOffsetY = Infinity; + _assertSame(ctx.shadowOffsetX, 1, "ctx.shadowOffsetX", "1"); + _assertSame(ctx.shadowOffsetY, 2, "ctx.shadowOffsetY", "2"); + ctx.shadowOffsetX = 1; + ctx.shadowOffsetY = 2; + ctx.shadowOffsetX = -Infinity; + ctx.shadowOffsetY = -Infinity; + _assertSame(ctx.shadowOffsetX, 1, "ctx.shadowOffsetX", "1"); + _assertSame(ctx.shadowOffsetY, 2, "ctx.shadowOffsetY", "2"); + ctx.shadowOffsetX = 1; + ctx.shadowOffsetY = 2; + ctx.shadowOffsetX = NaN; + ctx.shadowOffsetY = NaN; + _assertSame(ctx.shadowOffsetX, 1, "ctx.shadowOffsetX", "1"); + _assertSame(ctx.shadowOffsetY, 2, "ctx.shadowOffsetY", "2"); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.attributes.shadowOffset.invalid.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.attributes.shadowOffset.invalid.worker.js index 8926147..37ae2e6 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.attributes.shadowOffset.invalid.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.attributes.shadowOffset.invalid.worker.js
@@ -13,28 +13,27 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.shadowOffsetX = 1; -ctx.shadowOffsetY = 2; -ctx.shadowOffsetX = Infinity; -ctx.shadowOffsetY = Infinity; -_assertSame(ctx.shadowOffsetX, 1, "ctx.shadowOffsetX", "1"); -_assertSame(ctx.shadowOffsetY, 2, "ctx.shadowOffsetY", "2"); -ctx.shadowOffsetX = 1; -ctx.shadowOffsetY = 2; -ctx.shadowOffsetX = -Infinity; -ctx.shadowOffsetY = -Infinity; -_assertSame(ctx.shadowOffsetX, 1, "ctx.shadowOffsetX", "1"); -_assertSame(ctx.shadowOffsetY, 2, "ctx.shadowOffsetY", "2"); -ctx.shadowOffsetX = 1; -ctx.shadowOffsetY = 2; -ctx.shadowOffsetX = NaN; -ctx.shadowOffsetY = NaN; -_assertSame(ctx.shadowOffsetX, 1, "ctx.shadowOffsetX", "1"); -_assertSame(ctx.shadowOffsetY, 2, "ctx.shadowOffsetY", "2"); -t.done(); - + ctx.shadowOffsetX = 1; + ctx.shadowOffsetY = 2; + ctx.shadowOffsetX = Infinity; + ctx.shadowOffsetY = Infinity; + _assertSame(ctx.shadowOffsetX, 1, "ctx.shadowOffsetX", "1"); + _assertSame(ctx.shadowOffsetY, 2, "ctx.shadowOffsetY", "2"); + ctx.shadowOffsetX = 1; + ctx.shadowOffsetY = 2; + ctx.shadowOffsetX = -Infinity; + ctx.shadowOffsetY = -Infinity; + _assertSame(ctx.shadowOffsetX, 1, "ctx.shadowOffsetX", "1"); + _assertSame(ctx.shadowOffsetY, 2, "ctx.shadowOffsetY", "2"); + ctx.shadowOffsetX = 1; + ctx.shadowOffsetY = 2; + ctx.shadowOffsetX = NaN; + ctx.shadowOffsetY = NaN; + _assertSame(ctx.shadowOffsetX, 1, "ctx.shadowOffsetX", "1"); + _assertSame(ctx.shadowOffsetY, 2, "ctx.shadowOffsetY", "2"); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.attributes.shadowOffset.valid.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.attributes.shadowOffset.valid.html index 1ad622c..785966cb 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.attributes.shadowOffset.valid.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.attributes.shadowOffset.valid.html
@@ -17,30 +17,30 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.shadowOffsetX = 1; -ctx.shadowOffsetY = 2; -_assertSame(ctx.shadowOffsetX, 1, "ctx.shadowOffsetX", "1"); -_assertSame(ctx.shadowOffsetY, 2, "ctx.shadowOffsetY", "2"); -ctx.shadowOffsetX = 0.5; -ctx.shadowOffsetY = 0.25; -_assertSame(ctx.shadowOffsetX, 0.5, "ctx.shadowOffsetX", "0.5"); -_assertSame(ctx.shadowOffsetY, 0.25, "ctx.shadowOffsetY", "0.25"); -ctx.shadowOffsetX = -0.5; -ctx.shadowOffsetY = -0.25; -_assertSame(ctx.shadowOffsetX, -0.5, "ctx.shadowOffsetX", "-0.5"); -_assertSame(ctx.shadowOffsetY, -0.25, "ctx.shadowOffsetY", "-0.25"); -ctx.shadowOffsetX = 0; -ctx.shadowOffsetY = 0; -_assertSame(ctx.shadowOffsetX, 0, "ctx.shadowOffsetX", "0"); -_assertSame(ctx.shadowOffsetY, 0, "ctx.shadowOffsetY", "0"); -ctx.shadowOffsetX = 1e6; -ctx.shadowOffsetY = 1e6; -_assertSame(ctx.shadowOffsetX, 1e6, "ctx.shadowOffsetX", "1e6"); -_assertSame(ctx.shadowOffsetY, 1e6, "ctx.shadowOffsetY", "1e6"); -t.done(); + ctx.shadowOffsetX = 1; + ctx.shadowOffsetY = 2; + _assertSame(ctx.shadowOffsetX, 1, "ctx.shadowOffsetX", "1"); + _assertSame(ctx.shadowOffsetY, 2, "ctx.shadowOffsetY", "2"); + ctx.shadowOffsetX = 0.5; + ctx.shadowOffsetY = 0.25; + _assertSame(ctx.shadowOffsetX, 0.5, "ctx.shadowOffsetX", "0.5"); + _assertSame(ctx.shadowOffsetY, 0.25, "ctx.shadowOffsetY", "0.25"); + ctx.shadowOffsetX = -0.5; + ctx.shadowOffsetY = -0.25; + _assertSame(ctx.shadowOffsetX, -0.5, "ctx.shadowOffsetX", "-0.5"); + _assertSame(ctx.shadowOffsetY, -0.25, "ctx.shadowOffsetY", "-0.25"); + ctx.shadowOffsetX = 0; + ctx.shadowOffsetY = 0; + _assertSame(ctx.shadowOffsetX, 0, "ctx.shadowOffsetX", "0"); + _assertSame(ctx.shadowOffsetY, 0, "ctx.shadowOffsetY", "0"); + ctx.shadowOffsetX = 1e6; + ctx.shadowOffsetY = 1e6; + _assertSame(ctx.shadowOffsetX, 1e6, "ctx.shadowOffsetX", "1e6"); + _assertSame(ctx.shadowOffsetY, 1e6, "ctx.shadowOffsetY", "1e6"); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.attributes.shadowOffset.valid.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.attributes.shadowOffset.valid.worker.js index eed84b5..a6e047e 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.attributes.shadowOffset.valid.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.attributes.shadowOffset.valid.worker.js
@@ -13,30 +13,29 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.shadowOffsetX = 1; -ctx.shadowOffsetY = 2; -_assertSame(ctx.shadowOffsetX, 1, "ctx.shadowOffsetX", "1"); -_assertSame(ctx.shadowOffsetY, 2, "ctx.shadowOffsetY", "2"); -ctx.shadowOffsetX = 0.5; -ctx.shadowOffsetY = 0.25; -_assertSame(ctx.shadowOffsetX, 0.5, "ctx.shadowOffsetX", "0.5"); -_assertSame(ctx.shadowOffsetY, 0.25, "ctx.shadowOffsetY", "0.25"); -ctx.shadowOffsetX = -0.5; -ctx.shadowOffsetY = -0.25; -_assertSame(ctx.shadowOffsetX, -0.5, "ctx.shadowOffsetX", "-0.5"); -_assertSame(ctx.shadowOffsetY, -0.25, "ctx.shadowOffsetY", "-0.25"); -ctx.shadowOffsetX = 0; -ctx.shadowOffsetY = 0; -_assertSame(ctx.shadowOffsetX, 0, "ctx.shadowOffsetX", "0"); -_assertSame(ctx.shadowOffsetY, 0, "ctx.shadowOffsetY", "0"); -ctx.shadowOffsetX = 1e6; -ctx.shadowOffsetY = 1e6; -_assertSame(ctx.shadowOffsetX, 1e6, "ctx.shadowOffsetX", "1e6"); -_assertSame(ctx.shadowOffsetY, 1e6, "ctx.shadowOffsetY", "1e6"); -t.done(); - + ctx.shadowOffsetX = 1; + ctx.shadowOffsetY = 2; + _assertSame(ctx.shadowOffsetX, 1, "ctx.shadowOffsetX", "1"); + _assertSame(ctx.shadowOffsetY, 2, "ctx.shadowOffsetY", "2"); + ctx.shadowOffsetX = 0.5; + ctx.shadowOffsetY = 0.25; + _assertSame(ctx.shadowOffsetX, 0.5, "ctx.shadowOffsetX", "0.5"); + _assertSame(ctx.shadowOffsetY, 0.25, "ctx.shadowOffsetY", "0.25"); + ctx.shadowOffsetX = -0.5; + ctx.shadowOffsetY = -0.25; + _assertSame(ctx.shadowOffsetX, -0.5, "ctx.shadowOffsetX", "-0.5"); + _assertSame(ctx.shadowOffsetY, -0.25, "ctx.shadowOffsetY", "-0.25"); + ctx.shadowOffsetX = 0; + ctx.shadowOffsetY = 0; + _assertSame(ctx.shadowOffsetX, 0, "ctx.shadowOffsetX", "0"); + _assertSame(ctx.shadowOffsetY, 0, "ctx.shadowOffsetY", "0"); + ctx.shadowOffsetX = 1e6; + ctx.shadowOffsetY = 1e6; + _assertSame(ctx.shadowOffsetX, 1e6, "ctx.shadowOffsetX", "1e6"); + _assertSame(ctx.shadowOffsetY, 1e6, "ctx.shadowOffsetY", "1e6"); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.canvas.alpha.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.canvas.alpha.html index 5fea8a7c..ae046cfe 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.canvas.alpha.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.canvas.alpha.html
@@ -17,20 +17,20 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var offscreenCanvas2 = new OffscreenCanvas(100, 50); -var ctx2 = offscreenCanvas2.getContext('2d'); -ctx2.fillStyle = 'rgba(255, 0, 0, 0.5)'; -ctx2.fillRect(0, 0, 100, 50); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.shadowOffsetY = 50; -ctx.shadowColor = '#00f'; -ctx.drawImage(offscreenCanvas2, 0, -50); -_assertPixelApprox(canvas, 50,25, 127,0,127,255, 2); -t.done(); + var offscreenCanvas2 = new OffscreenCanvas(100, 50); + var ctx2 = offscreenCanvas2.getContext('2d'); + ctx2.fillStyle = 'rgba(255, 0, 0, 0.5)'; + ctx2.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.shadowOffsetY = 50; + ctx.shadowColor = '#00f'; + ctx.drawImage(offscreenCanvas2, 0, -50); + _assertPixelApprox(canvas, 50,25, 127,0,127,255, 2); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.canvas.alpha.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.canvas.alpha.worker.js index 663e89f..21d6309 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.canvas.alpha.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.canvas.alpha.worker.js
@@ -13,20 +13,19 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var offscreenCanvas2 = new OffscreenCanvas(100, 50); -var ctx2 = offscreenCanvas2.getContext('2d'); -ctx2.fillStyle = 'rgba(255, 0, 0, 0.5)'; -ctx2.fillRect(0, 0, 100, 50); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.shadowOffsetY = 50; -ctx.shadowColor = '#00f'; -ctx.drawImage(offscreenCanvas2, 0, -50); -_assertPixelApprox(canvas, 50,25, 127,0,127,255, 2); -t.done(); - + var offscreenCanvas2 = new OffscreenCanvas(100, 50); + var ctx2 = offscreenCanvas2.getContext('2d'); + ctx2.fillStyle = 'rgba(255, 0, 0, 0.5)'; + ctx2.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.shadowOffsetY = 50; + ctx.shadowColor = '#00f'; + ctx.drawImage(offscreenCanvas2, 0, -50); + _assertPixelApprox(canvas, 50,25, 127,0,127,255, 2); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.canvas.basic.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.canvas.basic.html index 2fc6b547..3ba1cf1 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.canvas.basic.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.canvas.basic.html
@@ -17,20 +17,20 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var offscreenCanvas2 = new OffscreenCanvas(100, 50); -var ctx2 = offscreenCanvas2.getContext('2d'); -ctx2.fillStyle = '#f00'; -ctx2.fillRect(0, 0, 100, 50); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.shadowColor = '#0f0'; -ctx.shadowOffsetY = 50; -ctx.drawImage(offscreenCanvas2, 0, -50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + var offscreenCanvas2 = new OffscreenCanvas(100, 50); + var ctx2 = offscreenCanvas2.getContext('2d'); + ctx2.fillStyle = '#f00'; + ctx2.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.shadowColor = '#0f0'; + ctx.shadowOffsetY = 50; + ctx.drawImage(offscreenCanvas2, 0, -50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.canvas.basic.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.canvas.basic.worker.js index 20c433b2..8ec3f4a 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.canvas.basic.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.canvas.basic.worker.js
@@ -13,20 +13,19 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var offscreenCanvas2 = new OffscreenCanvas(100, 50); -var ctx2 = offscreenCanvas2.getContext('2d'); -ctx2.fillStyle = '#f00'; -ctx2.fillRect(0, 0, 100, 50); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.shadowColor = '#0f0'; -ctx.shadowOffsetY = 50; -ctx.drawImage(offscreenCanvas2, 0, -50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + var offscreenCanvas2 = new OffscreenCanvas(100, 50); + var ctx2 = offscreenCanvas2.getContext('2d'); + ctx2.fillStyle = '#f00'; + ctx2.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.shadowColor = '#0f0'; + ctx.shadowOffsetY = 50; + ctx.drawImage(offscreenCanvas2, 0, -50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.canvas.transparent.1.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.canvas.transparent.1.html index 1bfcb3bf..960d8709 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.canvas.transparent.1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.canvas.transparent.1.html
@@ -17,18 +17,18 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var offscreenCanvas2 = new OffscreenCanvas(100, 50); -var ctx2 = offscreenCanvas2.getContext('2d'); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.shadowColor = '#f00'; -ctx.shadowOffsetY = 50; -ctx.drawImage(offscreenCanvas2, 0, -50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + var offscreenCanvas2 = new OffscreenCanvas(100, 50); + var ctx2 = offscreenCanvas2.getContext('2d'); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.shadowColor = '#f00'; + ctx.shadowOffsetY = 50; + ctx.drawImage(offscreenCanvas2, 0, -50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.canvas.transparent.1.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.canvas.transparent.1.worker.js index 413ba6b..7fd807b 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.canvas.transparent.1.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.canvas.transparent.1.worker.js
@@ -13,18 +13,17 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var offscreenCanvas2 = new OffscreenCanvas(100, 50); -var ctx2 = offscreenCanvas2.getContext('2d'); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.shadowColor = '#f00'; -ctx.shadowOffsetY = 50; -ctx.drawImage(offscreenCanvas2, 0, -50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + var offscreenCanvas2 = new OffscreenCanvas(100, 50); + var ctx2 = offscreenCanvas2.getContext('2d'); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.shadowColor = '#f00'; + ctx.shadowOffsetY = 50; + ctx.drawImage(offscreenCanvas2, 0, -50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.canvas.transparent.2.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.canvas.transparent.2.html index 6d30dfc..2f1d31d 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.canvas.transparent.2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.canvas.transparent.2.html
@@ -17,26 +17,26 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var offscreenCanvas2 = new OffscreenCanvas(100, 50); -var ctx2 = offscreenCanvas2.getContext('2d'); -ctx2.fillStyle = '#f00'; -ctx2.fillRect(0, 0, 50, 50); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 50, 50); -ctx.fillStyle = '#f00'; -ctx.fillRect(50, 0, 50, 50); -ctx.shadowOffsetY = 50; -ctx.shadowColor = '#0f0'; -ctx.drawImage(offscreenCanvas2, 50, -50); -ctx.shadowColor = '#f00'; -ctx.drawImage(offscreenCanvas2, -50, -50); -_assertPixel(canvas, 25,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 75,25, 0,255,0,255); -t.done(); + var offscreenCanvas2 = new OffscreenCanvas(100, 50); + var ctx2 = offscreenCanvas2.getContext('2d'); + ctx2.fillStyle = '#f00'; + ctx2.fillRect(0, 0, 50, 50); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 50, 50); + ctx.fillStyle = '#f00'; + ctx.fillRect(50, 0, 50, 50); + ctx.shadowOffsetY = 50; + ctx.shadowColor = '#0f0'; + ctx.drawImage(offscreenCanvas2, 50, -50); + ctx.shadowColor = '#f00'; + ctx.drawImage(offscreenCanvas2, -50, -50); + _assertPixel(canvas, 25,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 75,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.canvas.transparent.2.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.canvas.transparent.2.worker.js index d702ded7..1347eb09 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.canvas.transparent.2.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.canvas.transparent.2.worker.js
@@ -13,26 +13,25 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var offscreenCanvas2 = new OffscreenCanvas(100, 50); -var ctx2 = offscreenCanvas2.getContext('2d'); -ctx2.fillStyle = '#f00'; -ctx2.fillRect(0, 0, 50, 50); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 50, 50); -ctx.fillStyle = '#f00'; -ctx.fillRect(50, 0, 50, 50); -ctx.shadowOffsetY = 50; -ctx.shadowColor = '#0f0'; -ctx.drawImage(offscreenCanvas2, 50, -50); -ctx.shadowColor = '#f00'; -ctx.drawImage(offscreenCanvas2, -50, -50); -_assertPixel(canvas, 25,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 75,25, 0,255,0,255); -t.done(); - + var offscreenCanvas2 = new OffscreenCanvas(100, 50); + var ctx2 = offscreenCanvas2.getContext('2d'); + ctx2.fillStyle = '#f00'; + ctx2.fillRect(0, 0, 50, 50); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 50, 50); + ctx.fillStyle = '#f00'; + ctx.fillRect(50, 0, 50, 50); + ctx.shadowOffsetY = 50; + ctx.shadowColor = '#0f0'; + ctx.drawImage(offscreenCanvas2, 50, -50); + ctx.shadowColor = '#f00'; + ctx.drawImage(offscreenCanvas2, -50, -50); + _assertPixel(canvas, 25,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 75,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.clip.1.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.clip.1.html index 4beb121..a762ab5f 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.clip.1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.clip.1.html
@@ -17,24 +17,24 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 50, 50); -ctx.fillStyle = '#f00'; -ctx.fillRect(50, 0, 50, 50); -ctx.save(); -ctx.beginPath(); -ctx.rect(50, 0, 50, 50); -ctx.clip(); -ctx.shadowColor = '#0f0'; -ctx.shadowOffsetX = 50; -ctx.fillRect(0, 0, 50, 50); -ctx.restore(); -_assertPixel(canvas, 25,25, 0,255,0,255); -_assertPixel(canvas, 75,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 50, 50); + ctx.fillStyle = '#f00'; + ctx.fillRect(50, 0, 50, 50); + ctx.save(); + ctx.beginPath(); + ctx.rect(50, 0, 50, 50); + ctx.clip(); + ctx.shadowColor = '#0f0'; + ctx.shadowOffsetX = 50; + ctx.fillRect(0, 0, 50, 50); + ctx.restore(); + _assertPixel(canvas, 25,25, 0,255,0,255); + _assertPixel(canvas, 75,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.clip.1.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.clip.1.worker.js index 4fafad8..2a6423a 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.clip.1.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.clip.1.worker.js
@@ -13,24 +13,23 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 50, 50); -ctx.fillStyle = '#f00'; -ctx.fillRect(50, 0, 50, 50); -ctx.save(); -ctx.beginPath(); -ctx.rect(50, 0, 50, 50); -ctx.clip(); -ctx.shadowColor = '#0f0'; -ctx.shadowOffsetX = 50; -ctx.fillRect(0, 0, 50, 50); -ctx.restore(); -_assertPixel(canvas, 25,25, 0,255,0,255); -_assertPixel(canvas, 75,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 50, 50); + ctx.fillStyle = '#f00'; + ctx.fillRect(50, 0, 50, 50); + ctx.save(); + ctx.beginPath(); + ctx.rect(50, 0, 50, 50); + ctx.clip(); + ctx.shadowColor = '#0f0'; + ctx.shadowOffsetX = 50; + ctx.fillRect(0, 0, 50, 50); + ctx.restore(); + _assertPixel(canvas, 25,25, 0,255,0,255); + _assertPixel(canvas, 75,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.clip.2.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.clip.2.html index bc3de09..31055d72 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.clip.2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.clip.2.html
@@ -17,24 +17,24 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 50, 50); -ctx.fillStyle = '#0f0'; -ctx.fillRect(50, 0, 50, 50); -ctx.save(); -ctx.beginPath(); -ctx.rect(0, 0, 50, 50); -ctx.clip(); -ctx.shadowColor = '#f00'; -ctx.shadowOffsetX = 50; -ctx.fillRect(0, 0, 50, 50); -ctx.restore(); -_assertPixel(canvas, 25,25, 0,255,0,255); -_assertPixel(canvas, 75,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 50, 50); + ctx.fillStyle = '#0f0'; + ctx.fillRect(50, 0, 50, 50); + ctx.save(); + ctx.beginPath(); + ctx.rect(0, 0, 50, 50); + ctx.clip(); + ctx.shadowColor = '#f00'; + ctx.shadowOffsetX = 50; + ctx.fillRect(0, 0, 50, 50); + ctx.restore(); + _assertPixel(canvas, 25,25, 0,255,0,255); + _assertPixel(canvas, 75,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.clip.2.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.clip.2.worker.js index dd2712af..2c6b8dea 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.clip.2.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.clip.2.worker.js
@@ -13,24 +13,23 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 50, 50); -ctx.fillStyle = '#0f0'; -ctx.fillRect(50, 0, 50, 50); -ctx.save(); -ctx.beginPath(); -ctx.rect(0, 0, 50, 50); -ctx.clip(); -ctx.shadowColor = '#f00'; -ctx.shadowOffsetX = 50; -ctx.fillRect(0, 0, 50, 50); -ctx.restore(); -_assertPixel(canvas, 25,25, 0,255,0,255); -_assertPixel(canvas, 75,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 50, 50); + ctx.fillStyle = '#0f0'; + ctx.fillRect(50, 0, 50, 50); + ctx.save(); + ctx.beginPath(); + ctx.rect(0, 0, 50, 50); + ctx.clip(); + ctx.shadowColor = '#f00'; + ctx.shadowOffsetX = 50; + ctx.fillRect(0, 0, 50, 50); + ctx.restore(); + _assertPixel(canvas, 25,25, 0,255,0,255); + _assertPixel(canvas, 75,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.clip.3.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.clip.3.html index 9656feb..3b62b233 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.clip.3.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.clip.3.html
@@ -17,25 +17,25 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 50, 50); -ctx.fillStyle = '#0f0'; -ctx.fillRect(50, 0, 50, 50); -ctx.save(); -ctx.beginPath(); -ctx.rect(0, 0, 50, 50); -ctx.clip(); -ctx.fillStyle = '#f00'; -ctx.shadowColor = '#0f0'; -ctx.shadowOffsetX = 50; -ctx.fillRect(-50, 0, 50, 50); -ctx.restore(); -_assertPixel(canvas, 25,25, 0,255,0,255); -_assertPixel(canvas, 75,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 50, 50); + ctx.fillStyle = '#0f0'; + ctx.fillRect(50, 0, 50, 50); + ctx.save(); + ctx.beginPath(); + ctx.rect(0, 0, 50, 50); + ctx.clip(); + ctx.fillStyle = '#f00'; + ctx.shadowColor = '#0f0'; + ctx.shadowOffsetX = 50; + ctx.fillRect(-50, 0, 50, 50); + ctx.restore(); + _assertPixel(canvas, 25,25, 0,255,0,255); + _assertPixel(canvas, 75,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.clip.3.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.clip.3.worker.js index ed4983a..c97f9e5 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.clip.3.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.clip.3.worker.js
@@ -13,25 +13,24 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 50, 50); -ctx.fillStyle = '#0f0'; -ctx.fillRect(50, 0, 50, 50); -ctx.save(); -ctx.beginPath(); -ctx.rect(0, 0, 50, 50); -ctx.clip(); -ctx.fillStyle = '#f00'; -ctx.shadowColor = '#0f0'; -ctx.shadowOffsetX = 50; -ctx.fillRect(-50, 0, 50, 50); -ctx.restore(); -_assertPixel(canvas, 25,25, 0,255,0,255); -_assertPixel(canvas, 75,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 50, 50); + ctx.fillStyle = '#0f0'; + ctx.fillRect(50, 0, 50, 50); + ctx.save(); + ctx.beginPath(); + ctx.rect(0, 0, 50, 50); + ctx.clip(); + ctx.fillStyle = '#f00'; + ctx.shadowColor = '#0f0'; + ctx.shadowOffsetX = 50; + ctx.fillRect(-50, 0, 50, 50); + ctx.restore(); + _assertPixel(canvas, 25,25, 0,255,0,255); + _assertPixel(canvas, 75,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.composite.1.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.composite.1.html index 13e0daf3..e9a400f 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.composite.1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.composite.1.html
@@ -17,18 +17,18 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'xor'; -ctx.shadowColor = '#f00'; -ctx.shadowOffsetX = 100; -ctx.fillStyle = '#0f0'; -ctx.fillRect(-100, 0, 200, 50); -_assertPixelApprox(canvas, 50,25, 0,255,0,255, 2); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'xor'; + ctx.shadowColor = '#f00'; + ctx.shadowOffsetX = 100; + ctx.fillStyle = '#0f0'; + ctx.fillRect(-100, 0, 200, 50); + _assertPixelApprox(canvas, 50,25, 0,255,0,255, 2); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.composite.1.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.composite.1.worker.js index 04d4801..10baafa 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.composite.1.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.composite.1.worker.js
@@ -13,18 +13,17 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'xor'; -ctx.shadowColor = '#f00'; -ctx.shadowOffsetX = 100; -ctx.fillStyle = '#0f0'; -ctx.fillRect(-100, 0, 200, 50); -_assertPixelApprox(canvas, 50,25, 0,255,0,255, 2); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'xor'; + ctx.shadowColor = '#f00'; + ctx.shadowOffsetX = 100; + ctx.fillStyle = '#0f0'; + ctx.fillRect(-100, 0, 200, 50); + _assertPixelApprox(canvas, 50,25, 0,255,0,255, 2); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.composite.2.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.composite.2.html index aea3699..0a4c515 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.composite.2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.composite.2.html
@@ -17,18 +17,18 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'xor'; -ctx.shadowColor = '#f00'; -ctx.shadowBlur = 1; -ctx.fillStyle = '#0f0'; -ctx.fillRect(-10, -10, 120, 70); -_assertPixelApprox(canvas, 50,25, 0,255,0,255, 2); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'xor'; + ctx.shadowColor = '#f00'; + ctx.shadowBlur = 1; + ctx.fillStyle = '#0f0'; + ctx.fillRect(-10, -10, 120, 70); + _assertPixelApprox(canvas, 50,25, 0,255,0,255, 2); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.composite.2.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.composite.2.worker.js index 505e3d5..20c89c1 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.composite.2.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.composite.2.worker.js
@@ -13,18 +13,17 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'xor'; -ctx.shadowColor = '#f00'; -ctx.shadowBlur = 1; -ctx.fillStyle = '#0f0'; -ctx.fillRect(-10, -10, 120, 70); -_assertPixelApprox(canvas, 50,25, 0,255,0,255, 2); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'xor'; + ctx.shadowColor = '#f00'; + ctx.shadowBlur = 1; + ctx.fillStyle = '#0f0'; + ctx.fillRect(-10, -10, 120, 70); + _assertPixelApprox(canvas, 50,25, 0,255,0,255, 2); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.composite.3.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.composite.3.html index 2218602..5621843 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.composite.3.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.composite.3.html
@@ -17,19 +17,19 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'destination-out'; -ctx.shadowColor = '#f00'; -ctx.shadowBlur = 10; -ctx.fillStyle = '#f00'; -ctx.fillRect(200, 0, 100, 50); -_assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); -_assertPixelApprox(canvas, 50,25, 0,255,0,255, 2); -t.done(); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-out'; + ctx.shadowColor = '#f00'; + ctx.shadowBlur = 10; + ctx.fillStyle = '#f00'; + ctx.fillRect(200, 0, 100, 50); + _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 50,25, 0,255,0,255, 2); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.composite.3.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.composite.3.worker.js index fd58d06..1257b3f5 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.composite.3.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.composite.3.worker.js
@@ -13,19 +13,18 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.globalCompositeOperation = 'destination-out'; -ctx.shadowColor = '#f00'; -ctx.shadowBlur = 10; -ctx.fillStyle = '#f00'; -ctx.fillRect(200, 0, 100, 50); -_assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); -_assertPixelApprox(canvas, 50,25, 0,255,0,255, 2); -t.done(); - + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.globalCompositeOperation = 'destination-out'; + ctx.shadowColor = '#f00'; + ctx.shadowBlur = 10; + ctx.fillStyle = '#f00'; + ctx.fillRect(200, 0, 100, 50); + _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 50,25, 0,255,0,255, 2); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.enable.blur.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.enable.blur.html index edc4c527..a25be8eb 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.enable.blur.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.enable.blur.html
@@ -17,16 +17,16 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.globalCompositeOperation = 'destination-atop'; -ctx.shadowColor = '#0f0'; -ctx.shadowBlur = 0.1; -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.globalCompositeOperation = 'destination-atop'; + ctx.shadowColor = '#0f0'; + ctx.shadowBlur = 0.1; + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.enable.blur.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.enable.blur.worker.js index 85bf21a..859ae8b 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.enable.blur.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.enable.blur.worker.js
@@ -13,16 +13,15 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.globalCompositeOperation = 'destination-atop'; -ctx.shadowColor = '#0f0'; -ctx.shadowBlur = 0.1; -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.globalCompositeOperation = 'destination-atop'; + ctx.shadowColor = '#0f0'; + ctx.shadowBlur = 0.1; + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.enable.off.1.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.enable.off.1.html index f0c92820..de85b73 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.enable.off.1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.enable.off.1.html
@@ -17,14 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.shadowColor = '#f00'; -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.shadowColor = '#f00'; + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.enable.off.1.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.enable.off.1.worker.js index dae0ea64..7ccd1351 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.enable.off.1.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.enable.off.1.worker.js
@@ -13,14 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.shadowColor = '#f00'; -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.shadowColor = '#f00'; + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.enable.off.2.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.enable.off.2.html index 3c27b98..a57cb66 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.enable.off.2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.enable.off.2.html
@@ -17,15 +17,15 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.globalCompositeOperation = 'destination-atop'; -ctx.shadowColor = '#f00'; -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.globalCompositeOperation = 'destination-atop'; + ctx.shadowColor = '#f00'; + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.enable.off.2.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.enable.off.2.worker.js index 2f1573e..e068a7a 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.enable.off.2.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.enable.off.2.worker.js
@@ -13,15 +13,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.globalCompositeOperation = 'destination-atop'; -ctx.shadowColor = '#f00'; -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.globalCompositeOperation = 'destination-atop'; + ctx.shadowColor = '#f00'; + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.enable.x.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.enable.x.html index 9107ef25..70b0a84d 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.enable.x.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.enable.x.html
@@ -17,16 +17,16 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.globalCompositeOperation = 'destination-atop'; -ctx.shadowColor = '#0f0'; -ctx.shadowOffsetX = 0.1; -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.globalCompositeOperation = 'destination-atop'; + ctx.shadowColor = '#0f0'; + ctx.shadowOffsetX = 0.1; + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.enable.x.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.enable.x.worker.js index d8e7d503..975c621f 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.enable.x.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.enable.x.worker.js
@@ -13,16 +13,15 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.globalCompositeOperation = 'destination-atop'; -ctx.shadowColor = '#0f0'; -ctx.shadowOffsetX = 0.1; -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.globalCompositeOperation = 'destination-atop'; + ctx.shadowColor = '#0f0'; + ctx.shadowOffsetX = 0.1; + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.enable.y.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.enable.y.html index 77a79d8..df8bcc2 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.enable.y.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.enable.y.html
@@ -17,16 +17,16 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.globalCompositeOperation = 'destination-atop'; -ctx.shadowColor = '#0f0'; -ctx.shadowOffsetY = 0.1; -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.globalCompositeOperation = 'destination-atop'; + ctx.shadowColor = '#0f0'; + ctx.shadowOffsetY = 0.1; + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.enable.y.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.enable.y.worker.js index 53140b1..1dae100 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.enable.y.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.enable.y.worker.js
@@ -13,16 +13,15 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.globalCompositeOperation = 'destination-atop'; -ctx.shadowColor = '#0f0'; -ctx.shadowOffsetY = 0.1; -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.globalCompositeOperation = 'destination-atop'; + ctx.shadowColor = '#0f0'; + ctx.shadowOffsetY = 0.1; + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.gradient.alpha.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.gradient.alpha.html index d92a248..38483858 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.gradient.alpha.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.gradient.alpha.html
@@ -17,20 +17,20 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var gradient = ctx.createLinearGradient(0, 0, 100, 0); -gradient.addColorStop(0, 'rgba(255,0,0,0.5)'); -gradient.addColorStop(1, 'rgba(255,0,0,0.5)'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.shadowOffsetY = 50; -ctx.shadowColor = '#00f'; -ctx.fillStyle = gradient; -ctx.fillRect(0, -50, 100, 50); -_assertPixelApprox(canvas, 50,25, 127,0,127,255, 2); -t.done(); + var gradient = ctx.createLinearGradient(0, 0, 100, 0); + gradient.addColorStop(0, 'rgba(255,0,0,0.5)'); + gradient.addColorStop(1, 'rgba(255,0,0,0.5)'); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.shadowOffsetY = 50; + ctx.shadowColor = '#00f'; + ctx.fillStyle = gradient; + ctx.fillRect(0, -50, 100, 50); + _assertPixelApprox(canvas, 50,25, 127,0,127,255, 2); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.gradient.alpha.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.gradient.alpha.worker.js index b5b65a0..65d582d 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.gradient.alpha.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.gradient.alpha.worker.js
@@ -13,20 +13,19 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var gradient = ctx.createLinearGradient(0, 0, 100, 0); -gradient.addColorStop(0, 'rgba(255,0,0,0.5)'); -gradient.addColorStop(1, 'rgba(255,0,0,0.5)'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.shadowOffsetY = 50; -ctx.shadowColor = '#00f'; -ctx.fillStyle = gradient; -ctx.fillRect(0, -50, 100, 50); -_assertPixelApprox(canvas, 50,25, 127,0,127,255, 2); -t.done(); - + var gradient = ctx.createLinearGradient(0, 0, 100, 0); + gradient.addColorStop(0, 'rgba(255,0,0,0.5)'); + gradient.addColorStop(1, 'rgba(255,0,0,0.5)'); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.shadowOffsetY = 50; + ctx.shadowColor = '#00f'; + ctx.fillStyle = gradient; + ctx.fillRect(0, -50, 100, 50); + _assertPixelApprox(canvas, 50,25, 127,0,127,255, 2); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.gradient.basic.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.gradient.basic.html index b88281be..c411b64e 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.gradient.basic.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.gradient.basic.html
@@ -17,20 +17,20 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var gradient = ctx.createLinearGradient(0, 0, 100, 0); -gradient.addColorStop(0, '#f00'); -gradient.addColorStop(1, '#f00'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.shadowColor = '#0f0'; -ctx.shadowOffsetY = 50; -ctx.fillStyle = gradient; -ctx.fillRect(0, -50, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + var gradient = ctx.createLinearGradient(0, 0, 100, 0); + gradient.addColorStop(0, '#f00'); + gradient.addColorStop(1, '#f00'); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.shadowColor = '#0f0'; + ctx.shadowOffsetY = 50; + ctx.fillStyle = gradient; + ctx.fillRect(0, -50, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.gradient.basic.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.gradient.basic.worker.js index ef9ce71..2630acc 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.gradient.basic.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.gradient.basic.worker.js
@@ -13,20 +13,19 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var gradient = ctx.createLinearGradient(0, 0, 100, 0); -gradient.addColorStop(0, '#f00'); -gradient.addColorStop(1, '#f00'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.shadowColor = '#0f0'; -ctx.shadowOffsetY = 50; -ctx.fillStyle = gradient; -ctx.fillRect(0, -50, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + var gradient = ctx.createLinearGradient(0, 0, 100, 0); + gradient.addColorStop(0, '#f00'); + gradient.addColorStop(1, '#f00'); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.shadowColor = '#0f0'; + ctx.shadowOffsetY = 50; + ctx.fillStyle = gradient; + ctx.fillRect(0, -50, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.gradient.transparent.1.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.gradient.transparent.1.html index f71a8b4..852d4268 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.gradient.transparent.1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.gradient.transparent.1.html
@@ -17,20 +17,20 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var gradient = ctx.createLinearGradient(0, 0, 100, 0); -gradient.addColorStop(0, 'rgba(0,0,0,0)'); -gradient.addColorStop(1, 'rgba(0,0,0,0)'); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.shadowColor = '#f00'; -ctx.shadowOffsetY = 50; -ctx.fillStyle = gradient; -ctx.fillRect(0, -50, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + var gradient = ctx.createLinearGradient(0, 0, 100, 0); + gradient.addColorStop(0, 'rgba(0,0,0,0)'); + gradient.addColorStop(1, 'rgba(0,0,0,0)'); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.shadowColor = '#f00'; + ctx.shadowOffsetY = 50; + ctx.fillStyle = gradient; + ctx.fillRect(0, -50, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.gradient.transparent.1.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.gradient.transparent.1.worker.js index b60d6f7..b084014 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.gradient.transparent.1.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.gradient.transparent.1.worker.js
@@ -13,20 +13,19 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var gradient = ctx.createLinearGradient(0, 0, 100, 0); -gradient.addColorStop(0, 'rgba(0,0,0,0)'); -gradient.addColorStop(1, 'rgba(0,0,0,0)'); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.shadowColor = '#f00'; -ctx.shadowOffsetY = 50; -ctx.fillStyle = gradient; -ctx.fillRect(0, -50, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + var gradient = ctx.createLinearGradient(0, 0, 100, 0); + gradient.addColorStop(0, 'rgba(0,0,0,0)'); + gradient.addColorStop(1, 'rgba(0,0,0,0)'); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.shadowColor = '#f00'; + ctx.shadowOffsetY = 50; + ctx.fillStyle = gradient; + ctx.fillRect(0, -50, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.gradient.transparent.2.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.gradient.transparent.2.html index d7c560e..b2c7967d 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.gradient.transparent.2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.gradient.transparent.2.html
@@ -17,26 +17,26 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var gradient = ctx.createLinearGradient(0, 0, 100, 0); -gradient.addColorStop(0, '#f00'); -gradient.addColorStop(0.499, '#f00'); -gradient.addColorStop(0.5, 'rgba(0,0,0,0)'); -gradient.addColorStop(1, 'rgba(0,0,0,0)'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 50, 50); -ctx.fillStyle = '#0f0'; -ctx.fillRect(50, 0, 50, 50); -ctx.shadowOffsetY = 50; -ctx.shadowColor = '#0f0'; -ctx.fillStyle = gradient; -ctx.fillRect(0, -50, 100, 50); -_assertPixel(canvas, 25,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 75,25, 0,255,0,255); -t.done(); + var gradient = ctx.createLinearGradient(0, 0, 100, 0); + gradient.addColorStop(0, '#f00'); + gradient.addColorStop(0.499, '#f00'); + gradient.addColorStop(0.5, 'rgba(0,0,0,0)'); + gradient.addColorStop(1, 'rgba(0,0,0,0)'); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 50, 50); + ctx.fillStyle = '#0f0'; + ctx.fillRect(50, 0, 50, 50); + ctx.shadowOffsetY = 50; + ctx.shadowColor = '#0f0'; + ctx.fillStyle = gradient; + ctx.fillRect(0, -50, 100, 50); + _assertPixel(canvas, 25,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 75,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.gradient.transparent.2.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.gradient.transparent.2.worker.js index 7226b00..bc651c59 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.gradient.transparent.2.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.gradient.transparent.2.worker.js
@@ -13,26 +13,25 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var gradient = ctx.createLinearGradient(0, 0, 100, 0); -gradient.addColorStop(0, '#f00'); -gradient.addColorStop(0.499, '#f00'); -gradient.addColorStop(0.5, 'rgba(0,0,0,0)'); -gradient.addColorStop(1, 'rgba(0,0,0,0)'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 50, 50); -ctx.fillStyle = '#0f0'; -ctx.fillRect(50, 0, 50, 50); -ctx.shadowOffsetY = 50; -ctx.shadowColor = '#0f0'; -ctx.fillStyle = gradient; -ctx.fillRect(0, -50, 100, 50); -_assertPixel(canvas, 25,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 75,25, 0,255,0,255); -t.done(); - + var gradient = ctx.createLinearGradient(0, 0, 100, 0); + gradient.addColorStop(0, '#f00'); + gradient.addColorStop(0.499, '#f00'); + gradient.addColorStop(0.5, 'rgba(0,0,0,0)'); + gradient.addColorStop(1, 'rgba(0,0,0,0)'); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 50, 50); + ctx.fillStyle = '#0f0'; + ctx.fillRect(50, 0, 50, 50); + ctx.shadowOffsetY = 50; + ctx.shadowColor = '#0f0'; + ctx.fillStyle = gradient; + ctx.fillRect(0, -50, 100, 50); + _assertPixel(canvas, 25,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 75,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.image.alpha.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.image.alpha.html index 5add7eae..6a1372ee 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.image.alpha.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.image.alpha.html
@@ -17,28 +17,28 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.shadowOffsetY = 50; -ctx.shadowColor = '#00f'; -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/transparent50.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - ctx.drawImage(bitmap, 0, -50); - _assertPixelApprox(canvas, 50,25, 127,0,127,255, 2); - }, t_fail); -}).then(t_pass, t_fail); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.shadowOffsetY = 50; + ctx.shadowColor = '#00f'; + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/transparent50.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + ctx.drawImage(bitmap, 0, -50); + _assertPixelApprox(canvas, 50,25, 127,0,127,255, 2); + }, t_fail); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.image.alpha.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.image.alpha.worker.js index 7a1d9921..726c6d98 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.image.alpha.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.image.alpha.worker.js
@@ -13,28 +13,27 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.shadowOffsetY = 50; -ctx.shadowColor = '#00f'; -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/transparent50.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - ctx.drawImage(bitmap, 0, -50); - _assertPixelApprox(canvas, 50,25, 127,0,127,255, 2); - }, t_fail); -}).then(t_pass, t_fail); - + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.shadowOffsetY = 50; + ctx.shadowColor = '#00f'; + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/transparent50.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + ctx.drawImage(bitmap, 0, -50); + _assertPixelApprox(canvas, 50,25, 127,0,127,255, 2); + }, t_fail); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.image.basic.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.image.basic.html index 101cfba..04398818 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.image.basic.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.image.basic.html
@@ -17,28 +17,28 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.shadowColor = '#0f0'; -ctx.shadowOffsetY = 50; -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/red.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - ctx.drawImage(bitmap, 0, -50); - _assertPixel(canvas, 50,25, 0,255,0,255); - }, t_fail); -}).then(t_pass, t_fail); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.shadowColor = '#0f0'; + ctx.shadowOffsetY = 50; + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/red.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + ctx.drawImage(bitmap, 0, -50); + _assertPixel(canvas, 50,25, 0,255,0,255); + }, t_fail); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.image.basic.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.image.basic.worker.js index f1d72de..cf8f072 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.image.basic.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.image.basic.worker.js
@@ -13,28 +13,27 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.shadowColor = '#0f0'; -ctx.shadowOffsetY = 50; -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/red.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - ctx.drawImage(bitmap, 0, -50); - _assertPixel(canvas, 50,25, 0,255,0,255); - }, t_fail); -}).then(t_pass, t_fail); - + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.shadowColor = '#0f0'; + ctx.shadowOffsetY = 50; + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/red.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + ctx.drawImage(bitmap, 0, -50); + _assertPixel(canvas, 50,25, 0,255,0,255); + }, t_fail); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.image.scale.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.image.scale.html index c56a73f7..b53bd89 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.image.scale.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.image.scale.html
@@ -17,30 +17,30 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.shadowOffsetY = 50; -ctx.shadowColor = '#0f0'; -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/redtransparent.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - ctx.drawImage(bitmap, 0, 0, 100, 50, -10, -50, 240, 50); - _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 50,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); - }, t_fail); -}).then(t_pass, t_fail); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.shadowOffsetY = 50; + ctx.shadowColor = '#0f0'; + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/redtransparent.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + ctx.drawImage(bitmap, 0, 0, 100, 50, -10, -50, 240, 50); + _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 50,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); + }, t_fail); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.image.scale.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.image.scale.worker.js index a8c0ead..51db38d1 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.image.scale.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.image.scale.worker.js
@@ -13,30 +13,29 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.shadowOffsetY = 50; -ctx.shadowColor = '#0f0'; -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/redtransparent.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - ctx.drawImage(bitmap, 0, 0, 100, 50, -10, -50, 240, 50); - _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 50,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); - }, t_fail); -}).then(t_pass, t_fail); - + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.shadowOffsetY = 50; + ctx.shadowColor = '#0f0'; + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/redtransparent.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + ctx.drawImage(bitmap, 0, 0, 100, 50, -10, -50, 240, 50); + _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 50,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); + }, t_fail); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.image.section.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.image.section.html index cd09503..9b04130a 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.image.section.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.image.section.html
@@ -17,30 +17,30 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.shadowOffsetY = 50; -ctx.shadowColor = '#f00'; -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/redtransparent.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - ctx.drawImage(bitmap, 50, 0, 50, 50, 0, -50, 50, 50); - _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 50,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); - }, t_fail); -}).then(t_pass, t_fail); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.shadowOffsetY = 50; + ctx.shadowColor = '#f00'; + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/redtransparent.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + ctx.drawImage(bitmap, 50, 0, 50, 50, 0, -50, 50, 50); + _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 50,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); + }, t_fail); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.image.section.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.image.section.worker.js index 60e32b4..e5824d9 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.image.section.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.image.section.worker.js
@@ -13,30 +13,29 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.shadowOffsetY = 50; -ctx.shadowColor = '#f00'; -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/redtransparent.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - ctx.drawImage(bitmap, 50, 0, 50, 50, 0, -50, 50, 50); - _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 50,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); - }, t_fail); -}).then(t_pass, t_fail); - + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.shadowOffsetY = 50; + ctx.shadowColor = '#f00'; + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/redtransparent.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + ctx.drawImage(bitmap, 50, 0, 50, 50, 0, -50, 50, 50); + _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 50,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); + }, t_fail); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.image.transparent.1.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.image.transparent.1.html index 3784405..fef5711 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.image.transparent.1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.image.transparent.1.html
@@ -17,28 +17,28 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.shadowColor = '#f00'; -ctx.shadowOffsetY = 50; -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/transparent.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - ctx.drawImage(bitmap, 0, -50); - _assertPixel(canvas, 50,25, 0,255,0,255); - }, t_fail); -}).then(t_pass, t_fail); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.shadowColor = '#f00'; + ctx.shadowOffsetY = 50; + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/transparent.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + ctx.drawImage(bitmap, 0, -50); + _assertPixel(canvas, 50,25, 0,255,0,255); + }, t_fail); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.image.transparent.1.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.image.transparent.1.worker.js index 8e8ded8..a529140 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.image.transparent.1.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.image.transparent.1.worker.js
@@ -13,28 +13,27 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.shadowColor = '#f00'; -ctx.shadowOffsetY = 50; -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/transparent.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - ctx.drawImage(bitmap, 0, -50); - _assertPixel(canvas, 50,25, 0,255,0,255); - }, t_fail); -}).then(t_pass, t_fail); - + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.shadowColor = '#f00'; + ctx.shadowOffsetY = 50; + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/transparent.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + ctx.drawImage(bitmap, 0, -50); + _assertPixel(canvas, 50,25, 0,255,0,255); + }, t_fail); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.image.transparent.2.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.image.transparent.2.html index 996bce7..bdd5c12 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.image.transparent.2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.image.transparent.2.html
@@ -17,34 +17,34 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 50, 50); -ctx.fillStyle = '#f00'; -ctx.fillRect(50, 0, 50, 50); -ctx.shadowOffsetY = 50; -ctx.shadowColor = '#0f0'; -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/redtransparent.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - ctx.drawImage(bitmap, 50, -50); - ctx.shadowColor = '#f00'; - ctx.drawImage(bitmap, -50, -50); - _assertPixel(canvas, 25,25, 0,255,0,255); - _assertPixel(canvas, 50,25, 0,255,0,255); - _assertPixel(canvas, 75,25, 0,255,0,255); - }, t_fail); -}).then(t_pass, t_fail); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 50, 50); + ctx.fillStyle = '#f00'; + ctx.fillRect(50, 0, 50, 50); + ctx.shadowOffsetY = 50; + ctx.shadowColor = '#0f0'; + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/redtransparent.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + ctx.drawImage(bitmap, 50, -50); + ctx.shadowColor = '#f00'; + ctx.drawImage(bitmap, -50, -50); + _assertPixel(canvas, 25,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 75,25, 0,255,0,255); + }, t_fail); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.image.transparent.2.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.image.transparent.2.worker.js index 5075d6c..26e0afc 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.image.transparent.2.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.image.transparent.2.worker.js
@@ -13,34 +13,33 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 50, 50); -ctx.fillStyle = '#f00'; -ctx.fillRect(50, 0, 50, 50); -ctx.shadowOffsetY = 50; -ctx.shadowColor = '#0f0'; -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/redtransparent.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - ctx.drawImage(bitmap, 50, -50); - ctx.shadowColor = '#f00'; - ctx.drawImage(bitmap, -50, -50); - _assertPixel(canvas, 25,25, 0,255,0,255); - _assertPixel(canvas, 50,25, 0,255,0,255); - _assertPixel(canvas, 75,25, 0,255,0,255); - }, t_fail); -}).then(t_pass, t_fail); - + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 50, 50); + ctx.fillStyle = '#f00'; + ctx.fillRect(50, 0, 50, 50); + ctx.shadowOffsetY = 50; + ctx.shadowColor = '#0f0'; + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/redtransparent.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + ctx.drawImage(bitmap, 50, -50); + ctx.shadowColor = '#f00'; + ctx.drawImage(bitmap, -50, -50); + _assertPixel(canvas, 25,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 75,25, 0,255,0,255); + }, t_fail); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.offset.negativeX.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.offset.negativeX.html index 97c04018..cc0d1adb 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.offset.negativeX.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.offset.negativeX.html
@@ -17,18 +17,18 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = '#0f0'; -ctx.shadowColor = '#0f0'; -ctx.shadowOffsetX = -50; -ctx.fillRect(50, 0, 50, 50); -_assertPixel(canvas, 25,25, 0,255,0,255); -_assertPixel(canvas, 75,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.shadowColor = '#0f0'; + ctx.shadowOffsetX = -50; + ctx.fillRect(50, 0, 50, 50); + _assertPixel(canvas, 25,25, 0,255,0,255); + _assertPixel(canvas, 75,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.offset.negativeX.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.offset.negativeX.worker.js index 93c2265..14c709a 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.offset.negativeX.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.offset.negativeX.worker.js
@@ -13,18 +13,17 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = '#0f0'; -ctx.shadowColor = '#0f0'; -ctx.shadowOffsetX = -50; -ctx.fillRect(50, 0, 50, 50); -_assertPixel(canvas, 25,25, 0,255,0,255); -_assertPixel(canvas, 75,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.shadowColor = '#0f0'; + ctx.shadowOffsetX = -50; + ctx.fillRect(50, 0, 50, 50); + _assertPixel(canvas, 25,25, 0,255,0,255); + _assertPixel(canvas, 75,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.offset.negativeY.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.offset.negativeY.html index 7f5d5ab9..82094cf 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.offset.negativeY.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.offset.negativeY.html
@@ -17,18 +17,18 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = '#0f0'; -ctx.shadowColor = '#0f0'; -ctx.shadowOffsetY = -25; -ctx.fillRect(0, 25, 100, 25); -_assertPixel(canvas, 50,12, 0,255,0,255); -_assertPixel(canvas, 50,37, 0,255,0,255); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.shadowColor = '#0f0'; + ctx.shadowOffsetY = -25; + ctx.fillRect(0, 25, 100, 25); + _assertPixel(canvas, 50,12, 0,255,0,255); + _assertPixel(canvas, 50,37, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.offset.negativeY.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.offset.negativeY.worker.js index 6ee0bcc7..036c615 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.offset.negativeY.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.offset.negativeY.worker.js
@@ -13,18 +13,17 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = '#0f0'; -ctx.shadowColor = '#0f0'; -ctx.shadowOffsetY = -25; -ctx.fillRect(0, 25, 100, 25); -_assertPixel(canvas, 50,12, 0,255,0,255); -_assertPixel(canvas, 50,37, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.shadowColor = '#0f0'; + ctx.shadowOffsetY = -25; + ctx.fillRect(0, 25, 100, 25); + _assertPixel(canvas, 50,12, 0,255,0,255); + _assertPixel(canvas, 50,37, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.offset.positiveX.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.offset.positiveX.html index a745de8..7094e98 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.offset.positiveX.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.offset.positiveX.html
@@ -17,18 +17,18 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = '#0f0'; -ctx.shadowColor = '#0f0'; -ctx.shadowOffsetX = 50; -ctx.fillRect(0, 0, 50, 50); -_assertPixel(canvas, 25,25, 0,255,0,255); -_assertPixel(canvas, 75,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.shadowColor = '#0f0'; + ctx.shadowOffsetX = 50; + ctx.fillRect(0, 0, 50, 50); + _assertPixel(canvas, 25,25, 0,255,0,255); + _assertPixel(canvas, 75,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.offset.positiveX.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.offset.positiveX.worker.js index 241fbda..176aca45 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.offset.positiveX.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.offset.positiveX.worker.js
@@ -13,18 +13,17 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = '#0f0'; -ctx.shadowColor = '#0f0'; -ctx.shadowOffsetX = 50; -ctx.fillRect(0, 0, 50, 50); -_assertPixel(canvas, 25,25, 0,255,0,255); -_assertPixel(canvas, 75,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.shadowColor = '#0f0'; + ctx.shadowOffsetX = 50; + ctx.fillRect(0, 0, 50, 50); + _assertPixel(canvas, 25,25, 0,255,0,255); + _assertPixel(canvas, 75,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.offset.positiveY.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.offset.positiveY.html index 168b1796..75e9b0af 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.offset.positiveY.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.offset.positiveY.html
@@ -17,18 +17,18 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = '#0f0'; -ctx.shadowColor = '#0f0'; -ctx.shadowOffsetY = 25; -ctx.fillRect(0, 0, 100, 25); -_assertPixel(canvas, 50,12, 0,255,0,255); -_assertPixel(canvas, 50,37, 0,255,0,255); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.shadowColor = '#0f0'; + ctx.shadowOffsetY = 25; + ctx.fillRect(0, 0, 100, 25); + _assertPixel(canvas, 50,12, 0,255,0,255); + _assertPixel(canvas, 50,37, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.offset.positiveY.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.offset.positiveY.worker.js index b3236d6..6b4d0c6a2 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.offset.positiveY.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.offset.positiveY.worker.js
@@ -13,18 +13,17 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = '#0f0'; -ctx.shadowColor = '#0f0'; -ctx.shadowOffsetY = 25; -ctx.fillRect(0, 0, 100, 25); -_assertPixel(canvas, 50,12, 0,255,0,255); -_assertPixel(canvas, 50,37, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.shadowColor = '#0f0'; + ctx.shadowOffsetY = 25; + ctx.fillRect(0, 0, 100, 25); + _assertPixel(canvas, 50,12, 0,255,0,255); + _assertPixel(canvas, 50,37, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.outside.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.outside.html index 207160d..4980514 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.outside.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.outside.html
@@ -17,26 +17,26 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.shadowColor = '#0f0'; -ctx.shadowOffsetX = 100; -ctx.fillRect(-100, 0, 25, 50); -ctx.shadowOffsetX = -100; -ctx.fillRect(175, 0, 25, 50); -ctx.shadowOffsetX = 0; -ctx.shadowOffsetY = 100; -ctx.fillRect(25, -100, 50, 25); -ctx.shadowOffsetY = -100; -ctx.fillRect(25, 125, 50, 25); -_assertPixel(canvas, 12,25, 0,255,0,255); -_assertPixel(canvas, 87,25, 0,255,0,255); -_assertPixel(canvas, 50,12, 0,255,0,255); -_assertPixel(canvas, 50,37, 0,255,0,255); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.shadowColor = '#0f0'; + ctx.shadowOffsetX = 100; + ctx.fillRect(-100, 0, 25, 50); + ctx.shadowOffsetX = -100; + ctx.fillRect(175, 0, 25, 50); + ctx.shadowOffsetX = 0; + ctx.shadowOffsetY = 100; + ctx.fillRect(25, -100, 50, 25); + ctx.shadowOffsetY = -100; + ctx.fillRect(25, 125, 50, 25); + _assertPixel(canvas, 12,25, 0,255,0,255); + _assertPixel(canvas, 87,25, 0,255,0,255); + _assertPixel(canvas, 50,12, 0,255,0,255); + _assertPixel(canvas, 50,37, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.outside.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.outside.worker.js index d0787d6..d2a071f 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.outside.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.outside.worker.js
@@ -13,26 +13,25 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.shadowColor = '#0f0'; -ctx.shadowOffsetX = 100; -ctx.fillRect(-100, 0, 25, 50); -ctx.shadowOffsetX = -100; -ctx.fillRect(175, 0, 25, 50); -ctx.shadowOffsetX = 0; -ctx.shadowOffsetY = 100; -ctx.fillRect(25, -100, 50, 25); -ctx.shadowOffsetY = -100; -ctx.fillRect(25, 125, 50, 25); -_assertPixel(canvas, 12,25, 0,255,0,255); -_assertPixel(canvas, 87,25, 0,255,0,255); -_assertPixel(canvas, 50,12, 0,255,0,255); -_assertPixel(canvas, 50,37, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.shadowColor = '#0f0'; + ctx.shadowOffsetX = 100; + ctx.fillRect(-100, 0, 25, 50); + ctx.shadowOffsetX = -100; + ctx.fillRect(175, 0, 25, 50); + ctx.shadowOffsetX = 0; + ctx.shadowOffsetY = 100; + ctx.fillRect(25, -100, 50, 25); + ctx.shadowOffsetY = -100; + ctx.fillRect(25, 125, 50, 25); + _assertPixel(canvas, 12,25, 0,255,0,255); + _assertPixel(canvas, 87,25, 0,255,0,255); + _assertPixel(canvas, 50,12, 0,255,0,255); + _assertPixel(canvas, 50,37, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.pattern.alpha.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.pattern.alpha.html index 48615ea..f2aebf79 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.pattern.alpha.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.pattern.alpha.html
@@ -17,29 +17,29 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/transparent50.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - var pattern = ctx.createPattern(bitmap, 'repeat'); - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.shadowOffsetY = 50; - ctx.shadowColor = '#00f'; - ctx.fillStyle = pattern; - ctx.fillRect(0, -50, 100, 50); - }, t_fail); -}).then(t_pass, t_fail); + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/transparent50.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + var pattern = ctx.createPattern(bitmap, 'repeat'); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.shadowOffsetY = 50; + ctx.shadowColor = '#00f'; + ctx.fillStyle = pattern; + ctx.fillRect(0, -50, 100, 50); + }, t_fail); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.pattern.alpha.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.pattern.alpha.worker.js index 6a53384..2dfa1040 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.pattern.alpha.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.pattern.alpha.worker.js
@@ -13,29 +13,28 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/transparent50.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - var pattern = ctx.createPattern(bitmap, 'repeat'); - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.shadowOffsetY = 50; - ctx.shadowColor = '#00f'; - ctx.fillStyle = pattern; - ctx.fillRect(0, -50, 100, 50); - }, t_fail); -}).then(t_pass, t_fail); - + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/transparent50.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + var pattern = ctx.createPattern(bitmap, 'repeat'); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.shadowOffsetY = 50; + ctx.shadowColor = '#00f'; + ctx.fillStyle = pattern; + ctx.fillRect(0, -50, 100, 50); + }, t_fail); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.pattern.basic.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.pattern.basic.html index 586f7ef..b26e476 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.pattern.basic.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.pattern.basic.html
@@ -17,29 +17,29 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/red.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - var pattern = ctx.createPattern(bitmap, 'repeat'); - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.shadowColor = '#0f0'; - ctx.shadowOffsetY = 50; - ctx.fillStyle = pattern; - ctx.fillRect(0, -50, 100, 50); - }, t_fail); -}).then(t_pass, t_fail); + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/red.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + var pattern = ctx.createPattern(bitmap, 'repeat'); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.shadowColor = '#0f0'; + ctx.shadowOffsetY = 50; + ctx.fillStyle = pattern; + ctx.fillRect(0, -50, 100, 50); + }, t_fail); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.pattern.basic.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.pattern.basic.worker.js index 6d2dce7c..f972db85 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.pattern.basic.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.pattern.basic.worker.js
@@ -13,29 +13,28 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/red.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - var pattern = ctx.createPattern(bitmap, 'repeat'); - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.shadowColor = '#0f0'; - ctx.shadowOffsetY = 50; - ctx.fillStyle = pattern; - ctx.fillRect(0, -50, 100, 50); - }, t_fail); -}).then(t_pass, t_fail); - + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/red.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + var pattern = ctx.createPattern(bitmap, 'repeat'); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.shadowColor = '#0f0'; + ctx.shadowOffsetY = 50; + ctx.fillStyle = pattern; + ctx.fillRect(0, -50, 100, 50); + }, t_fail); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.pattern.transparent.1.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.pattern.transparent.1.html index 6d97b59..62dd7ad 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.pattern.transparent.1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.pattern.transparent.1.html
@@ -17,29 +17,29 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/transparent.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - var pattern = ctx.createPattern(bitmap, 'repeat'); - ctx.fillStyle = '#0f0'; - ctx.fillRect(0, 0, 100, 50); - ctx.shadowColor = '#f00'; - ctx.shadowOffsetY = 50; - ctx.fillStyle = pattern; - ctx.fillRect(0, -50, 100, 50); - }, t_fail); -}).then(t_pass, t_fail); + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/transparent.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + var pattern = ctx.createPattern(bitmap, 'repeat'); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.shadowColor = '#f00'; + ctx.shadowOffsetY = 50; + ctx.fillStyle = pattern; + ctx.fillRect(0, -50, 100, 50); + }, t_fail); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.pattern.transparent.1.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.pattern.transparent.1.worker.js index cda0aa9..120c5e45 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.pattern.transparent.1.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.pattern.transparent.1.worker.js
@@ -13,29 +13,28 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/transparent.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - var pattern = ctx.createPattern(bitmap, 'repeat'); - ctx.fillStyle = '#0f0'; - ctx.fillRect(0, 0, 100, 50); - ctx.shadowColor = '#f00'; - ctx.shadowOffsetY = 50; - ctx.fillStyle = pattern; - ctx.fillRect(0, -50, 100, 50); - }, t_fail); -}).then(t_pass, t_fail); - + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/transparent.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + var pattern = ctx.createPattern(bitmap, 'repeat'); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.shadowColor = '#f00'; + ctx.shadowOffsetY = 50; + ctx.fillStyle = pattern; + ctx.fillRect(0, -50, 100, 50); + }, t_fail); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.pattern.transparent.2.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.pattern.transparent.2.html index 600fbd0..423f064 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.pattern.transparent.2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.pattern.transparent.2.html
@@ -17,34 +17,34 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/redtransparent.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - var pattern = ctx.createPattern(bitmap, 'repeat'); - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 50, 50); - ctx.fillStyle = '#0f0'; - ctx.fillRect(50, 0, 50, 50); - ctx.shadowOffsetY = 50; - ctx.shadowColor = '#0f0'; - ctx.fillStyle = pattern; - ctx.fillRect(0, -50, 100, 50); - _assertPixel(canvas, 25,25, 0,255,0,255); - _assertPixel(canvas, 50,25, 0,255,0,255); - _assertPixel(canvas, 75,25, 0,255,0,255); - }, t_fail); -}).then(t_pass, t_fail); + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/redtransparent.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + var pattern = ctx.createPattern(bitmap, 'repeat'); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 50, 50); + ctx.fillStyle = '#0f0'; + ctx.fillRect(50, 0, 50, 50); + ctx.shadowOffsetY = 50; + ctx.shadowColor = '#0f0'; + ctx.fillStyle = pattern; + ctx.fillRect(0, -50, 100, 50); + _assertPixel(canvas, 25,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 75,25, 0,255,0,255); + }, t_fail); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.pattern.transparent.2.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.pattern.transparent.2.worker.js index 2aa3166..ef8313a 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.pattern.transparent.2.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.pattern.transparent.2.worker.js
@@ -13,34 +13,33 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var promise = new Promise(function(resolve, reject) { - var xhr = new XMLHttpRequest(); - xhr.open("GET", '/images/redtransparent.png'); - xhr.responseType = 'blob'; - xhr.send(); - xhr.onload = function() { - resolve(xhr.response); - }; -}); -promise.then(function(response) { - createImageBitmap(response).then(bitmap => { - var pattern = ctx.createPattern(bitmap, 'repeat'); - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 50, 50); - ctx.fillStyle = '#0f0'; - ctx.fillRect(50, 0, 50, 50); - ctx.shadowOffsetY = 50; - ctx.shadowColor = '#0f0'; - ctx.fillStyle = pattern; - ctx.fillRect(0, -50, 100, 50); - _assertPixel(canvas, 25,25, 0,255,0,255); - _assertPixel(canvas, 50,25, 0,255,0,255); - _assertPixel(canvas, 75,25, 0,255,0,255); - }, t_fail); -}).then(t_pass, t_fail); - + var promise = new Promise(function(resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", '/images/redtransparent.png'); + xhr.responseType = 'blob'; + xhr.send(); + xhr.onload = function() { + resolve(xhr.response); + }; + }); + promise.then(function(response) { + createImageBitmap(response).then(bitmap => { + var pattern = ctx.createPattern(bitmap, 'repeat'); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 50, 50); + ctx.fillStyle = '#0f0'; + ctx.fillRect(50, 0, 50, 50); + ctx.shadowOffsetY = 50; + ctx.shadowColor = '#0f0'; + ctx.fillStyle = pattern; + ctx.fillRect(0, -50, 100, 50); + _assertPixel(canvas, 25,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 75,25, 0,255,0,255); + }, t_fail); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.stroke.basic.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.stroke.basic.html index 2711025..27edc875 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.stroke.basic.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.stroke.basic.html
@@ -17,23 +17,23 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.strokeStyle = '#f00'; -ctx.shadowColor = '#0f0'; -ctx.shadowOffsetY = 50; -ctx.beginPath(); -ctx.lineWidth = 50; -ctx.moveTo(0, -25); -ctx.lineTo(100, -25); -ctx.stroke(); -_assertPixel(canvas, 1,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 98,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.strokeStyle = '#f00'; + ctx.shadowColor = '#0f0'; + ctx.shadowOffsetY = 50; + ctx.beginPath(); + ctx.lineWidth = 50; + ctx.moveTo(0, -25); + ctx.lineTo(100, -25); + ctx.stroke(); + _assertPixel(canvas, 1,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 98,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.stroke.basic.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.stroke.basic.worker.js index 7ebbd8e..b62e6c7 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.stroke.basic.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.stroke.basic.worker.js
@@ -13,23 +13,22 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.strokeStyle = '#f00'; -ctx.shadowColor = '#0f0'; -ctx.shadowOffsetY = 50; -ctx.beginPath(); -ctx.lineWidth = 50; -ctx.moveTo(0, -25); -ctx.lineTo(100, -25); -ctx.stroke(); -_assertPixel(canvas, 1,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 98,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.strokeStyle = '#f00'; + ctx.shadowColor = '#0f0'; + ctx.shadowOffsetY = 50; + ctx.beginPath(); + ctx.lineWidth = 50; + ctx.moveTo(0, -25); + ctx.lineTo(100, -25); + ctx.stroke(); + _assertPixel(canvas, 1,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 98,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.stroke.cap.1.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.stroke.cap.1.html index 3854669..46f915b 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.stroke.cap.1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.stroke.cap.1.html
@@ -17,26 +17,26 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.strokeStyle = '#f00'; -ctx.shadowColor = '#f00'; -ctx.shadowOffsetY = 50; -ctx.beginPath(); -ctx.lineWidth = 50; -ctx.lineCap = 'butt'; -ctx.moveTo(-50, -25); -ctx.lineTo(0, -25); -ctx.moveTo(100, -25); -ctx.lineTo(150, -25); -ctx.stroke(); -_assertPixel(canvas, 1,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 98,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.strokeStyle = '#f00'; + ctx.shadowColor = '#f00'; + ctx.shadowOffsetY = 50; + ctx.beginPath(); + ctx.lineWidth = 50; + ctx.lineCap = 'butt'; + ctx.moveTo(-50, -25); + ctx.lineTo(0, -25); + ctx.moveTo(100, -25); + ctx.lineTo(150, -25); + ctx.stroke(); + _assertPixel(canvas, 1,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 98,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.stroke.cap.1.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.stroke.cap.1.worker.js index 7ecd07b1..21c588a 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.stroke.cap.1.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.stroke.cap.1.worker.js
@@ -13,26 +13,25 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.strokeStyle = '#f00'; -ctx.shadowColor = '#f00'; -ctx.shadowOffsetY = 50; -ctx.beginPath(); -ctx.lineWidth = 50; -ctx.lineCap = 'butt'; -ctx.moveTo(-50, -25); -ctx.lineTo(0, -25); -ctx.moveTo(100, -25); -ctx.lineTo(150, -25); -ctx.stroke(); -_assertPixel(canvas, 1,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 98,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.strokeStyle = '#f00'; + ctx.shadowColor = '#f00'; + ctx.shadowOffsetY = 50; + ctx.beginPath(); + ctx.lineWidth = 50; + ctx.lineCap = 'butt'; + ctx.moveTo(-50, -25); + ctx.lineTo(0, -25); + ctx.moveTo(100, -25); + ctx.lineTo(150, -25); + ctx.stroke(); + _assertPixel(canvas, 1,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 98,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.stroke.cap.2.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.stroke.cap.2.html index bd18ec6..91bfd80 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.stroke.cap.2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.stroke.cap.2.html
@@ -17,24 +17,24 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.strokeStyle = '#f00'; -ctx.shadowColor = '#0f0'; -ctx.shadowOffsetY = 50; -ctx.beginPath(); -ctx.lineWidth = 50; -ctx.lineCap = 'square'; -ctx.moveTo(25, -25); -ctx.lineTo(75, -25); -ctx.stroke(); -_assertPixel(canvas, 1,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 98,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.strokeStyle = '#f00'; + ctx.shadowColor = '#0f0'; + ctx.shadowOffsetY = 50; + ctx.beginPath(); + ctx.lineWidth = 50; + ctx.lineCap = 'square'; + ctx.moveTo(25, -25); + ctx.lineTo(75, -25); + ctx.stroke(); + _assertPixel(canvas, 1,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 98,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.stroke.cap.2.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.stroke.cap.2.worker.js index 7c7dc26..aa607cd 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.stroke.cap.2.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.stroke.cap.2.worker.js
@@ -13,24 +13,23 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.strokeStyle = '#f00'; -ctx.shadowColor = '#0f0'; -ctx.shadowOffsetY = 50; -ctx.beginPath(); -ctx.lineWidth = 50; -ctx.lineCap = 'square'; -ctx.moveTo(25, -25); -ctx.lineTo(75, -25); -ctx.stroke(); -_assertPixel(canvas, 1,25, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 98,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.strokeStyle = '#f00'; + ctx.shadowColor = '#0f0'; + ctx.shadowOffsetY = 50; + ctx.beginPath(); + ctx.lineWidth = 50; + ctx.lineCap = 'square'; + ctx.moveTo(25, -25); + ctx.lineTo(75, -25); + ctx.stroke(); + _assertPixel(canvas, 1,25, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 98,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.stroke.join.1.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.stroke.join.1.html index 8faa2fe..1a57acb 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.stroke.join.1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.stroke.join.1.html
@@ -17,26 +17,26 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.strokeStyle = '#f00'; -ctx.shadowColor = '#f00'; -ctx.shadowOffsetX = 100; -ctx.lineWidth = 200; -ctx.lineJoin = 'bevel'; -ctx.beginPath(); -ctx.moveTo(-200, -50); -ctx.lineTo(-150, -50); -ctx.lineTo(-151, -100); -ctx.stroke(); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 48,48, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); -t.done(); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.strokeStyle = '#f00'; + ctx.shadowColor = '#f00'; + ctx.shadowOffsetX = 100; + ctx.lineWidth = 200; + ctx.lineJoin = 'bevel'; + ctx.beginPath(); + ctx.moveTo(-200, -50); + ctx.lineTo(-150, -50); + ctx.lineTo(-151, -100); + ctx.stroke(); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 48,48, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.stroke.join.1.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.stroke.join.1.worker.js index e81a9b21..8628fd99 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.stroke.join.1.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.stroke.join.1.worker.js
@@ -13,26 +13,25 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.strokeStyle = '#f00'; -ctx.shadowColor = '#f00'; -ctx.shadowOffsetX = 100; -ctx.lineWidth = 200; -ctx.lineJoin = 'bevel'; -ctx.beginPath(); -ctx.moveTo(-200, -50); -ctx.lineTo(-150, -50); -ctx.lineTo(-151, -100); -ctx.stroke(); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 48,48, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.strokeStyle = '#f00'; + ctx.shadowColor = '#f00'; + ctx.shadowOffsetX = 100; + ctx.lineWidth = 200; + ctx.lineJoin = 'bevel'; + ctx.beginPath(); + ctx.moveTo(-200, -50); + ctx.lineTo(-150, -50); + ctx.lineTo(-151, -100); + ctx.stroke(); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 48,48, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.stroke.join.2.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.stroke.join.2.html index 7b52a7c9..394226c0e 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.stroke.join.2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.stroke.join.2.html
@@ -17,28 +17,28 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 50, 50); -ctx.fillStyle = '#0f0'; -ctx.fillRect(50, 0, 50, 50); -ctx.strokeStyle = '#f00'; -ctx.shadowColor = '#0f0'; -ctx.shadowOffsetX = 100; -ctx.lineWidth = 200; -ctx.lineJoin = 'miter'; -ctx.beginPath(); -ctx.moveTo(-200, -50); -ctx.lineTo(-150, -50); -ctx.lineTo(-151, -100); -ctx.stroke(); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 48,48, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 50, 50); + ctx.fillStyle = '#0f0'; + ctx.fillRect(50, 0, 50, 50); + ctx.strokeStyle = '#f00'; + ctx.shadowColor = '#0f0'; + ctx.shadowOffsetX = 100; + ctx.lineWidth = 200; + ctx.lineJoin = 'miter'; + ctx.beginPath(); + ctx.moveTo(-200, -50); + ctx.lineTo(-150, -50); + ctx.lineTo(-151, -100); + ctx.stroke(); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 48,48, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.stroke.join.2.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.stroke.join.2.worker.js index 269a49d7..06bcbd2 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.stroke.join.2.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.stroke.join.2.worker.js
@@ -13,28 +13,27 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 50, 50); -ctx.fillStyle = '#0f0'; -ctx.fillRect(50, 0, 50, 50); -ctx.strokeStyle = '#f00'; -ctx.shadowColor = '#0f0'; -ctx.shadowOffsetX = 100; -ctx.lineWidth = 200; -ctx.lineJoin = 'miter'; -ctx.beginPath(); -ctx.moveTo(-200, -50); -ctx.lineTo(-150, -50); -ctx.lineTo(-151, -100); -ctx.stroke(); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 48,48, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 50, 50); + ctx.fillStyle = '#0f0'; + ctx.fillRect(50, 0, 50, 50); + ctx.strokeStyle = '#f00'; + ctx.shadowColor = '#0f0'; + ctx.shadowOffsetX = 100; + ctx.lineWidth = 200; + ctx.lineJoin = 'miter'; + ctx.beginPath(); + ctx.moveTo(-200, -50); + ctx.lineTo(-150, -50); + ctx.lineTo(-151, -100); + ctx.stroke(); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 48,48, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.stroke.join.3.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.stroke.join.3.html index 6110d3a..2bf7d3d 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.stroke.join.3.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.stroke.join.3.html
@@ -17,27 +17,27 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.strokeStyle = '#f00'; -ctx.shadowColor = '#f00'; -ctx.shadowOffsetX = 100; -ctx.lineWidth = 200; -ctx.lineJoin = 'miter'; -ctx.miterLimit = 0.1; -ctx.beginPath(); -ctx.moveTo(-200, -50); -ctx.lineTo(-150, -50); -ctx.lineTo(-151, -100); // (not an exact right angle, to avoid some other bug in Firefox 3) -ctx.stroke(); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 48,48, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); -t.done(); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.strokeStyle = '#f00'; + ctx.shadowColor = '#f00'; + ctx.shadowOffsetX = 100; + ctx.lineWidth = 200; + ctx.lineJoin = 'miter'; + ctx.miterLimit = 0.1; + ctx.beginPath(); + ctx.moveTo(-200, -50); + ctx.lineTo(-150, -50); + ctx.lineTo(-151, -100); // (not an exact right angle, to avoid some other bug in Firefox 3) + ctx.stroke(); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 48,48, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.stroke.join.3.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.stroke.join.3.worker.js index 43144b0f..5c52537 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.stroke.join.3.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.stroke.join.3.worker.js
@@ -13,27 +13,26 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.strokeStyle = '#f00'; -ctx.shadowColor = '#f00'; -ctx.shadowOffsetX = 100; -ctx.lineWidth = 200; -ctx.lineJoin = 'miter'; -ctx.miterLimit = 0.1; -ctx.beginPath(); -ctx.moveTo(-200, -50); -ctx.lineTo(-150, -50); -ctx.lineTo(-151, -100); // (not an exact right angle, to avoid some other bug in Firefox 3) -ctx.stroke(); -_assertPixel(canvas, 1,1, 0,255,0,255); -_assertPixel(canvas, 48,48, 0,255,0,255); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 98,48, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.strokeStyle = '#f00'; + ctx.shadowColor = '#f00'; + ctx.shadowOffsetX = 100; + ctx.lineWidth = 200; + ctx.lineJoin = 'miter'; + ctx.miterLimit = 0.1; + ctx.beginPath(); + ctx.moveTo(-200, -50); + ctx.lineTo(-150, -50); + ctx.lineTo(-151, -100); // (not an exact right angle, to avoid some other bug in Firefox 3) + ctx.stroke(); + _assertPixel(canvas, 1,1, 0,255,0,255); + _assertPixel(canvas, 48,48, 0,255,0,255); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 98,48, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.transform.1.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.transform.1.html index d6c4e483..3fefcfc 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.transform.1.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.transform.1.html
@@ -17,17 +17,17 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.shadowOffsetY = 50; -ctx.shadowColor = '#0f0'; -ctx.translate(100, 100); -ctx.fillRect(-100, -150, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.shadowOffsetY = 50; + ctx.shadowColor = '#0f0'; + ctx.translate(100, 100); + ctx.fillRect(-100, -150, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.transform.1.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.transform.1.worker.js index 38cdf7e..6227d848 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.transform.1.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.transform.1.worker.js
@@ -13,17 +13,16 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.shadowOffsetY = 50; -ctx.shadowColor = '#0f0'; -ctx.translate(100, 100); -ctx.fillRect(-100, -150, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.shadowOffsetY = 50; + ctx.shadowColor = '#0f0'; + ctx.translate(100, 100); + ctx.fillRect(-100, -150, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.transform.2.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.transform.2.html index f0b1607..a4ba056 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.transform.2.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.transform.2.html
@@ -17,17 +17,17 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.shadowOffsetY = 50; -ctx.shadowColor = '#0f0'; -ctx.rotate(Math.PI) -ctx.fillRect(-100, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.shadowOffsetY = 50; + ctx.shadowColor = '#0f0'; + ctx.rotate(Math.PI) + ctx.fillRect(-100, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.transform.2.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.transform.2.worker.js index 9f204d2..32c322af 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.transform.2.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.transform.2.worker.js
@@ -13,17 +13,16 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.shadowOffsetY = 50; -ctx.shadowColor = '#0f0'; -ctx.rotate(Math.PI) -ctx.fillRect(-100, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.shadowOffsetY = 50; + ctx.shadowColor = '#0f0'; + ctx.rotate(Math.PI) + ctx.fillRect(-100, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.align.default.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.align.default.html index fda5ee4..7af2c77 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.align.default.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.align.default.html
@@ -17,11 +17,11 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -_assertSame(ctx.textAlign, 'start', "ctx.textAlign", "'start'"); -t.done(); + _assertSame(ctx.textAlign, 'start', "ctx.textAlign", "'start'"); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.align.default.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.align.default.worker.js index b2c940f..adee16c0 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.align.default.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.align.default.worker.js
@@ -13,11 +13,10 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -_assertSame(ctx.textAlign, 'start', "ctx.textAlign", "'start'"); -t.done(); - + _assertSame(ctx.textAlign, 'start', "ctx.textAlign", "'start'"); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.align.invalid.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.align.invalid.html index 8b6f409a..a7679d65 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.align.invalid.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.align.invalid.html
@@ -17,25 +17,25 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.textAlign = 'start'; -ctx.textAlign = 'bogus'; -_assertSame(ctx.textAlign, 'start', "ctx.textAlign", "'start'"); + ctx.textAlign = 'start'; + ctx.textAlign = 'bogus'; + _assertSame(ctx.textAlign, 'start', "ctx.textAlign", "'start'"); -ctx.textAlign = 'start'; -ctx.textAlign = 'END'; -_assertSame(ctx.textAlign, 'start', "ctx.textAlign", "'start'"); + ctx.textAlign = 'start'; + ctx.textAlign = 'END'; + _assertSame(ctx.textAlign, 'start', "ctx.textAlign", "'start'"); -ctx.textAlign = 'start'; -ctx.textAlign = 'end '; -_assertSame(ctx.textAlign, 'start', "ctx.textAlign", "'start'"); + ctx.textAlign = 'start'; + ctx.textAlign = 'end '; + _assertSame(ctx.textAlign, 'start', "ctx.textAlign", "'start'"); -ctx.textAlign = 'start'; -ctx.textAlign = 'end\0'; -_assertSame(ctx.textAlign, 'start', "ctx.textAlign", "'start'"); -t.done(); + ctx.textAlign = 'start'; + ctx.textAlign = 'end\0'; + _assertSame(ctx.textAlign, 'start', "ctx.textAlign", "'start'"); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.align.invalid.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.align.invalid.worker.js index 60ad8fa..dfd4c6625 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.align.invalid.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.align.invalid.worker.js
@@ -13,25 +13,24 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.textAlign = 'start'; -ctx.textAlign = 'bogus'; -_assertSame(ctx.textAlign, 'start', "ctx.textAlign", "'start'"); + ctx.textAlign = 'start'; + ctx.textAlign = 'bogus'; + _assertSame(ctx.textAlign, 'start', "ctx.textAlign", "'start'"); -ctx.textAlign = 'start'; -ctx.textAlign = 'END'; -_assertSame(ctx.textAlign, 'start', "ctx.textAlign", "'start'"); + ctx.textAlign = 'start'; + ctx.textAlign = 'END'; + _assertSame(ctx.textAlign, 'start', "ctx.textAlign", "'start'"); -ctx.textAlign = 'start'; -ctx.textAlign = 'end '; -_assertSame(ctx.textAlign, 'start', "ctx.textAlign", "'start'"); + ctx.textAlign = 'start'; + ctx.textAlign = 'end '; + _assertSame(ctx.textAlign, 'start', "ctx.textAlign", "'start'"); -ctx.textAlign = 'start'; -ctx.textAlign = 'end\0'; -_assertSame(ctx.textAlign, 'start', "ctx.textAlign", "'start'"); -t.done(); - + ctx.textAlign = 'start'; + ctx.textAlign = 'end\0'; + _assertSame(ctx.textAlign, 'start', "ctx.textAlign", "'start'"); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.align.valid.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.align.valid.html index a78b58e..eef6b29 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.align.valid.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.align.valid.html
@@ -17,24 +17,24 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.textAlign = 'start'; -_assertSame(ctx.textAlign, 'start', "ctx.textAlign", "'start'"); + ctx.textAlign = 'start'; + _assertSame(ctx.textAlign, 'start', "ctx.textAlign", "'start'"); -ctx.textAlign = 'end'; -_assertSame(ctx.textAlign, 'end', "ctx.textAlign", "'end'"); + ctx.textAlign = 'end'; + _assertSame(ctx.textAlign, 'end', "ctx.textAlign", "'end'"); -ctx.textAlign = 'left'; -_assertSame(ctx.textAlign, 'left', "ctx.textAlign", "'left'"); + ctx.textAlign = 'left'; + _assertSame(ctx.textAlign, 'left', "ctx.textAlign", "'left'"); -ctx.textAlign = 'right'; -_assertSame(ctx.textAlign, 'right', "ctx.textAlign", "'right'"); + ctx.textAlign = 'right'; + _assertSame(ctx.textAlign, 'right', "ctx.textAlign", "'right'"); -ctx.textAlign = 'center'; -_assertSame(ctx.textAlign, 'center', "ctx.textAlign", "'center'"); -t.done(); + ctx.textAlign = 'center'; + _assertSame(ctx.textAlign, 'center', "ctx.textAlign", "'center'"); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.align.valid.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.align.valid.worker.js index fdf1907..767d642 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.align.valid.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.align.valid.worker.js
@@ -13,24 +13,23 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.textAlign = 'start'; -_assertSame(ctx.textAlign, 'start', "ctx.textAlign", "'start'"); + ctx.textAlign = 'start'; + _assertSame(ctx.textAlign, 'start', "ctx.textAlign", "'start'"); -ctx.textAlign = 'end'; -_assertSame(ctx.textAlign, 'end', "ctx.textAlign", "'end'"); + ctx.textAlign = 'end'; + _assertSame(ctx.textAlign, 'end', "ctx.textAlign", "'end'"); -ctx.textAlign = 'left'; -_assertSame(ctx.textAlign, 'left', "ctx.textAlign", "'left'"); + ctx.textAlign = 'left'; + _assertSame(ctx.textAlign, 'left', "ctx.textAlign", "'left'"); -ctx.textAlign = 'right'; -_assertSame(ctx.textAlign, 'right', "ctx.textAlign", "'right'"); + ctx.textAlign = 'right'; + _assertSame(ctx.textAlign, 'right', "ctx.textAlign", "'right'"); -ctx.textAlign = 'center'; -_assertSame(ctx.textAlign, 'center', "ctx.textAlign", "'center'"); -t.done(); - + ctx.textAlign = 'center'; + _assertSame(ctx.textAlign, 'center', "ctx.textAlign", "'center'"); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.baseline.default.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.baseline.default.html index 8bd20c6..525a02f 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.baseline.default.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.baseline.default.html
@@ -17,11 +17,11 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -_assertSame(ctx.textBaseline, 'alphabetic', "ctx.textBaseline", "'alphabetic'"); -t.done(); + _assertSame(ctx.textBaseline, 'alphabetic', "ctx.textBaseline", "'alphabetic'"); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.baseline.default.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.baseline.default.worker.js index ea8693f0..667adb8 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.baseline.default.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.baseline.default.worker.js
@@ -13,11 +13,10 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -_assertSame(ctx.textBaseline, 'alphabetic', "ctx.textBaseline", "'alphabetic'"); -t.done(); - + _assertSame(ctx.textBaseline, 'alphabetic', "ctx.textBaseline", "'alphabetic'"); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.baseline.invalid.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.baseline.invalid.html index a850ac1..f30fad6 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.baseline.invalid.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.baseline.invalid.html
@@ -17,25 +17,25 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.textBaseline = 'top'; -ctx.textBaseline = 'bogus'; -_assertSame(ctx.textBaseline, 'top', "ctx.textBaseline", "'top'"); + ctx.textBaseline = 'top'; + ctx.textBaseline = 'bogus'; + _assertSame(ctx.textBaseline, 'top', "ctx.textBaseline", "'top'"); -ctx.textBaseline = 'top'; -ctx.textBaseline = 'MIDDLE'; -_assertSame(ctx.textBaseline, 'top', "ctx.textBaseline", "'top'"); + ctx.textBaseline = 'top'; + ctx.textBaseline = 'MIDDLE'; + _assertSame(ctx.textBaseline, 'top', "ctx.textBaseline", "'top'"); -ctx.textBaseline = 'top'; -ctx.textBaseline = 'middle '; -_assertSame(ctx.textBaseline, 'top', "ctx.textBaseline", "'top'"); + ctx.textBaseline = 'top'; + ctx.textBaseline = 'middle '; + _assertSame(ctx.textBaseline, 'top', "ctx.textBaseline", "'top'"); -ctx.textBaseline = 'top'; -ctx.textBaseline = 'middle\0'; -_assertSame(ctx.textBaseline, 'top', "ctx.textBaseline", "'top'"); -t.done(); + ctx.textBaseline = 'top'; + ctx.textBaseline = 'middle\0'; + _assertSame(ctx.textBaseline, 'top', "ctx.textBaseline", "'top'"); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.baseline.invalid.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.baseline.invalid.worker.js index d4cdc85..4310f81 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.baseline.invalid.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.baseline.invalid.worker.js
@@ -13,25 +13,24 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.textBaseline = 'top'; -ctx.textBaseline = 'bogus'; -_assertSame(ctx.textBaseline, 'top', "ctx.textBaseline", "'top'"); + ctx.textBaseline = 'top'; + ctx.textBaseline = 'bogus'; + _assertSame(ctx.textBaseline, 'top', "ctx.textBaseline", "'top'"); -ctx.textBaseline = 'top'; -ctx.textBaseline = 'MIDDLE'; -_assertSame(ctx.textBaseline, 'top', "ctx.textBaseline", "'top'"); + ctx.textBaseline = 'top'; + ctx.textBaseline = 'MIDDLE'; + _assertSame(ctx.textBaseline, 'top', "ctx.textBaseline", "'top'"); -ctx.textBaseline = 'top'; -ctx.textBaseline = 'middle '; -_assertSame(ctx.textBaseline, 'top', "ctx.textBaseline", "'top'"); + ctx.textBaseline = 'top'; + ctx.textBaseline = 'middle '; + _assertSame(ctx.textBaseline, 'top', "ctx.textBaseline", "'top'"); -ctx.textBaseline = 'top'; -ctx.textBaseline = 'middle\0'; -_assertSame(ctx.textBaseline, 'top', "ctx.textBaseline", "'top'"); -t.done(); - + ctx.textBaseline = 'top'; + ctx.textBaseline = 'middle\0'; + _assertSame(ctx.textBaseline, 'top', "ctx.textBaseline", "'top'"); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.baseline.valid.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.baseline.valid.html index 8fdc0588..9ff843c1 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.baseline.valid.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.baseline.valid.html
@@ -17,27 +17,27 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.textBaseline = 'top'; -_assertSame(ctx.textBaseline, 'top', "ctx.textBaseline", "'top'"); + ctx.textBaseline = 'top'; + _assertSame(ctx.textBaseline, 'top', "ctx.textBaseline", "'top'"); -ctx.textBaseline = 'hanging'; -_assertSame(ctx.textBaseline, 'hanging', "ctx.textBaseline", "'hanging'"); + ctx.textBaseline = 'hanging'; + _assertSame(ctx.textBaseline, 'hanging', "ctx.textBaseline", "'hanging'"); -ctx.textBaseline = 'middle'; -_assertSame(ctx.textBaseline, 'middle', "ctx.textBaseline", "'middle'"); + ctx.textBaseline = 'middle'; + _assertSame(ctx.textBaseline, 'middle', "ctx.textBaseline", "'middle'"); -ctx.textBaseline = 'alphabetic'; -_assertSame(ctx.textBaseline, 'alphabetic', "ctx.textBaseline", "'alphabetic'"); + ctx.textBaseline = 'alphabetic'; + _assertSame(ctx.textBaseline, 'alphabetic', "ctx.textBaseline", "'alphabetic'"); -ctx.textBaseline = 'ideographic'; -_assertSame(ctx.textBaseline, 'ideographic', "ctx.textBaseline", "'ideographic'"); + ctx.textBaseline = 'ideographic'; + _assertSame(ctx.textBaseline, 'ideographic', "ctx.textBaseline", "'ideographic'"); -ctx.textBaseline = 'bottom'; -_assertSame(ctx.textBaseline, 'bottom', "ctx.textBaseline", "'bottom'"); -t.done(); + ctx.textBaseline = 'bottom'; + _assertSame(ctx.textBaseline, 'bottom', "ctx.textBaseline", "'bottom'"); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.baseline.valid.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.baseline.valid.worker.js index 62f6983d..2f422f5 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.baseline.valid.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.baseline.valid.worker.js
@@ -13,27 +13,26 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.textBaseline = 'top'; -_assertSame(ctx.textBaseline, 'top', "ctx.textBaseline", "'top'"); + ctx.textBaseline = 'top'; + _assertSame(ctx.textBaseline, 'top', "ctx.textBaseline", "'top'"); -ctx.textBaseline = 'hanging'; -_assertSame(ctx.textBaseline, 'hanging', "ctx.textBaseline", "'hanging'"); + ctx.textBaseline = 'hanging'; + _assertSame(ctx.textBaseline, 'hanging', "ctx.textBaseline", "'hanging'"); -ctx.textBaseline = 'middle'; -_assertSame(ctx.textBaseline, 'middle', "ctx.textBaseline", "'middle'"); + ctx.textBaseline = 'middle'; + _assertSame(ctx.textBaseline, 'middle', "ctx.textBaseline", "'middle'"); -ctx.textBaseline = 'alphabetic'; -_assertSame(ctx.textBaseline, 'alphabetic', "ctx.textBaseline", "'alphabetic'"); + ctx.textBaseline = 'alphabetic'; + _assertSame(ctx.textBaseline, 'alphabetic', "ctx.textBaseline", "'alphabetic'"); -ctx.textBaseline = 'ideographic'; -_assertSame(ctx.textBaseline, 'ideographic', "ctx.textBaseline", "'ideographic'"); + ctx.textBaseline = 'ideographic'; + _assertSame(ctx.textBaseline, 'ideographic', "ctx.textBaseline", "'ideographic'"); -ctx.textBaseline = 'bottom'; -_assertSame(ctx.textBaseline, 'bottom', "ctx.textBaseline", "'bottom'"); -t.done(); - + ctx.textBaseline = 'bottom'; + _assertSame(ctx.textBaseline, 'bottom', "ctx.textBaseline", "'bottom'"); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.align.center.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.align.center.html index 438e675..f855930f 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.align.center.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.align.center.html
@@ -17,27 +17,27 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); -let fonts = (self.fonts ? self.fonts : document.fonts); -f.load(); -fonts.add(f); -fonts.ready.then(function() { - ctx.font = '50px CanvasTest'; - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.fillStyle = '#0f0'; - ctx.textAlign = 'center'; - ctx.fillText('DD', 50, 37.5); - _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 5,45, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,45, 0,255,0,255, 2); - }).then(t_pass, t_fail); + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.textAlign = 'center'; + ctx.fillText('DD', 50, 37.5); + _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 5,45, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,45, 0,255,0,255, 2); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.align.center.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.align.center.worker.js index 9487e6a..a24b839 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.align.center.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.align.center.worker.js
@@ -13,27 +13,26 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); -let fonts = (self.fonts ? self.fonts : document.fonts); -f.load(); -fonts.add(f); -fonts.ready.then(function() { - ctx.font = '50px CanvasTest'; - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.fillStyle = '#0f0'; - ctx.textAlign = 'center'; - ctx.fillText('DD', 50, 37.5); - _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 5,45, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,45, 0,255,0,255, 2); - }).then(t_pass, t_fail); - + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.textAlign = 'center'; + ctx.fillText('DD', 50, 37.5); + _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 5,45, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,45, 0,255,0,255, 2); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.align.end.ltr.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.align.end.ltr.html index 6134042..ae69277be 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.align.end.ltr.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.align.end.ltr.html
@@ -17,28 +17,28 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); -let fonts = (self.fonts ? self.fonts : document.fonts); -f.load(); -fonts.add(f); -fonts.ready.then(function() { - ctx.font = '50px CanvasTest'; - ctx.direction = 'ltr'; - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.fillStyle = '#0f0'; - ctx.textAlign = 'end'; - ctx.fillText('DD', 100, 37.5); - _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 5,45, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,45, 0,255,0,255, 2); - }).then(t_pass, t_fail); + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; + ctx.direction = 'ltr'; + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.textAlign = 'end'; + ctx.fillText('DD', 100, 37.5); + _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 5,45, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,45, 0,255,0,255, 2); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.align.end.ltr.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.align.end.ltr.worker.js index 2a7b9e94..64dc013 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.align.end.ltr.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.align.end.ltr.worker.js
@@ -13,28 +13,27 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); -let fonts = (self.fonts ? self.fonts : document.fonts); -f.load(); -fonts.add(f); -fonts.ready.then(function() { - ctx.font = '50px CanvasTest'; - ctx.direction = 'ltr'; - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.fillStyle = '#0f0'; - ctx.textAlign = 'end'; - ctx.fillText('DD', 100, 37.5); - _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 5,45, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,45, 0,255,0,255, 2); - }).then(t_pass, t_fail); - + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; + ctx.direction = 'ltr'; + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.textAlign = 'end'; + ctx.fillText('DD', 100, 37.5); + _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 5,45, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,45, 0,255,0,255, 2); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.align.end.rtl.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.align.end.rtl.html index a4b5024..cabc85e 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.align.end.rtl.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.align.end.rtl.html
@@ -17,28 +17,28 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); -let fonts = (self.fonts ? self.fonts : document.fonts); -f.load(); -fonts.add(f); -fonts.ready.then(function() { - ctx.font = '50px CanvasTest'; - ctx.direction = 'rtl'; - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.fillStyle = '#0f0'; - ctx.textAlign = 'end'; - ctx.fillText('DD', 0, 37.5); - _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 5,45, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,45, 0,255,0,255, 2); - }).then(t_pass, t_fail); + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; + ctx.direction = 'rtl'; + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.textAlign = 'end'; + ctx.fillText('DD', 0, 37.5); + _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 5,45, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,45, 0,255,0,255, 2); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.align.end.rtl.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.align.end.rtl.worker.js index deb8227e..b177d0e 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.align.end.rtl.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.align.end.rtl.worker.js
@@ -13,28 +13,27 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); -let fonts = (self.fonts ? self.fonts : document.fonts); -f.load(); -fonts.add(f); -fonts.ready.then(function() { - ctx.font = '50px CanvasTest'; - ctx.direction = 'rtl'; - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.fillStyle = '#0f0'; - ctx.textAlign = 'end'; - ctx.fillText('DD', 0, 37.5); - _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 5,45, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,45, 0,255,0,255, 2); - }).then(t_pass, t_fail); - + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; + ctx.direction = 'rtl'; + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.textAlign = 'end'; + ctx.fillText('DD', 0, 37.5); + _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 5,45, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,45, 0,255,0,255, 2); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.align.left.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.align.left.html index 6e69a83..0166b9b 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.align.left.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.align.left.html
@@ -17,27 +17,27 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); -let fonts = (self.fonts ? self.fonts : document.fonts); -f.load(); -fonts.add(f); -fonts.ready.then(function() { - ctx.font = '50px CanvasTest'; - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.fillStyle = '#0f0'; - ctx.textAlign = 'left'; - ctx.fillText('DD', 0, 37.5); - _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 5,45, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,45, 0,255,0,255, 2); - }).then(t_pass, t_fail); + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.textAlign = 'left'; + ctx.fillText('DD', 0, 37.5); + _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 5,45, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,45, 0,255,0,255, 2); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.align.left.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.align.left.worker.js index 9c555126..be8a4e1 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.align.left.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.align.left.worker.js
@@ -13,27 +13,26 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); -let fonts = (self.fonts ? self.fonts : document.fonts); -f.load(); -fonts.add(f); -fonts.ready.then(function() { - ctx.font = '50px CanvasTest'; - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.fillStyle = '#0f0'; - ctx.textAlign = 'left'; - ctx.fillText('DD', 0, 37.5); - _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 5,45, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,45, 0,255,0,255, 2); - }).then(t_pass, t_fail); - + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.textAlign = 'left'; + ctx.fillText('DD', 0, 37.5); + _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 5,45, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,45, 0,255,0,255, 2); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.align.right.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.align.right.html index a56c7ca..011f6dc 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.align.right.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.align.right.html
@@ -17,27 +17,27 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); -let fonts = (self.fonts ? self.fonts : document.fonts); -f.load(); -fonts.add(f); -fonts.ready.then(function() { - ctx.font = '50px CanvasTest'; - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.fillStyle = '#0f0'; - ctx.textAlign = 'right'; - ctx.fillText('DD', 100, 37.5); - _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 5,45, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,45, 0,255,0,255, 2); - }).then(t_pass, t_fail); + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.textAlign = 'right'; + ctx.fillText('DD', 100, 37.5); + _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 5,45, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,45, 0,255,0,255, 2); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.align.right.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.align.right.worker.js index f246963..43f00dcb 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.align.right.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.align.right.worker.js
@@ -13,27 +13,26 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); -let fonts = (self.fonts ? self.fonts : document.fonts); -f.load(); -fonts.add(f); -fonts.ready.then(function() { - ctx.font = '50px CanvasTest'; - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.fillStyle = '#0f0'; - ctx.textAlign = 'right'; - ctx.fillText('DD', 100, 37.5); - _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 5,45, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,45, 0,255,0,255, 2); - }).then(t_pass, t_fail); - + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.textAlign = 'right'; + ctx.fillText('DD', 100, 37.5); + _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 5,45, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,45, 0,255,0,255, 2); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.align.start.ltr.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.align.start.ltr.html index ba8c440..b15fb4c 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.align.start.ltr.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.align.start.ltr.html
@@ -17,28 +17,28 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); -let fonts = (self.fonts ? self.fonts : document.fonts); -f.load(); -fonts.add(f); -fonts.ready.then(function() { - ctx.font = '50px CanvasTest'; - ctx.direction = 'ltr'; - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.fillStyle = '#0f0'; - ctx.textAlign = 'start'; - ctx.fillText('DD', 0, 37.5); - _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 5,45, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,45, 0,255,0,255, 2); - }).then(t_pass, t_fail); + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; + ctx.direction = 'ltr'; + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.textAlign = 'start'; + ctx.fillText('DD', 0, 37.5); + _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 5,45, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,45, 0,255,0,255, 2); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.align.start.ltr.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.align.start.ltr.worker.js index 2de9d50..a320493 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.align.start.ltr.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.align.start.ltr.worker.js
@@ -13,28 +13,27 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); -let fonts = (self.fonts ? self.fonts : document.fonts); -f.load(); -fonts.add(f); -fonts.ready.then(function() { - ctx.font = '50px CanvasTest'; - ctx.direction = 'ltr'; - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.fillStyle = '#0f0'; - ctx.textAlign = 'start'; - ctx.fillText('DD', 0, 37.5); - _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 5,45, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,45, 0,255,0,255, 2); - }).then(t_pass, t_fail); - + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; + ctx.direction = 'ltr'; + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.textAlign = 'start'; + ctx.fillText('DD', 0, 37.5); + _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 5,45, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,45, 0,255,0,255, 2); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.align.start.rtl.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.align.start.rtl.html index 32f83430..c8a0de2 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.align.start.rtl.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.align.start.rtl.html
@@ -17,28 +17,28 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); -let fonts = (self.fonts ? self.fonts : document.fonts); -f.load(); -fonts.add(f); -fonts.ready.then(function() { - ctx.font = '50px CanvasTest'; - ctx.direction = 'rtl'; - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.fillStyle = '#0f0'; - ctx.textAlign = 'start'; - ctx.fillText('DD', 100, 37.5); - _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 5,45, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,45, 0,255,0,255, 2); - }).then(t_pass, t_fail); + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; + ctx.direction = 'rtl'; + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.textAlign = 'start'; + ctx.fillText('DD', 100, 37.5); + _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 5,45, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,45, 0,255,0,255, 2); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.align.start.rtl.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.align.start.rtl.worker.js index 41cb57b9..ad03dd5 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.align.start.rtl.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.align.start.rtl.worker.js
@@ -13,28 +13,27 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); -let fonts = (self.fonts ? self.fonts : document.fonts); -f.load(); -fonts.add(f); -fonts.ready.then(function() { - ctx.font = '50px CanvasTest'; - ctx.direction = 'rtl'; - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.fillStyle = '#0f0'; - ctx.textAlign = 'start'; - ctx.fillText('DD', 100, 37.5); - _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 5,45, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,45, 0,255,0,255, 2); - }).then(t_pass, t_fail); - + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; + ctx.direction = 'rtl'; + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.textAlign = 'start'; + ctx.fillText('DD', 100, 37.5); + _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 5,45, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,45, 0,255,0,255, 2); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.baseline.alphabetic.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.baseline.alphabetic.html index bd6a180..6cb550f 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.baseline.alphabetic.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.baseline.alphabetic.html
@@ -17,27 +17,27 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); -let fonts = (self.fonts ? self.fonts : document.fonts); -f.load(); -fonts.add(f); -fonts.ready.then(function() { - ctx.font = '50px CanvasTest'; - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.fillStyle = '#0f0'; - ctx.textBaseline = 'alphabetic'; - ctx.fillText('CC', 0, 37.5); - _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 5,45, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,45, 0,255,0,255, 2); - }).then(t_pass, t_fail); + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.textBaseline = 'alphabetic'; + ctx.fillText('CC', 0, 37.5); + _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 5,45, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,45, 0,255,0,255, 2); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.baseline.alphabetic.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.baseline.alphabetic.worker.js index 5b4fe08..ed2c3f88 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.baseline.alphabetic.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.baseline.alphabetic.worker.js
@@ -13,27 +13,26 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); -let fonts = (self.fonts ? self.fonts : document.fonts); -f.load(); -fonts.add(f); -fonts.ready.then(function() { - ctx.font = '50px CanvasTest'; - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.fillStyle = '#0f0'; - ctx.textBaseline = 'alphabetic'; - ctx.fillText('CC', 0, 37.5); - _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 5,45, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,45, 0,255,0,255, 2); - }).then(t_pass, t_fail); - + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.textBaseline = 'alphabetic'; + ctx.fillText('CC', 0, 37.5); + _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 5,45, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,45, 0,255,0,255, 2); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.baseline.bottom.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.baseline.bottom.html index 4e5fc8e..398b4a9 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.baseline.bottom.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.baseline.bottom.html
@@ -17,27 +17,27 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); -let fonts = (self.fonts ? self.fonts : document.fonts); -f.load(); -fonts.add(f); -fonts.ready.then(function() { - ctx.font = '50px CanvasTest'; - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.fillStyle = '#0f0'; - ctx.textBaseline = 'bottom'; - ctx.fillText('CC', 0, 50); - _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 5,45, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,45, 0,255,0,255, 2); - }).then(t_pass, t_fail); + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.textBaseline = 'bottom'; + ctx.fillText('CC', 0, 50); + _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 5,45, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,45, 0,255,0,255, 2); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.baseline.bottom.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.baseline.bottom.worker.js index 1c7cab3e..7273763 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.baseline.bottom.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.baseline.bottom.worker.js
@@ -13,27 +13,26 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); -let fonts = (self.fonts ? self.fonts : document.fonts); -f.load(); -fonts.add(f); -fonts.ready.then(function() { - ctx.font = '50px CanvasTest'; - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.fillStyle = '#0f0'; - ctx.textBaseline = 'bottom'; - ctx.fillText('CC', 0, 50); - _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 5,45, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,45, 0,255,0,255, 2); - }).then(t_pass, t_fail); - + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.textBaseline = 'bottom'; + ctx.fillText('CC', 0, 50); + _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 5,45, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,45, 0,255,0,255, 2); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.baseline.hanging.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.baseline.hanging.html index d0d5737..0b822834 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.baseline.hanging.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.baseline.hanging.html
@@ -17,27 +17,27 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); -let fonts = (self.fonts ? self.fonts : document.fonts); -f.load(); -fonts.add(f); -fonts.ready.then(function() { - ctx.font = '50px CanvasTest'; - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.fillStyle = '#0f0'; - ctx.textBaseline = 'hanging'; - ctx.fillText('CC', 0, 12.5); - _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 5,45, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,45, 0,255,0,255, 2); - }).then(t_pass, t_fail); + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.textBaseline = 'hanging'; + ctx.fillText('CC', 0, 12.5); + _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 5,45, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,45, 0,255,0,255, 2); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.baseline.hanging.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.baseline.hanging.worker.js index 79df7d8..fca74d6 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.baseline.hanging.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.baseline.hanging.worker.js
@@ -13,27 +13,26 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); -let fonts = (self.fonts ? self.fonts : document.fonts); -f.load(); -fonts.add(f); -fonts.ready.then(function() { - ctx.font = '50px CanvasTest'; - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.fillStyle = '#0f0'; - ctx.textBaseline = 'hanging'; - ctx.fillText('CC', 0, 12.5); - _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 5,45, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,45, 0,255,0,255, 2); - }).then(t_pass, t_fail); - + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.textBaseline = 'hanging'; + ctx.fillText('CC', 0, 12.5); + _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 5,45, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,45, 0,255,0,255, 2); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.baseline.ideographic.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.baseline.ideographic.html index 144d56f7..c996444b 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.baseline.ideographic.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.baseline.ideographic.html
@@ -17,27 +17,27 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); -let fonts = (self.fonts ? self.fonts : document.fonts); -f.load(); -fonts.add(f); -fonts.ready.then(function() { - ctx.font = '50px CanvasTest'; - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.fillStyle = '#0f0'; - ctx.textBaseline = 'ideographic'; - ctx.fillText('CC', 0, 31.25); - _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 5,45, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,45, 0,255,0,255, 2); - }).then(t_pass, t_fail); + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.textBaseline = 'ideographic'; + ctx.fillText('CC', 0, 31.25); + _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 5,45, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,45, 0,255,0,255, 2); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.baseline.ideographic.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.baseline.ideographic.worker.js index ef7d018..0ffa6fe 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.baseline.ideographic.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.baseline.ideographic.worker.js
@@ -13,27 +13,26 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); -let fonts = (self.fonts ? self.fonts : document.fonts); -f.load(); -fonts.add(f); -fonts.ready.then(function() { - ctx.font = '50px CanvasTest'; - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.fillStyle = '#0f0'; - ctx.textBaseline = 'ideographic'; - ctx.fillText('CC', 0, 31.25); - _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 5,45, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,45, 0,255,0,255, 2); - }).then(t_pass, t_fail); - + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.textBaseline = 'ideographic'; + ctx.fillText('CC', 0, 31.25); + _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 5,45, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,45, 0,255,0,255, 2); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.baseline.middle.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.baseline.middle.html index 3072264b..911da8b 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.baseline.middle.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.baseline.middle.html
@@ -17,27 +17,27 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); -let fonts = (self.fonts ? self.fonts : document.fonts); -f.load(); -fonts.add(f); -fonts.ready.then(function() { - ctx.font = '50px CanvasTest'; - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.fillStyle = '#0f0'; - ctx.textBaseline = 'middle'; - ctx.fillText('CC', 0, 25); - _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 5,45, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,45, 0,255,0,255, 2); - }).then(t_pass, t_fail); + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.textBaseline = 'middle'; + ctx.fillText('CC', 0, 25); + _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 5,45, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,45, 0,255,0,255, 2); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.baseline.middle.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.baseline.middle.worker.js index a0509b6..eeb32ea 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.baseline.middle.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.baseline.middle.worker.js
@@ -13,27 +13,26 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); -let fonts = (self.fonts ? self.fonts : document.fonts); -f.load(); -fonts.add(f); -fonts.ready.then(function() { - ctx.font = '50px CanvasTest'; - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.fillStyle = '#0f0'; - ctx.textBaseline = 'middle'; - ctx.fillText('CC', 0, 25); - _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 5,45, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,45, 0,255,0,255, 2); - }).then(t_pass, t_fail); - + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.textBaseline = 'middle'; + ctx.fillText('CC', 0, 25); + _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 5,45, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,45, 0,255,0,255, 2); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.baseline.top.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.baseline.top.html index a077aff..56b5bb7d 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.baseline.top.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.baseline.top.html
@@ -17,27 +17,27 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); -let fonts = (self.fonts ? self.fonts : document.fonts); -f.load(); -fonts.add(f); -fonts.ready.then(function() { - ctx.font = '50px CanvasTest'; - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.fillStyle = '#0f0'; - ctx.textBaseline = 'top'; - ctx.fillText('CC', 0, 0); - _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 5,45, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,45, 0,255,0,255, 2); - }).then(t_pass, t_fail); + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.textBaseline = 'top'; + ctx.fillText('CC', 0, 0); + _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 5,45, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,45, 0,255,0,255, 2); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.baseline.top.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.baseline.top.worker.js index bbc7fc06..d4341c69 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.baseline.top.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.baseline.top.worker.js
@@ -13,27 +13,26 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); -let fonts = (self.fonts ? self.fonts : document.fonts); -f.load(); -fonts.add(f); -fonts.ready.then(function() { - ctx.font = '50px CanvasTest'; - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.fillStyle = '#0f0'; - ctx.textBaseline = 'top'; - ctx.fillText('CC', 0, 0); - _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 5,45, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,45, 0,255,0,255, 2); - }).then(t_pass, t_fail); - + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.textBaseline = 'top'; + ctx.fillText('CC', 0, 0); + _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 5,45, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,45, 0,255,0,255, 2); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fill.basic-manual.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fill.basic-manual.html index 5c364f5..af1cb9d 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fill.basic-manual.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fill.basic-manual.html
@@ -17,16 +17,16 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#000'; -ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = '#0f0'; -ctx.strokeStyle = '#f00'; -ctx.font = '35px Arial, sans-serif'; -ctx.fillText('PASS', 5, 35); -t.done(); + ctx.fillStyle = '#000'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.strokeStyle = '#f00'; + ctx.font = '35px Arial, sans-serif'; + ctx.fillText('PASS', 5, 35); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fill.basic-manual.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fill.basic-manual.worker.js index b75be089..ef00236 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fill.basic-manual.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fill.basic-manual.worker.js
@@ -13,16 +13,15 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#000'; -ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = '#0f0'; -ctx.strokeStyle = '#f00'; -ctx.font = '35px Arial, sans-serif'; -ctx.fillText('PASS', 5, 35); -t.done(); - + ctx.fillStyle = '#000'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.strokeStyle = '#f00'; + ctx.font = '35px Arial, sans-serif'; + ctx.fillText('PASS', 5, 35); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fill.maxWidth.NaN.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fill.maxWidth.NaN.html index 4bef0e3..8f22b9f 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fill.maxWidth.NaN.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fill.maxWidth.NaN.html
@@ -17,16 +17,16 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = '#f00'; -ctx.font = '35px Arial, sans-serif'; -ctx.fillText('fail fail fail fail fail', 5, 35, NaN); -_assertGreen(ctx, 100, 50); -t.done(); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#f00'; + ctx.font = '35px Arial, sans-serif'; + ctx.fillText('fail fail fail fail fail', 5, 35, NaN); + _assertGreen(ctx, 100, 50); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fill.maxWidth.NaN.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fill.maxWidth.NaN.worker.js index 32a673f..fd1dff13 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fill.maxWidth.NaN.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fill.maxWidth.NaN.worker.js
@@ -13,16 +13,15 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = '#f00'; -ctx.font = '35px Arial, sans-serif'; -ctx.fillText('fail fail fail fail fail', 5, 35, NaN); -_assertGreen(ctx, 100, 50); -t.done(); - + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#f00'; + ctx.font = '35px Arial, sans-serif'; + ctx.fillText('fail fail fail fail fail', 5, 35, NaN); + _assertGreen(ctx, 100, 50); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fill.maxWidth.bound.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fill.maxWidth.bound.html index 63b3096..ae21607 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fill.maxWidth.bound.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fill.maxWidth.bound.html
@@ -17,24 +17,24 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); -let fonts = (self.fonts ? self.fonts : document.fonts); -f.load(); -fonts.add(f); -fonts.ready.then(function() { - ctx.font = '50px CanvasTest'; - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.fillStyle = '#0f0'; - ctx.fillText('DD', 0, 37.5, 100); - _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); - }).then(t_pass, t_fail); + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.fillText('DD', 0, 37.5, 100); + _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fill.maxWidth.bound.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fill.maxWidth.bound.worker.js index 092289b..240bffe 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fill.maxWidth.bound.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fill.maxWidth.bound.worker.js
@@ -13,24 +13,23 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); -let fonts = (self.fonts ? self.fonts : document.fonts); -f.load(); -fonts.add(f); -fonts.ready.then(function() { - ctx.font = '50px CanvasTest'; - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.fillStyle = '#0f0'; - ctx.fillText('DD', 0, 37.5, 100); - _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); - }).then(t_pass, t_fail); - + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.fillText('DD', 0, 37.5, 100); + _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fill.maxWidth.fontface.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fill.maxWidth.fontface.html index 9294bf9..259fdc7 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fill.maxWidth.fontface.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fill.maxWidth.fontface.html
@@ -17,24 +17,24 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); -let fonts = (self.fonts ? self.fonts : document.fonts); -f.load(); -fonts.add(f); -fonts.ready.then(function() { - ctx.font = '50px CanvasTest'; - ctx.fillStyle = '#0f0'; - ctx.fillRect(0, 0, 100, 50); - ctx.fillStyle = '#f00'; - ctx.fillText('EEEE', -50, 37.5, 40); - _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); - }).then(t_pass, t_fail); + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#f00'; + ctx.fillText('EEEE', -50, 37.5, 40); + _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fill.maxWidth.fontface.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fill.maxWidth.fontface.worker.js index 99cc25e..7aa3f47 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fill.maxWidth.fontface.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fill.maxWidth.fontface.worker.js
@@ -13,24 +13,23 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); -let fonts = (self.fonts ? self.fonts : document.fonts); -f.load(); -fonts.add(f); -fonts.ready.then(function() { - ctx.font = '50px CanvasTest'; - ctx.fillStyle = '#0f0'; - ctx.fillRect(0, 0, 100, 50); - ctx.fillStyle = '#f00'; - ctx.fillText('EEEE', -50, 37.5, 40); - _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); - }).then(t_pass, t_fail); - + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#f00'; + ctx.fillText('EEEE', -50, 37.5, 40); + _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fill.maxWidth.large-manual.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fill.maxWidth.large-manual.html index 838b3f8..7a0cf11b 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fill.maxWidth.large-manual.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fill.maxWidth.large-manual.html
@@ -17,15 +17,15 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#000'; -ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = '#0f0'; -ctx.font = '35px Arial, sans-serif'; -ctx.fillText('PASS', 5, 35, 200); -t.done(); + ctx.fillStyle = '#000'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.font = '35px Arial, sans-serif'; + ctx.fillText('PASS', 5, 35, 200); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fill.maxWidth.large-manual.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fill.maxWidth.large-manual.worker.js index e124b08e..3e200e8 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fill.maxWidth.large-manual.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fill.maxWidth.large-manual.worker.js
@@ -13,15 +13,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#000'; -ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = '#0f0'; -ctx.font = '35px Arial, sans-serif'; -ctx.fillText('PASS', 5, 35, 200); -t.done(); - + ctx.fillStyle = '#000'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.font = '35px Arial, sans-serif'; + ctx.fillText('PASS', 5, 35, 200); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fill.maxWidth.negative.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fill.maxWidth.negative.html index 9d06556..4411fbf 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fill.maxWidth.negative.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fill.maxWidth.negative.html
@@ -17,16 +17,16 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = '#f00'; -ctx.font = '35px Arial, sans-serif'; -ctx.fillText('fail fail fail fail fail', 5, 35, -1); -_assertGreen(ctx, 100, 50); -t.done(); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#f00'; + ctx.font = '35px Arial, sans-serif'; + ctx.fillText('fail fail fail fail fail', 5, 35, -1); + _assertGreen(ctx, 100, 50); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fill.maxWidth.negative.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fill.maxWidth.negative.worker.js index bf852bc5..50076b5 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fill.maxWidth.negative.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fill.maxWidth.negative.worker.js
@@ -13,16 +13,15 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = '#f00'; -ctx.font = '35px Arial, sans-serif'; -ctx.fillText('fail fail fail fail fail', 5, 35, -1); -_assertGreen(ctx, 100, 50); -t.done(); - + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#f00'; + ctx.font = '35px Arial, sans-serif'; + ctx.fillText('fail fail fail fail fail', 5, 35, -1); + _assertGreen(ctx, 100, 50); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fill.maxWidth.small.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fill.maxWidth.small.html index 37c137e..94988fc 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fill.maxWidth.small.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fill.maxWidth.small.html
@@ -17,16 +17,16 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = '#f00'; -ctx.font = '35px Arial, sans-serif'; -ctx.fillText('fail fail fail fail fail', -100, 35, 90); -_assertGreen(ctx, 100, 50); -t.done(); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#f00'; + ctx.font = '35px Arial, sans-serif'; + ctx.fillText('fail fail fail fail fail', -100, 35, 90); + _assertGreen(ctx, 100, 50); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fill.maxWidth.small.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fill.maxWidth.small.worker.js index 44cf210..5d5ef4e3 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fill.maxWidth.small.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fill.maxWidth.small.worker.js
@@ -13,16 +13,15 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = '#f00'; -ctx.font = '35px Arial, sans-serif'; -ctx.fillText('fail fail fail fail fail', -100, 35, 90); -_assertGreen(ctx, 100, 50); -t.done(); - + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#f00'; + ctx.font = '35px Arial, sans-serif'; + ctx.fillText('fail fail fail fail fail', -100, 35, 90); + _assertGreen(ctx, 100, 50); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fill.maxWidth.zero.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fill.maxWidth.zero.html index c5bec91..0056d75 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fill.maxWidth.zero.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fill.maxWidth.zero.html
@@ -18,16 +18,16 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = '#f00'; -ctx.font = '35px Arial, sans-serif'; -ctx.fillText('fail fail fail fail fail', 5, 35, 0); -_assertGreen(ctx, 100, 50); -t.done(); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#f00'; + ctx.font = '35px Arial, sans-serif'; + ctx.fillText('fail fail fail fail fail', 5, 35, 0); + _assertGreen(ctx, 100, 50); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fill.maxWidth.zero.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fill.maxWidth.zero.worker.js index 6701f5b..65e67cc 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fill.maxWidth.zero.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fill.maxWidth.zero.worker.js
@@ -14,16 +14,15 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = '#f00'; -ctx.font = '35px Arial, sans-serif'; -ctx.fillText('fail fail fail fail fail', 5, 35, 0); -_assertGreen(ctx, 100, 50); -t.done(); - + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#f00'; + ctx.font = '35px Arial, sans-serif'; + ctx.fillText('fail fail fail fail fail', 5, 35, 0); + _assertGreen(ctx, 100, 50); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fill.rtl-manual.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fill.rtl-manual.html index 7363d73..98e329b 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fill.rtl-manual.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fill.rtl-manual.html
@@ -17,16 +17,16 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#000'; -ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = '#0f0'; -ctx.strokeStyle = '#f00'; -ctx.font = '35px Arial, sans-serif'; -ctx.fillText('\u202eFAIL \xa0 \xa0 SSAP', 5, 35); -t.done(); + ctx.fillStyle = '#000'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.strokeStyle = '#f00'; + ctx.font = '35px Arial, sans-serif'; + ctx.fillText('\u202eFAIL \xa0 \xa0 SSAP', 5, 35); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fill.rtl-manual.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fill.rtl-manual.worker.js index f52a0cc..ee24a04 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fill.rtl-manual.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fill.rtl-manual.worker.js
@@ -13,16 +13,15 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#000'; -ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = '#0f0'; -ctx.strokeStyle = '#f00'; -ctx.font = '35px Arial, sans-serif'; -ctx.fillText('\u202eFAIL \xa0 \xa0 SSAP', 5, 35); -t.done(); - + ctx.fillStyle = '#000'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.strokeStyle = '#f00'; + ctx.font = '35px Arial, sans-serif'; + ctx.fillText('\u202eFAIL \xa0 \xa0 SSAP', 5, 35); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fill.unaffected.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fill.unaffected.html index e620ae1a..7124c6e 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fill.unaffected.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fill.unaffected.html
@@ -17,26 +17,26 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); -ctx.moveTo(0, 0); -ctx.lineTo(100, 0); + ctx.moveTo(0, 0); + ctx.lineTo(100, 0); -ctx.font = '35px Arial, sans-serif'; -ctx.fillText('FAIL', 5, 35); + ctx.font = '35px Arial, sans-serif'; + ctx.fillText('FAIL', 5, 35); -ctx.lineTo(100, 50); -ctx.lineTo(0, 50); -ctx.fillStyle = '#0f0'; -ctx.fill(); + ctx.lineTo(100, 50); + ctx.lineTo(0, 50); + ctx.fillStyle = '#0f0'; + ctx.fill(); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 5,45, 0,255,0,255); -t.done(); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 5,45, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fill.unaffected.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fill.unaffected.worker.js index 9640bad6..0e25028 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fill.unaffected.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fill.unaffected.worker.js
@@ -13,26 +13,25 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); -ctx.moveTo(0, 0); -ctx.lineTo(100, 0); + ctx.moveTo(0, 0); + ctx.lineTo(100, 0); -ctx.font = '35px Arial, sans-serif'; -ctx.fillText('FAIL', 5, 35); + ctx.font = '35px Arial, sans-serif'; + ctx.fillText('FAIL', 5, 35); -ctx.lineTo(100, 50); -ctx.lineTo(0, 50); -ctx.fillStyle = '#0f0'; -ctx.fill(); + ctx.lineTo(100, 50); + ctx.lineTo(0, 50); + ctx.fillStyle = '#0f0'; + ctx.fill(); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 5,45, 0,255,0,255); -t.done(); - + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 5,45, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fontface.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fontface.html index d2c65e8..f8d9085 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fontface.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fontface.html
@@ -17,24 +17,24 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); -let fonts = (self.fonts ? self.fonts : document.fonts); -f.load(); -fonts.add(f); -fonts.ready.then(function() { - ctx.font = '67px CanvasTest'; - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.fillStyle = '#0f0'; - ctx.fillText('AA', 0, 50); - _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); - }).then(t_pass, t_fail); + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '67px CanvasTest'; + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.fillText('AA', 0, 50); + _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fontface.notinpage.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fontface.notinpage.html index f390700e..da552d1 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fontface.notinpage.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fontface.notinpage.html
@@ -17,24 +17,24 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); -let fonts = (self.fonts ? self.fonts : document.fonts); -f.load(); -fonts.add(f); -fonts.ready.then(function() { - ctx.font = '67px CanvasTest'; - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.fillStyle = '#0f0'; - ctx.fillText('AA', 0, 50); - _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); - }).then(t_pass, t_fail); + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '67px CanvasTest'; + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.fillText('AA', 0, 50); + _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fontface.notinpage.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fontface.notinpage.worker.js index 8efab41..3bfb0be 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fontface.notinpage.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fontface.notinpage.worker.js
@@ -13,24 +13,23 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); -let fonts = (self.fonts ? self.fonts : document.fonts); -f.load(); -fonts.add(f); -fonts.ready.then(function() { - ctx.font = '67px CanvasTest'; - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.fillStyle = '#0f0'; - ctx.fillText('AA', 0, 50); - _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); - }).then(t_pass, t_fail); - + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '67px CanvasTest'; + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.fillText('AA', 0, 50); + _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fontface.repeat.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fontface.repeat.html index 3766ab6..3a14462b 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fontface.repeat.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fontface.repeat.html
@@ -17,25 +17,25 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); -let fonts = (self.fonts ? self.fonts : document.fonts); -f.load(); -fonts.add(f); -fonts.ready.then(function() { - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.font = '67px CanvasTest'; - ctx.fillStyle = '#0f0'; - ctx.fillText('AA', 0, 50); - ctx.fillText('AA', 0, 50); - _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); - }).then(t_pass, t_fail); + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.font = '67px CanvasTest'; + ctx.fillStyle = '#0f0'; + ctx.fillText('AA', 0, 50); + ctx.fillText('AA', 0, 50); + _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fontface.repeat.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fontface.repeat.worker.js index 756e8447..f2210a3 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fontface.repeat.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fontface.repeat.worker.js
@@ -13,25 +13,24 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); -let fonts = (self.fonts ? self.fonts : document.fonts); -f.load(); -fonts.add(f); -fonts.ready.then(function() { - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.font = '67px CanvasTest'; - ctx.fillStyle = '#0f0'; - ctx.fillText('AA', 0, 50); - ctx.fillText('AA', 0, 50); - _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); - }).then(t_pass, t_fail); - + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.font = '67px CanvasTest'; + ctx.fillStyle = '#0f0'; + ctx.fillText('AA', 0, 50); + ctx.fillText('AA', 0, 50); + _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fontface.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fontface.worker.js index 45f1831..1c7e727 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fontface.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.fontface.worker.js
@@ -13,24 +13,23 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); -let fonts = (self.fonts ? self.fonts : document.fonts); -f.load(); -fonts.add(f); -fonts.ready.then(function() { - ctx.font = '67px CanvasTest'; - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.fillStyle = '#0f0'; - ctx.fillText('AA', 0, 50); - _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); - _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); - }).then(t_pass, t_fail); - + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '67px CanvasTest'; + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.fillText('AA', 0, 50); + _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 95,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.kern.consistent-manual.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.kern.consistent-manual.html index e8ee39c6..de456a2 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.kern.consistent-manual.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.kern.consistent-manual.html
@@ -17,20 +17,20 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = '#f00'; -ctx.strokeStyle = '#0f0'; -ctx.lineWidth = 3; -ctx.font = '20px Arial, sans-serif'; -ctx.fillText('VAVAVAVAVAVAVA', -50, 25); -ctx.fillText('ToToToToToToTo', -50, 45); -ctx.strokeText('VAVAVAVAVAVAVA', -50, 25); -ctx.strokeText('ToToToToToToTo', -50, 45); -t.done(); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#f00'; + ctx.strokeStyle = '#0f0'; + ctx.lineWidth = 3; + ctx.font = '20px Arial, sans-serif'; + ctx.fillText('VAVAVAVAVAVAVA', -50, 25); + ctx.fillText('ToToToToToToTo', -50, 45); + ctx.strokeText('VAVAVAVAVAVAVA', -50, 25); + ctx.strokeText('ToToToToToToTo', -50, 45); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.kern.consistent-manual.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.kern.consistent-manual.worker.js index 464cab3e..0d1c947 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.kern.consistent-manual.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.kern.consistent-manual.worker.js
@@ -13,20 +13,19 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = '#f00'; -ctx.strokeStyle = '#0f0'; -ctx.lineWidth = 3; -ctx.font = '20px Arial, sans-serif'; -ctx.fillText('VAVAVAVAVAVAVA', -50, 25); -ctx.fillText('ToToToToToToTo', -50, 45); -ctx.strokeText('VAVAVAVAVAVAVA', -50, 25); -ctx.strokeText('ToToToToToToTo', -50, 45); -t.done(); - + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#f00'; + ctx.strokeStyle = '#0f0'; + ctx.lineWidth = 3; + ctx.font = '20px Arial, sans-serif'; + ctx.fillText('VAVAVAVAVAVAVA', -50, 25); + ctx.fillText('ToToToToToToTo', -50, 45); + ctx.strokeText('VAVAVAVAVAVAVA', -50, 25); + ctx.strokeText('ToToToToToToTo', -50, 45); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.space.basic.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.space.basic.html index 4bc03bb..fa2fa86 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.space.basic.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.space.basic.html
@@ -17,22 +17,22 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); -let fonts = (self.fonts ? self.fonts : document.fonts); -f.load(); -fonts.add(f); -fonts.ready.then(function() { - ctx.font = '50px CanvasTest'; - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.fillStyle = '#0f0'; - ctx.fillText('E EE', -100, 37.5); - _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); - }).then(t_pass, t_fail); + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.fillText('E EE', -100, 37.5); + _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.space.basic.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.space.basic.worker.js index 39c00846..75cacf9 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.space.basic.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.space.basic.worker.js
@@ -13,22 +13,21 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); -let fonts = (self.fonts ? self.fonts : document.fonts); -f.load(); -fonts.add(f); -fonts.ready.then(function() { - ctx.font = '50px CanvasTest'; - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.fillStyle = '#0f0'; - ctx.fillText('E EE', -100, 37.5); - _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); - }).then(t_pass, t_fail); - + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.fillText('E EE', -100, 37.5); + _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.space.collapse.end.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.space.collapse.end.html index 58fb292..9215203 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.space.collapse.end.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.space.collapse.end.html
@@ -17,23 +17,23 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); -let fonts = (self.fonts ? self.fonts : document.fonts); -f.load(); -fonts.add(f); -fonts.ready.then(function() { - ctx.font = '50px CanvasTest'; - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.fillStyle = '#0f0'; - ctx.textAlign = 'right'; - ctx.fillText('EE ', 100, 37.5); - _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); - }).then(t_pass, t_fail); + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.textAlign = 'right'; + ctx.fillText('EE ', 100, 37.5); + _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.space.collapse.end.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.space.collapse.end.worker.js index 81f85baf..f910b274 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.space.collapse.end.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.space.collapse.end.worker.js
@@ -13,23 +13,22 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); -let fonts = (self.fonts ? self.fonts : document.fonts); -f.load(); -fonts.add(f); -fonts.ready.then(function() { - ctx.font = '50px CanvasTest'; - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.fillStyle = '#0f0'; - ctx.textAlign = 'right'; - ctx.fillText('EE ', 100, 37.5); - _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); - }).then(t_pass, t_fail); - + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.textAlign = 'right'; + ctx.fillText('EE ', 100, 37.5); + _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.space.collapse.nonspace.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.space.collapse.nonspace.html index f018dc14..18289e51 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.space.collapse.nonspace.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.space.collapse.nonspace.html
@@ -17,22 +17,22 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); -let fonts = (self.fonts ? self.fonts : document.fonts); -f.load(); -fonts.add(f); -fonts.ready.then(function() { - ctx.font = '50px CanvasTest'; - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.fillStyle = '#0f0'; - ctx.fillText('E\x0b EE', -150, 37.5); - _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); - }).then(t_pass, t_fail); + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.fillText('E\x0b EE', -150, 37.5); + _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.space.collapse.nonspace.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.space.collapse.nonspace.worker.js index cbc9803..2aa7f67a 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.space.collapse.nonspace.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.space.collapse.nonspace.worker.js
@@ -13,22 +13,21 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); -let fonts = (self.fonts ? self.fonts : document.fonts); -f.load(); -fonts.add(f); -fonts.ready.then(function() { - ctx.font = '50px CanvasTest'; - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.fillStyle = '#0f0'; - ctx.fillText('E\x0b EE', -150, 37.5); - _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); - }).then(t_pass, t_fail); - + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.fillText('E\x0b EE', -150, 37.5); + _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.space.collapse.other.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.space.collapse.other.html index 0a6bb09..a0cc560 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.space.collapse.other.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.space.collapse.other.html
@@ -17,22 +17,22 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); -let fonts = (self.fonts ? self.fonts : document.fonts); -f.load(); -fonts.add(f); -fonts.ready.then(function() { - ctx.font = '50px CanvasTest'; - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.fillStyle = '#0f0'; - ctx.fillText('E \x09\x0a\x0c\x0d \x09\x0a\x0c\x0dEE', -100, 37.5); - _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); - }).then(t_pass, t_fail); + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.fillText('E \x09\x0a\x0c\x0d \x09\x0a\x0c\x0dEE', -100, 37.5); + _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.space.collapse.other.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.space.collapse.other.worker.js index e13b87a5..12edf7f 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.space.collapse.other.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.space.collapse.other.worker.js
@@ -13,22 +13,21 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); -let fonts = (self.fonts ? self.fonts : document.fonts); -f.load(); -fonts.add(f); -fonts.ready.then(function() { - ctx.font = '50px CanvasTest'; - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.fillStyle = '#0f0'; - ctx.fillText('E \x09\x0a\x0c\x0d \x09\x0a\x0c\x0dEE', -100, 37.5); - _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); - }).then(t_pass, t_fail); - + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.fillText('E \x09\x0a\x0c\x0d \x09\x0a\x0c\x0dEE', -100, 37.5); + _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.space.collapse.space.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.space.collapse.space.html index 3308cc7..240ba746 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.space.collapse.space.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.space.collapse.space.html
@@ -17,22 +17,22 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); -let fonts = (self.fonts ? self.fonts : document.fonts); -f.load(); -fonts.add(f); -fonts.ready.then(function() { - ctx.font = '50px CanvasTest'; - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.fillStyle = '#0f0'; - ctx.fillText('E EE', -100, 37.5); - _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); - }).then(t_pass, t_fail); + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.fillText('E EE', -100, 37.5); + _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.space.collapse.space.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.space.collapse.space.worker.js index 4ea78a2..3ce5ef88 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.space.collapse.space.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.space.collapse.space.worker.js
@@ -13,22 +13,21 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); -let fonts = (self.fonts ? self.fonts : document.fonts); -f.load(); -fonts.add(f); -fonts.ready.then(function() { - ctx.font = '50px CanvasTest'; - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.fillStyle = '#0f0'; - ctx.fillText('E EE', -100, 37.5); - _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); - }).then(t_pass, t_fail); - + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.fillText('E EE', -100, 37.5); + _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.space.collapse.start.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.space.collapse.start.html index 94b3f9f..43fa32f 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.space.collapse.start.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.space.collapse.start.html
@@ -17,22 +17,22 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); -let fonts = (self.fonts ? self.fonts : document.fonts); -f.load(); -fonts.add(f); -fonts.ready.then(function() { - ctx.font = '50px CanvasTest'; - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.fillStyle = '#0f0'; - ctx.fillText(' EE', 0, 37.5); - _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); - }).then(t_pass, t_fail); + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.fillText(' EE', 0, 37.5); + _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.space.collapse.start.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.space.collapse.start.worker.js index 20bd10a..2f742ac 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.space.collapse.start.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.space.collapse.start.worker.js
@@ -13,22 +13,21 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); -let fonts = (self.fonts ? self.fonts : document.fonts); -f.load(); -fonts.add(f); -fonts.ready.then(function() { - ctx.font = '50px CanvasTest'; - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.fillStyle = '#0f0'; - ctx.fillText(' EE', 0, 37.5); - _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); - _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); - }).then(t_pass, t_fail); - + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#0f0'; + ctx.fillText(' EE', 0, 37.5); + _assertPixelApprox(canvas, 25,25, 0,255,0,255, 2); + _assertPixelApprox(canvas, 75,25, 0,255,0,255, 2); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.stroke.basic-manual.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.stroke.basic-manual.html index 5aee6afc..62ac888 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.stroke.basic-manual.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.stroke.basic-manual.html
@@ -17,17 +17,17 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#000'; -ctx.fillRect(0, 0, 100, 50); -ctx.strokeStyle = '#0f0'; -ctx.fillStyle = '#f00'; -ctx.lineWidth = 1; -ctx.font = '35px Arial, sans-serif'; -ctx.strokeText('PASS', 5, 35); -t.done(); + ctx.fillStyle = '#000'; + ctx.fillRect(0, 0, 100, 50); + ctx.strokeStyle = '#0f0'; + ctx.fillStyle = '#f00'; + ctx.lineWidth = 1; + ctx.font = '35px Arial, sans-serif'; + ctx.strokeText('PASS', 5, 35); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.stroke.basic-manual.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.stroke.basic-manual.worker.js index 8806e011..33d6e324 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.stroke.basic-manual.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.stroke.basic-manual.worker.js
@@ -13,17 +13,16 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#000'; -ctx.fillRect(0, 0, 100, 50); -ctx.strokeStyle = '#0f0'; -ctx.fillStyle = '#f00'; -ctx.lineWidth = 1; -ctx.font = '35px Arial, sans-serif'; -ctx.strokeText('PASS', 5, 35); -t.done(); - + ctx.fillStyle = '#000'; + ctx.fillRect(0, 0, 100, 50); + ctx.strokeStyle = '#0f0'; + ctx.fillStyle = '#f00'; + ctx.lineWidth = 1; + ctx.font = '35px Arial, sans-serif'; + ctx.strokeText('PASS', 5, 35); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.stroke.unaffected.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.stroke.unaffected.html index 7cad996c..76afc1b0 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.stroke.unaffected.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.stroke.unaffected.html
@@ -17,27 +17,27 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); -ctx.moveTo(0, 0); -ctx.lineTo(100, 0); + ctx.moveTo(0, 0); + ctx.lineTo(100, 0); -ctx.font = '35px Arial, sans-serif'; -ctx.strokeStyle = '#f00'; -ctx.strokeText('FAIL', 5, 35); + ctx.font = '35px Arial, sans-serif'; + ctx.strokeStyle = '#f00'; + ctx.strokeText('FAIL', 5, 35); -ctx.lineTo(100, 50); -ctx.lineTo(0, 50); -ctx.fillStyle = '#0f0'; -ctx.fill(); + ctx.lineTo(100, 50); + ctx.lineTo(0, 50); + ctx.fillStyle = '#0f0'; + ctx.fill(); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 5,45, 0,255,0,255); -t.done(); + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 5,45, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.stroke.unaffected.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.stroke.unaffected.worker.js index 7ce3b1a..15c3b617 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.stroke.unaffected.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.draw.stroke.unaffected.worker.js
@@ -13,27 +13,26 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); -ctx.moveTo(0, 0); -ctx.lineTo(100, 0); + ctx.moveTo(0, 0); + ctx.lineTo(100, 0); -ctx.font = '35px Arial, sans-serif'; -ctx.strokeStyle = '#f00'; -ctx.strokeText('FAIL', 5, 35); + ctx.font = '35px Arial, sans-serif'; + ctx.strokeStyle = '#f00'; + ctx.strokeText('FAIL', 5, 35); -ctx.lineTo(100, 50); -ctx.lineTo(0, 50); -ctx.fillStyle = '#0f0'; -ctx.fill(); + ctx.lineTo(100, 50); + ctx.lineTo(0, 50); + ctx.fillStyle = '#0f0'; + ctx.fill(); -_assertPixel(canvas, 50,25, 0,255,0,255); -_assertPixel(canvas, 5,45, 0,255,0,255); -t.done(); - + _assertPixel(canvas, 50,25, 0,255,0,255); + _assertPixel(canvas, 5,45, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.fontKerning.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.fontKerning.html index 30e12f31..23f3535 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.fontKerning.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.fontKerning.html
@@ -17,18 +17,18 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -_assertSame(ctx.fontKerning, "auto", "ctx.fontKerning", "\"auto\""); -ctx.fontKerning = "normal"; -_assertSame(ctx.fontKerning, "normal", "ctx.fontKerning", "\"normal\""); -width_normal = ctx.measureText("TAWATAVA").width; -ctx.fontKerning = "none"; -_assertSame(ctx.fontKerning, "none", "ctx.fontKerning", "\"none\""); -width_none = ctx.measureText("TAWATAVA").width; -_assert(width_normal < width_none, "width_normal < width_none"); -t.done(); + _assertSame(ctx.fontKerning, "auto", "ctx.fontKerning", "\"auto\""); + ctx.fontKerning = "normal"; + _assertSame(ctx.fontKerning, "normal", "ctx.fontKerning", "\"normal\""); + width_normal = ctx.measureText("TAWATAVA").width; + ctx.fontKerning = "none"; + _assertSame(ctx.fontKerning, "none", "ctx.fontKerning", "\"none\""); + width_none = ctx.measureText("TAWATAVA").width; + _assert(width_normal < width_none, "width_normal < width_none"); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.fontKerning.with.uppercase.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.fontKerning.with.uppercase.html index a9a5ae2..380d8e7 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.fontKerning.with.uppercase.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.fontKerning.with.uppercase.html
@@ -17,40 +17,40 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -_assertSame(ctx.fontKerning, "auto", "ctx.fontKerning", "\"auto\""); -ctx.fontKerning = "Normal"; -_assertSame(ctx.fontKerning, "normal", "ctx.fontKerning", "\"normal\""); -ctx.fontKerning = "auto"; -ctx.fontKerning = "normal"; -_assertSame(ctx.fontKerning, "normal", "ctx.fontKerning", "\"normal\""); -ctx.fontKerning = "auto"; -ctx.fontKerning = "noRmal"; -_assertSame(ctx.fontKerning, "normal", "ctx.fontKerning", "\"normal\""); -ctx.fontKerning = "auto"; -ctx.fontKerning = "NoRMal"; -_assertSame(ctx.fontKerning, "normal", "ctx.fontKerning", "\"normal\""); -ctx.fontKerning = "auto"; -ctx.fontKerning = "NORMAL"; -_assertSame(ctx.fontKerning, "normal", "ctx.fontKerning", "\"normal\""); + _assertSame(ctx.fontKerning, "auto", "ctx.fontKerning", "\"auto\""); + ctx.fontKerning = "Normal"; + _assertSame(ctx.fontKerning, "normal", "ctx.fontKerning", "\"normal\""); + ctx.fontKerning = "auto"; + ctx.fontKerning = "normal"; + _assertSame(ctx.fontKerning, "normal", "ctx.fontKerning", "\"normal\""); + ctx.fontKerning = "auto"; + ctx.fontKerning = "noRmal"; + _assertSame(ctx.fontKerning, "normal", "ctx.fontKerning", "\"normal\""); + ctx.fontKerning = "auto"; + ctx.fontKerning = "NoRMal"; + _assertSame(ctx.fontKerning, "normal", "ctx.fontKerning", "\"normal\""); + ctx.fontKerning = "auto"; + ctx.fontKerning = "NORMAL"; + _assertSame(ctx.fontKerning, "normal", "ctx.fontKerning", "\"normal\""); -ctx.fontKerning = "None"; -_assertSame(ctx.fontKerning, "none", "ctx.fontKerning", "\"none\""); -ctx.fontKerning = "auto"; -ctx.fontKerning = "none"; -_assertSame(ctx.fontKerning, "none", "ctx.fontKerning", "\"none\""); -ctx.fontKerning = "auto"; -ctx.fontKerning = "nOne"; -_assertSame(ctx.fontKerning, "none", "ctx.fontKerning", "\"none\""); -ctx.fontKerning = "auto"; -ctx.fontKerning = "nonE"; -_assertSame(ctx.fontKerning, "none", "ctx.fontKerning", "\"none\""); -ctx.fontKerning = "auto"; -ctx.fontKerning = "NONE"; -_assertSame(ctx.fontKerning, "none", "ctx.fontKerning", "\"none\""); -t.done(); + ctx.fontKerning = "None"; + _assertSame(ctx.fontKerning, "none", "ctx.fontKerning", "\"none\""); + ctx.fontKerning = "auto"; + ctx.fontKerning = "none"; + _assertSame(ctx.fontKerning, "none", "ctx.fontKerning", "\"none\""); + ctx.fontKerning = "auto"; + ctx.fontKerning = "nOne"; + _assertSame(ctx.fontKerning, "none", "ctx.fontKerning", "\"none\""); + ctx.fontKerning = "auto"; + ctx.fontKerning = "nonE"; + _assertSame(ctx.fontKerning, "none", "ctx.fontKerning", "\"none\""); + ctx.fontKerning = "auto"; + ctx.fontKerning = "NONE"; + _assertSame(ctx.fontKerning, "none", "ctx.fontKerning", "\"none\""); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.fontKerning.with.uppercase.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.fontKerning.with.uppercase.worker.js index a883737..afce6c3 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.fontKerning.with.uppercase.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.fontKerning.with.uppercase.worker.js
@@ -13,40 +13,39 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -_assertSame(ctx.fontKerning, "auto", "ctx.fontKerning", "\"auto\""); -ctx.fontKerning = "Normal"; -_assertSame(ctx.fontKerning, "normal", "ctx.fontKerning", "\"normal\""); -ctx.fontKerning = "auto"; -ctx.fontKerning = "normal"; -_assertSame(ctx.fontKerning, "normal", "ctx.fontKerning", "\"normal\""); -ctx.fontKerning = "auto"; -ctx.fontKerning = "noRmal"; -_assertSame(ctx.fontKerning, "normal", "ctx.fontKerning", "\"normal\""); -ctx.fontKerning = "auto"; -ctx.fontKerning = "NoRMal"; -_assertSame(ctx.fontKerning, "normal", "ctx.fontKerning", "\"normal\""); -ctx.fontKerning = "auto"; -ctx.fontKerning = "NORMAL"; -_assertSame(ctx.fontKerning, "normal", "ctx.fontKerning", "\"normal\""); + _assertSame(ctx.fontKerning, "auto", "ctx.fontKerning", "\"auto\""); + ctx.fontKerning = "Normal"; + _assertSame(ctx.fontKerning, "normal", "ctx.fontKerning", "\"normal\""); + ctx.fontKerning = "auto"; + ctx.fontKerning = "normal"; + _assertSame(ctx.fontKerning, "normal", "ctx.fontKerning", "\"normal\""); + ctx.fontKerning = "auto"; + ctx.fontKerning = "noRmal"; + _assertSame(ctx.fontKerning, "normal", "ctx.fontKerning", "\"normal\""); + ctx.fontKerning = "auto"; + ctx.fontKerning = "NoRMal"; + _assertSame(ctx.fontKerning, "normal", "ctx.fontKerning", "\"normal\""); + ctx.fontKerning = "auto"; + ctx.fontKerning = "NORMAL"; + _assertSame(ctx.fontKerning, "normal", "ctx.fontKerning", "\"normal\""); -ctx.fontKerning = "None"; -_assertSame(ctx.fontKerning, "none", "ctx.fontKerning", "\"none\""); -ctx.fontKerning = "auto"; -ctx.fontKerning = "none"; -_assertSame(ctx.fontKerning, "none", "ctx.fontKerning", "\"none\""); -ctx.fontKerning = "auto"; -ctx.fontKerning = "nOne"; -_assertSame(ctx.fontKerning, "none", "ctx.fontKerning", "\"none\""); -ctx.fontKerning = "auto"; -ctx.fontKerning = "nonE"; -_assertSame(ctx.fontKerning, "none", "ctx.fontKerning", "\"none\""); -ctx.fontKerning = "auto"; -ctx.fontKerning = "NONE"; -_assertSame(ctx.fontKerning, "none", "ctx.fontKerning", "\"none\""); -t.done(); - + ctx.fontKerning = "None"; + _assertSame(ctx.fontKerning, "none", "ctx.fontKerning", "\"none\""); + ctx.fontKerning = "auto"; + ctx.fontKerning = "none"; + _assertSame(ctx.fontKerning, "none", "ctx.fontKerning", "\"none\""); + ctx.fontKerning = "auto"; + ctx.fontKerning = "nOne"; + _assertSame(ctx.fontKerning, "none", "ctx.fontKerning", "\"none\""); + ctx.fontKerning = "auto"; + ctx.fontKerning = "nonE"; + _assertSame(ctx.fontKerning, "none", "ctx.fontKerning", "\"none\""); + ctx.fontKerning = "auto"; + ctx.fontKerning = "NONE"; + _assertSame(ctx.fontKerning, "none", "ctx.fontKerning", "\"none\""); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.fontKerning.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.fontKerning.worker.js index 9478eece..ec64214 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.fontKerning.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.fontKerning.worker.js
@@ -13,18 +13,17 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -_assertSame(ctx.fontKerning, "auto", "ctx.fontKerning", "\"auto\""); -ctx.fontKerning = "normal"; -_assertSame(ctx.fontKerning, "normal", "ctx.fontKerning", "\"normal\""); -width_normal = ctx.measureText("TAWATAVA").width; -ctx.fontKerning = "none"; -_assertSame(ctx.fontKerning, "none", "ctx.fontKerning", "\"none\""); -width_none = ctx.measureText("TAWATAVA").width; -_assert(width_normal < width_none, "width_normal < width_none"); -t.done(); - + _assertSame(ctx.fontKerning, "auto", "ctx.fontKerning", "\"auto\""); + ctx.fontKerning = "normal"; + _assertSame(ctx.fontKerning, "normal", "ctx.fontKerning", "\"normal\""); + width_normal = ctx.measureText("TAWATAVA").width; + ctx.fontKerning = "none"; + _assertSame(ctx.fontKerning, "none", "ctx.fontKerning", "\"none\""); + width_none = ctx.measureText("TAWATAVA").width; + _assert(width_normal < width_none, "width_normal < width_none"); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.fontVariant.settings.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.fontVariant.settings.html index 08c48f1b..5ed17ba 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.fontVariant.settings.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.fontVariant.settings.html
@@ -17,59 +17,59 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -// Setting fontVariantCaps with lower cases -_assertSame(ctx.fontVariantCaps, "normal", "ctx.fontVariantCaps", "\"normal\""); + // Setting fontVariantCaps with lower cases + _assertSame(ctx.fontVariantCaps, "normal", "ctx.fontVariantCaps", "\"normal\""); -ctx.fontVariantCaps = "normal"; -_assertSame(ctx.fontVariantCaps, "normal", "ctx.fontVariantCaps", "\"normal\""); + ctx.fontVariantCaps = "normal"; + _assertSame(ctx.fontVariantCaps, "normal", "ctx.fontVariantCaps", "\"normal\""); -ctx.fontVariantCaps = "small-caps"; -_assertSame(ctx.fontVariantCaps, "small-caps", "ctx.fontVariantCaps", "\"small-caps\""); + ctx.fontVariantCaps = "small-caps"; + _assertSame(ctx.fontVariantCaps, "small-caps", "ctx.fontVariantCaps", "\"small-caps\""); -ctx.fontVariantCaps = "all-small-caps"; -_assertSame(ctx.fontVariantCaps, "all-small-caps", "ctx.fontVariantCaps", "\"all-small-caps\""); + ctx.fontVariantCaps = "all-small-caps"; + _assertSame(ctx.fontVariantCaps, "all-small-caps", "ctx.fontVariantCaps", "\"all-small-caps\""); -ctx.fontVariantCaps = "petite-caps"; -_assertSame(ctx.fontVariantCaps, "petite-caps", "ctx.fontVariantCaps", "\"petite-caps\""); + ctx.fontVariantCaps = "petite-caps"; + _assertSame(ctx.fontVariantCaps, "petite-caps", "ctx.fontVariantCaps", "\"petite-caps\""); -ctx.fontVariantCaps = "all-petite-caps"; -_assertSame(ctx.fontVariantCaps, "all-petite-caps", "ctx.fontVariantCaps", "\"all-petite-caps\""); + ctx.fontVariantCaps = "all-petite-caps"; + _assertSame(ctx.fontVariantCaps, "all-petite-caps", "ctx.fontVariantCaps", "\"all-petite-caps\""); -ctx.fontVariantCaps = "unicase"; -_assertSame(ctx.fontVariantCaps, "unicase", "ctx.fontVariantCaps", "\"unicase\""); + ctx.fontVariantCaps = "unicase"; + _assertSame(ctx.fontVariantCaps, "unicase", "ctx.fontVariantCaps", "\"unicase\""); -ctx.fontVariantCaps = "titling-caps"; -_assertSame(ctx.fontVariantCaps, "titling-caps", "ctx.fontVariantCaps", "\"titling-caps\""); + ctx.fontVariantCaps = "titling-caps"; + _assertSame(ctx.fontVariantCaps, "titling-caps", "ctx.fontVariantCaps", "\"titling-caps\""); -// Setting fontVariantCaps with lower cases and upper cases word. -ctx.fontVariantCaps = "nORmal"; -_assertSame(ctx.fontVariantCaps, "normal", "ctx.fontVariantCaps", "\"normal\""); + // Setting fontVariantCaps with lower cases and upper cases word. + ctx.fontVariantCaps = "nORmal"; + _assertSame(ctx.fontVariantCaps, "normal", "ctx.fontVariantCaps", "\"normal\""); -ctx.fontVariantCaps = "smaLL-caps"; -_assertSame(ctx.fontVariantCaps, "small-caps", "ctx.fontVariantCaps", "\"small-caps\""); + ctx.fontVariantCaps = "smaLL-caps"; + _assertSame(ctx.fontVariantCaps, "small-caps", "ctx.fontVariantCaps", "\"small-caps\""); -ctx.fontVariantCaps = "all-small-CAPS"; -_assertSame(ctx.fontVariantCaps, "all-small-caps", "ctx.fontVariantCaps", "\"all-small-caps\""); + ctx.fontVariantCaps = "all-small-CAPS"; + _assertSame(ctx.fontVariantCaps, "all-small-caps", "ctx.fontVariantCaps", "\"all-small-caps\""); -ctx.fontVariantCaps = "pEtitE-caps"; -_assertSame(ctx.fontVariantCaps, "petite-caps", "ctx.fontVariantCaps", "\"petite-caps\""); + ctx.fontVariantCaps = "pEtitE-caps"; + _assertSame(ctx.fontVariantCaps, "petite-caps", "ctx.fontVariantCaps", "\"petite-caps\""); -ctx.fontVariantCaps = "All-Petite-Caps"; -_assertSame(ctx.fontVariantCaps, "all-petite-caps", "ctx.fontVariantCaps", "\"all-petite-caps\""); + ctx.fontVariantCaps = "All-Petite-Caps"; + _assertSame(ctx.fontVariantCaps, "all-petite-caps", "ctx.fontVariantCaps", "\"all-petite-caps\""); -ctx.fontVariantCaps = "uNIcase"; -_assertSame(ctx.fontVariantCaps, "unicase", "ctx.fontVariantCaps", "\"unicase\""); + ctx.fontVariantCaps = "uNIcase"; + _assertSame(ctx.fontVariantCaps, "unicase", "ctx.fontVariantCaps", "\"unicase\""); -ctx.fontVariantCaps = "titling-CAPS"; -_assertSame(ctx.fontVariantCaps, "titling-caps", "ctx.fontVariantCaps", "\"titling-caps\""); + ctx.fontVariantCaps = "titling-CAPS"; + _assertSame(ctx.fontVariantCaps, "titling-caps", "ctx.fontVariantCaps", "\"titling-caps\""); -// Setting fontVariantCaps with non-existing font variant. -ctx.fontVariantCaps = "abcd"; -_assertSame(ctx.fontVariantCaps, "titling-caps", "ctx.fontVariantCaps", "\"titling-caps\""); -t.done(); + // Setting fontVariantCaps with non-existing font variant. + ctx.fontVariantCaps = "abcd"; + _assertSame(ctx.fontVariantCaps, "titling-caps", "ctx.fontVariantCaps", "\"titling-caps\""); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.fontVariant.settings.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.fontVariant.settings.worker.js index d4e9307..9486b8a 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.fontVariant.settings.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.fontVariant.settings.worker.js
@@ -13,59 +13,58 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -// Setting fontVariantCaps with lower cases -_assertSame(ctx.fontVariantCaps, "normal", "ctx.fontVariantCaps", "\"normal\""); + // Setting fontVariantCaps with lower cases + _assertSame(ctx.fontVariantCaps, "normal", "ctx.fontVariantCaps", "\"normal\""); -ctx.fontVariantCaps = "normal"; -_assertSame(ctx.fontVariantCaps, "normal", "ctx.fontVariantCaps", "\"normal\""); + ctx.fontVariantCaps = "normal"; + _assertSame(ctx.fontVariantCaps, "normal", "ctx.fontVariantCaps", "\"normal\""); -ctx.fontVariantCaps = "small-caps"; -_assertSame(ctx.fontVariantCaps, "small-caps", "ctx.fontVariantCaps", "\"small-caps\""); + ctx.fontVariantCaps = "small-caps"; + _assertSame(ctx.fontVariantCaps, "small-caps", "ctx.fontVariantCaps", "\"small-caps\""); -ctx.fontVariantCaps = "all-small-caps"; -_assertSame(ctx.fontVariantCaps, "all-small-caps", "ctx.fontVariantCaps", "\"all-small-caps\""); + ctx.fontVariantCaps = "all-small-caps"; + _assertSame(ctx.fontVariantCaps, "all-small-caps", "ctx.fontVariantCaps", "\"all-small-caps\""); -ctx.fontVariantCaps = "petite-caps"; -_assertSame(ctx.fontVariantCaps, "petite-caps", "ctx.fontVariantCaps", "\"petite-caps\""); + ctx.fontVariantCaps = "petite-caps"; + _assertSame(ctx.fontVariantCaps, "petite-caps", "ctx.fontVariantCaps", "\"petite-caps\""); -ctx.fontVariantCaps = "all-petite-caps"; -_assertSame(ctx.fontVariantCaps, "all-petite-caps", "ctx.fontVariantCaps", "\"all-petite-caps\""); + ctx.fontVariantCaps = "all-petite-caps"; + _assertSame(ctx.fontVariantCaps, "all-petite-caps", "ctx.fontVariantCaps", "\"all-petite-caps\""); -ctx.fontVariantCaps = "unicase"; -_assertSame(ctx.fontVariantCaps, "unicase", "ctx.fontVariantCaps", "\"unicase\""); + ctx.fontVariantCaps = "unicase"; + _assertSame(ctx.fontVariantCaps, "unicase", "ctx.fontVariantCaps", "\"unicase\""); -ctx.fontVariantCaps = "titling-caps"; -_assertSame(ctx.fontVariantCaps, "titling-caps", "ctx.fontVariantCaps", "\"titling-caps\""); + ctx.fontVariantCaps = "titling-caps"; + _assertSame(ctx.fontVariantCaps, "titling-caps", "ctx.fontVariantCaps", "\"titling-caps\""); -// Setting fontVariantCaps with lower cases and upper cases word. -ctx.fontVariantCaps = "nORmal"; -_assertSame(ctx.fontVariantCaps, "normal", "ctx.fontVariantCaps", "\"normal\""); + // Setting fontVariantCaps with lower cases and upper cases word. + ctx.fontVariantCaps = "nORmal"; + _assertSame(ctx.fontVariantCaps, "normal", "ctx.fontVariantCaps", "\"normal\""); -ctx.fontVariantCaps = "smaLL-caps"; -_assertSame(ctx.fontVariantCaps, "small-caps", "ctx.fontVariantCaps", "\"small-caps\""); + ctx.fontVariantCaps = "smaLL-caps"; + _assertSame(ctx.fontVariantCaps, "small-caps", "ctx.fontVariantCaps", "\"small-caps\""); -ctx.fontVariantCaps = "all-small-CAPS"; -_assertSame(ctx.fontVariantCaps, "all-small-caps", "ctx.fontVariantCaps", "\"all-small-caps\""); + ctx.fontVariantCaps = "all-small-CAPS"; + _assertSame(ctx.fontVariantCaps, "all-small-caps", "ctx.fontVariantCaps", "\"all-small-caps\""); -ctx.fontVariantCaps = "pEtitE-caps"; -_assertSame(ctx.fontVariantCaps, "petite-caps", "ctx.fontVariantCaps", "\"petite-caps\""); + ctx.fontVariantCaps = "pEtitE-caps"; + _assertSame(ctx.fontVariantCaps, "petite-caps", "ctx.fontVariantCaps", "\"petite-caps\""); -ctx.fontVariantCaps = "All-Petite-Caps"; -_assertSame(ctx.fontVariantCaps, "all-petite-caps", "ctx.fontVariantCaps", "\"all-petite-caps\""); + ctx.fontVariantCaps = "All-Petite-Caps"; + _assertSame(ctx.fontVariantCaps, "all-petite-caps", "ctx.fontVariantCaps", "\"all-petite-caps\""); -ctx.fontVariantCaps = "uNIcase"; -_assertSame(ctx.fontVariantCaps, "unicase", "ctx.fontVariantCaps", "\"unicase\""); + ctx.fontVariantCaps = "uNIcase"; + _assertSame(ctx.fontVariantCaps, "unicase", "ctx.fontVariantCaps", "\"unicase\""); -ctx.fontVariantCaps = "titling-CAPS"; -_assertSame(ctx.fontVariantCaps, "titling-caps", "ctx.fontVariantCaps", "\"titling-caps\""); + ctx.fontVariantCaps = "titling-CAPS"; + _assertSame(ctx.fontVariantCaps, "titling-caps", "ctx.fontVariantCaps", "\"titling-caps\""); -// Setting fontVariantCaps with non-existing font variant. -ctx.fontVariantCaps = "abcd"; -_assertSame(ctx.fontVariantCaps, "titling-caps", "ctx.fontVariantCaps", "\"titling-caps\""); -t.done(); - + // Setting fontVariantCaps with non-existing font variant. + ctx.fontVariantCaps = "abcd"; + _assertSame(ctx.fontVariantCaps, "titling-caps", "ctx.fontVariantCaps", "\"titling-caps\""); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.invalid.spacing.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.invalid.spacing.html index 5030055..3a993522 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.invalid.spacing.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.invalid.spacing.html
@@ -17,28 +17,28 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -_assertSame(ctx.letterSpacing, '0px', "ctx.letterSpacing", "'0px'"); -_assertSame(ctx.wordSpacing, '0px', "ctx.wordSpacing", "'0px'"); - -function test_word_spacing(value) { - ctx.wordSpacing = value; - ctx.letterSpacing = value; - _assertSame(ctx.wordSpacing, '0px', "ctx.wordSpacing", "'0px'"); _assertSame(ctx.letterSpacing, '0px', "ctx.letterSpacing", "'0px'"); -} -test_word_spacing('0s'); -test_word_spacing('1min'); -test_word_spacing('1deg'); -test_word_spacing('1pp'); -test_word_spacing('initial'); -test_word_spacing('inherit'); -test_word_spacing('normal'); -test_word_spacing('none'); + _assertSame(ctx.wordSpacing, '0px', "ctx.wordSpacing", "'0px'"); -t.done(); + function test_word_spacing(value) { + ctx.wordSpacing = value; + ctx.letterSpacing = value; + _assertSame(ctx.wordSpacing, '0px', "ctx.wordSpacing", "'0px'"); + _assertSame(ctx.letterSpacing, '0px', "ctx.letterSpacing", "'0px'"); + } + test_word_spacing('0s'); + test_word_spacing('1min'); + test_word_spacing('1deg'); + test_word_spacing('1pp'); + test_word_spacing('initial'); + test_word_spacing('inherit'); + test_word_spacing('normal'); + test_word_spacing('none'); + + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.invalid.spacing.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.invalid.spacing.worker.js index e4b090cc..2718585 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.invalid.spacing.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.invalid.spacing.worker.js
@@ -13,28 +13,27 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -_assertSame(ctx.letterSpacing, '0px', "ctx.letterSpacing", "'0px'"); -_assertSame(ctx.wordSpacing, '0px', "ctx.wordSpacing", "'0px'"); - -function test_word_spacing(value) { - ctx.wordSpacing = value; - ctx.letterSpacing = value; - _assertSame(ctx.wordSpacing, '0px', "ctx.wordSpacing", "'0px'"); _assertSame(ctx.letterSpacing, '0px', "ctx.letterSpacing", "'0px'"); -} -test_word_spacing('0s'); -test_word_spacing('1min'); -test_word_spacing('1deg'); -test_word_spacing('1pp'); -test_word_spacing('initial'); -test_word_spacing('inherit'); -test_word_spacing('normal'); -test_word_spacing('none'); + _assertSame(ctx.wordSpacing, '0px', "ctx.wordSpacing", "'0px'"); -t.done(); + function test_word_spacing(value) { + ctx.wordSpacing = value; + ctx.letterSpacing = value; + _assertSame(ctx.wordSpacing, '0px', "ctx.wordSpacing", "'0px'"); + _assertSame(ctx.letterSpacing, '0px', "ctx.letterSpacing", "'0px'"); + } + test_word_spacing('0s'); + test_word_spacing('1min'); + test_word_spacing('1deg'); + test_word_spacing('1pp'); + test_word_spacing('initial'); + test_word_spacing('inherit'); + test_word_spacing('normal'); + test_word_spacing('none'); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.letterSpacing.change.font.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.letterSpacing.change.font.html index ff84f45..636f719 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.letterSpacing.change.font.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.letterSpacing.change.font.html
@@ -17,30 +17,30 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -_assertSame(ctx.letterSpacing, '0px', "ctx.letterSpacing", "'0px'"); -_assertSame(ctx.wordSpacing, '0px', "ctx.wordSpacing", "'0px'"); -// Get the width for 'Hello World' at default size, 10px. -var width_normal = ctx.measureText('Hello World').width; + _assertSame(ctx.letterSpacing, '0px', "ctx.letterSpacing", "'0px'"); + _assertSame(ctx.wordSpacing, '0px', "ctx.wordSpacing", "'0px'"); + // Get the width for 'Hello World' at default size, 10px. + var width_normal = ctx.measureText('Hello World').width; -ctx.letterSpacing = '1em'; -_assertSame(ctx.letterSpacing, '1em', "ctx.letterSpacing", "'1em'"); -// 1em = 10px. Add 10px after each letter in "Hello World", -// makes it 110px longer. -var width_with_spacing = ctx.measureText('Hello World').width; -_assertSame(width_with_spacing, width_normal + 110, "width_with_spacing", "width_normal + 110"); + ctx.letterSpacing = '1em'; + _assertSame(ctx.letterSpacing, '1em', "ctx.letterSpacing", "'1em'"); + // 1em = 10px. Add 10px after each letter in "Hello World", + // makes it 110px longer. + var width_with_spacing = ctx.measureText('Hello World').width; + _assertSame(width_with_spacing, width_normal + 110, "width_with_spacing", "width_normal + 110"); -// Changing font to 20px. Without resetting the spacing, 1em letterSpacing -// is now 20px, so it's suppose to be 220px longer without any letterSpacing set. -ctx.font = '20px serif'; -width_with_spacing = ctx.measureText('Hello World').width; -// Now calculate the reference spacing for "Hello World" with no spacing. -ctx.letterSpacing = '0em'; -width_normal = ctx.measureText('Hello World').width; -_assertSame(width_with_spacing, width_normal + 220, "width_with_spacing", "width_normal + 220"); -t.done(); + // Changing font to 20px. Without resetting the spacing, 1em letterSpacing + // is now 20px, so it's suppose to be 220px longer without any letterSpacing set. + ctx.font = '20px serif'; + width_with_spacing = ctx.measureText('Hello World').width; + // Now calculate the reference spacing for "Hello World" with no spacing. + ctx.letterSpacing = '0em'; + width_normal = ctx.measureText('Hello World').width; + _assertSame(width_with_spacing, width_normal + 220, "width_with_spacing", "width_normal + 220"); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.letterSpacing.change.font.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.letterSpacing.change.font.worker.js index 5a6bf661..22fb04f 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.letterSpacing.change.font.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.letterSpacing.change.font.worker.js
@@ -13,30 +13,29 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -_assertSame(ctx.letterSpacing, '0px', "ctx.letterSpacing", "'0px'"); -_assertSame(ctx.wordSpacing, '0px', "ctx.wordSpacing", "'0px'"); -// Get the width for 'Hello World' at default size, 10px. -var width_normal = ctx.measureText('Hello World').width; + _assertSame(ctx.letterSpacing, '0px', "ctx.letterSpacing", "'0px'"); + _assertSame(ctx.wordSpacing, '0px', "ctx.wordSpacing", "'0px'"); + // Get the width for 'Hello World' at default size, 10px. + var width_normal = ctx.measureText('Hello World').width; -ctx.letterSpacing = '1em'; -_assertSame(ctx.letterSpacing, '1em', "ctx.letterSpacing", "'1em'"); -// 1em = 10px. Add 10px after each letter in "Hello World", -// makes it 110px longer. -var width_with_spacing = ctx.measureText('Hello World').width; -_assertSame(width_with_spacing, width_normal + 110, "width_with_spacing", "width_normal + 110"); + ctx.letterSpacing = '1em'; + _assertSame(ctx.letterSpacing, '1em', "ctx.letterSpacing", "'1em'"); + // 1em = 10px. Add 10px after each letter in "Hello World", + // makes it 110px longer. + var width_with_spacing = ctx.measureText('Hello World').width; + _assertSame(width_with_spacing, width_normal + 110, "width_with_spacing", "width_normal + 110"); -// Changing font to 20px. Without resetting the spacing, 1em letterSpacing -// is now 20px, so it's suppose to be 220px longer without any letterSpacing set. -ctx.font = '20px serif'; -width_with_spacing = ctx.measureText('Hello World').width; -// Now calculate the reference spacing for "Hello World" with no spacing. -ctx.letterSpacing = '0em'; -width_normal = ctx.measureText('Hello World').width; -_assertSame(width_with_spacing, width_normal + 220, "width_with_spacing", "width_normal + 220"); -t.done(); - + // Changing font to 20px. Without resetting the spacing, 1em letterSpacing + // is now 20px, so it's suppose to be 220px longer without any letterSpacing set. + ctx.font = '20px serif'; + width_with_spacing = ctx.measureText('Hello World').width; + // Now calculate the reference spacing for "Hello World" with no spacing. + ctx.letterSpacing = '0em'; + width_normal = ctx.measureText('Hello World').width; + _assertSame(width_with_spacing, width_normal + 220, "width_with_spacing", "width_normal + 220"); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.letterSpacing.measure.absolute.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.letterSpacing.measure.absolute.html index 5482c36..46cd55a 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.letterSpacing.measure.absolute.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.letterSpacing.measure.absolute.html
@@ -17,37 +17,37 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -_assertSame(ctx.letterSpacing, '0px', "ctx.letterSpacing", "'0px'"); -_assertSame(ctx.wordSpacing, '0px', "ctx.wordSpacing", "'0px'"); -var width_normal = ctx.measureText('Hello World').width; - -function test_letter_spacing(value, difference_spacing, epsilon) { - ctx.letterSpacing = value; - _assertSame(ctx.letterSpacing, value, "ctx.letterSpacing", "value"); + _assertSame(ctx.letterSpacing, '0px', "ctx.letterSpacing", "'0px'"); _assertSame(ctx.wordSpacing, '0px', "ctx.wordSpacing", "'0px'"); - width_with_letter_spacing = ctx.measureText('Hello World').width; - assert_approx_equals(width_with_letter_spacing, width_normal + difference_spacing, epsilon, "letter spacing doesn't work."); -} + var width_normal = ctx.measureText('Hello World').width; -// The first value is the letter Spacing to be set, the second value the -// change in length of string 'Hello World', note that there are 11 letters -// in 'hello world', so the length difference is always letterSpacing * 11. -// and the third value is the acceptable differencee for the length change, -// note that unit such as 1cm/1mm doesn't map to an exact pixel value. -test_cases = [['3px', 33, 0.1], - ['5px', 55, 0.1], - ['-2px', -22, 0.1], - ['1in', 1056, 0.1], - ['-0.1cm', -41.65, 0.2], - ['-0.6mm', -24,95, 0.2]] + function test_letter_spacing(value, difference_spacing, epsilon) { + ctx.letterSpacing = value; + _assertSame(ctx.letterSpacing, value, "ctx.letterSpacing", "value"); + _assertSame(ctx.wordSpacing, '0px', "ctx.wordSpacing", "'0px'"); + width_with_letter_spacing = ctx.measureText('Hello World').width; + assert_approx_equals(width_with_letter_spacing, width_normal + difference_spacing, epsilon, "letter spacing doesn't work."); + } -for (const test_case of test_cases) { - test_letter_spacing(test_case[0], test_case[1], test_case[2]); -} -t.done(); + // The first value is the letter Spacing to be set, the second value the + // change in length of string 'Hello World', note that there are 11 letters + // in 'hello world', so the length difference is always letterSpacing * 11. + // and the third value is the acceptable differencee for the length change, + // note that unit such as 1cm/1mm doesn't map to an exact pixel value. + test_cases = [['3px', 33, 0.1], + ['5px', 55, 0.1], + ['-2px', -22, 0.1], + ['1in', 1056, 0.1], + ['-0.1cm', -41.65, 0.2], + ['-0.6mm', -24,95, 0.2]] + + for (const test_case of test_cases) { + test_letter_spacing(test_case[0], test_case[1], test_case[2]); + } + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.letterSpacing.measure.absolute.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.letterSpacing.measure.absolute.worker.js index 22cab4ccc..8c82aeb 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.letterSpacing.measure.absolute.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.letterSpacing.measure.absolute.worker.js
@@ -13,37 +13,36 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -_assertSame(ctx.letterSpacing, '0px', "ctx.letterSpacing", "'0px'"); -_assertSame(ctx.wordSpacing, '0px', "ctx.wordSpacing", "'0px'"); -var width_normal = ctx.measureText('Hello World').width; - -function test_letter_spacing(value, difference_spacing, epsilon) { - ctx.letterSpacing = value; - _assertSame(ctx.letterSpacing, value, "ctx.letterSpacing", "value"); + _assertSame(ctx.letterSpacing, '0px', "ctx.letterSpacing", "'0px'"); _assertSame(ctx.wordSpacing, '0px', "ctx.wordSpacing", "'0px'"); - width_with_letter_spacing = ctx.measureText('Hello World').width; - assert_approx_equals(width_with_letter_spacing, width_normal + difference_spacing, epsilon, "letter spacing doesn't work."); -} + var width_normal = ctx.measureText('Hello World').width; -// The first value is the letter Spacing to be set, the second value the -// change in length of string 'Hello World', note that there are 11 letters -// in 'hello world', so the length difference is always letterSpacing * 11. -// and the third value is the acceptable differencee for the length change, -// note that unit such as 1cm/1mm doesn't map to an exact pixel value. -test_cases = [['3px', 33, 0.1], - ['5px', 55, 0.1], - ['-2px', -22, 0.1], - ['1in', 1056, 0.1], - ['-0.1cm', -41.65, 0.2], - ['-0.6mm', -24,95, 0.2]] + function test_letter_spacing(value, difference_spacing, epsilon) { + ctx.letterSpacing = value; + _assertSame(ctx.letterSpacing, value, "ctx.letterSpacing", "value"); + _assertSame(ctx.wordSpacing, '0px', "ctx.wordSpacing", "'0px'"); + width_with_letter_spacing = ctx.measureText('Hello World').width; + assert_approx_equals(width_with_letter_spacing, width_normal + difference_spacing, epsilon, "letter spacing doesn't work."); + } -for (const test_case of test_cases) { - test_letter_spacing(test_case[0], test_case[1], test_case[2]); -} -t.done(); + // The first value is the letter Spacing to be set, the second value the + // change in length of string 'Hello World', note that there are 11 letters + // in 'hello world', so the length difference is always letterSpacing * 11. + // and the third value is the acceptable differencee for the length change, + // note that unit such as 1cm/1mm doesn't map to an exact pixel value. + test_cases = [['3px', 33, 0.1], + ['5px', 55, 0.1], + ['-2px', -22, 0.1], + ['1in', 1056, 0.1], + ['-0.1cm', -41.65, 0.2], + ['-0.6mm', -24,95, 0.2]] + for (const test_case of test_cases) { + test_letter_spacing(test_case[0], test_case[1], test_case[2]); + } + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.letterSpacing.measure.relative.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.letterSpacing.measure.relative.html index fa5d2bc..296c929 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.letterSpacing.measure.relative.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.letterSpacing.measure.relative.html
@@ -17,35 +17,35 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -_assertSame(ctx.letterSpacing, '0px', "ctx.letterSpacing", "'0px'"); -_assertSame(ctx.wordSpacing, '0px', "ctx.wordSpacing", "'0px'"); -ctx.font = "10px monospace"; -var width_normal = ctx.measureText('Hello World').width; -var ch_width = width_normal / 11; - -function test_letter_spacing(value, difference_spacing, epsilon) { - ctx.letterSpacing = value; - _assertSame(ctx.letterSpacing, value, "ctx.letterSpacing", "value"); + _assertSame(ctx.letterSpacing, '0px', "ctx.letterSpacing", "'0px'"); _assertSame(ctx.wordSpacing, '0px', "ctx.wordSpacing", "'0px'"); - width_with_letter_spacing = ctx.measureText('Hello World').width; - assert_approx_equals(width_with_letter_spacing, width_normal + difference_spacing, epsilon, "letter spacing doesn't work."); -} + ctx.font = "10px monospace"; + var width_normal = ctx.measureText('Hello World').width; + var ch_width = width_normal / 11; -// The first value is the letter Spacing to be set, the second value the -// change in length of string 'Hello World', note that there are 11 letters -// in 'hello world', so the length difference is always letterSpacing * 11. -// and the third value is the acceptable differencee for the length change. -test_cases = [['1em', 110, 0.1], - ['-0.1em', -11, 0.1], - ['1ch', 11 * ch_width, 0.1]] + function test_letter_spacing(value, difference_spacing, epsilon) { + ctx.letterSpacing = value; + _assertSame(ctx.letterSpacing, value, "ctx.letterSpacing", "value"); + _assertSame(ctx.wordSpacing, '0px', "ctx.wordSpacing", "'0px'"); + width_with_letter_spacing = ctx.measureText('Hello World').width; + assert_approx_equals(width_with_letter_spacing, width_normal + difference_spacing, epsilon, "letter spacing doesn't work."); + } -for (const test_case of test_cases) { - test_letter_spacing(test_case[0], test_case[1], test_case[2]); -} -t.done(); + // The first value is the letter Spacing to be set, the second value the + // change in length of string 'Hello World', note that there are 11 letters + // in 'hello world', so the length difference is always letterSpacing * 11. + // and the third value is the acceptable differencee for the length change. + test_cases = [['1em', 110, 0.1], + ['-0.1em', -11, 0.1], + ['1ch', 11 * ch_width, 0.1]] + + for (const test_case of test_cases) { + test_letter_spacing(test_case[0], test_case[1], test_case[2]); + } + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.letterSpacing.measure.relative.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.letterSpacing.measure.relative.worker.js index 59d17ef..d6afa71aba 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.letterSpacing.measure.relative.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.letterSpacing.measure.relative.worker.js
@@ -13,35 +13,34 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -_assertSame(ctx.letterSpacing, '0px', "ctx.letterSpacing", "'0px'"); -_assertSame(ctx.wordSpacing, '0px', "ctx.wordSpacing", "'0px'"); -ctx.font = "10px monospace"; -var width_normal = ctx.measureText('Hello World').width; -var ch_width = width_normal / 11; - -function test_letter_spacing(value, difference_spacing, epsilon) { - ctx.letterSpacing = value; - _assertSame(ctx.letterSpacing, value, "ctx.letterSpacing", "value"); + _assertSame(ctx.letterSpacing, '0px', "ctx.letterSpacing", "'0px'"); _assertSame(ctx.wordSpacing, '0px', "ctx.wordSpacing", "'0px'"); - width_with_letter_spacing = ctx.measureText('Hello World').width; - assert_approx_equals(width_with_letter_spacing, width_normal + difference_spacing, epsilon, "letter spacing doesn't work."); -} + ctx.font = "10px monospace"; + var width_normal = ctx.measureText('Hello World').width; + var ch_width = width_normal / 11; -// The first value is the letter Spacing to be set, the second value the -// change in length of string 'Hello World', note that there are 11 letters -// in 'hello world', so the length difference is always letterSpacing * 11. -// and the third value is the acceptable differencee for the length change. -test_cases = [['1em', 110, 0.1], - ['-0.1em', -11, 0.1], - ['1ch', 11 * ch_width, 0.1]] + function test_letter_spacing(value, difference_spacing, epsilon) { + ctx.letterSpacing = value; + _assertSame(ctx.letterSpacing, value, "ctx.letterSpacing", "value"); + _assertSame(ctx.wordSpacing, '0px', "ctx.wordSpacing", "'0px'"); + width_with_letter_spacing = ctx.measureText('Hello World').width; + assert_approx_equals(width_with_letter_spacing, width_normal + difference_spacing, epsilon, "letter spacing doesn't work."); + } -for (const test_case of test_cases) { - test_letter_spacing(test_case[0], test_case[1], test_case[2]); -} -t.done(); + // The first value is the letter Spacing to be set, the second value the + // change in length of string 'Hello World', note that there are 11 letters + // in 'hello world', so the length difference is always letterSpacing * 11. + // and the third value is the acceptable differencee for the length change. + test_cases = [['1em', 110, 0.1], + ['-0.1em', -11, 0.1], + ['1ch', 11 * ch_width, 0.1]] + for (const test_case of test_cases) { + test_letter_spacing(test_case[0], test_case[1], test_case[2]); + } + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.measure.direction.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.measure.direction.html index 04774a9..6c0b3756 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.measure.direction.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.measure.direction.html
@@ -17,17 +17,17 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.direction = "ltr"; -metrics = ctx.measureText('hello'); -_assert(metrics.actualBoundingBoxLeft < metrics.actualBoundingBoxRight, "metrics.actualBoundingBoxLeft < metrics.actualBoundingBoxRight"); + ctx.direction = "ltr"; + metrics = ctx.measureText('hello'); + _assert(metrics.actualBoundingBoxLeft < metrics.actualBoundingBoxRight, "metrics.actualBoundingBoxLeft < metrics.actualBoundingBoxRight"); -ctx.direction = "rtl"; -metrics = ctx.measureText('hello'); -_assert(metrics.actualBoundingBoxLeft > metrics.actualBoundingBoxRight, "metrics.actualBoundingBoxLeft > metrics.actualBoundingBoxRight"); -t.done(); + ctx.direction = "rtl"; + metrics = ctx.measureText('hello'); + _assert(metrics.actualBoundingBoxLeft > metrics.actualBoundingBoxRight, "metrics.actualBoundingBoxLeft > metrics.actualBoundingBoxRight"); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.measure.direction.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.measure.direction.worker.js index 8f558568..852f372 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.measure.direction.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.measure.direction.worker.js
@@ -13,17 +13,16 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.direction = "ltr"; -metrics = ctx.measureText('hello'); -_assert(metrics.actualBoundingBoxLeft < metrics.actualBoundingBoxRight, "metrics.actualBoundingBoxLeft < metrics.actualBoundingBoxRight"); + ctx.direction = "ltr"; + metrics = ctx.measureText('hello'); + _assert(metrics.actualBoundingBoxLeft < metrics.actualBoundingBoxRight, "metrics.actualBoundingBoxLeft < metrics.actualBoundingBoxRight"); -ctx.direction = "rtl"; -metrics = ctx.measureText('hello'); -_assert(metrics.actualBoundingBoxLeft > metrics.actualBoundingBoxRight, "metrics.actualBoundingBoxLeft > metrics.actualBoundingBoxRight"); -t.done(); - + ctx.direction = "rtl"; + metrics = ctx.measureText('hello'); + _assert(metrics.actualBoundingBoxLeft > metrics.actualBoundingBoxRight, "metrics.actualBoundingBoxLeft > metrics.actualBoundingBoxRight"); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.measure.rtl.text.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.measure.rtl.text.html index 7eba6766..335014c 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.measure.rtl.text.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.measure.rtl.text.html
@@ -17,15 +17,15 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -metrics = ctx.measureText('اَلْعَرَبِيَّةُ'); -_assert(metrics.actualBoundingBoxLeft < metrics.actualBoundingBoxRight, "metrics.actualBoundingBoxLeft < metrics.actualBoundingBoxRight"); + metrics = ctx.measureText('اَلْعَرَبِيَّةُ'); + _assert(metrics.actualBoundingBoxLeft < metrics.actualBoundingBoxRight, "metrics.actualBoundingBoxLeft < metrics.actualBoundingBoxRight"); -metrics = ctx.measureText('hello'); -_assert(metrics.actualBoundingBoxLeft < metrics.actualBoundingBoxRight, "metrics.actualBoundingBoxLeft < metrics.actualBoundingBoxRight"); -t.done(); + metrics = ctx.measureText('hello'); + _assert(metrics.actualBoundingBoxLeft < metrics.actualBoundingBoxRight, "metrics.actualBoundingBoxLeft < metrics.actualBoundingBoxRight"); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.measure.rtl.text.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.measure.rtl.text.worker.js index 585e6c0..09b0e9b 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.measure.rtl.text.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.measure.rtl.text.worker.js
@@ -13,15 +13,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -metrics = ctx.measureText('اَلْعَرَبِيَّةُ'); -_assert(metrics.actualBoundingBoxLeft < metrics.actualBoundingBoxRight, "metrics.actualBoundingBoxLeft < metrics.actualBoundingBoxRight"); + metrics = ctx.measureText('اَلْعَرَبِيَّةُ'); + _assert(metrics.actualBoundingBoxLeft < metrics.actualBoundingBoxRight, "metrics.actualBoundingBoxLeft < metrics.actualBoundingBoxRight"); -metrics = ctx.measureText('hello'); -_assert(metrics.actualBoundingBoxLeft < metrics.actualBoundingBoxRight, "metrics.actualBoundingBoxLeft < metrics.actualBoundingBoxRight"); -t.done(); - + metrics = ctx.measureText('hello'); + _assert(metrics.actualBoundingBoxLeft < metrics.actualBoundingBoxRight, "metrics.actualBoundingBoxLeft < metrics.actualBoundingBoxRight"); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.measure.textAlign.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.measure.textAlign.html index f784f56..4c1ca19 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.measure.textAlign.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.measure.textAlign.html
@@ -17,17 +17,17 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.textAlign = "right"; -metrics = ctx.measureText('hello'); -_assert(metrics.actualBoundingBoxLeft > metrics.actualBoundingBoxRight, "metrics.actualBoundingBoxLeft > metrics.actualBoundingBoxRight"); + ctx.textAlign = "right"; + metrics = ctx.measureText('hello'); + _assert(metrics.actualBoundingBoxLeft > metrics.actualBoundingBoxRight, "metrics.actualBoundingBoxLeft > metrics.actualBoundingBoxRight"); -ctx.textAlign = "left" -metrics = ctx.measureText('hello'); -_assert(metrics.actualBoundingBoxLeft < metrics.actualBoundingBoxRight, "metrics.actualBoundingBoxLeft < metrics.actualBoundingBoxRight"); -t.done(); + ctx.textAlign = "left" + metrics = ctx.measureText('hello'); + _assert(metrics.actualBoundingBoxLeft < metrics.actualBoundingBoxRight, "metrics.actualBoundingBoxLeft < metrics.actualBoundingBoxRight"); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.measure.textAlign.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.measure.textAlign.worker.js index 3af2f47..bc6f167b 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.measure.textAlign.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.measure.textAlign.worker.js
@@ -13,17 +13,16 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.textAlign = "right"; -metrics = ctx.measureText('hello'); -_assert(metrics.actualBoundingBoxLeft > metrics.actualBoundingBoxRight, "metrics.actualBoundingBoxLeft > metrics.actualBoundingBoxRight"); + ctx.textAlign = "right"; + metrics = ctx.measureText('hello'); + _assert(metrics.actualBoundingBoxLeft > metrics.actualBoundingBoxRight, "metrics.actualBoundingBoxLeft > metrics.actualBoundingBoxRight"); -ctx.textAlign = "left" -metrics = ctx.measureText('hello'); -_assert(metrics.actualBoundingBoxLeft < metrics.actualBoundingBoxRight, "metrics.actualBoundingBoxLeft < metrics.actualBoundingBoxRight"); -t.done(); - + ctx.textAlign = "left" + metrics = ctx.measureText('hello'); + _assert(metrics.actualBoundingBoxLeft < metrics.actualBoundingBoxRight, "metrics.actualBoundingBoxLeft < metrics.actualBoundingBoxRight"); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.nonfinite.spacing.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.nonfinite.spacing.html index 8e80f9a..ca50f13 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.nonfinite.spacing.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.nonfinite.spacing.html
@@ -17,23 +17,23 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -_assertSame(ctx.letterSpacing, '0px', "ctx.letterSpacing", "'0px'"); -_assertSame(ctx.wordSpacing, '0px', "ctx.wordSpacing", "'0px'"); - -function test_word_spacing(value) { - ctx.wordSpacing = value; - ctx.letterSpacing = value; - _assertSame(ctx.wordSpacing, '0px', "ctx.wordSpacing", "'0px'"); _assertSame(ctx.letterSpacing, '0px', "ctx.letterSpacing", "'0px'"); -} -test_word_spacing(NaN); -test_word_spacing(Infinity); -test_word_spacing(-Infinity); + _assertSame(ctx.wordSpacing, '0px', "ctx.wordSpacing", "'0px'"); -t.done(); + function test_word_spacing(value) { + ctx.wordSpacing = value; + ctx.letterSpacing = value; + _assertSame(ctx.wordSpacing, '0px', "ctx.wordSpacing", "'0px'"); + _assertSame(ctx.letterSpacing, '0px', "ctx.letterSpacing", "'0px'"); + } + test_word_spacing(NaN); + test_word_spacing(Infinity); + test_word_spacing(-Infinity); + + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.nonfinite.spacing.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.nonfinite.spacing.worker.js index adba253..801b8b5 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.nonfinite.spacing.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.nonfinite.spacing.worker.js
@@ -13,23 +13,22 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -_assertSame(ctx.letterSpacing, '0px', "ctx.letterSpacing", "'0px'"); -_assertSame(ctx.wordSpacing, '0px', "ctx.wordSpacing", "'0px'"); - -function test_word_spacing(value) { - ctx.wordSpacing = value; - ctx.letterSpacing = value; - _assertSame(ctx.wordSpacing, '0px', "ctx.wordSpacing", "'0px'"); _assertSame(ctx.letterSpacing, '0px', "ctx.letterSpacing", "'0px'"); -} -test_word_spacing(NaN); -test_word_spacing(Infinity); -test_word_spacing(-Infinity); + _assertSame(ctx.wordSpacing, '0px', "ctx.wordSpacing", "'0px'"); -t.done(); + function test_word_spacing(value) { + ctx.wordSpacing = value; + ctx.letterSpacing = value; + _assertSame(ctx.wordSpacing, '0px', "ctx.wordSpacing", "'0px'"); + _assertSame(ctx.letterSpacing, '0px', "ctx.letterSpacing", "'0px'"); + } + test_word_spacing(NaN); + test_word_spacing(Infinity); + test_word_spacing(-Infinity); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.spacing.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.spacing.html index ea480c46..aa2e7caa 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.spacing.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.spacing.html
@@ -17,30 +17,30 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -_assertSame(ctx.letterSpacing, '0px', "ctx.letterSpacing", "'0px'"); -_assertSame(ctx.wordSpacing, '0px', "ctx.wordSpacing", "'0px'"); + _assertSame(ctx.letterSpacing, '0px', "ctx.letterSpacing", "'0px'"); + _assertSame(ctx.wordSpacing, '0px', "ctx.wordSpacing", "'0px'"); -ctx.letterSpacing = '3px'; -_assertSame(ctx.letterSpacing, '3px', "ctx.letterSpacing", "'3px'"); -_assertSame(ctx.wordSpacing, '0px', "ctx.wordSpacing", "'0px'"); + ctx.letterSpacing = '3px'; + _assertSame(ctx.letterSpacing, '3px', "ctx.letterSpacing", "'3px'"); + _assertSame(ctx.wordSpacing, '0px', "ctx.wordSpacing", "'0px'"); -ctx.wordSpacing = '5px'; -_assertSame(ctx.letterSpacing, '3px', "ctx.letterSpacing", "'3px'"); -_assertSame(ctx.wordSpacing, '5px', "ctx.wordSpacing", "'5px'"); + ctx.wordSpacing = '5px'; + _assertSame(ctx.letterSpacing, '3px', "ctx.letterSpacing", "'3px'"); + _assertSame(ctx.wordSpacing, '5px', "ctx.wordSpacing", "'5px'"); -ctx.letterSpacing = '-1px'; -ctx.wordSpacing = '-1px'; -_assertSame(ctx.letterSpacing, '-1px', "ctx.letterSpacing", "'-1px'"); -_assertSame(ctx.wordSpacing, '-1px', "ctx.wordSpacing", "'-1px'"); + ctx.letterSpacing = '-1px'; + ctx.wordSpacing = '-1px'; + _assertSame(ctx.letterSpacing, '-1px', "ctx.letterSpacing", "'-1px'"); + _assertSame(ctx.wordSpacing, '-1px', "ctx.wordSpacing", "'-1px'"); -ctx.letterSpacing = '1PX'; -ctx.wordSpacing = '1EM'; -_assertSame(ctx.letterSpacing, '1px', "ctx.letterSpacing", "'1px'"); -_assertSame(ctx.wordSpacing, '1em', "ctx.wordSpacing", "'1em'"); -t.done(); + ctx.letterSpacing = '1PX'; + ctx.wordSpacing = '1EM'; + _assertSame(ctx.letterSpacing, '1px', "ctx.letterSpacing", "'1px'"); + _assertSame(ctx.wordSpacing, '1em', "ctx.wordSpacing", "'1em'"); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.spacing.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.spacing.worker.js index a413f92..938ab966 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.spacing.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.spacing.worker.js
@@ -13,30 +13,29 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -_assertSame(ctx.letterSpacing, '0px', "ctx.letterSpacing", "'0px'"); -_assertSame(ctx.wordSpacing, '0px', "ctx.wordSpacing", "'0px'"); + _assertSame(ctx.letterSpacing, '0px', "ctx.letterSpacing", "'0px'"); + _assertSame(ctx.wordSpacing, '0px', "ctx.wordSpacing", "'0px'"); -ctx.letterSpacing = '3px'; -_assertSame(ctx.letterSpacing, '3px', "ctx.letterSpacing", "'3px'"); -_assertSame(ctx.wordSpacing, '0px', "ctx.wordSpacing", "'0px'"); + ctx.letterSpacing = '3px'; + _assertSame(ctx.letterSpacing, '3px', "ctx.letterSpacing", "'3px'"); + _assertSame(ctx.wordSpacing, '0px', "ctx.wordSpacing", "'0px'"); -ctx.wordSpacing = '5px'; -_assertSame(ctx.letterSpacing, '3px', "ctx.letterSpacing", "'3px'"); -_assertSame(ctx.wordSpacing, '5px', "ctx.wordSpacing", "'5px'"); + ctx.wordSpacing = '5px'; + _assertSame(ctx.letterSpacing, '3px', "ctx.letterSpacing", "'3px'"); + _assertSame(ctx.wordSpacing, '5px', "ctx.wordSpacing", "'5px'"); -ctx.letterSpacing = '-1px'; -ctx.wordSpacing = '-1px'; -_assertSame(ctx.letterSpacing, '-1px', "ctx.letterSpacing", "'-1px'"); -_assertSame(ctx.wordSpacing, '-1px', "ctx.wordSpacing", "'-1px'"); + ctx.letterSpacing = '-1px'; + ctx.wordSpacing = '-1px'; + _assertSame(ctx.letterSpacing, '-1px', "ctx.letterSpacing", "'-1px'"); + _assertSame(ctx.wordSpacing, '-1px', "ctx.wordSpacing", "'-1px'"); -ctx.letterSpacing = '1PX'; -ctx.wordSpacing = '1EM'; -_assertSame(ctx.letterSpacing, '1px', "ctx.letterSpacing", "'1px'"); -_assertSame(ctx.wordSpacing, '1em', "ctx.wordSpacing", "'1em'"); -t.done(); - + ctx.letterSpacing = '1PX'; + ctx.wordSpacing = '1EM'; + _assertSame(ctx.letterSpacing, '1px', "ctx.letterSpacing", "'1px'"); + _assertSame(ctx.wordSpacing, '1em', "ctx.wordSpacing", "'1em'"); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.textRendering.settings.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.textRendering.settings.html index d0c7b88..47094dc 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.textRendering.settings.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.textRendering.settings.html
@@ -17,41 +17,41 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -// Setting textRendering with lower cases -_assertSame(ctx.textRendering, "auto", "ctx.textRendering", "\"auto\""); + // Setting textRendering with lower cases + _assertSame(ctx.textRendering, "auto", "ctx.textRendering", "\"auto\""); -ctx.textRendering = "auto"; -_assertSame(ctx.textRendering, "auto", "ctx.textRendering", "\"auto\""); + ctx.textRendering = "auto"; + _assertSame(ctx.textRendering, "auto", "ctx.textRendering", "\"auto\""); -ctx.textRendering = "optimizespeed"; -_assertSame(ctx.textRendering, "optimizeSpeed", "ctx.textRendering", "\"optimizeSpeed\""); + ctx.textRendering = "optimizespeed"; + _assertSame(ctx.textRendering, "optimizeSpeed", "ctx.textRendering", "\"optimizeSpeed\""); -ctx.textRendering = "optimizelegibility"; -_assertSame(ctx.textRendering, "optimizeLegibility", "ctx.textRendering", "\"optimizeLegibility\""); + ctx.textRendering = "optimizelegibility"; + _assertSame(ctx.textRendering, "optimizeLegibility", "ctx.textRendering", "\"optimizeLegibility\""); -ctx.textRendering = "geometricprecision"; -_assertSame(ctx.textRendering, "geometricPrecision", "ctx.textRendering", "\"geometricPrecision\""); + ctx.textRendering = "geometricprecision"; + _assertSame(ctx.textRendering, "geometricPrecision", "ctx.textRendering", "\"geometricPrecision\""); -// Setting textRendering with lower cases and upper cases word. -ctx.textRendering = "aUto"; -_assertSame(ctx.textRendering, "auto", "ctx.textRendering", "\"auto\""); + // Setting textRendering with lower cases and upper cases word. + ctx.textRendering = "aUto"; + _assertSame(ctx.textRendering, "auto", "ctx.textRendering", "\"auto\""); -ctx.textRendering = "OPtimizeSpeed"; -_assertSame(ctx.textRendering, "optimizeSpeed", "ctx.textRendering", "\"optimizeSpeed\""); + ctx.textRendering = "OPtimizeSpeed"; + _assertSame(ctx.textRendering, "optimizeSpeed", "ctx.textRendering", "\"optimizeSpeed\""); -ctx.textRendering = "OPtimizELEgibility"; -_assertSame(ctx.textRendering, "optimizeLegibility", "ctx.textRendering", "\"optimizeLegibility\""); + ctx.textRendering = "OPtimizELEgibility"; + _assertSame(ctx.textRendering, "optimizeLegibility", "ctx.textRendering", "\"optimizeLegibility\""); -ctx.textRendering = "GeometricPrecision"; -_assertSame(ctx.textRendering, "geometricPrecision", "ctx.textRendering", "\"geometricPrecision\""); + ctx.textRendering = "GeometricPrecision"; + _assertSame(ctx.textRendering, "geometricPrecision", "ctx.textRendering", "\"geometricPrecision\""); -// Setting textRendering with non-existing font variant. -ctx.textRendering = "abcd"; -_assertSame(ctx.textRendering, "geometricPrecision", "ctx.textRendering", "\"geometricPrecision\""); -t.done(); + // Setting textRendering with non-existing font variant. + ctx.textRendering = "abcd"; + _assertSame(ctx.textRendering, "geometricPrecision", "ctx.textRendering", "\"geometricPrecision\""); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.textRendering.settings.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.textRendering.settings.worker.js index e8402c2..ca5741de 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.textRendering.settings.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.textRendering.settings.worker.js
@@ -13,41 +13,40 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -// Setting textRendering with lower cases -_assertSame(ctx.textRendering, "auto", "ctx.textRendering", "\"auto\""); + // Setting textRendering with lower cases + _assertSame(ctx.textRendering, "auto", "ctx.textRendering", "\"auto\""); -ctx.textRendering = "auto"; -_assertSame(ctx.textRendering, "auto", "ctx.textRendering", "\"auto\""); + ctx.textRendering = "auto"; + _assertSame(ctx.textRendering, "auto", "ctx.textRendering", "\"auto\""); -ctx.textRendering = "optimizespeed"; -_assertSame(ctx.textRendering, "optimizeSpeed", "ctx.textRendering", "\"optimizeSpeed\""); + ctx.textRendering = "optimizespeed"; + _assertSame(ctx.textRendering, "optimizeSpeed", "ctx.textRendering", "\"optimizeSpeed\""); -ctx.textRendering = "optimizelegibility"; -_assertSame(ctx.textRendering, "optimizeLegibility", "ctx.textRendering", "\"optimizeLegibility\""); + ctx.textRendering = "optimizelegibility"; + _assertSame(ctx.textRendering, "optimizeLegibility", "ctx.textRendering", "\"optimizeLegibility\""); -ctx.textRendering = "geometricprecision"; -_assertSame(ctx.textRendering, "geometricPrecision", "ctx.textRendering", "\"geometricPrecision\""); + ctx.textRendering = "geometricprecision"; + _assertSame(ctx.textRendering, "geometricPrecision", "ctx.textRendering", "\"geometricPrecision\""); -// Setting textRendering with lower cases and upper cases word. -ctx.textRendering = "aUto"; -_assertSame(ctx.textRendering, "auto", "ctx.textRendering", "\"auto\""); + // Setting textRendering with lower cases and upper cases word. + ctx.textRendering = "aUto"; + _assertSame(ctx.textRendering, "auto", "ctx.textRendering", "\"auto\""); -ctx.textRendering = "OPtimizeSpeed"; -_assertSame(ctx.textRendering, "optimizeSpeed", "ctx.textRendering", "\"optimizeSpeed\""); + ctx.textRendering = "OPtimizeSpeed"; + _assertSame(ctx.textRendering, "optimizeSpeed", "ctx.textRendering", "\"optimizeSpeed\""); -ctx.textRendering = "OPtimizELEgibility"; -_assertSame(ctx.textRendering, "optimizeLegibility", "ctx.textRendering", "\"optimizeLegibility\""); + ctx.textRendering = "OPtimizELEgibility"; + _assertSame(ctx.textRendering, "optimizeLegibility", "ctx.textRendering", "\"optimizeLegibility\""); -ctx.textRendering = "GeometricPrecision"; -_assertSame(ctx.textRendering, "geometricPrecision", "ctx.textRendering", "\"geometricPrecision\""); + ctx.textRendering = "GeometricPrecision"; + _assertSame(ctx.textRendering, "geometricPrecision", "ctx.textRendering", "\"geometricPrecision\""); -// Setting textRendering with non-existing font variant. -ctx.textRendering = "abcd"; -_assertSame(ctx.textRendering, "geometricPrecision", "ctx.textRendering", "\"geometricPrecision\""); -t.done(); - + // Setting textRendering with non-existing font variant. + ctx.textRendering = "abcd"; + _assertSame(ctx.textRendering, "geometricPrecision", "ctx.textRendering", "\"geometricPrecision\""); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.wordSpacing.change.font.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.wordSpacing.change.font.html index f8b72fbf..3df660e 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.wordSpacing.change.font.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.wordSpacing.change.font.html
@@ -17,30 +17,30 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -_assertSame(ctx.letterSpacing, '0px', "ctx.letterSpacing", "'0px'"); -_assertSame(ctx.wordSpacing, '0px', "ctx.wordSpacing", "'0px'"); -// Get the width for 'Hello World, again' at default size, 10px. -var width_normal = ctx.measureText('Hello World, again').width; + _assertSame(ctx.letterSpacing, '0px', "ctx.letterSpacing", "'0px'"); + _assertSame(ctx.wordSpacing, '0px', "ctx.wordSpacing", "'0px'"); + // Get the width for 'Hello World, again' at default size, 10px. + var width_normal = ctx.measureText('Hello World, again').width; -ctx.wordSpacing = '1em'; -_assertSame(ctx.wordSpacing, '1em', "ctx.wordSpacing", "'1em'"); -// 1em = 10px. Add 10px after each word in "Hello World, again", -// makes it 20px longer. -var width_with_spacing = ctx.measureText('Hello World, again').width; -_assertSame(width_with_spacing, width_normal + 20, "width_with_spacing", "width_normal + 20"); + ctx.wordSpacing = '1em'; + _assertSame(ctx.wordSpacing, '1em', "ctx.wordSpacing", "'1em'"); + // 1em = 10px. Add 10px after each word in "Hello World, again", + // makes it 20px longer. + var width_with_spacing = ctx.measureText('Hello World, again').width; + _assertSame(width_with_spacing, width_normal + 20, "width_with_spacing", "width_normal + 20"); -// Changing font to 20px. Without resetting the spacing, 1em wordSpacing -// is now 20px, so it's suppose to be 40px longer without any wordSpacing set. -ctx.font = '20px serif'; -width_with_spacing = ctx.measureText('Hello World, again').width; -// Now calculate the reference spacing for "Hello World, again" with no spacing. -ctx.wordSpacing = '0em'; -width_normal = ctx.measureText('Hello World, again').width; -_assertSame(width_with_spacing, width_normal + 40, "width_with_spacing", "width_normal + 40"); -t.done(); + // Changing font to 20px. Without resetting the spacing, 1em wordSpacing + // is now 20px, so it's suppose to be 40px longer without any wordSpacing set. + ctx.font = '20px serif'; + width_with_spacing = ctx.measureText('Hello World, again').width; + // Now calculate the reference spacing for "Hello World, again" with no spacing. + ctx.wordSpacing = '0em'; + width_normal = ctx.measureText('Hello World, again').width; + _assertSame(width_with_spacing, width_normal + 40, "width_with_spacing", "width_normal + 40"); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.wordSpacing.change.font.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.wordSpacing.change.font.worker.js index 993cd28..e1415ea 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.wordSpacing.change.font.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.wordSpacing.change.font.worker.js
@@ -13,30 +13,29 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -_assertSame(ctx.letterSpacing, '0px', "ctx.letterSpacing", "'0px'"); -_assertSame(ctx.wordSpacing, '0px', "ctx.wordSpacing", "'0px'"); -// Get the width for 'Hello World, again' at default size, 10px. -var width_normal = ctx.measureText('Hello World, again').width; + _assertSame(ctx.letterSpacing, '0px', "ctx.letterSpacing", "'0px'"); + _assertSame(ctx.wordSpacing, '0px', "ctx.wordSpacing", "'0px'"); + // Get the width for 'Hello World, again' at default size, 10px. + var width_normal = ctx.measureText('Hello World, again').width; -ctx.wordSpacing = '1em'; -_assertSame(ctx.wordSpacing, '1em', "ctx.wordSpacing", "'1em'"); -// 1em = 10px. Add 10px after each word in "Hello World, again", -// makes it 20px longer. -var width_with_spacing = ctx.measureText('Hello World, again').width; -_assertSame(width_with_spacing, width_normal + 20, "width_with_spacing", "width_normal + 20"); + ctx.wordSpacing = '1em'; + _assertSame(ctx.wordSpacing, '1em', "ctx.wordSpacing", "'1em'"); + // 1em = 10px. Add 10px after each word in "Hello World, again", + // makes it 20px longer. + var width_with_spacing = ctx.measureText('Hello World, again').width; + _assertSame(width_with_spacing, width_normal + 20, "width_with_spacing", "width_normal + 20"); -// Changing font to 20px. Without resetting the spacing, 1em wordSpacing -// is now 20px, so it's suppose to be 40px longer without any wordSpacing set. -ctx.font = '20px serif'; -width_with_spacing = ctx.measureText('Hello World, again').width; -// Now calculate the reference spacing for "Hello World, again" with no spacing. -ctx.wordSpacing = '0em'; -width_normal = ctx.measureText('Hello World, again').width; -_assertSame(width_with_spacing, width_normal + 40, "width_with_spacing", "width_normal + 40"); -t.done(); - + // Changing font to 20px. Without resetting the spacing, 1em wordSpacing + // is now 20px, so it's suppose to be 40px longer without any wordSpacing set. + ctx.font = '20px serif'; + width_with_spacing = ctx.measureText('Hello World, again').width; + // Now calculate the reference spacing for "Hello World, again" with no spacing. + ctx.wordSpacing = '0em'; + width_normal = ctx.measureText('Hello World, again').width; + _assertSame(width_with_spacing, width_normal + 40, "width_with_spacing", "width_normal + 40"); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.wordSpacing.measure.absolute.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.wordSpacing.measure.absolute.html index 07ca896..458f12b 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.wordSpacing.measure.absolute.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.wordSpacing.measure.absolute.html
@@ -17,37 +17,37 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -_assertSame(ctx.letterSpacing, '0px', "ctx.letterSpacing", "'0px'"); -_assertSame(ctx.wordSpacing, '0px', "ctx.wordSpacing", "'0px'"); -var width_normal = ctx.measureText('Hello World, again').width; - -function test_word_spacing(value, difference_spacing, epsilon) { - ctx.wordSpacing = value; _assertSame(ctx.letterSpacing, '0px', "ctx.letterSpacing", "'0px'"); - _assertSame(ctx.wordSpacing, value, "ctx.wordSpacing", "value"); - width_with_word_spacing = ctx.measureText('Hello World, again').width; - assert_approx_equals(width_with_word_spacing, width_normal + difference_spacing, epsilon, "word spacing doesn't work."); -} + _assertSame(ctx.wordSpacing, '0px', "ctx.wordSpacing", "'0px'"); + var width_normal = ctx.measureText('Hello World, again').width; -// The first value is the word Spacing to be set, the second value the -// change in length of string 'Hello World', note that there are 2 words -// in 'Hello World, again', so the length difference is always wordSpacing * 2. -// and the third value is the acceptable differencee for the length change, -// note that unit such as 1cm/1mm doesn't map to an exact pixel value. -test_cases = [['3px', 6, 0.1], - ['5px', 10, 0.1], - ['-2px', -4, 0.1], - ['1in', 192, 0.1], - ['-0.1cm', -7.57, 0.2], - ['-0.6mm', -4.54, 0.2]] + function test_word_spacing(value, difference_spacing, epsilon) { + ctx.wordSpacing = value; + _assertSame(ctx.letterSpacing, '0px', "ctx.letterSpacing", "'0px'"); + _assertSame(ctx.wordSpacing, value, "ctx.wordSpacing", "value"); + width_with_word_spacing = ctx.measureText('Hello World, again').width; + assert_approx_equals(width_with_word_spacing, width_normal + difference_spacing, epsilon, "word spacing doesn't work."); + } -for (const test_case of test_cases) { - test_word_spacing(test_case[0], test_case[1], test_case[2]); -} -t.done(); + // The first value is the word Spacing to be set, the second value the + // change in length of string 'Hello World', note that there are 2 words + // in 'Hello World, again', so the length difference is always wordSpacing * 2. + // and the third value is the acceptable differencee for the length change, + // note that unit such as 1cm/1mm doesn't map to an exact pixel value. + test_cases = [['3px', 6, 0.1], + ['5px', 10, 0.1], + ['-2px', -4, 0.1], + ['1in', 192, 0.1], + ['-0.1cm', -7.57, 0.2], + ['-0.6mm', -4.54, 0.2]] + + for (const test_case of test_cases) { + test_word_spacing(test_case[0], test_case[1], test_case[2]); + } + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.wordSpacing.measure.absolute.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.wordSpacing.measure.absolute.worker.js index ebfc056..36d1fef 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.wordSpacing.measure.absolute.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.wordSpacing.measure.absolute.worker.js
@@ -13,37 +13,36 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -_assertSame(ctx.letterSpacing, '0px', "ctx.letterSpacing", "'0px'"); -_assertSame(ctx.wordSpacing, '0px', "ctx.wordSpacing", "'0px'"); -var width_normal = ctx.measureText('Hello World, again').width; - -function test_word_spacing(value, difference_spacing, epsilon) { - ctx.wordSpacing = value; _assertSame(ctx.letterSpacing, '0px', "ctx.letterSpacing", "'0px'"); - _assertSame(ctx.wordSpacing, value, "ctx.wordSpacing", "value"); - width_with_word_spacing = ctx.measureText('Hello World, again').width; - assert_approx_equals(width_with_word_spacing, width_normal + difference_spacing, epsilon, "word spacing doesn't work."); -} + _assertSame(ctx.wordSpacing, '0px', "ctx.wordSpacing", "'0px'"); + var width_normal = ctx.measureText('Hello World, again').width; -// The first value is the word Spacing to be set, the second value the -// change in length of string 'Hello World', note that there are 2 words -// in 'Hello World, again', so the length difference is always wordSpacing * 2. -// and the third value is the acceptable differencee for the length change, -// note that unit such as 1cm/1mm doesn't map to an exact pixel value. -test_cases = [['3px', 6, 0.1], - ['5px', 10, 0.1], - ['-2px', -4, 0.1], - ['1in', 192, 0.1], - ['-0.1cm', -7.57, 0.2], - ['-0.6mm', -4.54, 0.2]] + function test_word_spacing(value, difference_spacing, epsilon) { + ctx.wordSpacing = value; + _assertSame(ctx.letterSpacing, '0px', "ctx.letterSpacing", "'0px'"); + _assertSame(ctx.wordSpacing, value, "ctx.wordSpacing", "value"); + width_with_word_spacing = ctx.measureText('Hello World, again').width; + assert_approx_equals(width_with_word_spacing, width_normal + difference_spacing, epsilon, "word spacing doesn't work."); + } -for (const test_case of test_cases) { - test_word_spacing(test_case[0], test_case[1], test_case[2]); -} -t.done(); + // The first value is the word Spacing to be set, the second value the + // change in length of string 'Hello World', note that there are 2 words + // in 'Hello World, again', so the length difference is always wordSpacing * 2. + // and the third value is the acceptable differencee for the length change, + // note that unit such as 1cm/1mm doesn't map to an exact pixel value. + test_cases = [['3px', 6, 0.1], + ['5px', 10, 0.1], + ['-2px', -4, 0.1], + ['1in', 192, 0.1], + ['-0.1cm', -7.57, 0.2], + ['-0.6mm', -4.54, 0.2]] + for (const test_case of test_cases) { + test_word_spacing(test_case[0], test_case[1], test_case[2]); + } + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.wordSpacing.measure.relative.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.wordSpacing.measure.relative.html index 95f87cb..11988ae 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.wordSpacing.measure.relative.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.wordSpacing.measure.relative.html
@@ -17,35 +17,35 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -_assertSame(ctx.letterSpacing, '0px', "ctx.letterSpacing", "'0px'"); -_assertSame(ctx.wordSpacing, '0px', "ctx.wordSpacing", "'0px'"); -ctx.font = "10px monospace"; -var width_normal = ctx.measureText('Hello World, again').width; -var ch_width = width_normal / 18; - -function test_word_spacing(value, difference_spacing, epsilon) { - ctx.wordSpacing = value; _assertSame(ctx.letterSpacing, '0px', "ctx.letterSpacing", "'0px'"); - _assertSame(ctx.wordSpacing, value, "ctx.wordSpacing", "value"); - width_with_word_spacing = ctx.measureText('Hello World, again').width; - assert_approx_equals(width_with_word_spacing, width_normal + difference_spacing, epsilon, "word spacing doesn't work."); -} + _assertSame(ctx.wordSpacing, '0px', "ctx.wordSpacing", "'0px'"); + ctx.font = "10px monospace"; + var width_normal = ctx.measureText('Hello World, again').width; + var ch_width = width_normal / 18; -// The first value is the word Spacing to be set, the second value the -// change in length of string 'Hello World', note that there are 2 words -// in 'Hello World, again', so the length difference is always wordSpacing * 2. -// and the third value is the acceptable differencee for the length change. -test_cases = [['1em', 20, 0.1], - ['-0.5em', -10, 0.1], - ['1ch', 2 * ch_width, 0.1]] + function test_word_spacing(value, difference_spacing, epsilon) { + ctx.wordSpacing = value; + _assertSame(ctx.letterSpacing, '0px', "ctx.letterSpacing", "'0px'"); + _assertSame(ctx.wordSpacing, value, "ctx.wordSpacing", "value"); + width_with_word_spacing = ctx.measureText('Hello World, again').width; + assert_approx_equals(width_with_word_spacing, width_normal + difference_spacing, epsilon, "word spacing doesn't work."); + } -for (const test_case of test_cases) { - test_word_spacing(test_case[0], test_case[1], test_case[2]); -} -t.done(); + // The first value is the word Spacing to be set, the second value the + // change in length of string 'Hello World', note that there are 2 words + // in 'Hello World, again', so the length difference is always wordSpacing * 2. + // and the third value is the acceptable differencee for the length change. + test_cases = [['1em', 20, 0.1], + ['-0.5em', -10, 0.1], + ['1ch', 2 * ch_width, 0.1]] + + for (const test_case of test_cases) { + test_word_spacing(test_case[0], test_case[1], test_case[2]); + } + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.wordSpacing.measure.relative.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.wordSpacing.measure.relative.worker.js index 2bded51e..f5295e9 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.wordSpacing.measure.relative.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.wordSpacing.measure.relative.worker.js
@@ -13,35 +13,34 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -_assertSame(ctx.letterSpacing, '0px', "ctx.letterSpacing", "'0px'"); -_assertSame(ctx.wordSpacing, '0px', "ctx.wordSpacing", "'0px'"); -ctx.font = "10px monospace"; -var width_normal = ctx.measureText('Hello World, again').width; -var ch_width = width_normal / 18; - -function test_word_spacing(value, difference_spacing, epsilon) { - ctx.wordSpacing = value; _assertSame(ctx.letterSpacing, '0px', "ctx.letterSpacing", "'0px'"); - _assertSame(ctx.wordSpacing, value, "ctx.wordSpacing", "value"); - width_with_word_spacing = ctx.measureText('Hello World, again').width; - assert_approx_equals(width_with_word_spacing, width_normal + difference_spacing, epsilon, "word spacing doesn't work."); -} + _assertSame(ctx.wordSpacing, '0px', "ctx.wordSpacing", "'0px'"); + ctx.font = "10px monospace"; + var width_normal = ctx.measureText('Hello World, again').width; + var ch_width = width_normal / 18; -// The first value is the word Spacing to be set, the second value the -// change in length of string 'Hello World', note that there are 2 words -// in 'Hello World, again', so the length difference is always wordSpacing * 2. -// and the third value is the acceptable differencee for the length change. -test_cases = [['1em', 20, 0.1], - ['-0.5em', -10, 0.1], - ['1ch', 2 * ch_width, 0.1]] + function test_word_spacing(value, difference_spacing, epsilon) { + ctx.wordSpacing = value; + _assertSame(ctx.letterSpacing, '0px', "ctx.letterSpacing", "'0px'"); + _assertSame(ctx.wordSpacing, value, "ctx.wordSpacing", "value"); + width_with_word_spacing = ctx.measureText('Hello World, again').width; + assert_approx_equals(width_with_word_spacing, width_normal + difference_spacing, epsilon, "word spacing doesn't work."); + } -for (const test_case of test_cases) { - test_word_spacing(test_case[0], test_case[1], test_case[2]); -} -t.done(); + // The first value is the word Spacing to be set, the second value the + // change in length of string 'Hello World', note that there are 2 words + // in 'Hello World, again', so the length difference is always wordSpacing * 2. + // and the third value is the acceptable differencee for the length change. + test_cases = [['1em', 20, 0.1], + ['-0.5em', -10, 0.1], + ['1ch', 2 * ch_width, 0.1]] + for (const test_case of test_cases) { + test_word_spacing(test_case[0], test_case[1], test_case[2]); + } + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.font.default.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.font.default.html index 191c1a5..59828a5d 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.font.default.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.font.default.html
@@ -17,11 +17,11 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -_assertSame(ctx.font, '10px sans-serif', "ctx.font", "'10px sans-serif'"); -t.done(); + _assertSame(ctx.font, '10px sans-serif', "ctx.font", "'10px sans-serif'"); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.font.default.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.font.default.worker.js index dc620ed..fa51ffc 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.font.default.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.font.default.worker.js
@@ -13,11 +13,10 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -_assertSame(ctx.font, '10px sans-serif', "ctx.font", "'10px sans-serif'"); -t.done(); - + _assertSame(ctx.font, '10px sans-serif', "ctx.font", "'10px sans-serif'"); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.font.parse.basic.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.font.parse.basic.html index aee5556..bb39cc4a 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.font.parse.basic.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.font.parse.basic.html
@@ -17,15 +17,15 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.font = '20px serif'; -_assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); + ctx.font = '20px serif'; + _assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); -ctx.font = '20PX SERIF'; -_assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); -t.done(); + ctx.font = '20PX SERIF'; + _assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.font.parse.basic.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.font.parse.basic.worker.js index 0d8a4aa..3596aab 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.font.parse.basic.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.font.parse.basic.worker.js
@@ -13,15 +13,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.font = '20px serif'; -_assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); + ctx.font = '20px serif'; + _assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); -ctx.font = '20PX SERIF'; -_assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); -t.done(); - + ctx.font = '20PX SERIF'; + _assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.font.parse.complex.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.font.parse.complex.html index 361b44d..30e93780 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.font.parse.complex.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.font.parse.complex.html
@@ -17,12 +17,12 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.font = 'small-caps italic 400 12px/2 Unknown Font, sans-serif'; -_assertSame(ctx.font, 'italic small-caps 12px "Unknown Font", sans-serif', "ctx.font", "'italic small-caps 12px \"Unknown Font\", sans-serif'"); -t.done(); + ctx.font = 'small-caps italic 400 12px/2 Unknown Font, sans-serif'; + _assertSame(ctx.font, 'italic small-caps 12px "Unknown Font", sans-serif', "ctx.font", "'italic small-caps 12px \"Unknown Font\", sans-serif'"); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.font.parse.complex.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.font.parse.complex.worker.js index 3c05b6f..28cb41c 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.font.parse.complex.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.font.parse.complex.worker.js
@@ -13,12 +13,11 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.font = 'small-caps italic 400 12px/2 Unknown Font, sans-serif'; -_assertSame(ctx.font, 'italic small-caps 12px "Unknown Font", sans-serif', "ctx.font", "'italic small-caps 12px \"Unknown Font\", sans-serif'"); -t.done(); - + ctx.font = 'small-caps italic 400 12px/2 Unknown Font, sans-serif'; + _assertSame(ctx.font, 'italic small-caps 12px "Unknown Font", sans-serif', "ctx.font", "'italic small-caps 12px \"Unknown Font\", sans-serif'"); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.font.parse.family.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.font.parse.family.html index 70127ba6..989014f 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.font.parse.family.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.font.parse.family.html
@@ -17,12 +17,12 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.font = '20px cursive,fantasy,monospace,sans-serif,serif,UnquotedFont,"QuotedFont\\\\\\","'; -_assertSame(ctx.font, '20px cursive, fantasy, monospace, sans-serif, serif, UnquotedFont, "QuotedFont\\\\\\","', "ctx.font", "'20px cursive, fantasy, monospace, sans-serif, serif, UnquotedFont, \"QuotedFont\\\\\\\\\\\\\",\"'"); -t.done(); + ctx.font = '20px cursive,fantasy,monospace,sans-serif,serif,UnquotedFont,"QuotedFont\\\\\\","'; + _assertSame(ctx.font, '20px cursive, fantasy, monospace, sans-serif, serif, UnquotedFont, "QuotedFont\\\\\\","', "ctx.font", "'20px cursive, fantasy, monospace, sans-serif, serif, UnquotedFont, \"QuotedFont\\\\\\\\\\\\\",\"'"); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.font.parse.family.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.font.parse.family.worker.js index 7640de2..68aefdd 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.font.parse.family.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.font.parse.family.worker.js
@@ -13,12 +13,11 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.font = '20px cursive,fantasy,monospace,sans-serif,serif,UnquotedFont,"QuotedFont\\\\\\","'; -_assertSame(ctx.font, '20px cursive, fantasy, monospace, sans-serif, serif, UnquotedFont, "QuotedFont\\\\\\","', "ctx.font", "'20px cursive, fantasy, monospace, sans-serif, serif, UnquotedFont, \"QuotedFont\\\\\\\\\\\\\",\"'"); -t.done(); - + ctx.font = '20px cursive,fantasy,monospace,sans-serif,serif,UnquotedFont,"QuotedFont\\\\\\","'; + _assertSame(ctx.font, '20px cursive, fantasy, monospace, sans-serif, serif, UnquotedFont, "QuotedFont\\\\\\","', "ctx.font", "'20px cursive, fantasy, monospace, sans-serif, serif, UnquotedFont, \"QuotedFont\\\\\\\\\\\\\",\"'"); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.font.parse.invalid.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.font.parse.invalid.html index 483476bc..8b4fd01 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.font.parse.invalid.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.font.parse.invalid.html
@@ -17,56 +17,56 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.font = '20px serif'; -_assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); + ctx.font = '20px serif'; + _assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); -ctx.font = '20px serif'; -ctx.font = ''; -_assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); + ctx.font = '20px serif'; + ctx.font = ''; + _assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); -ctx.font = '20px serif'; -ctx.font = 'bogus'; -_assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); + ctx.font = '20px serif'; + ctx.font = 'bogus'; + _assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); -ctx.font = '20px serif'; -ctx.font = 'inherit'; -_assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); + ctx.font = '20px serif'; + ctx.font = 'inherit'; + _assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); -ctx.font = '20px serif'; -ctx.font = '10px {bogus}'; -_assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); + ctx.font = '20px serif'; + ctx.font = '10px {bogus}'; + _assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); -ctx.font = '20px serif'; -ctx.font = '10px initial'; -_assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); + ctx.font = '20px serif'; + ctx.font = '10px initial'; + _assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); -ctx.font = '20px serif'; -ctx.font = '10px default'; -_assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); + ctx.font = '20px serif'; + ctx.font = '10px default'; + _assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); -ctx.font = '20px serif'; -ctx.font = '10px inherit'; -_assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); + ctx.font = '20px serif'; + ctx.font = '10px inherit'; + _assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); -ctx.font = '20px serif'; -ctx.font = '10px revert'; -_assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); + ctx.font = '20px serif'; + ctx.font = '10px revert'; + _assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); -ctx.font = '20px serif'; -ctx.font = 'var(--x)'; -_assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); + ctx.font = '20px serif'; + ctx.font = 'var(--x)'; + _assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); -ctx.font = '20px serif'; -ctx.font = 'var(--x, 10px serif)'; -_assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); + ctx.font = '20px serif'; + ctx.font = 'var(--x, 10px serif)'; + _assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); -ctx.font = '20px serif'; -ctx.font = '1em serif; background: green; margin: 10px'; -_assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); -t.done(); + ctx.font = '20px serif'; + ctx.font = '1em serif; background: green; margin: 10px'; + _assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.font.parse.invalid.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.font.parse.invalid.worker.js index a4e19a6..31f3745 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.font.parse.invalid.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.font.parse.invalid.worker.js
@@ -13,56 +13,55 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.font = '20px serif'; -_assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); + ctx.font = '20px serif'; + _assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); -ctx.font = '20px serif'; -ctx.font = ''; -_assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); + ctx.font = '20px serif'; + ctx.font = ''; + _assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); -ctx.font = '20px serif'; -ctx.font = 'bogus'; -_assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); + ctx.font = '20px serif'; + ctx.font = 'bogus'; + _assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); -ctx.font = '20px serif'; -ctx.font = 'inherit'; -_assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); + ctx.font = '20px serif'; + ctx.font = 'inherit'; + _assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); -ctx.font = '20px serif'; -ctx.font = '10px {bogus}'; -_assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); + ctx.font = '20px serif'; + ctx.font = '10px {bogus}'; + _assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); -ctx.font = '20px serif'; -ctx.font = '10px initial'; -_assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); + ctx.font = '20px serif'; + ctx.font = '10px initial'; + _assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); -ctx.font = '20px serif'; -ctx.font = '10px default'; -_assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); + ctx.font = '20px serif'; + ctx.font = '10px default'; + _assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); -ctx.font = '20px serif'; -ctx.font = '10px inherit'; -_assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); + ctx.font = '20px serif'; + ctx.font = '10px inherit'; + _assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); -ctx.font = '20px serif'; -ctx.font = '10px revert'; -_assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); + ctx.font = '20px serif'; + ctx.font = '10px revert'; + _assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); -ctx.font = '20px serif'; -ctx.font = 'var(--x)'; -_assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); + ctx.font = '20px serif'; + ctx.font = 'var(--x)'; + _assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); -ctx.font = '20px serif'; -ctx.font = 'var(--x, 10px serif)'; -_assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); + ctx.font = '20px serif'; + ctx.font = 'var(--x, 10px serif)'; + _assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); -ctx.font = '20px serif'; -ctx.font = '1em serif; background: green; margin: 10px'; -_assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); -t.done(); - + ctx.font = '20px serif'; + ctx.font = '1em serif; background: green; margin: 10px'; + _assertSame(ctx.font, '20px serif', "ctx.font", "'20px serif'"); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.font.parse.system.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.font.parse.system.html index 24cb730c..79ae6a3 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.font.parse.system.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.font.parse.system.html
@@ -17,12 +17,12 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.font = 'message-box'; -_assertDifferent(ctx.font, 'message-box', "ctx.font", "'message-box'"); -t.done(); + ctx.font = 'message-box'; + _assertDifferent(ctx.font, 'message-box', "ctx.font", "'message-box'"); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.font.parse.system.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.font.parse.system.worker.js index 5c2a8b4..b965ea7 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.font.parse.system.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.font.parse.system.worker.js
@@ -13,12 +13,11 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.font = 'message-box'; -_assertDifferent(ctx.font, 'message-box', "ctx.font", "'message-box'"); -t.done(); - + ctx.font = 'message-box'; + _assertDifferent(ctx.font, 'message-box', "ctx.font", "'message-box'"); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.font.parse.tiny.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.font.parse.tiny.html index 6c17ad47..89f85159 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.font.parse.tiny.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.font.parse.tiny.html
@@ -17,12 +17,12 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.font = '1px sans-serif'; -_assertSame(ctx.font, '1px sans-serif', "ctx.font", "'1px sans-serif'"); -t.done(); + ctx.font = '1px sans-serif'; + _assertSame(ctx.font, '1px sans-serif', "ctx.font", "'1px sans-serif'"); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.font.parse.tiny.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.font.parse.tiny.worker.js index 2171e2c..aba023e 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.font.parse.tiny.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.font.parse.tiny.worker.js
@@ -13,12 +13,11 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.font = '1px sans-serif'; -_assertSame(ctx.font, '1px sans-serif', "ctx.font", "'1px sans-serif'"); -t.done(); - + ctx.font = '1px sans-serif'; + _assertSame(ctx.font, '1px sans-serif', "ctx.font", "'1px sans-serif'"); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.font.relative_size.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.font.relative_size.html index eef3be7..a32be3d 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.font.relative_size.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.font.relative_size.html
@@ -17,12 +17,12 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.font = '1em sans-serif'; -_assertSame(ctx.font, '10px sans-serif', "ctx.font", "'10px sans-serif'"); -t.done(); + ctx.font = '1em sans-serif'; + _assertSame(ctx.font, '10px sans-serif', "ctx.font", "'10px sans-serif'"); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.font.relative_size.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.font.relative_size.worker.js index c4d78b8..9e1247c 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.font.relative_size.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.font.relative_size.worker.js
@@ -13,12 +13,11 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.font = '1em sans-serif'; -_assertSame(ctx.font, '10px sans-serif', "ctx.font", "'10px sans-serif'"); -t.done(); - + ctx.font = '1em sans-serif'; + _assertSame(ctx.font, '10px sans-serif', "ctx.font", "'10px sans-serif'"); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.actualBoundingBox.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.actualBoundingBox.html index b7ce281..96b3770 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.actualBoundingBox.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.actualBoundingBox.html
@@ -17,39 +17,39 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); -let fonts = (self.fonts ? self.fonts : document.fonts); -f.load(); -fonts.add(f); -fonts.ready.then(function() { - ctx.font = '50px CanvasTest'; - ctx.direction = 'ltr'; - ctx.align = 'left' - ctx.baseline = 'alphabetic' - // Some platforms may return '-0'. - _assertSame(Math.abs(ctx.measureText('A').actualBoundingBoxLeft), 0, "Math.abs(ctx.measureText('A').actualBoundingBoxLeft)", "0"); - // Different platforms may render text slightly different. - _assert(ctx.measureText('A').actualBoundingBoxRight >= 50, "ctx.measureText('A').actualBoundingBoxRight >= 50"); - _assert(ctx.measureText('A').actualBoundingBoxAscent >= 35, "ctx.measureText('A').actualBoundingBoxAscent >= 35"); - _assertSame(Math.abs(ctx.measureText('A').actualBoundingBoxDescent), 0, "Math.abs(ctx.measureText('A').actualBoundingBoxDescent)", "0"); + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; + ctx.direction = 'ltr'; + ctx.align = 'left' + ctx.baseline = 'alphabetic' + // Some platforms may return '-0'. + _assertSame(Math.abs(ctx.measureText('A').actualBoundingBoxLeft), 0, "Math.abs(ctx.measureText('A').actualBoundingBoxLeft)", "0"); + // Different platforms may render text slightly different. + _assert(ctx.measureText('A').actualBoundingBoxRight >= 50, "ctx.measureText('A').actualBoundingBoxRight >= 50"); + _assert(ctx.measureText('A').actualBoundingBoxAscent >= 35, "ctx.measureText('A').actualBoundingBoxAscent >= 35"); + _assertSame(Math.abs(ctx.measureText('A').actualBoundingBoxDescent), 0, "Math.abs(ctx.measureText('A').actualBoundingBoxDescent)", "0"); - _assert(ctx.measureText('D').actualBoundingBoxLeft >= 48, "ctx.measureText('D').actualBoundingBoxLeft >= 48"); - _assert(ctx.measureText('D').actualBoundingBoxLeft <= 52, "ctx.measureText('D').actualBoundingBoxLeft <= 52"); - _assert(ctx.measureText('D').actualBoundingBoxRight >= 75, "ctx.measureText('D').actualBoundingBoxRight >= 75"); - _assert(ctx.measureText('D').actualBoundingBoxRight <= 80, "ctx.measureText('D').actualBoundingBoxRight <= 80"); - _assert(ctx.measureText('D').actualBoundingBoxAscent >= 35, "ctx.measureText('D').actualBoundingBoxAscent >= 35"); - _assert(ctx.measureText('D').actualBoundingBoxAscent <= 40, "ctx.measureText('D').actualBoundingBoxAscent <= 40"); - _assert(ctx.measureText('D').actualBoundingBoxDescent >= 12, "ctx.measureText('D').actualBoundingBoxDescent >= 12"); - _assert(ctx.measureText('D').actualBoundingBoxDescent <= 15, "ctx.measureText('D').actualBoundingBoxDescent <= 15"); + _assert(ctx.measureText('D').actualBoundingBoxLeft >= 48, "ctx.measureText('D').actualBoundingBoxLeft >= 48"); + _assert(ctx.measureText('D').actualBoundingBoxLeft <= 52, "ctx.measureText('D').actualBoundingBoxLeft <= 52"); + _assert(ctx.measureText('D').actualBoundingBoxRight >= 75, "ctx.measureText('D').actualBoundingBoxRight >= 75"); + _assert(ctx.measureText('D').actualBoundingBoxRight <= 80, "ctx.measureText('D').actualBoundingBoxRight <= 80"); + _assert(ctx.measureText('D').actualBoundingBoxAscent >= 35, "ctx.measureText('D').actualBoundingBoxAscent >= 35"); + _assert(ctx.measureText('D').actualBoundingBoxAscent <= 40, "ctx.measureText('D').actualBoundingBoxAscent <= 40"); + _assert(ctx.measureText('D').actualBoundingBoxDescent >= 12, "ctx.measureText('D').actualBoundingBoxDescent >= 12"); + _assert(ctx.measureText('D').actualBoundingBoxDescent <= 15, "ctx.measureText('D').actualBoundingBoxDescent <= 15"); - _assertSame(Math.abs(ctx.measureText('ABCD').actualBoundingBoxLeft), 0, "Math.abs(ctx.measureText('ABCD').actualBoundingBoxLeft)", "0"); - _assert(ctx.measureText('ABCD').actualBoundingBoxRight >= 200, "ctx.measureText('ABCD').actualBoundingBoxRight >= 200"); - _assert(ctx.measureText('ABCD').actualBoundingBoxAscent >= 85, "ctx.measureText('ABCD').actualBoundingBoxAscent >= 85"); - _assert(ctx.measureText('ABCD').actualBoundingBoxDescent >= 37, "ctx.measureText('ABCD').actualBoundingBoxDescent >= 37"); -}).then(t_pass, t_fail); + _assertSame(Math.abs(ctx.measureText('ABCD').actualBoundingBoxLeft), 0, "Math.abs(ctx.measureText('ABCD').actualBoundingBoxLeft)", "0"); + _assert(ctx.measureText('ABCD').actualBoundingBoxRight >= 200, "ctx.measureText('ABCD').actualBoundingBoxRight >= 200"); + _assert(ctx.measureText('ABCD').actualBoundingBoxAscent >= 85, "ctx.measureText('ABCD').actualBoundingBoxAscent >= 85"); + _assert(ctx.measureText('ABCD').actualBoundingBoxDescent >= 37, "ctx.measureText('ABCD').actualBoundingBoxDescent >= 37"); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.actualBoundingBox.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.actualBoundingBox.worker.js index 4693bb6..b16ed415 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.actualBoundingBox.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.actualBoundingBox.worker.js
@@ -13,39 +13,38 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); -let fonts = (self.fonts ? self.fonts : document.fonts); -f.load(); -fonts.add(f); -fonts.ready.then(function() { - ctx.font = '50px CanvasTest'; - ctx.direction = 'ltr'; - ctx.align = 'left' - ctx.baseline = 'alphabetic' - // Some platforms may return '-0'. - _assertSame(Math.abs(ctx.measureText('A').actualBoundingBoxLeft), 0, "Math.abs(ctx.measureText('A').actualBoundingBoxLeft)", "0"); - // Different platforms may render text slightly different. - _assert(ctx.measureText('A').actualBoundingBoxRight >= 50, "ctx.measureText('A').actualBoundingBoxRight >= 50"); - _assert(ctx.measureText('A').actualBoundingBoxAscent >= 35, "ctx.measureText('A').actualBoundingBoxAscent >= 35"); - _assertSame(Math.abs(ctx.measureText('A').actualBoundingBoxDescent), 0, "Math.abs(ctx.measureText('A').actualBoundingBoxDescent)", "0"); + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; + ctx.direction = 'ltr'; + ctx.align = 'left' + ctx.baseline = 'alphabetic' + // Some platforms may return '-0'. + _assertSame(Math.abs(ctx.measureText('A').actualBoundingBoxLeft), 0, "Math.abs(ctx.measureText('A').actualBoundingBoxLeft)", "0"); + // Different platforms may render text slightly different. + _assert(ctx.measureText('A').actualBoundingBoxRight >= 50, "ctx.measureText('A').actualBoundingBoxRight >= 50"); + _assert(ctx.measureText('A').actualBoundingBoxAscent >= 35, "ctx.measureText('A').actualBoundingBoxAscent >= 35"); + _assertSame(Math.abs(ctx.measureText('A').actualBoundingBoxDescent), 0, "Math.abs(ctx.measureText('A').actualBoundingBoxDescent)", "0"); - _assert(ctx.measureText('D').actualBoundingBoxLeft >= 48, "ctx.measureText('D').actualBoundingBoxLeft >= 48"); - _assert(ctx.measureText('D').actualBoundingBoxLeft <= 52, "ctx.measureText('D').actualBoundingBoxLeft <= 52"); - _assert(ctx.measureText('D').actualBoundingBoxRight >= 75, "ctx.measureText('D').actualBoundingBoxRight >= 75"); - _assert(ctx.measureText('D').actualBoundingBoxRight <= 80, "ctx.measureText('D').actualBoundingBoxRight <= 80"); - _assert(ctx.measureText('D').actualBoundingBoxAscent >= 35, "ctx.measureText('D').actualBoundingBoxAscent >= 35"); - _assert(ctx.measureText('D').actualBoundingBoxAscent <= 40, "ctx.measureText('D').actualBoundingBoxAscent <= 40"); - _assert(ctx.measureText('D').actualBoundingBoxDescent >= 12, "ctx.measureText('D').actualBoundingBoxDescent >= 12"); - _assert(ctx.measureText('D').actualBoundingBoxDescent <= 15, "ctx.measureText('D').actualBoundingBoxDescent <= 15"); + _assert(ctx.measureText('D').actualBoundingBoxLeft >= 48, "ctx.measureText('D').actualBoundingBoxLeft >= 48"); + _assert(ctx.measureText('D').actualBoundingBoxLeft <= 52, "ctx.measureText('D').actualBoundingBoxLeft <= 52"); + _assert(ctx.measureText('D').actualBoundingBoxRight >= 75, "ctx.measureText('D').actualBoundingBoxRight >= 75"); + _assert(ctx.measureText('D').actualBoundingBoxRight <= 80, "ctx.measureText('D').actualBoundingBoxRight <= 80"); + _assert(ctx.measureText('D').actualBoundingBoxAscent >= 35, "ctx.measureText('D').actualBoundingBoxAscent >= 35"); + _assert(ctx.measureText('D').actualBoundingBoxAscent <= 40, "ctx.measureText('D').actualBoundingBoxAscent <= 40"); + _assert(ctx.measureText('D').actualBoundingBoxDescent >= 12, "ctx.measureText('D').actualBoundingBoxDescent >= 12"); + _assert(ctx.measureText('D').actualBoundingBoxDescent <= 15, "ctx.measureText('D').actualBoundingBoxDescent <= 15"); - _assertSame(Math.abs(ctx.measureText('ABCD').actualBoundingBoxLeft), 0, "Math.abs(ctx.measureText('ABCD').actualBoundingBoxLeft)", "0"); - _assert(ctx.measureText('ABCD').actualBoundingBoxRight >= 200, "ctx.measureText('ABCD').actualBoundingBoxRight >= 200"); - _assert(ctx.measureText('ABCD').actualBoundingBoxAscent >= 85, "ctx.measureText('ABCD').actualBoundingBoxAscent >= 85"); - _assert(ctx.measureText('ABCD').actualBoundingBoxDescent >= 37, "ctx.measureText('ABCD').actualBoundingBoxDescent >= 37"); -}).then(t_pass, t_fail); - + _assertSame(Math.abs(ctx.measureText('ABCD').actualBoundingBoxLeft), 0, "Math.abs(ctx.measureText('ABCD').actualBoundingBoxLeft)", "0"); + _assert(ctx.measureText('ABCD').actualBoundingBoxRight >= 200, "ctx.measureText('ABCD').actualBoundingBoxRight >= 200"); + _assert(ctx.measureText('ABCD').actualBoundingBoxAscent >= 85, "ctx.measureText('ABCD').actualBoundingBoxAscent >= 85"); + _assert(ctx.measureText('ABCD').actualBoundingBoxDescent >= 37, "ctx.measureText('ABCD').actualBoundingBoxDescent >= 37"); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.advances.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.advances.html index ed3affc..f3bedd4 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.advances.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.advances.html
@@ -17,32 +17,32 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); -let fonts = (self.fonts ? self.fonts : document.fonts); -f.load(); -fonts.add(f); -fonts.ready.then(function() { - ctx.font = '50px CanvasTest'; - ctx.direction = 'ltr'; - ctx.align = 'left' - // Some platforms may return '-0'. - _assertSame(Math.abs(ctx.measureText('Hello').advances[0]), 0, "Math.abs(ctx.measureText('Hello').advances[\""+(0)+"\"])", "0"); - // Different platforms may render text slightly different. - _assert(ctx.measureText('Hello').advances[1] >= 36, "ctx.measureText('Hello').advances[\""+(1)+"\"] >= 36"); - _assert(ctx.measureText('Hello').advances[2] >= 58, "ctx.measureText('Hello').advances[\""+(2)+"\"] >= 58"); - _assert(ctx.measureText('Hello').advances[3] >= 70, "ctx.measureText('Hello').advances[\""+(3)+"\"] >= 70"); - _assert(ctx.measureText('Hello').advances[4] >= 80, "ctx.measureText('Hello').advances[\""+(4)+"\"] >= 80"); + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; + ctx.direction = 'ltr'; + ctx.align = 'left' + // Some platforms may return '-0'. + _assertSame(Math.abs(ctx.measureText('Hello').advances[0]), 0, "Math.abs(ctx.measureText('Hello').advances[\""+(0)+"\"])", "0"); + // Different platforms may render text slightly different. + _assert(ctx.measureText('Hello').advances[1] >= 36, "ctx.measureText('Hello').advances[\""+(1)+"\"] >= 36"); + _assert(ctx.measureText('Hello').advances[2] >= 58, "ctx.measureText('Hello').advances[\""+(2)+"\"] >= 58"); + _assert(ctx.measureText('Hello').advances[3] >= 70, "ctx.measureText('Hello').advances[\""+(3)+"\"] >= 70"); + _assert(ctx.measureText('Hello').advances[4] >= 80, "ctx.measureText('Hello').advances[\""+(4)+"\"] >= 80"); - var tm = ctx.measureText('Hello'); - _assertSame(ctx.measureText('Hello').advances[0], tm.advances[0], "ctx.measureText('Hello').advances[\""+(0)+"\"]", "tm.advances[\""+(0)+"\"]"); - _assertSame(ctx.measureText('Hello').advances[1], tm.advances[1], "ctx.measureText('Hello').advances[\""+(1)+"\"]", "tm.advances[\""+(1)+"\"]"); - _assertSame(ctx.measureText('Hello').advances[2], tm.advances[2], "ctx.measureText('Hello').advances[\""+(2)+"\"]", "tm.advances[\""+(2)+"\"]"); - _assertSame(ctx.measureText('Hello').advances[3], tm.advances[3], "ctx.measureText('Hello').advances[\""+(3)+"\"]", "tm.advances[\""+(3)+"\"]"); - _assertSame(ctx.measureText('Hello').advances[4], tm.advances[4], "ctx.measureText('Hello').advances[\""+(4)+"\"]", "tm.advances[\""+(4)+"\"]"); -}).then(t_pass, t_fail); + var tm = ctx.measureText('Hello'); + _assertSame(ctx.measureText('Hello').advances[0], tm.advances[0], "ctx.measureText('Hello').advances[\""+(0)+"\"]", "tm.advances[\""+(0)+"\"]"); + _assertSame(ctx.measureText('Hello').advances[1], tm.advances[1], "ctx.measureText('Hello').advances[\""+(1)+"\"]", "tm.advances[\""+(1)+"\"]"); + _assertSame(ctx.measureText('Hello').advances[2], tm.advances[2], "ctx.measureText('Hello').advances[\""+(2)+"\"]", "tm.advances[\""+(2)+"\"]"); + _assertSame(ctx.measureText('Hello').advances[3], tm.advances[3], "ctx.measureText('Hello').advances[\""+(3)+"\"]", "tm.advances[\""+(3)+"\"]"); + _assertSame(ctx.measureText('Hello').advances[4], tm.advances[4], "ctx.measureText('Hello').advances[\""+(4)+"\"]", "tm.advances[\""+(4)+"\"]"); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.advances.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.advances.worker.js index f1d4bb98..55c744a 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.advances.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.advances.worker.js
@@ -13,32 +13,31 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); -let fonts = (self.fonts ? self.fonts : document.fonts); -f.load(); -fonts.add(f); -fonts.ready.then(function() { - ctx.font = '50px CanvasTest'; - ctx.direction = 'ltr'; - ctx.align = 'left' - // Some platforms may return '-0'. - _assertSame(Math.abs(ctx.measureText('Hello').advances[0]), 0, "Math.abs(ctx.measureText('Hello').advances[\""+(0)+"\"])", "0"); - // Different platforms may render text slightly different. - _assert(ctx.measureText('Hello').advances[1] >= 36, "ctx.measureText('Hello').advances[\""+(1)+"\"] >= 36"); - _assert(ctx.measureText('Hello').advances[2] >= 58, "ctx.measureText('Hello').advances[\""+(2)+"\"] >= 58"); - _assert(ctx.measureText('Hello').advances[3] >= 70, "ctx.measureText('Hello').advances[\""+(3)+"\"] >= 70"); - _assert(ctx.measureText('Hello').advances[4] >= 80, "ctx.measureText('Hello').advances[\""+(4)+"\"] >= 80"); + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; + ctx.direction = 'ltr'; + ctx.align = 'left' + // Some platforms may return '-0'. + _assertSame(Math.abs(ctx.measureText('Hello').advances[0]), 0, "Math.abs(ctx.measureText('Hello').advances[\""+(0)+"\"])", "0"); + // Different platforms may render text slightly different. + _assert(ctx.measureText('Hello').advances[1] >= 36, "ctx.measureText('Hello').advances[\""+(1)+"\"] >= 36"); + _assert(ctx.measureText('Hello').advances[2] >= 58, "ctx.measureText('Hello').advances[\""+(2)+"\"] >= 58"); + _assert(ctx.measureText('Hello').advances[3] >= 70, "ctx.measureText('Hello').advances[\""+(3)+"\"] >= 70"); + _assert(ctx.measureText('Hello').advances[4] >= 80, "ctx.measureText('Hello').advances[\""+(4)+"\"] >= 80"); - var tm = ctx.measureText('Hello'); - _assertSame(ctx.measureText('Hello').advances[0], tm.advances[0], "ctx.measureText('Hello').advances[\""+(0)+"\"]", "tm.advances[\""+(0)+"\"]"); - _assertSame(ctx.measureText('Hello').advances[1], tm.advances[1], "ctx.measureText('Hello').advances[\""+(1)+"\"]", "tm.advances[\""+(1)+"\"]"); - _assertSame(ctx.measureText('Hello').advances[2], tm.advances[2], "ctx.measureText('Hello').advances[\""+(2)+"\"]", "tm.advances[\""+(2)+"\"]"); - _assertSame(ctx.measureText('Hello').advances[3], tm.advances[3], "ctx.measureText('Hello').advances[\""+(3)+"\"]", "tm.advances[\""+(3)+"\"]"); - _assertSame(ctx.measureText('Hello').advances[4], tm.advances[4], "ctx.measureText('Hello').advances[\""+(4)+"\"]", "tm.advances[\""+(4)+"\"]"); -}).then(t_pass, t_fail); - + var tm = ctx.measureText('Hello'); + _assertSame(ctx.measureText('Hello').advances[0], tm.advances[0], "ctx.measureText('Hello').advances[\""+(0)+"\"]", "tm.advances[\""+(0)+"\"]"); + _assertSame(ctx.measureText('Hello').advances[1], tm.advances[1], "ctx.measureText('Hello').advances[\""+(1)+"\"]", "tm.advances[\""+(1)+"\"]"); + _assertSame(ctx.measureText('Hello').advances[2], tm.advances[2], "ctx.measureText('Hello').advances[\""+(2)+"\"]", "tm.advances[\""+(2)+"\"]"); + _assertSame(ctx.measureText('Hello').advances[3], tm.advances[3], "ctx.measureText('Hello').advances[\""+(3)+"\"]", "tm.advances[\""+(3)+"\"]"); + _assertSame(ctx.measureText('Hello').advances[4], tm.advances[4], "ctx.measureText('Hello').advances[\""+(4)+"\"]", "tm.advances[\""+(4)+"\"]"); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.baselines.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.baselines.html index 993fbb0..e58f9be 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.baselines.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.baselines.html
@@ -17,25 +17,25 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); -let fonts = (self.fonts ? self.fonts : document.fonts); -f.load(); -fonts.add(f); -fonts.ready.then(function() { - ctx.font = '50px CanvasTest'; - ctx.direction = 'ltr'; - ctx.align = 'left' - _assertSame(Math.abs(ctx.measureText('A').getBaselines().alphabetic), 0, "Math.abs(ctx.measureText('A').getBaselines().alphabetic)", "0"); - _assertSame(ctx.measureText('A').getBaselines().ideographic, -39, "ctx.measureText('A').getBaselines().ideographic", "-39"); - _assertSame(ctx.measureText('A').getBaselines().hanging, 68, "ctx.measureText('A').getBaselines().hanging", "68"); + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; + ctx.direction = 'ltr'; + ctx.align = 'left' + _assertSame(Math.abs(ctx.measureText('A').getBaselines().alphabetic), 0, "Math.abs(ctx.measureText('A').getBaselines().alphabetic)", "0"); + _assertSame(ctx.measureText('A').getBaselines().ideographic, -39, "ctx.measureText('A').getBaselines().ideographic", "-39"); + _assertSame(ctx.measureText('A').getBaselines().hanging, 68, "ctx.measureText('A').getBaselines().hanging", "68"); - _assertSame(Math.abs(ctx.measureText('ABCD').getBaselines().alphabetic), 0, "Math.abs(ctx.measureText('ABCD').getBaselines().alphabetic)", "0"); - _assertSame(ctx.measureText('ABCD').getBaselines().ideographic, -39, "ctx.measureText('ABCD').getBaselines().ideographic", "-39"); - _assertSame(ctx.measureText('ABCD').getBaselines().hanging, 68, "ctx.measureText('ABCD').getBaselines().hanging", "68"); -}).then(t_pass, t_fail); + _assertSame(Math.abs(ctx.measureText('ABCD').getBaselines().alphabetic), 0, "Math.abs(ctx.measureText('ABCD').getBaselines().alphabetic)", "0"); + _assertSame(ctx.measureText('ABCD').getBaselines().ideographic, -39, "ctx.measureText('ABCD').getBaselines().ideographic", "-39"); + _assertSame(ctx.measureText('ABCD').getBaselines().hanging, 68, "ctx.measureText('ABCD').getBaselines().hanging", "68"); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.baselines.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.baselines.worker.js index 0c06016..6f157f4e 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.baselines.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.baselines.worker.js
@@ -13,25 +13,24 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); -let fonts = (self.fonts ? self.fonts : document.fonts); -f.load(); -fonts.add(f); -fonts.ready.then(function() { - ctx.font = '50px CanvasTest'; - ctx.direction = 'ltr'; - ctx.align = 'left' - _assertSame(Math.abs(ctx.measureText('A').getBaselines().alphabetic), 0, "Math.abs(ctx.measureText('A').getBaselines().alphabetic)", "0"); - _assertSame(ctx.measureText('A').getBaselines().ideographic, -39, "ctx.measureText('A').getBaselines().ideographic", "-39"); - _assertSame(ctx.measureText('A').getBaselines().hanging, 68, "ctx.measureText('A').getBaselines().hanging", "68"); + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; + ctx.direction = 'ltr'; + ctx.align = 'left' + _assertSame(Math.abs(ctx.measureText('A').getBaselines().alphabetic), 0, "Math.abs(ctx.measureText('A').getBaselines().alphabetic)", "0"); + _assertSame(ctx.measureText('A').getBaselines().ideographic, -39, "ctx.measureText('A').getBaselines().ideographic", "-39"); + _assertSame(ctx.measureText('A').getBaselines().hanging, 68, "ctx.measureText('A').getBaselines().hanging", "68"); - _assertSame(Math.abs(ctx.measureText('ABCD').getBaselines().alphabetic), 0, "Math.abs(ctx.measureText('ABCD').getBaselines().alphabetic)", "0"); - _assertSame(ctx.measureText('ABCD').getBaselines().ideographic, -39, "ctx.measureText('ABCD').getBaselines().ideographic", "-39"); - _assertSame(ctx.measureText('ABCD').getBaselines().hanging, 68, "ctx.measureText('ABCD').getBaselines().hanging", "68"); -}).then(t_pass, t_fail); - + _assertSame(Math.abs(ctx.measureText('ABCD').getBaselines().alphabetic), 0, "Math.abs(ctx.measureText('ABCD').getBaselines().alphabetic)", "0"); + _assertSame(ctx.measureText('ABCD').getBaselines().ideographic, -39, "ctx.measureText('ABCD').getBaselines().ideographic", "-39"); + _assertSame(ctx.measureText('ABCD').getBaselines().hanging, 68, "ctx.measureText('ABCD').getBaselines().hanging", "68"); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.emHeights.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.emHeights.html index cc91f401..6a93bac 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.emHeights.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.emHeights.html
@@ -17,25 +17,25 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); -let fonts = (self.fonts ? self.fonts : document.fonts); -f.load(); -fonts.add(f); -fonts.ready.then(function() { - ctx.font = '50px CanvasTest'; - ctx.direction = 'ltr'; - ctx.align = 'left' - _assertSame(ctx.measureText('A').emHeightAscent, 37.5, "ctx.measureText('A').emHeightAscent", "37.5"); - _assertSame(ctx.measureText('A').emHeightDescent, 12.5, "ctx.measureText('A').emHeightDescent", "12.5"); - _assertSame(ctx.measureText('A').emHeightDescent + ctx.measureText('A').emHeightAscent, 50, "ctx.measureText('A').emHeightDescent + ctx.measureText('A').emHeightAscent", "50"); + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; + ctx.direction = 'ltr'; + ctx.align = 'left' + _assertSame(ctx.measureText('A').emHeightAscent, 37.5, "ctx.measureText('A').emHeightAscent", "37.5"); + _assertSame(ctx.measureText('A').emHeightDescent, 12.5, "ctx.measureText('A').emHeightDescent", "12.5"); + _assertSame(ctx.measureText('A').emHeightDescent + ctx.measureText('A').emHeightAscent, 50, "ctx.measureText('A').emHeightDescent + ctx.measureText('A').emHeightAscent", "50"); - _assertSame(ctx.measureText('ABCD').emHeightAscent, 37.5, "ctx.measureText('ABCD').emHeightAscent", "37.5"); - _assertSame(ctx.measureText('ABCD').emHeightDescent, 12.5, "ctx.measureText('ABCD').emHeightDescent", "12.5"); - _assertSame(ctx.measureText('ABCD').emHeightDescent + ctx.measureText('ABCD').emHeightAscent, 50, "ctx.measureText('ABCD').emHeightDescent + ctx.measureText('ABCD').emHeightAscent", "50"); -}).then(t_pass, t_fail); + _assertSame(ctx.measureText('ABCD').emHeightAscent, 37.5, "ctx.measureText('ABCD').emHeightAscent", "37.5"); + _assertSame(ctx.measureText('ABCD').emHeightDescent, 12.5, "ctx.measureText('ABCD').emHeightDescent", "12.5"); + _assertSame(ctx.measureText('ABCD').emHeightDescent + ctx.measureText('ABCD').emHeightAscent, 50, "ctx.measureText('ABCD').emHeightDescent + ctx.measureText('ABCD').emHeightAscent", "50"); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.emHeights.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.emHeights.worker.js index 88432343..1dd5f7c 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.emHeights.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.emHeights.worker.js
@@ -13,25 +13,24 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); -let fonts = (self.fonts ? self.fonts : document.fonts); -f.load(); -fonts.add(f); -fonts.ready.then(function() { - ctx.font = '50px CanvasTest'; - ctx.direction = 'ltr'; - ctx.align = 'left' - _assertSame(ctx.measureText('A').emHeightAscent, 37.5, "ctx.measureText('A').emHeightAscent", "37.5"); - _assertSame(ctx.measureText('A').emHeightDescent, 12.5, "ctx.measureText('A').emHeightDescent", "12.5"); - _assertSame(ctx.measureText('A').emHeightDescent + ctx.measureText('A').emHeightAscent, 50, "ctx.measureText('A').emHeightDescent + ctx.measureText('A').emHeightAscent", "50"); + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; + ctx.direction = 'ltr'; + ctx.align = 'left' + _assertSame(ctx.measureText('A').emHeightAscent, 37.5, "ctx.measureText('A').emHeightAscent", "37.5"); + _assertSame(ctx.measureText('A').emHeightDescent, 12.5, "ctx.measureText('A').emHeightDescent", "12.5"); + _assertSame(ctx.measureText('A').emHeightDescent + ctx.measureText('A').emHeightAscent, 50, "ctx.measureText('A').emHeightDescent + ctx.measureText('A').emHeightAscent", "50"); - _assertSame(ctx.measureText('ABCD').emHeightAscent, 37.5, "ctx.measureText('ABCD').emHeightAscent", "37.5"); - _assertSame(ctx.measureText('ABCD').emHeightDescent, 12.5, "ctx.measureText('ABCD').emHeightDescent", "12.5"); - _assertSame(ctx.measureText('ABCD').emHeightDescent + ctx.measureText('ABCD').emHeightAscent, 50, "ctx.measureText('ABCD').emHeightDescent + ctx.measureText('ABCD').emHeightAscent", "50"); -}).then(t_pass, t_fail); - + _assertSame(ctx.measureText('ABCD').emHeightAscent, 37.5, "ctx.measureText('ABCD').emHeightAscent", "37.5"); + _assertSame(ctx.measureText('ABCD').emHeightDescent, 12.5, "ctx.measureText('ABCD').emHeightDescent", "12.5"); + _assertSame(ctx.measureText('ABCD').emHeightDescent + ctx.measureText('ABCD').emHeightAscent, 50, "ctx.measureText('ABCD').emHeightDescent + ctx.measureText('ABCD').emHeightAscent", "50"); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.fontBoundingBox.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.fontBoundingBox.html index fca062b6..03ee45b 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.fontBoundingBox.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.fontBoundingBox.html
@@ -17,23 +17,23 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); -let fonts = (self.fonts ? self.fonts : document.fonts); -f.load(); -fonts.add(f); -fonts.ready.then(function() { - ctx.font = '50px CanvasTest'; - ctx.direction = 'ltr'; - ctx.align = 'left' - _assertSame(ctx.measureText('A').fontBoundingBoxAscent, 85, "ctx.measureText('A').fontBoundingBoxAscent", "85"); - _assertSame(ctx.measureText('A').fontBoundingBoxDescent, 39, "ctx.measureText('A').fontBoundingBoxDescent", "39"); + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; + ctx.direction = 'ltr'; + ctx.align = 'left' + _assertSame(ctx.measureText('A').fontBoundingBoxAscent, 85, "ctx.measureText('A').fontBoundingBoxAscent", "85"); + _assertSame(ctx.measureText('A').fontBoundingBoxDescent, 39, "ctx.measureText('A').fontBoundingBoxDescent", "39"); - _assertSame(ctx.measureText('ABCD').fontBoundingBoxAscent, 85, "ctx.measureText('ABCD').fontBoundingBoxAscent", "85"); - _assertSame(ctx.measureText('ABCD').fontBoundingBoxDescent, 39, "ctx.measureText('ABCD').fontBoundingBoxDescent", "39"); -}).then(t_pass, t_fail); + _assertSame(ctx.measureText('ABCD').fontBoundingBoxAscent, 85, "ctx.measureText('ABCD').fontBoundingBoxAscent", "85"); + _assertSame(ctx.measureText('ABCD').fontBoundingBoxDescent, 39, "ctx.measureText('ABCD').fontBoundingBoxDescent", "39"); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.fontBoundingBox.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.fontBoundingBox.worker.js index 2f4b64d..65c5e9a 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.fontBoundingBox.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.fontBoundingBox.worker.js
@@ -13,23 +13,22 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); -let fonts = (self.fonts ? self.fonts : document.fonts); -f.load(); -fonts.add(f); -fonts.ready.then(function() { - ctx.font = '50px CanvasTest'; - ctx.direction = 'ltr'; - ctx.align = 'left' - _assertSame(ctx.measureText('A').fontBoundingBoxAscent, 85, "ctx.measureText('A').fontBoundingBoxAscent", "85"); - _assertSame(ctx.measureText('A').fontBoundingBoxDescent, 39, "ctx.measureText('A').fontBoundingBoxDescent", "39"); + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; + ctx.direction = 'ltr'; + ctx.align = 'left' + _assertSame(ctx.measureText('A').fontBoundingBoxAscent, 85, "ctx.measureText('A').fontBoundingBoxAscent", "85"); + _assertSame(ctx.measureText('A').fontBoundingBoxDescent, 39, "ctx.measureText('A').fontBoundingBoxDescent", "39"); - _assertSame(ctx.measureText('ABCD').fontBoundingBoxAscent, 85, "ctx.measureText('ABCD').fontBoundingBoxAscent", "85"); - _assertSame(ctx.measureText('ABCD').fontBoundingBoxDescent, 39, "ctx.measureText('ABCD').fontBoundingBoxDescent", "39"); -}).then(t_pass, t_fail); - + _assertSame(ctx.measureText('ABCD').fontBoundingBoxAscent, 85, "ctx.measureText('ABCD').fontBoundingBoxAscent", "85"); + _assertSame(ctx.measureText('ABCD').fontBoundingBoxDescent, 39, "ctx.measureText('ABCD').fontBoundingBoxDescent", "39"); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.width.basic.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.width.basic.html index 074d62ee..fa47879 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.width.basic.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.width.basic.html
@@ -17,22 +17,22 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); -let fonts = (self.fonts ? self.fonts : document.fonts); -f.load(); -fonts.add(f); -fonts.ready.then(function() { - ctx.font = '50px CanvasTest'; - _assertSame(ctx.measureText('A').width, 50, "ctx.measureText('A').width", "50"); - _assertSame(ctx.measureText('AA').width, 100, "ctx.measureText('AA').width", "100"); - _assertSame(ctx.measureText('ABCD').width, 200, "ctx.measureText('ABCD').width", "200"); + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; + _assertSame(ctx.measureText('A').width, 50, "ctx.measureText('A').width", "50"); + _assertSame(ctx.measureText('AA').width, 100, "ctx.measureText('AA').width", "100"); + _assertSame(ctx.measureText('ABCD').width, 200, "ctx.measureText('ABCD').width", "200"); - ctx.font = '100px CanvasTest'; - _assertSame(ctx.measureText('A').width, 100, "ctx.measureText('A').width", "100"); -}).then(t_pass, t_fail); + ctx.font = '100px CanvasTest'; + _assertSame(ctx.measureText('A').width, 100, "ctx.measureText('A').width", "100"); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.width.basic.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.width.basic.worker.js index a1933c8..265843ae 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.width.basic.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.width.basic.worker.js
@@ -13,22 +13,21 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); -let fonts = (self.fonts ? self.fonts : document.fonts); -f.load(); -fonts.add(f); -fonts.ready.then(function() { - ctx.font = '50px CanvasTest'; - _assertSame(ctx.measureText('A').width, 50, "ctx.measureText('A').width", "50"); - _assertSame(ctx.measureText('AA').width, 100, "ctx.measureText('AA').width", "100"); - _assertSame(ctx.measureText('ABCD').width, 200, "ctx.measureText('ABCD').width", "200"); + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; + _assertSame(ctx.measureText('A').width, 50, "ctx.measureText('A').width", "50"); + _assertSame(ctx.measureText('AA').width, 100, "ctx.measureText('AA').width", "100"); + _assertSame(ctx.measureText('ABCD').width, 200, "ctx.measureText('ABCD').width", "200"); - ctx.font = '100px CanvasTest'; - _assertSame(ctx.measureText('A').width, 100, "ctx.measureText('A').width", "100"); -}).then(t_pass, t_fail); - + ctx.font = '100px CanvasTest'; + _assertSame(ctx.measureText('A').width, 100, "ctx.measureText('A').width", "100"); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.width.empty.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.width.empty.html index 45792b4..7d412008 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.width.empty.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.width.empty.html
@@ -17,17 +17,17 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); -let fonts = (self.fonts ? self.fonts : document.fonts); -f.load(); -fonts.add(f); -fonts.ready.then(function() { - ctx.font = '50px CanvasTest'; - _assertSame(ctx.measureText("").width, 0, "ctx.measureText(\"\").width", "0"); -}).then(t_pass, t_fail); + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; + _assertSame(ctx.measureText("").width, 0, "ctx.measureText(\"\").width", "0"); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.width.empty.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.width.empty.worker.js index 8d806c1..68bba39 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.width.empty.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.width.empty.worker.js
@@ -13,17 +13,16 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); -let fonts = (self.fonts ? self.fonts : document.fonts); -f.load(); -fonts.add(f); -fonts.ready.then(function() { - ctx.font = '50px CanvasTest'; - _assertSame(ctx.measureText("").width, 0, "ctx.measureText(\"\").width", "0"); -}).then(t_pass, t_fail); - + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; + _assertSame(ctx.measureText("").width, 0, "ctx.measureText(\"\").width", "0"); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.width.space.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.width.space.html index 971a41e2..bff53f4 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.width.space.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.width.space.html
@@ -17,23 +17,23 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); -let fonts = (self.fonts ? self.fonts : document.fonts); -f.load(); -fonts.add(f); -fonts.ready.then(function() { - ctx.font = '50px CanvasTest'; - _assertSame(ctx.measureText('A B').width, 150, "ctx.measureText('A B').width", "150"); - _assertSame(ctx.measureText('A B').width, 200, "ctx.measureText('A B').width", "200"); - _assertSame(ctx.measureText('A \x09\x0a\x0c\x0d \x09\x0a\x0c\x0dB').width, 150, "ctx.measureText('A \\x09\\x0a\\x0c\\x0d \\x09\\x0a\\x0c\\x0dB').width", "150"); - _assert(ctx.measureText('A \x0b B').width >= 200, "ctx.measureText('A \\x0b B').width >= 200"); + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; + _assertSame(ctx.measureText('A B').width, 150, "ctx.measureText('A B').width", "150"); + _assertSame(ctx.measureText('A B').width, 200, "ctx.measureText('A B').width", "200"); + _assertSame(ctx.measureText('A \x09\x0a\x0c\x0d \x09\x0a\x0c\x0dB').width, 150, "ctx.measureText('A \\x09\\x0a\\x0c\\x0d \\x09\\x0a\\x0c\\x0dB').width", "150"); + _assert(ctx.measureText('A \x0b B').width >= 200, "ctx.measureText('A \\x0b B').width >= 200"); - _assertSame(ctx.measureText(' AB').width, 100, "ctx.measureText(' AB').width", "100"); - _assertSame(ctx.measureText('AB ').width, 100, "ctx.measureText('AB ').width", "100"); -}).then(t_pass, t_fail); + _assertSame(ctx.measureText(' AB').width, 100, "ctx.measureText(' AB').width", "100"); + _assertSame(ctx.measureText('AB ').width, 100, "ctx.measureText('AB ').width", "100"); + }).then(t_pass, t_fail); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.width.space.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.width.space.worker.js index a52c1d8..83020b3 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.width.space.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.width.space.worker.js
@@ -13,23 +13,22 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); -let fonts = (self.fonts ? self.fonts : document.fonts); -f.load(); -fonts.add(f); -fonts.ready.then(function() { - ctx.font = '50px CanvasTest'; - _assertSame(ctx.measureText('A B').width, 150, "ctx.measureText('A B').width", "150"); - _assertSame(ctx.measureText('A B').width, 200, "ctx.measureText('A B').width", "200"); - _assertSame(ctx.measureText('A \x09\x0a\x0c\x0d \x09\x0a\x0c\x0dB').width, 150, "ctx.measureText('A \\x09\\x0a\\x0c\\x0d \\x09\\x0a\\x0c\\x0dB').width", "150"); - _assert(ctx.measureText('A \x0b B').width >= 200, "ctx.measureText('A \\x0b B').width >= 200"); + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; + _assertSame(ctx.measureText('A B').width, 150, "ctx.measureText('A B').width", "150"); + _assertSame(ctx.measureText('A B').width, 200, "ctx.measureText('A B').width", "200"); + _assertSame(ctx.measureText('A \x09\x0a\x0c\x0d \x09\x0a\x0c\x0dB').width, 150, "ctx.measureText('A \\x09\\x0a\\x0c\\x0d \\x09\\x0a\\x0c\\x0dB').width", "150"); + _assert(ctx.measureText('A \x0b B').width >= 200, "ctx.measureText('A \\x0b B').width >= 200"); - _assertSame(ctx.measureText(' AB').width, 100, "ctx.measureText(' AB').width", "100"); - _assertSame(ctx.measureText('AB ').width, 100, "ctx.measureText('AB ').width", "100"); -}).then(t_pass, t_fail); - + _assertSame(ctx.measureText(' AB').width, 100, "ctx.measureText(' AB').width", "100"); + _assertSame(ctx.measureText('AB ').width, 100, "ctx.measureText('AB ').width", "100"); + }).then(t_pass, t_fail); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.setFont.mathFont.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.setFont.mathFont.html index ed4752d..89d8fe3 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.setFont.mathFont.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.setFont.mathFont.html
@@ -17,11 +17,11 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.font = "math serif"; -t.done(); + ctx.font = "math serif"; + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.setFont.mathFont.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.setFont.mathFont.worker.js index 39e3031e..b756b45 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.setFont.mathFont.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.setFont.mathFont.worker.js
@@ -13,11 +13,10 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.font = "math serif"; -t.done(); - + ctx.font = "math serif"; + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.bitmap.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.bitmap.html index 3a6e67b..208043f 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.bitmap.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.bitmap.html
@@ -17,17 +17,17 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.save(); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.restore(); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.save(); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.restore(); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.bitmap.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.bitmap.worker.js index c602488..09c7dcc 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.bitmap.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.bitmap.worker.js
@@ -13,17 +13,16 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.save(); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.restore(); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.save(); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.restore(); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.clip.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.clip.html index e96df9e..f4d6b6f 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.clip.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.clip.html
@@ -17,19 +17,19 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.save(); -ctx.rect(0, 0, 1, 1); -ctx.clip(); -ctx.restore(); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.save(); + ctx.rect(0, 0, 1, 1); + ctx.clip(); + ctx.restore(); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.clip.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.clip.worker.js index 622d941..a7bc061 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.clip.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.clip.worker.js
@@ -13,19 +13,18 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.save(); -ctx.rect(0, 0, 1, 1); -ctx.clip(); -ctx.restore(); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.save(); + ctx.rect(0, 0, 1, 1); + ctx.clip(); + ctx.restore(); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.fillStyle.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.fillStyle.html index 91b23bd..789e1e8 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.fillStyle.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.fillStyle.html
@@ -17,25 +17,25 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -// Test that restore() undoes any modifications -var old = ctx.fillStyle; -ctx.save(); -ctx.fillStyle = "#ff0000"; -ctx.restore(); -_assertSame(ctx.fillStyle, old, "ctx.fillStyle", "old"); + // Test that restore() undoes any modifications + var old = ctx.fillStyle; + ctx.save(); + ctx.fillStyle = "#ff0000"; + ctx.restore(); + _assertSame(ctx.fillStyle, old, "ctx.fillStyle", "old"); -// Also test that save() doesn't modify the values -ctx.fillStyle = "#ff0000"; -old = ctx.fillStyle; - // we're not interested in failures caused by get(set(x)) != x (e.g. - // from rounding), so compare against 'old' instead of against "#ff0000" -ctx.save(); -_assertSame(ctx.fillStyle, old, "ctx.fillStyle", "old"); -ctx.restore(); -t.done(); + // Also test that save() doesn't modify the values + ctx.fillStyle = "#ff0000"; + old = ctx.fillStyle; + // we're not interested in failures caused by get(set(x)) != x (e.g. + // from rounding), so compare against 'old' instead of against "#ff0000" + ctx.save(); + _assertSame(ctx.fillStyle, old, "ctx.fillStyle", "old"); + ctx.restore(); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.fillStyle.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.fillStyle.worker.js index fa4d773..46cf6d1 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.fillStyle.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.fillStyle.worker.js
@@ -13,25 +13,24 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -// Test that restore() undoes any modifications -var old = ctx.fillStyle; -ctx.save(); -ctx.fillStyle = "#ff0000"; -ctx.restore(); -_assertSame(ctx.fillStyle, old, "ctx.fillStyle", "old"); + // Test that restore() undoes any modifications + var old = ctx.fillStyle; + ctx.save(); + ctx.fillStyle = "#ff0000"; + ctx.restore(); + _assertSame(ctx.fillStyle, old, "ctx.fillStyle", "old"); -// Also test that save() doesn't modify the values -ctx.fillStyle = "#ff0000"; -old = ctx.fillStyle; - // we're not interested in failures caused by get(set(x)) != x (e.g. - // from rounding), so compare against 'old' instead of against "#ff0000" -ctx.save(); -_assertSame(ctx.fillStyle, old, "ctx.fillStyle", "old"); -ctx.restore(); -t.done(); - + // Also test that save() doesn't modify the values + ctx.fillStyle = "#ff0000"; + old = ctx.fillStyle; + // we're not interested in failures caused by get(set(x)) != x (e.g. + // from rounding), so compare against 'old' instead of against "#ff0000" + ctx.save(); + _assertSame(ctx.fillStyle, old, "ctx.fillStyle", "old"); + ctx.restore(); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.globalAlpha.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.globalAlpha.html index 01b9616..15b5972 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.globalAlpha.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.globalAlpha.html
@@ -17,25 +17,25 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -// Test that restore() undoes any modifications -var old = ctx.globalAlpha; -ctx.save(); -ctx.globalAlpha = 0.5; -ctx.restore(); -_assertSame(ctx.globalAlpha, old, "ctx.globalAlpha", "old"); + // Test that restore() undoes any modifications + var old = ctx.globalAlpha; + ctx.save(); + ctx.globalAlpha = 0.5; + ctx.restore(); + _assertSame(ctx.globalAlpha, old, "ctx.globalAlpha", "old"); -// Also test that save() doesn't modify the values -ctx.globalAlpha = 0.5; -old = ctx.globalAlpha; - // we're not interested in failures caused by get(set(x)) != x (e.g. - // from rounding), so compare against 'old' instead of against 0.5 -ctx.save(); -_assertSame(ctx.globalAlpha, old, "ctx.globalAlpha", "old"); -ctx.restore(); -t.done(); + // Also test that save() doesn't modify the values + ctx.globalAlpha = 0.5; + old = ctx.globalAlpha; + // we're not interested in failures caused by get(set(x)) != x (e.g. + // from rounding), so compare against 'old' instead of against 0.5 + ctx.save(); + _assertSame(ctx.globalAlpha, old, "ctx.globalAlpha", "old"); + ctx.restore(); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.globalAlpha.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.globalAlpha.worker.js index 8b11054..765f8b0 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.globalAlpha.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.globalAlpha.worker.js
@@ -13,25 +13,24 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -// Test that restore() undoes any modifications -var old = ctx.globalAlpha; -ctx.save(); -ctx.globalAlpha = 0.5; -ctx.restore(); -_assertSame(ctx.globalAlpha, old, "ctx.globalAlpha", "old"); + // Test that restore() undoes any modifications + var old = ctx.globalAlpha; + ctx.save(); + ctx.globalAlpha = 0.5; + ctx.restore(); + _assertSame(ctx.globalAlpha, old, "ctx.globalAlpha", "old"); -// Also test that save() doesn't modify the values -ctx.globalAlpha = 0.5; -old = ctx.globalAlpha; - // we're not interested in failures caused by get(set(x)) != x (e.g. - // from rounding), so compare against 'old' instead of against 0.5 -ctx.save(); -_assertSame(ctx.globalAlpha, old, "ctx.globalAlpha", "old"); -ctx.restore(); -t.done(); - + // Also test that save() doesn't modify the values + ctx.globalAlpha = 0.5; + old = ctx.globalAlpha; + // we're not interested in failures caused by get(set(x)) != x (e.g. + // from rounding), so compare against 'old' instead of against 0.5 + ctx.save(); + _assertSame(ctx.globalAlpha, old, "ctx.globalAlpha", "old"); + ctx.restore(); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.globalCompositeOperation.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.globalCompositeOperation.html index 557d3c0..1efb24a 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.globalCompositeOperation.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.globalCompositeOperation.html
@@ -17,25 +17,25 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -// Test that restore() undoes any modifications -var old = ctx.globalCompositeOperation; -ctx.save(); -ctx.globalCompositeOperation = "copy"; -ctx.restore(); -_assertSame(ctx.globalCompositeOperation, old, "ctx.globalCompositeOperation", "old"); + // Test that restore() undoes any modifications + var old = ctx.globalCompositeOperation; + ctx.save(); + ctx.globalCompositeOperation = "copy"; + ctx.restore(); + _assertSame(ctx.globalCompositeOperation, old, "ctx.globalCompositeOperation", "old"); -// Also test that save() doesn't modify the values -ctx.globalCompositeOperation = "copy"; -old = ctx.globalCompositeOperation; - // we're not interested in failures caused by get(set(x)) != x (e.g. - // from rounding), so compare against 'old' instead of against "copy" -ctx.save(); -_assertSame(ctx.globalCompositeOperation, old, "ctx.globalCompositeOperation", "old"); -ctx.restore(); -t.done(); + // Also test that save() doesn't modify the values + ctx.globalCompositeOperation = "copy"; + old = ctx.globalCompositeOperation; + // we're not interested in failures caused by get(set(x)) != x (e.g. + // from rounding), so compare against 'old' instead of against "copy" + ctx.save(); + _assertSame(ctx.globalCompositeOperation, old, "ctx.globalCompositeOperation", "old"); + ctx.restore(); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.globalCompositeOperation.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.globalCompositeOperation.worker.js index 3534147..cd38d56 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.globalCompositeOperation.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.globalCompositeOperation.worker.js
@@ -13,25 +13,24 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -// Test that restore() undoes any modifications -var old = ctx.globalCompositeOperation; -ctx.save(); -ctx.globalCompositeOperation = "copy"; -ctx.restore(); -_assertSame(ctx.globalCompositeOperation, old, "ctx.globalCompositeOperation", "old"); + // Test that restore() undoes any modifications + var old = ctx.globalCompositeOperation; + ctx.save(); + ctx.globalCompositeOperation = "copy"; + ctx.restore(); + _assertSame(ctx.globalCompositeOperation, old, "ctx.globalCompositeOperation", "old"); -// Also test that save() doesn't modify the values -ctx.globalCompositeOperation = "copy"; -old = ctx.globalCompositeOperation; - // we're not interested in failures caused by get(set(x)) != x (e.g. - // from rounding), so compare against 'old' instead of against "copy" -ctx.save(); -_assertSame(ctx.globalCompositeOperation, old, "ctx.globalCompositeOperation", "old"); -ctx.restore(); -t.done(); - + // Also test that save() doesn't modify the values + ctx.globalCompositeOperation = "copy"; + old = ctx.globalCompositeOperation; + // we're not interested in failures caused by get(set(x)) != x (e.g. + // from rounding), so compare against 'old' instead of against "copy" + ctx.save(); + _assertSame(ctx.globalCompositeOperation, old, "ctx.globalCompositeOperation", "old"); + ctx.restore(); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.lineCap.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.lineCap.html index e02cbd46d..5e651d0 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.lineCap.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.lineCap.html
@@ -17,25 +17,25 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -// Test that restore() undoes any modifications -var old = ctx.lineCap; -ctx.save(); -ctx.lineCap = "round"; -ctx.restore(); -_assertSame(ctx.lineCap, old, "ctx.lineCap", "old"); + // Test that restore() undoes any modifications + var old = ctx.lineCap; + ctx.save(); + ctx.lineCap = "round"; + ctx.restore(); + _assertSame(ctx.lineCap, old, "ctx.lineCap", "old"); -// Also test that save() doesn't modify the values -ctx.lineCap = "round"; -old = ctx.lineCap; - // we're not interested in failures caused by get(set(x)) != x (e.g. - // from rounding), so compare against 'old' instead of against "round" -ctx.save(); -_assertSame(ctx.lineCap, old, "ctx.lineCap", "old"); -ctx.restore(); -t.done(); + // Also test that save() doesn't modify the values + ctx.lineCap = "round"; + old = ctx.lineCap; + // we're not interested in failures caused by get(set(x)) != x (e.g. + // from rounding), so compare against 'old' instead of against "round" + ctx.save(); + _assertSame(ctx.lineCap, old, "ctx.lineCap", "old"); + ctx.restore(); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.lineCap.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.lineCap.worker.js index 70de46a..9895b44 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.lineCap.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.lineCap.worker.js
@@ -13,25 +13,24 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -// Test that restore() undoes any modifications -var old = ctx.lineCap; -ctx.save(); -ctx.lineCap = "round"; -ctx.restore(); -_assertSame(ctx.lineCap, old, "ctx.lineCap", "old"); + // Test that restore() undoes any modifications + var old = ctx.lineCap; + ctx.save(); + ctx.lineCap = "round"; + ctx.restore(); + _assertSame(ctx.lineCap, old, "ctx.lineCap", "old"); -// Also test that save() doesn't modify the values -ctx.lineCap = "round"; -old = ctx.lineCap; - // we're not interested in failures caused by get(set(x)) != x (e.g. - // from rounding), so compare against 'old' instead of against "round" -ctx.save(); -_assertSame(ctx.lineCap, old, "ctx.lineCap", "old"); -ctx.restore(); -t.done(); - + // Also test that save() doesn't modify the values + ctx.lineCap = "round"; + old = ctx.lineCap; + // we're not interested in failures caused by get(set(x)) != x (e.g. + // from rounding), so compare against 'old' instead of against "round" + ctx.save(); + _assertSame(ctx.lineCap, old, "ctx.lineCap", "old"); + ctx.restore(); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.lineJoin.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.lineJoin.html index 92100e9..20f53fe 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.lineJoin.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.lineJoin.html
@@ -17,25 +17,25 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -// Test that restore() undoes any modifications -var old = ctx.lineJoin; -ctx.save(); -ctx.lineJoin = "round"; -ctx.restore(); -_assertSame(ctx.lineJoin, old, "ctx.lineJoin", "old"); + // Test that restore() undoes any modifications + var old = ctx.lineJoin; + ctx.save(); + ctx.lineJoin = "round"; + ctx.restore(); + _assertSame(ctx.lineJoin, old, "ctx.lineJoin", "old"); -// Also test that save() doesn't modify the values -ctx.lineJoin = "round"; -old = ctx.lineJoin; - // we're not interested in failures caused by get(set(x)) != x (e.g. - // from rounding), so compare against 'old' instead of against "round" -ctx.save(); -_assertSame(ctx.lineJoin, old, "ctx.lineJoin", "old"); -ctx.restore(); -t.done(); + // Also test that save() doesn't modify the values + ctx.lineJoin = "round"; + old = ctx.lineJoin; + // we're not interested in failures caused by get(set(x)) != x (e.g. + // from rounding), so compare against 'old' instead of against "round" + ctx.save(); + _assertSame(ctx.lineJoin, old, "ctx.lineJoin", "old"); + ctx.restore(); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.lineJoin.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.lineJoin.worker.js index 1da6db8..e8c8582 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.lineJoin.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.lineJoin.worker.js
@@ -13,25 +13,24 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -// Test that restore() undoes any modifications -var old = ctx.lineJoin; -ctx.save(); -ctx.lineJoin = "round"; -ctx.restore(); -_assertSame(ctx.lineJoin, old, "ctx.lineJoin", "old"); + // Test that restore() undoes any modifications + var old = ctx.lineJoin; + ctx.save(); + ctx.lineJoin = "round"; + ctx.restore(); + _assertSame(ctx.lineJoin, old, "ctx.lineJoin", "old"); -// Also test that save() doesn't modify the values -ctx.lineJoin = "round"; -old = ctx.lineJoin; - // we're not interested in failures caused by get(set(x)) != x (e.g. - // from rounding), so compare against 'old' instead of against "round" -ctx.save(); -_assertSame(ctx.lineJoin, old, "ctx.lineJoin", "old"); -ctx.restore(); -t.done(); - + // Also test that save() doesn't modify the values + ctx.lineJoin = "round"; + old = ctx.lineJoin; + // we're not interested in failures caused by get(set(x)) != x (e.g. + // from rounding), so compare against 'old' instead of against "round" + ctx.save(); + _assertSame(ctx.lineJoin, old, "ctx.lineJoin", "old"); + ctx.restore(); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.lineWidth.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.lineWidth.html index 24f9550..e234e3e 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.lineWidth.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.lineWidth.html
@@ -17,25 +17,25 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -// Test that restore() undoes any modifications -var old = ctx.lineWidth; -ctx.save(); -ctx.lineWidth = 0.5; -ctx.restore(); -_assertSame(ctx.lineWidth, old, "ctx.lineWidth", "old"); + // Test that restore() undoes any modifications + var old = ctx.lineWidth; + ctx.save(); + ctx.lineWidth = 0.5; + ctx.restore(); + _assertSame(ctx.lineWidth, old, "ctx.lineWidth", "old"); -// Also test that save() doesn't modify the values -ctx.lineWidth = 0.5; -old = ctx.lineWidth; - // we're not interested in failures caused by get(set(x)) != x (e.g. - // from rounding), so compare against 'old' instead of against 0.5 -ctx.save(); -_assertSame(ctx.lineWidth, old, "ctx.lineWidth", "old"); -ctx.restore(); -t.done(); + // Also test that save() doesn't modify the values + ctx.lineWidth = 0.5; + old = ctx.lineWidth; + // we're not interested in failures caused by get(set(x)) != x (e.g. + // from rounding), so compare against 'old' instead of against 0.5 + ctx.save(); + _assertSame(ctx.lineWidth, old, "ctx.lineWidth", "old"); + ctx.restore(); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.lineWidth.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.lineWidth.worker.js index 657ded5..997748c3 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.lineWidth.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.lineWidth.worker.js
@@ -13,25 +13,24 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -// Test that restore() undoes any modifications -var old = ctx.lineWidth; -ctx.save(); -ctx.lineWidth = 0.5; -ctx.restore(); -_assertSame(ctx.lineWidth, old, "ctx.lineWidth", "old"); + // Test that restore() undoes any modifications + var old = ctx.lineWidth; + ctx.save(); + ctx.lineWidth = 0.5; + ctx.restore(); + _assertSame(ctx.lineWidth, old, "ctx.lineWidth", "old"); -// Also test that save() doesn't modify the values -ctx.lineWidth = 0.5; -old = ctx.lineWidth; - // we're not interested in failures caused by get(set(x)) != x (e.g. - // from rounding), so compare against 'old' instead of against 0.5 -ctx.save(); -_assertSame(ctx.lineWidth, old, "ctx.lineWidth", "old"); -ctx.restore(); -t.done(); - + // Also test that save() doesn't modify the values + ctx.lineWidth = 0.5; + old = ctx.lineWidth; + // we're not interested in failures caused by get(set(x)) != x (e.g. + // from rounding), so compare against 'old' instead of against 0.5 + ctx.save(); + _assertSame(ctx.lineWidth, old, "ctx.lineWidth", "old"); + ctx.restore(); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.miterLimit.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.miterLimit.html index b674467..1df2b242 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.miterLimit.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.miterLimit.html
@@ -17,25 +17,25 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -// Test that restore() undoes any modifications -var old = ctx.miterLimit; -ctx.save(); -ctx.miterLimit = 0.5; -ctx.restore(); -_assertSame(ctx.miterLimit, old, "ctx.miterLimit", "old"); + // Test that restore() undoes any modifications + var old = ctx.miterLimit; + ctx.save(); + ctx.miterLimit = 0.5; + ctx.restore(); + _assertSame(ctx.miterLimit, old, "ctx.miterLimit", "old"); -// Also test that save() doesn't modify the values -ctx.miterLimit = 0.5; -old = ctx.miterLimit; - // we're not interested in failures caused by get(set(x)) != x (e.g. - // from rounding), so compare against 'old' instead of against 0.5 -ctx.save(); -_assertSame(ctx.miterLimit, old, "ctx.miterLimit", "old"); -ctx.restore(); -t.done(); + // Also test that save() doesn't modify the values + ctx.miterLimit = 0.5; + old = ctx.miterLimit; + // we're not interested in failures caused by get(set(x)) != x (e.g. + // from rounding), so compare against 'old' instead of against 0.5 + ctx.save(); + _assertSame(ctx.miterLimit, old, "ctx.miterLimit", "old"); + ctx.restore(); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.miterLimit.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.miterLimit.worker.js index 745f291..eb5adffe 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.miterLimit.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.miterLimit.worker.js
@@ -13,25 +13,24 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -// Test that restore() undoes any modifications -var old = ctx.miterLimit; -ctx.save(); -ctx.miterLimit = 0.5; -ctx.restore(); -_assertSame(ctx.miterLimit, old, "ctx.miterLimit", "old"); + // Test that restore() undoes any modifications + var old = ctx.miterLimit; + ctx.save(); + ctx.miterLimit = 0.5; + ctx.restore(); + _assertSame(ctx.miterLimit, old, "ctx.miterLimit", "old"); -// Also test that save() doesn't modify the values -ctx.miterLimit = 0.5; -old = ctx.miterLimit; - // we're not interested in failures caused by get(set(x)) != x (e.g. - // from rounding), so compare against 'old' instead of against 0.5 -ctx.save(); -_assertSame(ctx.miterLimit, old, "ctx.miterLimit", "old"); -ctx.restore(); -t.done(); - + // Also test that save() doesn't modify the values + ctx.miterLimit = 0.5; + old = ctx.miterLimit; + // we're not interested in failures caused by get(set(x)) != x (e.g. + // from rounding), so compare against 'old' instead of against 0.5 + ctx.save(); + _assertSame(ctx.miterLimit, old, "ctx.miterLimit", "old"); + ctx.restore(); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.path.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.path.html index 34c0b1e..a86851af68 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.path.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.path.html
@@ -17,18 +17,18 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.save(); -ctx.rect(0, 0, 100, 50); -ctx.restore(); -ctx.fillStyle = '#0f0'; -ctx.fill(); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.save(); + ctx.rect(0, 0, 100, 50); + ctx.restore(); + ctx.fillStyle = '#0f0'; + ctx.fill(); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.path.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.path.worker.js index 24cec159..d174de5a 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.path.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.path.worker.js
@@ -13,18 +13,17 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.save(); -ctx.rect(0, 0, 100, 50); -ctx.restore(); -ctx.fillStyle = '#0f0'; -ctx.fill(); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.save(); + ctx.rect(0, 0, 100, 50); + ctx.restore(); + ctx.fillStyle = '#0f0'; + ctx.fill(); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.shadowBlur.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.shadowBlur.html index af2ee91..044ee1b4 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.shadowBlur.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.shadowBlur.html
@@ -17,25 +17,25 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -// Test that restore() undoes any modifications -var old = ctx.shadowBlur; -ctx.save(); -ctx.shadowBlur = 5; -ctx.restore(); -_assertSame(ctx.shadowBlur, old, "ctx.shadowBlur", "old"); + // Test that restore() undoes any modifications + var old = ctx.shadowBlur; + ctx.save(); + ctx.shadowBlur = 5; + ctx.restore(); + _assertSame(ctx.shadowBlur, old, "ctx.shadowBlur", "old"); -// Also test that save() doesn't modify the values -ctx.shadowBlur = 5; -old = ctx.shadowBlur; - // we're not interested in failures caused by get(set(x)) != x (e.g. - // from rounding), so compare against 'old' instead of against 5 -ctx.save(); -_assertSame(ctx.shadowBlur, old, "ctx.shadowBlur", "old"); -ctx.restore(); -t.done(); + // Also test that save() doesn't modify the values + ctx.shadowBlur = 5; + old = ctx.shadowBlur; + // we're not interested in failures caused by get(set(x)) != x (e.g. + // from rounding), so compare against 'old' instead of against 5 + ctx.save(); + _assertSame(ctx.shadowBlur, old, "ctx.shadowBlur", "old"); + ctx.restore(); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.shadowBlur.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.shadowBlur.worker.js index 12acd3d..00cd6f83 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.shadowBlur.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.shadowBlur.worker.js
@@ -13,25 +13,24 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -// Test that restore() undoes any modifications -var old = ctx.shadowBlur; -ctx.save(); -ctx.shadowBlur = 5; -ctx.restore(); -_assertSame(ctx.shadowBlur, old, "ctx.shadowBlur", "old"); + // Test that restore() undoes any modifications + var old = ctx.shadowBlur; + ctx.save(); + ctx.shadowBlur = 5; + ctx.restore(); + _assertSame(ctx.shadowBlur, old, "ctx.shadowBlur", "old"); -// Also test that save() doesn't modify the values -ctx.shadowBlur = 5; -old = ctx.shadowBlur; - // we're not interested in failures caused by get(set(x)) != x (e.g. - // from rounding), so compare against 'old' instead of against 5 -ctx.save(); -_assertSame(ctx.shadowBlur, old, "ctx.shadowBlur", "old"); -ctx.restore(); -t.done(); - + // Also test that save() doesn't modify the values + ctx.shadowBlur = 5; + old = ctx.shadowBlur; + // we're not interested in failures caused by get(set(x)) != x (e.g. + // from rounding), so compare against 'old' instead of against 5 + ctx.save(); + _assertSame(ctx.shadowBlur, old, "ctx.shadowBlur", "old"); + ctx.restore(); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.shadowColor.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.shadowColor.html index 5aa01941..0e8b429 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.shadowColor.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.shadowColor.html
@@ -17,25 +17,25 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -// Test that restore() undoes any modifications -var old = ctx.shadowColor; -ctx.save(); -ctx.shadowColor = "#ff0000"; -ctx.restore(); -_assertSame(ctx.shadowColor, old, "ctx.shadowColor", "old"); + // Test that restore() undoes any modifications + var old = ctx.shadowColor; + ctx.save(); + ctx.shadowColor = "#ff0000"; + ctx.restore(); + _assertSame(ctx.shadowColor, old, "ctx.shadowColor", "old"); -// Also test that save() doesn't modify the values -ctx.shadowColor = "#ff0000"; -old = ctx.shadowColor; - // we're not interested in failures caused by get(set(x)) != x (e.g. - // from rounding), so compare against 'old' instead of against "#ff0000" -ctx.save(); -_assertSame(ctx.shadowColor, old, "ctx.shadowColor", "old"); -ctx.restore(); -t.done(); + // Also test that save() doesn't modify the values + ctx.shadowColor = "#ff0000"; + old = ctx.shadowColor; + // we're not interested in failures caused by get(set(x)) != x (e.g. + // from rounding), so compare against 'old' instead of against "#ff0000" + ctx.save(); + _assertSame(ctx.shadowColor, old, "ctx.shadowColor", "old"); + ctx.restore(); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.shadowColor.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.shadowColor.worker.js index b2f9fb9..13c033f 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.shadowColor.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.shadowColor.worker.js
@@ -13,25 +13,24 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -// Test that restore() undoes any modifications -var old = ctx.shadowColor; -ctx.save(); -ctx.shadowColor = "#ff0000"; -ctx.restore(); -_assertSame(ctx.shadowColor, old, "ctx.shadowColor", "old"); + // Test that restore() undoes any modifications + var old = ctx.shadowColor; + ctx.save(); + ctx.shadowColor = "#ff0000"; + ctx.restore(); + _assertSame(ctx.shadowColor, old, "ctx.shadowColor", "old"); -// Also test that save() doesn't modify the values -ctx.shadowColor = "#ff0000"; -old = ctx.shadowColor; - // we're not interested in failures caused by get(set(x)) != x (e.g. - // from rounding), so compare against 'old' instead of against "#ff0000" -ctx.save(); -_assertSame(ctx.shadowColor, old, "ctx.shadowColor", "old"); -ctx.restore(); -t.done(); - + // Also test that save() doesn't modify the values + ctx.shadowColor = "#ff0000"; + old = ctx.shadowColor; + // we're not interested in failures caused by get(set(x)) != x (e.g. + // from rounding), so compare against 'old' instead of against "#ff0000" + ctx.save(); + _assertSame(ctx.shadowColor, old, "ctx.shadowColor", "old"); + ctx.restore(); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.shadowOffsetX.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.shadowOffsetX.html index f281234..11aa658 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.shadowOffsetX.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.shadowOffsetX.html
@@ -17,25 +17,25 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -// Test that restore() undoes any modifications -var old = ctx.shadowOffsetX; -ctx.save(); -ctx.shadowOffsetX = 5; -ctx.restore(); -_assertSame(ctx.shadowOffsetX, old, "ctx.shadowOffsetX", "old"); + // Test that restore() undoes any modifications + var old = ctx.shadowOffsetX; + ctx.save(); + ctx.shadowOffsetX = 5; + ctx.restore(); + _assertSame(ctx.shadowOffsetX, old, "ctx.shadowOffsetX", "old"); -// Also test that save() doesn't modify the values -ctx.shadowOffsetX = 5; -old = ctx.shadowOffsetX; - // we're not interested in failures caused by get(set(x)) != x (e.g. - // from rounding), so compare against 'old' instead of against 5 -ctx.save(); -_assertSame(ctx.shadowOffsetX, old, "ctx.shadowOffsetX", "old"); -ctx.restore(); -t.done(); + // Also test that save() doesn't modify the values + ctx.shadowOffsetX = 5; + old = ctx.shadowOffsetX; + // we're not interested in failures caused by get(set(x)) != x (e.g. + // from rounding), so compare against 'old' instead of against 5 + ctx.save(); + _assertSame(ctx.shadowOffsetX, old, "ctx.shadowOffsetX", "old"); + ctx.restore(); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.shadowOffsetX.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.shadowOffsetX.worker.js index 2711817..a6ad922 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.shadowOffsetX.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.shadowOffsetX.worker.js
@@ -13,25 +13,24 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -// Test that restore() undoes any modifications -var old = ctx.shadowOffsetX; -ctx.save(); -ctx.shadowOffsetX = 5; -ctx.restore(); -_assertSame(ctx.shadowOffsetX, old, "ctx.shadowOffsetX", "old"); + // Test that restore() undoes any modifications + var old = ctx.shadowOffsetX; + ctx.save(); + ctx.shadowOffsetX = 5; + ctx.restore(); + _assertSame(ctx.shadowOffsetX, old, "ctx.shadowOffsetX", "old"); -// Also test that save() doesn't modify the values -ctx.shadowOffsetX = 5; -old = ctx.shadowOffsetX; - // we're not interested in failures caused by get(set(x)) != x (e.g. - // from rounding), so compare against 'old' instead of against 5 -ctx.save(); -_assertSame(ctx.shadowOffsetX, old, "ctx.shadowOffsetX", "old"); -ctx.restore(); -t.done(); - + // Also test that save() doesn't modify the values + ctx.shadowOffsetX = 5; + old = ctx.shadowOffsetX; + // we're not interested in failures caused by get(set(x)) != x (e.g. + // from rounding), so compare against 'old' instead of against 5 + ctx.save(); + _assertSame(ctx.shadowOffsetX, old, "ctx.shadowOffsetX", "old"); + ctx.restore(); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.shadowOffsetY.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.shadowOffsetY.html index 643ce99..c238f0e 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.shadowOffsetY.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.shadowOffsetY.html
@@ -17,25 +17,25 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -// Test that restore() undoes any modifications -var old = ctx.shadowOffsetY; -ctx.save(); -ctx.shadowOffsetY = 5; -ctx.restore(); -_assertSame(ctx.shadowOffsetY, old, "ctx.shadowOffsetY", "old"); + // Test that restore() undoes any modifications + var old = ctx.shadowOffsetY; + ctx.save(); + ctx.shadowOffsetY = 5; + ctx.restore(); + _assertSame(ctx.shadowOffsetY, old, "ctx.shadowOffsetY", "old"); -// Also test that save() doesn't modify the values -ctx.shadowOffsetY = 5; -old = ctx.shadowOffsetY; - // we're not interested in failures caused by get(set(x)) != x (e.g. - // from rounding), so compare against 'old' instead of against 5 -ctx.save(); -_assertSame(ctx.shadowOffsetY, old, "ctx.shadowOffsetY", "old"); -ctx.restore(); -t.done(); + // Also test that save() doesn't modify the values + ctx.shadowOffsetY = 5; + old = ctx.shadowOffsetY; + // we're not interested in failures caused by get(set(x)) != x (e.g. + // from rounding), so compare against 'old' instead of against 5 + ctx.save(); + _assertSame(ctx.shadowOffsetY, old, "ctx.shadowOffsetY", "old"); + ctx.restore(); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.shadowOffsetY.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.shadowOffsetY.worker.js index aaa572a..323fcd14 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.shadowOffsetY.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.shadowOffsetY.worker.js
@@ -13,25 +13,24 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -// Test that restore() undoes any modifications -var old = ctx.shadowOffsetY; -ctx.save(); -ctx.shadowOffsetY = 5; -ctx.restore(); -_assertSame(ctx.shadowOffsetY, old, "ctx.shadowOffsetY", "old"); + // Test that restore() undoes any modifications + var old = ctx.shadowOffsetY; + ctx.save(); + ctx.shadowOffsetY = 5; + ctx.restore(); + _assertSame(ctx.shadowOffsetY, old, "ctx.shadowOffsetY", "old"); -// Also test that save() doesn't modify the values -ctx.shadowOffsetY = 5; -old = ctx.shadowOffsetY; - // we're not interested in failures caused by get(set(x)) != x (e.g. - // from rounding), so compare against 'old' instead of against 5 -ctx.save(); -_assertSame(ctx.shadowOffsetY, old, "ctx.shadowOffsetY", "old"); -ctx.restore(); -t.done(); - + // Also test that save() doesn't modify the values + ctx.shadowOffsetY = 5; + old = ctx.shadowOffsetY; + // we're not interested in failures caused by get(set(x)) != x (e.g. + // from rounding), so compare against 'old' instead of against 5 + ctx.save(); + _assertSame(ctx.shadowOffsetY, old, "ctx.shadowOffsetY", "old"); + ctx.restore(); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.stack.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.stack.html index 97917680..4a87508 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.stack.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.stack.html
@@ -17,20 +17,20 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.lineWidth = 1; -ctx.save(); -ctx.lineWidth = 2; -ctx.save(); -ctx.lineWidth = 3; -_assertSame(ctx.lineWidth, 3, "ctx.lineWidth", "3"); -ctx.restore(); -_assertSame(ctx.lineWidth, 2, "ctx.lineWidth", "2"); -ctx.restore(); -_assertSame(ctx.lineWidth, 1, "ctx.lineWidth", "1"); -t.done(); + ctx.lineWidth = 1; + ctx.save(); + ctx.lineWidth = 2; + ctx.save(); + ctx.lineWidth = 3; + _assertSame(ctx.lineWidth, 3, "ctx.lineWidth", "3"); + ctx.restore(); + _assertSame(ctx.lineWidth, 2, "ctx.lineWidth", "2"); + ctx.restore(); + _assertSame(ctx.lineWidth, 1, "ctx.lineWidth", "1"); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.stack.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.stack.worker.js index e1f078e..460df4ec 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.stack.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.stack.worker.js
@@ -13,20 +13,19 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.lineWidth = 1; -ctx.save(); -ctx.lineWidth = 2; -ctx.save(); -ctx.lineWidth = 3; -_assertSame(ctx.lineWidth, 3, "ctx.lineWidth", "3"); -ctx.restore(); -_assertSame(ctx.lineWidth, 2, "ctx.lineWidth", "2"); -ctx.restore(); -_assertSame(ctx.lineWidth, 1, "ctx.lineWidth", "1"); -t.done(); - + ctx.lineWidth = 1; + ctx.save(); + ctx.lineWidth = 2; + ctx.save(); + ctx.lineWidth = 3; + _assertSame(ctx.lineWidth, 3, "ctx.lineWidth", "3"); + ctx.restore(); + _assertSame(ctx.lineWidth, 2, "ctx.lineWidth", "2"); + ctx.restore(); + _assertSame(ctx.lineWidth, 1, "ctx.lineWidth", "1"); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.stackdepth.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.stackdepth.html index 53dbc63c..d536155 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.stackdepth.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.stackdepth.html
@@ -17,21 +17,21 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var limit = 512; -for (var i = 1; i < limit; ++i) -{ - ctx.save(); - ctx.lineWidth = i; -} -for (var i = limit-1; i > 0; --i) -{ - _assertSame(ctx.lineWidth, i, "ctx.lineWidth", "i"); - ctx.restore(); -} -t.done(); + var limit = 512; + for (var i = 1; i < limit; ++i) + { + ctx.save(); + ctx.lineWidth = i; + } + for (var i = limit-1; i > 0; --i) + { + _assertSame(ctx.lineWidth, i, "ctx.lineWidth", "i"); + ctx.restore(); + } + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.stackdepth.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.stackdepth.worker.js index a485c194..c494d9d 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.stackdepth.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.stackdepth.worker.js
@@ -13,21 +13,20 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var limit = 512; -for (var i = 1; i < limit; ++i) -{ - ctx.save(); - ctx.lineWidth = i; -} -for (var i = limit-1; i > 0; --i) -{ - _assertSame(ctx.lineWidth, i, "ctx.lineWidth", "i"); - ctx.restore(); -} -t.done(); - + var limit = 512; + for (var i = 1; i < limit; ++i) + { + ctx.save(); + ctx.lineWidth = i; + } + for (var i = limit-1; i > 0; --i) + { + _assertSame(ctx.lineWidth, i, "ctx.lineWidth", "i"); + ctx.restore(); + } + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.strokeStyle.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.strokeStyle.html index 60963729..561205a 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.strokeStyle.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.strokeStyle.html
@@ -17,25 +17,25 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -// Test that restore() undoes any modifications -var old = ctx.strokeStyle; -ctx.save(); -ctx.strokeStyle = "#ff0000"; -ctx.restore(); -_assertSame(ctx.strokeStyle, old, "ctx.strokeStyle", "old"); + // Test that restore() undoes any modifications + var old = ctx.strokeStyle; + ctx.save(); + ctx.strokeStyle = "#ff0000"; + ctx.restore(); + _assertSame(ctx.strokeStyle, old, "ctx.strokeStyle", "old"); -// Also test that save() doesn't modify the values -ctx.strokeStyle = "#ff0000"; -old = ctx.strokeStyle; - // we're not interested in failures caused by get(set(x)) != x (e.g. - // from rounding), so compare against 'old' instead of against "#ff0000" -ctx.save(); -_assertSame(ctx.strokeStyle, old, "ctx.strokeStyle", "old"); -ctx.restore(); -t.done(); + // Also test that save() doesn't modify the values + ctx.strokeStyle = "#ff0000"; + old = ctx.strokeStyle; + // we're not interested in failures caused by get(set(x)) != x (e.g. + // from rounding), so compare against 'old' instead of against "#ff0000" + ctx.save(); + _assertSame(ctx.strokeStyle, old, "ctx.strokeStyle", "old"); + ctx.restore(); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.strokeStyle.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.strokeStyle.worker.js index 275ba9e0..878a6d6 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.strokeStyle.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.strokeStyle.worker.js
@@ -13,25 +13,24 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -// Test that restore() undoes any modifications -var old = ctx.strokeStyle; -ctx.save(); -ctx.strokeStyle = "#ff0000"; -ctx.restore(); -_assertSame(ctx.strokeStyle, old, "ctx.strokeStyle", "old"); + // Test that restore() undoes any modifications + var old = ctx.strokeStyle; + ctx.save(); + ctx.strokeStyle = "#ff0000"; + ctx.restore(); + _assertSame(ctx.strokeStyle, old, "ctx.strokeStyle", "old"); -// Also test that save() doesn't modify the values -ctx.strokeStyle = "#ff0000"; -old = ctx.strokeStyle; - // we're not interested in failures caused by get(set(x)) != x (e.g. - // from rounding), so compare against 'old' instead of against "#ff0000" -ctx.save(); -_assertSame(ctx.strokeStyle, old, "ctx.strokeStyle", "old"); -ctx.restore(); -t.done(); - + // Also test that save() doesn't modify the values + ctx.strokeStyle = "#ff0000"; + old = ctx.strokeStyle; + // we're not interested in failures caused by get(set(x)) != x (e.g. + // from rounding), so compare against 'old' instead of against "#ff0000" + ctx.save(); + _assertSame(ctx.strokeStyle, old, "ctx.strokeStyle", "old"); + ctx.restore(); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.transformation.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.transformation.html index fff2ead..79ecdec 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.transformation.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.transformation.html
@@ -17,18 +17,18 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.save(); -ctx.translate(200, 0); -ctx.restore(); -ctx.fillStyle = '#f00'; -ctx.fillRect(-200, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.save(); + ctx.translate(200, 0); + ctx.restore(); + ctx.fillStyle = '#f00'; + ctx.fillRect(-200, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.transformation.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.transformation.worker.js index 64fb4c4..1647dfb 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.transformation.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.transformation.worker.js
@@ -13,18 +13,17 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -ctx.save(); -ctx.translate(200, 0); -ctx.restore(); -ctx.fillStyle = '#f00'; -ctx.fillRect(-200, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + ctx.save(); + ctx.translate(200, 0); + ctx.restore(); + ctx.fillStyle = '#f00'; + ctx.fillRect(-200, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.underflow.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.underflow.html index 986d966..a6713ad 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.underflow.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.underflow.html
@@ -17,15 +17,15 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -for (var i = 0; i < 16; ++i) - ctx.restore(); -ctx.lineWidth = 0.5; -ctx.restore(); -_assertSame(ctx.lineWidth, 0.5, "ctx.lineWidth", "0.5"); -t.done(); + for (var i = 0; i < 16; ++i) + ctx.restore(); + ctx.lineWidth = 0.5; + ctx.restore(); + _assertSame(ctx.lineWidth, 0.5, "ctx.lineWidth", "0.5"); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.underflow.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.underflow.worker.js index d38cf974..8ed4bcb 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.underflow.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.underflow.worker.js
@@ -13,15 +13,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -for (var i = 0; i < 16; ++i) - ctx.restore(); -ctx.lineWidth = 0.5; -ctx.restore(); -_assertSame(ctx.lineWidth, 0.5, "ctx.lineWidth", "0.5"); -t.done(); - + for (var i = 0; i < 16; ++i) + ctx.restore(); + ctx.lineWidth = 0.5; + ctx.restore(); + _assertSame(ctx.lineWidth, 0.5, "ctx.lineWidth", "0.5"); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/2d.canvas.readonly.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/2d.canvas.readonly.html index ec6ffe5..6bc6eef 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/2d.canvas.readonly.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/2d.canvas.readonly.html
@@ -17,15 +17,15 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var offscreenCanvas2 = new OffscreenCanvas(100, 50); -var d = ctx.canvas; -_assertDifferent(offscreenCanvas2, d, "offscreenCanvas2", "d"); -ctx.canvas = offscreenCanvas2; -_assertSame(ctx.canvas, d, "ctx.canvas", "d"); -t.done(); + var offscreenCanvas2 = new OffscreenCanvas(100, 50); + var d = ctx.canvas; + _assertDifferent(offscreenCanvas2, d, "offscreenCanvas2", "d"); + ctx.canvas = offscreenCanvas2; + _assertSame(ctx.canvas, d, "ctx.canvas", "d"); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/2d.canvas.readonly.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/2d.canvas.readonly.worker.js index 8f88efd6..068c2c2 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/2d.canvas.readonly.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/2d.canvas.readonly.worker.js
@@ -13,15 +13,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var offscreenCanvas2 = new OffscreenCanvas(100, 50); -var d = ctx.canvas; -_assertDifferent(offscreenCanvas2, d, "offscreenCanvas2", "d"); -ctx.canvas = offscreenCanvas2; -_assertSame(ctx.canvas, d, "ctx.canvas", "d"); -t.done(); - + var offscreenCanvas2 = new OffscreenCanvas(100, 50); + var d = ctx.canvas; + _assertDifferent(offscreenCanvas2, d, "offscreenCanvas2", "d"); + ctx.canvas = offscreenCanvas2; + _assertSame(ctx.canvas, d, "ctx.canvas", "d"); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/2d.canvas.reference.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/2d.canvas.reference.html index 024b1fe7..c43afd8 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/2d.canvas.reference.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/2d.canvas.reference.html
@@ -17,11 +17,11 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -_assertSame(ctx.canvas, canvas, "ctx.canvas", "canvas"); -t.done(); + _assertSame(ctx.canvas, canvas, "ctx.canvas", "canvas"); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/2d.canvas.reference.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/2d.canvas.reference.worker.js index a80e559..a1578af 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/2d.canvas.reference.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/2d.canvas.reference.worker.js
@@ -13,11 +13,10 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -_assertSame(ctx.canvas, canvas, "ctx.canvas", "canvas"); -t.done(); - + _assertSame(ctx.canvas, canvas, "ctx.canvas", "canvas"); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/2d.getcontext.exists.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/2d.getcontext.exists.html index 55bdf1cc..73fc45c 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/2d.getcontext.exists.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/2d.getcontext.exists.html
@@ -17,12 +17,12 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var offscreenCanvas2 = new OffscreenCanvas(100, 50); -_assertDifferent(offscreenCanvas2.getContext('2d'), null, "offscreenCanvas2.getContext('2d')", "null"); -t.done(); + var offscreenCanvas2 = new OffscreenCanvas(100, 50); + _assertDifferent(offscreenCanvas2.getContext('2d'), null, "offscreenCanvas2.getContext('2d')", "null"); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/2d.getcontext.exists.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/2d.getcontext.exists.worker.js index 97f8cc74..0ed6f2424 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/2d.getcontext.exists.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/2d.getcontext.exists.worker.js
@@ -13,12 +13,11 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var offscreenCanvas2 = new OffscreenCanvas(100, 50); -_assertDifferent(offscreenCanvas2.getContext('2d'), null, "offscreenCanvas2.getContext('2d')", "null"); -t.done(); - + var offscreenCanvas2 = new OffscreenCanvas(100, 50); + _assertDifferent(offscreenCanvas2.getContext('2d'), null, "offscreenCanvas2.getContext('2d')", "null"); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/2d.getcontext.extraargs.cache.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/2d.getcontext.extraargs.cache.html index a57dbcb6..2f57050a 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/2d.getcontext.extraargs.cache.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/2d.getcontext.extraargs.cache.html
@@ -17,16 +17,16 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -_assertDifferent(canvas.getContext('2d', false, {}, [], 1, "2"), null, "canvas.getContext('2d', false, {}, [], 1, \"2\")", "null"); -_assertDifferent(canvas.getContext('2d', 123), null, "canvas.getContext('2d', 123)", "null"); -_assertDifferent(canvas.getContext('2d', "test"), null, "canvas.getContext('2d', \"test\")", "null"); -_assertDifferent(canvas.getContext('2d', undefined), null, "canvas.getContext('2d', undefined)", "null"); -_assertDifferent(canvas.getContext('2d', null), null, "canvas.getContext('2d', null)", "null"); -_assertDifferent(canvas.getContext('2d', Symbol.hasInstance), null, "canvas.getContext('2d', Symbol.hasInstance)", "null"); -t.done(); + _assertDifferent(canvas.getContext('2d', false, {}, [], 1, "2"), null, "canvas.getContext('2d', false, {}, [], 1, \"2\")", "null"); + _assertDifferent(canvas.getContext('2d', 123), null, "canvas.getContext('2d', 123)", "null"); + _assertDifferent(canvas.getContext('2d', "test"), null, "canvas.getContext('2d', \"test\")", "null"); + _assertDifferent(canvas.getContext('2d', undefined), null, "canvas.getContext('2d', undefined)", "null"); + _assertDifferent(canvas.getContext('2d', null), null, "canvas.getContext('2d', null)", "null"); + _assertDifferent(canvas.getContext('2d', Symbol.hasInstance), null, "canvas.getContext('2d', Symbol.hasInstance)", "null"); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/2d.getcontext.extraargs.cache.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/2d.getcontext.extraargs.cache.worker.js index df330e3..8854051 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/2d.getcontext.extraargs.cache.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/2d.getcontext.extraargs.cache.worker.js
@@ -13,16 +13,15 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -_assertDifferent(canvas.getContext('2d', false, {}, [], 1, "2"), null, "canvas.getContext('2d', false, {}, [], 1, \"2\")", "null"); -_assertDifferent(canvas.getContext('2d', 123), null, "canvas.getContext('2d', 123)", "null"); -_assertDifferent(canvas.getContext('2d', "test"), null, "canvas.getContext('2d', \"test\")", "null"); -_assertDifferent(canvas.getContext('2d', undefined), null, "canvas.getContext('2d', undefined)", "null"); -_assertDifferent(canvas.getContext('2d', null), null, "canvas.getContext('2d', null)", "null"); -_assertDifferent(canvas.getContext('2d', Symbol.hasInstance), null, "canvas.getContext('2d', Symbol.hasInstance)", "null"); -t.done(); - + _assertDifferent(canvas.getContext('2d', false, {}, [], 1, "2"), null, "canvas.getContext('2d', false, {}, [], 1, \"2\")", "null"); + _assertDifferent(canvas.getContext('2d', 123), null, "canvas.getContext('2d', 123)", "null"); + _assertDifferent(canvas.getContext('2d', "test"), null, "canvas.getContext('2d', \"test\")", "null"); + _assertDifferent(canvas.getContext('2d', undefined), null, "canvas.getContext('2d', undefined)", "null"); + _assertDifferent(canvas.getContext('2d', null), null, "canvas.getContext('2d', null)", "null"); + _assertDifferent(canvas.getContext('2d', Symbol.hasInstance), null, "canvas.getContext('2d', Symbol.hasInstance)", "null"); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/2d.getcontext.extraargs.create.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/2d.getcontext.extraargs.create.html index a626318..a2869c4 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/2d.getcontext.extraargs.create.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/2d.getcontext.extraargs.create.html
@@ -17,16 +17,16 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -_assertDifferent((new OffscreenCanvas(100, 50)).getContext('2d', false, {}, [], 1, "2"), null, "(new OffscreenCanvas(100, 50)).getContext('2d', false, {}, [], 1, \"2\")", "null"); -_assertDifferent((new OffscreenCanvas(100, 50)).getContext('2d', 123), null, "(new OffscreenCanvas(100, 50)).getContext('2d', 123)", "null"); -_assertDifferent((new OffscreenCanvas(100, 50)).getContext('2d', "test"), null, "(new OffscreenCanvas(100, 50)).getContext('2d', \"test\")", "null"); -_assertDifferent((new OffscreenCanvas(100, 50)).getContext('2d', undefined), null, "(new OffscreenCanvas(100, 50)).getContext('2d', undefined)", "null"); -_assertDifferent((new OffscreenCanvas(100, 50)).getContext('2d', null), null, "(new OffscreenCanvas(100, 50)).getContext('2d', null)", "null"); -_assertDifferent((new OffscreenCanvas(100, 50)).getContext('2d', Symbol.hasInstance), null, "(new OffscreenCanvas(100, 50)).getContext('2d', Symbol.hasInstance)", "null"); -t.done(); + _assertDifferent((new OffscreenCanvas(100, 50)).getContext('2d', false, {}, [], 1, "2"), null, "(new OffscreenCanvas(100, 50)).getContext('2d', false, {}, [], 1, \"2\")", "null"); + _assertDifferent((new OffscreenCanvas(100, 50)).getContext('2d', 123), null, "(new OffscreenCanvas(100, 50)).getContext('2d', 123)", "null"); + _assertDifferent((new OffscreenCanvas(100, 50)).getContext('2d', "test"), null, "(new OffscreenCanvas(100, 50)).getContext('2d', \"test\")", "null"); + _assertDifferent((new OffscreenCanvas(100, 50)).getContext('2d', undefined), null, "(new OffscreenCanvas(100, 50)).getContext('2d', undefined)", "null"); + _assertDifferent((new OffscreenCanvas(100, 50)).getContext('2d', null), null, "(new OffscreenCanvas(100, 50)).getContext('2d', null)", "null"); + _assertDifferent((new OffscreenCanvas(100, 50)).getContext('2d', Symbol.hasInstance), null, "(new OffscreenCanvas(100, 50)).getContext('2d', Symbol.hasInstance)", "null"); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/2d.getcontext.extraargs.create.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/2d.getcontext.extraargs.create.worker.js index f34c5a1..21d4f8ce 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/2d.getcontext.extraargs.create.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/2d.getcontext.extraargs.create.worker.js
@@ -13,16 +13,15 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -_assertDifferent((new OffscreenCanvas(100, 50)).getContext('2d', false, {}, [], 1, "2"), null, "(new OffscreenCanvas(100, 50)).getContext('2d', false, {}, [], 1, \"2\")", "null"); -_assertDifferent((new OffscreenCanvas(100, 50)).getContext('2d', 123), null, "(new OffscreenCanvas(100, 50)).getContext('2d', 123)", "null"); -_assertDifferent((new OffscreenCanvas(100, 50)).getContext('2d', "test"), null, "(new OffscreenCanvas(100, 50)).getContext('2d', \"test\")", "null"); -_assertDifferent((new OffscreenCanvas(100, 50)).getContext('2d', undefined), null, "(new OffscreenCanvas(100, 50)).getContext('2d', undefined)", "null"); -_assertDifferent((new OffscreenCanvas(100, 50)).getContext('2d', null), null, "(new OffscreenCanvas(100, 50)).getContext('2d', null)", "null"); -_assertDifferent((new OffscreenCanvas(100, 50)).getContext('2d', Symbol.hasInstance), null, "(new OffscreenCanvas(100, 50)).getContext('2d', Symbol.hasInstance)", "null"); -t.done(); - + _assertDifferent((new OffscreenCanvas(100, 50)).getContext('2d', false, {}, [], 1, "2"), null, "(new OffscreenCanvas(100, 50)).getContext('2d', false, {}, [], 1, \"2\")", "null"); + _assertDifferent((new OffscreenCanvas(100, 50)).getContext('2d', 123), null, "(new OffscreenCanvas(100, 50)).getContext('2d', 123)", "null"); + _assertDifferent((new OffscreenCanvas(100, 50)).getContext('2d', "test"), null, "(new OffscreenCanvas(100, 50)).getContext('2d', \"test\")", "null"); + _assertDifferent((new OffscreenCanvas(100, 50)).getContext('2d', undefined), null, "(new OffscreenCanvas(100, 50)).getContext('2d', undefined)", "null"); + _assertDifferent((new OffscreenCanvas(100, 50)).getContext('2d', null), null, "(new OffscreenCanvas(100, 50)).getContext('2d', null)", "null"); + _assertDifferent((new OffscreenCanvas(100, 50)).getContext('2d', Symbol.hasInstance), null, "(new OffscreenCanvas(100, 50)).getContext('2d', Symbol.hasInstance)", "null"); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/2d.getcontext.shared.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/2d.getcontext.shared.html index 6d616252..c37664f 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/2d.getcontext.shared.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/2d.getcontext.shared.html
@@ -17,15 +17,15 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var ctx2 = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx2.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + var ctx2 = canvas.getContext('2d'); + ctx.fillStyle = '#f00'; + ctx2.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/2d.getcontext.shared.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/2d.getcontext.shared.worker.js index 4b8dd52e..936ca03 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/2d.getcontext.shared.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/2d.getcontext.shared.worker.js
@@ -13,15 +13,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var ctx2 = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx2.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + var ctx2 = canvas.getContext('2d'); + ctx.fillStyle = '#f00'; + ctx2.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/2d.getcontext.unique.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/2d.getcontext.unique.html index c7e71da..945526c5 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/2d.getcontext.unique.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/2d.getcontext.unique.html
@@ -17,12 +17,12 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var offscreenCanvas2 = new OffscreenCanvas(100, 50); -_assertSame(offscreenCanvas2.getContext('2d'), offscreenCanvas2.getContext('2d'), "offscreenCanvas2.getContext('2d')", "offscreenCanvas2.getContext('2d')"); -t.done(); + var offscreenCanvas2 = new OffscreenCanvas(100, 50); + _assertSame(offscreenCanvas2.getContext('2d'), offscreenCanvas2.getContext('2d'), "offscreenCanvas2.getContext('2d')", "offscreenCanvas2.getContext('2d')"); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/2d.getcontext.unique.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/2d.getcontext.unique.worker.js index a2a744df..fbf8e3c 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/2d.getcontext.unique.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/2d.getcontext.unique.worker.js
@@ -13,12 +13,11 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var offscreenCanvas2 = new OffscreenCanvas(100, 50); -_assertSame(offscreenCanvas2.getContext('2d'), offscreenCanvas2.getContext('2d'), "offscreenCanvas2.getContext('2d')", "offscreenCanvas2.getContext('2d')"); -t.done(); - + var offscreenCanvas2 = new OffscreenCanvas(100, 50); + _assertSame(offscreenCanvas2.getContext('2d'), offscreenCanvas2.getContext('2d'), "offscreenCanvas2.getContext('2d')", "offscreenCanvas2.getContext('2d')"); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/context.arguments.missing.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/context.arguments.missing.html index b69f63c..4d5478e8 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/context.arguments.missing.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/context.arguments.missing.html
@@ -17,12 +17,12 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var offscreenCanvas2 = new OffscreenCanvas(100, 50); -assert_throws_js(TypeError, function() { offscreenCanvas2.getContext(); }); -t.done(); + var offscreenCanvas2 = new OffscreenCanvas(100, 50); + assert_throws_js(TypeError, function() { offscreenCanvas2.getContext(); }); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/context.arguments.missing.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/context.arguments.missing.worker.js index f03ca52..f20db3ad 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/context.arguments.missing.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/context.arguments.missing.worker.js
@@ -13,12 +13,11 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var offscreenCanvas2 = new OffscreenCanvas(100, 50); -assert_throws_js(TypeError, function() { offscreenCanvas2.getContext(); }); -t.done(); - + var offscreenCanvas2 = new OffscreenCanvas(100, 50); + assert_throws_js(TypeError, function() { offscreenCanvas2.getContext(); }); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/context.casesensitive.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/context.casesensitive.html index e7ee0c6..6183607 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/context.casesensitive.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/context.casesensitive.html
@@ -17,12 +17,12 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var offscreenCanvas2 = new OffscreenCanvas(100, 50); -assert_throws_js(TypeError, function() { offscreenCanvas2.getContext('2D'); }); -t.done(); + var offscreenCanvas2 = new OffscreenCanvas(100, 50); + assert_throws_js(TypeError, function() { offscreenCanvas2.getContext('2D'); }); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/context.casesensitive.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/context.casesensitive.worker.js index 265fe95..a834a3e 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/context.casesensitive.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/context.casesensitive.worker.js
@@ -13,12 +13,11 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var offscreenCanvas2 = new OffscreenCanvas(100, 50); -assert_throws_js(TypeError, function() { offscreenCanvas2.getContext('2D'); }); -t.done(); - + var offscreenCanvas2 = new OffscreenCanvas(100, 50); + assert_throws_js(TypeError, function() { offscreenCanvas2.getContext('2D'); }); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/context.emptystring.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/context.emptystring.html index c8f8943..b898698 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/context.emptystring.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/context.emptystring.html
@@ -17,12 +17,12 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var offscreenCanvas2 = new OffscreenCanvas(100, 50); -assert_throws_js(TypeError, function() { offscreenCanvas2.getContext(""); }); -t.done(); + var offscreenCanvas2 = new OffscreenCanvas(100, 50); + assert_throws_js(TypeError, function() { offscreenCanvas2.getContext(""); }); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/context.emptystring.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/context.emptystring.worker.js index 45612d3..df7d06df 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/context.emptystring.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/context.emptystring.worker.js
@@ -13,12 +13,11 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var offscreenCanvas2 = new OffscreenCanvas(100, 50); -assert_throws_js(TypeError, function() { offscreenCanvas2.getContext(""); }); -t.done(); - + var offscreenCanvas2 = new OffscreenCanvas(100, 50); + assert_throws_js(TypeError, function() { offscreenCanvas2.getContext(""); }); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/context.unrecognised.badname.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/context.unrecognised.badname.html index d1b0f2f..5460fe1 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/context.unrecognised.badname.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/context.unrecognised.badname.html
@@ -17,12 +17,12 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var offscreenCanvas2 = new OffscreenCanvas(100, 50); -assert_throws_js(TypeError, function() { offscreenCanvas2.getContext('This is not an implemented context in any real browser'); }); -t.done(); + var offscreenCanvas2 = new OffscreenCanvas(100, 50); + assert_throws_js(TypeError, function() { offscreenCanvas2.getContext('This is not an implemented context in any real browser'); }); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/context.unrecognised.badname.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/context.unrecognised.badname.worker.js index cc50c2bdb..8dfee54 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/context.unrecognised.badname.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/context.unrecognised.badname.worker.js
@@ -13,12 +13,11 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var offscreenCanvas2 = new OffscreenCanvas(100, 50); -assert_throws_js(TypeError, function() { offscreenCanvas2.getContext('This is not an implemented context in any real browser'); }); -t.done(); - + var offscreenCanvas2 = new OffscreenCanvas(100, 50); + assert_throws_js(TypeError, function() { offscreenCanvas2.getContext('This is not an implemented context in any real browser'); }); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/context.unrecognised.badsuffix.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/context.unrecognised.badsuffix.html index 30178af..72624be 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/context.unrecognised.badsuffix.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/context.unrecognised.badsuffix.html
@@ -17,12 +17,12 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var offscreenCanvas2 = new OffscreenCanvas(100, 50); -assert_throws_js(TypeError, function() { offscreenCanvas2.getContext("2d#"); }); -t.done(); + var offscreenCanvas2 = new OffscreenCanvas(100, 50); + assert_throws_js(TypeError, function() { offscreenCanvas2.getContext("2d#"); }); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/context.unrecognised.badsuffix.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/context.unrecognised.badsuffix.worker.js index 7b3d8a0..6cfcbc3 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/context.unrecognised.badsuffix.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/context.unrecognised.badsuffix.worker.js
@@ -13,12 +13,11 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var offscreenCanvas2 = new OffscreenCanvas(100, 50); -assert_throws_js(TypeError, function() { offscreenCanvas2.getContext("2d#"); }); -t.done(); - + var offscreenCanvas2 = new OffscreenCanvas(100, 50); + assert_throws_js(TypeError, function() { offscreenCanvas2.getContext("2d#"); }); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/context.unrecognised.nullsuffix.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/context.unrecognised.nullsuffix.html index 2a22549..f36f7583 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/context.unrecognised.nullsuffix.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/context.unrecognised.nullsuffix.html
@@ -17,12 +17,12 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var offscreenCanvas2 = new OffscreenCanvas(100, 50); -assert_throws_js(TypeError, function() { offscreenCanvas2.getContext("2d\0"); }); -t.done(); + var offscreenCanvas2 = new OffscreenCanvas(100, 50); + assert_throws_js(TypeError, function() { offscreenCanvas2.getContext("2d\0"); }); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/context.unrecognised.nullsuffix.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/context.unrecognised.nullsuffix.worker.js index b659410..d9b563db 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/context.unrecognised.nullsuffix.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/context.unrecognised.nullsuffix.worker.js
@@ -13,12 +13,11 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var offscreenCanvas2 = new OffscreenCanvas(100, 50); -assert_throws_js(TypeError, function() { offscreenCanvas2.getContext("2d\0"); }); -t.done(); - + var offscreenCanvas2 = new OffscreenCanvas(100, 50); + assert_throws_js(TypeError, function() { offscreenCanvas2.getContext("2d\0"); }); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/context.unrecognised.unicode.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/context.unrecognised.unicode.html index 0c826595..f8176f5 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/context.unrecognised.unicode.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/context.unrecognised.unicode.html
@@ -17,12 +17,12 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var offscreenCanvas2 = new OffscreenCanvas(100, 50); -assert_throws_js(TypeError, function() { offscreenCanvas2.getContext("2\uFF44"); }); -t.done(); + var offscreenCanvas2 = new OffscreenCanvas(100, 50); + assert_throws_js(TypeError, function() { offscreenCanvas2.getContext("2\uFF44"); }); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/context.unrecognised.unicode.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/context.unrecognised.unicode.worker.js index cade5a20..2d02a79 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/context.unrecognised.unicode.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/context.unrecognised.unicode.worker.js
@@ -13,12 +13,11 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var offscreenCanvas2 = new OffscreenCanvas(100, 50); -assert_throws_js(TypeError, function() { offscreenCanvas2.getContext("2\uFF44"); }); -t.done(); - + var offscreenCanvas2 = new OffscreenCanvas(100, 50); + assert_throws_js(TypeError, function() { offscreenCanvas2.getContext("2\uFF44"); }); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/initial.color.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/initial.color.html index bfdcef7..d89b01df 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/initial.color.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/initial.color.html
@@ -17,11 +17,11 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -_assertPixel(canvas, 20,20, 0,0,0,0); -t.done(); + _assertPixel(canvas, 20,20, 0,0,0,0); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/initial.color.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/initial.color.worker.js index 2a6e6e5..c9705727 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/initial.color.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/initial.color.worker.js
@@ -13,11 +13,10 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -_assertPixel(canvas, 20,20, 0,0,0,0); -t.done(); - + _assertPixel(canvas, 20,20, 0,0,0,0); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/initial.reset.2dstate.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/initial.reset.2dstate.html index 76b76070..55954fc 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/initial.reset.2dstate.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/initial.reset.2dstate.html
@@ -17,72 +17,73 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -canvas.width = 100; -var default_val; + canvas.width = 100; + var default_val; -default_val = ctx.strokeStyle; -ctx.strokeStyle = "#ff0000"; -canvas.width = 100; -_assertSame(ctx.strokeStyle, default_val, "ctx.strokeStyle", "default_val"); + default_val = ctx.strokeStyle; + ctx.strokeStyle = "#ff0000"; + canvas.width = 100; + _assertSame(ctx.strokeStyle, default_val, "ctx.strokeStyle", "default_val"); -default_val = ctx.fillStyle; -ctx.fillStyle = "#ff0000"; -canvas.width = 100; -_assertSame(ctx.fillStyle, default_val, "ctx.fillStyle", "default_val"); + default_val = ctx.fillStyle; + ctx.fillStyle = "#ff0000"; + canvas.width = 100; + _assertSame(ctx.fillStyle, default_val, "ctx.fillStyle", "default_val"); -default_val = ctx.globalAlpha; -ctx.globalAlpha = 0.5; -canvas.width = 100; -_assertSame(ctx.globalAlpha, default_val, "ctx.globalAlpha", "default_val"); + default_val = ctx.globalAlpha; + ctx.globalAlpha = 0.5; + canvas.width = 100; + _assertSame(ctx.globalAlpha, default_val, "ctx.globalAlpha", "default_val"); -default_val = ctx.lineWidth; -ctx.lineWidth = 0.5; -canvas.width = 100; -_assertSame(ctx.lineWidth, default_val, "ctx.lineWidth", "default_val"); + default_val = ctx.lineWidth; + ctx.lineWidth = 0.5; + canvas.width = 100; + _assertSame(ctx.lineWidth, default_val, "ctx.lineWidth", "default_val"); -default_val = ctx.lineCap; -ctx.lineCap = "round"; -canvas.width = 100; -_assertSame(ctx.lineCap, default_val, "ctx.lineCap", "default_val"); + default_val = ctx.lineCap; + ctx.lineCap = "round"; + canvas.width = 100; + _assertSame(ctx.lineCap, default_val, "ctx.lineCap", "default_val"); -default_val = ctx.lineJoin; -ctx.lineJoin = "round"; -canvas.width = 100; -_assertSame(ctx.lineJoin, default_val, "ctx.lineJoin", "default_val"); + default_val = ctx.lineJoin; + ctx.lineJoin = "round"; + canvas.width = 100; + _assertSame(ctx.lineJoin, default_val, "ctx.lineJoin", "default_val"); -default_val = ctx.miterLimit; -ctx.miterLimit = 0.5; -canvas.width = 100; -_assertSame(ctx.miterLimit, default_val, "ctx.miterLimit", "default_val"); + default_val = ctx.miterLimit; + ctx.miterLimit = 0.5; + canvas.width = 100; + _assertSame(ctx.miterLimit, default_val, "ctx.miterLimit", "default_val"); -default_val = ctx.shadowOffsetX; -ctx.shadowOffsetX = 5; -canvas.width = 100; -_assertSame(ctx.shadowOffsetX, default_val, "ctx.shadowOffsetX", "default_val"); + default_val = ctx.shadowOffsetX; + ctx.shadowOffsetX = 5; + canvas.width = 100; + _assertSame(ctx.shadowOffsetX, default_val, "ctx.shadowOffsetX", "default_val"); -default_val = ctx.shadowOffsetY; -ctx.shadowOffsetY = 5; -canvas.width = 100; -_assertSame(ctx.shadowOffsetY, default_val, "ctx.shadowOffsetY", "default_val"); + default_val = ctx.shadowOffsetY; + ctx.shadowOffsetY = 5; + canvas.width = 100; + _assertSame(ctx.shadowOffsetY, default_val, "ctx.shadowOffsetY", "default_val"); -default_val = ctx.shadowBlur; -ctx.shadowBlur = 5; -canvas.width = 100; -_assertSame(ctx.shadowBlur, default_val, "ctx.shadowBlur", "default_val"); + default_val = ctx.shadowBlur; + ctx.shadowBlur = 5; + canvas.width = 100; + _assertSame(ctx.shadowBlur, default_val, "ctx.shadowBlur", "default_val"); -default_val = ctx.shadowColor; -ctx.shadowColor = "#ff0000"; -canvas.width = 100; -_assertSame(ctx.shadowColor, default_val, "ctx.shadowColor", "default_val"); + default_val = ctx.shadowColor; + ctx.shadowColor = "#ff0000"; + canvas.width = 100; + _assertSame(ctx.shadowColor, default_val, "ctx.shadowColor", "default_val"); -default_val = ctx.globalCompositeOperation; -ctx.globalCompositeOperation = "copy"; -canvas.width = 100; -_assertSame(ctx.globalCompositeOperation, default_val, "ctx.globalCompositeOperation", "default_val"); + default_val = ctx.globalCompositeOperation; + ctx.globalCompositeOperation = "copy"; + canvas.width = 100; + _assertSame(ctx.globalCompositeOperation, default_val, "ctx.globalCompositeOperation", "default_val"); -t.done(); + t.done(); + }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/initial.reset.2dstate.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/initial.reset.2dstate.worker.js index 273c5f0b..dc0d6ea 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/initial.reset.2dstate.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/initial.reset.2dstate.worker.js
@@ -13,72 +13,72 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -canvas.width = 100; -var default_val; + canvas.width = 100; + var default_val; -default_val = ctx.strokeStyle; -ctx.strokeStyle = "#ff0000"; -canvas.width = 100; -_assertSame(ctx.strokeStyle, default_val, "ctx.strokeStyle", "default_val"); + default_val = ctx.strokeStyle; + ctx.strokeStyle = "#ff0000"; + canvas.width = 100; + _assertSame(ctx.strokeStyle, default_val, "ctx.strokeStyle", "default_val"); -default_val = ctx.fillStyle; -ctx.fillStyle = "#ff0000"; -canvas.width = 100; -_assertSame(ctx.fillStyle, default_val, "ctx.fillStyle", "default_val"); + default_val = ctx.fillStyle; + ctx.fillStyle = "#ff0000"; + canvas.width = 100; + _assertSame(ctx.fillStyle, default_val, "ctx.fillStyle", "default_val"); -default_val = ctx.globalAlpha; -ctx.globalAlpha = 0.5; -canvas.width = 100; -_assertSame(ctx.globalAlpha, default_val, "ctx.globalAlpha", "default_val"); + default_val = ctx.globalAlpha; + ctx.globalAlpha = 0.5; + canvas.width = 100; + _assertSame(ctx.globalAlpha, default_val, "ctx.globalAlpha", "default_val"); -default_val = ctx.lineWidth; -ctx.lineWidth = 0.5; -canvas.width = 100; -_assertSame(ctx.lineWidth, default_val, "ctx.lineWidth", "default_val"); + default_val = ctx.lineWidth; + ctx.lineWidth = 0.5; + canvas.width = 100; + _assertSame(ctx.lineWidth, default_val, "ctx.lineWidth", "default_val"); -default_val = ctx.lineCap; -ctx.lineCap = "round"; -canvas.width = 100; -_assertSame(ctx.lineCap, default_val, "ctx.lineCap", "default_val"); + default_val = ctx.lineCap; + ctx.lineCap = "round"; + canvas.width = 100; + _assertSame(ctx.lineCap, default_val, "ctx.lineCap", "default_val"); -default_val = ctx.lineJoin; -ctx.lineJoin = "round"; -canvas.width = 100; -_assertSame(ctx.lineJoin, default_val, "ctx.lineJoin", "default_val"); + default_val = ctx.lineJoin; + ctx.lineJoin = "round"; + canvas.width = 100; + _assertSame(ctx.lineJoin, default_val, "ctx.lineJoin", "default_val"); -default_val = ctx.miterLimit; -ctx.miterLimit = 0.5; -canvas.width = 100; -_assertSame(ctx.miterLimit, default_val, "ctx.miterLimit", "default_val"); + default_val = ctx.miterLimit; + ctx.miterLimit = 0.5; + canvas.width = 100; + _assertSame(ctx.miterLimit, default_val, "ctx.miterLimit", "default_val"); -default_val = ctx.shadowOffsetX; -ctx.shadowOffsetX = 5; -canvas.width = 100; -_assertSame(ctx.shadowOffsetX, default_val, "ctx.shadowOffsetX", "default_val"); + default_val = ctx.shadowOffsetX; + ctx.shadowOffsetX = 5; + canvas.width = 100; + _assertSame(ctx.shadowOffsetX, default_val, "ctx.shadowOffsetX", "default_val"); -default_val = ctx.shadowOffsetY; -ctx.shadowOffsetY = 5; -canvas.width = 100; -_assertSame(ctx.shadowOffsetY, default_val, "ctx.shadowOffsetY", "default_val"); + default_val = ctx.shadowOffsetY; + ctx.shadowOffsetY = 5; + canvas.width = 100; + _assertSame(ctx.shadowOffsetY, default_val, "ctx.shadowOffsetY", "default_val"); -default_val = ctx.shadowBlur; -ctx.shadowBlur = 5; -canvas.width = 100; -_assertSame(ctx.shadowBlur, default_val, "ctx.shadowBlur", "default_val"); + default_val = ctx.shadowBlur; + ctx.shadowBlur = 5; + canvas.width = 100; + _assertSame(ctx.shadowBlur, default_val, "ctx.shadowBlur", "default_val"); -default_val = ctx.shadowColor; -ctx.shadowColor = "#ff0000"; -canvas.width = 100; -_assertSame(ctx.shadowColor, default_val, "ctx.shadowColor", "default_val"); + default_val = ctx.shadowColor; + ctx.shadowColor = "#ff0000"; + canvas.width = 100; + _assertSame(ctx.shadowColor, default_val, "ctx.shadowColor", "default_val"); -default_val = ctx.globalCompositeOperation; -ctx.globalCompositeOperation = "copy"; -canvas.width = 100; -_assertSame(ctx.globalCompositeOperation, default_val, "ctx.globalCompositeOperation", "default_val"); + default_val = ctx.globalCompositeOperation; + ctx.globalCompositeOperation = "copy"; + canvas.width = 100; + _assertSame(ctx.globalCompositeOperation, default_val, "ctx.globalCompositeOperation", "default_val"); -t.done(); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/initial.reset.clip.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/initial.reset.clip.html index 87a3e43..9b1354bd 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/initial.reset.clip.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/initial.reset.clip.html
@@ -17,17 +17,17 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -canvas.width = 100; -ctx.rect(0, 0, 1, 1); -ctx.clip(); -canvas.width = 100; -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 20,20, 0,255,0,255); -t.done(); + canvas.width = 100; + ctx.rect(0, 0, 1, 1); + ctx.clip(); + canvas.width = 100; + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 20,20, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/initial.reset.clip.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/initial.reset.clip.worker.js index 45ee30d..d774aad6 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/initial.reset.clip.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/initial.reset.clip.worker.js
@@ -13,17 +13,16 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -canvas.width = 100; -ctx.rect(0, 0, 1, 1); -ctx.clip(); -canvas.width = 100; -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 20,20, 0,255,0,255); -t.done(); - + canvas.width = 100; + ctx.rect(0, 0, 1, 1); + ctx.clip(); + canvas.width = 100; + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 20,20, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/initial.reset.different.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/initial.reset.different.html index 632bc2f..a5c891ff 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/initial.reset.different.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/initial.reset.different.html
@@ -17,15 +17,15 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 50, 50); -_assertPixel(canvas, 20,20, 255,0,0,255); -canvas.width = 50; -_assertPixel(canvas, 20,20, 0,0,0,0); -t.done(); + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 50, 50); + _assertPixel(canvas, 20,20, 255,0,0,255); + canvas.width = 50; + _assertPixel(canvas, 20,20, 0,0,0,0); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/initial.reset.different.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/initial.reset.different.worker.js index 9d840a5..dc8f4bd 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/initial.reset.different.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/initial.reset.different.worker.js
@@ -13,15 +13,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 50, 50); -_assertPixel(canvas, 20,20, 255,0,0,255); -canvas.width = 50; -_assertPixel(canvas, 20,20, 0,0,0,0); -t.done(); - + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 50, 50); + _assertPixel(canvas, 20,20, 255,0,0,255); + canvas.width = 50; + _assertPixel(canvas, 20,20, 0,0,0,0); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/initial.reset.gradient.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/initial.reset.gradient.html index 96819a0..8b734d19 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/initial.reset.gradient.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/initial.reset.gradient.html
@@ -17,20 +17,20 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -canvas.width = 50; -var g = ctx.createLinearGradient(0, 0, 100, 0); -g.addColorStop(0, '#0f0'); -g.addColorStop(1, '#0f0'); -canvas.width = 100; -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + canvas.width = 50; + var g = ctx.createLinearGradient(0, 0, 100, 0); + g.addColorStop(0, '#0f0'); + g.addColorStop(1, '#0f0'); + canvas.width = 100; + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/initial.reset.gradient.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/initial.reset.gradient.worker.js index a18d11e..dabc013 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/initial.reset.gradient.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/initial.reset.gradient.worker.js
@@ -13,20 +13,19 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -canvas.width = 50; -var g = ctx.createLinearGradient(0, 0, 100, 0); -g.addColorStop(0, '#0f0'); -g.addColorStop(1, '#0f0'); -canvas.width = 100; -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = g; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + canvas.width = 50; + var g = ctx.createLinearGradient(0, 0, 100, 0); + g.addColorStop(0, '#0f0'); + g.addColorStop(1, '#0f0'); + canvas.width = 100; + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/initial.reset.path.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/initial.reset.path.html index 3c9667c..24b7ff22 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/initial.reset.path.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/initial.reset.path.html
@@ -17,16 +17,16 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -canvas.width = 100; -ctx.rect(0, 0, 100, 50); -canvas.width = 100; -ctx.fillStyle = '#f00'; -ctx.fill(); -_assertPixel(canvas, 20,20, 0,0,0,0); -t.done(); + canvas.width = 100; + ctx.rect(0, 0, 100, 50); + canvas.width = 100; + ctx.fillStyle = '#f00'; + ctx.fill(); + _assertPixel(canvas, 20,20, 0,0,0,0); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/initial.reset.path.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/initial.reset.path.worker.js index 9f34734a..65352324 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/initial.reset.path.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/initial.reset.path.worker.js
@@ -13,16 +13,15 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -canvas.width = 100; -ctx.rect(0, 0, 100, 50); -canvas.width = 100; -ctx.fillStyle = '#f00'; -ctx.fill(); -_assertPixel(canvas, 20,20, 0,0,0,0); -t.done(); - + canvas.width = 100; + ctx.rect(0, 0, 100, 50); + canvas.width = 100; + ctx.fillStyle = '#f00'; + ctx.fill(); + _assertPixel(canvas, 20,20, 0,0,0,0); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/initial.reset.pattern.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/initial.reset.pattern.html index 3766795b..2742d8f 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/initial.reset.pattern.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/initial.reset.pattern.html
@@ -17,20 +17,20 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -canvas.width = 30; -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 30, 50); -var p = ctx.createPattern(canvas, 'repeat-x'); -canvas.width = 100; -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = p; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); + canvas.width = 30; + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 30, 50); + var p = ctx.createPattern(canvas, 'repeat-x'); + canvas.width = 100; + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = p; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/initial.reset.pattern.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/initial.reset.pattern.worker.js index 1fe6c01..a69f36e 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/initial.reset.pattern.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/initial.reset.pattern.worker.js
@@ -13,20 +13,19 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -canvas.width = 30; -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 30, 50); -var p = ctx.createPattern(canvas, 'repeat-x'); -canvas.width = 100; -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.fillStyle = p; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); -t.done(); - + canvas.width = 30; + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 30, 50); + var p = ctx.createPattern(canvas, 'repeat-x'); + canvas.width = 100; + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.fillStyle = p; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/initial.reset.same.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/initial.reset.same.html index bfcf050..137dcbd5 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/initial.reset.same.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/initial.reset.same.html
@@ -17,16 +17,16 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -canvas.width = 100; -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 50, 50); -_assertPixel(canvas, 20,20, 255,0,0,255); -canvas.width = 100; -_assertPixel(canvas, 20,20, 0,0,0,0); -t.done(); + canvas.width = 100; + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 50, 50); + _assertPixel(canvas, 20,20, 255,0,0,255); + canvas.width = 100; + _assertPixel(canvas, 20,20, 0,0,0,0); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/initial.reset.same.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/initial.reset.same.worker.js index 00db682..fd3c464 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/initial.reset.same.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/initial.reset.same.worker.js
@@ -13,16 +13,15 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -canvas.width = 100; -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 50, 50); -_assertPixel(canvas, 20,20, 255,0,0,255); -canvas.width = 100; -_assertPixel(canvas, 20,20, 0,0,0,0); -t.done(); - + canvas.width = 100; + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 50, 50); + _assertPixel(canvas, 20,20, 255,0,0,255); + canvas.width = 100; + _assertPixel(canvas, 20,20, 0,0,0,0); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/initial.reset.transform.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/initial.reset.transform.html index 402b34f..d09f8f92 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/initial.reset.transform.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/initial.reset.transform.html
@@ -17,16 +17,16 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -canvas.width = 100; -ctx.scale(0.1, 0.1); -canvas.width = 100; -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 20,20, 0,255,0,255); -t.done(); + canvas.width = 100; + ctx.scale(0.1, 0.1); + canvas.width = 100; + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 20,20, 0,255,0,255); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/initial.reset.transform.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/initial.reset.transform.worker.js index 3fb80d0..564a3bd 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/initial.reset.transform.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/initial.reset.transform.worker.js
@@ -13,16 +13,15 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -canvas.width = 100; -ctx.scale(0.1, 0.1); -canvas.width = 100; -ctx.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 20,20, 0,255,0,255); -t.done(); - + canvas.width = 100; + ctx.scale(0.1, 0.1); + canvas.width = 100; + ctx.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 20,20, 0,255,0,255); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.default.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.default.html index 6ebd35f..52ddf11 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.default.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.default.html
@@ -17,12 +17,12 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -_assertSame(canvas.width, 100, "canvas.width", "100"); -_assertSame(canvas.height, 50, "canvas.height", "50"); -t.done(); + _assertSame(canvas.width, 100, "canvas.width", "100"); + _assertSame(canvas.height, 50, "canvas.height", "50"); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.default.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.default.worker.js index c77b8a4..83e0271f 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.default.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.default.worker.js
@@ -13,12 +13,11 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -_assertSame(canvas.width, 100, "canvas.width", "100"); -_assertSame(canvas.height, 50, "canvas.height", "50"); -t.done(); - + _assertSame(canvas.width, 100, "canvas.width", "100"); + _assertSame(canvas.height, 50, "canvas.height", "50"); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.idl.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.idl.html index fda4e92..a815a7be 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.idl.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.idl.html
@@ -17,26 +17,26 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -canvas.width = "100"; -canvas.height = "100"; -_assertSame(canvas.width, 100, "canvas.width", "100"); -_assertSame(canvas.height, 100, "canvas.height", "100"); -canvas.width = "+1.5e2"; -canvas.height = "0x96"; -_assertSame(canvas.width, 150, "canvas.width", "150"); -_assertSame(canvas.height, 150, "canvas.height", "150"); -canvas.width = 301.999; -canvas.height = 301.001; -_assertSame(canvas.width, 301, "canvas.width", "301"); -_assertSame(canvas.height, 301, "canvas.height", "301"); -assert_throws_js(TypeError, function() { canvas.width = "400x"; }); -assert_throws_js(TypeError, function() { canvas.height = "foo"; }); -_assertSame(canvas.width, 301, "canvas.width", "301"); -_assertSame(canvas.height, 301, "canvas.height", "301"); -t.done(); + canvas.width = "100"; + canvas.height = "100"; + _assertSame(canvas.width, 100, "canvas.width", "100"); + _assertSame(canvas.height, 100, "canvas.height", "100"); + canvas.width = "+1.5e2"; + canvas.height = "0x96"; + _assertSame(canvas.width, 150, "canvas.width", "150"); + _assertSame(canvas.height, 150, "canvas.height", "150"); + canvas.width = 301.999; + canvas.height = 301.001; + _assertSame(canvas.width, 301, "canvas.width", "301"); + _assertSame(canvas.height, 301, "canvas.height", "301"); + assert_throws_js(TypeError, function() { canvas.width = "400x"; }); + assert_throws_js(TypeError, function() { canvas.height = "foo"; }); + _assertSame(canvas.width, 301, "canvas.width", "301"); + _assertSame(canvas.height, 301, "canvas.height", "301"); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.idl.set.zero.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.idl.set.zero.html index 4bf7b9c..5a069f3c 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.idl.set.zero.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.idl.set.zero.html
@@ -17,14 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -canvas.width = 0; -canvas.height = 0; -_assertSame(canvas.width, 0, "canvas.width", "0"); -_assertSame(canvas.height, 0, "canvas.height", "0"); -t.done(); + canvas.width = 0; + canvas.height = 0; + _assertSame(canvas.width, 0, "canvas.width", "0"); + _assertSame(canvas.height, 0, "canvas.height", "0"); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.idl.set.zero.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.idl.set.zero.worker.js index 2ecf199..d51258a 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.idl.set.zero.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.idl.set.zero.worker.js
@@ -13,14 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -canvas.width = 0; -canvas.height = 0; -_assertSame(canvas.width, 0, "canvas.width", "0"); -_assertSame(canvas.height, 0, "canvas.height", "0"); -t.done(); - + canvas.width = 0; + canvas.height = 0; + _assertSame(canvas.width, 0, "canvas.width", "0"); + _assertSame(canvas.height, 0, "canvas.height", "0"); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.idl.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.idl.worker.js index 16350ae..931b95c 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.idl.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.idl.worker.js
@@ -13,26 +13,25 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -canvas.width = "100"; -canvas.height = "100"; -_assertSame(canvas.width, 100, "canvas.width", "100"); -_assertSame(canvas.height, 100, "canvas.height", "100"); -canvas.width = "+1.5e2"; -canvas.height = "0x96"; -_assertSame(canvas.width, 150, "canvas.width", "150"); -_assertSame(canvas.height, 150, "canvas.height", "150"); -canvas.width = 301.999; -canvas.height = 301.001; -_assertSame(canvas.width, 301, "canvas.width", "301"); -_assertSame(canvas.height, 301, "canvas.height", "301"); -assert_throws_js(TypeError, function() { canvas.width = "400x"; }); -assert_throws_js(TypeError, function() { canvas.height = "foo"; }); -_assertSame(canvas.width, 301, "canvas.width", "301"); -_assertSame(canvas.height, 301, "canvas.height", "301"); -t.done(); - + canvas.width = "100"; + canvas.height = "100"; + _assertSame(canvas.width, 100, "canvas.width", "100"); + _assertSame(canvas.height, 100, "canvas.height", "100"); + canvas.width = "+1.5e2"; + canvas.height = "0x96"; + _assertSame(canvas.width, 150, "canvas.width", "150"); + _assertSame(canvas.height, 150, "canvas.height", "150"); + canvas.width = 301.999; + canvas.height = 301.001; + _assertSame(canvas.width, 301, "canvas.width", "301"); + _assertSame(canvas.height, 301, "canvas.height", "301"); + assert_throws_js(TypeError, function() { canvas.width = "400x"; }); + assert_throws_js(TypeError, function() { canvas.height = "foo"; }); + _assertSame(canvas.width, 301, "canvas.width", "301"); + _assertSame(canvas.height, 301, "canvas.height", "301"); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.decimal.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.decimal.html index a74fe15..688d80b 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.decimal.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.decimal.html
@@ -17,14 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -canvas.width = '100.999'; -canvas.height = '100.999'; -_assertSame(canvas.width, 100, "canvas.width", "100"); -_assertSame(canvas.height, 100, "canvas.height", "100"); -t.done(); + canvas.width = '100.999'; + canvas.height = '100.999'; + _assertSame(canvas.width, 100, "canvas.width", "100"); + _assertSame(canvas.height, 100, "canvas.height", "100"); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.decimal.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.decimal.worker.js index 7b982e8..157bd61 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.decimal.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.decimal.worker.js
@@ -13,14 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -canvas.width = '100.999'; -canvas.height = '100.999'; -_assertSame(canvas.width, 100, "canvas.width", "100"); -_assertSame(canvas.height, 100, "canvas.height", "100"); -t.done(); - + canvas.width = '100.999'; + canvas.height = '100.999'; + _assertSame(canvas.width, 100, "canvas.width", "100"); + _assertSame(canvas.height, 100, "canvas.height", "100"); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.em.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.em.html index 5a8eee2..2e5056a 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.em.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.em.html
@@ -17,11 +17,11 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -assert_throws_js(TypeError, function() { canvas.width = '100em'; }); -t.done(); + assert_throws_js(TypeError, function() { canvas.width = '100em'; }); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.em.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.em.worker.js index a0248d4e..b939765 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.em.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.em.worker.js
@@ -13,11 +13,10 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -assert_throws_js(TypeError, function() { canvas.width = '100em'; }); -t.done(); - + assert_throws_js(TypeError, function() { canvas.width = '100em'; }); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.empty.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.empty.html index eab54b0..7755f9d 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.empty.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.empty.html
@@ -17,14 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -canvas.width = ''; -canvas.height = ''; -_assertSame(canvas.width, 0, "canvas.width", "0"); -_assertSame(canvas.height, 0, "canvas.height", "0"); -t.done(); + canvas.width = ''; + canvas.height = ''; + _assertSame(canvas.width, 0, "canvas.width", "0"); + _assertSame(canvas.height, 0, "canvas.height", "0"); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.empty.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.empty.worker.js index 93b6cd6..72fcd9f6 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.empty.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.empty.worker.js
@@ -13,14 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -canvas.width = ''; -canvas.height = ''; -_assertSame(canvas.width, 0, "canvas.width", "0"); -_assertSame(canvas.height, 0, "canvas.height", "0"); -t.done(); - + canvas.width = ''; + canvas.height = ''; + _assertSame(canvas.width, 0, "canvas.width", "0"); + _assertSame(canvas.height, 0, "canvas.height", "0"); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.exp.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.exp.html index abfddf1..0a2f012 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.exp.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.exp.html
@@ -17,14 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -canvas.width = '100e1'; -canvas.height = '100e1'; -_assertSame(canvas.width, 1000.0, "canvas.width", "1000.0"); -_assertSame(canvas.height, 1000.0, "canvas.height", "1000.0"); -t.done(); + canvas.width = '100e1'; + canvas.height = '100e1'; + _assertSame(canvas.width, 1000.0, "canvas.width", "1000.0"); + _assertSame(canvas.height, 1000.0, "canvas.height", "1000.0"); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.exp.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.exp.worker.js index 79fb413..0b7d5f2 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.exp.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.exp.worker.js
@@ -13,14 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -canvas.width = '100e1'; -canvas.height = '100e1'; -_assertSame(canvas.width, 1000.0, "canvas.width", "1000.0"); -_assertSame(canvas.height, 1000.0, "canvas.height", "1000.0"); -t.done(); - + canvas.width = '100e1'; + canvas.height = '100e1'; + _assertSame(canvas.width, 1000.0, "canvas.width", "1000.0"); + _assertSame(canvas.height, 1000.0, "canvas.height", "1000.0"); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.hex.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.hex.html index fba2890..5a899018 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.hex.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.hex.html
@@ -17,14 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -canvas.width = '0x100'; -canvas.height = '0x100'; -_assertSame(canvas.width, 256, "canvas.width", "256"); -_assertSame(canvas.height, 256, "canvas.height", "256"); -t.done(); + canvas.width = '0x100'; + canvas.height = '0x100'; + _assertSame(canvas.width, 256, "canvas.width", "256"); + _assertSame(canvas.height, 256, "canvas.height", "256"); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.hex.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.hex.worker.js index b178c55..1edd0ed 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.hex.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.hex.worker.js
@@ -13,14 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -canvas.width = '0x100'; -canvas.height = '0x100'; -_assertSame(canvas.width, 256, "canvas.width", "256"); -_assertSame(canvas.height, 256, "canvas.height", "256"); -t.done(); - + canvas.width = '0x100'; + canvas.height = '0x100'; + _assertSame(canvas.width, 256, "canvas.width", "256"); + _assertSame(canvas.height, 256, "canvas.height", "256"); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.junk.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.junk.html index 3ffb674b..10d2e20 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.junk.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.junk.html
@@ -17,11 +17,11 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -assert_throws_js(TypeError, function() { canvas.width = '#!?'; }); -t.done(); + assert_throws_js(TypeError, function() { canvas.width = '#!?'; }); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.junk.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.junk.worker.js index 6efd3ae..c7e18d1 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.junk.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.junk.worker.js
@@ -13,11 +13,10 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -assert_throws_js(TypeError, function() { canvas.width = '#!?'; }); -t.done(); - + assert_throws_js(TypeError, function() { canvas.width = '#!?'; }); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.minus.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.minus.html index 56435547..2a7d5d12 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.minus.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.minus.html
@@ -17,11 +17,11 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -assert_throws_js(TypeError, function() { canvas.width = '-100'; }); -t.done(); + assert_throws_js(TypeError, function() { canvas.width = '-100'; }); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.minus.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.minus.worker.js index a583752..9680f907 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.minus.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.minus.worker.js
@@ -13,11 +13,10 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -assert_throws_js(TypeError, function() { canvas.width = '-100'; }); -t.done(); - + assert_throws_js(TypeError, function() { canvas.width = '-100'; }); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.octal.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.octal.html index d452217..3d9c2fb 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.octal.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.octal.html
@@ -17,14 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -canvas.width = '0100'; -canvas.height = '0100'; -_assertSame(canvas.width, 100, "canvas.width", "100"); -_assertSame(canvas.height, 100, "canvas.height", "100"); -t.done(); + canvas.width = '0100'; + canvas.height = '0100'; + _assertSame(canvas.width, 100, "canvas.width", "100"); + _assertSame(canvas.height, 100, "canvas.height", "100"); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.octal.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.octal.worker.js index 23f228e..2925361 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.octal.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.octal.worker.js
@@ -13,14 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -canvas.width = '0100'; -canvas.height = '0100'; -_assertSame(canvas.width, 100, "canvas.width", "100"); -_assertSame(canvas.height, 100, "canvas.height", "100"); -t.done(); - + canvas.width = '0100'; + canvas.height = '0100'; + _assertSame(canvas.width, 100, "canvas.width", "100"); + _assertSame(canvas.height, 100, "canvas.height", "100"); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.onlyspace.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.onlyspace.html index 4164123..821de43 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.onlyspace.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.onlyspace.html
@@ -17,14 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -canvas.width = ' '; -canvas.height = ' '; -_assertSame(canvas.width, 0, "canvas.width", "0"); -_assertSame(canvas.height, 0, "canvas.height", "0"); -t.done(); + canvas.width = ' '; + canvas.height = ' '; + _assertSame(canvas.width, 0, "canvas.width", "0"); + _assertSame(canvas.height, 0, "canvas.height", "0"); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.onlyspace.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.onlyspace.worker.js index a4b86624..e5fadf13 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.onlyspace.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.onlyspace.worker.js
@@ -13,14 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -canvas.width = ' '; -canvas.height = ' '; -_assertSame(canvas.width, 0, "canvas.width", "0"); -_assertSame(canvas.height, 0, "canvas.height", "0"); -t.done(); - + canvas.width = ' '; + canvas.height = ' '; + _assertSame(canvas.width, 0, "canvas.width", "0"); + _assertSame(canvas.height, 0, "canvas.height", "0"); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.percent.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.percent.html index d6288e9..58748103 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.percent.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.percent.html
@@ -17,11 +17,11 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -assert_throws_js(TypeError, function() { canvas.width = '100%'; }); -t.done(); + assert_throws_js(TypeError, function() { canvas.width = '100%'; }); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.percent.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.percent.worker.js index e07fa60..acbd2a1 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.percent.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.percent.worker.js
@@ -13,11 +13,10 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -assert_throws_js(TypeError, function() { canvas.width = '100%'; }); -t.done(); - + assert_throws_js(TypeError, function() { canvas.width = '100%'; }); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.plus.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.plus.html index 79d531f..4555829 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.plus.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.plus.html
@@ -17,14 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -canvas.width = '+100'; -canvas.height = '+100'; -_assertSame(canvas.width, 100, "canvas.width", "100"); -_assertSame(canvas.height, 100, "canvas.height", "100"); -t.done(); + canvas.width = '+100'; + canvas.height = '+100'; + _assertSame(canvas.width, 100, "canvas.width", "100"); + _assertSame(canvas.height, 100, "canvas.height", "100"); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.plus.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.plus.worker.js index 240a6bd7..ecf6797 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.plus.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.plus.worker.js
@@ -13,14 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -canvas.width = '+100'; -canvas.height = '+100'; -_assertSame(canvas.width, 100, "canvas.width", "100"); -_assertSame(canvas.height, 100, "canvas.height", "100"); -t.done(); - + canvas.width = '+100'; + canvas.height = '+100'; + _assertSame(canvas.width, 100, "canvas.width", "100"); + _assertSame(canvas.height, 100, "canvas.height", "100"); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.space.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.space.html index 695afa5..b0d63a4 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.space.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.space.html
@@ -17,14 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -canvas.width = ' 100'; -canvas.height = ' 100'; -_assertSame(canvas.width, 100, "canvas.width", "100"); -_assertSame(canvas.height, 100, "canvas.height", "100"); -t.done(); + canvas.width = ' 100'; + canvas.height = ' 100'; + _assertSame(canvas.width, 100, "canvas.width", "100"); + _assertSame(canvas.height, 100, "canvas.height", "100"); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.space.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.space.worker.js index 2993020..11ac398 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.space.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.space.worker.js
@@ -13,14 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -canvas.width = ' 100'; -canvas.height = ' 100'; -_assertSame(canvas.width, 100, "canvas.width", "100"); -_assertSame(canvas.height, 100, "canvas.height", "100"); -t.done(); - + canvas.width = ' 100'; + canvas.height = ' 100'; + _assertSame(canvas.width, 100, "canvas.width", "100"); + _assertSame(canvas.height, 100, "canvas.height", "100"); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.trailingjunk.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.trailingjunk.html index fff231f..536ea90 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.trailingjunk.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.trailingjunk.html
@@ -17,11 +17,11 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -assert_throws_js(TypeError, function() { canvas.width = '100#!?'; }); -t.done(); + assert_throws_js(TypeError, function() { canvas.width = '100#!?'; }); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.trailingjunk.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.trailingjunk.worker.js index f8d916c..1d1c5e7f 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.trailingjunk.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.trailingjunk.worker.js
@@ -13,11 +13,10 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -assert_throws_js(TypeError, function() { canvas.width = '100#!?'; }); -t.done(); - + assert_throws_js(TypeError, function() { canvas.width = '100#!?'; }); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.whitespace.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.whitespace.html index b7f0c4b..53a3a2e 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.whitespace.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.whitespace.html
@@ -17,14 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -canvas.width = ' 100'; -canvas.height = ' 100'; -_assertSame(canvas.width, 100, "canvas.width", "100"); -_assertSame(canvas.height, 100, "canvas.height", "100"); -t.done(); + canvas.width = ' 100'; + canvas.height = ' 100'; + _assertSame(canvas.width, 100, "canvas.width", "100"); + _assertSame(canvas.height, 100, "canvas.height", "100"); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.whitespace.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.whitespace.worker.js index ea38398..26296e1 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.whitespace.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.whitespace.worker.js
@@ -13,14 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -canvas.width = ' 100'; -canvas.height = ' 100'; -_assertSame(canvas.width, 100, "canvas.width", "100"); -_assertSame(canvas.height, 100, "canvas.height", "100"); -t.done(); - + canvas.width = ' 100'; + canvas.height = ' 100'; + _assertSame(canvas.width, 100, "canvas.width", "100"); + _assertSame(canvas.height, 100, "canvas.height", "100"); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.zero.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.zero.html index 9a84c95..1af0d2a 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.zero.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.zero.html
@@ -17,14 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -canvas.width = '0'; -canvas.height = '0'; -_assertSame(canvas.width, 0, "canvas.width", "0"); -_assertSame(canvas.height, 0, "canvas.height", "0"); -t.done(); + canvas.width = '0'; + canvas.height = '0'; + _assertSame(canvas.width, 0, "canvas.width", "0"); + _assertSame(canvas.height, 0, "canvas.height", "0"); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.zero.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.zero.worker.js index 4d97a96..5348bf6 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.zero.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.zero.worker.js
@@ -13,14 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -canvas.width = '0'; -canvas.height = '0'; -_assertSame(canvas.width, 0, "canvas.width", "0"); -_assertSame(canvas.height, 0, "canvas.height", "0"); -t.done(); - + canvas.width = '0'; + canvas.height = '0'; + _assertSame(canvas.width, 0, "canvas.width", "0"); + _assertSame(canvas.height, 0, "canvas.height", "0"); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.reflect.setidl.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.reflect.setidl.html index 968dad9d..997bf97 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.reflect.setidl.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.reflect.setidl.html
@@ -17,14 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -canvas.width = 120; -canvas.height = 60; -_assertSame(canvas.width, 120, "canvas.width", "120"); -_assertSame(canvas.height, 60, "canvas.height", "60"); -t.done(); + canvas.width = 120; + canvas.height = 60; + _assertSame(canvas.width, 120, "canvas.width", "120"); + _assertSame(canvas.height, 60, "canvas.height", "60"); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.reflect.setidl.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.reflect.setidl.worker.js index 3f8050d..9555f66 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.reflect.setidl.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.reflect.setidl.worker.js
@@ -13,14 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -canvas.width = 120; -canvas.height = 60; -_assertSame(canvas.width, 120, "canvas.width", "120"); -_assertSame(canvas.height, 60, "canvas.height", "60"); -t.done(); - + canvas.width = 120; + canvas.height = 60; + _assertSame(canvas.width, 120, "canvas.width", "120"); + _assertSame(canvas.height, 60, "canvas.height", "60"); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.reflect.setidlzero.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.reflect.setidlzero.html index 5f31f69..50e9096f 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.reflect.setidlzero.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.reflect.setidlzero.html
@@ -17,14 +17,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -canvas.width = 0; -canvas.height = 0; -_assertSame(canvas.width, 0, "canvas.width", "0"); -_assertSame(canvas.height, 0, "canvas.height", "0"); -t.done(); + canvas.width = 0; + canvas.height = 0; + _assertSame(canvas.width, 0, "canvas.width", "0"); + _assertSame(canvas.height, 0, "canvas.height", "0"); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.reflect.setidlzero.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.reflect.setidlzero.worker.js index 4ace1f5..e412b7a 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.reflect.setidlzero.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.attributes.reflect.setidlzero.worker.js
@@ -13,14 +13,13 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -canvas.width = 0; -canvas.height = 0; -_assertSame(canvas.width, 0, "canvas.width", "0"); -_assertSame(canvas.height, 0, "canvas.height", "0"); -t.done(); - + canvas.width = 0; + canvas.height = 0; + _assertSame(canvas.width, 0, "canvas.width", "0"); + _assertSame(canvas.height, 0, "canvas.height", "0"); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.large.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.large.html index 9f41e2e..46b8a05 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.large.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.large.html
@@ -17,15 +17,15 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var n = 2147483647; // 2^31 - 1, which should be supported by any sensible definition of "long" -canvas.width = n; -canvas.height = n; -_assertSame(canvas.width, n, "canvas.width", "n"); -_assertSame(canvas.height, n, "canvas.height", "n"); -t.done(); + var n = 2147483647; // 2^31 - 1, which should be supported by any sensible definition of "long" + canvas.width = n; + canvas.height = n; + _assertSame(canvas.width, n, "canvas.width", "n"); + _assertSame(canvas.height, n, "canvas.height", "n"); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.large.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.large.worker.js index b20ff5496..6a5bb5e 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.large.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/size.large.worker.js
@@ -13,15 +13,14 @@ }); t.step(function() { -var canvas = new OffscreenCanvas(100, 50); -var ctx = canvas.getContext('2d'); + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); -var n = 2147483647; // 2^31 - 1, which should be supported by any sensible definition of "long" -canvas.width = n; -canvas.height = n; -_assertSame(canvas.width, n, "canvas.width", "n"); -_assertSame(canvas.height, n, "canvas.height", "n"); -t.done(); - + var n = 2147483647; // 2^31 - 1, which should be supported by any sensible definition of "long" + canvas.width = n; + canvas.height = n; + _assertSame(canvas.width, n, "canvas.width", "n"); + _assertSame(canvas.height, n, "canvas.height", "n"); + t.done(); }); done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/tools/gentestutils.py b/third_party/blink/web_tests/external/wpt/html/canvas/tools/gentestutils.py index 27412e4..8fa33e39 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/tools/gentestutils.py +++ b/third_party/blink/web_tests/external/wpt/html/canvas/tools/gentestutils.py
@@ -35,6 +35,7 @@ import os import pathlib import sys +import textwrap try: import cairocffi as cairo # type: ignore @@ -199,7 +200,8 @@ r'@assert pixel .* 0,0,0,0;', test['code']): print('Probable incorrect pixel test in %s' % name) - code = _expand_test_code(test['code']) + code = _expand_test_code(test['code'].strip()) + code = textwrap.indent(code, ' ') expectation_html = '' if 'expected' in test and test['expected'] is not None:
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/tools/templates.yaml b/third_party/blink/web_tests/external/wpt/html/canvas/tools/templates.yaml index cb11f76d..0806872 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/tools/templates.yaml +++ b/third_party/blink/web_tests/external/wpt/html/canvas/tools/templates.yaml
@@ -18,10 +18,11 @@ }); t.step(function() { - var canvas = new OffscreenCanvas(%(width)s, %(height)s); - var ctx = canvas.getContext(%(context_args)s); + var canvas = new OffscreenCanvas(%(width)s, %(height)s); + var ctx = canvas.getContext(%(context_args)s); %(code)s + }); </script> @@ -42,8 +43,8 @@ }); t.step(function() { - var canvas = new OffscreenCanvas(%(width)s, %(height)s); - var ctx = canvas.getContext(%(context_args)s); + var canvas = new OffscreenCanvas(%(width)s, %(height)s); + var ctx = canvas.getContext(%(context_args)s); %(code)s });
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/2d.canvas.context.html b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/2d.canvas.context.html index b9d2601..51cf0a2 100644 --- a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/2d.canvas.context.html +++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/2d.canvas.context.html
@@ -19,10 +19,9 @@ var t = async_test("checks CanvasRenderingContext2D prototype"); _addTest(function(canvas, ctx) { -_assertSame(Object.getPrototypeOf(CanvasRenderingContext2D.prototype), Object.prototype, "Object.getPrototypeOf(CanvasRenderingContext2D.prototype)", "Object.prototype"); -_assertSame(Object.getPrototypeOf(ctx), CanvasRenderingContext2D.prototype, "Object.getPrototypeOf(ctx)", "CanvasRenderingContext2D.prototype"); -t.done(); - + _assertSame(Object.getPrototypeOf(CanvasRenderingContext2D.prototype), Object.prototype, "Object.getPrototypeOf(CanvasRenderingContext2D.prototype)", "Object.prototype"); + _assertSame(Object.getPrototypeOf(ctx), CanvasRenderingContext2D.prototype, "Object.getPrototypeOf(ctx)", "CanvasRenderingContext2D.prototype"); + t.done(); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/2d.canvas.readonly.html b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/2d.canvas.readonly.html index 7f735b94..4b9e6810 100644 --- a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/2d.canvas.readonly.html +++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/2d.canvas.readonly.html
@@ -19,12 +19,11 @@ var t = async_test("CanvasRenderingContext2D.canvas is readonly"); _addTest(function(canvas, ctx) { -var c = document.createElement('canvas'); -var d = ctx.canvas; -_assertDifferent(c, d, "c", "d"); -ctx.canvas = c; -_assertSame(ctx.canvas, d, "ctx.canvas", "d"); - + var c = document.createElement('canvas'); + var d = ctx.canvas; + _assertDifferent(c, d, "c", "d"); + ctx.canvas = c; + _assertSame(ctx.canvas, d, "ctx.canvas", "d"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/2d.canvas.reference.html b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/2d.canvas.reference.html index dc84112..182a0170 100644 --- a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/2d.canvas.reference.html +++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/2d.canvas.reference.html
@@ -19,8 +19,7 @@ var t = async_test("CanvasRenderingContext2D.canvas refers back to its canvas"); _addTest(function(canvas, ctx) { -_assertSame(ctx.canvas, canvas, "ctx.canvas", "canvas"); - + _assertSame(ctx.canvas, canvas, "ctx.canvas", "canvas"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/2d.getcontext.exists.html b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/2d.getcontext.exists.html index 30032a99..a26bc40 100644 --- a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/2d.getcontext.exists.html +++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/2d.getcontext.exists.html
@@ -19,8 +19,7 @@ var t = async_test("The 2D context is implemented"); _addTest(function(canvas, ctx) { -_assertDifferent(canvas.getContext('2d'), null, "canvas.getContext('2d')", "null"); - + _assertDifferent(canvas.getContext('2d'), null, "canvas.getContext('2d')", "null"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/2d.getcontext.extraargs.cache.html b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/2d.getcontext.extraargs.cache.html index 18d70064..eb47929 100644 --- a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/2d.getcontext.extraargs.cache.html +++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/2d.getcontext.extraargs.cache.html
@@ -19,13 +19,12 @@ var t = async_test("The 2D context doesn't throw with extra getContext arguments (cached)"); _addTest(function(canvas, ctx) { -_assertDifferent(canvas.getContext('2d', false, {}, [], 1, "2"), null, "canvas.getContext('2d', false, {}, [], 1, \"2\")", "null"); -_assertDifferent(canvas.getContext('2d', 123), null, "canvas.getContext('2d', 123)", "null"); -_assertDifferent(canvas.getContext('2d', "test"), null, "canvas.getContext('2d', \"test\")", "null"); -_assertDifferent(canvas.getContext('2d', undefined), null, "canvas.getContext('2d', undefined)", "null"); -_assertDifferent(canvas.getContext('2d', null), null, "canvas.getContext('2d', null)", "null"); -_assertDifferent(canvas.getContext('2d', Symbol.hasInstance), null, "canvas.getContext('2d', Symbol.hasInstance)", "null"); - + _assertDifferent(canvas.getContext('2d', false, {}, [], 1, "2"), null, "canvas.getContext('2d', false, {}, [], 1, \"2\")", "null"); + _assertDifferent(canvas.getContext('2d', 123), null, "canvas.getContext('2d', 123)", "null"); + _assertDifferent(canvas.getContext('2d', "test"), null, "canvas.getContext('2d', \"test\")", "null"); + _assertDifferent(canvas.getContext('2d', undefined), null, "canvas.getContext('2d', undefined)", "null"); + _assertDifferent(canvas.getContext('2d', null), null, "canvas.getContext('2d', null)", "null"); + _assertDifferent(canvas.getContext('2d', Symbol.hasInstance), null, "canvas.getContext('2d', Symbol.hasInstance)", "null"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/2d.getcontext.extraargs.create.html b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/2d.getcontext.extraargs.create.html index 980d103..0683e45 100644 --- a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/2d.getcontext.extraargs.create.html +++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/2d.getcontext.extraargs.create.html
@@ -19,13 +19,12 @@ var t = async_test("The 2D context doesn't throw with extra getContext arguments (new context)"); _addTest(function(canvas, ctx) { -_assertDifferent(document.createElement("canvas").getContext('2d', false, {}, [], 1, "2"), null, "document.createElement(\"canvas\").getContext('2d', false, {}, [], 1, \"2\")", "null"); -_assertDifferent(document.createElement("canvas").getContext('2d', 123), null, "document.createElement(\"canvas\").getContext('2d', 123)", "null"); -_assertDifferent(document.createElement("canvas").getContext('2d', "test"), null, "document.createElement(\"canvas\").getContext('2d', \"test\")", "null"); -_assertDifferent(document.createElement("canvas").getContext('2d', undefined), null, "document.createElement(\"canvas\").getContext('2d', undefined)", "null"); -_assertDifferent(document.createElement("canvas").getContext('2d', null), null, "document.createElement(\"canvas\").getContext('2d', null)", "null"); -_assertDifferent(document.createElement("canvas").getContext('2d', Symbol.hasInstance), null, "document.createElement(\"canvas\").getContext('2d', Symbol.hasInstance)", "null"); - + _assertDifferent(document.createElement("canvas").getContext('2d', false, {}, [], 1, "2"), null, "document.createElement(\"canvas\").getContext('2d', false, {}, [], 1, \"2\")", "null"); + _assertDifferent(document.createElement("canvas").getContext('2d', 123), null, "document.createElement(\"canvas\").getContext('2d', 123)", "null"); + _assertDifferent(document.createElement("canvas").getContext('2d', "test"), null, "document.createElement(\"canvas\").getContext('2d', \"test\")", "null"); + _assertDifferent(document.createElement("canvas").getContext('2d', undefined), null, "document.createElement(\"canvas\").getContext('2d', undefined)", "null"); + _assertDifferent(document.createElement("canvas").getContext('2d', null), null, "document.createElement(\"canvas\").getContext('2d', null)", "null"); + _assertDifferent(document.createElement("canvas").getContext('2d', Symbol.hasInstance), null, "document.createElement(\"canvas\").getContext('2d', Symbol.hasInstance)", "null"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/2d.getcontext.invalid.args.html b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/2d.getcontext.invalid.args.html index ff592c9b..c3407d0 100644 --- a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/2d.getcontext.invalid.args.html +++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/2d.getcontext.invalid.args.html
@@ -19,16 +19,15 @@ var t = async_test("Calling getContext with invalid arguments."); _addTest(function(canvas, ctx) { -_assertSame(canvas.getContext(''), null, "canvas.getContext('')", "null"); -_assertSame(canvas.getContext('2d#'), null, "canvas.getContext('2d#')", "null"); -_assertSame(canvas.getContext('This is clearly not a valid context name.'), null, "canvas.getContext('This is clearly not a valid context name.')", "null"); -_assertSame(canvas.getContext('2d\0'), null, "canvas.getContext('2d\\0')", "null"); -_assertSame(canvas.getContext('2\uFF44'), null, "canvas.getContext('2\\uFF44')", "null"); -_assertSame(canvas.getContext('2D'), null, "canvas.getContext('2D')", "null"); -assert_throws_js(TypeError, function() { canvas.getContext(); }); -_assertSame(canvas.getContext('null'), null, "canvas.getContext('null')", "null"); -_assertSame(canvas.getContext('undefined'), null, "canvas.getContext('undefined')", "null"); - + _assertSame(canvas.getContext(''), null, "canvas.getContext('')", "null"); + _assertSame(canvas.getContext('2d#'), null, "canvas.getContext('2d#')", "null"); + _assertSame(canvas.getContext('This is clearly not a valid context name.'), null, "canvas.getContext('This is clearly not a valid context name.')", "null"); + _assertSame(canvas.getContext('2d\0'), null, "canvas.getContext('2d\\0')", "null"); + _assertSame(canvas.getContext('2\uFF44'), null, "canvas.getContext('2\\uFF44')", "null"); + _assertSame(canvas.getContext('2D'), null, "canvas.getContext('2D')", "null"); + assert_throws_js(TypeError, function() { canvas.getContext(); }); + _assertSame(canvas.getContext('null'), null, "canvas.getContext('null')", "null"); + _assertSame(canvas.getContext('undefined'), null, "canvas.getContext('undefined')", "null"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/2d.getcontext.shared.html b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/2d.getcontext.shared.html index 93c1603..54c1fd1 100644 --- a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/2d.getcontext.shared.html +++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/2d.getcontext.shared.html
@@ -19,12 +19,11 @@ var t = async_test("getContext('2d') returns objects which share canvas state"); _addTest(function(canvas, ctx) { -var ctx2 = canvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx2.fillStyle = '#0f0'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + var ctx2 = canvas.getContext('2d'); + ctx.fillStyle = '#f00'; + ctx2.fillStyle = '#0f0'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/2d.getcontext.unique.html b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/2d.getcontext.unique.html index 8632dad..c6e8980a20 100644 --- a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/2d.getcontext.unique.html +++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/2d.getcontext.unique.html
@@ -19,8 +19,7 @@ var t = async_test("getContext('2d') returns the same object"); _addTest(function(canvas, ctx) { -_assertSame(canvas.getContext('2d'), canvas.getContext('2d'), "canvas.getContext('2d')", "canvas.getContext('2d')"); - + _assertSame(canvas.getContext('2d'), canvas.getContext('2d'), "canvas.getContext('2d')", "canvas.getContext('2d')"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/2d.scaled-manual.html b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/2d.scaled-manual.html index ed91b71..28daf0b 100644 --- a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/2d.scaled-manual.html +++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/2d.scaled-manual.html
@@ -19,11 +19,10 @@ var t = async_test("CSS-scaled canvases get drawn correctly"); _addTest(function(canvas, ctx) { -ctx.fillStyle = '#00f'; -ctx.fillRect(0, 0, 50, 25); -ctx.fillStyle = '#0ff'; -ctx.fillRect(0, 0, 25, 10); - + ctx.fillStyle = '#00f'; + ctx.fillRect(0, 0, 50, 25); + ctx.fillStyle = '#0ff'; + ctx.fillRect(0, 0, 25, 10); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/2d.type.exists.html b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/2d.type.exists.html index e7fa25c..e2c09e6 100644 --- a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/2d.type.exists.html +++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/2d.type.exists.html
@@ -19,8 +19,7 @@ var t = async_test("The 2D context interface is a property of 'window'"); _addTest(function(canvas, ctx) { -_assert(window.CanvasRenderingContext2D, "window.CanvasRenderingContext2D"); - + _assert(window.CanvasRenderingContext2D, "window.CanvasRenderingContext2D"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/2d.type.extend.html b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/2d.type.extend.html index 1cb5e48..151b40d 100644 --- a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/2d.type.extend.html +++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/2d.type.extend.html
@@ -19,15 +19,14 @@ var t = async_test("Interface methods can be added"); _addTest(function(canvas, ctx) { -window.CanvasRenderingContext2D.prototype.fillRectGreen = function (x, y, w, h) -{ - this.fillStyle = '#0f0'; - this.fillRect(x, y, w, h); -}; -ctx.fillStyle = '#f00'; -ctx.fillRectGreen(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + window.CanvasRenderingContext2D.prototype.fillRectGreen = function (x, y, w, h) + { + this.fillStyle = '#0f0'; + this.fillRect(x, y, w, h); + }; + ctx.fillStyle = '#f00'; + ctx.fillRectGreen(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/2d.type.prototype.html b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/2d.type.prototype.html index bd95dac..24ee5068 100644 --- a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/2d.type.prototype.html +++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/2d.type.prototype.html
@@ -19,17 +19,16 @@ var t = async_test("window.CanvasRenderingContext2D.prototype are not [[Writable]] and not [[Configurable]], and its methods are [[Configurable]]."); _addTest(function(canvas, ctx) { -_assert(window.CanvasRenderingContext2D.prototype, "window.CanvasRenderingContext2D.prototype"); -_assert(window.CanvasRenderingContext2D.prototype.fill, "window.CanvasRenderingContext2D.prototype.fill"); -window.CanvasRenderingContext2D.prototype = null; -_assert(window.CanvasRenderingContext2D.prototype, "window.CanvasRenderingContext2D.prototype"); -delete window.CanvasRenderingContext2D.prototype; -_assert(window.CanvasRenderingContext2D.prototype, "window.CanvasRenderingContext2D.prototype"); -window.CanvasRenderingContext2D.prototype.fill = 1; -_assertSame(window.CanvasRenderingContext2D.prototype.fill, 1, "window.CanvasRenderingContext2D.prototype.fill", "1"); -delete window.CanvasRenderingContext2D.prototype.fill; -_assertSame(window.CanvasRenderingContext2D.prototype.fill, undefined, "window.CanvasRenderingContext2D.prototype.fill", "undefined"); - + _assert(window.CanvasRenderingContext2D.prototype, "window.CanvasRenderingContext2D.prototype"); + _assert(window.CanvasRenderingContext2D.prototype.fill, "window.CanvasRenderingContext2D.prototype.fill"); + window.CanvasRenderingContext2D.prototype = null; + _assert(window.CanvasRenderingContext2D.prototype, "window.CanvasRenderingContext2D.prototype"); + delete window.CanvasRenderingContext2D.prototype; + _assert(window.CanvasRenderingContext2D.prototype, "window.CanvasRenderingContext2D.prototype"); + window.CanvasRenderingContext2D.prototype.fill = 1; + _assertSame(window.CanvasRenderingContext2D.prototype.fill, 1, "window.CanvasRenderingContext2D.prototype.fill", "1"); + delete window.CanvasRenderingContext2D.prototype.fill; + _assertSame(window.CanvasRenderingContext2D.prototype.fill, undefined, "window.CanvasRenderingContext2D.prototype.fill", "undefined"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/2d.type.replace.html b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/2d.type.replace.html index 47aa5bb82..aa0ec1cf 100644 --- a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/2d.type.replace.html +++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/2d.type.replace.html
@@ -19,16 +19,15 @@ var t = async_test("Interface methods can be overridden"); _addTest(function(canvas, ctx) { -var fillRect = window.CanvasRenderingContext2D.prototype.fillRect; -window.CanvasRenderingContext2D.prototype.fillRect = function (x, y, w, h) -{ - this.fillStyle = '#0f0'; - fillRect.call(this, x, y, w, h); -}; -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -_assertPixel(canvas, 50,25, 0,255,0,255); - + var fillRect = window.CanvasRenderingContext2D.prototype.fillRect; + window.CanvasRenderingContext2D.prototype.fillRect = function (x, y, w, h) + { + this.fillStyle = '#0f0'; + fillRect.call(this, x, y, w, h); + }; + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + _assertPixel(canvas, 50,25, 0,255,0,255); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/initial.reset.2dstate.html b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/initial.reset.2dstate.html index d0fd3d6..a99cb5d3 100644 --- a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/initial.reset.2dstate.html +++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/initial.reset.2dstate.html
@@ -19,84 +19,83 @@ var t = async_test("Resetting the canvas state resets 2D state variables"); _addTest(function(canvas, ctx) { -canvas.width = 100; -var default_val; + canvas.width = 100; + var default_val; -default_val = ctx.strokeStyle; -ctx.strokeStyle = "#ff0000"; -canvas.width = 100; -_assertSame(ctx.strokeStyle, default_val, "ctx.strokeStyle", "default_val"); + default_val = ctx.strokeStyle; + ctx.strokeStyle = "#ff0000"; + canvas.width = 100; + _assertSame(ctx.strokeStyle, default_val, "ctx.strokeStyle", "default_val"); -default_val = ctx.fillStyle; -ctx.fillStyle = "#ff0000"; -canvas.width = 100; -_assertSame(ctx.fillStyle, default_val, "ctx.fillStyle", "default_val"); + default_val = ctx.fillStyle; + ctx.fillStyle = "#ff0000"; + canvas.width = 100; + _assertSame(ctx.fillStyle, default_val, "ctx.fillStyle", "default_val"); -default_val = ctx.globalAlpha; -ctx.globalAlpha = 0.5; -canvas.width = 100; -_assertSame(ctx.globalAlpha, default_val, "ctx.globalAlpha", "default_val"); + default_val = ctx.globalAlpha; + ctx.globalAlpha = 0.5; + canvas.width = 100; + _assertSame(ctx.globalAlpha, default_val, "ctx.globalAlpha", "default_val"); -default_val = ctx.lineWidth; -ctx.lineWidth = 0.5; -canvas.width = 100; -_assertSame(ctx.lineWidth, default_val, "ctx.lineWidth", "default_val"); + default_val = ctx.lineWidth; + ctx.lineWidth = 0.5; + canvas.width = 100; + _assertSame(ctx.lineWidth, default_val, "ctx.lineWidth", "default_val"); -default_val = ctx.lineCap; -ctx.lineCap = "round"; -canvas.width = 100; -_assertSame(ctx.lineCap, default_val, "ctx.lineCap", "default_val"); + default_val = ctx.lineCap; + ctx.lineCap = "round"; + canvas.width = 100; + _assertSame(ctx.lineCap, default_val, "ctx.lineCap", "default_val"); -default_val = ctx.lineJoin; -ctx.lineJoin = "round"; -canvas.width = 100; -_assertSame(ctx.lineJoin, default_val, "ctx.lineJoin", "default_val"); + default_val = ctx.lineJoin; + ctx.lineJoin = "round"; + canvas.width = 100; + _assertSame(ctx.lineJoin, default_val, "ctx.lineJoin", "default_val"); -default_val = ctx.miterLimit; -ctx.miterLimit = 0.5; -canvas.width = 100; -_assertSame(ctx.miterLimit, default_val, "ctx.miterLimit", "default_val"); + default_val = ctx.miterLimit; + ctx.miterLimit = 0.5; + canvas.width = 100; + _assertSame(ctx.miterLimit, default_val, "ctx.miterLimit", "default_val"); -default_val = ctx.shadowOffsetX; -ctx.shadowOffsetX = 5; -canvas.width = 100; -_assertSame(ctx.shadowOffsetX, default_val, "ctx.shadowOffsetX", "default_val"); + default_val = ctx.shadowOffsetX; + ctx.shadowOffsetX = 5; + canvas.width = 100; + _assertSame(ctx.shadowOffsetX, default_val, "ctx.shadowOffsetX", "default_val"); -default_val = ctx.shadowOffsetY; -ctx.shadowOffsetY = 5; -canvas.width = 100; -_assertSame(ctx.shadowOffsetY, default_val, "ctx.shadowOffsetY", "default_val"); + default_val = ctx.shadowOffsetY; + ctx.shadowOffsetY = 5; + canvas.width = 100; + _assertSame(ctx.shadowOffsetY, default_val, "ctx.shadowOffsetY", "default_val"); -default_val = ctx.shadowBlur; -ctx.shadowBlur = 5; -canvas.width = 100; -_assertSame(ctx.shadowBlur, default_val, "ctx.shadowBlur", "default_val"); + default_val = ctx.shadowBlur; + ctx.shadowBlur = 5; + canvas.width = 100; + _assertSame(ctx.shadowBlur, default_val, "ctx.shadowBlur", "default_val"); -default_val = ctx.shadowColor; -ctx.shadowColor = "#ff0000"; -canvas.width = 100; -_assertSame(ctx.shadowColor, default_val, "ctx.shadowColor", "default_val"); + default_val = ctx.shadowColor; + ctx.shadowColor = "#ff0000"; + canvas.width = 100; + _assertSame(ctx.shadowColor, default_val, "ctx.shadowColor", "default_val"); -default_val = ctx.globalCompositeOperation; -ctx.globalCompositeOperation = "copy"; -canvas.width = 100; -_assertSame(ctx.globalCompositeOperation, default_val, "ctx.globalCompositeOperation", "default_val"); + default_val = ctx.globalCompositeOperation; + ctx.globalCompositeOperation = "copy"; + canvas.width = 100; + _assertSame(ctx.globalCompositeOperation, default_val, "ctx.globalCompositeOperation", "default_val"); -default_val = ctx.font; -ctx.font = "25px serif"; -canvas.width = 100; -_assertSame(ctx.font, default_val, "ctx.font", "default_val"); + default_val = ctx.font; + ctx.font = "25px serif"; + canvas.width = 100; + _assertSame(ctx.font, default_val, "ctx.font", "default_val"); -default_val = ctx.textAlign; -ctx.textAlign = "center"; -canvas.width = 100; -_assertSame(ctx.textAlign, default_val, "ctx.textAlign", "default_val"); + default_val = ctx.textAlign; + ctx.textAlign = "center"; + canvas.width = 100; + _assertSame(ctx.textAlign, default_val, "ctx.textAlign", "default_val"); -default_val = ctx.textBaseline; -ctx.textBaseline = "bottom"; -canvas.width = 100; -_assertSame(ctx.textBaseline, default_val, "ctx.textBaseline", "default_val"); - + default_val = ctx.textBaseline; + ctx.textBaseline = "bottom"; + canvas.width = 100; + _assertSame(ctx.textBaseline, default_val, "ctx.textBaseline", "default_val"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.decimal.html b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.decimal.html index d1954aa..613cf0e1 100644 --- a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.decimal.html +++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.decimal.html
@@ -19,12 +19,11 @@ var t = async_test("Parsing of non-negative integers"); _addTest(function(canvas, ctx) { -_assertSame(canvas.width, 100, "canvas.width", "100"); -_assertSame(canvas.height, 100, "canvas.height", "100"); -_assertSame(window.getComputedStyle(canvas, null).getPropertyValue("width"), "100px", "window.getComputedStyle(canvas, null).getPropertyValue(\"width\")", "\"100px\""); -_assertSame(canvas.getAttribute('width'), '100.999', "canvas.getAttribute('width')", "'100.999'"); -_assertSame(canvas.getAttribute('height'), '100.999', "canvas.getAttribute('height')", "'100.999'"); - + _assertSame(canvas.width, 100, "canvas.width", "100"); + _assertSame(canvas.height, 100, "canvas.height", "100"); + _assertSame(window.getComputedStyle(canvas, null).getPropertyValue("width"), "100px", "window.getComputedStyle(canvas, null).getPropertyValue(\"width\")", "\"100px\""); + _assertSame(canvas.getAttribute('width'), '100.999', "canvas.getAttribute('width')", "'100.999'"); + _assertSame(canvas.getAttribute('height'), '100.999', "canvas.getAttribute('height')", "'100.999'"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.em.html b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.em.html index 3fc93a5c..21d9e6a 100644 --- a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.em.html +++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.em.html
@@ -19,12 +19,11 @@ var t = async_test("Parsing of non-negative integers"); _addTest(function(canvas, ctx) { -_assertSame(canvas.width, 100, "canvas.width", "100"); -_assertSame(canvas.height, 100, "canvas.height", "100"); -_assertSame(window.getComputedStyle(canvas, null).getPropertyValue("width"), "100px", "window.getComputedStyle(canvas, null).getPropertyValue(\"width\")", "\"100px\""); -_assertSame(canvas.getAttribute('width'), '100em', "canvas.getAttribute('width')", "'100em'"); -_assertSame(canvas.getAttribute('height'), '100em', "canvas.getAttribute('height')", "'100em'"); - + _assertSame(canvas.width, 100, "canvas.width", "100"); + _assertSame(canvas.height, 100, "canvas.height", "100"); + _assertSame(window.getComputedStyle(canvas, null).getPropertyValue("width"), "100px", "window.getComputedStyle(canvas, null).getPropertyValue(\"width\")", "\"100px\""); + _assertSame(canvas.getAttribute('width'), '100em', "canvas.getAttribute('width')", "'100em'"); + _assertSame(canvas.getAttribute('height'), '100em', "canvas.getAttribute('height')", "'100em'"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.empty.html b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.empty.html index df58fcb..7198ccd 100644 --- a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.empty.html +++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.empty.html
@@ -19,11 +19,10 @@ var t = async_test("Parsing of non-negative integers"); _addTest(function(canvas, ctx) { -_assertSame(canvas.width, 300, "canvas.width", "300"); -_assertSame(canvas.height, 150, "canvas.height", "150"); -_assertSame(canvas.getAttribute('width'), '', "canvas.getAttribute('width')", "''"); -_assertSame(canvas.getAttribute('height'), '', "canvas.getAttribute('height')", "''"); - + _assertSame(canvas.width, 300, "canvas.width", "300"); + _assertSame(canvas.height, 150, "canvas.height", "150"); + _assertSame(canvas.getAttribute('width'), '', "canvas.getAttribute('width')", "''"); + _assertSame(canvas.getAttribute('height'), '', "canvas.getAttribute('height')", "''"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.exp.html b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.exp.html index f59ea05..c609939 100644 --- a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.exp.html +++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.exp.html
@@ -19,12 +19,11 @@ var t = async_test("Parsing of non-negative integers"); _addTest(function(canvas, ctx) { -_assertSame(canvas.width, 100, "canvas.width", "100"); -_assertSame(canvas.height, 100, "canvas.height", "100"); -_assertSame(window.getComputedStyle(canvas, null).getPropertyValue("width"), "100px", "window.getComputedStyle(canvas, null).getPropertyValue(\"width\")", "\"100px\""); -_assertSame(canvas.getAttribute('width'), '100e1', "canvas.getAttribute('width')", "'100e1'"); -_assertSame(canvas.getAttribute('height'), '100e1', "canvas.getAttribute('height')", "'100e1'"); - + _assertSame(canvas.width, 100, "canvas.width", "100"); + _assertSame(canvas.height, 100, "canvas.height", "100"); + _assertSame(window.getComputedStyle(canvas, null).getPropertyValue("width"), "100px", "window.getComputedStyle(canvas, null).getPropertyValue(\"width\")", "\"100px\""); + _assertSame(canvas.getAttribute('width'), '100e1', "canvas.getAttribute('width')", "'100e1'"); + _assertSame(canvas.getAttribute('height'), '100e1', "canvas.getAttribute('height')", "'100e1'"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.hex.html b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.hex.html index 1b9b741..a00bb3c 100644 --- a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.hex.html +++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.hex.html
@@ -19,12 +19,11 @@ var t = async_test("Parsing of non-negative integers"); _addTest(function(canvas, ctx) { -_assertSame(canvas.width, 0, "canvas.width", "0"); -_assertSame(canvas.height, 0, "canvas.height", "0"); -_assertSame(window.getComputedStyle(canvas, null).getPropertyValue("width"), "0px", "window.getComputedStyle(canvas, null).getPropertyValue(\"width\")", "\"0px\""); -_assertSame(canvas.getAttribute('width'), '0x100', "canvas.getAttribute('width')", "'0x100'"); -_assertSame(canvas.getAttribute('height'), '0x100', "canvas.getAttribute('height')", "'0x100'"); - + _assertSame(canvas.width, 0, "canvas.width", "0"); + _assertSame(canvas.height, 0, "canvas.height", "0"); + _assertSame(window.getComputedStyle(canvas, null).getPropertyValue("width"), "0px", "window.getComputedStyle(canvas, null).getPropertyValue(\"width\")", "\"0px\""); + _assertSame(canvas.getAttribute('width'), '0x100', "canvas.getAttribute('width')", "'0x100'"); + _assertSame(canvas.getAttribute('height'), '0x100', "canvas.getAttribute('height')", "'0x100'"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.junk.html b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.junk.html index 72e2edb..7b4f837 100644 --- a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.junk.html +++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.junk.html
@@ -19,11 +19,10 @@ var t = async_test("Parsing of non-negative integers"); _addTest(function(canvas, ctx) { -_assertSame(canvas.width, 300, "canvas.width", "300"); -_assertSame(canvas.height, 150, "canvas.height", "150"); -_assertSame(canvas.getAttribute('width'), '#!?', "canvas.getAttribute('width')", "'#!?'"); -_assertSame(canvas.getAttribute('height'), '#!?', "canvas.getAttribute('height')", "'#!?'"); - + _assertSame(canvas.width, 300, "canvas.width", "300"); + _assertSame(canvas.height, 150, "canvas.height", "150"); + _assertSame(canvas.getAttribute('width'), '#!?', "canvas.getAttribute('width')", "'#!?'"); + _assertSame(canvas.getAttribute('height'), '#!?', "canvas.getAttribute('height')", "'#!?'"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.minus.html b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.minus.html index 779879d..6d6560b 100644 --- a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.minus.html +++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.minus.html
@@ -19,11 +19,10 @@ var t = async_test("Parsing of non-negative integers"); _addTest(function(canvas, ctx) { -_assertSame(canvas.width, 300, "canvas.width", "300"); -_assertSame(canvas.height, 150, "canvas.height", "150"); -_assertSame(canvas.getAttribute('width'), '-100', "canvas.getAttribute('width')", "'-100'"); -_assertSame(canvas.getAttribute('height'), '-100', "canvas.getAttribute('height')", "'-100'"); - + _assertSame(canvas.width, 300, "canvas.width", "300"); + _assertSame(canvas.height, 150, "canvas.height", "150"); + _assertSame(canvas.getAttribute('width'), '-100', "canvas.getAttribute('width')", "'-100'"); + _assertSame(canvas.getAttribute('height'), '-100', "canvas.getAttribute('height')", "'-100'"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.octal.html b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.octal.html index b795d16..e1f42ea 100644 --- a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.octal.html +++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.octal.html
@@ -19,12 +19,11 @@ var t = async_test("Parsing of non-negative integers"); _addTest(function(canvas, ctx) { -_assertSame(canvas.width, 100, "canvas.width", "100"); -_assertSame(canvas.height, 100, "canvas.height", "100"); -_assertSame(window.getComputedStyle(canvas, null).getPropertyValue("width"), "100px", "window.getComputedStyle(canvas, null).getPropertyValue(\"width\")", "\"100px\""); -_assertSame(canvas.getAttribute('width'), '0100', "canvas.getAttribute('width')", "'0100'"); -_assertSame(canvas.getAttribute('height'), '0100', "canvas.getAttribute('height')", "'0100'"); - + _assertSame(canvas.width, 100, "canvas.width", "100"); + _assertSame(canvas.height, 100, "canvas.height", "100"); + _assertSame(window.getComputedStyle(canvas, null).getPropertyValue("width"), "100px", "window.getComputedStyle(canvas, null).getPropertyValue(\"width\")", "\"100px\""); + _assertSame(canvas.getAttribute('width'), '0100', "canvas.getAttribute('width')", "'0100'"); + _assertSame(canvas.getAttribute('height'), '0100', "canvas.getAttribute('height')", "'0100'"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.onlyspace.html b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.onlyspace.html index 3a12532..20721dcc 100644 --- a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.onlyspace.html +++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.onlyspace.html
@@ -19,11 +19,10 @@ var t = async_test("Parsing of non-negative integers"); _addTest(function(canvas, ctx) { -_assertSame(canvas.width, 300, "canvas.width", "300"); -_assertSame(canvas.height, 150, "canvas.height", "150"); -_assertSame(canvas.getAttribute('width'), ' ', "canvas.getAttribute('width')", "' '"); -_assertSame(canvas.getAttribute('height'), ' ', "canvas.getAttribute('height')", "' '"); - + _assertSame(canvas.width, 300, "canvas.width", "300"); + _assertSame(canvas.height, 150, "canvas.height", "150"); + _assertSame(canvas.getAttribute('width'), ' ', "canvas.getAttribute('width')", "' '"); + _assertSame(canvas.getAttribute('height'), ' ', "canvas.getAttribute('height')", "' '"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.percent.html b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.percent.html index bcaaa0e8..860703c 100644 --- a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.percent.html +++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.percent.html
@@ -19,12 +19,11 @@ var t = async_test("Parsing of non-negative integers"); _addTest(function(canvas, ctx) { -_assertSame(canvas.width, 100, "canvas.width", "100"); -_assertSame(canvas.height, 100, "canvas.height", "100"); -_assertSame(window.getComputedStyle(canvas, null).getPropertyValue("width"), "100px", "window.getComputedStyle(canvas, null).getPropertyValue(\"width\")", "\"100px\""); -_assertSame(canvas.getAttribute('width'), '100%', "canvas.getAttribute('width')", "'100%'"); -_assertSame(canvas.getAttribute('height'), '100%', "canvas.getAttribute('height')", "'100%'"); - + _assertSame(canvas.width, 100, "canvas.width", "100"); + _assertSame(canvas.height, 100, "canvas.height", "100"); + _assertSame(window.getComputedStyle(canvas, null).getPropertyValue("width"), "100px", "window.getComputedStyle(canvas, null).getPropertyValue(\"width\")", "\"100px\""); + _assertSame(canvas.getAttribute('width'), '100%', "canvas.getAttribute('width')", "'100%'"); + _assertSame(canvas.getAttribute('height'), '100%', "canvas.getAttribute('height')", "'100%'"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.plus.html b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.plus.html index 5ef71702..2b600941 100644 --- a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.plus.html +++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.plus.html
@@ -19,12 +19,11 @@ var t = async_test("Parsing of non-negative integers"); _addTest(function(canvas, ctx) { -_assertSame(canvas.width, 100, "canvas.width", "100"); -_assertSame(canvas.height, 100, "canvas.height", "100"); -_assertSame(window.getComputedStyle(canvas, null).getPropertyValue("width"), "100px", "window.getComputedStyle(canvas, null).getPropertyValue(\"width\")", "\"100px\""); -_assertSame(canvas.getAttribute('width'), '+100', "canvas.getAttribute('width')", "'+100'"); -_assertSame(canvas.getAttribute('height'), '+100', "canvas.getAttribute('height')", "'+100'"); - + _assertSame(canvas.width, 100, "canvas.width", "100"); + _assertSame(canvas.height, 100, "canvas.height", "100"); + _assertSame(window.getComputedStyle(canvas, null).getPropertyValue("width"), "100px", "window.getComputedStyle(canvas, null).getPropertyValue(\"width\")", "\"100px\""); + _assertSame(canvas.getAttribute('width'), '+100', "canvas.getAttribute('width')", "'+100'"); + _assertSame(canvas.getAttribute('height'), '+100', "canvas.getAttribute('height')", "'+100'"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.space.html b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.space.html index 0f12f4dd..34cae4d4 100644 --- a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.space.html +++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.space.html
@@ -19,12 +19,11 @@ var t = async_test("Parsing of non-negative integers"); _addTest(function(canvas, ctx) { -_assertSame(canvas.width, 100, "canvas.width", "100"); -_assertSame(canvas.height, 100, "canvas.height", "100"); -_assertSame(window.getComputedStyle(canvas, null).getPropertyValue("width"), "100px", "window.getComputedStyle(canvas, null).getPropertyValue(\"width\")", "\"100px\""); -_assertSame(canvas.getAttribute('width'), ' 100', "canvas.getAttribute('width')", "' 100'"); -_assertSame(canvas.getAttribute('height'), ' 100', "canvas.getAttribute('height')", "' 100'"); - + _assertSame(canvas.width, 100, "canvas.width", "100"); + _assertSame(canvas.height, 100, "canvas.height", "100"); + _assertSame(window.getComputedStyle(canvas, null).getPropertyValue("width"), "100px", "window.getComputedStyle(canvas, null).getPropertyValue(\"width\")", "\"100px\""); + _assertSame(canvas.getAttribute('width'), ' 100', "canvas.getAttribute('width')", "' 100'"); + _assertSame(canvas.getAttribute('height'), ' 100', "canvas.getAttribute('height')", "' 100'"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.trailingjunk.html b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.trailingjunk.html index 287887b..e2b92ee 100644 --- a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.trailingjunk.html +++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.trailingjunk.html
@@ -19,12 +19,11 @@ var t = async_test("Parsing of non-negative integers"); _addTest(function(canvas, ctx) { -_assertSame(canvas.width, 100, "canvas.width", "100"); -_assertSame(canvas.height, 100, "canvas.height", "100"); -_assertSame(window.getComputedStyle(canvas, null).getPropertyValue("width"), "100px", "window.getComputedStyle(canvas, null).getPropertyValue(\"width\")", "\"100px\""); -_assertSame(canvas.getAttribute('width'), '100#!?', "canvas.getAttribute('width')", "'100#!?'"); -_assertSame(canvas.getAttribute('height'), '100#!?', "canvas.getAttribute('height')", "'100#!?'"); - + _assertSame(canvas.width, 100, "canvas.width", "100"); + _assertSame(canvas.height, 100, "canvas.height", "100"); + _assertSame(window.getComputedStyle(canvas, null).getPropertyValue("width"), "100px", "window.getComputedStyle(canvas, null).getPropertyValue(\"width\")", "\"100px\""); + _assertSame(canvas.getAttribute('width'), '100#!?', "canvas.getAttribute('width')", "'100#!?'"); + _assertSame(canvas.getAttribute('height'), '100#!?', "canvas.getAttribute('height')", "'100#!?'"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.whitespace.html b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.whitespace.html index 13c5fbbea..c7a76f9 100644 --- a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.whitespace.html +++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.whitespace.html
@@ -21,12 +21,11 @@ var t = async_test("Parsing of non-negative integers"); _addTest(function(canvas, ctx) { -_assertSame(canvas.width, 100, "canvas.width", "100"); -_assertSame(canvas.height, 100, "canvas.height", "100"); -_assertSame(window.getComputedStyle(canvas, null).getPropertyValue("width"), "100px", "window.getComputedStyle(canvas, null).getPropertyValue(\"width\")", "\"100px\""); -_assertSame(canvas.getAttribute('width'), '\r\n\t\x0c100', "canvas.getAttribute('width')", "'\\r\\n\\t\\x0c100'"); -_assertSame(canvas.getAttribute('height'), '\r\n\t\x0c100', "canvas.getAttribute('height')", "'\\r\\n\\t\\x0c100'"); - + _assertSame(canvas.width, 100, "canvas.width", "100"); + _assertSame(canvas.height, 100, "canvas.height", "100"); + _assertSame(window.getComputedStyle(canvas, null).getPropertyValue("width"), "100px", "window.getComputedStyle(canvas, null).getPropertyValue(\"width\")", "\"100px\""); + _assertSame(canvas.getAttribute('width'), '\r\n\t\x0c100', "canvas.getAttribute('width')", "'\\r\\n\\t\\x0c100'"); + _assertSame(canvas.getAttribute('height'), '\r\n\t\x0c100', "canvas.getAttribute('height')", "'\\r\\n\\t\\x0c100'"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.zero.html b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.zero.html index fa05603..0f7a0415 100644 --- a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.zero.html +++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.zero.html
@@ -19,12 +19,11 @@ var t = async_test("Parsing of non-negative integers"); _addTest(function(canvas, ctx) { -_assertSame(canvas.width, 0, "canvas.width", "0"); -_assertSame(canvas.height, 0, "canvas.height", "0"); -_assertSame(window.getComputedStyle(canvas, null).getPropertyValue("width"), "0px", "window.getComputedStyle(canvas, null).getPropertyValue(\"width\")", "\"0px\""); -_assertSame(canvas.getAttribute('width'), '0', "canvas.getAttribute('width')", "'0'"); -_assertSame(canvas.getAttribute('height'), '0', "canvas.getAttribute('height')", "'0'"); - + _assertSame(canvas.width, 0, "canvas.width", "0"); + _assertSame(canvas.height, 0, "canvas.height", "0"); + _assertSame(window.getComputedStyle(canvas, null).getPropertyValue("width"), "0px", "window.getComputedStyle(canvas, null).getPropertyValue(\"width\")", "\"0px\""); + _assertSame(canvas.getAttribute('width'), '0', "canvas.getAttribute('width')", "'0'"); + _assertSame(canvas.getAttribute('height'), '0', "canvas.getAttribute('height')", "'0'"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.decimal.html b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.decimal.html index e2eaa1f..9f0b4b1d 100644 --- a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.decimal.html +++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.decimal.html
@@ -19,14 +19,13 @@ var t = async_test("Parsing of non-negative integers in setAttribute"); _addTest(function(canvas, ctx) { -canvas.setAttribute('width', '100.999'); -canvas.setAttribute('height', '100.999'); -_assertSame(canvas.width, 100, "canvas.width", "100"); -_assertSame(canvas.height, 100, "canvas.height", "100"); -_assertSame(window.getComputedStyle(canvas, null).getPropertyValue("width"), "100px", "window.getComputedStyle(canvas, null).getPropertyValue(\"width\")", "\"100px\""); -_assertSame(canvas.getAttribute('width'), '100.999', "canvas.getAttribute('width')", "'100.999'"); -_assertSame(canvas.getAttribute('height'), '100.999', "canvas.getAttribute('height')", "'100.999'"); - + canvas.setAttribute('width', '100.999'); + canvas.setAttribute('height', '100.999'); + _assertSame(canvas.width, 100, "canvas.width", "100"); + _assertSame(canvas.height, 100, "canvas.height", "100"); + _assertSame(window.getComputedStyle(canvas, null).getPropertyValue("width"), "100px", "window.getComputedStyle(canvas, null).getPropertyValue(\"width\")", "\"100px\""); + _assertSame(canvas.getAttribute('width'), '100.999', "canvas.getAttribute('width')", "'100.999'"); + _assertSame(canvas.getAttribute('height'), '100.999', "canvas.getAttribute('height')", "'100.999'"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.em.html b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.em.html index a806ad5..df0eee7 100644 --- a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.em.html +++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.em.html
@@ -19,14 +19,13 @@ var t = async_test("Parsing of non-negative integers in setAttribute"); _addTest(function(canvas, ctx) { -canvas.setAttribute('width', '100em'); -canvas.setAttribute('height', '100em'); -_assertSame(canvas.width, 100, "canvas.width", "100"); -_assertSame(canvas.height, 100, "canvas.height", "100"); -_assertSame(window.getComputedStyle(canvas, null).getPropertyValue("width"), "100px", "window.getComputedStyle(canvas, null).getPropertyValue(\"width\")", "\"100px\""); -_assertSame(canvas.getAttribute('width'), '100em', "canvas.getAttribute('width')", "'100em'"); -_assertSame(canvas.getAttribute('height'), '100em', "canvas.getAttribute('height')", "'100em'"); - + canvas.setAttribute('width', '100em'); + canvas.setAttribute('height', '100em'); + _assertSame(canvas.width, 100, "canvas.width", "100"); + _assertSame(canvas.height, 100, "canvas.height", "100"); + _assertSame(window.getComputedStyle(canvas, null).getPropertyValue("width"), "100px", "window.getComputedStyle(canvas, null).getPropertyValue(\"width\")", "\"100px\""); + _assertSame(canvas.getAttribute('width'), '100em', "canvas.getAttribute('width')", "'100em'"); + _assertSame(canvas.getAttribute('height'), '100em', "canvas.getAttribute('height')", "'100em'"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.empty.html b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.empty.html index fc9690d..37e02142 100644 --- a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.empty.html +++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.empty.html
@@ -19,13 +19,12 @@ var t = async_test("Parsing of non-negative integers in setAttribute"); _addTest(function(canvas, ctx) { -canvas.setAttribute('width', ''); -canvas.setAttribute('height', ''); -_assertSame(canvas.width, 300, "canvas.width", "300"); -_assertSame(canvas.height, 150, "canvas.height", "150"); -_assertSame(canvas.getAttribute('width'), '', "canvas.getAttribute('width')", "''"); -_assertSame(canvas.getAttribute('height'), '', "canvas.getAttribute('height')", "''"); - + canvas.setAttribute('width', ''); + canvas.setAttribute('height', ''); + _assertSame(canvas.width, 300, "canvas.width", "300"); + _assertSame(canvas.height, 150, "canvas.height", "150"); + _assertSame(canvas.getAttribute('width'), '', "canvas.getAttribute('width')", "''"); + _assertSame(canvas.getAttribute('height'), '', "canvas.getAttribute('height')", "''"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.exp.html b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.exp.html index c36d3eca..943b98b 100644 --- a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.exp.html +++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.exp.html
@@ -19,14 +19,13 @@ var t = async_test("Parsing of non-negative integers in setAttribute"); _addTest(function(canvas, ctx) { -canvas.setAttribute('width', '100e1'); -canvas.setAttribute('height', '100e1'); -_assertSame(canvas.width, 100, "canvas.width", "100"); -_assertSame(canvas.height, 100, "canvas.height", "100"); -_assertSame(window.getComputedStyle(canvas, null).getPropertyValue("width"), "100px", "window.getComputedStyle(canvas, null).getPropertyValue(\"width\")", "\"100px\""); -_assertSame(canvas.getAttribute('width'), '100e1', "canvas.getAttribute('width')", "'100e1'"); -_assertSame(canvas.getAttribute('height'), '100e1', "canvas.getAttribute('height')", "'100e1'"); - + canvas.setAttribute('width', '100e1'); + canvas.setAttribute('height', '100e1'); + _assertSame(canvas.width, 100, "canvas.width", "100"); + _assertSame(canvas.height, 100, "canvas.height", "100"); + _assertSame(window.getComputedStyle(canvas, null).getPropertyValue("width"), "100px", "window.getComputedStyle(canvas, null).getPropertyValue(\"width\")", "\"100px\""); + _assertSame(canvas.getAttribute('width'), '100e1', "canvas.getAttribute('width')", "'100e1'"); + _assertSame(canvas.getAttribute('height'), '100e1', "canvas.getAttribute('height')", "'100e1'"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.hex.html b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.hex.html index ee3669a..a73ff5ec 100644 --- a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.hex.html +++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.hex.html
@@ -19,14 +19,13 @@ var t = async_test("Parsing of non-negative integers in setAttribute"); _addTest(function(canvas, ctx) { -canvas.setAttribute('width', '0x100'); -canvas.setAttribute('height', '0x100'); -_assertSame(canvas.width, 0, "canvas.width", "0"); -_assertSame(canvas.height, 0, "canvas.height", "0"); -_assertSame(window.getComputedStyle(canvas, null).getPropertyValue("width"), "0px", "window.getComputedStyle(canvas, null).getPropertyValue(\"width\")", "\"0px\""); -_assertSame(canvas.getAttribute('width'), '0x100', "canvas.getAttribute('width')", "'0x100'"); -_assertSame(canvas.getAttribute('height'), '0x100', "canvas.getAttribute('height')", "'0x100'"); - + canvas.setAttribute('width', '0x100'); + canvas.setAttribute('height', '0x100'); + _assertSame(canvas.width, 0, "canvas.width", "0"); + _assertSame(canvas.height, 0, "canvas.height", "0"); + _assertSame(window.getComputedStyle(canvas, null).getPropertyValue("width"), "0px", "window.getComputedStyle(canvas, null).getPropertyValue(\"width\")", "\"0px\""); + _assertSame(canvas.getAttribute('width'), '0x100', "canvas.getAttribute('width')", "'0x100'"); + _assertSame(canvas.getAttribute('height'), '0x100', "canvas.getAttribute('height')", "'0x100'"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.junk.html b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.junk.html index e04166b..607892d 100644 --- a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.junk.html +++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.junk.html
@@ -19,13 +19,12 @@ var t = async_test("Parsing of non-negative integers in setAttribute"); _addTest(function(canvas, ctx) { -canvas.setAttribute('width', '#!?'); -canvas.setAttribute('height', '#!?'); -_assertSame(canvas.width, 300, "canvas.width", "300"); -_assertSame(canvas.height, 150, "canvas.height", "150"); -_assertSame(canvas.getAttribute('width'), '#!?', "canvas.getAttribute('width')", "'#!?'"); -_assertSame(canvas.getAttribute('height'), '#!?', "canvas.getAttribute('height')", "'#!?'"); - + canvas.setAttribute('width', '#!?'); + canvas.setAttribute('height', '#!?'); + _assertSame(canvas.width, 300, "canvas.width", "300"); + _assertSame(canvas.height, 150, "canvas.height", "150"); + _assertSame(canvas.getAttribute('width'), '#!?', "canvas.getAttribute('width')", "'#!?'"); + _assertSame(canvas.getAttribute('height'), '#!?', "canvas.getAttribute('height')", "'#!?'"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.minus.html b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.minus.html index 159a2934..4fd49e5 100644 --- a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.minus.html +++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.minus.html
@@ -19,13 +19,12 @@ var t = async_test("Parsing of non-negative integers in setAttribute"); _addTest(function(canvas, ctx) { -canvas.setAttribute('width', '-100'); -canvas.setAttribute('height', '-100'); -_assertSame(canvas.width, 300, "canvas.width", "300"); -_assertSame(canvas.height, 150, "canvas.height", "150"); -_assertSame(canvas.getAttribute('width'), '-100', "canvas.getAttribute('width')", "'-100'"); -_assertSame(canvas.getAttribute('height'), '-100', "canvas.getAttribute('height')", "'-100'"); - + canvas.setAttribute('width', '-100'); + canvas.setAttribute('height', '-100'); + _assertSame(canvas.width, 300, "canvas.width", "300"); + _assertSame(canvas.height, 150, "canvas.height", "150"); + _assertSame(canvas.getAttribute('width'), '-100', "canvas.getAttribute('width')", "'-100'"); + _assertSame(canvas.getAttribute('height'), '-100', "canvas.getAttribute('height')", "'-100'"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.octal.html b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.octal.html index 9419b44..d841413 100644 --- a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.octal.html +++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.octal.html
@@ -19,14 +19,13 @@ var t = async_test("Parsing of non-negative integers in setAttribute"); _addTest(function(canvas, ctx) { -canvas.setAttribute('width', '0100'); -canvas.setAttribute('height', '0100'); -_assertSame(canvas.width, 100, "canvas.width", "100"); -_assertSame(canvas.height, 100, "canvas.height", "100"); -_assertSame(window.getComputedStyle(canvas, null).getPropertyValue("width"), "100px", "window.getComputedStyle(canvas, null).getPropertyValue(\"width\")", "\"100px\""); -_assertSame(canvas.getAttribute('width'), '0100', "canvas.getAttribute('width')", "'0100'"); -_assertSame(canvas.getAttribute('height'), '0100', "canvas.getAttribute('height')", "'0100'"); - + canvas.setAttribute('width', '0100'); + canvas.setAttribute('height', '0100'); + _assertSame(canvas.width, 100, "canvas.width", "100"); + _assertSame(canvas.height, 100, "canvas.height", "100"); + _assertSame(window.getComputedStyle(canvas, null).getPropertyValue("width"), "100px", "window.getComputedStyle(canvas, null).getPropertyValue(\"width\")", "\"100px\""); + _assertSame(canvas.getAttribute('width'), '0100', "canvas.getAttribute('width')", "'0100'"); + _assertSame(canvas.getAttribute('height'), '0100', "canvas.getAttribute('height')", "'0100'"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.onlyspace.html b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.onlyspace.html index 3e13429..7959c30 100644 --- a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.onlyspace.html +++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.onlyspace.html
@@ -19,13 +19,12 @@ var t = async_test("Parsing of non-negative integers in setAttribute"); _addTest(function(canvas, ctx) { -canvas.setAttribute('width', ' '); -canvas.setAttribute('height', ' '); -_assertSame(canvas.width, 300, "canvas.width", "300"); -_assertSame(canvas.height, 150, "canvas.height", "150"); -_assertSame(canvas.getAttribute('width'), ' ', "canvas.getAttribute('width')", "' '"); -_assertSame(canvas.getAttribute('height'), ' ', "canvas.getAttribute('height')", "' '"); - + canvas.setAttribute('width', ' '); + canvas.setAttribute('height', ' '); + _assertSame(canvas.width, 300, "canvas.width", "300"); + _assertSame(canvas.height, 150, "canvas.height", "150"); + _assertSame(canvas.getAttribute('width'), ' ', "canvas.getAttribute('width')", "' '"); + _assertSame(canvas.getAttribute('height'), ' ', "canvas.getAttribute('height')", "' '"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.percent.html b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.percent.html index 03520e8..6fed0cda 100644 --- a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.percent.html +++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.percent.html
@@ -19,14 +19,13 @@ var t = async_test("Parsing of non-negative integers in setAttribute"); _addTest(function(canvas, ctx) { -canvas.setAttribute('width', '100%'); -canvas.setAttribute('height', '100%'); -_assertSame(canvas.width, 100, "canvas.width", "100"); -_assertSame(canvas.height, 100, "canvas.height", "100"); -_assertSame(window.getComputedStyle(canvas, null).getPropertyValue("width"), "100px", "window.getComputedStyle(canvas, null).getPropertyValue(\"width\")", "\"100px\""); -_assertSame(canvas.getAttribute('width'), '100%', "canvas.getAttribute('width')", "'100%'"); -_assertSame(canvas.getAttribute('height'), '100%', "canvas.getAttribute('height')", "'100%'"); - + canvas.setAttribute('width', '100%'); + canvas.setAttribute('height', '100%'); + _assertSame(canvas.width, 100, "canvas.width", "100"); + _assertSame(canvas.height, 100, "canvas.height", "100"); + _assertSame(window.getComputedStyle(canvas, null).getPropertyValue("width"), "100px", "window.getComputedStyle(canvas, null).getPropertyValue(\"width\")", "\"100px\""); + _assertSame(canvas.getAttribute('width'), '100%', "canvas.getAttribute('width')", "'100%'"); + _assertSame(canvas.getAttribute('height'), '100%', "canvas.getAttribute('height')", "'100%'"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.plus.html b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.plus.html index bcf2492..4be39bf1 100644 --- a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.plus.html +++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.plus.html
@@ -19,14 +19,13 @@ var t = async_test("Parsing of non-negative integers in setAttribute"); _addTest(function(canvas, ctx) { -canvas.setAttribute('width', '+100'); -canvas.setAttribute('height', '+100'); -_assertSame(canvas.width, 100, "canvas.width", "100"); -_assertSame(canvas.height, 100, "canvas.height", "100"); -_assertSame(window.getComputedStyle(canvas, null).getPropertyValue("width"), "100px", "window.getComputedStyle(canvas, null).getPropertyValue(\"width\")", "\"100px\""); -_assertSame(canvas.getAttribute('width'), '+100', "canvas.getAttribute('width')", "'+100'"); -_assertSame(canvas.getAttribute('height'), '+100', "canvas.getAttribute('height')", "'+100'"); - + canvas.setAttribute('width', '+100'); + canvas.setAttribute('height', '+100'); + _assertSame(canvas.width, 100, "canvas.width", "100"); + _assertSame(canvas.height, 100, "canvas.height", "100"); + _assertSame(window.getComputedStyle(canvas, null).getPropertyValue("width"), "100px", "window.getComputedStyle(canvas, null).getPropertyValue(\"width\")", "\"100px\""); + _assertSame(canvas.getAttribute('width'), '+100', "canvas.getAttribute('width')", "'+100'"); + _assertSame(canvas.getAttribute('height'), '+100', "canvas.getAttribute('height')", "'+100'"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.space.html b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.space.html index 5920f67..3cc0078 100644 --- a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.space.html +++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.space.html
@@ -19,14 +19,13 @@ var t = async_test("Parsing of non-negative integers in setAttribute"); _addTest(function(canvas, ctx) { -canvas.setAttribute('width', ' 100'); -canvas.setAttribute('height', ' 100'); -_assertSame(canvas.width, 100, "canvas.width", "100"); -_assertSame(canvas.height, 100, "canvas.height", "100"); -_assertSame(window.getComputedStyle(canvas, null).getPropertyValue("width"), "100px", "window.getComputedStyle(canvas, null).getPropertyValue(\"width\")", "\"100px\""); -_assertSame(canvas.getAttribute('width'), ' 100', "canvas.getAttribute('width')", "' 100'"); -_assertSame(canvas.getAttribute('height'), ' 100', "canvas.getAttribute('height')", "' 100'"); - + canvas.setAttribute('width', ' 100'); + canvas.setAttribute('height', ' 100'); + _assertSame(canvas.width, 100, "canvas.width", "100"); + _assertSame(canvas.height, 100, "canvas.height", "100"); + _assertSame(window.getComputedStyle(canvas, null).getPropertyValue("width"), "100px", "window.getComputedStyle(canvas, null).getPropertyValue(\"width\")", "\"100px\""); + _assertSame(canvas.getAttribute('width'), ' 100', "canvas.getAttribute('width')", "' 100'"); + _assertSame(canvas.getAttribute('height'), ' 100', "canvas.getAttribute('height')", "' 100'"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.trailingjunk.html b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.trailingjunk.html index cb76b7a..4c9b7ce 100644 --- a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.trailingjunk.html +++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.trailingjunk.html
@@ -19,14 +19,13 @@ var t = async_test("Parsing of non-negative integers in setAttribute"); _addTest(function(canvas, ctx) { -canvas.setAttribute('width', '100#!?'); -canvas.setAttribute('height', '100#!?'); -_assertSame(canvas.width, 100, "canvas.width", "100"); -_assertSame(canvas.height, 100, "canvas.height", "100"); -_assertSame(window.getComputedStyle(canvas, null).getPropertyValue("width"), "100px", "window.getComputedStyle(canvas, null).getPropertyValue(\"width\")", "\"100px\""); -_assertSame(canvas.getAttribute('width'), '100#!?', "canvas.getAttribute('width')", "'100#!?'"); -_assertSame(canvas.getAttribute('height'), '100#!?', "canvas.getAttribute('height')", "'100#!?'"); - + canvas.setAttribute('width', '100#!?'); + canvas.setAttribute('height', '100#!?'); + _assertSame(canvas.width, 100, "canvas.width", "100"); + _assertSame(canvas.height, 100, "canvas.height", "100"); + _assertSame(window.getComputedStyle(canvas, null).getPropertyValue("width"), "100px", "window.getComputedStyle(canvas, null).getPropertyValue(\"width\")", "\"100px\""); + _assertSame(canvas.getAttribute('width'), '100#!?', "canvas.getAttribute('width')", "'100#!?'"); + _assertSame(canvas.getAttribute('height'), '100#!?', "canvas.getAttribute('height')", "'100#!?'"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.whitespace.html b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.whitespace.html index b7c0ed6..8f6ecc9 100644 --- a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.whitespace.html +++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.whitespace.html
@@ -19,14 +19,13 @@ var t = async_test("Parsing of non-negative integers in setAttribute"); _addTest(function(canvas, ctx) { -canvas.setAttribute('width', '\r\n\t\x0c100'); -canvas.setAttribute('height', '\r\n\t\x0c100'); -_assertSame(canvas.width, 100, "canvas.width", "100"); -_assertSame(canvas.height, 100, "canvas.height", "100"); -_assertSame(window.getComputedStyle(canvas, null).getPropertyValue("width"), "100px", "window.getComputedStyle(canvas, null).getPropertyValue(\"width\")", "\"100px\""); -_assertSame(canvas.getAttribute('width'), '\r\n\t\x0c100', "canvas.getAttribute('width')", "'\\r\\n\\t\\x0c100'"); -_assertSame(canvas.getAttribute('height'), '\r\n\t\x0c100', "canvas.getAttribute('height')", "'\\r\\n\\t\\x0c100'"); - + canvas.setAttribute('width', '\r\n\t\x0c100'); + canvas.setAttribute('height', '\r\n\t\x0c100'); + _assertSame(canvas.width, 100, "canvas.width", "100"); + _assertSame(canvas.height, 100, "canvas.height", "100"); + _assertSame(window.getComputedStyle(canvas, null).getPropertyValue("width"), "100px", "window.getComputedStyle(canvas, null).getPropertyValue(\"width\")", "\"100px\""); + _assertSame(canvas.getAttribute('width'), '\r\n\t\x0c100', "canvas.getAttribute('width')", "'\\r\\n\\t\\x0c100'"); + _assertSame(canvas.getAttribute('height'), '\r\n\t\x0c100', "canvas.getAttribute('height')", "'\\r\\n\\t\\x0c100'"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.zero.html b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.zero.html index 0a919e9..2bbad823 100644 --- a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.zero.html +++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.zero.html
@@ -19,14 +19,13 @@ var t = async_test("Parsing of non-negative integers in setAttribute"); _addTest(function(canvas, ctx) { -canvas.setAttribute('width', '0'); -canvas.setAttribute('height', '0'); -_assertSame(canvas.width, 0, "canvas.width", "0"); -_assertSame(canvas.height, 0, "canvas.height", "0"); -_assertSame(window.getComputedStyle(canvas, null).getPropertyValue("width"), "0px", "window.getComputedStyle(canvas, null).getPropertyValue(\"width\")", "\"0px\""); -_assertSame(canvas.getAttribute('width'), '0', "canvas.getAttribute('width')", "'0'"); -_assertSame(canvas.getAttribute('height'), '0', "canvas.getAttribute('height')", "'0'"); - + canvas.setAttribute('width', '0'); + canvas.setAttribute('height', '0'); + _assertSame(canvas.width, 0, "canvas.width", "0"); + _assertSame(canvas.height, 0, "canvas.height", "0"); + _assertSame(window.getComputedStyle(canvas, null).getPropertyValue("width"), "0px", "window.getComputedStyle(canvas, null).getPropertyValue(\"width\")", "\"0px\""); + _assertSame(canvas.getAttribute('width'), '0', "canvas.getAttribute('width')", "'0'"); + _assertSame(canvas.getAttribute('height'), '0', "canvas.getAttribute('height')", "'0'"); }); </script>
diff --git a/third_party/blink/web_tests/external/wpt/notifications/constructor-basic.https-expected.txt b/third_party/blink/web_tests/external/wpt/notifications/constructor-basic.https-expected.txt new file mode 100644 index 0000000..1ad81d46 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/notifications/constructor-basic.https-expected.txt
@@ -0,0 +1,6 @@ +This is a testharness.js-based test. +PASS Called the notification constructor with one argument. +FAIL Constructing a notification without a NotificationOptions defaults to null. assert_equals: Expected null by default expected (object) null but got (boolean) false +FAIL constructing a notification with a NotificationOptions dictionary correctly sets and reflects the silent attribute. assert_equals: Expected silent to be null when initialized with null. expected (object) null but got (boolean) false +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/external/wpt/notifications/constructor-basic.https.html b/third_party/blink/web_tests/external/wpt/notifications/constructor-basic.https.html index 3f704de..df959b92 100644 --- a/third_party/blink/web_tests/external/wpt/notifications/constructor-basic.https.html +++ b/third_party/blink/web_tests/external/wpt/notifications/constructor-basic.https.html
@@ -13,4 +13,34 @@ notification.close() } }, "Called the notification constructor with one argument.") + +test(() => { + assert_equals( + new Notification("a").silent, + null, + "Expected null by default" + ); +}, "Constructing a notification without a NotificationOptions defaults to null."); + +test(() => { + for (const silent of [null, undefined]) { + assert_equals( + new Notification("a", { silent }).silent, + null, + `Expected silent to be null when initialized with ${silent}.` + ); + } + for (const silent of [true, 1, 100, {}, [], "a string"]) { + assert_true( + new Notification("a", { silent }).silent, + `Expected silent to be true when initialized with ${silent}.` + ); + } + for (const silent of [false, 0, "", NaN]) { + assert_false( + new Notification("a", { silent }).silent, + `Expected silent to be false when initialized with ${silent}.` + ); + } +}, "constructing a notification with a NotificationOptions dictionary correctly sets and reflects the silent attribute."); </script>
diff --git a/third_party/blink/web_tests/external/wpt/notifications/constructor-basic.https.html.ini b/third_party/blink/web_tests/external/wpt/notifications/constructor-basic.https.html.ini new file mode 100644 index 0000000..3cf1ba2 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/notifications/constructor-basic.https.html.ini
@@ -0,0 +1,6 @@ +[constructor-basic.https.html] + [Constructing a notification without a NotificationOptions defaults to null.] + expected: FAIL + + [constructing a notification with a NotificationOptions dictionary correctly sets and reflects the silent attribute.] + expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/preload/modulepreload-as.html.ini b/third_party/blink/web_tests/external/wpt/preload/modulepreload-as.html.ini index fe42326..cf11479 100644 --- a/third_party/blink/web_tests/external/wpt/preload/modulepreload-as.html.ini +++ b/third_party/blink/web_tests/external/wpt/preload/modulepreload-as.html.ini
@@ -1,184 +1,163 @@ [modulepreload-as.html] expected: - if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [ERROR, TIMEOUT] - if (product == "content_shell") and (os == "mac") and (port == "mac12"): OK - if (product == "content_shell") and (os == "mac") and (port == "mac10.15"): OK - if (product == "content_shell") and (os == "mac") and (port == "mac11"): OK + if (product == "content_shell") and (os == "mac") and (port == "mac13"): [ERROR, OK] + if (product == "content_shell") and (os == "mac") and (port == "mac12-arm64"): [ERROR, OK] + if (product == "content_shell") and (os == "mac") and (port == "mac13-arm64"): ERROR + if (product == "content_shell") and (os == "linux") and (flag_specific == ""): [ERROR, TIMEOUT] + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): ERROR if (product == "content_shell") and (os == "win"): TIMEOUT - if product == "chrome": [ERROR, TIMEOUT] - ERROR - [Modulepreload with as=""] - expected: - if product == "chrome": [PASS, TIMEOUT] - + if product == "chrome": ERROR [Modulepreload with as="audio"] expected: - if product == "chrome": [FAIL, NOTRUN, PASS] + if (product == "content_shell") and (os == "mac") and (port == "mac12-arm64"): [FAIL, PASS] FAIL [Modulepreload with as="audioworklet"] - expected: - if product == "chrome": [FAIL, NOTRUN] - FAIL + expected: FAIL [Modulepreload with as="document"] expected: - if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [FAIL, PASS] - if product == "chrome": [FAIL, PASS, NOTRUN] + if (product == "content_shell") and (os == "mac") and (port == "mac12-arm64"): [FAIL, PASS] FAIL [Modulepreload with as="embed"] expected: - if (product == "content_shell") and (os == "linux") and (flag_specific == ""): [PASS, FAIL] - if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [FAIL, PASS] - if product == "chrome": [PASS, FAIL, NOTRUN] + if (product == "content_shell") and (os == "mac") and (port == "mac12-arm64"): [FAIL, PASS] + if (product == "content_shell") and (os == "linux") and (flag_specific == ""): [FAIL, PASS] + if product == "chrome": PASS FAIL [Modulepreload with as="fetch"] expected: - if (product == "content_shell") and (os == "win") and (port == "win11"): PASS - if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL] - if (product == "content_shell") and (os == "linux") and (flag_specific == ""): PASS - if (product == "content_shell") and (os == "mac") and (port == "mac12-arm64"): PASS - if (product == "content_shell") and (os == "mac") and (port == "mac13-arm64"): [PASS, FAIL] - if product == "chrome": [PASS, NOTRUN] - FAIL + if (product == "content_shell") and (os == "win") and (port == "win10.20h2"): FAIL + if (product == "content_shell") and (os == "mac") and (port == "mac13"): [PASS, FAIL] + if (product == "content_shell") and (os == "mac") and (port == "mac12-arm64"): [PASS, FAIL] + if (product == "content_shell") and (os == "mac") and (port == "mac11"): FAIL + if (product == "content_shell") and (os == "mac") and (port == "mac10.15"): FAIL + if (product == "content_shell") and (os == "mac") and (port == "mac12"): FAIL [Modulepreload with as="font"] expected: + if (product == "content_shell") and (os == "mac") and (port == "mac12-arm64"): [FAIL, PASS] if (product == "content_shell") and (os == "win") and (port == "win11"): PASS - if (product == "content_shell") and (os == "linux") and (flag_specific == ""): [PASS, FAIL] - if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL] - if product == "chrome": [FAIL, NOTRUN, PASS] + if (product == "content_shell") and (os == "linux") and (flag_specific == ""): [FAIL, PASS] + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): PASS FAIL [Modulepreload with as="frame"] expected: - if (product == "content_shell") and (os == "mac") and (port == "mac13-arm64"): [FAIL, PASS] - if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL] - if (product == "content_shell") and (os == "linux") and (flag_specific == ""): PASS + if (product == "content_shell") and (os == "linux") and (flag_specific == ""): [FAIL, PASS] + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): PASS + if (product == "content_shell") and (os == "mac") and (port == "mac12-arm64"): [FAIL, PASS] if (product == "content_shell") and (os == "win"): PASS - if product == "chrome": [PASS, FAIL, NOTRUN] + if product == "chrome": PASS FAIL [Modulepreload with as="iMaGe"] expected: - if (product == "content_shell") and (os == "mac") and (port == "mac13"): FAIL if (product == "content_shell") and (os == "mac") and (port == "mac12"): FAIL - if (product == "content_shell") and (os == "mac") and (port == "mac10.15"): FAIL if (product == "content_shell") and (os == "mac") and (port == "mac11"): FAIL - if (product == "content_shell") and (os == "mac") and (port == "mac13-arm64"): [PASS, FAIL] - if product == "chrome": [PASS, NOTRUN] + if (product == "content_shell") and (os == "mac") and (port == "mac10.15"): FAIL + if (product == "content_shell") and (os == "mac") and (port == "mac13"): [PASS, FAIL] + if (product == "content_shell") and (os == "mac") and (port == "mac12-arm64"): [PASS, FAIL] [Modulepreload with as="iframe"] expected: - if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL] - if (product == "content_shell") and (os == "linux") and (flag_specific == ""): [PASS, FAIL] - if (product == "content_shell") and (os == "mac") and (port == "mac13-arm64"): [FAIL, PASS] - if (product == "content_shell") and (os == "mac") and (port == "mac12-arm64"): PASS + if (product == "content_shell") and (os == "mac") and (port == "mac12-arm64"): [FAIL, PASS] + if (product == "content_shell") and (os == "linux") and (flag_specific == ""): [FAIL, PASS] + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): PASS if (product == "content_shell") and (os == "win"): PASS - if product == "chrome": [PASS, FAIL, NOTRUN] + if product == "chrome": PASS FAIL [Modulepreload with as="image"] expected: - if (product == "content_shell") and (os == "mac") and (port == "mac13-arm64"): [PASS, FAIL] - if (product == "content_shell") and (os == "win"): PASS - if (product == "content_shell") and (os == "linux"): PASS - if product == "chrome": [PASS, FAIL, NOTRUN] - FAIL + if (product == "content_shell") and (os == "linux") and (flag_specific == ""): [FAIL, PASS] + if (product == "content_shell") and (os == "mac") and (port == "mac12-arm64"): [FAIL, PASS] + if (product == "content_shell") and (os == "mac") and (port == "mac12"): FAIL + if (product == "content_shell") and (os == "mac") and (port == "mac11"): FAIL + if (product == "content_shell") and (os == "mac") and (port == "mac10.15"): FAIL + if (product == "content_shell") and (os == "mac") and (port == "mac13"): FAIL [Modulepreload with as="invalid-dest"] - expected: - if product == "chrome": [FAIL, NOTRUN] - FAIL + expected: FAIL [Modulepreload with as="manifest"] expected: - if (product == "content_shell") and (os == "mac") and (port == "mac13-arm64"): [FAIL, PASS] - if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): PASS if (product == "content_shell") and (os == "linux") and (flag_specific == ""): [PASS, FAIL] + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): PASS + if (product == "content_shell") and (os == "mac") and (port == "mac12-arm64"): [PASS, FAIL] if (product == "content_shell") and (os == "win"): PASS - if product == "chrome": [PASS, FAIL, NOTRUN] + if product == "chrome": PASS FAIL [Modulepreload with as="object"] expected: - if (product == "content_shell") and (os == "mac") and (port == "mac13-arm64"): [PASS, FAIL] + if (product == "content_shell") and (os == "mac") and (port == "mac12-arm64"): [PASS, FAIL] if (product == "content_shell") and (os == "mac") and (port == "mac12"): FAIL - if (product == "content_shell") and (os == "mac") and (port == "mac10.15"): FAIL if (product == "content_shell") and (os == "mac") and (port == "mac11"): FAIL - if product == "chrome": [PASS, NOTRUN] + if (product == "content_shell") and (os == "mac") and (port == "mac10.15"): FAIL + if (product == "content_shell") and (os == "mac") and (port == "mac13"): [PASS, FAIL] [Modulepreload with as="paintworklet"] - expected: - if product == "chrome": [FAIL, NOTRUN] - FAIL + expected: FAIL [Modulepreload with as="report"] expected: - if (product == "content_shell") and (os == "mac") and (port == "mac10.15"): FAIL - if (product == "content_shell") and (os == "mac") and (port == "mac11"): FAIL + if (product == "content_shell") and (os == "mac") and (port == "mac13"): [PASS, FAIL] + if (product == "content_shell") and (os == "mac") and (port == "mac12-arm64"): [PASS, FAIL] if (product == "content_shell") and (os == "mac") and (port == "mac12"): FAIL - if product == "chrome": [PASS, NOTRUN] - - [Modulepreload with as="sCrIpT"] - expected: - if product == "chrome": [PASS, NOTRUN] - - [Modulepreload with as="script"] - expected: - if product == "chrome": [PASS, NOTRUN] + if (product == "content_shell") and (os == "mac") and (port == "mac11"): FAIL + if (product == "content_shell") and (os == "mac") and (port == "mac10.15"): FAIL [Modulepreload with as="serviceworker"] - expected: - if product == "chrome": [FAIL, NOTRUN] - FAIL + expected: FAIL [Modulepreload with as="sharedworker"] - expected: - if product == "chrome": [FAIL, NOTRUN] - FAIL + expected: FAIL [Modulepreload with as="style"] expected: - if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [FAIL, PASS] if (product == "content_shell") and (os == "linux") and (flag_specific == ""): [PASS, FAIL] - if product == "chrome": [PASS, FAIL, NOTRUN] + if (product == "content_shell") and (os == "mac") and (port == "mac12-arm64"): [FAIL, PASS] + if (product == "content_shell") and (os == "mac") and (port == "mac13"): [FAIL, PASS] + if product == "chrome": PASS FAIL [Modulepreload with as="track"] expected: - if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL] + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): PASS if (product == "content_shell") and (os == "linux") and (flag_specific == ""): [PASS, FAIL] - if product == "chrome": [PASS, NOTRUN, FAIL] + if (product == "content_shell") and (os == "mac") and (port == "mac12-arm64"): [FAIL, PASS] + if (product == "content_shell") and (os == "mac") and (port == "mac13"): [FAIL, PASS] + if product == "chrome": PASS FAIL [Modulepreload with as="video"] expected: - if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL] + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): PASS if (product == "content_shell") and (os == "linux") and (flag_specific == ""): PASS - if (product == "content_shell") and (os == "mac") and (port == "mac13-arm64"): [FAIL, PASS] - if product == "chrome": [PASS, NOTRUN, FAIL] + if (product == "content_shell") and (os == "mac") and (port == "mac12-arm64"): [PASS, FAIL] + if (product == "content_shell") and (os == "mac") and (port == "mac13"): [FAIL, PASS] + if product == "chrome": PASS FAIL [Modulepreload with as="webidentity"] expected: + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): PASS if (product == "content_shell") and (os == "linux") and (flag_specific == ""): PASS - if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL] - if (product == "content_shell") and (os == "mac") and (port == "mac13-arm64"): [FAIL, PASS] - if product == "chrome": [PASS, NOTRUN, FAIL] + if (product == "content_shell") and (os == "mac") and (port == "mac12-arm64"): [PASS, FAIL] + if (product == "content_shell") and (os == "mac") and (port == "mac13"): [FAIL, PASS] + if product == "chrome": PASS FAIL [Modulepreload with as="worker"] - expected: - if product == "chrome": [FAIL, NOTRUN] - FAIL + expected: FAIL [Modulepreload with as="xslt"] expected: + if (product == "content_shell") and (os == "mac") and (port == "mac12-arm64"): [PASS, FAIL] if (product == "content_shell") and (os == "linux") and (flag_specific == ""): PASS - if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): [PASS, FAIL] - if (product == "content_shell") and (os == "mac") and (port == "mac13-arm64"): [FAIL, PASS] - if product == "chrome": [PASS, NOTRUN, FAIL] + if (product == "content_shell") and (os == "linux") and (flag_specific == "disable-site-isolation-trials"): PASS + if product == "chrome": PASS FAIL
diff --git a/third_party/blink/web_tests/external/wpt/service-workers/service-worker/unregister-immediately-during-extendable-events.https.html.ini b/third_party/blink/web_tests/external/wpt/service-workers/service-worker/unregister-immediately-during-extendable-events.https.html.ini index 0f2204c..5a9efe7 100644 --- a/third_party/blink/web_tests/external/wpt/service-workers/service-worker/unregister-immediately-during-extendable-events.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/service-workers/service-worker/unregister-immediately-during-extendable-events.https.html.ini
@@ -1,6 +1,9 @@ [unregister-immediately-during-extendable-events.https.html] - expected: TIMEOUT + expected: + if (product == "content_shell") and (os == "mac") and (port == "mac12"): [OK, TIMEOUT] + TIMEOUT [Clear-Site-Data must fail pending subresource fetch events.] expected: + if (product == "content_shell") and (os == "mac") and (port == "mac12"): FAIL if (product == "content_shell") and (os == "mac") and (port == "mac11"): FAIL TIMEOUT
diff --git a/third_party/blink/web_tests/external/wpt/video-rvfc/request-video-frame-callback-webrtc.https.html.ini b/third_party/blink/web_tests/external/wpt/video-rvfc/request-video-frame-callback-webrtc.https.html.ini index b19357b..ca1de5d 100644 --- a/third_party/blink/web_tests/external/wpt/video-rvfc/request-video-frame-callback-webrtc.https.html.ini +++ b/third_party/blink/web_tests/external/wpt/video-rvfc/request-video-frame-callback-webrtc.https.html.ini
@@ -1,10 +1,12 @@ [request-video-frame-callback-webrtc.https.html] expected: if (product == "content_shell") and (os == "mac") and (port == "mac10.15"): TIMEOUT - if (product == "content_shell") and (os == "mac") and (port == "mac11"): [TIMEOUT, OK] + if (product == "content_shell") and (os == "mac") and (port == "mac11"): TIMEOUT [Test video.requestVideoFrameCallback() parameters for WebRTC applications.] expected: - if (product == "content_shell") and (os == "mac") and (port == "mac13"): FAIL - if (product == "content_shell") and (os == "mac") and (port == "mac12-arm64"): [FAIL, PASS] - if (product == "content_shell") and (os == "mac") and (port == "mac11"): FAIL if (product == "content_shell") and (os == "win") and (port == "win11"): FAIL + if (product == "content_shell") and (os == "linux") and (flag_specific == ""): [FAIL, PASS] + if (product == "content_shell") and (os == "mac") and (port == "mac13-arm64"): [FAIL, PASS] + if (product == "content_shell") and (os == "mac") and (port == "mac13"): FAIL + if (product == "content_shell") and (os == "mac") and (port == "mac11"): FAIL + if (product == "content_shell") and (os == "mac") and (port == "mac12-arm64"): FAIL
diff --git a/third_party/blink/web_tests/http/tests/inspector-protocol/prefetch/request-will-be-sent.https-expected.txt b/third_party/blink/web_tests/http/tests/inspector-protocol/prefetch/request-will-be-sent.https-expected.txt index 653ebcd..39db0333 100644 --- a/third_party/blink/web_tests/http/tests/inspector-protocol/prefetch/request-will-be-sent.https-expected.txt +++ b/third_party/blink/web_tests/http/tests/inspector-protocol/prefetch/request-will-be-sent.https-expected.txt
@@ -111,6 +111,7 @@ proxyStart : -1 pushEnd : 0 pushStart : 0 + receiveHeadersStart : <number> receiveHeadersEnd : <number> requestTime : <number> sendEnd : <number> @@ -260,6 +261,7 @@ proxyStart : -1 pushEnd : 0 pushStart : 0 + receiveHeadersStart : <number> receiveHeadersEnd : <number> requestTime : <number> sendEnd : <number>
diff --git a/third_party/blink/web_tests/http/tests/inspector-protocol/prefetch/request-will-be-sent.https.js b/third_party/blink/web_tests/http/tests/inspector-protocol/prefetch/request-will-be-sent.https.js index ee4384e8..532eb77 100644 --- a/third_party/blink/web_tests/http/tests/inspector-protocol/prefetch/request-will-be-sent.https.js +++ b/third_party/blink/web_tests/http/tests/inspector-protocol/prefetch/request-will-be-sent.https.js
@@ -33,7 +33,7 @@ let prefetchRequestId = await testPromise.then((result) => { let prefetchRequestId = undefined; - const stabilizeNames = [...TestRunner.stabilizeNames, 'wallTime', 'requestTime', 'responseTime', 'Date', 'receiveHeadersEnd', 'sendStart', 'sendEnd', 'ETag', 'Last-Modified', 'User-Agent', 'headersText']; + const stabilizeNames = [...TestRunner.stabilizeNames, 'wallTime', 'requestTime', 'responseTime', 'Date', 'receiveHeadersStart', 'receiveHeadersEnd', 'sendStart', 'sendEnd', 'ETag', 'Last-Modified', 'User-Agent', 'headersText']; let {requestIds, events} = result; for(let i=0; i<requestIds.length; ++i) { testRunner.log(`Message ${i}`);
diff --git a/third_party/blink/web_tests/http/tests/inspector-protocol/timeline/auction-worklet-network.js b/third_party/blink/web_tests/http/tests/inspector-protocol/timeline/auction-worklet-network.js index a725f13..b0162008 100644 --- a/third_party/blink/web_tests/http/tests/inspector-protocol/timeline/auction-worklet-network.js +++ b/third_party/blink/web_tests/http/tests/inspector-protocol/timeline/auction-worklet-network.js
@@ -89,6 +89,7 @@ validateRelativeMs(data.timing, 'connectStart'); validateRelativeMs(data.timing, 'dnsEnd'); validateRelativeMs(data.timing, 'dnsStart'); + validateRelativeMs(data.timing, 'receiveHeadersStart'); validateRelativeMs(data.timing, 'receiveHeadersEnd'); validateRelativeMs(data.timing, 'sendEnd'); validateRelativeMs(data.timing, 'sendStart');
diff --git a/third_party/blink/web_tests/http/tests/inspector-protocol/tracing/network-requests-expected.txt b/third_party/blink/web_tests/http/tests/inspector-protocol/tracing/network-requests-expected.txt index a5bff5f..464ccfe 100644 --- a/third_party/blink/web_tests/http/tests/inspector-protocol/tracing/network-requests-expected.txt +++ b/third_party/blink/web_tests/http/tests/inspector-protocol/tracing/network-requests-expected.txt
@@ -57,6 +57,7 @@ pushEnd: number pushStart: number receiveHeadersEnd: number + receiveHeadersStart: number requestTime: number sendEnd: number sendStart: number
diff --git a/third_party/blink/web_tests/media/video-source-none-supported.html b/third_party/blink/web_tests/media/video-source-none-supported.html index 4b5e65a..d43487680 100644 --- a/third_party/blink/web_tests/media/video-source-none-supported.html +++ b/third_party/blink/web_tests/media/video-source-none-supported.html
@@ -15,16 +15,15 @@ var sourceList = document.querySelectorAll("source"); for (var source of sourceList) { source.onerror = t.step_func(function(event) { - // Because the error event is fired asynchronously the network state - // can be either NETWORK_LOADING or NETWORK_NO_SOURCE, depending on - // whether or not any pending "source" element is available. - assert_greater_than(video.networkState, HTMLMediaElement.NETWORK_IDLE); - if (++errorCount == 3) { - // Allow time for asynchronous event processing. - setTimeout(_ => { - assert_equals(video.networkState, HTMLMediaElement.NETWORK_NO_SOURCE); - t.done(); - }, 0); + errorCount++; + if (errorCount < 3) { + // Because the error event is fired asynchronously the network state + // can be either NETWORK_LOADING or NETWORK_NO_SOURCE, depending on + // whether or not any pending "source" element is available. + assert_greater_than(video.networkState, HTMLMediaElement.NETWORK_IDLE); + } else { + assert_equals(video.networkState, HTMLMediaElement.NETWORK_NO_SOURCE); + t.done(); } }); }
diff --git a/third_party/eigen3/README.chromium b/third_party/eigen3/README.chromium index 4634a14..8d77468 100644 --- a/third_party/eigen3/README.chromium +++ b/third_party/eigen3/README.chromium
@@ -1,8 +1,8 @@ Name: Eigen Short Name: eigen3 URL: http://eigen.tuxfamily.org/ -Version: 2709f4c8fbbe71a5383de1ba27e9833f218a642d -Date: 2023/05/11 +Version: c18f94e3b017104284cd541e553472e62e85e526 +Date: 2023/05/23 License: MPL 2 License File: LICENSE Security Critical: Yes
diff --git a/third_party/ruy/README.chromium b/third_party/ruy/README.chromium index 5c08a57..5487d08b1 100644 --- a/third_party/ruy/README.chromium +++ b/third_party/ruy/README.chromium
@@ -1,8 +1,8 @@ Name: The ruy matrix multiplication library Short Name: ruy URL: https://github.com/google/ruy -Version: c19139f55a94493086561288b243eaeec9d58353 -Date: 2023/05/11 +Version: 72d107f88082aeca462ffbe91b3a3b0e02686a73 +Date: 2023/05/23 License: Apache 2 License File: LICENSE Security Critical: Yes
diff --git a/third_party/tflite/README.chromium b/third_party/tflite/README.chromium index 1ea988d..f86da07 100644 --- a/third_party/tflite/README.chromium +++ b/third_party/tflite/README.chromium
@@ -1,8 +1,8 @@ Name: TensorFlow Lite Short Name: tflite URL: https://github.com/tensorflow/tensorflow -Version: ce9330a360c4a91df22799131f5c4fd45e5f223e -Date: 2023/05/22 +Version: be1a33f1566b40bd43ecfc53dbd8c3dfbc7f2aa1 +Date: 2023/05/23 License: Apache 2.0 License File: LICENSE Security Critical: Yes
diff --git a/tools/code_coverage/coverage.py b/tools/code_coverage/coverage.py index 0f481786..15b4e88 100755 --- a/tools/code_coverage/coverage.py +++ b/tools/code_coverage/coverage.py
@@ -1135,7 +1135,7 @@ # An input prof-data file(s) is already provided. if len(args.profdata_file) == 1: # If it's just one input file, use as-is. - profdata_file_path = args.profdata_file + profdata_file_path = args.profdata_file[0] else: # Otherwise, there are multiple profdata files and we need to merge them. profdata_file_path = _CreateCoverageProfileDataFromTargetProfDataFiles(args.profdata_file)
diff --git a/tools/grit/grit/format/gen_predetermined_ids.py b/tools/grit/grit/format/gen_predetermined_ids.py index ba8a20c..da2e4af 100755 --- a/tools/grit/grit/format/gen_predetermined_ids.py +++ b/tools/grit/grit/format/gen_predetermined_ids.py
@@ -107,7 +107,8 @@ original_resources = {} for root, dirnames, filenames in os.walk(out_dir + '/gen'): for filename in filenames: - if filename.endswith(('_resources.h', '_settings.h', '_strings.h')): + if filename.endswith( + ('_resources.h', '_settings.h', '_strings.h', '_synonyms.h')): with open(os.path.join(root, filename)) as f: ReadResourceIdsFromFile(f, original_resources) return original_resources
diff --git a/tools/grit/grit/node/misc.py b/tools/grit/grit/node/misc.py index 617c1a8..4740a50 100644 --- a/tools/grit/grit/node/misc.py +++ b/tools/grit/grit/node/misc.py
@@ -240,8 +240,8 @@ 'avoid conflicts with system-defined resource IDs.') if tid not in predetermined_tids and id in predetermined_ids: - raise exception.IdRangeOverlap('ID %d overlaps between %s and %s' - % (id, tid, predetermined_ids[tid])) + raise exception.IdRangeOverlap('ID %d overlaps between %s and %s' % + (id, tid, predetermined_ids[id])) ids[id] = tid tids[tid] = id
diff --git a/tools/gritsettings/resource_ids.spec b/tools/gritsettings/resource_ids.spec index bd7c56d..99f8fb6 100644 --- a/tools/gritsettings/resource_ids.spec +++ b/tools/gritsettings/resource_ids.spec
@@ -29,8 +29,6 @@ "SRCDIR": "../..", # START chrome/app section. - # Previous versions of this file started with resource id 400, so stick with - # that. # # chrome/ and ios/chrome/ must start at the same id. # App only use one file depending on whether it is iOS or other platform. @@ -38,10 +36,10 @@ # We only use one file depending on whether we're building Chromium or # Google Chrome. "chrome/app/chromium_strings.grd": { - "messages": [400], + "messages": [800], }, "chrome/app/google_chrome_strings.grd": { - "messages": [400], + "messages": [800], }, # Leave lots of space for generated_resources since it has most of our @@ -49,13 +47,13 @@ "chrome/app/generated_resources.grd": { # Big alignment since strings (previous item) are frequently added. "META": {"join": 2, "align": 200}, - "messages": [600], + "messages": [1000], }, "chrome/app/resources/locale_settings.grd": { # Big alignment since strings (previous item) are frequently added. "META": {"align": 1000}, - "messages": [1000], + "messages": [2000], }, # These each start with the same resource id because we only use one @@ -63,29 +61,29 @@ "chrome/app/resources/locale_settings_chromiumos.grd": { # Big alignment since strings (previous item) are frequently added. "META": {"align": 100}, - "messages": [1100], + "messages": [2100], }, "chrome/app/resources/locale_settings_google_chromeos.grd": { - "messages": [1100], + "messages": [2100], }, "chrome/app/resources/locale_settings_linux.grd": { - "messages": [1100], + "messages": [2100], }, "chrome/app/resources/locale_settings_mac.grd": { - "messages": [1100], + "messages": [2100], }, "chrome/app/resources/locale_settings_win.grd": { - "messages": [1100], + "messages": [2100], }, "chrome/app/theme/chrome_unscaled_resources.grd": { "META": {"join": 5}, - "includes": [1120], + "includes": [2120], }, # Leave space for theme_resources since it has many structures. "chrome/app/theme/theme_resources.grd": { - "structures": [1140], + "structures": [2140], }, # END chrome/app section. @@ -93,493 +91,493 @@ "chrome/browser/dev_ui_browser_resources.grd": { # Big alignment at start of section. "META": {"align": 100}, - "includes": [1200], + "includes": [2200], }, "chrome/browser/browser_resources.grd": { - "includes": [1220], - "structures": [1240], + "includes": [2220], + "structures": [2240], }, "chrome/browser/recent_tabs/internal/android/java/strings/android_restore_tabs_strings.grd": { - "messages": [1250], + "messages": [2260], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/feedback/resources.grd": { "META": {"sizes": {"includes": [30],}}, - "includes": [1260], + "includes": [2280], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/feed_internals/resources.grd": { "META": {"sizes": {"includes": [10],}}, - "includes": [1270], + "includes": [2300], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/app_service_internals/resources.grd": { "META": {"sizes": {"includes": [5],}}, - "includes": [1280], + "includes": [2320], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/bookmarks/resources.grd": { "META": {"sizes": {"includes": [50],}}, - "includes": [1300], + "includes": [2340], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/browser_switch/resources.grd": { "META": {"sizes": {"includes": [10],}}, - "includes": [1320], + "includes": [2360], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/chromeos/arc_account_picker/resources.grd": { "META": {"sizes": {"includes": [10],}}, - "includes": [1330], + "includes": [2380], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/chromeos/assistant_optin/assistant_optin_resources.grd": { "META": {"sizes": {"includes": [80]}}, - "includes": [1340], + "includes": [2400], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/chromeos/cloud_upload/resources.grd": { "META": {"sizes": {"includes": [50]}}, - "includes": [1345], + "includes": [2420], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/chromeos/desk_api/resources.grd": { "META": {"sizes": {"includes": [10],}}, - "includes": [1347], + "includes": [2440], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/chromeos/gaia_action_buttons/resources.grd": { "META": {"sizes": {"includes": [10],}}, - "includes": [1350], + "includes": [2460], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/chromeos/emoji_picker/resources.grd": { "META": {"sizes": {"includes": [50]}}, - "includes": [1360], + "includes": [2480], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/chromeos/kerberos/resources.grd": { "META": {"sizes": {"includes": [5],}}, - "includes": [1370], + "includes": [2500], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/chromeos/launcher_internals/resources.grd": { "META": {"sizes": {"includes": [50]}}, - "includes": [1380], + "includes": [2520], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/chromeos/remote_maintenance_curtain/resources.grd": { "META": {"sizes": {"includes": [10]}}, - "includes": [1381], + "includes": [2540], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/chromeos/supervision/resources.grd": { "META": {"sizes": {"includes": [10],}}, - "includes": [1383], + "includes": [2560], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/profile_internals/resources.grd": { "META": {"sizes": {"includes": [10],}}, - "includes": [1385], + "includes": [2580], }, "chrome/browser/resources/app_icon/app_icon_resources.grd": { - "structures": [1390], + "structures": [2600], }, "chrome/browser/resources/chromeos/app_icon/app_icon_resources.grd": { - "structures": [1395], + "structures": [2620], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/chromeos/login/oobe_conditional_resources.grd": { "META": {"sizes": {"includes": [150], "structures": [300]}}, - "includes": [1400], - "structures": [1420], + "includes": [2640], + "structures": [2660], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/chromeos/lock_screen_reauth/resources.grd": { "META": {"sizes": {"includes": [30]}}, - "includes": [1430], + "includes": [2680], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/chromeos/login/oobe_unconditional_resources.grd": { "META": {"sizes": {"includes": [350]}}, - "includes": [1440], + "includes": [2700], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/chromeos/multidevice_internals/resources.grd": { "META": {"sizes": {"includes": [35]}}, - "includes": [1460], + "includes": [2720], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/chromeos/multidevice_setup/multidevice_setup_resources.grd": { "META": {"sizes": {"includes": [10]}}, - "includes": [1480], + "includes": [2740], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/chromeos/notification_tester/resources.grd": { "META": {"sizes": {"includes": [5]}}, - "includes": [1490], + "includes": [2760], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/chromeos/password_change/resources.grd": { "META": {"sizes": {"includes": [30]}}, - "includes": [1495], + "includes": [2780], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/chromeos/vc_tray_tester/resources.grd": { "META": {"sizes": {"includes": [5]}}, - "includes": [1497], + "includes": [2800], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/commander/resources.grd": { "META": {"sizes": {"includes": [15]}}, - "includes": [1500], + "includes": [2820], }, "chrome/browser/resources/component_extension_resources.grd": { - "includes": [1520], - "structures": [1540], + "includes": [2840], + "structures": [2860], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/access_code_cast/resources.grd": { "META": {"sizes": {"includes": [50]}}, - "includes": [1560], + "includes": [2880], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/connectors_internals/resources.grd": { "META": {"sizes": {"includes": [15]}}, - "includes": [1580], + "includes": [2900], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/discards/resources.grd": { "META": {"sizes": {"includes": [20],}}, - "includes": [1585], + "includes": [2920], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/downloads/resources.grd": { "META": {"sizes": {"includes": [50],}}, - "includes": [1590], + "includes": [2940], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/extensions/resources.grd": { "META": {"sizes": {"includes": [90],}}, - "includes": [1600], + "includes": [2960], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/history/resources.grd": { "META": {"sizes": {"includes": [40]}}, - "includes": [1620], + "includes": [2980], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/identity_internals/resources.grd": { "META": {"sizes": {"includes": [10]}}, - "includes": [1621], + "includes": [3000], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/internals/resources.grd": { "META": {"sizes": {"includes": [20]}}, - "includes": [1640], + "includes": [3020], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/intro/resources.grd": { "META": {"sizes": {"includes": [20],}}, - "includes": [1650], + "includes": [3040], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/management/resources.grd": { "META": {"sizes": {"includes": [10]}}, - "includes": [1660], + "includes": [3060], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/new_tab_page_instant/resources.grd": { "META": {"sizes": {"includes": [10]}}, - "includes": [1680], + "includes": [3080], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/nearby_internals/nearby_internals_resources.grd": { "META": {"sizes": {"includes": [40]}}, - "includes": [1740], + "includes": [3100], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/nearby_share/resources.grd": { "META": {"sizes": {"includes": [100]}}, - "includes": [1760], + "includes": [3120], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/media_router/cast_feedback/resources.grd": { "META": {"sizes": {"includes": [10],}}, - "includes": [1780], + "includes": [3140], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/new_tab_page/resources.grd": { "META": {"sizes": {"includes": [200]}}, - "includes": [1800], + "includes": [3160], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/new_tab_page_third_party/resources.grd": { "META": {"sizes": {"includes": [10]}}, - "includes": [1820], + "includes": [3180], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/ntp4/apps_resources.grd": { "META": {"sizes": {"includes": [40]}}, - "includes": [1840], + "includes": [3200], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/omnibox_popup/resources.grd": { "META": {"sizes": {"includes": [50]}}, - "includes": [1845], + "includes": [3220], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/password_manager/resources.grd": { "META": {"sizes": {"includes": [100]}}, - "includes": [1850], + "includes": [3240], }, "chrome/browser/resources/preinstalled_web_apps/resources.grd": { - "includes": [1860], + "includes": [3260], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/pdf/resources.grd": { "META": {"sizes": {"includes": [200]}}, - "includes": [1880], + "includes": [3280], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/print_preview/resources.grd": { "META": {"sizes": {"includes": [500],}}, - "includes": [1900], + "includes": [3300], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/privacy_sandbox/resources.grd": { "META": {"sizes": {"includes": [30],}}, - "includes": [1910], + "includes": [3320], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/segmentation_internals/resources.grd": { "META": {"sizes": {"includes": [10]}}, - "includes": [1925], + "includes": [3340], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/side_panel/bookmarks/resources.grd": { "META": {"sizes": {"includes": [45],}}, - "includes": [1926], + "includes": [3360], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/side_panel/companion/resources.grd": { "META": {"sizes": {"includes": [10],}}, - "includes": [1927], + "includes": [3380], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/side_panel/customize_chrome/resources.grd": { "META": {"sizes": {"includes": [50],}}, - "includes": [1930], + "includes": [3400], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/side_panel/history_clusters/resources.grd": { "META": {"sizes": {"includes": [5],}}, - "includes": [1931], + "includes": [3420], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/side_panel/read_anything/resources.grd": { "META": {"sizes": {"includes": [10],}}, - "includes": [1932], + "includes": [3440], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/side_panel/reading_list/resources.grd": { "META": {"sizes": {"includes": [10],}}, - "includes": [1933], + "includes": [3460], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/side_panel/shared/resources.grd": { "META": {"sizes": {"includes": [15],}}, - "includes": [1934], + "includes": [3480], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/side_panel/user_notes/resources.grd": { "META": {"sizes": {"includes": [20],}}, - "includes": [1935], + "includes": [3500], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/settings/chromeos/resources.grd": { "META": {"sizes": {"includes": [1000],}}, - "includes": [1940], + "includes": [3520], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/settings/resources.grd": { "META": {"sizes": {"includes": [500],}}, - "includes": [1960], + "includes": [3540], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/settings_shared/resources.grd": { "META": {"sizes": {"includes": [30],}}, - "includes": [1970], + "includes": [3560], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/signin/profile_picker/resources.grd": { "META": {"sizes": {"includes": [50],}}, - "includes": [1980], + "includes": [3580], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/signin/resources.grd": { "META": {"sizes": {"includes": [60],}}, - "includes": [2000], + "includes": [3600], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/support_tool/resources.grd": { "META": {"sizes": {"includes": [30]}}, - "includes": [2010], + "includes": [3620], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/tab_search/resources.grd": { "META": {"sizes": {"includes": [30]}}, - "includes": [2020], + "includes": [3640], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/tab_strip/resources.grd": { "META": {"sizes": {"includes": [30]}}, - "includes": [2040], + "includes": [3660], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/welcome/resources.grd": { "META": {"sizes": {"includes": [60]}}, - "includes": [2060], + "includes": [3680], }, "chrome/browser/test_dummy/internal/android/resources/resources.grd": { - "includes": [2100], + "includes": [3700], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/webui_gallery/resources.grd": { "META": {"sizes": {"includes": [70]}}, - "includes": [2130], + "includes": [3720], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/web_app_internals/resources.grd": { "META": {"sizes": {"includes": [10]}}, - "includes": [2135], + "includes": [3740], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/whats_new/resources.grd": { "META": {"sizes": {"includes": [10]}}, - "includes": [2140], + "includes": [3760], }, # END chrome/browser section. # START chrome/ WebUI resources section "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/browsing_topics/resources.grd": { "META": {"sizes": {"includes": [10]}}, - "includes": [2170], + "includes": [3780], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/bluetooth_internals/resources.grd": { "META": {"sizes": {"includes": [50],}}, - "includes": [2180], + "includes": [3800], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/chromeos/audio/resources.grd": { "META": {"sizes": {"includes": [30]}}, - "includes": [2200], + "includes": [3820], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/chromeos/bluetooth_pairing_dialog/bluetooth_pairing_dialog_resources.grd": { "META": {"sizes": {"includes": [10],}}, - "includes": [2220], + "includes": [3840], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/chromeos/chromebox_for_meetings/resources.grd": { "META": {"sizes": {"includes": [5]}}, - "includes": [2240], + "includes": [3860], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/chromeos/healthd_internals/resources.grd": { "META": {"sizes": {"includes": [50]}}, - "includes": [2250], + "includes": [3880], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/chromeos/internet_config_dialog/internet_config_dialog_resources.grd": { "META": {"sizes": {"includes": [10],}}, - "includes": [2260], + "includes": [3900], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/chromeos/internet_detail_dialog/internet_detail_dialog_resources.grd": { "META": {"sizes": {"includes": [10],}}, - "includes": [2280], + "includes": [3920], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/chromeos/network_ui/network_ui_resources.grd": { "META": {"sizes": {"includes": [20]}}, - "includes": [2300], + "includes": [3940], }, "<(SHARED_INTERMEDIATE_DIR)/components/commerce/core/internals/resources/resources.grd": { "META": {"sizes": {"includes": [10]}}, - "includes": [2305], + "includes": [3960], }, "<(SHARED_INTERMEDIATE_DIR)/components/history_clusters/history_clusters_internals/resources/resources.grd": { "META": {"sizes": {"includes": [10]}}, - "includes": [2310], + "includes": [3980], }, "<(SHARED_INTERMEDIATE_DIR)/components/download/resources/download_internals/resources.grd": { "META": {"sizes": {"includes": [10]}}, - "includes": [2320], + "includes": [4000], }, "<(SHARED_INTERMEDIATE_DIR)/components/optimization_guide/optimization_guide_internals/resources/resources.grd": { "META": {"sizes": {"includes": [10]}}, - "includes": [2330], + "includes": [4020], }, "<(SHARED_INTERMEDIATE_DIR)/components/policy/resources/webui/resources.grd": { "META": {"sizes": {"includes": [20]}}, - "includes": [2335], + "includes": [4040], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/app_home/resources.grd": { "META": {"sizes": {"includes": [20]}}, - "includes": [2340], + "includes": [4060], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/gaia_auth_host/resources.grd": { "META": {"sizes": {"includes": [20],}}, - "includes": [2350], + "includes": [4080], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/invalidations/resources.grd": { "META": {"sizes": {"includes": [10],}}, - "includes": [2360], + "includes": [4100], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/media/resources.grd": { "META": {"sizes": {"includes": [20],}}, - "includes": [2380], + "includes": [4120], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/net_internals/resources.grd": { "META": {"sizes": {"includes": [20]}}, - "includes": [2400], + "includes": [4140], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/omnibox/resources.grd": { "META": {"sizes": {"includes": [20]}}, - "includes": [2420], + "includes": [4160], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/suggest_internals/resources.grd": { "META": {"sizes": {"includes": [10]}}, - "includes": [2430], + "includes": [4180], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/quota_internals/quota_internals_resources.grd": { "META": {"sizes": {"includes": [20]}}, - "includes": [2440], + "includes": [4200], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/sync_file_system_internals/resources.grd": { "META": {"sizes": {"includes": [20]}}, - "includes": [2460], + "includes": [4220], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/usb_internals/resources.grd": { "META": {"sizes": {"includes": [20]}}, - "includes": [2480], + "includes": [4240], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/webapks/resources.grd": { "META": {"sizes": {"includes": [10]}}, - "includes": [2500], + "includes": [4260], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/webui_js_error/resources.grd": { "META": {"sizes": {"includes": [10],}}, - "includes": [2520], + "includes": [4280], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/app_settings/resources.grd": { "META": {"sizes": {"includes": [10]}}, - "includes": [2530], + "includes": [4300], }, "<(SHARED_INTERMEDIATE_DIR)/components/sync/service/resources/resources.grd": { "META": {"sizes": {"includes": [30],}}, - "includes": [2540], + "includes": [4320], }, "components/resources/dev_ui_components_resources.grd": { - "includes": [2560], + "includes": [4340], }, "<(SHARED_INTERMEDIATE_DIR)/content/browser/resources/aggregation_service/resources.grd": { "META": {"sizes": {"includes": [20]}}, - "includes": [2563], + "includes": [4360], }, "<(SHARED_INTERMEDIATE_DIR)/content/browser/resources/attribution_reporting/resources.grd": { "META": {"sizes": {"includes": [20]}}, - "includes": [2565], + "includes": [4380], }, "<(SHARED_INTERMEDIATE_DIR)/content/browser/resources/gpu/resources.grd": { "META": {"sizes": {"includes": [20]}}, - "includes": [2566], + "includes": [4400], }, "<(SHARED_INTERMEDIATE_DIR)/content/browser/resources/histograms/resources.grd": { "META": {"sizes": {"includes": [5]}}, - "includes": [2568], + "includes": [4420], }, "<(SHARED_INTERMEDIATE_DIR)/content/browser/resources/indexed_db/resources.grd": { "META": {"sizes": {"includes": [20]}}, - "includes": [2570], + "includes": [4440], }, "<(SHARED_INTERMEDIATE_DIR)/content/browser/resources/media/resources.grd": { "META": {"sizes": {"includes": [10],}}, - "includes": [2580], + "includes": [4460], }, "<(SHARED_INTERMEDIATE_DIR)/content/browser/resources/net/resources.grd": { "META": {"sizes": {"includes": [5],}}, - "includes": [2583], + "includes": [4480], }, "<(SHARED_INTERMEDIATE_DIR)/content/browser/resources/process/resources.grd": { "META": {"sizes": {"includes": [10],}}, - "includes": [2585], + "includes": [4500], }, "<(SHARED_INTERMEDIATE_DIR)/content/browser/resources/service_worker/resources.grd": { "META": {"sizes": {"includes": [10],}}, - "includes": [2588], + "includes": [4520], }, "<(SHARED_INTERMEDIATE_DIR)/content/browser/resources/quota/resources.grd": { "META": {"sizes": {"includes": [10],}}, - "includes": [2590], + "includes": [4540], }, "<(SHARED_INTERMEDIATE_DIR)/content/browser/webrtc/resources/resources.grd": { "META": {"sizes": {"includes": [20],}}, - "includes": [2600], + "includes": [4560], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/feed/resources.grd": { "META": {"sizes": {"includes": [20]}}, - "includes": [2640], + "includes": [4580], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/chromeos/manage_mirrorsync/resources.grd": { "META": {"sizes": {"includes": [10]}}, - "includes": [2650], + "includes": [4600], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/inline_login/resources.grd": { "META": {"sizes": {"includes": [20]}}, - "includes": [2655], + "includes": [4620], }, "<(SHARED_INTERMEDIATE_DIR)/components/metrics/debug/resources.grd": { "META": {"sizes": {"includes": [10]}}, - "includes": [2665], + "includes": [4640], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/lens/resources.grd": { "META": {"sizes": {"includes": [10]}}, - "includes": [2675], + "includes": [4660], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/lens/untrusted_resources.grd": { "META": {"sizes": {"includes": [10]}}, - "includes": [2685], + "includes": [4680], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/chromeos/enterprise_reporting/resources.grd": { "META": {"sizes": {"includes": [20]}}, - "includes": [2695], + "includes": [4700], }, # END chrome/ WebUI resources section @@ -587,23 +585,23 @@ "chrome/common/common_resources.grd": { # Big alignment at start of section. "META": {"align": 100}, - "includes": [2700], + "includes": [4800], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/common/chromeos/extensions/chromeos_system_extensions_resources.grd": { "META": {"sizes": {"includes": [10],}}, - "includes": [2720], + "includes": [4820], }, "chrome/credential_provider/gaiacp/gaia_resources.grd": { - "includes": [2740], - "messages": [2760], + "includes": [4840], + "messages": [4860], }, "chrome/renderer/resources/renderer_resources.grd": { - "includes": [2780], - "structures": [2800], + "includes": [4880], + "structures": [4900], }, "<(SHARED_INTERMEDIATE_DIR)/chrome/test/data/webui/resources.grd": { "META": {"sizes": {"includes": [1500],}}, - "includes": [2810], + "includes": [4920], }, # END chrome/ miscellaneous section. @@ -611,60 +609,60 @@ "chromeos/chromeos_strings.grd": { # Big alignment at start of section. "META": {"align": 100}, - "messages": [2900], + "messages": [5000], }, "<(SHARED_INTERMEDIATE_DIR)/ash/ambient/resources/lottie_resources.grd": { "META": {"sizes": {"includes": [100],}}, - "includes": [2910], + "includes": [5020], }, "chromeos/ash/resources/ash_resources.grd": { - "includes": [2915], + "includes": [5040], }, "<(SHARED_INTERMEDIATE_DIR)/ash/webui/camera_app_ui/ash_camera_app_resources.grd": { "META": {"sizes": {"includes": [300],}}, - "includes": [2920], + "includes": [5060], }, "ash/webui/camera_app_ui/resources/strings/camera_strings.grd": { - "messages": [2940], + "messages": [5080], }, "<(SHARED_INTERMEDIATE_DIR)/ash/webui/color_internals/resources/ash_color_internals_resources.grd": { "META": {"sizes": {"includes": [20],}}, - "includes": [2950], + "includes": [5100], }, "<(SHARED_INTERMEDIATE_DIR)/ash/webui/common/resources/office_fallback/resources.grd": { "META": {"sizes": {"includes": [5]}}, - "includes": [2955], + "includes": [5120], }, "<(SHARED_INTERMEDIATE_DIR)/ash/webui/connectivity_diagnostics/resources/connectivity_diagnostics_resources.grd": { "META": {"sizes": {"includes": [50],}}, - "includes": [2960], + "includes": [5140], }, "<(SHARED_INTERMEDIATE_DIR)/ash/webui/diagnostics_ui/resources/ash_diagnostics_app_resources.grd": { "META": {"sizes": {"includes": [200],}}, - "includes": [2980], + "includes": [5160], }, "<(SHARED_INTERMEDIATE_DIR)/ash/webui/file_manager/resources/file_manager_swa_resources.grd": { "META": {"sizes": {"includes": [100]}}, - "includes": [3000], + "includes": [5180], }, "<(SHARED_INTERMEDIATE_DIR)/ash/webui/file_manager/untrusted_resources/file_manager_untrusted_resources.grd": { "META": {"sizes": {"includes": [20]}}, - "includes": [3020], + "includes": [5200], }, "<(SHARED_INTERMEDIATE_DIR)/ash/webui/files_internals/ash_files_internals_resources.grd": { "META": {"sizes": {"includes": [10],}}, - "includes": [3025], + "includes": [5220], }, "<(SHARED_INTERMEDIATE_DIR)/ash/webui/guest_os_installer/resources/resources.grd": { "META": {"sizes": {"includes": [10]}}, - "includes": [3030], + "includes": [5240], }, "<(SHARED_INTERMEDIATE_DIR)/ash/webui/common/resources/resources.grd": { "META": {"sizes": {"includes": [700]}}, - "includes": [3035], + "includes": [5260], }, "ash/webui/help_app_ui/resources/help_app_resources.grd": { - "includes": [3040], + "includes": [5280], }, # Both help_app_kids_magazine_bundle_resources.grd and # help_app_kids_magazine_bundle_mock_resources.grd start with the same id @@ -673,10 +671,10 @@ # in this case (HTML, JS and CSS file). "ash/webui/help_app_ui/resources/prod/help_app_kids_magazine_bundle_resources.grd": { "META": {"sizes": {"includes": [15],}}, - "includes": [3060], + "includes": [5300], }, "ash/webui/help_app_ui/resources/mock/help_app_kids_magazine_bundle_mock_resources.grd": { - "includes": [3060], + "includes": [5300], }, # Both help_app_bundle_resources.grd and help_app_bundle_mock_resources.grd # start with the same id because only one of them is built depending on if @@ -685,14 +683,14 @@ # and bundled content in the top 25 languages (25 x 2). "ash/webui/help_app_ui/resources/prod/help_app_bundle_resources.grd": { "META": {"sizes": {"includes": [300],}}, # Relies on src-internal. - "includes": [3080], + "includes": [5320], }, "ash/webui/help_app_ui/resources/mock/help_app_bundle_mock_resources.grd": { - "includes": [3080], + "includes": [5320], }, "ash/webui/media_app_ui/resources/media_app_resources.grd": { "META": {"join": 2}, - "includes": [3100], + "includes": [5340], }, # Both media_app_bundle_resources.grd and media_app_bundle_mock_resources.grd # start with the same id because only one of them is built depending on if @@ -700,77 +698,77 @@ # of languages (74). "ash/webui/media_app_ui/resources/prod/media_app_bundle_resources.grd": { "META": {"sizes": {"includes": [130],}}, # Relies on src-internal. - "includes": [3120], + "includes": [5360], }, "ash/webui/media_app_ui/resources/mock/media_app_bundle_mock_resources.grd": { - "includes": [3120], + "includes": [5360], }, "<(SHARED_INTERMEDIATE_DIR)/ash/webui/print_management/resources/resources.grd": { "META": {"join": 2, "sizes": {"includes": [20]}}, - "includes": [3140], + "includes": [5380], }, "<(SHARED_INTERMEDIATE_DIR)/ash/webui/sample_system_web_app_ui/resources/trusted/ash_sample_system_web_app_resources.grd": { "META": {"sizes": {"includes": [50],}}, - "includes": [3180], + "includes": [5400], }, "<(SHARED_INTERMEDIATE_DIR)/ash/webui/sample_system_web_app_ui/resources/untrusted/ash_sample_system_web_app_untrusted_resources.grd": { "META": {"sizes": {"includes": [50],}}, - "includes": [3200], + "includes": [5420], }, "ash/webui/scanning/resources/scanning_app_resources.grd": { - "includes": [3220], - "structures": [3240], + "includes": [5440], + "structures": [5460], }, "<(SHARED_INTERMEDIATE_DIR)/ash/webui/system_extensions_internals_ui/ash_system_extensions_internals_resources.grd": { "META": {"sizes": {"includes": [10],}}, - "includes": [3260], + "includes": [5480], }, "chromeos/resources/chromeos_resources.grd": { - "includes": [3280], + "includes": [5500], }, "<(SHARED_INTERMEDIATE_DIR)/ash/webui/eche_app_ui/ash_eche_app_resources.grd": { "META": {"sizes": {"includes": [50],}}, - "includes": [3300], + "includes": [5520], }, # Both ash_eche_bundle_resources.grd and ash_eche_bundle_mock_resources.grd # start with the same id because only one of them is built depending on if # src_internal is available. "ash/webui/eche_app_ui/resources/prod/ash_eche_bundle_resources.grd": { "META": {"sizes": {"includes": [120],}}, - "includes": [3320], + "includes": [5540], }, "ash/webui/eche_app_ui/resources/mock/ash_eche_bundle_mock_resources.grd": { "META": {"sizes": {"includes": [120],}}, - "includes": [3320], + "includes": [5540], }, "ash/webui/multidevice_debug/resources/multidevice_debug_resources.grd": { "META": {"join": 2}, - "includes": [3330], + "includes": [5560], }, "<(SHARED_INTERMEDIATE_DIR)/ash/webui/personalization_app/resources/resources.grd": { "META": {"sizes": {"includes": [200],}}, - "includes": [3340], + "includes": [5580], }, "<(SHARED_INTERMEDIATE_DIR)/ash/webui/demo_mode_app_ui/ash_demo_mode_app_resources.grd": { "META": {"sizes": {"includes": [50],}}, - "includes": [3360], + "includes": [5600], }, "<(SHARED_INTERMEDIATE_DIR)/ash/webui/projector_app/resources/app/trusted/ash_projector_app_trusted_resources.grd": { "META": {"sizes": {"includes": [50],}}, - "includes": [3380], + "includes": [5620], }, "<(SHARED_INTERMEDIATE_DIR)/ash/webui/projector_app/resources/app/untrusted/ash_projector_app_untrusted_resources.grd": { "META": {"sizes": {"includes": [50],}}, - "includes": [3395], + "includes": [5640], }, "<(SHARED_INTERMEDIATE_DIR)/ash/webui/projector_app/resources/annotator/untrusted/ash_projector_annotator_untrusted_resources.grd": { "META": {"sizes": {"includes": [50],}}, - "includes": [3405], + "includes": [5660], }, "<(SHARED_INTERMEDIATE_DIR)/ash/webui/projector_app/resources/common/ash_projector_common_resources.grd": { "META": {"sizes": {"includes": [50],}}, - "includes": [3415], + "includes": [5680], }, # Both projector_app_bundle_resources.grd and projector_app_bundle_mock_resources.grd @@ -779,28 +777,28 @@ # of languages (79). "ash/webui/projector_app/resources/prod/projector_app_bundle_resources.grd": { "META": {"sizes": {"includes": [120],}}, # Relies on src-internal. - "includes": [3420], + "includes": [5700], }, "ash/webui/projector_app/resources/mock/projector_app_bundle_mock_resources.grd": { - "includes": [3420], + "includes": [5700], }, "<(SHARED_INTERMEDIATE_DIR)/ash/webui/face_ml_app_ui/resources/trusted/ash_face_ml_app_resources.grd": { "META": {"join": 2, "sizes": {"includes": [50],}}, - "includes": [3440], + "includes": [5720], }, # Both face_ml_app_bundle_resources.grd and face_ml_app_bundle_mock_resources.grd # start with the same id because only one of them is built depending on if # src_internal is available. "ash/webui/face_ml_app_ui/resources/prod/face_ml_app_bundle_resources.grd": { "META": {"sizes": {"includes": [120],}}, # Relies on src-internal. - "includes": [3460], + "includes": [5740], }, "ash/webui/face_ml_app_ui/resources/mock/face_ml_app_bundle_mock_resources.grd": { - "includes": [3460], + "includes": [5740], }, "<(SHARED_INTERMEDIATE_DIR)/ash/webui/face_ml_app_ui/resources/untrusted/ash_face_ml_app_untrusted_resources.grd": { "META": {"join": 2, "sizes": {"includes": [50],}}, - "includes": [3480], + "includes": [5760], }, # END chromeos/ section. @@ -810,52 +808,52 @@ "ash/components/arc/input_overlay/resources/input_overlay_resources.grd": { # Big alignment at start of section. "META": {"align": 1000}, - "includes": [3500], + "includes": [6000], }, # Chromium strings and Google Chrome strings must start at the same id. # We only use one file depending on whether we're building Chromium or # Google Chrome. "components/components_chromium_strings.grd": { - "messages": [3520], + "messages": [6020], }, "components/components_google_chrome_strings.grd": { - "messages": [3520], + "messages": [6020], }, "components/components_locale_settings.grd": { "META": {"join": 2}, - "includes": [3540], - "messages": [3560], + "includes": [6040], + "messages": [6060], }, "components/components_strings.grd": { - "messages": [3580], + "messages": [6080], }, "components/headless/command_handler/headless_command.grd": { - "includes": [3590], + "includes": [6100], }, "components/omnibox/resources/omnibox_pedal_synonyms.grd": { - "messages": [3600], + "messages": [6120], }, # components/policy/resources/policy_templates.grd and # components/policy/resources/policy_templates.build.grd must share the same # id because they are based on the same structure, however they are used in # different pipelines. "components/policy/resources/policy_templates.grd": { - "structures": [3640], + "structures": [6140], }, "components/policy/resources/policy_templates.build.grd": { - "structures": [3640], + "structures": [6140], }, "components/resources/components_resources.grd": { - "includes": [3660], + "includes": [6160], }, "components/resources/components_scaled_resources.grd": { - "structures": [3680], + "structures": [6180], }, "components/embedder_support/android/java/strings/web_contents_delegate_android_strings.grd": { - "messages": [3700], + "messages": [6200], }, "components/autofill/core/browser/autofill_address_rewriter_resources.grd":{ - "includes": [3720] + "includes": [6220] }, # END components/ section. @@ -864,8 +862,8 @@ # chrome/ and ios/chrome/ must start at the same id. # App only use one file depending on whether it is iOS or other platform. "ios/chrome/app/resources/ios_resources.grd": { - "includes": [400], - "structures": [420], + "includes": [800], + "structures": [820], }, # Chromium strings and Google Chrome strings must start at the same id. @@ -874,69 +872,69 @@ "ios/chrome/app/strings/ios_chromium_strings.grd": { # Big alignment to make start IDs look nicer. "META": {"align": 100}, - "messages": [500], + "messages": [900], }, "ios/chrome/app/strings/ios_google_chrome_strings.grd": { - "messages": [500], + "messages": [900], }, "ios/chrome/app/strings/ios_strings.grd": { # Big alignment since strings (previous item) are frequently added. "META": {"join": 2, "align": 200}, - "messages": [600], + "messages": [1000], }, "ios/chrome/app/theme/ios_theme_resources.grd": { # Big alignment since strings (previous item) are frequently added. "META": {"align": 100}, - "structures": [700], + "structures": [1100], }, "ios/chrome/share_extension/strings/ios_share_extension_strings.grd": { - "messages": [720], + "messages": [1120], }, "ios/chrome/search_widget_extension/strings/ios_search_widget_extension_strings.grd": { - "messages": [740], + "messages": [1140], }, "ios/chrome/search_widget_extension/strings/ios_search_widget_extension_chromium_strings.grd": { - "messages": [760], + "messages": [1160], }, "ios/chrome/search_widget_extension/strings/ios_search_widget_extension_google_chrome_strings.grd": { - "messages": [760], + "messages": [1160], }, "ios/chrome/content_widget_extension/strings/ios_content_widget_extension_chromium_strings.grd": { "META": {"join": 2}, - "messages": [780], + "messages": [1180], }, "ios/chrome/content_widget_extension/strings/ios_content_widget_extension_google_chrome_strings.grd": { - "messages": [780], + "messages": [1180], }, "ios/chrome/credential_provider_extension/strings/ios_credential_provider_extension_strings.grd": { "META": {"join": 2}, - "messages": [800], + "messages": [1200], }, "ios/chrome/widget_kit_extension/strings/ios_widget_kit_extension_strings.grd": { - "messages": [820], + "messages": [1220], }, "ios/web/ios_web_resources.grd": { - "includes": [825], + "includes": [1240], }, "ios/web/test/test_resources.grd": { - "includes": [830], + "includes": [1260], }, # END ios/ section. # START ios_internal/ section. "ios_internal/chrome/app/ios_internal_strings.grd": { - "messages": [840], + "messages": [1280], }, "ios_internal/chrome/app/theme/mobile_theme_resources.grd": { - "structures": [860], + "structures": [1300], }, "ios_internal/chrome/app/ios_internal_chromium_strings.grd": { "META": {"join": 2}, - "messages": [3740], + "messages": [6240], }, "ios_internal/chrome/app/ios_internal_google_chrome_strings.grd": { - "messages": [3740], + "messages": [6240], }, # END ios_internal/ section. @@ -944,19 +942,19 @@ "content/content_resources.grd": { # Big alignment at start of section. "META": {"join": 2, "align": 100}, - "includes": [3800], + "includes": [6300], }, "content/shell/shell_resources.grd": { - "includes": [3820], + "includes": [6320], }, "content/test/web_ui_mojo_test_resources.grd": { - "includes": [3840], + "includes": [6340], }, # This file is generated during the build. "<(SHARED_INTERMEDIATE_DIR)/content/browser/tracing/tracing_resources.grd": { "META": {"sizes": {"includes": [20],}}, - "includes": [3860], + "includes": [6360], }, # END content/ section. @@ -965,167 +963,167 @@ "ash/ash_strings.grd": { # Big alignment at start of section. "META": {"align": 100}, - "messages": [3960], + "messages": [6400], }, "<(SHARED_INTERMEDIATE_DIR)/ash/webui/os_feedback_ui/resources/ash_os_feedback_resources.grd": { "META": {"sizes": {"includes": [50],}}, - "includes": [3980], + "includes": [6420], }, "<(SHARED_INTERMEDIATE_DIR)/ash/webui/os_feedback_ui/untrusted_resources/ash_os_feedback_untrusted_resources.grd": { "META": {"sizes": {"includes": [50],}}, - "includes": [3982], + "includes": [6440], }, "<(SHARED_INTERMEDIATE_DIR)/ash/webui/firmware_update_ui/resources/ash_firmware_update_app_resources.grd": { "META": {"sizes": {"includes": [200],}}, - "includes": [3990], + "includes": [6460], }, "<(SHARED_INTERMEDIATE_DIR)/ash/webui/shortcut_customization_ui/resources/ash_shortcut_customization_app_resources.grd": { "META": {"sizes": {"includes": [200],}}, - "includes": [4000], + "includes": [6480], }, "ash/shortcut_viewer/shortcut_viewer_strings.grd": { - "messages": [4020], + "messages": [6500], }, "<(SHARED_INTERMEDIATE_DIR)/ash/webui/shimless_rma/resources/ash_shimless_rma_resources.grd": { "META": {"sizes": {"includes": [50],}}, - "includes": [4040], + "includes": [6520], }, "ash/keyboard/ui/keyboard_resources.grd": { - "includes": [4060], + "includes": [6540], }, "ash/login/resources/login_resources.grd": { - "structures": [4080], + "structures": [6560], }, "ash/public/cpp/resources/ash_public_unscaled_resources.grd": { - "includes": [4100], - "structures": [4101], + "includes": [6580], + "structures": [6600], }, "base/tracing/protos/resources.grd": { - "includes": [4120], + "includes": [6620], }, "chromecast/app/resources/chromecast_settings.grd": { - "messages": [4140], + "messages": [6640], }, "chromecast/app/resources/shell_resources.grd": { - "includes": [4160], + "includes": [6660], }, "chromecast/renderer/resources/extensions_renderer_resources.grd": { - "includes": [4180], + "includes": [6680], }, "device/bluetooth/bluetooth_strings.grd": { - "messages": [4240], + "messages": [6700], }, "device/fido/fido_strings.grd": { - "messages": [4260], + "messages": [6720], }, "extensions/browser/resources/extensions_browser_resources.grd": { - "structures": [4280], + "structures": [6740], }, "extensions/extensions_resources.grd": { - "includes": [4300], + "includes": [6760], }, "extensions/renderer/resources/extensions_renderer_resources.grd": { - "includes": [4320], - "structures": [4340], + "includes": [6780], + "structures": [6800], }, "extensions/shell/app_shell_resources.grd": { - "includes": [4360], + "includes": [6820], }, "extensions/strings/extensions_strings.grd": { - "messages": [4380], + "messages": [6840], }, "mojo/public/js/mojo_bindings_resources.grd": { - "includes": [4420], + "includes": [6860], }, "net/base/net_resources.grd": { - "includes": [4440], + "includes": [6880], }, "remoting/resources/remoting_strings.grd": { - "messages": [4460], + "messages": [6900], }, "services/services_strings.grd": { - "messages": [4480], + "messages": [6920], }, "skia/skia_resources.grd": { - "includes": [4500], + "includes": [6940], }, "third_party/blink/public/blink_image_resources.grd": { - "structures": [4520], + "structures": [6960], }, "third_party/blink/public/blink_resources.grd": { - "includes": [4540], + "includes": [6980], }, "third_party/blink/renderer/modules/media_controls/resources/media_controls_resources.grd": { - "includes": [4560], - "structures": [4580], + "includes": [7000], + "structures": [7020], }, "third_party/blink/public/strings/blink_accessibility_strings.grd": { - "messages": [4600], + "messages": [7040], }, "third_party/blink/public/strings/blink_strings.grd": { - "messages": [4610], + "messages": [7060], }, "third_party/libaddressinput/chromium/address_input_strings.grd": { - "messages": [4620], + "messages": [7080], }, "ui/base/test/ui_base_test_resources.grd": { - "messages": [4640], + "messages": [7100], }, "ui/chromeos/resources/ui_chromeos_resources.grd": { - "structures": [4660], + "structures": [7120], }, "<(SHARED_INTERMEDIATE_DIR)/ui/chromeos/styles/cros_typography_resources.grd": { "META": {"sizes": {"includes": [5],}}, - "includes": [4678], + "includes": [7140], }, "ui/chromeos/ui_chromeos_strings.grd": { - "messages": [4680], + "messages": [7160], }, "<(SHARED_INTERMEDIATE_DIR)/ui/file_manager/file_manager_gen_resources.grd": { "META": {"sizes": {"includes": [2000]}}, - "includes": [4700], + "includes": [7180], }, "ui/file_manager/file_manager_resources.grd": { - "includes": [4720], + "includes": [7200], }, "ui/resources/ui_resources.grd": { - "structures": [4740], + "structures": [7220], }, "ui/resources/ui_unscaled_resources.grd": { - "includes": [4760], + "includes": [7240], }, "ui/strings/app_locale_settings.grd": { - "messages": [4780], + "messages": [7260], }, "ui/strings/ax_strings.grd": { - "messages": [4800], + "messages": [7280], }, "ui/strings/ui_strings.grd": { - "messages": [4810], + "messages": [7300], }, "ui/views/examples/views_examples_resources.grd": { - "messages": [4820], + "messages": [7320], }, "ui/views/resources/views_resources.grd": { - "structures": [4840], + "structures": [7340], }, "ui/webui/examples/resources/webui_examples_resources.grd": { - "messages": [4850], + "messages": [7360], }, "<(SHARED_INTERMEDIATE_DIR)/ui/webui/resources/webui_resources.grd": { "META": {"sizes": {"includes": [1100]}}, - "includes": [4900], + "includes": [7380], }, "weblayer/weblayer_resources.grd": { - "includes": [4920], + "includes": [7400], }, # This file is generated during the build. @@ -1134,13 +1132,13 @@ # In debug build, devtools frontend sources are not bundled and therefore # includes a lot of individual resources "META": {"sizes": {"includes": [2500],}}, - "includes": [4940], + "includes": [7420], }, # This file is generated during the build. "<(SHARED_INTERMEDIATE_DIR)/resources/inspector_overlay/inspector_overlay_resources.grd": { "META": {"sizes": {"includes": [50],}}, - "includes": [4960], + "includes": [7440], }, # END "everything else" section.
diff --git a/tools/json_schema_compiler/cc_generator.py b/tools/json_schema_compiler/cc_generator.py index 02c7e48..484226a 100644 --- a/tools/json_schema_compiler/cc_generator.py +++ b/tools/json_schema_compiler/cc_generator.py
@@ -243,13 +243,15 @@ .Append('out.%(name)s.emplace();') .Append('out.%(name)s->reserve(%(name)s->size());') .Sblock('for (const auto& element : *%(name)s) {') - .Append('out.%(name)s->push_back(element.Clone());') + .Append(self._util_cc_helper.AppendToContainer( + '*out.%(name)s', 'element.Clone()')) .Eblock('}') .Eblock('}')) else: (c.Append('out.%(name)s.reserve(%(name)s.size());') .Sblock('for (const auto& element : %(name)s) {') - .Append('out.%(name)s.push_back(element.Clone());') + .Append(self._util_cc_helper.AppendToContainer( + 'out.%(name)s', 'element.Clone()')) .Eblock('}')) elif (underlying_type.property_type == PropertyType.OBJECT or underlying_type.property_type == PropertyType.ANY or @@ -955,7 +957,11 @@ elif underlying_type.property_type == PropertyType.ARRAY: if is_ptr: var = '*%s' % var - return '%s' % self._util_cc_helper.CreateValueFromArray(var) + underlying_item_cpp_type = self._type_helper.GetCppType(underlying_type.item_type) + if underlying_item_cpp_type != 'base::Value': + return '%s' % self._util_cc_helper.CreateValueFromArray(var) + else: + return '(%s).Clone()' % var elif (underlying_type.property_type.is_fundamental or underlying_type.is_serializable_function): if is_ptr: @@ -1200,18 +1206,22 @@ c.Append('std::u16string array_parse_error;') args.append('array_parse_error') - c.Append('if (!%s(%s)) {' % ( - self._util_cc_helper.PopulateArrayFromListFunction(is_ptr), - self._GenerateArgs(args, generate_error_messages=False))) - c.Sblock() - if self._generate_error_messages: - c.Append( - 'array_parse_error = u"Error at key \'%(key)s\': " + ' - 'array_parse_error;' - ) - c.Concat(self._AppendError16('array_parse_error')) - c.Append('return %(failure_value)s;') - c.Eblock('}') + item_cpp_type = self._type_helper.GetCppType(item_type) + if item_cpp_type != 'base::Value': + c.Append('if (!%s(%s)) {' % ( + self._util_cc_helper.PopulateArrayFromListFunction(is_ptr), + self._GenerateArgs(args, generate_error_messages=False))) + c.Sblock() + if self._generate_error_messages: + c.Append( + 'array_parse_error = u"Error at key \'%(key)s\': " + ' + 'array_parse_error;' + ) + c.Concat(self._AppendError16('array_parse_error')) + c.Append('return %(failure_value)s;') + c.Eblock('}') + else: + c.Append('%(dst_var)s = %(src_var)s.GetList().Clone();') c.Eblock('}') elif underlying_type.property_type == PropertyType.CHOICES: if is_ptr:
diff --git a/tools/json_schema_compiler/cpp_type_generator.py b/tools/json_schema_compiler/cpp_type_generator.py index 78d847e..6f021a71 100644 --- a/tools/json_schema_compiler/cpp_type_generator.py +++ b/tools/json_schema_compiler/cpp_type_generator.py
@@ -204,7 +204,10 @@ cpp_type = 'base::Value::Dict' elif type_.property_type == PropertyType.ARRAY: item_cpp_type = self.GetCppType(type_.item_type) - cpp_type = 'std::vector<%s>' % item_cpp_type + if item_cpp_type == 'base::Value': + cpp_type = 'base::Value::List' + else: + cpp_type = 'std::vector<%s>' % item_cpp_type elif type_.property_type == PropertyType.BINARY: cpp_type = 'std::vector<uint8_t>' else:
diff --git a/tools/json_schema_compiler/h_generator.py b/tools/json_schema_compiler/h_generator.py index b4ed92d..051b6c6b 100644 --- a/tools/json_schema_compiler/h_generator.py +++ b/tools/json_schema_compiler/h_generator.py
@@ -222,15 +222,19 @@ c.Comment(type_.description) c.Cblock(self._GenerateType(type_.item_type, is_toplevel=is_toplevel)) if generate_typedefs: - (c.Append('typedef std::vector<%s > %s;' % ( - self._type_helper.GetCppType(type_.item_type), - classname)) - ) + item_cpp_type = self._type_helper.GetCppType(type_.item_type) + if item_cpp_type != 'base::Value': + (c.Append('using %s = std::vector<%s >;' % ( + classname, + item_cpp_type)) + ) + else: + c.Append('using %s = base::Value::List;' % classname) elif type_.property_type == PropertyType.STRING: if generate_typedefs: if type_.description: c.Comment(type_.description) - c.Append('typedef std::string %(classname)s;') + c.Append('using %(classname)s = std::string;') elif type_.property_type == PropertyType.ENUM: if type_.description: c.Comment(type_.description)
diff --git a/tools/json_schema_compiler/util.h b/tools/json_schema_compiler/util.h index 154add2..4816936 100644 --- a/tools/json_schema_compiler/util.h +++ b/tools/json_schema_compiler/util.h
@@ -155,31 +155,27 @@ out.Append(from.ToValue()); } -// Set |out| to the the contents of |from|. Requires PopulateItem to be +// Returns a list matching the contents of |from|. Requires PopulateItem to be // implemented for |T|. template <class T> -void PopulateListFromArray(const std::vector<T>& from, base::Value::List& out) { - out.clear(); - for (const T& item : from) - AddItemToList(item, out); -} - -// Set |out| to the the contents of |from| if |from| is not null. Requires -// PopulateItem to be implemented for |T|. -template <class T> -void PopulateListFromOptionalArray(const std::unique_ptr<std::vector<T>>& from, - base::Value::List& out) { - if (from) - PopulateListFromArray(*from, out); -} - -template <class T> base::Value::List CreateValueFromArray(const std::vector<T>& from) { base::Value::List list; - PopulateListFromArray(from, list); + for (const T& item : from) { + AddItemToList(item, list); + } return list; } +template <class T> +void AppendToContainer(base::Value::List& container, T&& value) { + container.Append(std::forward<T>(value)); +} + +template <class C, class T> +void AppendToContainer(std::vector<C>& container, T&& value) { + container.emplace_back(std::forward<T>(value)); +} + } // namespace util } // namespace json_schema_compiler
diff --git a/tools/json_schema_compiler/util_cc_helper.py b/tools/json_schema_compiler/util_cc_helper.py index fb99b2f..181f4d4d 100644 --- a/tools/json_schema_compiler/util_cc_helper.py +++ b/tools/json_schema_compiler/util_cc_helper.py
@@ -26,6 +26,12 @@ """ return '%s::CreateValueFromArray(%s)' % (_API_UTIL_NAMESPACE, src) + def AppendToContainer(self, container, value): + """Appends |value| to |container|. + """ + return '%s::AppendToContainer(%s, %s);' % ( + _API_UTIL_NAMESPACE, container, value) + def GetIncludePath(self): return '#include "tools/json_schema_compiler/util.h"'
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml index cac00af..fc506da 100644 --- a/tools/metrics/histograms/enums.xml +++ b/tools/metrics/histograms/enums.xml
@@ -32921,6 +32921,7 @@ <int value="1107" label="GoogleSearchSidePanelEnabled"/> <int value="1108" label="PdfUseSkiaRendererEnabled"/> <int value="1109" label="DataUrlInSvgUseEnabled"/> + <int value="1110" label="RSAKeyUsageForLocalAnchorsEnabled"/> </enum> <enum name="EnterprisePoliciesSources"> @@ -42573,6 +42574,7 @@ <int value="4573" label="V8InvalidatedNumberStringNotRegexpLikeProtector"/> <int value="4574" label="CriticalCHRestartNavigationTiming"/> <int value="4575" label="TopLevelDocumentWithEmbeddedCredentials"/> + <int value="4576" label="V8Navigator_GetInterestGroupAdAuctionData_Method"/> </enum> <enum name="FeaturePolicyAllowlistType"> @@ -114673,6 +114675,7 @@ <int value="57" label="Visited Chrome Web Store via extensions sub menu."/> <int value="58" label="Password Manager"/> <int value="59" label="Translate Page"/> + <int value="60" label="Show Chrome Labs"/> </enum> <enum name="WrongConfigurationMetric">
diff --git a/tools/metrics/histograms/metadata/blink/histograms.xml b/tools/metrics/histograms/metadata/blink/histograms.xml index 0a77dfa..ea27f37 100644 --- a/tools/metrics/histograms/metadata/blink/histograms.xml +++ b/tools/metrics/histograms/metadata/blink/histograms.xml
@@ -30,6 +30,7 @@ </variants> <variants name="BlinkVisibleLoadTimeSuffixes"> + <variant name="" summary="Aggregated across all connection types"/> <variant name=".2G" summary="2G effective connection type"/> <variant name=".3G" summary="3G effective connection type"/> <variant name=".4G" summary="4G effective connection type"/> @@ -3587,7 +3588,7 @@ </summary> </histogram> -<histogram name="Blink.VisibleBeforeLoaded.LazyLoadImages.AboveTheFold2" +<histogram name="Blink.VisibleBeforeLoaded.LazyLoadImages.AboveTheFold3" enum="NQEEffectiveConnectionType" expires_after="2023-11-12"> <owner>pdr@chromium.org</owner> <owner>paint-dev@chromium.org</owner> @@ -3597,7 +3598,7 @@ </summary> </histogram> -<histogram name="Blink.VisibleBeforeLoaded.LazyLoadImages.BelowTheFold2" +<histogram name="Blink.VisibleBeforeLoaded.LazyLoadImages.BelowTheFold3" enum="NQEEffectiveConnectionType" expires_after="2023-11-05"> <owner>pdr@chromium.org</owner> <owner>paint-dev@chromium.org</owner>
diff --git a/tools/metrics/histograms/metadata/feature_engagement/histograms.xml b/tools/metrics/histograms/metadata/feature_engagement/histograms.xml index c57db17..3665b9c 100644 --- a/tools/metrics/histograms/metadata/feature_engagement/histograms.xml +++ b/tools/metrics/histograms/metadata/feature_engagement/histograms.xml
@@ -541,30 +541,6 @@ </summary> </histogram> -<histogram name="Tutorial.FocusToggleCount.Aborted" units="times" - expires_after="2022-12-31"> - <owner>dpenning@chromium.org</owner> - <owner>dfried@chromium.org</owner> - <summary> - Records the number of times the user toggles focus to the help bubble using - the keyboard during a tutorial that the user aborts or fails. Can be - cross-referenced with screen reader state to determine if screen reader or - non-screen-reader users are using the keyboard to navigate. - </summary> -</histogram> - -<histogram name="Tutorial.FocusToggleCount.Completed" units="times" - expires_after="2022-12-31"> - <owner>dpenning@chromium.org</owner> - <owner>dfried@chromium.org</owner> - <summary> - Records the number of times the user toggles focus to the help bubble using - the keyboard during a tutorial that the user completes. Can be - cross-referenced with screen reader state to determine if screen reader or - non-screen-reader users are using the keyboard to navigate. - </summary> -</histogram> - <histogram name="Tutorial.TabGroup.EditedTitle" enum="BooleanSuccess" expires_after="2023-09-24"> <owner>dpenning@chromium.org</owner>
diff --git a/tools/metrics/histograms/metadata/histogram_suffixes_list.xml b/tools/metrics/histograms/metadata/histogram_suffixes_list.xml index 38a426a2..5c5b17f 100644 --- a/tools/metrics/histograms/metadata/histogram_suffixes_list.xml +++ b/tools/metrics/histograms/metadata/histogram_suffixes_list.xml
@@ -6030,6 +6030,7 @@ <suffix name="Settings" label=""/> <suffix name="ShowBookmarkBar" label=""/> <suffix name="ShowBookmarkMgr" label=""/> + <suffix name="ShowChromeLabs" label=""/> <suffix name="ShowDownloads" label=""/> <suffix name="ShowHistory" label=""/> <suffix name="ShowKaleidoscope" label=""/>
diff --git a/tools/metrics/histograms/metadata/segmentation_platform/histograms.xml b/tools/metrics/histograms/metadata/segmentation_platform/histograms.xml index e5794c22..8165607 100644 --- a/tools/metrics/histograms/metadata/segmentation_platform/histograms.xml +++ b/tools/metrics/histograms/metadata/segmentation_platform/histograms.xml
@@ -720,6 +720,45 @@ </summary> </histogram> +<histogram name="SegmentationPlatform.SyncSessions.TabsCountAtFirstSyncUpdate" + units="tabs" expires_after="2023-10-01"> + <owner>ritikagup@google.com</owner> + <owner>chrome-segmentation-platform@google.com</owner> + <summary> + Records the number of tabs that are opened and synced till the first sync + session update. + + Recorded once, only if there is sync session update for the first time. + </summary> +</histogram> + +<histogram + name="SegmentationPlatform.SyncSessions.TimeFromStartupToFirstSyncUpdate" + units="ms" expires_after="2023-10-01"> + <owner>ritikagup@google.com</owner> + <owner>chrome-segmentation-platform@google.com</owner> + <summary> + The time taken from chrome startup to the time first sync session update is + received. This includes the network delay for receiving the sync session + updates. The metric is recorded once after chrome startup if sync is enabled + and sync session is updated for the first time. + </summary> +</histogram> + +<histogram + name="SegmentationPlatform.SyncSessions.TimeFromTabLoadedToSyncUpdate" + units="ms" expires_after="2023-10-01"> + <owner>ritikagup@google.com</owner> + <owner>chrome-segmentation-platform@google.com</owner> + <summary> + After chrome startup anytime if a tab is loaded, the time taken from tab + load time to the time next immediate sync session update is received. This + includes the network delay for receiving the sync session updates. The + metric is recorded everytime a tab is loaded and a sync session update is + recieved after it. + </summary> +</histogram> + <histogram name="SegmentationPlatform.TrainingDataCollectionEvents.{SegmentationModel}" enum="SegmentationPlatformTrainingDataCollectionEvent"
diff --git a/tools/metrics/histograms/metadata/structured_metrics/histograms.xml b/tools/metrics/histograms/metadata/structured_metrics/histograms.xml index eaf6623..2c2f1cc9 100644 --- a/tools/metrics/histograms/metadata/structured_metrics/histograms.xml +++ b/tools/metrics/histograms/metadata/structured_metrics/histograms.xml
@@ -23,6 +23,44 @@ </summary> </histogram> +<histogram name="StructuredMetrics.LogStore.CompressionRatio" units="%" + expires_after="2023-07-31"> + <owner>andrewbregger@google.com</owner> + <owner>jongahn@google.com</owner> + <owner>chromeos-data-eng@google.com</owner> + <owner>chrome-metrics-team@google.com</owner> + <summary> + The compression ratio of Structured Metrics logs. Recorded when logs are + stored. + </summary> +</histogram> + +<histogram name="StructuredMetrics.LogStore.Dropped" units="logs" + expires_after="2023-07-31"> + <owner>andrewbregger@google.com</owner> + <owner>jongahn@google.com</owner> + <owner>chromeos-data-eng@google.com</owner> + <owner>chrome-metrics-team@google.com</owner> + <summary> + The number of logs dropped for exceeding the log size constraints. Recorded + when trimming the logs is complete and when the remaining logs is less then + the original logs. + </summary> +</histogram> + +<histogram name="StructuredMetrics.LogStore.DroppedSize" units="KB" + expires_after="2023-07-31"> + <owner>andrewbregger@google.com</owner> + <owner>jongahn@google.com</owner> + <owner>chromeos-data-eng@google.com</owner> + <owner>chrome-metrics-team@google.com</owner> + <summary> + The size in KB of logs trimmed by log storage for being too large. Recorded + when trimming the log and the compressed size of a log exceeds the max log + size. + </summary> +</histogram> + <histogram name="StructuredMetrics.Reporting.ActualUploadInterval" units="minutes" expires_after="2023-07-31"> <owner>andrewbregger@google.com</owner>
diff --git a/tools/perf/core/perfetto_binary_roller/binary_deps.json b/tools/perf/core/perfetto_binary_roller/binary_deps.json index c23b2e2..8b58f70 100644 --- a/tools/perf/core/perfetto_binary_roller/binary_deps.json +++ b/tools/perf/core/perfetto_binary_roller/binary_deps.json
@@ -5,16 +5,16 @@ "full_remote_path": "perfetto-luci-artifacts/v34.0/linux-arm64/trace_processor_shell" }, "win": { - "hash": "3918d79c0de038900b2c30e386136a00e519e0a9", - "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/win/9d82cb852512318a848e2050551eb305bf0872ac/trace_processor_shell.exe" + "hash": "2755b8a2529155c021489066dc5545dd04703e1c", + "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/win/86ba039eec4889624d5c44a4ebf19b18d8df91cc/trace_processor_shell.exe" }, "linux_arm": { "hash": "336a42cb9ec3c417e13a97816271fec10cdf67e5", "full_remote_path": "perfetto-luci-artifacts/v34.0/linux-arm/trace_processor_shell" }, "mac": { - "hash": "fc7c372cbbe5cde63d5d13a9eefbb5668262eca5", - "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/mac/313bfe34b8a790700c4550439d70b71fa665613e/trace_processor_shell" + "hash": "03ad7f27cbcd7c584f3e73cbc094c5562769654e", + "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/mac/ab5c58d254d434ec35022ff5c8dfa437ff34ac6d/trace_processor_shell" }, "mac_arm64": { "hash": "c32364e05e22cdf82ee0866aedd11c0e2050809c", @@ -22,7 +22,7 @@ }, "linux": { "hash": "02b7b3c80951e4fda942d49484f36880cfeb2648", - "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/linux/313bfe34b8a790700c4550439d70b71fa665613e/trace_processor_shell" + "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/linux/ab5c58d254d434ec35022ff5c8dfa437ff34ac6d/trace_processor_shell" } }, "power_profile.sql": {
diff --git a/tools/traffic_annotation/summary/annotations.xml b/tools/traffic_annotation/summary/annotations.xml index f435d4c..a69bd07 100644 --- a/tools/traffic_annotation/summary/annotations.xml +++ b/tools/traffic_annotation/summary/annotations.xml
@@ -220,7 +220,6 @@ <item id="sigined_exchange_cert_fetcher" added_in_milestone="66" content_hash_code="007c2dac" os_list="linux,windows,chromeos,android" file_path="content/browser/web_package/signed_exchange_cert_fetcher.cc" /> <item id="signed_in_profile_avatar" added_in_milestone="62" content_hash_code="071dd1bf" os_list="linux,windows,chromeos,android" file_path="chrome/browser/profiles/profile_downloader.cc" /> <item id="socket_bio_adapter" added_in_milestone="66" content_hash_code="014a4058" os_list="linux,windows,chromeos,android" file_path="net/socket/socket_bio_adapter.cc" /> - <item id="spdy_push_stream" added_in_milestone="67" content_hash_code="042048b5" os_list="linux,windows,chromeos,android" file_path="net/spdy/spdy_session.cc" /> <item id="spdy_session_control" added_in_milestone="66" content_hash_code="01c6f3f0" os_list="linux,windows,chromeos,android" file_path="net/spdy/spdy_session.cc" /> <item id="speech_recognition_downstream" added_in_milestone="62" content_hash_code="07323e31" os_list="linux,windows,chromeos" file_path="content/browser/speech/speech_recognition_engine.cc" /> <item id="speech_recognition_upstream" added_in_milestone="62" content_hash_code="0075966b" os_list="linux,windows,chromeos" file_path="content/browser/speech/speech_recognition_engine.cc" />
diff --git a/tools/traffic_annotation/summary/grouping.xml b/tools/traffic_annotation/summary/grouping.xml index 3f864ed..eb32823 100644 --- a/tools/traffic_annotation/summary/grouping.xml +++ b/tools/traffic_annotation/summary/grouping.xml
@@ -206,7 +206,6 @@ <annotation id="reporting"/> <annotation id="socket_bio_adapter"/> <annotation id="spdy_session_control"/> - <annotation id="spdy_push_stream"/> <annotation id="websocket_basic_stream"/> <annotation id="websocket_stream"/> <annotation id="notification_client"/>
diff --git a/ui/accessibility/accessibility_features.cc b/ui/accessibility/accessibility_features.cc index ba0ab7f..022d78b1 100644 --- a/ui/accessibility/accessibility_features.cc +++ b/ui/accessibility/accessibility_features.cc
@@ -291,11 +291,6 @@ ::features::kEmergencyDisableScreenAIMainContentExtraction); } -bool IsScreenAIServiceNeeded() { - return IsPdfOcrEnabled() || IsLayoutExtractionEnabled() || - IsReadAnythingWithScreen2xEnabled(); -} - // This feature is only for debug purposes and for security/privacy reasons, // should be never enabled by default . BASE_FEATURE(kScreenAIDebugMode,
diff --git a/ui/accessibility/accessibility_features.h b/ui/accessibility/accessibility_features.h index e3431bd..9a2e3ba 100644 --- a/ui/accessibility/accessibility_features.h +++ b/ui/accessibility/accessibility_features.h
@@ -224,10 +224,6 @@ // distills web pages using an ML model. AX_BASE_EXPORT bool IsReadAnythingWithScreen2xEnabled(); -// Returns true if Screen AI Service is needed as any of the features relying on -// it are enabled. -AX_BASE_EXPORT bool IsScreenAIServiceNeeded(); - // If enabled, ScreenAI library writes some debug data in /tmp. AX_BASE_EXPORT bool IsScreenAIDebugModeEnabled();
diff --git a/ui/accessibility/platform/ax_platform_node_textprovider_win.cc b/ui/accessibility/platform/ax_platform_node_textprovider_win.cc index 3098db1..39f3568 100644 --- a/ui/accessibility/platform/ax_platform_node_textprovider_win.cc +++ b/ui/accessibility/platform/ax_platform_node_textprovider_win.cc
@@ -95,17 +95,22 @@ std::swap(start, end); } + // Per [1], AddRef is called from SafeArrayPutElement when the data element is a VT_DISPATCH + // or VT_UNKNOWN. Since `text_range_provider` is a VT_UNKNOWN, we must not increment the + // object's reference count upon creation to avoid leaking it. + // + // [1]:https://learn.microsoft.com/en-us/windows/win32/api/oleauto/nf-oleauto-safearrayputelement Microsoft::WRL::ComPtr<ITextRangeProvider> text_range_provider = AXPlatformNodeTextRangeProviderWin::CreateTextRangeProvider( - std::move(start), std::move(end)); + std::move(start), std::move(end), /* add_ref */ false); if (&text_range_provider == nullptr) return E_OUTOFMEMORY; // Since we don't support disjoint text ranges, the SAFEARRAY returned // will always have one element base::win::ScopedSafearray selections_to_return( - SafeArrayCreateVector(VT_UNKNOWN /* element type */, 0 /* lower bound */, - 1 /* number of elements */)); + SafeArrayCreateVector(/* element type */ VT_UNKNOWN, /* lower bound */ 0, + /* number of elements */ 1)); if (!selections_to_return.Get()) return E_OUTOFMEMORY; @@ -116,7 +121,7 @@ DCHECK(SUCCEEDED(hr)); // Since DCHECK only happens in debug builds, return immediately to ensure - // that we're not leaking the SAFEARRAY on release builds + // that we're not leaking the SAFEARRAY on release builds. if (FAILED(hr)) return E_FAIL; @@ -173,9 +178,14 @@ // the container bounds, so we check if the bounding rects intersect rather // than if it is only contained within. if (frame_rect.Intersects(current_rect)) { + // Per [1], AddRef is called from SafeArrayPutElement when the data element is a + // VT_DISPATCH or VT_UNKNOWN. Since `text_range_provider` is a VT_UNKNOWN, we must not + // increment the object's reference count upon creation to avoid leaking it. + // + // [1]:https://learn.microsoft.com/en-us/windows/win32/api/oleauto/nf-oleauto-safearrayputelement Microsoft::WRL::ComPtr<ITextRangeProvider> text_range_provider = AXPlatformNodeTextRangeProviderWin::CreateTextRangeProvider( - current_line_start->Clone(), current_line_end->Clone()); + current_line_start->Clone(), current_line_end->Clone(), /* add_ref */ false); ranges.emplace_back(text_range_provider); } @@ -186,8 +196,8 @@ } base::win::ScopedSafearray scoped_visible_ranges( - SafeArrayCreateVector(VT_UNKNOWN /* element type */, 0 /* lower bound */, - ranges.size() /* number of elements */)); + SafeArrayCreateVector(/* element type */ VT_UNKNOWN, /* lower bound */ 0, + /* number of elements */ ranges.size())); if (!scoped_visible_ranges.Get()) return E_OUTOFMEMORY; @@ -199,7 +209,7 @@ DCHECK(SUCCEEDED(hr)); // Since DCHECK only happens in debug builds, return immediately to ensure - // that we're not leaking the SAFEARRAY on release builds + // that we're not leaking the SAFEARRAY on release builds. if (FAILED(hr)) return E_FAIL;
diff --git a/ui/accessibility/platform/ax_platform_node_textprovider_win_unittest.cc b/ui/accessibility/platform/ax_platform_node_textprovider_win_unittest.cc index a38be10..2a4eef6f 100644 --- a/ui/accessibility/platform/ax_platform_node_textprovider_win_unittest.cc +++ b/ui/accessibility/platform/ax_platform_node_textprovider_win_unittest.cc
@@ -673,6 +673,50 @@ text_edit_provider->GetSelection(selections.Receive())); } +TEST_F(AXPlatformNodeTextProviderTest, ITextRangeProviderGetSelectionRefCount) { + TestAXTreeUpdate update(std::string(R"HTML( + ++1 kRootWebArea name="Document" + ++++2 kStaticText name="hello" + )HTML")); + + Init(update); + + ComPtr<IRawElementProviderSimple> root_node = + GetRootIRawElementProviderSimple(); + + ComPtr<ITextProvider> root_text_provider; + EXPECT_HRESULT_SUCCEEDED( + root_node->GetPatternProvider(UIA_TextPatternId, &root_text_provider)); + + ComPtr<AXPlatformNodeTextProviderWin> root_platform_node; + root_text_provider->QueryInterface(IID_PPV_ARGS(&root_platform_node)); + + AXPlatformNodeWin* owner = GetOwner(root_platform_node.Get()); + AXTreeData& selected_tree_data = + const_cast<AXTreeData&>(owner->GetDelegate()->GetTreeData()); + selected_tree_data.sel_focus_object_id = 2; + selected_tree_data.sel_anchor_object_id = 2; + selected_tree_data.sel_anchor_offset = 0; + selected_tree_data.sel_focus_offset = 5; + + base::win::ScopedSafearray selections; + root_text_provider->GetSelection(selections.Receive()); + ASSERT_NE(nullptr, selections.Get()); + + LONG index = 0; + ComPtr<ITextRangeProvider> text_range_provider; + EXPECT_HRESULT_SUCCEEDED(SafeArrayGetElement( + selections.Get(), &index, static_cast<void**>(&text_range_provider))); + + // Validate that there was only one reference to the `text_range_provider`. + ASSERT_EQ(1U, text_range_provider->Release()); + + // This is needed to avoid calling SafeArrayDestroy from SafeArray's dtor when + // exiting the scope, which would crash trying to release the already + // destroyed `text_range_provider`. + selections.Release(); +} + TEST_F(AXPlatformNodeTextProviderTest, TestRemoveTextInvalidatingPositionForComparison) { TestAXTreeUpdate initial_state(std::string(R"HTML(
diff --git a/ui/accessibility/platform/ax_platform_node_textrangeprovider_win.cc b/ui/accessibility/platform/ax_platform_node_textrangeprovider_win.cc index 9cacc6ea..b12d5706 100644 --- a/ui/accessibility/platform/ax_platform_node_textrangeprovider_win.cc +++ b/ui/accessibility/platform/ax_platform_node_textrangeprovider_win.cc
@@ -101,14 +101,19 @@ ITextRangeProvider* AXPlatformNodeTextRangeProviderWin::CreateTextRangeProvider( AXPositionInstance start, - AXPositionInstance end) { + AXPositionInstance end, + bool add_ref) { CComObject<AXPlatformNodeTextRangeProviderWin>* text_range_provider = nullptr; if (SUCCEEDED(CComObject<AXPlatformNodeTextRangeProviderWin>::CreateInstance( &text_range_provider))) { DCHECK(text_range_provider); text_range_provider->SetStart(std::move(start)); text_range_provider->SetEnd(std::move(end)); - text_range_provider->AddRef(); + if (add_ref) { + // Some callers will be in situations where they pass the `ITextRangeProvider` into a + // method that automatically calls `AddRef`. Adding another here would lead to a leak. + text_range_provider->AddRef(); + } return text_range_provider; }
diff --git a/ui/accessibility/platform/ax_platform_node_textrangeprovider_win.h b/ui/accessibility/platform/ax_platform_node_textrangeprovider_win.h index 3bae814..4f4c6759 100644 --- a/ui/accessibility/platform/ax_platform_node_textrangeprovider_win.h +++ b/ui/accessibility/platform/ax_platform_node_textrangeprovider_win.h
@@ -34,7 +34,8 @@ // Creates an instance of the class. static ITextRangeProvider* CreateTextRangeProvider( AXNodePosition::AXPositionInstance start, - AXNodePosition::AXPositionInstance end); + AXNodePosition::AXPositionInstance end, + bool add_ref = true); // Creates an instance of the class for unit tests, where AXPlatformNodes // cannot be queried automatically from endpoints.
diff --git a/ui/accessibility/platform/ax_platform_node_textrangeprovider_win_fuzzer.cc b/ui/accessibility/platform/ax_platform_node_textrangeprovider_win_fuzzer.cc index 199fb3c..336cb8ae 100644 --- a/ui/accessibility/platform/ax_platform_node_textrangeprovider_win_fuzzer.cc +++ b/ui/accessibility/platform/ax_platform_node_textrangeprovider_win_fuzzer.cc
@@ -17,7 +17,6 @@ #include "base/test/scoped_feature_list.h" #include "base/win/atl.h" #include "base/win/scoped_bstr.h" -#include "base/win/scoped_safearray.h" #include "base/win/scoped_variant.h" #include "ui/accessibility/ax_enums.mojom.h" #include "ui/accessibility/ax_node.h"
diff --git a/ui/events/ash/event_rewriter_ash.cc b/ui/events/ash/event_rewriter_ash.cc index cb3a96de..5a3ebfb 100644 --- a/ui/events/ash/event_rewriter_ash.cc +++ b/ui/events/ash/event_rewriter_ash.cc
@@ -1785,12 +1785,15 @@ if (matched_mask == kSearchLeftButton) { base::RecordAction( base::UserMetricsAction("SearchClickMappedToRightClick")); + delegate_->RecordEventRemappedToRightClick( + /*alt_based_right_click=*/false); } else { DCHECK(matched_mask == kAltLeftButton); base::RecordAction( base::UserMetricsAction("AltClickMappedToRightClick")); + delegate_->RecordEventRemappedToRightClick( + /*alt_based_right_click=*/true); } - delegate_->RecordEventRemappedToRightClick(); } else { pressed_as_right_button_device_ids_.erase(mouse_event.source_device_id()); }
diff --git a/ui/events/ash/event_rewriter_ash.h b/ui/events/ash/event_rewriter_ash.h index 05be55e7..7f3a5eb 100644 --- a/ui/events/ash/event_rewriter_ash.h +++ b/ui/events/ash/event_rewriter_ash.h
@@ -136,7 +136,8 @@ // Used to record when either Alt+Click or Search+Click is remapped to a // right click event. The `kEventRemappedToRightClick` pref will be used // to determine the default behavior for simulating a right click. - virtual void RecordEventRemappedToRightClick() = 0; + virtual void RecordEventRemappedToRightClick( + bool alt_based_right_click) = 0; // Used to record Alt/Search based key event rewrites for Six Pack keys. // `alt_based` tells us whether this "six pack" event was produced by an
diff --git a/ui/events/ash/keyboard_capability.cc b/ui/events/ash/keyboard_capability.cc index bc4f90b2..3fc8bc5 100644 --- a/ui/events/ash/keyboard_capability.cc +++ b/ui/events/ash/keyboard_capability.cc
@@ -103,6 +103,7 @@ {VKEY_ALL_APPLICATIONS, TopRowActionKey::kAllApplications}, {VKEY_EMOJI_PICKER, TopRowActionKey::kEmojiPicker}, {VKEY_DICTATE, TopRowActionKey::kDictation}, + {VKEY_PRIVACY_SCREEN_TOGGLE, TopRowActionKey::kPrivacyScreenToggle}, }); // Some ChromeOS compatible keyboards have a capslock key. @@ -828,6 +829,10 @@ keyboard_info_map_.insert_or_assign(keyboard.id, std::move(keyboard_info)); } +void KeyboardCapability::DisableKeyboardInfoTrimmingForTesting() { + should_disable_trimming_ = true; +} + const KeyboardCapability::KeyboardInfo* KeyboardCapability::GetKeyboardInfo( const KeyboardDevice& keyboard) const { auto iter = keyboard_info_map_.find(keyboard.id); @@ -961,8 +966,7 @@ bool KeyboardCapability::HasPrivacyScreenKey( const KeyboardDevice& keyboard) const { - return GetTopRowLayout(keyboard) == - KeyboardTopRowLayout::kKbdTopRowLayoutDrallion && + return GetDeviceType(keyboard) == DeviceType::kDeviceInternalKeyboard && delegate_->IsPrivacyScreenSupported(); } @@ -976,6 +980,16 @@ return false; } +const std::vector<TopRowActionKey>* KeyboardCapability::GetTopRowActionKeys( + const KeyboardDevice& keyboard) { + const auto* keyboard_info = GetKeyboardInfo(keyboard); + if (!keyboard_info) { + return nullptr; + } + + return &keyboard_info->top_row_action_keys; +} + bool KeyboardCapability::HasAssistantKey(const KeyboardDevice& keyboard) const { // Some external keyboards falsely claim to have assistant keys. However, this // can be trusted for internal + ChromeOS external keyboards. @@ -1010,6 +1024,12 @@ } void KeyboardCapability::TrimKeyboardInfoMap() { + // When `should_disable_trimming_` is true, skip removal of removed devices + // from our cache of `KeyboardInfo`. + if (should_disable_trimming_) { + return; + } + auto sorted_keyboards = DeviceDataManager::GetInstance()->GetKeyboardDevices(); base::ranges::sort(sorted_keyboards, [](const ui::KeyboardDevice& device1,
diff --git a/ui/events/ash/keyboard_capability.h b/ui/events/ash/keyboard_capability.h index ecd18dda..99f9dae 100644 --- a/ui/events/ash/keyboard_capability.h +++ b/ui/events/ash/keyboard_capability.h
@@ -23,7 +23,7 @@ namespace ui { -// TODO(dpad): Handle privacy screen toggle and display mirror top row keys. +// TODO(dpad): Handle display mirror top row keys. enum class TopRowActionKey { kNone = 0, kMinValue = kNone, @@ -49,7 +49,8 @@ kAllApplications, kEmojiPicker, kDictation, - kMaxValue = kDictation, + kPrivacyScreenToggle, + kMaxValue = kPrivacyScreenToggle, }; inline constexpr auto kLayout1TopRowActionKeys = @@ -124,6 +125,7 @@ }); // Keyboard wilco/drallion map between top row keys to function keys. +// TODO(dpad): Handle privacy screen better on drallion devices. // TODO(zhangwenyu): Both F3 and F12 map to VKEY_ZOOM for wilco. Handle edge // case when creating the top row accelerator alias for VKEY_ZOOM key. inline constexpr auto kLayoutWilcoDrallionTopRowKeyToFKeyMap = @@ -334,8 +336,11 @@ const std::vector<uint32_t>* GetTopRowScanCodes(int device_id) const; // Takes a `KeyboardInfo` to use for testing the passed in keyboard. - void SetKeyboardInfoForTesting(const KeyboardDevice& keyboard, - KeyboardInfo keyboard_info); + void SetKeyboardInfoForTesting(const KeyboardDevice& keyboard, KeyboardInfo); + + // Disables "trimming" which means the `keyboard_info_map_` will not remove + // entries when they are disconnected. + void DisableKeyboardInfoTrimmingForTesting(); // InputDeviceEventObserver: void OnDeviceListsComplete() override; @@ -406,6 +411,9 @@ const KeyboardDevice& keyboard, KeyboardCode key_code) const; + const std::vector<TopRowActionKey>* GetTopRowActionKeys( + const KeyboardDevice& keyboard); + const base::flat_map<int, KeyboardInfo>& keyboard_info_map() const { return keyboard_info_map_; } @@ -423,6 +431,10 @@ // which are effectively const. mutable base::flat_map<int, KeyboardInfo> keyboard_info_map_; std::unique_ptr<Delegate> delegate_; + + // Whether or not to disable "trimming" which means the `keyboard_info_map_` + // will not remove entries when they are disconnected. + bool should_disable_trimming_ = false; }; } // namespace ui
diff --git a/ui/gl/gl_surface_egl.cc b/ui/gl/gl_surface_egl.cc index 85b70b6..758304e7 100644 --- a/ui/gl/gl_surface_egl.cc +++ b/ui/gl/gl_surface_egl.cc
@@ -432,44 +432,12 @@ egl_window_attributes.push_back(EGL_SURFACE_ORIENTATION_INVERT_Y_ANGLE); } - switch (format_.GetColorSpace()) { - case GLSurfaceFormat::COLOR_SPACE_UNSPECIFIED: - break; - case GLSurfaceFormat::COLOR_SPACE_SRGB: - // Note that COLORSPACE_LINEAR refers to the sRGB color space, but - // without opting into sRGB blending. It is equivalent to - // COLORSPACE_SRGB with Disable(FRAMEBUFFER_SRGB). - if (display_->ext->b_EGL_KHR_gl_colorspace) { - egl_window_attributes.push_back(EGL_GL_COLORSPACE_KHR); - egl_window_attributes.push_back(EGL_GL_COLORSPACE_LINEAR_KHR); - } - break; - case GLSurfaceFormat::COLOR_SPACE_DISPLAY_P3: - // Note that it is not the case that - // COLORSPACE_SRGB is to COLORSPACE_LINEAR_KHR - // as - // COLORSPACE_DISPLAY_P3 is to COLORSPACE_DISPLAY_P3_LINEAR - // COLORSPACE_DISPLAY_P3 is equivalent to COLORSPACE_LINEAR, except with - // with the P3 gamut instead of the the sRGB gamut. - // COLORSPACE_DISPLAY_P3_LINEAR has a linear transfer function, and is - // intended for use with 16-bit formats. - bool p3_supported = - display_->ext->b_EGL_EXT_gl_colorspace_display_p3 || - display_->ext->b_EGL_EXT_gl_colorspace_display_p3_passthrough; - if (display_->ext->b_EGL_KHR_gl_colorspace && p3_supported) { - egl_window_attributes.push_back(EGL_GL_COLORSPACE_KHR); - // Chrome relied on incorrect Android behavior when dealing with P3 / - // framebuffer_srgb interactions. This behavior was fixed in Q, which - // causes invalid Chrome rendering. To achieve Android-P behavior in Q+, - // use EGL_GL_COLORSPACE_P3_PASSTHROUGH_EXT where possible. - if (display_->ext->b_EGL_EXT_gl_colorspace_display_p3_passthrough) { - egl_window_attributes.push_back( - EGL_GL_COLORSPACE_DISPLAY_P3_PASSTHROUGH_EXT); - } else { - egl_window_attributes.push_back(EGL_GL_COLORSPACE_DISPLAY_P3_EXT); - } - } - break; + // Note that COLORSPACE_LINEAR refers to the sRGB color space, but + // without opting into sRGB blending. It is equivalent to + // COLORSPACE_SRGB with Disable(FRAMEBUFFER_SRGB). + if (display_->ext->b_EGL_KHR_gl_colorspace) { + egl_window_attributes.push_back(EGL_GL_COLORSPACE_KHR); + egl_window_attributes.push_back(EGL_GL_COLORSPACE_LINEAR_KHR); } egl_window_attributes.push_back(EGL_NONE);
diff --git a/ui/views/window/caption_button_layout_constants.cc b/ui/views/window/caption_button_layout_constants.cc index 2ccd66ba..ef929ad 100644 --- a/ui/views/window/caption_button_layout_constants.cc +++ b/ui/views/window/caption_button_layout_constants.cc
@@ -4,27 +4,14 @@ #include "ui/views/window/caption_button_layout_constants.h" -#include "build/chromeos_buildflags.h" #include "ui/base/pointer/touch_ui_controller.h" #include "ui/gfx/geometry/size.h" -#if BUILDFLAG(IS_CHROMEOS) -#include "chromeos/constants/chromeos_features.h" -#endif // BUILDFLAG(IS_CHROMEOS) - namespace views { gfx::Size GetCaptionButtonLayoutSize(CaptionButtonLayoutSize size) { -#if BUILDFLAG(IS_CHROMEOS) - if (chromeos::features::IsJellyrollEnabled()) { - return gfx::Size( - 36, - size == CaptionButtonLayoutSize::kBrowserCaptionMaximized ? 34 : 40); - } -#endif // BUILDFLAG(IS_CHROMEOS) - if (size == CaptionButtonLayoutSize::kNonBrowserCaption) { - return gfx::Size(32, 32); + return gfx::Size(kCaptionButtonWidth, 32); } // |kBrowserMaximizedCaptionButtonHeight| should be kept in sync with those @@ -33,11 +20,9 @@ // location. int height = ui::TouchUiController::Get()->touch_ui() ? 41 : 34; if (size == CaptionButtonLayoutSize::kBrowserCaptionRestored) { - // Restored window titlebars are 8 DIP taller than maximized. - height += 8; + height += 8; // Restored window titlebars are 8 DIP taller than maximized. } - - return gfx::Size(32, height); + return gfx::Size(kCaptionButtonWidth, height); } } // namespace views