diff --git a/.gitignore b/.gitignore index e4f6e92..eeacdc4 100644 --- a/.gitignore +++ b/.gitignore
@@ -40,12 +40,14 @@ .classpath .code-coverage .cproject +.dir-locals.el .emulator_sdk .gdb_history .gdbinit .landmines .metadata .project +.projectile .pydevproject .checkstyle *.class @@ -57,6 +59,7 @@ GTAGS Session.vim tags +TAGS Thumbs.db rust-project.json v8.log
diff --git a/DEPS b/DEPS index e175d55e7..33dd5be 100644 --- a/DEPS +++ b/DEPS
@@ -257,7 +257,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling V8 # and whatever else without interference from each other. - 'v8_revision': '36ad4da7f1d34eb00996f19f474991c5fabc33a5', + 'v8_revision': 'd57838b3298a4da7131359e3517611106616d046', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling ANGLE # and whatever else without interference from each other. @@ -320,7 +320,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': '8ae2137a477fd1666f2715369dc681da422f9779', + 'catapult_revision': '3fd6a13ce322d7fb4c110cae77809504edda45d1', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling libFuzzer # and whatever else without interference from each other. @@ -328,7 +328,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': '32461347cb02a752bdbb34608467e5cd42f91694', + 'devtools_frontend_revision': '10b95e4ebfba0c589b3b0eac12f869ee99cbe5bd', # 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. @@ -364,7 +364,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': '6444b9e541c3364eddcfa018cc6abbd44a9bfc85', + 'dawn_revision': '9d76aa7424b66599f7c9b4fdea74b8732217c0bf', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling feed # and whatever else without interference from each other. @@ -408,7 +408,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. - 'libcxxabi_revision': '159209abf2dd7e5be3d3dbd449f23a3f2ce24d45', + 'libcxxabi_revision': '019fb1b3892ed070ad13948e65b8bca771348014', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling feed # and whatever else without interference from each other. @@ -720,7 +720,7 @@ Var('chromium_git') + '/external/github.com/toji/webvr.info.git' + '@' + 'c58ae99b9ff9e2aa4c524633519570bf33536248', 'src/docs/website': { - 'url': Var('chromium_git') + '/website.git' + '@' + '842df861899d1a5df1bbb9a13d58a8d22144894f', + 'url': Var('chromium_git') + '/website.git' + '@' + '811ce357d3deb1a24478675890891cabfc2094f2', }, 'src/ios/third_party/earl_grey2/src': { @@ -1027,17 +1027,6 @@ 'condition': 'checkout_src_internal and checkout_chromeos', }, - 'src/third_party/cast_core/prebuilts': { - 'packages': [ - { - 'package': 'cast3p/cast_core/package_qa_vizio_castos_armv7a.tar', - 'version': 'ZOzcgmEj32ltQEYvSSBfLbwcEo4MA_qtruinWrbbpGAC', - }, - ], - 'condition': 'checkout_cast3p', - 'dep_type': 'cipd', - }, - 'src/third_party/google_benchmark/src': { 'url': Var('chromium_git') + '/external/github.com/google/benchmark.git' + '@' + 'f730846b0a3c0dc0699978846fb14ffb2fad0bdc', 'condition': 'checkout_google_benchmark', @@ -1112,7 +1101,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' + '@' + '8930841ac0a2f6f030f00ad6a69d53a620d5e0f9', + 'url': Var('chromium_git') + '/chromiumos/chromite.git' + '@' + '37b7ca43eec97bba89a001b6333e4ed9b028af18', 'condition': 'checkout_chromeos', }, @@ -1272,7 +1261,7 @@ Var('chromium_git') + '/chromium/deps/hunspell_dictionaries.git' + '@' + '41cdffd71c9948f63c7ad36e1fb0ff519aa7a37e', 'src/third_party/icu': - Var('chromium_git') + '/chromium/deps/icu.git' + '@' + '493fb324ba81643b49bed81b31b73e4150b019e5', + Var('chromium_git') + '/chromium/deps/icu.git' + '@' + '5fb433856026252b163ddb12c95553a5059ad16b', 'src/third_party/icu4j': { 'packages': [ @@ -1343,7 +1332,7 @@ Var('chromium_git') + '/external/libaddressinput.git' + '@' + '3b8ee157a8f3536bbf5ad2448e9e3370463c1e40', 'src/third_party/libaom/source/libaom': - Var('aomedia_git') + '/aom.git' + '@' + '46e8b1da9e10663ef1bb9868ee20fd24cb175448', + Var('aomedia_git') + '/aom.git' + '@' + 'cc31d8c4b722cf7ecd68ac351bf3d288de07bc68', 'src/third_party/libavif/src': Var('chromium_git') + '/external/github.com/AOMediaCodec/libavif.git' + '@' + Var('libavif_revision'), @@ -1593,7 +1582,7 @@ 'packages': [ { 'package': 'fuchsia/third_party/android/aemu/release/linux-amd64', - 'version': 'Ll1K_vgpqMalp4Cpe2QyiKtTn_QVfKMNpuLLAitRCyQC' + 'version': 'P9lyw6xTz2mOkVuDPr-S8-zDzkYxMqUi5O9mSeG7mGYC' }, ], 'condition': 'host_os == "linux" and checkout_fuchsia', @@ -1697,7 +1686,7 @@ 'src/third_party/usrsctp/usrsctplib': Var('chromium_git') + '/external/github.com/sctplab/usrsctp' + '@' + '62d7d0c928c9a040dce96aa2f16c00e7e67d59cb', - 'src/third_party/vulkan-deps': '{chromium_git}/vulkan-deps@e37ba68c0fde1c26f6ea1fa5463b0919614f6c61', + 'src/third_party/vulkan-deps': '{chromium_git}/vulkan-deps@75a3ce4ed0bd1f361227bae7f34fbd4fb03367b5', 'src/third_party/vulkan_memory_allocator': Var('chromium_git') + '/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator.git' + '@' + 'ebe84bec02c041d28f902da0214bf442743fc907', @@ -1710,7 +1699,7 @@ # Wayland protocols that add functionality not available in the core protocol. 'src/third_party/wayland-protocols/src': { - 'url': Var('chromium_git') + '/external/anongit.freedesktop.org/git/wayland/wayland-protocols.git' + '@' + '177ff9119da526462e5d35fbfde6c84794913787', + 'url': Var('chromium_git') + '/external/anongit.freedesktop.org/git/wayland/wayland-protocols.git' + '@' + '5dfc8b9c89d75990267b6b2be0cf408e90114542', 'condition': 'checkout_linux', }, @@ -1736,7 +1725,7 @@ Var('chromium_git') + '/external/github.com/gpuweb/cts.git' + '@' + '7afd2efc27572eda0e9b3a8c0831b47f5e6c3353', 'src/third_party/webrtc': - Var('webrtc_git') + '/src.git' + '@' + '34554815540ebb8d1f296124ceb42aed6e11bc74', + Var('webrtc_git') + '/src.git' + '@' + '4163d35ecb0b6b237f6235bf42025ef4162b10b1', 'src/third_party/libgifcodec': Var('skia_git') + '/libgifcodec' + '@'+ Var('libgifcodec_revision'), @@ -1847,7 +1836,7 @@ 'packages': [ { 'package': 'chromeos_internal/apps/media_app/app', - 'version': 'sww7HyJK70C5VInUrmSu6Mjau60oQwbQE0vFG_nm6pEC', + 'version': 'Mu_NVIdKabRHqlb8kSri4PHICAnF4EKTzmWKNHVvQQgC', }, ], 'condition': 'checkout_chromeos and checkout_src_internal', @@ -4603,13 +4592,13 @@ ], }, - # Download Cast Web Runtime + # Download Cast3p Binaries { - 'name': 'cast_web_runtime', + 'name': 'cast3p_binaries', 'pattern': '.', 'action': [ 'python3', - 'src/tools/cast3p/update_runtime.py', + 'src/tools/cast3p/update_binaries.py', ], 'condition': 'checkout_cast3p', },
diff --git a/android_webview/browser/BUILD.gn b/android_webview/browser/BUILD.gn index 02478c4a..443afea 100644 --- a/android_webview/browser/BUILD.gn +++ b/android_webview/browser/BUILD.gn
@@ -9,6 +9,7 @@ java_cpp_enum("browser_enums") { sources = [ "aw_apk_type.h", + "aw_contents_io_thread_client.cc", "aw_renderer_priority.h", "aw_settings.h", "permission/aw_permission_request.h",
diff --git a/android_webview/browser/aw_contents_io_thread_client.cc b/android_webview/browser/aw_contents_io_thread_client.cc index c4f9f6c..b458f9c 100644 --- a/android_webview/browser/aw_contents_io_thread_client.cc +++ b/android_webview/browser/aw_contents_io_thread_client.cc
@@ -316,6 +316,7 @@ // using shouldIntercepterRequest callback. // Note: these values are persisted in UMA logs, so they should never be // renumbered or reused. +// GENERATED_JAVA_ENUM_PACKAGE: org.chromium.android_webview enum class InterceptionType { kNoIntercept, kOther, @@ -345,7 +346,7 @@ } } UMA_HISTOGRAM_ENUMERATION( - "Android.WebView.ShouldInterceptRequest.InterceptionType", type); + "Android.WebView.ShouldInterceptRequest.InterceptionType2", type); } std::unique_ptr<AwWebResourceInterceptResponse> NoInterceptRequest() { @@ -369,19 +370,21 @@ devtools_instrumentation::ScopedEmbedderCallbackTask embedder_callback( "shouldInterceptRequest"); - ScopedJavaLocalRef<jobject> ret = + ScopedJavaLocalRef<jobject> java_ref = Java_AwContentsBackgroundThreadClient_shouldInterceptRequestFromNative( env, obj, java_web_resource_request.jurl, request.is_main_frame, request.has_user_gesture, java_web_resource_request.jmethod, java_web_resource_request.jheader_names, java_web_resource_request.jheader_values); - RecordInterceptedScheme(!ret, request.url); + DCHECK(java_ref) + << "shouldInterceptRequestFromNative() should return non-null value"; + auto web_resource_intercept_response = + std::make_unique<AwWebResourceInterceptResponse>(java_ref); - if (!ret) - return NoInterceptRequest(); - - return std::make_unique<AwWebResourceInterceptResponse>(ret); + bool has_response = web_resource_intercept_response->HasResponse(env); + RecordInterceptedScheme(!has_response, request.url); + return web_resource_intercept_response; } } // namespace
diff --git a/android_webview/java/src/org/chromium/android_webview/AwContentsBackgroundThreadClient.java b/android_webview/java/src/org/chromium/android_webview/AwContentsBackgroundThreadClient.java index 8698603e0..46e9caf 100644 --- a/android_webview/java/src/org/chromium/android_webview/AwContentsBackgroundThreadClient.java +++ b/android_webview/java/src/org/chromium/android_webview/AwContentsBackgroundThreadClient.java
@@ -4,6 +4,8 @@ package org.chromium.android_webview; +import androidx.annotation.NonNull; + import org.chromium.base.Log; import org.chromium.base.annotations.CalledByNative; import org.chromium.base.annotations.JNINamespace; @@ -22,6 +24,7 @@ // Protected methods --------------------------------------------------------------------------- + @NonNull @CalledByNative private AwWebResourceInterceptResponse shouldInterceptRequestFromNative(String url, boolean isMainFrame, boolean hasUserGesture, String method, String[] requestHeaderNames,
diff --git a/android_webview/javatests/src/org/chromium/android_webview/test/AwContentsClientShouldInterceptRequestTest.java b/android_webview/javatests/src/org/chromium/android_webview/test/AwContentsClientShouldInterceptRequestTest.java index 03e5842..3bf308bcc 100644 --- a/android_webview/javatests/src/org/chromium/android_webview/test/AwContentsClientShouldInterceptRequestTest.java +++ b/android_webview/javatests/src/org/chromium/android_webview/test/AwContentsClientShouldInterceptRequestTest.java
@@ -22,10 +22,12 @@ import org.junit.runner.RunWith; import org.chromium.android_webview.AwContents; +import org.chromium.android_webview.InterceptionType; import org.chromium.android_webview.test.TestAwContentsClient.OnReceivedErrorHelper; import org.chromium.android_webview.test.util.AwTestTouchUtils; import org.chromium.android_webview.test.util.CommonResources; import org.chromium.android_webview.test.util.JSUtils; +import org.chromium.base.metrics.RecordHistogram; import org.chromium.base.test.util.CallbackHelper; import org.chromium.base.test.util.Feature; import org.chromium.base.test.util.TestFileUtil; @@ -120,6 +122,10 @@ mContentsClient.getOnPageFinishedHelper().waitForCallback(onPageFinishedCallCount); Assert.assertEquals( CommonResources.ABOUT_TITLE, mActivityTestRule.getTitleOnUiThread(mAwContents)); + Assert.assertEquals(1, + RecordHistogram.getHistogramValueCountForTesting( + "Android.WebView.ShouldInterceptRequest.InterceptionType2", + InterceptionType.NO_INTERCEPT)); } @Test @@ -270,6 +276,10 @@ int callCount = mShouldInterceptRequestHelper.getCallCount(); mActivityTestRule.loadUrlAsync(mAwContents, aboutPageUrl); mShouldInterceptRequestHelper.waitForCallback(callCount); + Assert.assertEquals(1, + RecordHistogram.getHistogramValueCountForTesting( + "Android.WebView.ShouldInterceptRequest.InterceptionType2", + InterceptionType.HTTP)); } @Test @@ -748,6 +758,9 @@ // renderer should be delivered in order waiting for onPageFinished is sufficient to // 'flush' any pending interception messages. Assert.assertEquals(callCount, mShouldInterceptRequestHelper.getCallCount()); + Assert.assertEquals(0, + RecordHistogram.getHistogramTotalCountForTesting( + "Android.WebView.ShouldInterceptRequest.InterceptionType2")); } @Test @@ -760,8 +773,25 @@ @Test @SmallTest @Feature({"AndroidWebView"}) - public void testCalledForNonexistentFiles() throws Throwable { + public void testFileUrls_notIntercepted() throws Throwable { calledForUrlTemplate("file:///somewhere/something"); + Assert.assertEquals(1, + RecordHistogram.getHistogramValueCountForTesting( + "Android.WebView.ShouldInterceptRequest.InterceptionType2", + InterceptionType.NO_INTERCEPT)); + } + + @Test + @SmallTest + @Feature({"AndroidWebView"}) + public void testFileUrls_intercepted() throws Throwable { + mShouldInterceptRequestHelper.setReturnValue( + stringToWebResourceResponseInfo("<html>Hello world</html>")); + calledForUrlTemplate("file:///somewhere/something"); + Assert.assertEquals(1, + RecordHistogram.getHistogramValueCountForTesting( + "Android.WebView.ShouldInterceptRequest.InterceptionType2", + InterceptionType.FILE)); } @Test @@ -986,13 +1016,35 @@ @Test @SmallTest @Feature({"AndroidWebView"}) - public void testLoadDataUrlShouldTriggerShouldInterceptRequest() throws Throwable { + public void testLoadDataUrl_notIntercepted() throws Throwable { String url = "data:text/plain,foo"; int callCount = mShouldInterceptRequestHelper.getCallCount(); mActivityTestRule.loadUrlSync(mAwContents, mContentsClient.getOnPageFinishedHelper(), url); Assert.assertEquals(callCount + 1, mShouldInterceptRequestHelper.getCallCount()); Assert.assertEquals(url, mShouldInterceptRequestHelper.getUrls().get(0)); + Assert.assertEquals(1, + RecordHistogram.getHistogramValueCountForTesting( + "Android.WebView.ShouldInterceptRequest.InterceptionType2", + InterceptionType.NO_INTERCEPT)); + } + + @Test + @SmallTest + @Feature({"AndroidWebView"}) + public void testLoadDataUrl_intercepted() throws Throwable { + String url = "data:text/plain,foo"; + + mShouldInterceptRequestHelper.setReturnValue( + stringToWebResourceResponseInfo("<html>Hello world</html>")); + int callCount = mShouldInterceptRequestHelper.getCallCount(); + mActivityTestRule.loadUrlSync(mAwContents, mContentsClient.getOnPageFinishedHelper(), url); + Assert.assertEquals(callCount + 1, mShouldInterceptRequestHelper.getCallCount()); + Assert.assertEquals(url, mShouldInterceptRequestHelper.getUrls().get(0)); + Assert.assertEquals(1, + RecordHistogram.getHistogramValueCountForTesting( + "Android.WebView.ShouldInterceptRequest.InterceptionType2", + InterceptionType.DATA)); } @Test
diff --git a/ash/BUILD.gn b/ash/BUILD.gn index caf4181..4ba74a7a 100644 --- a/ash/BUILD.gn +++ b/ash/BUILD.gn
@@ -1081,6 +1081,8 @@ "system/cast/unified_cast_detailed_view_controller.h", "system/dark_mode/dark_mode_feature_pod_controller.cc", "system/dark_mode/dark_mode_feature_pod_controller.h", + "system/diagnostics/diagnostics_log_controller.cc", + "system/diagnostics/diagnostics_log_controller.h", "system/eche/eche_icon_loading_indicator_view.cc", "system/eche/eche_icon_loading_indicator_view.h", "system/eche/eche_tray.cc", @@ -2618,6 +2620,7 @@ "system/bluetooth/tray_bluetooth_helper_legacy_unittest.cc", "system/bluetooth/unified_bluetooth_detailed_view_controller_unittest.cc", "system/caps_lock_notification_controller_unittest.cc", + "system/diagnostics/diagnostics_log_controller_unittest.cc", "system/eche/eche_icon_loading_indicator_view_unittest.cc", "system/eche/eche_tray_unittest.cc", "system/firmware_update/firmware_update_notification_controller_unittest.cc",
diff --git a/ash/accessibility/magnifier/docked_magnifier_controller_unittest.cc b/ash/accessibility/magnifier/docked_magnifier_controller_unittest.cc index 6e506c3..c12f357 100644 --- a/ash/accessibility/magnifier/docked_magnifier_controller_unittest.cc +++ b/ash/accessibility/magnifier/docked_magnifier_controller_unittest.cc
@@ -419,9 +419,12 @@ EXPECT_EQ(disp_1_workspace_with_magnifier, display_1.work_area()); // The first display should confine the mouse movement outside of the // viewport. - const gfx::Rect disp_1_confine_bounds( + gfx::Rect disp_1_confine_bounds( 0, disp_1_magnifier_height, disp_1_bounds.width(), disp_1_bounds.height() - disp_1_magnifier_height); + if (::features::IsDockedMagnifierResizingEnabled()) + disp_1_confine_bounds.Inset(0, -DockedMagnifierController::kSeparatorHeight, + 0, 0); EXPECT_EQ(host1->GetLastCursorConfineBoundsInPixels(), disp_1_confine_bounds); // The second display should remain unaffected. @@ -452,9 +455,12 @@ disp_2_workspace_with_magnifier.Inset(0, disp_2_magnifier_height, 0, 0); EXPECT_EQ(disp_2_workspace_with_magnifier, display_2.work_area()); // Display 2's mouse is confined outside the viewport. - const gfx::Rect disp_2_confine_bounds( + gfx::Rect disp_2_confine_bounds( 0, disp_2_magnifier_height, disp_2_bounds.width(), disp_2_bounds.height() - disp_2_magnifier_height); + if (::features::IsDockedMagnifierResizingEnabled()) + disp_2_confine_bounds.Inset(0, -DockedMagnifierController::kSeparatorHeight, + 0, 0); EXPECT_EQ(host2->GetLastCursorConfineBoundsInPixels(), disp_2_confine_bounds); // Now, disable the magnifier, and expect both displays to return back to
diff --git a/ash/ambient/ambient_photo_controller.cc b/ash/ambient/ambient_photo_controller.cc index 8dfd364a..a30b1e47 100644 --- a/ash/ambient/ambient_photo_controller.cc +++ b/ash/ambient/ambient_photo_controller.cc
@@ -338,7 +338,6 @@ fetch_topic_retry_backoff_.InformOfRequest(/*succeeded=*/true); latest_fetch_topic_request_type_ = request_type; ambient_backend_model_.AppendTopics(screen_update.next_topics); - StartDownloadingWeatherConditionIcon(screen_update.weather_info); } void AmbientPhotoController::ResetImageData() {
diff --git a/ash/ash_strings.grd b/ash/ash_strings.grd index ad89e94..4d22fbb6 100644 --- a/ash/ash_strings.grd +++ b/ash/ash_strings.grd
@@ -706,7 +706,7 @@ </message> <message name="IDS_GESTURE_NOTIFICATION_TITLE" desc="The title of the notification to show off new gestures."> - Try new ways to navigate Chrome OS + Try gestures to navigate </message> <message name="IDS_GESTURE_NOTIFICATION_MESSAGE_LEARN_MORE" desc="The body of the notification to show off new gestures. This notification body links to the help page for the gestures."> Use gestures to quickly switch between apps and interact with your Chromebook in tablet mode. @@ -3091,13 +3091,13 @@ Couldn't connect <ph name="NAME">$1<ex>Pixel Buds</ex></ph> </message> <message name="IDS_FAST_PAIR_CONNECTION_ERROR_MESSAGE" desc="Notification message shown when a there is a Fast Pair connection error."> - Open Bluetooth settings to pair the device manually + Open Bluetooth settings to pair your device </message> <message name="IDS_FAST_PAIR_ASSOCIATE_ACCOUNT_NOTIFICATION_TITLE" desc="Notification title shown to ask users if they want to save a Fast Pair device that was paired via classic bluetooth to their Google account."> - Save <ph name="NAME">$1<ex>Pixel Buds</ex></ph> + Save your <ph name="NAME">$1<ex>Pixel Buds</ex></ph> </message> <message name="IDS_FAST_PAIR_ASSOCIATE_ACCOUNT_NOTIFICATION_MESSAGE" desc="Notification message shown to ask users if they want to save a Fast Pair device that was paired via classic bluetooth to their Google account."> - Save <ph name="NAME">$1<ex>Pixel Buds</ex></ph> to <ph name="EMAIL">$2<ex>alisha123@gmail.com</ex></ph> for faster pairing to your other devices + Save your <ph name="NAME">$1<ex>Pixel Buds</ex></ph> to <ph name="EMAIL">$2<ex>alisha123@gmail.com</ex></ph> for faster pairing to your other devices </message> <message name="IDS_FAST_PAIR_SETTINGS_BUTTON" desc="Button title shown to direct users to settings when there is an error connecting with Fast Pair"> Settings @@ -3124,7 +3124,7 @@ Learn More </message> <message name="IDS_FAST_PAIR_DISCOVERY_NOTIFICATION_TITLE" desc="Notification title shown when a there is a device discovered with Fast Pair."> - Connect <ph name="NAME">$1<ex>Pixel Buds</ex></ph> + Connect your <ph name="NAME">$1<ex>Pixel Buds</ex></ph> </message> <message name="IDS_FAST_PAIR_DISCOVERY_NOTIFICATION_MESSAGE" desc="Notification message shown when there is a device discovered with Fast Pair."> Connect <ph name="NAME">$1<ex>Pixel Buds</ex></ph> to this Chromebook
diff --git a/ash/ash_strings_grd/IDS_FAST_PAIR_ASSOCIATE_ACCOUNT_NOTIFICATION_MESSAGE.png.sha1 b/ash/ash_strings_grd/IDS_FAST_PAIR_ASSOCIATE_ACCOUNT_NOTIFICATION_MESSAGE.png.sha1 index 33034282..9a4f23d 100644 --- a/ash/ash_strings_grd/IDS_FAST_PAIR_ASSOCIATE_ACCOUNT_NOTIFICATION_MESSAGE.png.sha1 +++ b/ash/ash_strings_grd/IDS_FAST_PAIR_ASSOCIATE_ACCOUNT_NOTIFICATION_MESSAGE.png.sha1
@@ -1 +1 @@ -9537a100b53dbff1ace2f44eeb19cba9b60e135e \ No newline at end of file +fda5232cf78951fa9d2a359bb2f4fe10c07671fb \ No newline at end of file
diff --git a/ash/ash_strings_grd/IDS_FAST_PAIR_ASSOCIATE_ACCOUNT_NOTIFICATION_TITLE.png.sha1 b/ash/ash_strings_grd/IDS_FAST_PAIR_ASSOCIATE_ACCOUNT_NOTIFICATION_TITLE.png.sha1 index 33034282..9a4f23d 100644 --- a/ash/ash_strings_grd/IDS_FAST_PAIR_ASSOCIATE_ACCOUNT_NOTIFICATION_TITLE.png.sha1 +++ b/ash/ash_strings_grd/IDS_FAST_PAIR_ASSOCIATE_ACCOUNT_NOTIFICATION_TITLE.png.sha1
@@ -1 +1 @@ -9537a100b53dbff1ace2f44eeb19cba9b60e135e \ No newline at end of file +fda5232cf78951fa9d2a359bb2f4fe10c07671fb \ No newline at end of file
diff --git a/ash/ash_strings_grd/IDS_FAST_PAIR_CONNECTION_ERROR_MESSAGE.png.sha1 b/ash/ash_strings_grd/IDS_FAST_PAIR_CONNECTION_ERROR_MESSAGE.png.sha1 index 7509a08..e3f617d7 100644 --- a/ash/ash_strings_grd/IDS_FAST_PAIR_CONNECTION_ERROR_MESSAGE.png.sha1 +++ b/ash/ash_strings_grd/IDS_FAST_PAIR_CONNECTION_ERROR_MESSAGE.png.sha1
@@ -1 +1 @@ -545a6ef3e7cd3949db25ccbc8e1cb9046329a5ca \ No newline at end of file +29553a25affbfed1bf5a8007ff450b4bf54bcf0a \ No newline at end of file
diff --git a/ash/ash_strings_grd/IDS_FAST_PAIR_DISCOVERY_NOTIFICATION_TITLE.png.sha1 b/ash/ash_strings_grd/IDS_FAST_PAIR_DISCOVERY_NOTIFICATION_TITLE.png.sha1 index a522f89..92af47b 100644 --- a/ash/ash_strings_grd/IDS_FAST_PAIR_DISCOVERY_NOTIFICATION_TITLE.png.sha1 +++ b/ash/ash_strings_grd/IDS_FAST_PAIR_DISCOVERY_NOTIFICATION_TITLE.png.sha1
@@ -1 +1 @@ -d96e52e01bcfc4ae83cdeb19a9a55981f9a49e52 \ No newline at end of file +bf7778d4cf51ba7abb47c71d5fd21710e4cc5b0f \ No newline at end of file
diff --git a/ash/ash_strings_grd/IDS_GESTURE_NOTIFICATION_TITLE.png.sha1 b/ash/ash_strings_grd/IDS_GESTURE_NOTIFICATION_TITLE.png.sha1 index 57df1a72..37888e35 100644 --- a/ash/ash_strings_grd/IDS_GESTURE_NOTIFICATION_TITLE.png.sha1 +++ b/ash/ash_strings_grd/IDS_GESTURE_NOTIFICATION_TITLE.png.sha1
@@ -1 +1 @@ -b830625ecaa29020d83b4a73caa073804e740894 \ No newline at end of file +f8d8f36c58d080af7b899c15b4b31e3fc8b0e2e7 \ No newline at end of file
diff --git a/ash/capture_mode/capture_mode_camera_preview_view.cc b/ash/capture_mode/capture_mode_camera_preview_view.cc index 1cf4ffc6..0cb5550 100644 --- a/ash/capture_mode/capture_mode_camera_preview_view.cc +++ b/ash/capture_mode/capture_mode_camera_preview_view.cc
@@ -136,7 +136,17 @@ camera_video_host_view_->SetBoundsRect(GetContentsBounds()); - GetWidget()->GetLayer()->SetRoundedCornerRadius( + // The size must have changed, and we need to update the rounded corners. Note + // that the assumption is that this view must have a square size, so when + // rounded corners are applied, it looks like a perfect circle. + // The rounded corners is applied on the window hosting the camera frames. + // That window's layer is a solid-color layer, so applying rounded corners on + // it won't make it produce a render surface. This is better than applying it + // on the preview widget's layer (which is a texture layer) and would cause a + // a render surface. This also avoids the rendering artifacts seen in + // https://crbug.com/1312059. + DCHECK_EQ(width(), height()); + camera_video_renderer_.host_window()->layer()->SetRoundedCornerRadius( gfx::RoundedCornersF(height() / 2.f)); }
diff --git a/ash/constants/ash_pref_names.cc b/ash/constants/ash_pref_names.cc index 0dc8f81..4536689 100644 --- a/ash/constants/ash_pref_names.cc +++ b/ash/constants/ash_pref_names.cc
@@ -545,6 +545,10 @@ // Boolean pref of whether adaptive charging (i.e. holding battery at a sub-100% // charge until necessary to extend battery life) is enabled. const char kPowerAdaptiveChargingEnabled[] = "power.adaptive_charging_enabled"; +// Boolean pref of whether adaptive charging educational nudge is shown to the +// user. +const char kPowerAdaptiveChargingNudgeShown[] = + "power.adaptive_charging_nudge_shown"; // Screen brightness percent values to be used when running on battery power. // Specified by the policy.
diff --git a/ash/constants/ash_pref_names.h b/ash/constants/ash_pref_names.h index 5bf767a..244f387c 100644 --- a/ash/constants/ash_pref_names.h +++ b/ash/constants/ash_pref_names.h
@@ -262,6 +262,8 @@ COMPONENT_EXPORT(ASH_CONSTANTS) extern const char kPowerAdaptiveChargingEnabled[]; COMPONENT_EXPORT(ASH_CONSTANTS) +extern const char kPowerAdaptiveChargingNudgeShown[]; +COMPONENT_EXPORT(ASH_CONSTANTS) extern const char kPowerBatteryScreenBrightnessPercent[]; COMPONENT_EXPORT(ASH_CONSTANTS) extern const char kPowerBatteryScreenDimDelayMs[];
diff --git a/ash/quick_pair/repository/fast_pair_repository_impl.cc b/ash/quick_pair/repository/fast_pair_repository_impl.cc index bbf64ec..8be9370 100644 --- a/ash/quick_pair/repository/fast_pair_repository_impl.cc +++ b/ash/quick_pair/repository/fast_pair_repository_impl.cc
@@ -427,10 +427,6 @@ absl::optional<const std::string> hex_model_id = device_id_map_->GetModelIdForDeviceId(device_id); if (!hex_model_id) { - QP_LOG(WARNING) << __func__ - << ": Could not find a matching model ID for " - "device ID: " - << device_id; return absl::nullopt; }
diff --git a/ash/system/diagnostics/DIR_METADATA b/ash/system/diagnostics/DIR_METADATA new file mode 100644 index 0000000..24ee7b9 --- /dev/null +++ b/ash/system/diagnostics/DIR_METADATA
@@ -0,0 +1,4 @@ +buganizer { + component_id: 1131925 +} +team_email: "cros-system-services@google.com"
diff --git a/ash/system/diagnostics/OWNERS b/ash/system/diagnostics/OWNERS new file mode 100644 index 0000000..ac8343e --- /dev/null +++ b/ash/system/diagnostics/OWNERS
@@ -0,0 +1,7 @@ +# Primary OWNERS +jimmyxgong@chromium.org +michaelcheco@google.com +gavinwill@chromium.org + +# Backup OWNERS +zentaro@chromium.org
diff --git a/ash/system/diagnostics/diagnostics_log_controller.cc b/ash/system/diagnostics/diagnostics_log_controller.cc new file mode 100644 index 0000000..5ee99cd --- /dev/null +++ b/ash/system/diagnostics/diagnostics_log_controller.cc
@@ -0,0 +1,34 @@ +// Copyright 2022 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "ash/system/diagnostics/diagnostics_log_controller.h" + +#include "base/check_op.h" + +namespace ash { +namespace diagnostics { + +namespace { + +DiagnosticsLogController* g_instance = nullptr; + +} // namespace + +DiagnosticsLogController::DiagnosticsLogController() { + DCHECK_EQ(nullptr, g_instance); + g_instance = this; +} + +DiagnosticsLogController::~DiagnosticsLogController() { + DCHECK_EQ(this, g_instance); + g_instance = nullptr; +} + +// static +DiagnosticsLogController* DiagnosticsLogController::Get() { + return g_instance; +} + +} // namespace diagnostics +} // namespace ash
diff --git a/ash/system/diagnostics/diagnostics_log_controller.h b/ash/system/diagnostics/diagnostics_log_controller.h new file mode 100644 index 0000000..2be11fd --- /dev/null +++ b/ash/system/diagnostics/diagnostics_log_controller.h
@@ -0,0 +1,27 @@ +// Copyright 2022 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef ASH_SYSTEM_DIAGNOSTICS_DIAGNOSTICS_LOG_CONTROLLER_H_ +#define ASH_SYSTEM_DIAGNOSTICS_DIAGNOSTICS_LOG_CONTROLLER_H_ + +namespace ash { +namespace diagnostics { + +// DiagnosticsLogController manages the lifetime of Diagnostics log writers such +// as the RoutineLog and ensures logs are written to the correct directory path +// for the current user. See go/cros-shared-diagnostics-session-log-dd. +class DiagnosticsLogController { + public: + DiagnosticsLogController(); + DiagnosticsLogController(const DiagnosticsLogController&) = delete; + DiagnosticsLogController& operator=(const DiagnosticsLogController&) = delete; + ~DiagnosticsLogController(); + + static DiagnosticsLogController* Get(); +}; + +} // namespace diagnostics +} // namespace ash + +#endif // ASH_SYSTEM_DIAGNOSTICS_DIAGNOSTICS_LOG_CONTROLLER_H_
diff --git a/ash/system/diagnostics/diagnostics_log_controller_unittest.cc b/ash/system/diagnostics/diagnostics_log_controller_unittest.cc new file mode 100644 index 0000000..edd337e --- /dev/null +++ b/ash/system/diagnostics/diagnostics_log_controller_unittest.cc
@@ -0,0 +1,25 @@ +// Copyright 2022 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "ash/system/diagnostics/diagnostics_log_controller.h" + +#include <memory> + +#include "ash/test/ash_test_base.h" +#include "testing/gtest/include/gtest/gtest.h" + +namespace ash { +namespace diagnostics { + +class DiagnosticsLogControllerTest : public NoSessionAshTestBase { + public: + DiagnosticsLogControllerTest() = default; + DiagnosticsLogControllerTest(DiagnosticsLogControllerTest&) = delete; + DiagnosticsLogControllerTest& operator=(DiagnosticsLogControllerTest&) = + delete; + ~DiagnosticsLogControllerTest() override = default; +}; + +} // namespace diagnostics +} // namespace ash
diff --git a/ash/system/power/adaptive_charging_nudge_controller.cc b/ash/system/power/adaptive_charging_nudge_controller.cc index 2846def..ae84379 100644 --- a/ash/system/power/adaptive_charging_nudge_controller.cc +++ b/ash/system/power/adaptive_charging_nudge_controller.cc
@@ -4,13 +4,54 @@ #include "ash/system/power/adaptive_charging_nudge_controller.h" +#include <memory> + +#include "ash/constants/ash_pref_names.h" +#include "ash/session/session_controller_impl.h" +#include "ash/shell.h" #include "ash/system/power/adaptive_charging_nudge.h" +#include "base/time/time.h" +#include "base/timer/timer.h" +#include "components/prefs/pref_service.h" namespace ash { +namespace { + +// Delay time before the nudge should appear. +constexpr base::TimeDelta kNudgeDelayTime = base::Seconds(3); + +} // namespace + AdaptiveChargingNudgeController::AdaptiveChargingNudgeController() {} AdaptiveChargingNudgeController::~AdaptiveChargingNudgeController() {} +void AdaptiveChargingNudgeController::ShowNudge() { + PrefService* pref_service = + Shell::Get()->session_controller()->GetActivePrefService(); + + // Nudge should be shown only once for an user forever. + if (!pref_service || + !pref_service->GetBoolean(ash::prefs::kPowerAdaptiveChargingEnabled) || + pref_service->GetBoolean(ash::prefs::kPowerAdaptiveChargingNudgeShown)) { + return; + } + + // Show nudge if the delay timer is complete. + if (nudge_delay_timer_ && !nudge_delay_timer_->IsRunning()) { + pref_service->SetBoolean(ash::prefs::kPowerAdaptiveChargingNudgeShown, + true); + SystemNudgeController::ShowNudge(); + return; + } + + nudge_delay_timer_ = std::make_unique<base::OneShotTimer>(); + nudge_delay_timer_->Start( + FROM_HERE, kNudgeDelayTime, + base::BindOnce(&AdaptiveChargingNudgeController::ShowNudge, + weak_ptr_factory_.GetWeakPtr())); +} + std::unique_ptr<SystemNudge> AdaptiveChargingNudgeController::CreateSystemNudge() { return std::make_unique<AdaptiveChargingNudge>();
diff --git a/ash/system/power/adaptive_charging_nudge_controller.h b/ash/system/power/adaptive_charging_nudge_controller.h index 324d6825..01a306d 100644 --- a/ash/system/power/adaptive_charging_nudge_controller.h +++ b/ash/system/power/adaptive_charging_nudge_controller.h
@@ -7,6 +7,8 @@ #include "ash/ash_export.h" #include "ash/system/tray/system_nudge_controller.h" +#include "base/memory/weak_ptr.h" +#include "base/timer/timer.h" namespace ash { @@ -24,9 +26,22 @@ const AdaptiveChargingNudgeController&) = delete; ~AdaptiveChargingNudgeController() override; + // Show the Adaptive Charging educational nudge. + void ShowNudge(); + + // Test method to get the nudge delay timer for testing. + base::OneShotTimer* GetNudgeDelayTimerForTesting() { + return nudge_delay_timer_.get(); + } + private: // SystemNudgeController: std::unique_ptr<SystemNudge> CreateSystemNudge() override; + + // Timer to delay showing the nudge. + std::unique_ptr<base::OneShotTimer> nudge_delay_timer_; + + base::WeakPtrFactory<AdaptiveChargingNudgeController> weak_ptr_factory_{this}; }; } // namespace ash
diff --git a/ash/system/power/adaptive_charging_nudge_controller_unittest.cc b/ash/system/power/adaptive_charging_nudge_controller_unittest.cc index 8f042e1..0976073 100644 --- a/ash/system/power/adaptive_charging_nudge_controller_unittest.cc +++ b/ash/system/power/adaptive_charging_nudge_controller_unittest.cc
@@ -4,6 +4,8 @@ #include <string> +#include "ash/constants/ash_pref_names.h" +#include "ash/session/session_controller_impl.h" #include "ash/shell.h" #include "ash/system/power/adaptive_charging_nudge_controller.h" #include "ash/system/tray/system_nudge.h" @@ -46,6 +48,14 @@ widget_observation_{this}; std::unique_ptr<base::RunLoop> run_loop_; }; + +// Enables or disables the user pref for the entire feature. +void SetAdaptiveChargingPref(bool enabled) { + Shell::Get()->session_controller()->GetActivePrefService()->SetBoolean( + prefs::kPowerAdaptiveChargingEnabled, enabled); + base::RunLoop().RunUntilIdle(); +} + } // namespace class AdaptiveChargingNudgeControllerTest : public AshTestBase { @@ -92,12 +102,46 @@ AdaptiveChargingNudgeController* controller = GetController(); ASSERT_TRUE(controller); + SetAdaptiveChargingPref(true); controller->ShowNudge(); - + ASSERT_TRUE(controller->GetNudgeDelayTimerForTesting()->IsRunning()); + controller->GetNudgeDelayTimerForTesting()->FireNow(); SystemNudge* nudge = controller->GetSystemNudgeForTesting(); ASSERT_TRUE(nudge); WaitForWidgetClose(controller, nudge); } +TEST_F(AdaptiveChargingNudgeControllerTest, NoNudgeShowForDisabledFeature) { + AdaptiveChargingNudgeController* controller = GetController(); + ASSERT_TRUE(controller); + + SetAdaptiveChargingPref(false); + controller->ShowNudge(); + ASSERT_FALSE(controller->GetNudgeDelayTimerForTesting()); + SystemNudge* nudge = controller->GetSystemNudgeForTesting(); + ASSERT_FALSE(nudge); +} + +TEST_F(AdaptiveChargingNudgeControllerTest, NudgeShowExactlyOnce) { + AdaptiveChargingNudgeController* controller = GetController(); + ASSERT_TRUE(controller); + + SetAdaptiveChargingPref(true); + + // First time, nudge is shown. + controller->ShowNudge(); + ASSERT_TRUE(controller->GetNudgeDelayTimerForTesting()->IsRunning()); + controller->GetNudgeDelayTimerForTesting()->FireNow(); + SystemNudge* nudge1 = controller->GetSystemNudgeForTesting(); + ASSERT_TRUE(nudge1); + WaitForWidgetClose(controller, nudge1); + + // No nudge for the second time. + controller->ShowNudge(); + ASSERT_FALSE(controller->GetNudgeDelayTimerForTesting()->IsRunning()); + SystemNudge* nudge2 = controller->GetSystemNudgeForTesting(); + ASSERT_FALSE(nudge2); +} + } // namespace ash
diff --git a/ash/system/power/power_prefs.cc b/ash/system/power/power_prefs.cc index 817894b..c50d252 100644 --- a/ash/system/power/power_prefs.cc +++ b/ash/system/power/power_prefs.cc
@@ -83,6 +83,9 @@ registry->RegisterBooleanPref( prefs::kPowerAdaptiveChargingEnabled, false, user_prefs::PrefRegistrySyncable::SYNCABLE_OS_PREF); + registry->RegisterBooleanPref( + prefs::kPowerAdaptiveChargingNudgeShown, false, + user_prefs::PrefRegistrySyncable::SYNCABLE_OS_PREF); registry->RegisterIntegerPref(prefs::kPowerBatteryScreenBrightnessPercent, -1); registry->RegisterIntegerPref(prefs::kPowerBatteryScreenDimDelayMs, 300000);
diff --git a/ash/webui/diagnostics_ui/backend/session_log_handler.cc b/ash/webui/diagnostics_ui/backend/session_log_handler.cc index 8e437e9..d0f537fd 100644 --- a/ash/webui/diagnostics_ui/backend/session_log_handler.cc +++ b/ash/webui/diagnostics_ui/backend/session_log_handler.cc
@@ -192,6 +192,9 @@ web_contents ? web_contents->GetTopLevelNativeWindow() : gfx::kNullNativeWindow; + // Early return if the select file dialog is already active. + if (select_file_dialog_) + return; select_file_dialog_ = ui::SelectFileDialog::Create( this, select_file_policy_creator_.Run(web_contents)); select_file_dialog_->SelectFile(
diff --git a/ash/webui/personalization_app/personalization_app_ambient_provider.h b/ash/webui/personalization_app/personalization_app_ambient_provider.h index 5fdf532..0412bb4 100644 --- a/ash/webui/personalization_app/personalization_app_ambient_provider.h +++ b/ash/webui/personalization_app/personalization_app_ambient_provider.h
@@ -9,15 +9,15 @@ #include "mojo/public/cpp/bindings/pending_receiver.h" namespace ash { +namespace personalization_app { -class PersonalizationAppAmbientProvider - : public personalization_app::mojom::AmbientProvider { +class PersonalizationAppAmbientProvider : public mojom::AmbientProvider { public: virtual void BindInterface( - mojo::PendingReceiver<personalization_app::mojom::AmbientProvider> - receiver) = 0; + mojo::PendingReceiver<mojom::AmbientProvider> receiver) = 0; }; +} // namespace personalization_app } // namespace ash #endif // ASH_WEBUI_PERSONALIZATION_APP_PERSONALIZATION_APP_AMBIENT_PROVIDER_H_
diff --git a/ash/webui/personalization_app/personalization_app_theme_provider.h b/ash/webui/personalization_app/personalization_app_theme_provider.h index 6f7e51d45..92509ffe 100644 --- a/ash/webui/personalization_app/personalization_app_theme_provider.h +++ b/ash/webui/personalization_app/personalization_app_theme_provider.h
@@ -9,15 +9,15 @@ #include "mojo/public/cpp/bindings/pending_receiver.h" namespace ash { +namespace personalization_app { -class PersonalizationAppThemeProvider - : public personalization_app::mojom::ThemeProvider { +class PersonalizationAppThemeProvider : public mojom::ThemeProvider { public: virtual void BindInterface( - mojo::PendingReceiver<personalization_app::mojom::ThemeProvider> - receiver) = 0; + mojo::PendingReceiver<mojom::ThemeProvider> receiver) = 0; }; +} // namespace personalization_app } // namespace ash #endif // ASH_WEBUI_PERSONALIZATION_APP_PERSONALIZATION_APP_THEME_PROVIDER_H_
diff --git a/ash/webui/personalization_app/personalization_app_ui.cc b/ash/webui/personalization_app/personalization_app_ui.cc index 934e52f..9223ba4 100644 --- a/ash/webui/personalization_app/personalization_app_ui.cc +++ b/ash/webui/personalization_app/personalization_app_ui.cc
@@ -25,6 +25,7 @@ #include "ui/webui/mojo_web_ui_controller.h" namespace ash { +namespace personalization_app { namespace { @@ -260,4 +261,5 @@ WEB_UI_CONTROLLER_TYPE_IMPL(PersonalizationAppUI) +} // namespace personalization_app } // namespace ash
diff --git a/ash/webui/personalization_app/personalization_app_ui.h b/ash/webui/personalization_app/personalization_app_ui.h index e45a5b8..6264c21 100644 --- a/ash/webui/personalization_app/personalization_app_ui.h +++ b/ash/webui/personalization_app/personalization_app_ui.h
@@ -12,6 +12,7 @@ #include "ui/webui/mojo_web_ui_controller.h" namespace ash { +namespace personalization_app { class PersonalizationAppAmbientProvider; class PersonalizationAppThemeProvider; @@ -56,6 +57,7 @@ WEB_UI_CONTROLLER_TYPE_DECL(); }; +} // namespace personalization_app } // namespace ash #endif // ASH_WEBUI_PERSONALIZATION_APP_PERSONALIZATION_APP_UI_H_
diff --git a/ash/webui/personalization_app/personalization_app_url_constants.cc b/ash/webui/personalization_app/personalization_app_url_constants.cc index 5663567..79cc5f6 100644 --- a/ash/webui/personalization_app/personalization_app_url_constants.cc +++ b/ash/webui/personalization_app/personalization_app_url_constants.cc
@@ -5,6 +5,7 @@ #include "ash/webui/personalization_app/personalization_app_url_constants.h" namespace ash { +namespace personalization_app { const char kChromeUIPersonalizationAppHost[] = "personalization"; const char kChromeUIPersonalizationAppURL[] = "chrome://personalization/"; @@ -15,4 +16,5 @@ const char kChromeUIPersonalizationAppWallpaperSubpageURL[] = "chrome://personalization/wallpaper"; +} // namespace personalization_app } // namespace ash
diff --git a/ash/webui/personalization_app/personalization_app_url_constants.h b/ash/webui/personalization_app/personalization_app_url_constants.h index f209803..81d2e4f 100644 --- a/ash/webui/personalization_app/personalization_app_url_constants.h +++ b/ash/webui/personalization_app/personalization_app_url_constants.h
@@ -6,6 +6,7 @@ #define ASH_WEBUI_PERSONALIZATION_APP_PERSONALIZATION_APP_URL_CONSTANTS_H_ namespace ash { +namespace personalization_app { extern const char kChromeUIPersonalizationAppHost[]; extern const char kChromeUIPersonalizationAppURL[]; @@ -13,6 +14,7 @@ extern const char kChromeUIPersonalizationAppUserSubpageURL[]; extern const char kChromeUIPersonalizationAppWallpaperSubpageURL[]; +} // namespace personalization_app } // namespace ash #endif // ASH_WEBUI_PERSONALIZATION_APP_PERSONALIZATION_APP_URL_CONSTANTS_H_
diff --git a/ash/webui/personalization_app/personalization_app_user_provider.h b/ash/webui/personalization_app/personalization_app_user_provider.h index 105fbcf..26f2e166 100644 --- a/ash/webui/personalization_app/personalization_app_user_provider.h +++ b/ash/webui/personalization_app/personalization_app_user_provider.h
@@ -9,15 +9,15 @@ #include "mojo/public/cpp/bindings/pending_receiver.h" namespace ash { +namespace personalization_app { -class PersonalizationAppUserProvider - : public personalization_app::mojom::UserProvider { +class PersonalizationAppUserProvider : public mojom::UserProvider { public: virtual void BindInterface( - mojo::PendingReceiver<personalization_app::mojom::UserProvider> - receiver) = 0; + mojo::PendingReceiver<mojom::UserProvider> receiver) = 0; }; +} // namespace personalization_app } // namespace ash #endif // ASH_WEBUI_PERSONALIZATION_APP_PERSONALIZATION_APP_USER_PROVIDER_H_
diff --git a/ash/webui/personalization_app/personalization_app_wallpaper_provider.h b/ash/webui/personalization_app/personalization_app_wallpaper_provider.h index 2ff179ef..bdd2a73 100644 --- a/ash/webui/personalization_app/personalization_app_wallpaper_provider.h +++ b/ash/webui/personalization_app/personalization_app_wallpaper_provider.h
@@ -9,17 +9,17 @@ #include "mojo/public/cpp/bindings/pending_receiver.h" namespace ash { +namespace personalization_app { // Handles calling |backdrop_wallpaper_handler| code in //chrome to pass to the // Personalization App SWA. -class PersonalizationAppWallpaperProvider - : public personalization_app::mojom::WallpaperProvider { +class PersonalizationAppWallpaperProvider : public mojom::WallpaperProvider { public: virtual void BindInterface( - mojo::PendingReceiver<personalization_app::mojom::WallpaperProvider> - receiver) = 0; + mojo::PendingReceiver<mojom::WallpaperProvider> receiver) = 0; }; +} // namespace personalization_app } // namespace ash #endif // ASH_WEBUI_PERSONALIZATION_APP_PERSONALIZATION_APP_WALLPAPER_PROVIDER_H_
diff --git a/ash/webui/personalization_app/test/fake_personalization_app_ambient_provider.cc b/ash/webui/personalization_app/test/fake_personalization_app_ambient_provider.cc index 33cd764..2734165 100644 --- a/ash/webui/personalization_app/test/fake_personalization_app_ambient_provider.cc +++ b/ash/webui/personalization_app/test/fake_personalization_app_ambient_provider.cc
@@ -8,6 +8,7 @@ #include "content/public/browser/web_ui.h" namespace ash { +namespace personalization_app { FakePersonalizationAppAmbientProvider::FakePersonalizationAppAmbientProvider( content::WebUI* web_ui) {} @@ -27,4 +28,5 @@ std::move(callback).Run(std::move(true)); } +} // namespace personalization_app } // namespace ash
diff --git a/ash/webui/personalization_app/test/fake_personalization_app_ambient_provider.h b/ash/webui/personalization_app/test/fake_personalization_app_ambient_provider.h index 2c1fa96e..3037b73 100644 --- a/ash/webui/personalization_app/test/fake_personalization_app_ambient_provider.h +++ b/ash/webui/personalization_app/test/fake_personalization_app_ambient_provider.h
@@ -20,6 +20,7 @@ } // namespace content namespace ash { +namespace personalization_app { class FakePersonalizationAppAmbientProvider : public PersonalizationAppAmbientProvider { @@ -57,6 +58,7 @@ ambient_receiver_{this}; }; +} // namespace personalization_app } // namespace ash #endif // ASH_WEBUI_PERSONALIZATION_APP_TEST_FAKE_PERSONALIZATION_APP_AMBIENT_PROVIDER_H_
diff --git a/ash/webui/personalization_app/test/fake_personalization_app_theme_provider.cc b/ash/webui/personalization_app/test/fake_personalization_app_theme_provider.cc index 4f1677f3..41d8282 100644 --- a/ash/webui/personalization_app/test/fake_personalization_app_theme_provider.cc +++ b/ash/webui/personalization_app/test/fake_personalization_app_theme_provider.cc
@@ -4,6 +4,9 @@ #include "ash/webui/personalization_app/test/fake_personalization_app_theme_provider.h" +namespace ash { +namespace personalization_app { + FakePersonalizationAppThemeProvider::FakePersonalizationAppThemeProvider( content::WebUI* web_ui) {} @@ -25,3 +28,6 @@ bool dark_mode_enabled) { return; } + +} // namespace personalization_app +} // namespace ash
diff --git a/ash/webui/personalization_app/test/fake_personalization_app_theme_provider.h b/ash/webui/personalization_app/test/fake_personalization_app_theme_provider.h index a918967..31841b4e 100644 --- a/ash/webui/personalization_app/test/fake_personalization_app_theme_provider.h +++ b/ash/webui/personalization_app/test/fake_personalization_app_theme_provider.h
@@ -19,8 +19,11 @@ class WebUI; } // namespace content +namespace ash { +namespace personalization_app { + class FakePersonalizationAppThemeProvider - : public ash::PersonalizationAppThemeProvider { + : public PersonalizationAppThemeProvider { public: explicit FakePersonalizationAppThemeProvider(content::WebUI* web_ui); @@ -46,4 +49,7 @@ theme_receiver_{this}; }; +} // namespace personalization_app +} // namespace ash + #endif // ASH_WEBUI_PERSONALIZATION_APP_TEST_FAKE_PERSONALIZATION_APP_THEME_PROVIDER_H_
diff --git a/ash/webui/personalization_app/test/fake_personalization_app_user_provider.cc b/ash/webui/personalization_app/test/fake_personalization_app_user_provider.cc index c99ba29..6c6798b 100644 --- a/ash/webui/personalization_app/test/fake_personalization_app_user_provider.cc +++ b/ash/webui/personalization_app/test/fake_personalization_app_user_provider.cc
@@ -10,6 +10,7 @@ #include "mojo/public/cpp/base/big_buffer.h" namespace ash { +namespace personalization_app { FakePersonalizationAppUserProvider::FakePersonalizationAppUserProvider( content::WebUI* web_ui) {} @@ -49,4 +50,5 @@ void FakePersonalizationAppUserProvider::SelectImageFromDisk() {} +} // namespace personalization_app } // namespace ash
diff --git a/ash/webui/personalization_app/test/fake_personalization_app_user_provider.h b/ash/webui/personalization_app/test/fake_personalization_app_user_provider.h index df0725b0..e5cd5e0d 100644 --- a/ash/webui/personalization_app/test/fake_personalization_app_user_provider.h +++ b/ash/webui/personalization_app/test/fake_personalization_app_user_provider.h
@@ -21,6 +21,7 @@ } // namespace content namespace ash { +namespace personalization_app { class FakePersonalizationAppUserProvider : public PersonalizationAppUserProvider { @@ -56,6 +57,7 @@ this}; }; +} // namespace personalization_app } // namespace ash #endif // ASH_WEBUI_PERSONALIZATION_APP_TEST_FAKE_PERSONALIZATION_APP_USER_PROVIDER_H_
diff --git a/ash/webui/personalization_app/test/fake_personalization_app_wallpaper_provider.cc b/ash/webui/personalization_app/test/fake_personalization_app_wallpaper_provider.cc index c87f50b..1063cbe6 100644 --- a/ash/webui/personalization_app/test/fake_personalization_app_wallpaper_provider.cc +++ b/ash/webui/personalization_app/test/fake_personalization_app_wallpaper_provider.cc
@@ -16,6 +16,9 @@ #include "mojo/public/cpp/bindings/pending_receiver.h" #include "mojo/public/cpp/bindings/receiver.h" +namespace ash { +namespace personalization_app { + namespace { const char kFakeCollectionId[] = "fake_collection_id"; } // namespace @@ -157,3 +160,6 @@ void FakePersonalizationAppWallpaperProvider::CancelPreviewWallpaper() { return; } + +} // namespace personalization_app +} // namespace ash
diff --git a/ash/webui/personalization_app/test/fake_personalization_app_wallpaper_provider.h b/ash/webui/personalization_app/test/fake_personalization_app_wallpaper_provider.h index 93c7b86c..544f6be 100644 --- a/ash/webui/personalization_app/test/fake_personalization_app_wallpaper_provider.h +++ b/ash/webui/personalization_app/test/fake_personalization_app_wallpaper_provider.h
@@ -19,8 +19,11 @@ class WebUI; } // namespace content +namespace ash { +namespace personalization_app { + class FakePersonalizationAppWallpaperProvider - : public ash::PersonalizationAppWallpaperProvider { + : public PersonalizationAppWallpaperProvider { public: explicit FakePersonalizationAppWallpaperProvider(content::WebUI* web_ui); @@ -103,4 +106,7 @@ wallpaper_receiver_{this}; }; +} // namespace personalization_app +} // namespace ash + #endif // ASH_WEBUI_PERSONALIZATION_APP_TEST_FAKE_PERSONALIZATION_APP_WALLPAPER_PROVIDER_H_
diff --git a/ash/webui/personalization_app/test/personalization_app_browsertest.js b/ash/webui/personalization_app/test/personalization_app_browsertest.js index 83221918..f0629b11 100644 --- a/ash/webui/personalization_app/test/personalization_app_browsertest.js +++ b/ash/webui/personalization_app/test/personalization_app_browsertest.js
@@ -40,7 +40,7 @@ /** @override */ get typedefCppFixture() { - return 'PersonalizationAppBrowserTestFixture'; + return 'ash::personalization_app::PersonalizationAppBrowserTestFixture'; } }
diff --git a/ash/webui/personalization_app/test/personalization_app_browsertest_fixture.cc b/ash/webui/personalization_app/test/personalization_app_browsertest_fixture.cc index 8925bcf..f663fd5 100644 --- a/ash/webui/personalization_app/test/personalization_app_browsertest_fixture.cc +++ b/ash/webui/personalization_app/test/personalization_app_browsertest_fixture.cc
@@ -14,24 +14,30 @@ #include "ash/webui/personalization_app/test/fake_personalization_app_wallpaper_provider.h" #include "chrome/test/base/mojo_web_ui_browser_test.h" +namespace ash { +namespace personalization_app { + std::unique_ptr<content::WebUIController> TestPersonalizationAppWebUIProvider::NewWebUI(content::WebUI* web_ui, const GURL& url) { auto ambient_provider = - std::make_unique<ash::FakePersonalizationAppAmbientProvider>(web_ui); + std::make_unique<FakePersonalizationAppAmbientProvider>(web_ui); auto theme_provider = std::make_unique<FakePersonalizationAppThemeProvider>(web_ui); auto wallpaper_provider = std::make_unique<FakePersonalizationAppWallpaperProvider>(web_ui); auto user_provider = - std::make_unique<ash::FakePersonalizationAppUserProvider>(web_ui); - return std::make_unique<ash::PersonalizationAppUI>( + std::make_unique<FakePersonalizationAppUserProvider>(web_ui); + return std::make_unique<PersonalizationAppUI>( web_ui, std::move(ambient_provider), std::move(theme_provider), std::move(user_provider), std::move(wallpaper_provider)); } void PersonalizationAppBrowserTestFixture::SetUpOnMainThread() { MojoWebUIBrowserTest::SetUpOnMainThread(); - test_factory_.AddFactoryOverride(ash::kChromeUIPersonalizationAppHost, + test_factory_.AddFactoryOverride(kChromeUIPersonalizationAppHost, &test_web_ui_provider_); } + +} // namespace personalization_app +} // namespace ash
diff --git a/ash/webui/personalization_app/test/personalization_app_browsertest_fixture.h b/ash/webui/personalization_app/test/personalization_app_browsertest_fixture.h index 70fc3a6..da1bacc 100644 --- a/ash/webui/personalization_app/test/personalization_app_browsertest_fixture.h +++ b/ash/webui/personalization_app/test/personalization_app_browsertest_fixture.h
@@ -11,6 +11,9 @@ #include "chrome/test/base/test_chrome_web_ui_controller_factory.h" #include "content/public/test/scoped_web_ui_controller_factory_registration.h" +namespace ash { +namespace personalization_app { + class TestPersonalizationAppWebUIProvider : public TestChromeWebUIControllerFactory::WebUIProvider { public: @@ -38,4 +41,7 @@ scoped_controller_factory_registration_{&test_factory_}; }; +} // namespace personalization_app +} // namespace ash + #endif // ASH_WEBUI_PERSONALIZATION_APP_TEST_PERSONALIZATION_APP_BROWSERTEST_FIXTURE_H_
diff --git a/ash/wm/desks/templates/desks_templates_item_view.cc b/ash/wm/desks/templates/desks_templates_item_view.cc index 83ab1da..1f4408e 100644 --- a/ash/wm/desks/templates/desks_templates_item_view.cc +++ b/ash/wm/desks/templates/desks_templates_item_view.cc
@@ -608,7 +608,10 @@ auto iter = std::find_if( templates_grid_view_items.begin(), templates_grid_view_items.end(), [this, name](const DesksTemplatesItemView* d) { - return (d != this && d->desk_template()->template_name() == name); + // Name duplication is allowed if one of the templates is an admin + // template. + return (d != this && d->desk_template()->template_name() == name && + d->desk_template()->source() != DeskTemplateSource::kPolicy); }); return iter == templates_grid_view_items.end() ? nullptr : *iter; }
diff --git a/base/BUILD.gn b/base/BUILD.gn index 084da698..31c2885 100644 --- a/base/BUILD.gn +++ b/base/BUILD.gn
@@ -479,6 +479,8 @@ "metrics/persistent_memory_allocator.h", "metrics/persistent_sample_map.cc", "metrics/persistent_sample_map.h", + "metrics/ranges_manager.cc", + "metrics/ranges_manager.h", "metrics/record_histogram_checker.h", "metrics/sample_map.cc", "metrics/sample_map.h", @@ -3093,6 +3095,7 @@ "metrics/persistent_histogram_storage_unittest.cc", "metrics/persistent_memory_allocator_unittest.cc", "metrics/persistent_sample_map_unittest.cc", + "metrics/ranges_manager_unittest.cc", "metrics/sample_map_unittest.cc", "metrics/sample_vector_unittest.cc", "metrics/single_sample_metrics_unittest.cc",
diff --git a/base/metrics/ranges_manager.cc b/base/metrics/ranges_manager.cc new file mode 100644 index 0000000..68c8d36 --- /dev/null +++ b/base/metrics/ranges_manager.cc
@@ -0,0 +1,62 @@ +// Copyright 2022 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "base/metrics/ranges_manager.h" + +namespace base { + +RangesManager::RangesManager() = default; + +RangesManager::~RangesManager() { + if (!do_not_release_ranges_on_destroy_for_testing_) + ReleaseBucketRanges(); +} + +size_t RangesManager::BucketRangesHash::operator()( + const BucketRanges* const a) const { + return a->checksum(); +} + +bool RangesManager::BucketRangesEqual::operator()( + const BucketRanges* const a, + const BucketRanges* const b) const { + return a->Equals(b); +} + +const BucketRanges* RangesManager::RegisterOrDeleteDuplicateRanges( + const BucketRanges* ranges) { + DCHECK(ranges->HasValidChecksum()); + + // Attempt to insert |ranges| into the set of registered BucketRanges. If an + // equivalent one already exists (one with the exact same ranges), this + // fetches the pre-existing one and does not insert the passed |ranges|. + const BucketRanges* const registered = *ranges_.insert(ranges).first; + + // If there is already a registered equivalent BucketRanges, delete the passed + // |ranges|. + if (registered != ranges) + delete ranges; + + return registered; +} + +std::vector<const BucketRanges*> RangesManager::GetBucketRanges() { + std::vector<const BucketRanges*> out; + out.reserve(ranges_.size()); + out.assign(ranges_.begin(), ranges_.end()); + return out; +} + +void RangesManager::ReleaseBucketRanges() { + for (auto* range : ranges_) { + delete range; + } + ranges_.clear(); +} + +void RangesManager::DoNotReleaseRangesOnDestroyForTesting() { + do_not_release_ranges_on_destroy_for_testing_ = true; +} + +} // namespace base
diff --git a/base/metrics/ranges_manager.h b/base/metrics/ranges_manager.h new file mode 100644 index 0000000..7c65d93 --- /dev/null +++ b/base/metrics/ranges_manager.h
@@ -0,0 +1,79 @@ +// Copyright 2022 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef BASE_METRICS_RANGES_MANAGER_H_ +#define BASE_METRICS_RANGES_MANAGER_H_ + +#include <unordered_set> +#include "base/base_export.h" +#include "base/metrics/bucket_ranges.h" + +namespace base { + +// Manages BucketRanges and their lifetime. When registering a BucketRanges +// to a RangesManager instance, if an equivalent one already exists (one with +// the exact same ranges), the passed BucketRanges is deleted. This is useful to +// prevent duplicate instances of equivalent BucketRanges. Upon the destruction +// of a RangesManager instance, all BucketRanges managed by it are destroyed. A +// BucketRanges instance should not be registered to multiple RangesManagers. +class BASE_EXPORT RangesManager { + public: + RangesManager(); + + RangesManager(const RangesManager&) = delete; + RangesManager& operator=(const RangesManager&) = delete; + + ~RangesManager(); + + // Registers a BucketRanges. If an equivalent BucketRanges is already + // registered, then the argument |ranges| will be deleted. The returned value + // is always the registered BucketRanges (either the argument, or the + // pre-existing one). Registering a BucketRanges passes the ownership, and + // will be released when the RangesManager is released. + const BucketRanges* RegisterOrDeleteDuplicateRanges( + const BucketRanges* ranges); + + // Gets all registered BucketRanges. The order of returned BucketRanges is not + // guaranteed. + std::vector<const BucketRanges*> GetBucketRanges(); + + // Some tests may instantiate temporary StatisticsRecorders, each having their + // own RangesManager. During the tests, ranges may get registered with a + // recorder that later gets released, which would release the ranges as well. + // Calling this method prevents this, as the tests may not expect them to be + // deleted. + void DoNotReleaseRangesOnDestroyForTesting(); + + private: + // Removes all registered BucketRanges and destroys them. This is called in + // the destructor. + void ReleaseBucketRanges(); + + // Used to get the hash of a BucketRanges, which is simply its checksum. + struct BucketRangesHash { + size_t operator()(const BucketRanges* a) const; + }; + + // Comparator for BucketRanges. See `BucketRanges::Equals()`. + struct BucketRangesEqual { + bool operator()(const BucketRanges* a, const BucketRanges* b) const; + }; + + // Type for a set of unique RangesBucket, with their hash and equivalence + // defined by `BucketRangesHash` and `BucketRangesEqual`. + typedef std:: + unordered_set<const BucketRanges*, BucketRangesHash, BucketRangesEqual> + RangesMap; + + // The set of unique BucketRanges registered to the RangesManager. + RangesMap ranges_; + + // Whether or not to release the registered BucketRanges when this + // RangesManager is destroyed. See `DoNotReleaseRangesOnDestroyForTesting()`. + bool do_not_release_ranges_on_destroy_for_testing_ = false; +}; + +} // namespace base + +#endif // BASE_METRICS_RANGES_MANAGER_H_
diff --git a/base/metrics/ranges_manager_unittest.cc b/base/metrics/ranges_manager_unittest.cc new file mode 100644 index 0000000..2252b86 --- /dev/null +++ b/base/metrics/ranges_manager_unittest.cc
@@ -0,0 +1,81 @@ +// Copyright 2022 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "base/metrics/ranges_manager.h" + +#include <vector> + +#include "testing/gmock/include/gmock/gmock.h" +#include "testing/gtest/include/gtest/gtest.h" + +namespace base { + +using testing::UnorderedElementsAre; + +TEST(RangesManagerTest, RegisterBucketRanges) { + RangesManager ranges_manager; + + // Create some BucketRanges. We call |ResetChecksum| to calculate and set + // their checksums. Checksums are used to validate integrity (and test for + // non-equivalence) and should be computed after a BucketRanges is fully + // initialized. Note that BucketRanges are initialized with 0 for all ranges, + // i.e., all buckets will be [0, 0). + BucketRanges* ranges1 = new BucketRanges(3); + ranges1->ResetChecksum(); + BucketRanges* ranges2 = new BucketRanges(4); + ranges2->ResetChecksum(); + + // Register new ranges. + EXPECT_EQ(ranges1, ranges_manager.RegisterOrDeleteDuplicateRanges(ranges1)); + EXPECT_EQ(ranges2, ranges_manager.RegisterOrDeleteDuplicateRanges(ranges2)); + EXPECT_THAT(ranges_manager.GetBucketRanges(), + UnorderedElementsAre(ranges1, ranges2)); + + // Register |ranges1| again. The registered BucketRanges set should not change + // as |ranges1| is already registered. + EXPECT_EQ(ranges1, ranges_manager.RegisterOrDeleteDuplicateRanges(ranges1)); + EXPECT_THAT(ranges_manager.GetBucketRanges(), + UnorderedElementsAre(ranges1, ranges2)); + + // Make sure |ranges1| still exists, and is the same as what we expect (all + // ranges are 0). + ASSERT_EQ(3u, ranges1->size()); + EXPECT_EQ(0, ranges1->range(0)); + EXPECT_EQ(0, ranges1->range(1)); + EXPECT_EQ(0, ranges1->range(2)); + + // Register a new |ranges3| that is equivalent to |ranges1| (same ranges). We + // expect that |ranges3| is deleted (verified by LeakSanitizer bots) and that + // |ranges1| is returned by |RegisterOrDeleteDuplicateRanges|. + BucketRanges* ranges3 = new BucketRanges(3); + ranges3->ResetChecksum(); + EXPECT_EQ(ranges1, ranges_manager.RegisterOrDeleteDuplicateRanges(ranges3)); + EXPECT_THAT(ranges_manager.GetBucketRanges(), + UnorderedElementsAre(ranges1, ranges2)); +} + +TEST(RangesManagerTest, ReleaseBucketRangesOnDestroy) { + std::unique_ptr<RangesManager> ranges_manager = + std::make_unique<RangesManager>(); + + // Create a BucketRanges. We call |ResetChecksum| to calculate and set its + // checksum. Checksums are used to validate integrity (and test for + // non-equivalence) and should be computed after a BucketRanges is fully + // initialized. Note that BucketRanges are initialized with 0 for all ranges, + // i.e., all buckets will be [0, 0). + BucketRanges* ranges = new BucketRanges(1); + ranges->ResetChecksum(); + + // Register new range. + EXPECT_EQ(ranges, ranges_manager->RegisterOrDeleteDuplicateRanges(ranges)); + EXPECT_THAT(ranges_manager->GetBucketRanges(), UnorderedElementsAre(ranges)); + + // Explicitly destroy |ranges_manager|. + ranges_manager.reset(); + + // LeakSanitizer (lsan) bots will verify that |ranges| will be properly + // released after destroying |ranges_manager|. +} + +} // namespace base
diff --git a/base/metrics/statistics_recorder.cc b/base/metrics/statistics_recorder.cc index 90a296e..1f808ca 100644 --- a/base/metrics/statistics_recorder.cc +++ b/base/metrics/statistics_recorder.cc
@@ -47,17 +47,6 @@ std::atomic<StatisticsRecorder::GlobalSampleCallback> StatisticsRecorder::global_sample_callback_{nullptr}; -size_t StatisticsRecorder::BucketRangesHash::operator()( - const BucketRanges* const a) const { - return a->checksum(); -} - -bool StatisticsRecorder::BucketRangesEqual::operator()( - const BucketRanges* const a, - const BucketRanges* const b) const { - return a->Equals(b); -} - StatisticsRecorder::ScopedHistogramSampleObserver:: ScopedHistogramSampleObserver(const std::string& name, OnSampleCallback callback) @@ -140,19 +129,14 @@ // static const BucketRanges* StatisticsRecorder::RegisterOrDeleteDuplicateRanges( const BucketRanges* ranges) { - DCHECK(ranges->HasValidChecksum()); - - // Declared before |auto_lock| to ensure correct destruction order. - std::unique_ptr<const BucketRanges> ranges_deleter; const AutoLock auto_lock(lock_.Get()); EnsureGlobalRecorderWhileLocked(); - const BucketRanges* const registered = *top_->ranges_.insert(ranges).first; - if (registered == ranges) { + const BucketRanges* const registered = + top_->ranges_manager_.RegisterOrDeleteDuplicateRanges(ranges); + + if (registered == ranges) ANNOTATE_LEAKING_OBJECT_PTR(ranges); - } else { - ranges_deleter.reset(ranges); - } return registered; } @@ -189,12 +173,10 @@ // static std::vector<const BucketRanges*> StatisticsRecorder::GetBucketRanges() { - std::vector<const BucketRanges*> out; const AutoLock auto_lock(lock_.Get()); EnsureGlobalRecorderWhileLocked(); - out.reserve(top_->ranges_.size()); - out.assign(top_->ranges_.begin(), top_->ranges_.end()); - return out; + + return top_->ranges_manager_.GetBucketRanges(); } // static @@ -366,7 +348,11 @@ std::unique_ptr<StatisticsRecorder> StatisticsRecorder::CreateTemporaryForTesting() { const AutoLock auto_lock(lock_.Get()); - return WrapUnique(new StatisticsRecorder()); + std::unique_ptr<StatisticsRecorder> temporary_recorder = + WrapUnique(new StatisticsRecorder()); + temporary_recorder->ranges_manager_ + .DoNotReleaseRangesOnDestroyForTesting(); // IN-TEST + return temporary_recorder; } // static
diff --git a/base/metrics/statistics_recorder.h b/base/metrics/statistics_recorder.h index e8c7d98..9a436a4 100644 --- a/base/metrics/statistics_recorder.h +++ b/base/metrics/statistics_recorder.h
@@ -26,6 +26,7 @@ #include "base/memory/raw_ptr.h" #include "base/memory/weak_ptr.h" #include "base/metrics/histogram_base.h" +#include "base/metrics/ranges_manager.h" #include "base/metrics/record_histogram_checker.h" #include "base/observer_list_threadsafe.h" #include "base/strings/string_piece.h" @@ -306,18 +307,6 @@ scoped_refptr<HistogramSampleObserverList>> ObserverMap; - struct BucketRangesHash { - size_t operator()(const BucketRanges* a) const; - }; - - struct BucketRangesEqual { - bool operator()(const BucketRanges* a, const BucketRanges* b) const; - }; - - typedef std:: - unordered_set<const BucketRanges*, BucketRangesHash, BucketRangesEqual> - RangesMap; - friend class StatisticsRecorderTest; FRIEND_TEST_ALL_PREFIXES(StatisticsRecorderTest, IterationTest); @@ -355,8 +344,8 @@ HistogramMap histograms_; ObserverMap observers_; - RangesMap ranges_; HistogramProviders providers_; + RangesManager ranges_manager_; std::unique_ptr<RecordHistogramChecker> record_checker_; // Previous global recorder that existed when this one was created.
diff --git a/base/metrics/statistics_recorder_unittest.cc b/base/metrics/statistics_recorder_unittest.cc index 0d23e20..f9304d8d 100644 --- a/base/metrics/statistics_recorder_unittest.cc +++ b/base/metrics/statistics_recorder_unittest.cc
@@ -156,43 +156,6 @@ UnorderedElementsAre(ranges)); } -TEST_P(StatisticsRecorderTest, RegisterBucketRanges) { - std::vector<const BucketRanges*> registered_ranges; - - BucketRanges* ranges1 = new BucketRanges(3); - ranges1->ResetChecksum(); - BucketRanges* ranges2 = new BucketRanges(4); - ranges2->ResetChecksum(); - - // Register new ranges. - EXPECT_EQ(ranges1, - StatisticsRecorder::RegisterOrDeleteDuplicateRanges(ranges1)); - EXPECT_EQ(ranges2, - StatisticsRecorder::RegisterOrDeleteDuplicateRanges(ranges2)); - EXPECT_THAT(StatisticsRecorder::GetBucketRanges(), - UnorderedElementsAre(ranges1, ranges2)); - - // Register some ranges again. - EXPECT_EQ(ranges1, - StatisticsRecorder::RegisterOrDeleteDuplicateRanges(ranges1)); - EXPECT_THAT(StatisticsRecorder::GetBucketRanges(), - UnorderedElementsAre(ranges1, ranges2)); - - // Make sure the ranges is still the one we know. - ASSERT_EQ(3u, ranges1->size()); - EXPECT_EQ(0, ranges1->range(0)); - EXPECT_EQ(0, ranges1->range(1)); - EXPECT_EQ(0, ranges1->range(2)); - - // Register ranges with same values. - BucketRanges* ranges3 = new BucketRanges(3); - ranges3->ResetChecksum(); - EXPECT_EQ(ranges1, // returning ranges1 - StatisticsRecorder::RegisterOrDeleteDuplicateRanges(ranges3)); - EXPECT_THAT(StatisticsRecorder::GetBucketRanges(), - UnorderedElementsAre(ranges1, ranges2)); -} - TEST_P(StatisticsRecorderTest, RegisterHistogram) { // Create a Histogram that was not registered. Histogram* const histogram1 = CreateHistogram("TestHistogram1", 1, 1000, 10);
diff --git a/build/config/ios/ios_sdk.gni b/build/config/ios/ios_sdk.gni index 5d5399a..974fea7d 100644 --- a/build/config/ios/ios_sdk.gni +++ b/build/config/ios/ios_sdk.gni
@@ -87,11 +87,6 @@ primary_fat_toolchain_name = "" } -# Official builds may not use goma. -assert(!((use_goma || use_remoteexec) && is_chrome_branded && - is_official_build && target_cpu == "arm64"), - "goma/re-client use is forbidden for official iOS builds.") - assert(custom_toolchain == "" || additional_target_cpus == [], "cannot define both custom_toolchain and additional_target_cpus")
diff --git a/build/fuchsia/linux.sdk.sha1 b/build/fuchsia/linux.sdk.sha1 index 82e1600..55b0379c8 100644 --- a/build/fuchsia/linux.sdk.sha1 +++ b/build/fuchsia/linux.sdk.sha1
@@ -1 +1 @@ -7.20220331.1.1 +7.20220331.2.1
diff --git a/build/fuchsia/linux_internal.sdk.sha1 b/build/fuchsia/linux_internal.sdk.sha1 index 82e1600..3f94251a 100644 --- a/build/fuchsia/linux_internal.sdk.sha1 +++ b/build/fuchsia/linux_internal.sdk.sha1
@@ -1 +1 @@ -7.20220331.1.1 +7.20220331.3.1
diff --git a/build/fuchsia/mac.sdk.sha1 b/build/fuchsia/mac.sdk.sha1 index 6dc5632c..55b0379c8 100644 --- a/build/fuchsia/mac.sdk.sha1 +++ b/build/fuchsia/mac.sdk.sha1
@@ -1 +1 @@ -7.20220331.0.1 +7.20220331.2.1
diff --git a/cc/base/math_util.cc b/cc/base/math_util.cc index c5393bc7..a35318d 100644 --- a/cc/base/math_util.cc +++ b/cc/base/math_util.cc
@@ -15,6 +15,7 @@ #include "base/trace_event/traced_value.h" #include "base/values.h" #include "ui/gfx/geometry/angle_conversions.h" +#include "ui/gfx/geometry/linear_gradient.h" #include "ui/gfx/geometry/quad_f.h" #include "ui/gfx/geometry/rect.h" #include "ui/gfx/geometry/rect_conversions.h" @@ -1005,6 +1006,18 @@ res->AppendDouble(rect.GetCornerRadii(gfx::RRectF::Corner::kLowerRight).y()); res->AppendDouble(rect.GetCornerRadii(gfx::RRectF::Corner::kLowerLeft).x()); res->AppendDouble(rect.GetCornerRadii(gfx::RRectF::Corner::kLowerLeft).y()); +} + +void MathUtil::AddToTracedValue(const char* name, + const gfx::LinearGradient& gradient, + base::trace_event::TracedValue* res) { + res->BeginArray(name); + res->AppendInteger(gradient.angle()); + res->AppendInteger(gradient.step_count()); + for (size_t i = 0; i < gradient.step_count(); i++) { + res->AppendDouble(gradient.steps()[i].percent); + res->AppendInteger(gradient.steps()[i].alpha); + } res->EndArray(); }
diff --git a/cc/base/math_util.h b/cc/base/math_util.h index 558ba608..a29fc49 100644 --- a/cc/base/math_util.h +++ b/cc/base/math_util.h
@@ -39,6 +39,7 @@ class Vector2dF; class Vector2d; class Vector3dF; +class LinearGradient; } // namespace gfx namespace cc { @@ -311,6 +312,9 @@ static void AddCornerRadiiToTracedValue(const char* name, const gfx::RRectF& rect, base::trace_event::TracedValue* res); + static void AddToTracedValue(const char* name, + const gfx::LinearGradient& gradient, + base::trace_event::TracedValue* res); // Returns a base::Value representation of the floating point value. // If the value is inf, returns max double/float representation.
diff --git a/cc/layers/layer.cc b/cc/layers/layer.cc index 9b363d6..198c0d9 100644 --- a/cc/layers/layer.cc +++ b/cc/layers/layer.cc
@@ -408,7 +408,7 @@ // size of this layer. if (!IsUsingLayerLists()) { if (subtree_capture_id().is_valid() || masks_to_bounds() || mask_layer() || - HasRoundedCorner()) { + HasMaskFilter()) { SetSubtreePropertyChanged(); SetPropertyTreesNeedRebuild(); } @@ -612,11 +612,11 @@ node->clip += offset_to_transform_parent(); property_trees->clip_tree_mutable().set_needs_update(true); } - if (HasRoundedCorner() && effect_tree_index() != kInvalidPropertyNodeId) { + if (HasMaskFilter() && effect_tree_index() != kInvalidPropertyNodeId) { if (EffectNode* node = property_trees->effect_tree_mutable().Node(effect_tree_index())) { - node->mask_filter_info = - gfx::MaskFilterInfo(effective_clip_rect, corner_radii()); + node->mask_filter_info = gfx::MaskFilterInfo( + effective_clip_rect, corner_radii(), gradient_mask()); node->effect_changed = true; property_trees->effect_tree_mutable().set_needs_update(true); } @@ -708,13 +708,17 @@ EnsureLayerTreeInputs().backdrop_filter_quality = quality; } -void Layer::SetRoundedCorner(const gfx::RoundedCornersF& corner_radii) { +void Layer::UpdateMaskFilterInfo(const gfx::RoundedCornersF* corner_radii, + const gfx::LinearGradient* gradient_mask) { DCHECK(IsPropertyChangeAllowed()); auto& inputs = EnsureLayerTreeInputs(); - if (inputs.corner_radii == corner_radii) - return; - inputs.corner_radii = corner_radii; + if (corner_radii) + inputs.corner_radii = *corner_radii; + + if (gradient_mask) + inputs.gradient_mask = *gradient_mask; + SetSubtreePropertyChanged(); SetNeedsCommit(); PropertyTrees* property_trees = @@ -723,8 +727,8 @@ if (property_trees && effect_tree_index() != kInvalidPropertyNodeId && (node = property_trees->effect_tree_mutable().Node(effect_tree_index()))) { - node->mask_filter_info = - gfx::MaskFilterInfo(EffectiveClipRect(), corner_radii); + node->mask_filter_info = gfx::MaskFilterInfo( + EffectiveClipRect(), inputs.corner_radii, inputs.gradient_mask); node->effect_changed = true; property_trees->effect_tree_mutable().set_needs_update(true); } else { @@ -732,6 +736,20 @@ } } +void Layer::SetRoundedCorner(const gfx::RoundedCornersF& corner_radii) { + if (EnsureLayerTreeInputs().corner_radii == corner_radii) + return; + + UpdateMaskFilterInfo(&corner_radii, nullptr); +} + +void Layer::SetGradientMask(const gfx::LinearGradient& gradient_mask) { + if (EnsureLayerTreeInputs().gradient_mask == gradient_mask) + return; + + UpdateMaskFilterInfo(nullptr, &gradient_mask); +} + void Layer::SetIsFastRoundedCorner(bool enable) { DCHECK(IsPropertyChangeAllowed()); auto& inputs = EnsureLayerTreeInputs();
diff --git a/cc/layers/layer.h b/cc/layers/layer.h index b171e168..c99407a 100644 --- a/cc/layers/layer.h +++ b/cc/layers/layer.h
@@ -34,13 +34,11 @@ #include "components/viz/common/surfaces/region_capture_bounds.h" #include "components/viz/common/surfaces/subtree_capture_id.h" #include "third_party/skia/include/core/SkColor.h" +#include "ui/gfx/geometry/linear_gradient.h" #include "ui/gfx/geometry/point3_f.h" #include "ui/gfx/geometry/point_f.h" #include "ui/gfx/geometry/rect.h" #include "ui/gfx/geometry/rounded_corners_f.h" -#include "ui/gfx/geometry/rrect_f.h" -#include "ui/gfx/geometry/transform.h" -#include "ui/gfx/geometry/vector2d_f.h" namespace viz { class CopyOutputRequest; @@ -281,7 +279,9 @@ // subtree (as if they are together as a single composited entity) when // blitting into their target. Setting this makes the layer masked to bounds. // If the layer has a clip of its own, the rounded corner will be applied - // along the layer's clip rect corners. + // along the layer's clip rect corners. TODO(sashamcintosh): Apply rounded + // corner when the layer has a transform that is not 2d axis aligned. + // Currently the rounded corner is ignored in this case. void SetRoundedCorner(const gfx::RoundedCornersF& corner_radii); const gfx::RoundedCornersF& corner_radii() const { return layer_tree_inputs() ? layer_tree_inputs()->corner_radii @@ -301,6 +301,23 @@ } // For layer tree mode only. + // Set or get the gradient mask which is applied to the layer and its + // subtree (as if they are together as a single composited entity) when + // blitting into their target. Setting applies a linear gradient to the layer + // bounds and optionally the rounded corner defined by SetRoundedCorner. + // TODO(sashamcintosh): Apply gradient mask when the layer has a transform + // that is not 2d axis aligned. Currently the gradient mask is ignored in this + // case. + void SetGradientMask(const gfx::LinearGradient& gradient_mask); + const gfx::LinearGradient& gradient_mask() const { + return layer_tree_inputs() ? layer_tree_inputs()->gradient_mask + : gfx::LinearGradient::GetEmpty(); + } + bool HasGradientMask() const { return !gradient_mask().IsEmpty(); } + + bool HasMaskFilter() const { return HasRoundedCorner() || HasGradientMask(); } + + // For layer tree mode only. // Set or get the opacity which should be applied to the contents of the layer // and its subtree (together as a single composited entity) when blending them // into their target. Note that this does not speak to the contents of this @@ -1053,11 +1070,22 @@ // top left, top right, bottom right, bottom left gfx::RoundedCornersF corner_radii; + // Linear gradient mask applied to the layer's clip bounds and optionally + // the rounded corner given by |corner_radii|. + gfx::LinearGradient gradient_mask; + base::RepeatingCallback<void(const gfx::PointF&, const ElementId&)> did_scroll_callback; std::vector<std::unique_ptr<viz::CopyOutputRequest>> copy_requests; }; + // Set either one or both components of the mask filter info which is then + // applied to the layer and its + // subtree (as if they are together as a single composited entity) when + // blitting into their target. + void UpdateMaskFilterInfo(const gfx::RoundedCornersF* corner_radii, + const gfx::LinearGradient* gradient_mask); + ProtectedSequenceReadable<raw_ptr<Layer>> parent_; // Layer instances have a weak pointer to their LayerTreeHost.
diff --git a/cc/trees/draw_properties_unittest.cc b/cc/trees/draw_properties_unittest.cc index 184fad97..f18d813c 100644 --- a/cc/trees/draw_properties_unittest.cc +++ b/cc/trees/draw_properties_unittest.cc
@@ -36,6 +36,7 @@ #include "components/viz/common/frame_sinks/copy_output_result.h" #include "testing/gtest/include/gtest/gtest.h" #include "ui/gfx/animation/keyframe/keyframed_animation_curve.h" +#include "ui/gfx/geometry/linear_gradient.h" #include "ui/gfx/geometry/quad_f.h" #include "ui/gfx/geometry/rect_conversions.h" #include "ui/gfx/geometry/size_conversions.h" @@ -8119,16 +8120,32 @@ EXPECT_EQ(child_impl->clip_rect(), expected_child_impl->clip_rect()); } +struct MaskFilterTestCase { + std::string test_name; + gfx::RoundedCornersF rounded_corners; + gfx::LinearGradient gradient_mask; +}; + +class DrawPropertiesWithLayerTreeTest : + public DrawPropertiesTestWithLayerTree, + public testing::WithParamInterface<MaskFilterTestCase> { +}; + // In layer tree mode, not using impl-side PropertyTreeBuilder. -TEST_F(DrawPropertiesTestWithLayerTree, RoundedCornerOnRenderSurface) { +TEST_P(DrawPropertiesWithLayerTreeTest, MaskFilterOnRenderSurface) { // -Root // - Parent 1 - // - [Render Surface] Child 1 with rounded corner - // - [Render Surface] Parent 2 with rounded corner + // - [Render Surface] Child 1 with rounded corner and/or gradient mask + // - [Render Surface] Parent 2 with rounded corner and/or gradient mask // - [Render Surface] Child 2 - // - Parent 3 with rounded corner + // - Parent 3 with rounded corner and/or gradient mask // - [Render Surface] Child 3 + const MaskFilterTestCase test_case = GetParam(); + gfx::LinearGradient gradient_mask = test_case.gradient_mask; + if (!gradient_mask.IsEmpty()) + gradient_mask.AddStep(50, 0x50); + scoped_refptr<Layer> root = Layer::Create(); host()->SetRootLayer(root); root->SetBounds(gfx::Size(250, 250)); @@ -8146,7 +8163,8 @@ parent_1->SetPosition(gfx::PointF(80, 80)); parent_2->SetIsDrawable(true); parent_2->SetForceRenderSurfaceForTesting(true); - parent_2->SetRoundedCorner(gfx::RoundedCornersF(10.f)); + parent_2->SetRoundedCorner(test_case.rounded_corners); + parent_2->SetGradientMask(gradient_mask); parent_2->SetIsFastRoundedCorner(true); scoped_refptr<Layer> parent_3 = Layer::Create(); @@ -8154,7 +8172,8 @@ parent_3->SetBounds(gfx::Size(80, 80)); parent_1->SetPosition(gfx::PointF(160, 160)); parent_3->SetIsDrawable(true); - parent_3->SetRoundedCorner(gfx::RoundedCornersF(10.f)); + parent_3->SetRoundedCorner(test_case.rounded_corners); + parent_3->SetGradientMask(gradient_mask); parent_3->SetIsFastRoundedCorner(true); scoped_refptr<Layer> child_1 = Layer::Create(); @@ -8162,7 +8181,8 @@ child_1->SetBounds(gfx::Size(80, 80)); child_1->SetIsDrawable(true); child_1->SetForceRenderSurfaceForTesting(true); - child_1->SetRoundedCorner(gfx::RoundedCornersF(10.f)); + child_1->SetRoundedCorner(test_case.rounded_corners); + child_1->SetGradientMask(gradient_mask); child_1->SetIsFastRoundedCorner(true); scoped_refptr<Layer> child_2 = Layer::Create(); @@ -8180,13 +8200,33 @@ UpdateMainDrawProperties(); CommitAndActivate(); - EXPECT_TRUE( + EXPECT_NE(test_case.rounded_corners.IsEmpty(), GetRenderSurfaceImpl(child_1)->mask_filter_info().HasRoundedCorners()); - EXPECT_TRUE( + EXPECT_NE(test_case.rounded_corners.IsEmpty(), GetRenderSurfaceImpl(child_2)->mask_filter_info().HasRoundedCorners()); - EXPECT_TRUE( + EXPECT_NE(test_case.rounded_corners.IsEmpty(), GetRenderSurfaceImpl(child_3)->mask_filter_info().HasRoundedCorners()); -} + EXPECT_NE(test_case.gradient_mask.IsEmpty(), + GetRenderSurfaceImpl(child_1)->mask_filter_info().HasGradientMask()); + EXPECT_NE(test_case.gradient_mask.IsEmpty(), + GetRenderSurfaceImpl(child_2)->mask_filter_info().HasGradientMask()); + EXPECT_NE(test_case.gradient_mask.IsEmpty(), + GetRenderSurfaceImpl(child_3)->mask_filter_info().HasGradientMask()); + } + + +INSTANTIATE_TEST_SUITE_P( + DrawPropertiesWithLayerTreeTests, + DrawPropertiesWithLayerTreeTest, + testing::ValuesIn<MaskFilterTestCase>({ + {"WithRoundedCorners", gfx::RoundedCornersF(10.f), + gfx::LinearGradient::GetEmpty()}, + {"WithGradientMask", gfx::RoundedCornersF(0.f), gfx::LinearGradient(45)}, + {"WithRoundedCornersAndGradientMask", gfx::RoundedCornersF(10.f), + gfx::LinearGradient(45)}, + }), + [](const testing::TestParamInfo<DrawPropertiesWithLayerTreeTest::ParamType>& + info) { return info.param.test_name; }); } // namespace } // namespace cc
diff --git a/cc/trees/draw_property_utils.cc b/cc/trees/draw_property_utils.cc index fa9ed877..6dd910d1 100644 --- a/cc/trees/draw_property_utils.cc +++ b/cc/trees/draw_property_utils.cc
@@ -739,14 +739,14 @@ return kEmptyMaskFilterInfoPair; // Traverse the parent chain up to the render target to find a node which has - // a rounded corner bounds set. + // mask filter info set. const EffectNode* node = effect_node; - bool found_rounded_corner = false; + bool found_mask_filter_info = false; + while (node) { - if (node->mask_filter_info.HasRoundedCorners()) { - found_rounded_corner = true; + found_mask_filter_info = !node->mask_filter_info.IsEmpty(); + if (found_mask_filter_info) break; - } // If the iteration has reached a node in the parent chain that has a render // surface, then break. If this iteration is for a render surface to begin @@ -763,9 +763,9 @@ node = effect_tree->parent(node); } - // While traversing up the parent chain we did not find any node with a - // rounded corner. - if (!node || !found_rounded_corner) + // While traversing up the parent chain we did not find any node with mask + // filter info. + if (!node || !found_mask_filter_info) return kEmptyMaskFilterInfoPair; gfx::Transform to_target;
diff --git a/cc/trees/effect_node.cc b/cc/trees/effect_node.cc index 40425ca..cf21813 100644 --- a/cc/trees/effect_node.cc +++ b/cc/trees/effect_node.cc
@@ -134,6 +134,8 @@ return "backdrop filter animation"; case RenderSurfaceReason::kRoundedCorner: return "rounded corner"; + case RenderSurfaceReason::kGradientMask: + return "gradient mask"; case RenderSurfaceReason::kClipPath: return "clip path"; case RenderSurfaceReason::kClipAxisAlignment: @@ -184,6 +186,10 @@ value->SetBoolean("mask_filter_is_fast_rounded_corner", is_fast_rounded_corner); } + if (mask_filter_info.HasGradientMask()) { + MathUtil::AddToTracedValue("mask_filter_gradient_mask", + mask_filter_info.gradient_mask(), value); + } } value->SetString("blend_mode", SkBlendMode_Name(blend_mode)); value->SetString("subtree_capture_id", subtree_capture_id.ToString());
diff --git a/cc/trees/effect_node.h b/cc/trees/effect_node.h index 733eeaa..41039a58 100644 --- a/cc/trees/effect_node.h +++ b/cc/trees/effect_node.h
@@ -51,6 +51,7 @@ kMirrored, kSubtreeIsBeingCaptured, kDocumentTransitionParticipant, + kGradientMask, // This must be the last value because it's used in tracing code to know the // number of reasons. kTest,
diff --git a/cc/trees/property_tree_builder.cc b/cc/trees/property_tree_builder.cc index 7b6e1a79..20c374b 100644 --- a/cc/trees/property_tree_builder.cc +++ b/cc/trees/property_tree_builder.cc
@@ -48,6 +48,7 @@ bool not_axis_aligned_since_last_clip; gfx::Transform compound_transform_since_render_target; bool* subtree_has_rounded_corner; + bool* subtree_has_gradient_mask; }; class PropertyTreeBuilderContext { @@ -90,6 +91,7 @@ bool UpdateRenderSurfaceIfNeeded(int parent_effect_tree_id, DataForRecursion* data_for_children, bool subtree_has_rounded_corner, + bool subtree_has_gradient_mask, bool created_transform_node) const; raw_ptr<LayerTreeHost> layer_tree_host_; @@ -169,7 +171,7 @@ } bool LayerClipsSubtree(Layer* layer) { - return LayerClipsSubtreeToItsBounds(layer) || layer->HasRoundedCorner() || + return LayerClipsSubtreeToItsBounds(layer) || layer->HasMaskFilter() || !layer->clip_rect().IsEmpty(); } @@ -240,7 +242,7 @@ DCHECK(!is_scrollable || is_snapped); bool requires_node = is_root || is_snapped || has_significant_transform || has_any_transform_animation || has_surface || - layer->HasRoundedCorner(); + layer->HasMaskFilter(); int parent_index = kRootPropertyNodeId; gfx::Vector2dF parent_offset; @@ -377,6 +379,10 @@ return RenderSurfaceReason::kOpacity; } + // A layer with gradient mask is translucent too. + if (layer->HasGradientMask() && at_least_two_layers_in_subtree_draw_content) + return RenderSurfaceReason::kGradientMask; + // If we force it. if (layer->force_render_surface_for_testing()) return RenderSurfaceReason::kTest; @@ -446,7 +452,7 @@ bool requires_node = is_root || has_transparency || has_potential_opacity_animation || has_potential_filter_animation || has_non_axis_aligned_clip || - should_create_render_surface || layer->HasRoundedCorner(); + should_create_render_surface || layer->HasMaskFilter(); int parent_id = data_from_ancestor.effect_tree_parent; @@ -514,19 +520,20 @@ ? node_id : data_from_ancestor.closest_ancestor_being_captured; - if (layer->HasRoundedCorner()) { + if (layer->HasMaskFilter()) { // This is currently in the local space of the layer and hence in an invalid // space. Once we have the associated transform node for this effect node, // we will update this to the transform node's coordinate space. node->mask_filter_info = - gfx::MaskFilterInfo(layer->EffectiveClipRect(), layer->corner_radii()); + gfx::MaskFilterInfo(layer->EffectiveClipRect(), layer->corner_radii(), + layer->gradient_mask()); node->is_fast_rounded_corner = layer->is_fast_rounded_corner(); } if (!is_root) { - // Having a rounded corner or a render surface, both trigger the creation - // of a transform node. - if (should_create_render_surface || layer->HasRoundedCorner()) { + // Rounded corner, gradient mask or render surface should trigger the + // creation of a transform node. + if (should_create_render_surface || layer->HasMaskFilter()) { // In this case, we will create a transform node, so it's safe to use the // next available id from the transform tree as this effect node's // transform id. @@ -577,10 +584,12 @@ int parent_effect_tree_id, DataForRecursion* data_for_children, bool subtree_has_rounded_corner, + bool subtree_has_gradient_mask, bool created_transform_node) const { // No effect node was generated for this layer. if (parent_effect_tree_id == data_for_children->effect_tree_parent) { *data_for_children->subtree_has_rounded_corner = subtree_has_rounded_corner; + *data_for_children->subtree_has_gradient_mask = subtree_has_gradient_mask; return false; } @@ -588,30 +597,38 @@ effect_tree_.Node(data_for_children->effect_tree_parent); const bool has_rounded_corner = effect_node->mask_filter_info.HasRoundedCorners(); + const bool has_gradient_mask = + effect_node->mask_filter_info.HasGradientMask(); - // Having a rounded corner should trigger a transform node. - if (has_rounded_corner) + // Having a mask (either rounded corner or gradient) should trigger a + // transform node. + if (has_rounded_corner || has_gradient_mask) DCHECK(created_transform_node); - // If the subtree has a rounded corner and this node also has a rounded - // corner, then this node needs to have a render surface to prevent any - // intersections between the rrects. Since GL renderer can only handle a - // single rrect per quad at draw time, it would be unable to handle - // intersections thus resulting in artifacts. + // If the subtree has a mask (either rounded corner or gradient), and this + // node also has a mask too, then this node needs to have a render surface to + // prevent any intersections between the masks. Since GL renderer can only + // handle a single rrect/gradient mask per quad at draw time, it would be + // unable to handle intersections thus resulting in artifacts. if (subtree_has_rounded_corner && has_rounded_corner) effect_node->render_surface_reason = RenderSurfaceReason::kRoundedCorner; + else if (subtree_has_gradient_mask && has_gradient_mask) + effect_node->render_surface_reason = RenderSurfaceReason::kGradientMask; - // Inform the parent that its subtree has rounded corners if one of the two - // scenario is true: - // - The subtree rooted at this node has a rounded corner and this node - // does not have a render surface. - // - This node has a rounded corner. + // Inform the parent that its subtree has a mask (either rounded corner or + // gradient) if one of the two scenario is true: + // - The subtree rooted at this node has a mask (either rounded corner or + // gradient) and this node does not have a render surface. + // - This node has a mask (either rounded corner or mask) // The parent may have a rounded corner and would want to create a render // surface of its own to prevent blending artifacts due to intersecting // rounded corners. *data_for_children->subtree_has_rounded_corner = (subtree_has_rounded_corner && !effect_node->HasRenderSurface()) || has_rounded_corner; + *data_for_children->subtree_has_gradient_mask = + (subtree_has_gradient_mask && !effect_node->HasRenderSurface()) || + has_gradient_mask; return effect_node->HasRenderSurface(); } @@ -682,6 +699,7 @@ DataForRecursion data_for_children(data_from_parent); *data_for_children.subtree_has_rounded_corner = false; + *data_for_children.subtree_has_gradient_mask = false; bool created_render_surface = AddEffectNodeIfNeeded(data_from_parent, layer, &data_for_children); @@ -707,16 +725,19 @@ !has_non_axis_aligned_clip; bool subtree_has_rounded_corner = false; + bool subtree_has_gradient_mask = false; for (const scoped_refptr<Layer>& child : layer->children()) { if (layer->subtree_property_changed()) child->SetSubtreePropertyChanged(); BuildPropertyTreesInternal(child.get(), data_for_children); subtree_has_rounded_corner |= *data_for_children.subtree_has_rounded_corner; + subtree_has_gradient_mask |= *data_for_children.subtree_has_gradient_mask; } created_render_surface = UpdateRenderSurfaceIfNeeded( data_from_parent.effect_tree_parent, &data_for_children, - subtree_has_rounded_corner, created_transform_node); + subtree_has_rounded_corner, subtree_has_gradient_mask, + created_transform_node); } void PropertyTreeBuilderContext::BuildPropertyTrees() { @@ -767,6 +788,8 @@ bool subtree_has_rounded_corner; data_for_recursion.subtree_has_rounded_corner = &subtree_has_rounded_corner; + bool subtree_has_gradient_mask; + data_for_recursion.subtree_has_gradient_mask = &subtree_has_gradient_mask; BuildPropertyTreesInternal(root_layer_, data_for_recursion); property_trees_.set_needs_rebuild(false);
diff --git a/cc/trees/property_tree_builder_unittest.cc b/cc/trees/property_tree_builder_unittest.cc index ee8c82f9..b5639ee 100644 --- a/cc/trees/property_tree_builder_unittest.cc +++ b/cc/trees/property_tree_builder_unittest.cc
@@ -42,6 +42,9 @@ RenderSurfaceImpl* GetRenderSurfaceImpl(const scoped_refptr<Layer>& layer) { return GetRenderSurface(ImplOf(layer)); } + LayerImpl* GetLayerImpl(const scoped_refptr<Layer>& layer) { + return host()->host_impl()->active_tree()->LayerById(layer->id()); + } // Updates main thread draw properties, commits main thread tree to // impl-side pending tree, and updates pending tree draw properties. @@ -747,6 +750,252 @@ GetRenderSurfaceImpl(parent)->DrawableContentRect()); } +TEST_F(PropertyTreeBuilderTest, GradientMask) { + auto root = Layer::Create(); + host()->SetRootLayer(root); + root->SetBounds(gfx::Size(200, 200)); + root->SetIsDrawable(true); + + auto child1 = Layer::Create(); + root->AddChild(child1); + child1->SetBounds(gfx::Size(100, 100)); + child1->SetIsDrawable(true); + + gfx::LinearGradient gradient_mask(45); + gradient_mask.AddStep(50, 0x50); + child1->SetGradientMask(gradient_mask); + + // Without render surface. + CommitAndActivate(); + { + auto* effect_node1 = GetEffectNode(child1.get()); + EXPECT_FALSE(effect_node1->mask_filter_info.HasRoundedCorners()); + EXPECT_EQ(gfx::RectF(100, 100), effect_node1->mask_filter_info.bounds()); + EXPECT_TRUE(effect_node1->mask_filter_info.HasGradientMask()); + EXPECT_EQ(gradient_mask, effect_node1->mask_filter_info.gradient_mask()); + EXPECT_FALSE(effect_node1->HasRenderSurface()); + auto* layer_impl1 = GetLayerImpl(child1); + EXPECT_TRUE( + layer_impl1->draw_properties().mask_filter_info.HasGradientMask()); + } + + // Scale and translate should work. + gfx::Transform scale_and_translate_transform; + scale_and_translate_transform.Translate({10.f, 10.f}); + scale_and_translate_transform.Scale(3.f, 2.f); + child1->SetTransform(scale_and_translate_transform); + CommitAndActivate(); + { + // |mask_info| is in the coordinate space of the transform node associated + // with this effect node. + auto* effect_node1 = GetEffectNode(child1.get()); + EXPECT_FALSE(effect_node1->mask_filter_info.HasRoundedCorners()); + EXPECT_TRUE(effect_node1->mask_filter_info.HasGradientMask()); + EXPECT_EQ(gfx::RectF(100, 100), effect_node1->mask_filter_info.bounds()); + EXPECT_EQ(gradient_mask, effect_node1->mask_filter_info.gradient_mask()); + EXPECT_FALSE(effect_node1->HasRenderSurface()); + + // |mask_info| coordinates are in the target space of the layer. + auto* layer_impl1 = GetLayerImpl(child1); + EXPECT_FALSE(layer_impl1->draw_properties().mask_filter_info.IsEmpty()); + EXPECT_FALSE( + layer_impl1->draw_properties().mask_filter_info.HasRoundedCorners()); + EXPECT_TRUE( + layer_impl1->draw_properties().mask_filter_info.HasGradientMask()); + EXPECT_EQ(gfx::RectF(10, 10, 300, 200), + layer_impl1->draw_properties().mask_filter_info.bounds()); + // |angle| is updated by the scale transform. + EXPECT_EQ(33, layer_impl1->draw_properties() + .mask_filter_info.gradient_mask() + .angle()); + EXPECT_EQ(gradient_mask.steps(), layer_impl1->draw_properties() + .mask_filter_info.gradient_mask() + .steps()); + } + + // Rotate transform eliminates gradient mask. + gfx::Transform rotate_transform; + rotate_transform.Rotate(45); + child1->SetTransform(rotate_transform); + CommitAndActivate(); + { + auto* layer_impl1 = GetLayerImpl(child1); + EXPECT_EQ(gfx::RRectF::Type::kEmpty, + layer_impl1->draw_properties() + .mask_filter_info.rounded_corner_bounds() + .GetType()); + EXPECT_FALSE( + layer_impl1->draw_properties().mask_filter_info.HasGradientMask()); + } + + // Reset transform + child1->SetTransform(gfx::Transform()); + + // A child layer will create a render surface. + auto grand_child1 = Layer::Create(); + child1->AddChild(grand_child1); + grand_child1->SetBounds(gfx::Size(100, 100)); + grand_child1->SetIsDrawable(true); + CommitAndActivate(); + EXPECT_TRUE(GetEffectNode(child1.get())->HasRenderSurface()); + { + auto* effect_node1 = GetEffectNode(child1.get()); + EXPECT_TRUE(effect_node1->mask_filter_info.HasGradientMask()); + EXPECT_FALSE(effect_node1->mask_filter_info.HasRoundedCorners()); + EXPECT_EQ(gfx::RectF(100, 100), effect_node1->mask_filter_info.bounds()); + EXPECT_EQ(gradient_mask, effect_node1->mask_filter_info.gradient_mask()); + EXPECT_TRUE(effect_node1->HasRenderSurface()); + auto* render_surface_impl1 = GetRenderSurfaceImpl(child1); + EXPECT_FALSE(render_surface_impl1->mask_filter_info().IsEmpty()); + EXPECT_FALSE(render_surface_impl1->mask_filter_info().HasRoundedCorners()); + EXPECT_TRUE(render_surface_impl1->mask_filter_info().HasGradientMask()); + EXPECT_EQ(gfx::RectF(100, 100), + render_surface_impl1->mask_filter_info().bounds()); + EXPECT_EQ(gradient_mask, + render_surface_impl1->mask_filter_info().gradient_mask()); + } + + child1->SetTransform(scale_and_translate_transform); + CommitAndActivate(); + { + // |mask_info| is in the coordinate space of the transform node associated + // with this effect node. + auto* effect_node1 = GetEffectNode(child1.get()); + EXPECT_TRUE(effect_node1->mask_filter_info.HasGradientMask()); + EXPECT_FALSE(effect_node1->mask_filter_info.HasRoundedCorners()); + EXPECT_EQ(gfx::RectF(100, 100), effect_node1->mask_filter_info.bounds()); + EXPECT_EQ(gradient_mask, effect_node1->mask_filter_info.gradient_mask()); + EXPECT_TRUE(effect_node1->HasRenderSurface()); + + // |mask_info| coordinates are in the target space of the render surface's + // layer. + auto* render_surface_impl1 = GetRenderSurfaceImpl(child1); + EXPECT_FALSE(render_surface_impl1->mask_filter_info().IsEmpty()); + EXPECT_FALSE(render_surface_impl1->mask_filter_info().HasRoundedCorners()); + EXPECT_TRUE(render_surface_impl1->mask_filter_info().HasGradientMask()); + EXPECT_EQ(gfx::RectF(10, 10, 300, 200), + render_surface_impl1->mask_filter_info().bounds()); + // |angle| is updated by the scale transform. + EXPECT_EQ(33, + render_surface_impl1->mask_filter_info().gradient_mask().angle()); + EXPECT_EQ(gradient_mask.steps(), + render_surface_impl1->mask_filter_info().gradient_mask().steps()); + } + + // Rotate transform eliminates gradient mask. + child1->SetTransform(rotate_transform); + CommitAndActivate(); + { + auto* render_surface_impl1 = GetRenderSurfaceImpl(child1); + EXPECT_EQ(gfx::RRectF::Type::kEmpty, + render_surface_impl1->mask_filter_info() + .rounded_corner_bounds() + .GetType()); + EXPECT_FALSE(render_surface_impl1->mask_filter_info().HasGradientMask()); + } +} + +TEST_F(PropertyTreeBuilderTest, NestedGradientMask) { + auto root = Layer::Create(); + host()->SetRootLayer(root); + root->SetBounds(gfx::Size(200, 200)); + root->SetIsDrawable(true); + + auto child1 = Layer::Create(); + root->AddChild(child1); + child1->SetBounds(gfx::Size(100, 100)); + child1->SetIsDrawable(true); + + auto grand_child1 = Layer::Create(); + child1->AddChild(grand_child1); + grand_child1->SetBounds(gfx::Size(50, 50)); + grand_child1->SetIsDrawable(true); + + gfx::LinearGradient gradient_mask1(30); + gradient_mask1.AddStep(50, 0x50); + child1->SetGradientMask(gradient_mask1); + + gfx::LinearGradient gradient_mask2(45); + gradient_mask2.AddStep(0, 0xFF); + gradient_mask2.AddStep(100, 0x0); + grand_child1->SetGradientMask(gradient_mask2); + + CommitAndActivate(); + EXPECT_TRUE(GetEffectNode(child1.get())->HasRenderSurface()); + { + auto* render_surface_impl1 = GetRenderSurfaceImpl(child1); + EXPECT_EQ(gradient_mask1, + render_surface_impl1->mask_filter_info().gradient_mask()); + + auto* effect_node2 = GetEffectNode(grand_child1.get()); + EXPECT_FALSE(effect_node2->mask_filter_info.IsEmpty()); + EXPECT_FALSE(effect_node2->mask_filter_info.HasRoundedCorners()); + EXPECT_TRUE(effect_node2->mask_filter_info.HasGradientMask()); + EXPECT_EQ(gfx::RectF(50, 50), effect_node2->mask_filter_info.bounds()); + EXPECT_EQ(gradient_mask2, effect_node2->mask_filter_info.gradient_mask()); + EXPECT_FALSE(effect_node2->HasRenderSurface()); + auto& draw_properties2 = GetLayerImpl(grand_child1)->draw_properties(); + EXPECT_FALSE(draw_properties2.mask_filter_info.IsEmpty()); + EXPECT_FALSE(draw_properties2.mask_filter_info.HasRoundedCorners()); + EXPECT_TRUE(draw_properties2.mask_filter_info.HasGradientMask()); + EXPECT_EQ(gfx::RectF(50, 50), draw_properties2.mask_filter_info.bounds()); + EXPECT_EQ(gradient_mask2, + draw_properties2.mask_filter_info.gradient_mask()); + } + + gfx::Transform scale_and_translate_transform1; + scale_and_translate_transform1.Translate({10.f, 10.f}); + scale_and_translate_transform1.Scale(3.f, 2.f); + child1->SetTransform(scale_and_translate_transform1); + gfx::Transform scale_and_translate_transform2; + scale_and_translate_transform2.Translate({10.f, 5.f}); + scale_and_translate_transform2.Scale(2.f, 1.5f); + grand_child1->SetTransform(scale_and_translate_transform2); + + CommitAndActivate(); + EXPECT_TRUE(GetEffectNode(child1.get())->HasRenderSurface()); + { + // |mask_info| coordinates are in the target space of the render surface's + // layer. + auto* render_surface_impl1 = GetRenderSurfaceImpl(child1); + EXPECT_EQ(gradient_mask1.steps(), + render_surface_impl1->mask_filter_info().gradient_mask().steps()); + // |angle| is updated by the scale transform. + EXPECT_EQ(21, + render_surface_impl1->mask_filter_info().gradient_mask().angle()); + + // |mask_info| is in the coordinate space of the transform node associated + // with this effect node. + auto* effect_node2 = GetEffectNode(grand_child1.get()); + EXPECT_FALSE(effect_node2->HasRenderSurface()); + + // |mask_info| coordinates are in the target space of the layer. + auto& draw_properties2 = GetLayerImpl(grand_child1)->draw_properties(); + EXPECT_FALSE(draw_properties2.mask_filter_info.IsEmpty()); + EXPECT_FALSE(draw_properties2.mask_filter_info.HasRoundedCorners()); + EXPECT_TRUE(draw_properties2.mask_filter_info.HasGradientMask()); + EXPECT_EQ(gfx::RectF(30, 10, 300, 150), + draw_properties2.mask_filter_info.bounds()); + // |angle| is updated by the scale transform. + EXPECT_EQ(26, draw_properties2.mask_filter_info.gradient_mask().angle()); + EXPECT_EQ(gradient_mask2.steps(), + draw_properties2.mask_filter_info.gradient_mask().steps()); + } + + gfx::Transform rotate_transform; + rotate_transform.Rotate(45); + child1->SetTransform(rotate_transform); + CommitAndActivate(); + { + auto* render_surface_impl1 = GetRenderSurfaceImpl(child1); + EXPECT_EQ(gfx::RRectF::Type::kEmpty, + render_surface_impl1->mask_filter_info() + .rounded_corner_bounds() + .GetType()); + EXPECT_FALSE(render_surface_impl1->mask_filter_info().HasGradientMask()); + } +} + TEST_F(PropertyTreeBuilderTest, RoundedCornerBounds) { // Layer Tree: // +root
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni index eb28659..ee6c0a4 100644 --- a/chrome/android/chrome_java_sources.gni +++ b/chrome/android/chrome_java_sources.gni
@@ -47,6 +47,7 @@ "java/src/org/chromium/chrome/browser/SnackbarActivity.java", "java/src/org/chromium/chrome/browser/SwipeRefreshHandler.java", "java/src/org/chromium/chrome/browser/SynchronousInitializationActivity.java", + "java/src/org/chromium/chrome/browser/TabUsageTracker.java", "java/src/org/chromium/chrome/browser/TabbedModeTabDelegateFactory.java", "java/src/org/chromium/chrome/browser/WarmupManager.java", "java/src/org/chromium/chrome/browser/WebContentsFactory.java",
diff --git a/chrome/android/chrome_junit_test_java_sources.gni b/chrome/android/chrome_junit_test_java_sources.gni index 3912d8e..ceefa92 100644 --- a/chrome/android/chrome_junit_test_java_sources.gni +++ b/chrome/android/chrome_junit_test_java_sources.gni
@@ -66,6 +66,7 @@ "junit/src/org/chromium/chrome/browser/compositor/layouts/SceneOverlayTest.java", "junit/src/org/chromium/chrome/browser/compositor/layouts/StaticLayoutUnitTest.java", "junit/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperTest.java", + "junit/src/org/chromium/chrome/browser/compositor/overlays/strip/TabUsageTrackerTest.java", "junit/src/org/chromium/chrome/browser/content_capture/ContentCaptureHistoryDeletionObserverTest.java", "junit/src/org/chromium/chrome/browser/contextmenu/ContextMenuCoordinatorTest.java", "junit/src/org/chromium/chrome/browser/contextmenu/ContextMenuHeaderMediatorTest.java",
diff --git a/chrome/android/features/keyboard_accessory/internal/java/src/org/chromium/chrome/browser/keyboard_accessory/ManualFillingMediator.java b/chrome/android/features/keyboard_accessory/internal/java/src/org/chromium/chrome/browser/keyboard_accessory/ManualFillingMediator.java index 5251860..5bb1826 100644 --- a/chrome/android/features/keyboard_accessory/internal/java/src/org/chromium/chrome/browser/keyboard_accessory/ManualFillingMediator.java +++ b/chrome/android/features/keyboard_accessory/internal/java/src/org/chromium/chrome/browser/keyboard_accessory/ManualFillingMediator.java
@@ -4,6 +4,7 @@ package org.chromium.chrome.browser.keyboard_accessory; +import static org.chromium.chrome.browser.flags.ChromeFeatureList.AUTOFILL_ENABLE_MANUAL_FALLBACK_FOR_VIRTUAL_CARDS; import static org.chromium.chrome.browser.flags.ChromeFeatureList.AUTOFILL_KEYBOARD_ACCESSORY; import static org.chromium.chrome.browser.flags.ChromeFeatureList.AUTOFILL_MANUAL_FALLBACK_ANDROID; import static org.chromium.chrome.browser.keyboard_accessory.ManualFillingProperties.KEYBOARD_EXTENSION_STATE; @@ -661,7 +662,10 @@ private boolean canCreateSheet(@AccessoryTabType int tabType) { if (!isInitialized()) return false; switch (tabType) { - case AccessoryTabType.CREDIT_CARDS: // Intentional fallthrough. + case AccessoryTabType.CREDIT_CARDS: + return ChromeFeatureList.isEnabled(AUTOFILL_MANUAL_FALLBACK_ANDROID) + || ChromeFeatureList.isEnabled( + AUTOFILL_ENABLE_MANUAL_FALLBACK_FOR_VIRTUAL_CARDS); case AccessoryTabType.ADDRESSES: return ChromeFeatureList.isEnabled(AUTOFILL_MANUAL_FALLBACK_ANDROID); case AccessoryTabType.PASSWORDS:
diff --git a/chrome/android/features/keyboard_accessory/javatests/src/org/chromium/chrome/browser/keyboard_accessory/sheet_tabs/CreditCardAccessoryIntegrationTest.java b/chrome/android/features/keyboard_accessory/javatests/src/org/chromium/chrome/browser/keyboard_accessory/sheet_tabs/CreditCardAccessoryIntegrationTest.java index 05728fe5..0813c03 100644 --- a/chrome/android/features/keyboard_accessory/javatests/src/org/chromium/chrome/browser/keyboard_accessory/sheet_tabs/CreditCardAccessoryIntegrationTest.java +++ b/chrome/android/features/keyboard_accessory/javatests/src/org/chromium/chrome/browser/keyboard_accessory/sheet_tabs/CreditCardAccessoryIntegrationTest.java
@@ -90,7 +90,7 @@ @Test @SmallTest @EnableFeatures({ChromeFeatureList.AUTOFILL_MANUAL_FALLBACK_ANDROID}) - public void testCreditCardSheetAvailable() { + public void testCreditCardSheetAvailable_whenManualFallbackEnabled() { mHelper.loadTestPage(false); CriteriaHelper.pollUiThread(() -> { @@ -100,8 +100,24 @@ @Test @SmallTest - @DisableFeatures({ChromeFeatureList.AUTOFILL_MANUAL_FALLBACK_ANDROID}) - public void testCreditCardSheetUnavailableWithoutFeature() { + @EnableFeatures({ChromeFeatureList.AUTOFILL_ENABLE_MANUAL_FALLBACK_FOR_VIRTUAL_CARDS}) + @DisableFeatures({ChromeFeatureList.AUTOFILL_KEYBOARD_ACCESSORY, + ChromeFeatureList.AUTOFILL_MANUAL_FALLBACK_ANDROID}) + public void + testCreditCardSheetAvailable_whenManualFallbackForVirtualCardsEnabled() { + mHelper.loadTestPage(false); + + CriteriaHelper.pollUiThread(() -> { + return mHelper.getOrCreateCreditCardAccessorySheet() != null; + }, "Credit Card sheet should be bound to accessory sheet."); + } + + @Test + @SmallTest + @DisableFeatures({ChromeFeatureList.AUTOFILL_MANUAL_FALLBACK_ANDROID, + ChromeFeatureList.AUTOFILL_ENABLE_MANUAL_FALLBACK_FOR_VIRTUAL_CARDS}) + public void + testCreditCardSheetUnavailableWithoutFeature() { mHelper.loadTestPage(false); Assert.assertNull("Credit Card sheet should not have been created.",
diff --git a/chrome/android/java/res_chromium/drawable-hdpi/product_logo_name.png b/chrome/android/java/res_chromium/drawable-hdpi/product_logo_name.png index 6bc0d292..401b161 100644 --- a/chrome/android/java/res_chromium/drawable-hdpi/product_logo_name.png +++ b/chrome/android/java/res_chromium/drawable-hdpi/product_logo_name.png Binary files differ
diff --git a/chrome/android/java/res_chromium/drawable-mdpi/product_logo_name.png b/chrome/android/java/res_chromium/drawable-mdpi/product_logo_name.png index d6ace5d9..763f553 100644 --- a/chrome/android/java/res_chromium/drawable-mdpi/product_logo_name.png +++ b/chrome/android/java/res_chromium/drawable-mdpi/product_logo_name.png Binary files differ
diff --git a/chrome/android/java/res_chromium/drawable-xhdpi/product_logo_name.png b/chrome/android/java/res_chromium/drawable-xhdpi/product_logo_name.png index d8187c0..d907fc7 100644 --- a/chrome/android/java/res_chromium/drawable-xhdpi/product_logo_name.png +++ b/chrome/android/java/res_chromium/drawable-xhdpi/product_logo_name.png Binary files differ
diff --git a/chrome/android/java/res_chromium/drawable-xxhdpi/product_logo_name.png b/chrome/android/java/res_chromium/drawable-xxhdpi/product_logo_name.png index 0a887a30..e0e3848 100644 --- a/chrome/android/java/res_chromium/drawable-xxhdpi/product_logo_name.png +++ b/chrome/android/java/res_chromium/drawable-xxhdpi/product_logo_name.png Binary files differ
diff --git a/chrome/android/java/res_chromium/drawable-xxxhdpi/product_logo_name.png b/chrome/android/java/res_chromium/drawable-xxxhdpi/product_logo_name.png index 0118d3f..b925c85 100644 --- a/chrome/android/java/res_chromium/drawable-xxxhdpi/product_logo_name.png +++ b/chrome/android/java/res_chromium/drawable-xxxhdpi/product_logo_name.png Binary files differ
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java index f7d11479..af2d978 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
@@ -1751,6 +1751,7 @@ mInactivityTracker = new ChromeInactivityTracker( ChromePreferenceKeys.TABBED_ACTIVITY_LAST_BACKGROUNDED_TIME_MS_PREF); + TabUsageTracker.initialize(this.getLifecycleDispatcher(), tabModelSelector); assert getActivityTabStartupMetricsTracker() != null; boolean shouldShowOverviewPageOnStart = shouldShowOverviewPageOnStart();
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/TabUsageTracker.java b/chrome/android/java/src/org/chromium/chrome/browser/TabUsageTracker.java new file mode 100644 index 0000000..1774d70 --- /dev/null +++ b/chrome/android/java/src/org/chromium/chrome/browser/TabUsageTracker.java
@@ -0,0 +1,127 @@ +// Copyright 2022 The Chromium Authors. All rights reserved. +// 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; + +import androidx.annotation.VisibleForTesting; + +import org.chromium.base.metrics.RecordHistogram; +import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher; +import org.chromium.chrome.browser.lifecycle.DestroyObserver; +import org.chromium.chrome.browser.lifecycle.PauseResumeWithNativeObserver; +import org.chromium.chrome.browser.lifecycle.StartStopWithNativeObserver; +import org.chromium.chrome.browser.tab.Tab; +import org.chromium.chrome.browser.tabmodel.TabModelSelector; +import org.chromium.chrome.browser.tabmodel.TabModelSelectorTabModelObserver; + +import java.util.HashSet; +import java.util.Set; + +/** + * Captures the percentage of tabs used, for metrics. This is done by finding the ratio of the + * number of tabs used, to the total number of tabs available between ChromeTabbedActivity onResume + * and onStop. + */ +public class TabUsageTracker + implements StartStopWithNativeObserver, DestroyObserver, PauseResumeWithNativeObserver { + private static final String PERCENTAGE_OF_TABS_USED_HISTOGRAM = + "Android.ActivityStop.PercentageOfTabsUsed"; + private static final String NUMBER_OF_TABS_USED_HISTOGRAM = + "Android.ActivityStop.NumberOfTabsUsed"; + + private final Set<Integer> mTabsUsed = new HashSet<>(); + + private int mInitialTabCount; + private int mNewlyAddedTabCount; + private final ActivityLifecycleDispatcher mLifecycleDispatcher; + private final TabModelSelector mModelSelector; + private TabModelSelectorTabModelObserver mTabModelSelectorTabModelObserver; + private boolean mApplicationResumed; + + /** + * This method is used to initialize the TabUsageTracker. + * @param lifecycleDispatcher LifecycleDispatcher used to subscribe class to lifecycle events. + * @param modelSelector TabModelSelector used to subscribe to TabModelSelectorTabModelObserver + * to capture when tabs are selected or new tabs are added. + */ + public static void initialize( + ActivityLifecycleDispatcher lifecycleDispatcher, TabModelSelector modelSelector) { + new TabUsageTracker(lifecycleDispatcher, modelSelector); + } + + public TabUsageTracker( + ActivityLifecycleDispatcher lifecycleDispatcher, TabModelSelector modelSelector) { + mInitialTabCount = 0; + mNewlyAddedTabCount = 0; + mModelSelector = modelSelector; + mApplicationResumed = false; + + mLifecycleDispatcher = lifecycleDispatcher; + mLifecycleDispatcher.register(this); + } + + @Override + public void onDestroy() { + mLifecycleDispatcher.unregister(this); + } + + @Override + public void onStartWithNative() {} + + /** + * Records 2 histograms. + * 1. Percentage of tabs used. + * 2. Number of tabs used. + */ + @Override + public void onStopWithNative() { + // If onResume was never called, return early to omit invalid samples. + if (!mApplicationResumed) return; + + int totalTabCount = mInitialTabCount + mNewlyAddedTabCount; + float totalTabsUsedPercentage = (float) mTabsUsed.size() / (float) totalTabCount * 100; + + RecordHistogram.recordPercentageHistogram( + PERCENTAGE_OF_TABS_USED_HISTOGRAM, Math.round(totalTabsUsedPercentage)); + RecordHistogram.recordCount100Histogram(NUMBER_OF_TABS_USED_HISTOGRAM, mTabsUsed.size()); + + mTabsUsed.clear(); + mNewlyAddedTabCount = 0; + mTabModelSelectorTabModelObserver.destroy(); + mApplicationResumed = false; + } + + /** + * Initializes the tab count and the selected tab when CTA is resumed and starts observing for + * tab selections or any new tab creations. + */ + @Override + public void onResumeWithNative() { + mInitialTabCount = mModelSelector.getTotalTabCount(); + Tab currentlySelectedTab = + mModelSelector.getCurrentModel().getTabAt(mModelSelector.getCurrentModelIndex()); + if (currentlySelectedTab != null) mTabsUsed.add(currentlySelectedTab.getId()); + + mTabModelSelectorTabModelObserver = new TabModelSelectorTabModelObserver(mModelSelector) { + @Override + public void didAddTab(Tab tab, int type, int creationState) { + mNewlyAddedTabCount++; + } + + @Override + public void didSelectTab(Tab tab, int type, int lastId) { + mTabsUsed.add(tab.getId()); + } + }; + mApplicationResumed = true; + } + + @Override + public void onPauseWithNative() {} + + @VisibleForTesting + public TabModelSelectorTabModelObserver getTabModelSelectorTabModelObserverForTests() { + return mTabModelSelectorTabModelObserver; + } +}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkEditActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkEditActivity.java index 7c13190a1..edf7b6c4 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkEditActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkEditActivity.java
@@ -4,6 +4,7 @@ package org.chromium.chrome.browser.bookmarks; +import android.content.Intent; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; @@ -29,6 +30,8 @@ public class BookmarkEditActivity extends SynchronousInitializationActivity { /** The intent extra specifying the ID of the bookmark to be edited. */ public static final String INTENT_BOOKMARK_ID = "BookmarkEditActivity.BookmarkId"; + /** The code when starting the folder move activity for a result. */ + static final int MOVE_REQUEST_CODE = 15; private static final String TAG = "BookmarkEdit"; @@ -37,6 +40,7 @@ private BookmarkTextInputLayout mTitleEditText; private BookmarkTextInputLayout mUrlEditText; private TextView mFolderTextView; + private boolean mInFolderSelect; private MenuItem mDeleteButton; @@ -45,7 +49,7 @@ public void bookmarkModelChanged() { if (mModel.doesBookmarkExist(mBookmarkId)) { updateViewContent(true); - } else { + } else if (!mInFolderSelect) { // This happens either when the user clicks delete button or partner bookmark is // removed in background. finish(); @@ -75,8 +79,10 @@ mFolderTextView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - BookmarkFolderSelectActivity.startFolderSelectActivity( - BookmarkEditActivity.this, mBookmarkId); + mInFolderSelect = true; + Intent intent = BookmarkFolderSelectActivity.createIntent( + BookmarkEditActivity.this, /*createFolder=*/false, mBookmarkId); + startActivityForResult(intent, MOVE_REQUEST_CODE); } }); @@ -93,6 +99,16 @@ }); } + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if (requestCode == MOVE_REQUEST_CODE && resultCode == RESULT_OK) { + mInFolderSelect = false; + mBookmarkId = BookmarkFolderSelectActivity.parseMoveIntentResult(data); + updateViewContent(true); + } + } + /** * @param modelChanged Whether this view update is due to a model change in background. */
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkFolderSelectActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkFolderSelectActivity.java index 6672feb7..679945e 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkFolderSelectActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkFolderSelectActivity.java
@@ -4,6 +4,7 @@ package org.chromium.chrome.browser.bookmarks; +import android.app.Activity; import android.content.Context; import android.content.Intent; import android.graphics.drawable.Drawable; @@ -54,6 +55,8 @@ INTENT_IS_CREATING_FOLDER = "BookmarkFolderSelectActivity.isCreatingFolder"; static final String INTENT_BOOKMARKS_TO_MOVE = "BookmarkFolderSelectActivity.bookmarksToMove"; + static final String INTENT_BOOKMARK_MOVE_RESULT = + "BookmarkFolderSelectActivity.bookmarkMoveResult"; static final int CREATE_FOLDER_REQUEST_CODE = 13; private BookmarkModel mModel; @@ -75,7 +78,7 @@ if (mBookmarksToMove.contains(node.getId())) { mBookmarksToMove.remove(node.getId()); if (mBookmarksToMove.isEmpty()) { - finish(); + finishActivity(mBookmarksToMove); return; } } else if (node.isFolder()) { @@ -89,14 +92,32 @@ */ public static void startFolderSelectActivity(Context context, BookmarkId... bookmarks) { assert bookmarks.length > 0; + Intent intent = BookmarkFolderSelectActivity.createIntent( + context, /*createFolder=*/false, bookmarks); + context.startActivity(intent); + } + + /** + * @return An intent created from the given parameters. + */ + public static Intent createIntent( + Context context, boolean createFolder, BookmarkId... bookmarks) { Intent intent = new Intent(context, BookmarkFolderSelectActivity.class); - intent.putExtra(INTENT_IS_CREATING_FOLDER, false); + intent.putExtra(INTENT_IS_CREATING_FOLDER, createFolder); ArrayList<String> bookmarkStrings = new ArrayList<>(bookmarks.length); for (BookmarkId id : bookmarks) { bookmarkStrings.add(id.toString()); } intent.putStringArrayListExtra(INTENT_BOOKMARKS_TO_MOVE, bookmarkStrings); - context.startActivity(intent); + return intent; + } + + /** + * @return The {@link BookmarkId} encoded in the given intent. + */ + public static BookmarkId parseMoveIntentResult(Intent data) { + String bookmarkString = IntentUtils.safeGetStringExtra(data, INTENT_BOOKMARK_MOVE_RESULT); + return BookmarkId.getBookmarkIdFromString(bookmarkString); } /** @@ -105,14 +126,8 @@ */ public static void startNewFolderSelectActivity( BookmarkAddEditFolderActivity activity, List<BookmarkId> bookmarks) { - assert bookmarks.size() > 0; - Intent intent = new Intent(activity, BookmarkFolderSelectActivity.class); - intent.putExtra(INTENT_IS_CREATING_FOLDER, true); - ArrayList<String> bookmarkStrings = new ArrayList<>(bookmarks.size()); - for (BookmarkId id : bookmarks) { - bookmarkStrings.add(id.toString()); - } - intent.putStringArrayListExtra(INTENT_BOOKMARKS_TO_MOVE, bookmarkStrings); + Intent intent = BookmarkFolderSelectActivity.createIntent( + activity, /*createFolder=*/true, (BookmarkId[]) bookmarks.toArray()); activity.startActivityForResult(intent, BookmarkAddEditFolderActivity.PARENT_FOLDER_REQUEST_CODE); } @@ -123,6 +138,7 @@ mModel = new BookmarkModel(); List<String> stringList = IntentUtils.safeGetStringArrayListExtra(getIntent(), INTENT_BOOKMARKS_TO_MOVE); + mBookmarksToMove = new ArrayList<>(stringList.size()); // If the intent does not contain a list of bookmarks to move, return early. See // crbug.com/728244. If the bookmark model is not loaded, return early to avoid crashing @@ -137,7 +153,6 @@ mModel.addObserver(mBookmarkModelObserver); - mBookmarksToMove = new ArrayList<>(stringList.size()); for (String string : stringList) { BookmarkId bookmarkId = BookmarkId.getBookmarkIdFromString(string); if (mModel.doesBookmarkExist(bookmarkId)) { @@ -257,10 +272,7 @@ } else if (entry.mType == FolderListEntry.TYPE_NEW_FOLDER) { BookmarkAddEditFolderActivity.startAddFolderActivity(this, mBookmarksToMove); } else if (entry.mType == FolderListEntry.TYPE_NORMAL) { - ReadingListUtils.typeSwapBookmarksIfNecessary(mModel, mBookmarksToMove, entry.mId); - mModel.moveBookmarks(mBookmarksToMove, entry.mId); - BookmarkUtils.setLastUsedParent(this, entry.mId); - finish(); + moveBookmarksAndFinish(mBookmarksToMove, entry.mId); } } @@ -269,14 +281,33 @@ super.onActivityResult(requestCode, resultCode, data); assert !mIsCreatingFolder; if (requestCode == CREATE_FOLDER_REQUEST_CODE && resultCode == RESULT_OK) { - BookmarkId createdBookmark = BookmarkId.getBookmarkIdFromString(data.getStringExtra( - BookmarkAddEditFolderActivity.INTENT_CREATED_BOOKMARK)); - mModel.moveBookmarks(mBookmarksToMove, createdBookmark); - BookmarkUtils.setLastUsedParent(this, createdBookmark); - finish(); + BookmarkId createdBookmark = BookmarkId.getBookmarkIdFromString( + data.getStringExtra(BookmarkAddEditFolderActivity.INTENT_CREATED_BOOKMARK)); + moveBookmarksAndFinish(mBookmarksToMove, createdBookmark); } } + private void moveBookmarksAndFinish(List<BookmarkId> bookmarks, BookmarkId parent) { + List<BookmarkId> movedBookmarks = new ArrayList<>(); + ReadingListUtils.typeSwapBookmarksIfNecessary( + mModel, mBookmarksToMove, movedBookmarks, parent); + mModel.moveBookmarks(mBookmarksToMove, parent); + movedBookmarks.addAll(mBookmarksToMove); + BookmarkUtils.setLastUsedParent(this, parent); + finishActivity(movedBookmarks); + } + + private void finishActivity(List<BookmarkId> bookmarks) { + // This means BookmarkFolderSelectActivity was called for a result. + if (getCallingActivity() != null) { + assert bookmarks.size() == 1; + Intent result = new Intent(); + result.putExtra(INTENT_BOOKMARK_MOVE_RESULT, bookmarks.get(0).toString()); + setResult(Activity.RESULT_OK, result); + } + finish(); + } + /** * Data object representing a folder entry used in FolderListAdapter. */
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/media/PictureInPictureController.java b/chrome/android/java/src/org/chromium/chrome/browser/media/PictureInPictureController.java index 07fc017..65891287 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/media/PictureInPictureController.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/media/PictureInPictureController.java
@@ -431,7 +431,8 @@ mIsAutoEnterAllowed = allowed; try { mActivity.setPictureInPictureParams(builder.build()); - } catch(RuntimeException e) { + } catch (RuntimeException e) { + Log.e(TAG, "Error setting PiP params", e); } }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/read_later/ReadingListUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/read_later/ReadingListUtils.java index ee9be5c..23d885a4 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/read_later/ReadingListUtils.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/read_later/ReadingListUtils.java
@@ -92,8 +92,8 @@ // remove the regular bookmark first so the save flow is shown. List<BookmarkId> bookmarkIds = new ArrayList<>(); bookmarkIds.add(bookmarkId); - ReadingListUtils.typeSwapBookmarksIfNecessary( - bookmarkBridge, bookmarkIds, bookmarkBridge.getReadingListFolder()); + ReadingListUtils.typeSwapBookmarksIfNecessary(bookmarkBridge, bookmarkIds, + new ArrayList<>(), bookmarkBridge.getReadingListFolder()); if (sSkipShowSaveFlowForTesting) return true; BookmarkUtils.showSaveFlow(activity, bottomsheetController, /*fromExplicitTrackUi=*/false, bookmarkIds.get(0), /*wasBookmarkMoved=*/true); @@ -106,11 +106,14 @@ * * @param bookmarkBridge The BookmarkBridge to perform add/delete operations. * @param bookmarksToMove The List of bookmarks to potentially type swap. + * @param typeSwappedBookmarks The list of bookmarks which have been type-swapped and thus don't + * need to be moved. * @param newParentId The new parentId to use, the {@link BookmarkType} of this is used to * determine if type-swapping is necessary. */ public static void typeSwapBookmarksIfNecessary(BookmarkBridge bookmarkBridge, - List<BookmarkId> bookmarksToMove, BookmarkId newParentId) { + List<BookmarkId> bookmarksToMove, List<BookmarkId> typeSwappedBookmarks, + BookmarkId newParentId) { if (!ReadingListFeatures.shouldAllowBookmarkTypeSwapping()) return; List<BookmarkId> outputList = new ArrayList<>(); @@ -137,6 +140,7 @@ continue; } bookmarkBridge.deleteBookmark(bookmarkId); + typeSwappedBookmarks.add(newBookmark); } bookmarksToMove.addAll(outputList);
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/compositor/overlays/strip/TabUsageTrackerTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/compositor/overlays/strip/TabUsageTrackerTest.java new file mode 100644 index 0000000..cab7657 --- /dev/null +++ b/chrome/android/junit/src/org/chromium/chrome/browser/compositor/overlays/strip/TabUsageTrackerTest.java
@@ -0,0 +1,143 @@ +// Copyright 2022 The Chromium Authors. All rights reserved. +// 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.compositor.overlays.strip; + +import androidx.test.filters.SmallTest; + +import org.junit.After; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.MockitoAnnotations; +import org.robolectric.annotation.Config; + +import org.chromium.base.metrics.test.ShadowRecordHistogram; +import org.chromium.base.test.BaseRobolectricTestRunner; +import org.chromium.chrome.browser.TabUsageTracker; +import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher; +import org.chromium.chrome.browser.tab.Tab; +import org.chromium.chrome.browser.tab.TabCreationState; +import org.chromium.chrome.browser.tab.TabLaunchType; +import org.chromium.chrome.browser.tabmodel.TabModel; +import org.chromium.chrome.browser.tabmodel.TabModelSelector; +import org.chromium.chrome.browser.tabmodel.TabModelSelectorTabModelObserver; + +import java.util.concurrent.TimeoutException; + +/** + * Test suite to verify that the TabUsageTracker correctly records the number of tabs used and the + * percentage of tabs used. + */ +@RunWith(BaseRobolectricTestRunner.class) +@Config(manifest = Config.NONE, shadows = {ShadowRecordHistogram.class}) +public class TabUsageTrackerTest { + @Mock + TabModelSelector mTabModelSelector; + @Mock + ActivityLifecycleDispatcher mDispatcher; + @Mock + TabModel mTabModel; + + private static final int INITIAL_TAB_COUNT = 0; + private static final String NUMBER_OF_TABS_USED = "Android.ActivityStop.NumberOfTabsUsed"; + private static final String PERCENTAGE_OF_TABS_USED = + "Android.ActivityStop.PercentageOfTabsUsed"; + + private TabUsageTracker mTabUsageTracker; + + @Before + public void setUp() throws TimeoutException { + MockitoAnnotations.initMocks(this); + Mockito.when(mTabModel.getCount()).thenReturn(INITIAL_TAB_COUNT); + Mockito.when(mTabModelSelector.getCurrentModel()).thenReturn(mTabModel); + + mTabUsageTracker = new TabUsageTracker(mDispatcher, mTabModelSelector); + } + + @After + public void tearDown() { + ShadowRecordHistogram.reset(); + } + + @Test + @SmallTest + public void testOnStop_RecordsHistogram_NoInitialTabs() { + // Arrange + mTabUsageTracker.onResumeWithNative(); + Tab tab1 = getMockedTab(1); + Tab tab2 = getMockedTab(2); + + // Act: Create 2 tabs, select 1 tab and call onStop. + TabModelSelectorTabModelObserver observer = + mTabUsageTracker.getTabModelSelectorTabModelObserverForTests(); + observer.didAddTab(tab1, TabLaunchType.FROM_CHROME_UI, TabCreationState.LIVE_IN_FOREGROUND); + observer.didAddTab(tab2, TabLaunchType.FROM_CHROME_UI, TabCreationState.LIVE_IN_FOREGROUND); + observer.didSelectTab(tab1, TabLaunchType.FROM_CHROME_UI, 0); + + mTabUsageTracker.onStopWithNative(); + + // Assert + Assert.assertEquals( + 1, ShadowRecordHistogram.getHistogramValueCountForTesting(NUMBER_OF_TABS_USED, 1)); + Assert.assertEquals(1, + ShadowRecordHistogram.getHistogramValueCountForTesting( + PERCENTAGE_OF_TABS_USED, 50)); + } + + @Test + @SmallTest + public void testOnStop_RecordsHistogram_HasInitialTabs() { + // Arrange + Tab tab1 = getMockedTab(1); + Tab selectedTab = getMockedTab(3); + // Start with 5 existing tabs and 1 selected tab. + Mockito.when(mTabModelSelector.getTotalTabCount()).thenReturn(5); + Mockito.when(mTabModel.getTabAt(Mockito.anyInt())).thenReturn(selectedTab); + mTabUsageTracker.onResumeWithNative(); + + // Act: Create 1 tab, select 1 tab and call onStop. + TabModelSelectorTabModelObserver observer = + mTabUsageTracker.getTabModelSelectorTabModelObserverForTests(); + observer.didAddTab(tab1, TabLaunchType.FROM_CHROME_UI, TabCreationState.LIVE_IN_FOREGROUND); + observer.didSelectTab(tab1, TabLaunchType.FROM_CHROME_UI, 3); + + mTabUsageTracker.onStopWithNative(); + + // Assert that number of tabs used is 2 and percentage is 2/6 * 100 = 33 + Assert.assertEquals( + 1, ShadowRecordHistogram.getHistogramValueCountForTesting(NUMBER_OF_TABS_USED, 2)); + Assert.assertEquals(1, + ShadowRecordHistogram.getHistogramValueCountForTesting( + PERCENTAGE_OF_TABS_USED, 33)); + } + + @Test + @SmallTest + public void testOnStop_CalledBeforeOnResume_DoesNotRecordHistogram() { + mTabUsageTracker.onStopWithNative(); + + Assert.assertEquals( + 0, ShadowRecordHistogram.getHistogramTotalCountForTesting(NUMBER_OF_TABS_USED)); + Assert.assertEquals( + 0, ShadowRecordHistogram.getHistogramTotalCountForTesting(PERCENTAGE_OF_TABS_USED)); + } + + @Test + @SmallTest + public void testOnDestroy() { + mTabUsageTracker.onDestroy(); + + Mockito.verify(mDispatcher).unregister(mTabUsageTracker); + } + + private Tab getMockedTab(int id) { + Tab tab = Mockito.mock(Tab.class); + Mockito.when(tab.getId()).thenReturn(id); + return tab; + } +}
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/read_later/ReadingListUtilsUnitTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/read_later/ReadingListUtilsUnitTest.java index 58cb5bc..7edef7e 100644 --- a/chrome/android/junit/src/org/chromium/chrome/browser/read_later/ReadingListUtilsUnitTest.java +++ b/chrome/android/junit/src/org/chromium/chrome/browser/read_later/ReadingListUtilsUnitTest.java
@@ -199,11 +199,14 @@ ArrayList<BookmarkId> bookmarks = new ArrayList<>(); bookmarks.add(existingBookmarkId); - ReadingListUtils.typeSwapBookmarksIfNecessary(bookmarkBridge, bookmarks, parentId); + ArrayList<BookmarkId> typeSwappedBookmarks = new ArrayList<>(); + ReadingListUtils.typeSwapBookmarksIfNecessary( + bookmarkBridge, bookmarks, typeSwappedBookmarks, parentId); verify(bookmarkBridge) .addToReadingList("Test", JUnitTestGURLs.getGURL(JUnitTestGURLs.NTP_URL)); verify(bookmarkBridge).deleteBookmark(existingBookmarkId); Assert.assertEquals(0, bookmarks.size()); + Assert.assertEquals(1, typeSwappedBookmarks.size()); } @Test @@ -225,11 +228,14 @@ ArrayList<BookmarkId> bookmarks = new ArrayList<>(); bookmarks.add(existingBookmarkId); - ReadingListUtils.typeSwapBookmarksIfNecessary(bookmarkBridge, bookmarks, parentId); + ArrayList<BookmarkId> typeSwappedBookmarks = new ArrayList<>(); + ReadingListUtils.typeSwapBookmarksIfNecessary( + bookmarkBridge, bookmarks, typeSwappedBookmarks, parentId); verify(bookmarkBridge) .addBookmark(parentId, 0, "Test", JUnitTestGURLs.getGURL(JUnitTestGURLs.NTP_URL)); verify(bookmarkBridge).deleteBookmark(existingBookmarkId); Assert.assertEquals(0, bookmarks.size()); + Assert.assertEquals(1, typeSwappedBookmarks.size()); } @Test @@ -262,8 +268,11 @@ ArrayList<BookmarkId> bookmarks = new ArrayList<>(); bookmarks.add(existingBookmarkId1); bookmarks.add(existingBookmarkId2); - ReadingListUtils.typeSwapBookmarksIfNecessary(bookmarkBridge, bookmarks, parentId); + ArrayList<BookmarkId> typeSwappedBookmarks = new ArrayList<>(); + ReadingListUtils.typeSwapBookmarksIfNecessary( + bookmarkBridge, bookmarks, typeSwappedBookmarks, parentId); Assert.assertEquals(0, bookmarks.size()); + Assert.assertEquals(2, typeSwappedBookmarks.size()); verify(bookmarkBridge) .addBookmark(parentId, 0, "Test1", JUnitTestGURLs.getGURL(JUnitTestGURLs.NTP_URL)); @@ -287,8 +296,11 @@ ArrayList<BookmarkId> bookmarks = new ArrayList<>(); bookmarks.add(existingBookmarkId); - ReadingListUtils.typeSwapBookmarksIfNecessary(bookmarkBridge, bookmarks, parentId); + ArrayList<BookmarkId> typeSwappedBookmarks = new ArrayList<>(); + ReadingListUtils.typeSwapBookmarksIfNecessary( + bookmarkBridge, bookmarks, typeSwappedBookmarks, parentId); Assert.assertEquals(1, bookmarks.size()); + Assert.assertEquals(0, typeSwappedBookmarks.size()); Assert.assertEquals(existingBookmarkId, bookmarks.get(0)); }
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc index d1bb583..5ab56f2 100644 --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc
@@ -5163,6 +5163,11 @@ flag_descriptions::kSidePanelImprovedClobberingDescription, kOsDesktop, FEATURE_VALUE_TYPE(features::kSidePanelImprovedClobbering)}, + {flag_descriptions::kSidePanelJourneysFlagId, + flag_descriptions::kSidePanelJourneysName, + flag_descriptions::kSidePanelJourneysDescription, kOsDesktop, + FEATURE_VALUE_TYPE(features::kSidePanelJourneys)}, + {flag_descriptions::kUnifiedSidePanelFlagId, flag_descriptions::kUnifiedSidePanelName, flag_descriptions::kUnifiedSidePanelDescription, kOsDesktop, @@ -6594,6 +6599,14 @@ flag_descriptions::kAutofillEnableVirtualCardName, flag_descriptions::kAutofillEnableVirtualCardDescription, kOsDesktop, FEATURE_VALUE_TYPE(autofill::features::kAutofillEnableVirtualCard)}, +#if BUILDFLAG(IS_ANDROID) + {"autofill-enable-manual-fallback-for-virtual-cards", + flag_descriptions::kAutofillEnableManualFallbackForVirtualCardsName, + flag_descriptions::kAutofillEnableManualFallbackForVirtualCardsDescription, + kOsAndroid, + FEATURE_VALUE_TYPE( + autofill::features::kAutofillEnableManualFallbackForVirtualCards)}, +#endif // BUILDFLAG(IS_ANDROID) #if BUILDFLAG(IS_CHROMEOS_ASH) {"account-id-migration", flag_descriptions::kAccountIdMigrationName, @@ -6825,6 +6838,14 @@ flag_descriptions::kCanvas2DLayersDescription, kOsAll, SINGLE_VALUE_TYPE(switches::kEnableCanvas2DLayers)}, + {"enable-machine-learning-model-loader-web-platform-api", + flag_descriptions::kEnableMachineLearningModelLoaderWebPlatformApiName, + flag_descriptions:: + kEnableMachineLearningModelLoaderWebPlatformApiDescription, + kOsAll, + FEATURE_VALUE_TYPE( + features::kEnableMachineLearningModelLoaderWebPlatformApi)}, + {"enable-translate-sub-frames", flag_descriptions::kEnableTranslateSubFramesName, flag_descriptions::kEnableTranslateSubFramesDescription, kOsAll,
diff --git a/chrome/browser/ash/DEPS b/chrome/browser/ash/DEPS index c354f3f22..c7d58b4 100644 --- a/chrome/browser/ash/DEPS +++ b/chrome/browser/ash/DEPS
@@ -5,7 +5,7 @@ # TODO(ananta): Remove this when we move files which display UI in # chrome/browser/chromeos to chrome/browser/ui/views/chromeos # crbug.com/728877 - "+chrome/browser/ui/views/chrome_layout_provider.h", + "+chrome/browser/ui/views", "+components/guest_os", "+dbus",
diff --git a/chrome/browser/ash/input_method/ui/suggestion_window_view.cc b/chrome/browser/ash/input_method/ui/suggestion_window_view.cc index 52c8b4f..a8f131b 100644 --- a/chrome/browser/ash/input_method/ui/suggestion_window_view.cc +++ b/chrome/browser/ash/input_method/ui/suggestion_window_view.cc
@@ -136,19 +136,19 @@ void SuggestionWindowView::OnThemeChanged() { BubbleDialogDelegateView::OnThemeChanged(); + const auto* const color_provider = GetColorProvider(); learn_more_button_->SetBorder(views::CreatePaddedBorder( views::CreateSolidSidedBorder( gfx::Insets::TLBR(1, 0, 0, 0), - GetColorProvider()->GetColor(ui::kColorBubbleFooterBorder)), + color_provider->GetColor(ui::kColorBubbleFooterBorder)), views::LayoutProvider::Get()->GetInsetsMetric( views::INSETS_VECTOR_IMAGE_BUTTON))); - // TODO(crbug/1099044): Update and use cros colors. - constexpr SkColor kSecondaryIconColor = gfx::kGoogleGrey500; - learn_more_button_->SetImage( + // TODO(crbug.com/1099044): Update and use cros colors. + learn_more_button_->SetImageModel( views::Button::ButtonState::STATE_NORMAL, - gfx::CreateVectorIcon(vector_icons::kHelpOutlineIcon, - kSecondaryIconColor)); + ui::ImageModel::FromVectorIcon(vector_icons::kHelpOutlineIcon, + ui::kColorIconSecondary)); } SuggestionWindowView::SuggestionWindowView(gfx::NativeView parent,
diff --git a/chrome/browser/ash/notifications/request_pin_view.cc b/chrome/browser/ash/notifications/request_pin_view.cc index 8fa5720..d0baac61 100644 --- a/chrome/browser/ash/notifications/request_pin_view.cc +++ b/chrome/browser/ash/notifications/request_pin_view.cc
@@ -16,6 +16,7 @@ #include "chrome/browser/ash/notifications/passphrase_textfield.h" #include "chrome/browser/ui/browser_dialogs.h" #include "chrome/browser/ui/views/chrome_layout_provider.h" +#include "chrome/browser/ui/views/chrome_typography.h" #include "chrome/grit/generated_resources.h" #include "ui/base/l10n/l10n_util.h" #include "ui/base/metadata/metadata_impl_macros.h" @@ -76,7 +77,7 @@ error_label_->SetText( l10n_util::GetStringUTF16(IDS_REQUEST_PIN_DIALOG_PROCESSING)); error_label_->SetTooltipText(error_label_->GetText()); - error_label_->SetEnabledColor(SK_ColorGRAY); + error_label_->SetTextStyle(views::style::STYLE_SECONDARY); error_label_->SizeToPreferredSize(); // The |textfield_| and OK button become disabled, but the user still can // close the dialog. @@ -208,14 +209,9 @@ } void RequestPinView::SetAcceptInput(bool accept_input) { - if (accept_input) { - textfield_->SetEnabled(true); - textfield_->SetBackgroundColor(SK_ColorWHITE); + textfield_->SetEnabled(accept_input); + if (accept_input) textfield_->RequestFocus(); - } else { - textfield_->SetEnabled(false); - textfield_->SetBackgroundColor(SK_ColorGRAY); - } } void RequestPinView::SetErrorMessage(security_token_pin::ErrorLabel error_label, @@ -234,7 +230,7 @@ error_label_->SetVisible(true); error_label_->SetText(error_message); error_label_->SetTooltipText(error_message); - error_label_->SetEnabledColor(gfx::kGoogleRed600); + error_label_->SetTextStyle(STYLE_RED); error_label_->SizeToPreferredSize(); textfield_->SetInvalid(true); }
diff --git a/chrome/browser/ash/web_applications/personalization_app/personalization_app_ambient_provider_impl.cc b/chrome/browser/ash/web_applications/personalization_app/personalization_app_ambient_provider_impl.cc index ffe243d..8c37be14 100644 --- a/chrome/browser/ash/web_applications/personalization_app/personalization_app_ambient_provider_impl.cc +++ b/chrome/browser/ash/web_applications/personalization_app/personalization_app_ambient_provider_impl.cc
@@ -36,6 +36,9 @@ #include "ui/gfx/image/image_skia.h" #include "url/gurl.h" +namespace ash { +namespace personalization_app { + namespace { // Width and height of the preview image for personal album. @@ -613,3 +616,6 @@ is_updating_backend_ = false; has_pending_updates_for_backend_ = false; } + +} // namespace personalization_app +} // namespace ash
diff --git a/chrome/browser/ash/web_applications/personalization_app/personalization_app_ambient_provider_impl.h b/chrome/browser/ash/web_applications/personalization_app/personalization_app_ambient_provider_impl.h index e73b5a30..f640cf8 100644 --- a/chrome/browser/ash/web_applications/personalization_app/personalization_app_ambient_provider_impl.h +++ b/chrome/browser/ash/web_applications/personalization_app/personalization_app_ambient_provider_impl.h
@@ -26,8 +26,11 @@ class Profile; +namespace ash { +namespace personalization_app { + class PersonalizationAppAmbientProviderImpl - : public ash::PersonalizationAppAmbientProvider { + : public PersonalizationAppAmbientProvider { public: explicit PersonalizationAppAmbientProviderImpl(content::WebUI* web_ui); @@ -165,4 +168,7 @@ recent_highlights_previews_weak_factory_{this}; }; +} // namespace personalization_app +} // namespace ash + #endif // CHROME_BROWSER_ASH_WEB_APPLICATIONS_PERSONALIZATION_APP_PERSONALIZATION_APP_AMBIENT_PROVIDER_IMPL_H_
diff --git a/chrome/browser/ash/web_applications/personalization_app/personalization_app_ambient_provider_impl_unittest.cc b/chrome/browser/ash/web_applications/personalization_app/personalization_app_ambient_provider_impl_unittest.cc index 73f113d..3aa93347 100644 --- a/chrome/browser/ash/web_applications/personalization_app/personalization_app_ambient_provider_impl_unittest.cc +++ b/chrome/browser/ash/web_applications/personalization_app/personalization_app_ambient_provider_impl_unittest.cc
@@ -30,6 +30,9 @@ #include "testing/gtest/include/gtest/gtest.h" #include "ui/base/webui/web_ui_util.h" +namespace ash { +namespace personalization_app { + namespace { constexpr char kFakeTestEmail[] = "fakeemail@example.com"; @@ -803,3 +806,6 @@ // update. EXPECT_TRUE(settings()->show_weather); } + +} // namespace personalization_app +} // namespace ash
diff --git a/chrome/browser/ash/web_applications/personalization_app/personalization_app_info.cc b/chrome/browser/ash/web_applications/personalization_app/personalization_app_info.cc deleted file mode 100644 index 824d46a..0000000 --- a/chrome/browser/ash/web_applications/personalization_app/personalization_app_info.cc +++ /dev/null
@@ -1,65 +0,0 @@ -// Copyright 2021 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "chrome/browser/ash/web_applications/personalization_app/personalization_app_info.h" - -#include <memory> - -#include "ash/constants/ash_features.h" -#include "ash/webui/grit/ash_personalization_app_resources.h" -#include "ash/webui/personalization_app/personalization_app_url_constants.h" -#include "chrome/browser/ash/web_applications/system_web_app_install_utils.h" -#include "chrome/browser/web_applications/web_app_install_info.h" -#include "chromeos/strings/grit/chromeos_strings.h" -#include "third_party/blink/public/mojom/manifest/display_mode.mojom.h" -#include "ui/base/l10n/l10n_util.h" -#include "ui/gfx/geometry/size.h" - -std::unique_ptr<WebAppInstallInfo> CreateWebAppInfoForPersonalizationApp() { - std::unique_ptr<WebAppInstallInfo> info = - std::make_unique<WebAppInstallInfo>(); - info->start_url = GURL(ash::kChromeUIPersonalizationAppURL); - info->scope = GURL(ash::kChromeUIPersonalizationAppURL); - info->title = - (chromeos::features::IsPersonalizationHubEnabled()) - ? l10n_util::GetStringUTF16( - IDS_PERSONALIZATION_APP_PERSONALIZATION_HUB_TITLE) - : l10n_util::GetStringUTF16(IDS_PERSONALIZATION_APP_WALLPAPER_LABEL); - web_app::CreateIconInfoForSystemWebApp( - info->start_url, - {{"app_icon_192.png", 192, IDR_ASH_PERSONALIZATION_APP_ICON_192_PNG}}, - *info); - info->display_mode = blink::mojom::DisplayMode::kStandalone; - info->user_display_mode = blink::mojom::DisplayMode::kStandalone; - - return info; -} - -PersonalizationSystemAppDelegate::PersonalizationSystemAppDelegate( - Profile* profile) - : web_app::SystemWebAppDelegate(web_app::SystemAppType::PERSONALIZATION, - "Personalization", - GURL(ash::kChromeUIPersonalizationAppURL), - profile) {} - -std::unique_ptr<WebAppInstallInfo> -PersonalizationSystemAppDelegate::GetWebAppInfo() const { - return CreateWebAppInfoForPersonalizationApp(); -} - -gfx::Size PersonalizationSystemAppDelegate::GetMinimumWindowSize() const { - return {600, 420}; -} - -bool PersonalizationSystemAppDelegate::ShouldCaptureNavigations() const { - return true; -} - -bool PersonalizationSystemAppDelegate::IsAppEnabled() const { - return chromeos::features::IsWallpaperWebUIEnabled(); -} - -bool PersonalizationSystemAppDelegate::ShouldShowInLauncher() const { - return false; -}
diff --git a/chrome/browser/ash/web_applications/personalization_app/personalization_app_info.h b/chrome/browser/ash/web_applications/personalization_app/personalization_app_info.h deleted file mode 100644 index 64e578b9..0000000 --- a/chrome/browser/ash/web_applications/personalization_app/personalization_app_info.h +++ /dev/null
@@ -1,30 +0,0 @@ -// Copyright 2021 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef CHROME_BROWSER_ASH_WEB_APPLICATIONS_PERSONALIZATION_APP_PERSONALIZATION_APP_INFO_H_ -#define CHROME_BROWSER_ASH_WEB_APPLICATIONS_PERSONALIZATION_APP_PERSONALIZATION_APP_INFO_H_ - -#include "ash/webui/personalization_app/personalization_app_url_constants.h" -#include "chrome/browser/web_applications/system_web_apps/system_web_app_delegate.h" -#include "chrome/browser/web_applications/system_web_apps/system_web_app_types.h" -#include "ui/gfx/geometry/size.h" - -struct WebAppInstallInfo; - -class PersonalizationSystemAppDelegate : public web_app::SystemWebAppDelegate { - public: - explicit PersonalizationSystemAppDelegate(Profile* profile); - - // web_app::SystemWebAppDelegate overrides: - std::unique_ptr<WebAppInstallInfo> GetWebAppInfo() const override; - gfx::Size GetMinimumWindowSize() const override; - bool ShouldCaptureNavigations() const override; - bool IsAppEnabled() const override; - bool ShouldShowInLauncher() const override; -}; - -// Return a WebAppInstallInfo used to install the app. -std::unique_ptr<WebAppInstallInfo> CreateWebAppInfoForPersonalizationApp(); - -#endif // CHROME_BROWSER_ASH_WEB_APPLICATIONS_PERSONALIZATION_APP_PERSONALIZATION_APP_INFO_H_
diff --git a/chrome/browser/ash/web_applications/personalization_app/personalization_app_integration_browsertest.cc b/chrome/browser/ash/web_applications/personalization_app/personalization_app_integration_browsertest.cc index febfb7f..898bb93 100644 --- a/chrome/browser/ash/web_applications/personalization_app/personalization_app_integration_browsertest.cc +++ b/chrome/browser/ash/web_applications/personalization_app/personalization_app_integration_browsertest.cc
@@ -42,6 +42,9 @@ #include "ui/snapshot/snapshot_aura.h" #include "ui/views/widget/widget.h" +namespace ash { +namespace personalization_app { + namespace { constexpr SkColor kDebugBackgroundColor = SK_ColorYELLOW; @@ -182,7 +185,7 @@ apps::AppLaunchParams launch_params = LaunchParamsForApp(web_app::SystemAppType::PERSONALIZATION); launch_params.override_url = - GURL(ash::kChromeUIPersonalizationAppWallpaperSubpageURL); + GURL(kChromeUIPersonalizationAppWallpaperSubpageURL); return LaunchApp(std::move(launch_params), browser); } @@ -222,7 +225,7 @@ // Test that the Personalization App installs correctly. IN_PROC_BROWSER_TEST_P(PersonalizationAppIntegrationTest, PersonalizationAppInstalls) { - const GURL url(ash::kChromeUIPersonalizationAppURL); + const GURL url(kChromeUIPersonalizationAppURL); std::string appTitle = (chromeos::features::IsPersonalizationHubEnabled()) ? "Personalization" : "Wallpaper"; @@ -316,3 +319,6 @@ INSTANTIATE_SYSTEM_WEB_APP_MANAGER_TEST_SUITE_GUEST_SESSION_P( PersonalizationAppIntegrationTest); + +} // namespace personalization_app +} // namespace ash
diff --git a/chrome/browser/ash/web_applications/personalization_app/personalization_app_theme_provider_impl.cc b/chrome/browser/ash/web_applications/personalization_app/personalization_app_theme_provider_impl.cc index af2f019..8eed970 100644 --- a/chrome/browser/ash/web_applications/personalization_app/personalization_app_theme_provider_impl.cc +++ b/chrome/browser/ash/web_applications/personalization_app/personalization_app_theme_provider_impl.cc
@@ -7,6 +7,9 @@ #include "ash/style/ash_color_provider.h" #include "chrome/browser/profiles/profile.h" +namespace ash { +namespace personalization_app { + PersonalizationAppThemeProviderImpl::PersonalizationAppThemeProviderImpl( content::WebUI* web_ui) : web_ui_(web_ui), profile_(Profile::FromWebUI(web_ui_)) {} @@ -45,3 +48,6 @@ if (color_provider->IsDarkModeEnabled() != dark_mode_enabled) color_provider->ToggleColorMode(); } + +} // namespace personalization_app +} // namespace ash
diff --git a/chrome/browser/ash/web_applications/personalization_app/personalization_app_theme_provider_impl.h b/chrome/browser/ash/web_applications/personalization_app/personalization_app_theme_provider_impl.h index e6c53bb..9f1a6959 100644 --- a/chrome/browser/ash/web_applications/personalization_app/personalization_app_theme_provider_impl.h +++ b/chrome/browser/ash/web_applications/personalization_app/personalization_app_theme_provider_impl.h
@@ -18,8 +18,11 @@ class WebUI; } // namespace content +namespace ash { +namespace personalization_app { + class PersonalizationAppThemeProviderImpl - : public ash::PersonalizationAppThemeProvider, + : public PersonalizationAppThemeProvider, ash::ColorModeObserver { public: explicit PersonalizationAppThemeProviderImpl(content::WebUI* web_ui); @@ -62,4 +65,7 @@ theme_observer_remote_; }; +} // namespace personalization_app +} // namespace ash + #endif // CHROME_BROWSER_ASH_WEB_APPLICATIONS_PERSONALIZATION_APP_PERSONALIZATION_APP_THEME_PROVIDER_IMPL_H_
diff --git a/chrome/browser/ash/web_applications/personalization_app/personalization_app_theme_provider_impl_unittest.cc b/chrome/browser/ash/web_applications/personalization_app/personalization_app_theme_provider_impl_unittest.cc index 927b277a..a4846e0 100644 --- a/chrome/browser/ash/web_applications/personalization_app/personalization_app_theme_provider_impl_unittest.cc +++ b/chrome/browser/ash/web_applications/personalization_app/personalization_app_theme_provider_impl_unittest.cc
@@ -20,6 +20,9 @@ #include "content/public/test/test_web_ui.h" #include "testing/gtest/include/gtest/gtest.h" +namespace ash { +namespace personalization_app { + namespace { constexpr char kFakeTestEmail[] = "fakeemail@personalization"; @@ -147,3 +150,6 @@ ash::AshColorProvider::Get()->ToggleColorMode(); EXPECT_EQ(is_dark_mode_enabled().value(), dark_mode_enabled); } + +} // namespace personalization_app +} // namespace ash
diff --git a/chrome/browser/ash/web_applications/personalization_app/personalization_app_user_provider_impl.cc b/chrome/browser/ash/web_applications/personalization_app/personalization_app_user_provider_impl.cc index e3cd9bb..7820822 100644 --- a/chrome/browser/ash/web_applications/personalization_app/personalization_app_user_provider_impl.cc +++ b/chrome/browser/ash/web_applications/personalization_app/personalization_app_user_provider_impl.cc
@@ -37,6 +37,9 @@ #include "ui/gfx/geometry/size.h" #include "url/gurl.h" +namespace ash { +namespace personalization_app { + namespace { using ash::personalization_app::GetAccountId; @@ -366,3 +369,6 @@ std::unique_ptr<ash::UserImageFileSelector> file_selector) { user_image_file_selector_ = std::move(file_selector); } + +} // namespace personalization_app +} // namespace ash
diff --git a/chrome/browser/ash/web_applications/personalization_app/personalization_app_user_provider_impl.h b/chrome/browser/ash/web_applications/personalization_app/personalization_app_user_provider_impl.h index 41468ed..150b9dd 100644 --- a/chrome/browser/ash/web_applications/personalization_app/personalization_app_user_provider_impl.h +++ b/chrome/browser/ash/web_applications/personalization_app/personalization_app_user_provider_impl.h
@@ -34,8 +34,11 @@ class WebUI; } // namespace content +namespace ash { +namespace personalization_app { + class PersonalizationAppUserProviderImpl - : public ash::PersonalizationAppUserProvider, + : public PersonalizationAppUserProvider, public user_manager::UserManager::Observer, public ash::CameraPresenceNotifier::Observer { public: @@ -146,4 +149,7 @@ image_decode_weak_ptr_factory_{this}; }; +} // namespace personalization_app +} // namespace ash + #endif // CHROME_BROWSER_ASH_WEB_APPLICATIONS_PERSONALIZATION_APP_PERSONALIZATION_APP_USER_PROVIDER_IMPL_H_
diff --git a/chrome/browser/ash/web_applications/personalization_app/personalization_app_user_provider_impl_unittest.cc b/chrome/browser/ash/web_applications/personalization_app/personalization_app_user_provider_impl_unittest.cc index 30fb5431..85126c9f 100644 --- a/chrome/browser/ash/web_applications/personalization_app/personalization_app_user_provider_impl_unittest.cc +++ b/chrome/browser/ash/web_applications/personalization_app/personalization_app_user_provider_impl_unittest.cc
@@ -45,6 +45,9 @@ #include "ui/gfx/image/image_skia.h" #include "url/gurl.h" +namespace ash { +namespace personalization_app { + namespace { using ash::personalization_app::GetAccountId; @@ -520,3 +523,6 @@ ash::UserImageManager::kUserImageChangedHistogramName, ash::default_user_image::kHistogramImageExternal, 2); } + +} // namespace personalization_app +} // namespace ash
diff --git a/chrome/browser/ash/web_applications/personalization_app/personalization_app_wallpaper_provider_impl.cc b/chrome/browser/ash/web_applications/personalization_app/personalization_app_wallpaper_provider_impl.cc index edd19d09..c91ce37a 100644 --- a/chrome/browser/ash/web_applications/personalization_app/personalization_app_wallpaper_provider_impl.cc +++ b/chrome/browser/ash/web_applications/personalization_app/personalization_app_wallpaper_provider_impl.cc
@@ -59,6 +59,9 @@ #include "ui/gfx/image/image_skia_operations.h" #include "url/gurl.h" +namespace ash { +namespace personalization_app { + namespace { using ash::WallpaperController; @@ -788,3 +791,6 @@ DCHECK(wallpaper_observer_remote_.is_bound()); wallpaper_observer_remote_->OnWallpaperChanged(std::move(current_wallpaper)); } + +} // namespace personalization_app +} // namespace ash
diff --git a/chrome/browser/ash/web_applications/personalization_app/personalization_app_wallpaper_provider_impl.h b/chrome/browser/ash/web_applications/personalization_app/personalization_app_wallpaper_provider_impl.h index 9d58d475..324b721 100644 --- a/chrome/browser/ash/web_applications/personalization_app/personalization_app_wallpaper_provider_impl.h +++ b/chrome/browser/ash/web_applications/personalization_app/personalization_app_wallpaper_provider_impl.h
@@ -54,10 +54,13 @@ class Profile; +namespace ash { +namespace personalization_app { + // Implemented in //chrome because this relies on chrome |wallpaper_handlers| // code. class PersonalizationAppWallpaperProviderImpl - : public ash::PersonalizationAppWallpaperProvider, + : public PersonalizationAppWallpaperProvider, ash::WallpaperControllerObserver { public: explicit PersonalizationAppWallpaperProviderImpl(content::WebUI* web_ui); @@ -345,4 +348,7 @@ weak_ptr_factory_{this}; }; +} // namespace personalization_app +} // namespace ash + #endif // CHROME_BROWSER_ASH_WEB_APPLICATIONS_PERSONALIZATION_APP_PERSONALIZATION_APP_WALLPAPER_PROVIDER_IMPL_H_
diff --git a/chrome/browser/ash/web_applications/personalization_app/personalization_app_wallpaper_provider_impl_unittest.cc b/chrome/browser/ash/web_applications/personalization_app/personalization_app_wallpaper_provider_impl_unittest.cc index 028a4172..94e0f6f9 100644 --- a/chrome/browser/ash/web_applications/personalization_app/personalization_app_wallpaper_provider_impl_unittest.cc +++ b/chrome/browser/ash/web_applications/personalization_app/personalization_app_wallpaper_provider_impl_unittest.cc
@@ -52,6 +52,9 @@ #include "third_party/skia/include/core/SkColor.h" #include "ui/base/webui/web_ui_util.h" +namespace ash { +namespace personalization_app { + namespace { constexpr char kFakeTestEmail[] = "fakeemail@personalization"; @@ -962,3 +965,6 @@ test_wallpaper_controller()->wallpaper_info().value_or( ash::WallpaperInfo())); } + +} // namespace personalization_app +} // namespace ash
diff --git a/chrome/browser/ash/web_applications/personalization_app/personalization_system_app_delegate.cc b/chrome/browser/ash/web_applications/personalization_app/personalization_system_app_delegate.cc new file mode 100644 index 0000000..40a3224 --- /dev/null +++ b/chrome/browser/ash/web_applications/personalization_app/personalization_system_app_delegate.cc
@@ -0,0 +1,63 @@ +// Copyright 2021 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/ash/web_applications/personalization_app/personalization_system_app_delegate.h" + +#include <memory> + +#include "ash/constants/ash_features.h" +#include "ash/webui/grit/ash_personalization_app_resources.h" +#include "ash/webui/personalization_app/personalization_app_url_constants.h" +#include "chrome/browser/ash/web_applications/system_web_app_install_utils.h" +#include "chrome/browser/web_applications/web_app_install_info.h" +#include "chromeos/strings/grit/chromeos_strings.h" +#include "third_party/blink/public/mojom/manifest/display_mode.mojom.h" +#include "ui/base/l10n/l10n_util.h" +#include "ui/gfx/geometry/size.h" + +PersonalizationSystemAppDelegate::PersonalizationSystemAppDelegate( + Profile* profile) + : web_app::SystemWebAppDelegate( + web_app::SystemAppType::PERSONALIZATION, + "Personalization", + GURL(ash::personalization_app::kChromeUIPersonalizationAppURL), + profile) {} + +std::unique_ptr<WebAppInstallInfo> +PersonalizationSystemAppDelegate::GetWebAppInfo() const { + std::unique_ptr<WebAppInstallInfo> info = + std::make_unique<WebAppInstallInfo>(); + info->start_url = + GURL(ash::personalization_app::kChromeUIPersonalizationAppURL); + info->scope = GURL(ash::personalization_app::kChromeUIPersonalizationAppURL); + info->title = + (chromeos::features::IsPersonalizationHubEnabled()) + ? l10n_util::GetStringUTF16( + IDS_PERSONALIZATION_APP_PERSONALIZATION_HUB_TITLE) + : l10n_util::GetStringUTF16(IDS_PERSONALIZATION_APP_WALLPAPER_LABEL); + web_app::CreateIconInfoForSystemWebApp( + info->start_url, + {{"app_icon_192.png", 192, IDR_ASH_PERSONALIZATION_APP_ICON_192_PNG}}, + *info); + info->display_mode = blink::mojom::DisplayMode::kStandalone; + info->user_display_mode = blink::mojom::DisplayMode::kStandalone; + + return info; +} + +gfx::Size PersonalizationSystemAppDelegate::GetMinimumWindowSize() const { + return {600, 420}; +} + +bool PersonalizationSystemAppDelegate::ShouldCaptureNavigations() const { + return true; +} + +bool PersonalizationSystemAppDelegate::IsAppEnabled() const { + return chromeos::features::IsWallpaperWebUIEnabled(); +} + +bool PersonalizationSystemAppDelegate::ShouldShowInLauncher() const { + return false; +}
diff --git a/chrome/browser/ash/web_applications/personalization_app/personalization_system_app_delegate.h b/chrome/browser/ash/web_applications/personalization_app/personalization_system_app_delegate.h new file mode 100644 index 0000000..d40c132f --- /dev/null +++ b/chrome/browser/ash/web_applications/personalization_app/personalization_system_app_delegate.h
@@ -0,0 +1,30 @@ +// Copyright 2021 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROME_BROWSER_ASH_WEB_APPLICATIONS_PERSONALIZATION_APP_PERSONALIZATION_SYSTEM_APP_DELEGATE_H_ +#define CHROME_BROWSER_ASH_WEB_APPLICATIONS_PERSONALIZATION_APP_PERSONALIZATION_SYSTEM_APP_DELEGATE_H_ + +#include "ash/webui/personalization_app/personalization_app_url_constants.h" +#include "chrome/browser/web_applications/system_web_apps/system_web_app_delegate.h" +#include "chrome/browser/web_applications/system_web_apps/system_web_app_types.h" +#include "ui/gfx/geometry/size.h" + +struct WebAppInstallInfo; + +class PersonalizationSystemAppDelegate : public web_app::SystemWebAppDelegate { + public: + explicit PersonalizationSystemAppDelegate(Profile* profile); + + // web_app::SystemWebAppDelegate overrides: + std::unique_ptr<WebAppInstallInfo> GetWebAppInfo() const override; + gfx::Size GetMinimumWindowSize() const override; + bool ShouldCaptureNavigations() const override; + bool IsAppEnabled() const override; + bool ShouldShowInLauncher() const override; +}; + +// Return a WebAppInstallInfo used to install the app. +std::unique_ptr<WebAppInstallInfo> CreateWebAppInfoForPersonalizationApp(); + +#endif // CHROME_BROWSER_ASH_WEB_APPLICATIONS_PERSONALIZATION_APP_PERSONALIZATION_SYSTEM_APP_DELEGATE_H_
diff --git a/chrome/browser/autofill/credit_card_accessory_controller_impl.cc b/chrome/browser/autofill/credit_card_accessory_controller_impl.cc index 4c20762..5088ed2 100644 --- a/chrome/browser/autofill/credit_card_accessory_controller_impl.cc +++ b/chrome/browser/autofill/credit_card_accessory_controller_impl.cc
@@ -277,6 +277,29 @@ if (vr::VrTabHelper::IsInVr(web_contents)) { return false; // TODO(crbug.com/902305): Re-enable if possible. } + if (base::FeatureList::IsEnabled( + autofill::features::kAutofillEnableManualFallbackForVirtualCards)) { + autofill::PersonalDataManager* personal_data_manager = + PersonalDataManagerFactory::GetForBrowserContext( + web_contents->GetBrowserContext()); + if (personal_data_manager) { + std::vector<CreditCard*> cards = + personal_data_manager->GetCreditCardsToSuggest( + /*include_server_cards=*/true); + bool has_virtual_card = base::ranges::any_of(cards, [](const auto& card) { + return card->virtual_card_enrollment_state() == + CreditCard::VirtualCardEnrollmentState::ENROLLED; + }); + if (has_virtual_card) { + // Virtual cards are available. We should always show manual fallback + // for virtual cards. + return true; + } + } + } + + // For non-virtual cards show the credit card accessory sheet only + // when both keyboard accessory and manual fallback flags are enabled. return features::IsAutofillManualFallbackEnabled(); }
diff --git a/chrome/browser/autofill/credit_card_accessory_controller_impl_unittest.cc b/chrome/browser/autofill/credit_card_accessory_controller_impl_unittest.cc index 6b59332a..fbff104c3 100644 --- a/chrome/browser/autofill/credit_card_accessory_controller_impl_unittest.cc +++ b/chrome/browser/autofill/credit_card_accessory_controller_impl_unittest.cc
@@ -8,6 +8,7 @@ #include "base/test/mock_callback.h" #include "chrome/browser/autofill/accessory_controller.h" #include "chrome/browser/autofill/mock_manual_filling_controller.h" +#include "chrome/browser/autofill/personal_data_manager_factory.h" #include "chrome/test/base/chrome_render_view_host_test_harness.h" #include "chrome/test/base/testing_profile.h" #include "components/autofill/core/browser/autofill_test_utils.h" @@ -18,6 +19,7 @@ #include "components/autofill/core/browser/test_browser_autofill_manager.h" #include "components/autofill/core/browser/test_personal_data_manager.h" #include "components/autofill/core/common/autofill_payments_features.h" +#include "components/autofill/core/common/autofill_prefs.h" #include "components/autofill/core/common/form_data.h" #include "components/autofill/core/common/unique_ids.h" #include "components/strings/grit/components_strings.h" @@ -91,6 +93,7 @@ scoped_feature_list_.InitWithFeatures( /*enabled_features=*/ {autofill::features::kAutofillEnableMerchantBoundVirtualCards, + autofill::features::kAutofillEnableManualFallbackForVirtualCards, autofill::features:: kAutofillShowUnmaskedCachedCardInManualFillingView}, /*disabled_features=*/{ @@ -182,6 +185,39 @@ } }; +TEST_F(CreditCardAccessoryControllerTest, + AllowedForWebContentsForNonVirtualCards) { + autofill::prefs::SetPaymentsIntegrationEnabled(profile()->GetPrefs(), true); + autofill::PersonalDataManager* personal_data_manager = + PersonalDataManagerFactory::GetForProfile(profile()); + personal_data_manager->SetSyncingForTest(true); + // Add a non-virtual card. + autofill::CreditCard card = test::GetMaskedServerCard(); + personal_data_manager->AddServerCreditCardForTest( + std::make_unique<autofill::CreditCard>(card)); + + // Verify that the accessory sheet is not allowed. + ASSERT_FALSE( + CreditCardAccessoryController::AllowedForWebContents(web_contents())); +} + +TEST_F(CreditCardAccessoryControllerTest, + AllowedForWebContentsForVirtualCards) { + autofill::prefs::SetPaymentsIntegrationEnabled(profile()->GetPrefs(), true); + autofill::PersonalDataManager* personal_data_manager = + PersonalDataManagerFactory::GetForProfile(profile()); + personal_data_manager->SetSyncingForTest(true); + // Add a virtual card. + autofill::CreditCard card = test::GetMaskedServerCard(); + card.set_virtual_card_enrollment_state(autofill::CreditCard::ENROLLED); + personal_data_manager->AddServerCreditCardForTest( + std::make_unique<autofill::CreditCard>(card)); + + // Verify that the accessory sheet is allowed. + ASSERT_TRUE( + CreditCardAccessoryController::AllowedForWebContents(web_contents())); +} + TEST_F(CreditCardAccessoryControllerTest, RefreshSuggestions) { autofill::CreditCard card = test::GetCreditCard(); data_manager_.AddCreditCard(card);
diff --git a/chrome/browser/autofill/manual_filling_controller_impl.cc b/chrome/browser/autofill/manual_filling_controller_impl.cc index 6bf1633..bbc086df 100644 --- a/chrome/browser/autofill/manual_filling_controller_impl.cc +++ b/chrome/browser/autofill/manual_filling_controller_impl.cc
@@ -26,6 +26,7 @@ #include "components/autofill/core/browser/ui/accessory_sheet_data.h" #include "components/autofill/core/browser/ui/accessory_sheet_enums.h" #include "components/autofill/core/common/autofill_features.h" +#include "components/autofill/core/common/autofill_payments_features.h" #include "components/autofill/core/common/autofill_util.h" #include "components/keyed_service/core/service_access_type.h" #include "components/password_manager/core/browser/credential_cache.h" @@ -322,7 +323,9 @@ if (!base::FeatureList::IsEnabled( autofill::features::kAutofillKeyboardAccessory) && !base::FeatureList::IsEnabled( - autofill::features::kAutofillManualFallbackAndroid)) { + autofill::features::kAutofillManualFallbackAndroid) && + !base::FeatureList::IsEnabled( + autofill::features::kAutofillEnableManualFallbackForVirtualCards)) { return last_focused_field_type_ == FocusedFieldType::kFillablePasswordField || last_focused_field_type_ == FocusedFieldType::kFillableUsernameField;
diff --git a/chrome/browser/autofill/manual_filling_controller_impl_unittest.cc b/chrome/browser/autofill/manual_filling_controller_impl_unittest.cc index d61a6e5..7d0cef0 100644 --- a/chrome/browser/autofill/manual_filling_controller_impl_unittest.cc +++ b/chrome/browser/autofill/manual_filling_controller_impl_unittest.cc
@@ -27,6 +27,7 @@ #include "components/autofill/core/browser/ui/accessory_sheet_data.h" #include "components/autofill/core/browser/ui/accessory_sheet_enums.h" #include "components/autofill/core/common/autofill_features.h" +#include "components/autofill/core/common/autofill_payments_features.h" #include "components/password_manager/core/common/password_manager_features.h" #include "content/public/test/browser_task_environment.h" #include "content/public/test/test_web_contents_factory.h" @@ -156,6 +157,7 @@ scoped_feature_list_.InitWithFeatures( /*enabled_features=*/{}, /*disabled_features=*/{ + autofill::features::kAutofillEnableManualFallbackForVirtualCards, autofill::features::kAutofillKeyboardAccessory, autofill::features::kAutofillManualFallbackAndroid}); ManualFillingControllerImpl::CreateForWebContentsForTesting( @@ -342,6 +344,35 @@ NotifyCreditCardSourceObserver(IsFillingSourceAvailable(false)); } +TEST_F(ManualFillingControllerTest, + ShowsAccessoryForCreditCardsWhenManualFallbackEnabledForVirtualCards) { + base::test::ScopedFeatureList features; + features.InitWithFeatures(/*enabled_features=*/ + {autofill::features:: + kAutofillEnableManualFallbackForVirtualCards}, + /*disabled_features=*/{ + autofill::features::kAutofillKeyboardAccessory, + autofill::features:: + kAutofillManualFallbackAndroid}); + const AccessorySheetData kTestCreditCardSheet = + populate_sheet(AccessoryTabType::CREDIT_CARDS); + + // TODO(crbug.com/1169167): Because the data isn't cached, test that only one + // call to `GetSheetData()` happens. + EXPECT_CALL(mock_cc_controller_, GetSheetData) + .Times(AtLeast(1)) + .WillRepeatedly(Return(kTestCreditCardSheet)); + EXPECT_CALL(*view(), OnItemsAvailable(kTestCreditCardSheet)) + .Times(AnyNumber()); + EXPECT_CALL(*view(), ShowWhenKeyboardIsVisible()); + + FocusFieldAndClearExpectations(FocusedFieldType::kFillableNonSearchField); + NotifyCreditCardSourceObserver(IsFillingSourceAvailable(true)); + + EXPECT_CALL(*view(), Hide()).Times(0); + NotifyCreditCardSourceObserver(IsFillingSourceAvailable(false)); +} + TEST_F(ManualFillingControllerLegacyTest, UpdatesCreditCardControllerOnFocusChange) { EXPECT_CALL(mock_cc_controller_, RefreshSuggestions);
diff --git a/chrome/browser/cart/commerce_hint_service.cc b/chrome/browser/cart/commerce_hint_service.cc index 49266fd9..770f832 100644 --- a/chrome/browser/cart/commerce_hint_service.cc +++ b/chrome/browser/cart/commerce_hint_service.cc
@@ -16,6 +16,7 @@ #include "chrome/browser/optimization_guide/optimization_guide_keyed_service_factory.h" #include "chrome/browser/profiles/profile.h" #include "components/commerce/core/commerce_feature_list.h" +#include "components/commerce/core/commerce_heuristics_data.h" #include "components/search/ntp_features.h" #include "components/ukm/content/source_url_recorder.h" #include "content/public/browser/document_service.h" @@ -133,8 +134,36 @@ service_->OnWillSendRequest(binding_url_, is_addtocart); } - void OnNavigation(const GURL& url, OnNavigationCallback callback) override { - std::move(callback).Run(service_->ShouldSkip(url)); + void OnNavigation(const GURL& url, + const std::string& version_number, + OnNavigationCallback callback) override { + mojom::HeuristicsPtr ptr(mojom::Heuristics::New()); + bool should_skip = service_->ShouldSkip(url); + if (should_skip) { + std::move(callback).Run(should_skip, std::move(ptr)); + return; + } + ptr->version_number = + commerce_heuristics::CommerceHeuristicsData::GetInstance().GetVersion(); + // If the version number of heuristics on renderer side is up to date, skip + // sending heuristics. + if (ptr->version_number == version_number) { + std::move(callback).Run(should_skip, std::move(ptr)); + return; + } + auto hint_heuristics = + commerce_heuristics::CommerceHeuristicsData::GetInstance() + .GetHintHeuristicsJSONForDomain(GetDomain(url)); + auto global_heuristics = + commerce_heuristics::CommerceHeuristicsData::GetInstance() + .GetGlobalHeuristicsJSON(); + // Populate if there is heuristics data from component, otherwise initialize + // heuristics with empty JSON. + ptr->hint_json_data = + hint_heuristics.has_value() ? std::move(*hint_heuristics) : "{}"; + ptr->global_json_data = + global_heuristics.has_value() ? std::move(*global_heuristics) : "{}"; + std::move(callback).Run(should_skip, std::move(ptr)); } private: @@ -265,6 +294,23 @@ base::UmaHistogramBoolean("Commerce.Carts.XHRIsAddToCart", reported); } +bool CommerceHintService::InitializeCommerceHeuristicsForTesting( + base::Version version, + const std::string& hint_json_data, + const std::string& global_json_data, + const std::string& product_id_json_data, + const std::string& cart_extraction_script) { + if (!commerce_heuristics::CommerceHeuristicsData::GetInstance() + .PopulateDataFromComponent(hint_json_data, global_json_data, + product_id_json_data, + cart_extraction_script)) { + return false; + } + commerce_heuristics::CommerceHeuristicsData::GetInstance().UpdateVersion( + version); + return true; +} + WEB_CONTENTS_USER_DATA_KEY_IMPL(CommerceHintService); } // namespace cart
diff --git a/chrome/browser/cart/commerce_hint_service.h b/chrome/browser/cart/commerce_hint_service.h index aad1c92..8045566 100644 --- a/chrome/browser/cart/commerce_hint_service.h +++ b/chrome/browser/cart/commerce_hint_service.h
@@ -7,6 +7,7 @@ #include "base/memory/raw_ptr.h" #include "base/memory/weak_ptr.h" +#include "base/version.h" #include "chrome/browser/cart/cart_service.h" #include "chrome/common/cart/commerce_hints.mojom.h" #include "components/optimization_guide/content/browser/optimization_guide_decider.h" @@ -35,6 +36,15 @@ std::vector<mojom::ProductPtr> products); bool ShouldSkip(const GURL& url); + // Testing-only. Used to initialize commerce heuristics data in browser + // process for testing. + bool InitializeCommerceHeuristicsForTesting( + base::Version version, + const std::string& hint_json_data, + const std::string& global_json_data, + const std::string& product_id_json_data, + const std::string& cart_extraction_script); + private: explicit CommerceHintService(content::WebContents* web_contents); friend class content::WebContentsUserData<CommerceHintService>;
diff --git a/chrome/browser/chrome_browser_interface_binders.cc b/chrome/browser/chrome_browser_interface_binders.cc index 10aeeb4..fcc5afb6 100644 --- a/chrome/browser/chrome_browser_interface_binders.cc +++ b/chrome/browser/chrome_browser_interface_binders.cc
@@ -1091,21 +1091,21 @@ if (chromeos::features::IsWallpaperWebUIEnabled()) { RegisterWebUIControllerInterfaceBinder< ash::personalization_app::mojom::WallpaperProvider, - ash::PersonalizationAppUI>(map); + ash::personalization_app::PersonalizationAppUI>(map); } if (ash::features::IsPersonalizationHubEnabled()) { RegisterWebUIControllerInterfaceBinder< ash::personalization_app::mojom::AmbientProvider, - ash::PersonalizationAppUI>(map); + ash::personalization_app::PersonalizationAppUI>(map); RegisterWebUIControllerInterfaceBinder< ash::personalization_app::mojom::ThemeProvider, - ash::PersonalizationAppUI>(map); + ash::personalization_app::PersonalizationAppUI>(map); RegisterWebUIControllerInterfaceBinder< ash::personalization_app::mojom::UserProvider, - ash::PersonalizationAppUI>(map); + ash::personalization_app::PersonalizationAppUI>(map); } RegisterWebUIControllerInterfaceBinder<
diff --git a/chrome/browser/chromeos/BUILD.gn b/chrome/browser/chromeos/BUILD.gn index 7c0226d4..20e5a5c 100644 --- a/chrome/browser/chromeos/BUILD.gn +++ b/chrome/browser/chromeos/BUILD.gn
@@ -3353,8 +3353,6 @@ "../ash/web_applications/os_url_handler_system_web_app_info.h", "../ash/web_applications/personalization_app/personalization_app_ambient_provider_impl.cc", "../ash/web_applications/personalization_app/personalization_app_ambient_provider_impl.h", - "../ash/web_applications/personalization_app/personalization_app_info.cc", - "../ash/web_applications/personalization_app/personalization_app_info.h", "../ash/web_applications/personalization_app/personalization_app_theme_provider_impl.cc", "../ash/web_applications/personalization_app/personalization_app_theme_provider_impl.h", "../ash/web_applications/personalization_app/personalization_app_user_provider_impl.cc", @@ -3363,6 +3361,8 @@ "../ash/web_applications/personalization_app/personalization_app_utils.h", "../ash/web_applications/personalization_app/personalization_app_wallpaper_provider_impl.cc", "../ash/web_applications/personalization_app/personalization_app_wallpaper_provider_impl.h", + "../ash/web_applications/personalization_app/personalization_system_app_delegate.cc", + "../ash/web_applications/personalization_app/personalization_system_app_delegate.h", "../ash/web_applications/print_management_web_app_info.cc", "../ash/web_applications/print_management_web_app_info.h", "../ash/web_applications/projector_app/untrusted_projector_annotator_ui_config.cc",
diff --git a/chrome/browser/enterprise/connectors/analysis/content_analysis_dialog.cc b/chrome/browser/enterprise/connectors/analysis/content_analysis_dialog.cc index 93de3893..a80be19d 100644 --- a/chrome/browser/enterprise/connectors/analysis/content_analysis_dialog.cc +++ b/chrome/browser/enterprise/connectors/analysis/content_analysis_dialog.cc
@@ -74,11 +74,22 @@ // A simple background class to show a colored circle behind the side icon once // the scanning is done. -class CircleBackground : public views::Background { +// TODO(pkasting): This is copy and pasted from ThemedSolidBackground. Merge. +class CircleBackground : public views::Background, public views::ViewObserver { public: - explicit CircleBackground(SkColor color) { SetNativeControlColor(color); } + explicit CircleBackground(views::View* view, ui::ColorId color_id) + : color_id_(color_id) { + observation_.Observe(view); + if (view->GetWidget()) + OnViewThemeChanged(view); + } + + CircleBackground(const CircleBackground&) = delete; + CircleBackground& operator=(const CircleBackground&) = delete; + ~CircleBackground() override = default; + // views::Background: void Paint(gfx::Canvas* canvas, views::View* view) const override { int radius = view->bounds().width() / 2; gfx::PointF center(radius, radius); @@ -88,11 +99,22 @@ flags.setColor(get_color()); canvas->DrawCircle(center, radius, flags); } -}; -SkColor GetBackgroundColor(const views::View* view) { - return view->GetColorProvider()->GetColor(ui::kColorDialogBackground); -} + // views::ViewObserver: + void OnViewThemeChanged(views::View* view) override { + SetNativeControlColor(view->GetColorProvider()->GetColor(color_id_)); + view->SchedulePaint(); + } + + void OnViewIsDeleting(views::View* view) override { + DCHECK(observation_.IsObservingSource(view)); + observation_.Reset(); + } + + private: + base::ScopedObservation<views::View, ViewObserver> observation_{this}; + ui::ColorId color_id_; +}; ContentAnalysisDialog::TestObserver* observer_for_testing = nullptr; @@ -144,11 +166,12 @@ void Update() { if (!GetWidget()) return; - SetImage(gfx::CreateVectorIcon(vector_icons::kBusinessIcon, kSideImageSize, - dialog()->GetSideImageLogoColor())); + SetImage(ui::ImageModel::FromVectorIcon(vector_icons::kBusinessIcon, + dialog()->GetSideImageLogoColor(), + kSideImageSize)); if (dialog()->is_result()) { SetBackground(std::make_unique<CircleBackground>( - dialog()->GetSideImageBackgroundColor())); + this, dialog()->GetSideImageBackgroundColor())); } } @@ -656,20 +679,20 @@ return icon; } -SkColor ContentAnalysisDialog::GetSideImageBackgroundColor() const { +ui::ColorId ContentAnalysisDialog::GetSideImageBackgroundColor() const { DCHECK(is_result()); DCHECK(contents_view_); switch (dialog_state_) { case State::PENDING: NOTREACHED(); - return gfx::kGoogleBlue500; + [[fallthrough]]; case State::SUCCESS: - return gfx::kGoogleBlue500; + return ui::kColorAccent; case State::FAILURE: - return gfx::kGoogleRed500; + return ui::kColorAlertHighSeverity; case State::WARNING: - return gfx::kGoogleYellow500; + return ui::kColorAlertMediumSeverity; } } @@ -862,7 +885,8 @@ } const gfx::ImageSkia* ContentAnalysisDialog::GetTopImage() const { - const bool use_dark = color_utils::IsDark(GetBackgroundColor(contents_view_)); + const bool use_dark = color_utils::IsDark( + contents_view_->GetColorProvider()->GetColor(ui::kColorDialogBackground)); return ui::ResourceBundle::GetSharedInstance().GetImageSkiaNamed( GetTopImageId(use_dark)); } @@ -871,19 +895,19 @@ return access_point_ == safe_browsing::DeepScanAccessPoint::PRINT; } -SkColor ContentAnalysisDialog::GetSideImageLogoColor() const { +ui::ColorId ContentAnalysisDialog::GetSideImageLogoColor() const { DCHECK(contents_view_); switch (dialog_state_) { case State::PENDING: // Match the spinner in the pending state. - return gfx::kGoogleBlue500; + return ui::kColorThrobberPreconnect; case State::SUCCESS: case State::FAILURE: case State::WARNING: // In a result state the background will have the result's color, so the // logo should have the same color as the background. - return GetBackgroundColor(contents_view_); + return ui::kColorDialogBackground; } }
diff --git a/chrome/browser/enterprise/connectors/analysis/content_analysis_dialog.h b/chrome/browser/enterprise/connectors/analysis/content_analysis_dialog.h index 3ad0b090..7886908 100644 --- a/chrome/browser/enterprise/connectors/analysis/content_analysis_dialog.h +++ b/chrome/browser/enterprise/connectors/analysis/content_analysis_dialog.h
@@ -137,11 +137,11 @@ } // Returns the side image's logo color depending on `dialog_state_`. - SkColor GetSideImageLogoColor() const; + ui::ColorId GetSideImageLogoColor() const; // Returns the side image's background circle color depending on // `dialog_state_`. - SkColor GetSideImageBackgroundColor() const; + ui::ColorId GetSideImageBackgroundColor() const; // Returns the appropriate top image depending on `dialog_state_`. const gfx::ImageSkia* GetTopImage() const;
diff --git a/chrome/browser/enterprise/connectors/file_system/signin_confirmation_modal.cc b/chrome/browser/enterprise/connectors/file_system/signin_confirmation_modal.cc index 9cc918c..30607d07 100644 --- a/chrome/browser/enterprise/connectors/file_system/signin_confirmation_modal.cc +++ b/chrome/browser/enterprise/connectors/file_system/signin_confirmation_modal.cc
@@ -87,9 +87,8 @@ ui::ImageModel FileSystemConfirmationModal::GetWindowIcon() { // Show the enterprise icon. - return ui::ImageModel::FromImageSkia(gfx::CreateVectorIcon( - gfx::IconDescription(vector_icons::kBusinessIcon, kBusinessIconSize, - gfx::kGoogleBlue500))); + return ui::ImageModel::FromVectorIcon(vector_icons::kBusinessIcon, + ui::kColorAccent, kBusinessIconSize); } ui::ModalType FileSystemConfirmationModal::GetModalType() const {
diff --git a/chrome/browser/enterprise/connectors/file_system/signin_confirmation_unittest.cc b/chrome/browser/enterprise/connectors/file_system/signin_confirmation_unittest.cc index fc22e049..d5de2413 100644 --- a/chrome/browser/enterprise/connectors/file_system/signin_confirmation_unittest.cc +++ b/chrome/browser/enterprise/connectors/file_system/signin_confirmation_unittest.cc
@@ -58,7 +58,6 @@ auto icon = modal->GetWindowIcon(); ASSERT_FALSE(icon.IsEmpty()); - ASSERT_TRUE(icon.IsImage()); views::View* message_view = modal->GetContentsView(); ASSERT_NE(message_view, nullptr);
diff --git a/chrome/browser/feature_engagement/java/src/org/chromium/chrome/browser/feature_engagement/ScreenshotMonitor.java b/chrome/browser/feature_engagement/java/src/org/chromium/chrome/browser/feature_engagement/ScreenshotMonitor.java index 7b02cd6..96f5cac 100644 --- a/chrome/browser/feature_engagement/java/src/org/chromium/chrome/browser/feature_engagement/ScreenshotMonitor.java +++ b/chrome/browser/feature_engagement/java/src/org/chromium/chrome/browser/feature_engagement/ScreenshotMonitor.java
@@ -19,6 +19,7 @@ import org.chromium.base.ContextUtils; import org.chromium.base.Log; +import org.chromium.base.StrictModeContext; import org.chromium.base.ThreadUtils; import org.chromium.base.metrics.RecordUserAction; import org.chromium.base.task.PostTask; @@ -113,7 +114,7 @@ return false; } - try { + try (StrictModeContext ignored = StrictModeContext.allowDiskWrites()) { cursor = ContextUtils.getApplicationContext().getContentResolver().query( storeUri, mediaProjection, null, null, null); } catch (SecurityException se) {
diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json index cbbf1190..d1345b16 100644 --- a/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json
@@ -412,6 +412,11 @@ "expiry_milestone": 103 }, { + "name": "autofill-enable-manual-fallback-for-virtual-cards", + "owners": [ "siashah", "siyua" ], + "expiry_milestone": 106 + }, + { "name": "autofill-enable-merchant-bound-virtual-cards", "owners": [ "siashah", "siyua" ], "expiry_milestone": 105 @@ -2325,6 +2330,11 @@ "expiry_milestone": 110 }, { + "name": "enable-machine-learning-model-loader-web-platform-api", + "owners": [ "honglinyu" ], + "expiry_milestone": 130 + }, + { "name": "enable-magnifier-continuous-mouse-following-mode-setting", "owners": [ "josiahk", "//ui/accessibility/OWNERS" ], "expiry_milestone": 98 @@ -5420,6 +5430,11 @@ "expiry_milestone" : 104 }, { + "name" : "side-panel-journeys", + "owners": [ "mfacey", "chrome-journeys@google.com", "chrome-desktop-ui-sea@google.com"], + "expiry_milestone" : 110 + }, + { "name" : "side-search", "owners": [ "chrome-cros@google.com", "tluk" ], "expiry_milestone" : 104
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc index 8853da1..746f278 100644 --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc
@@ -324,6 +324,12 @@ "When enabled, Autofill will offer to use merchant bound virtual cards in " "payment forms."; +const char kAutofillEnableManualFallbackForVirtualCardsName[] = + "Show manual fallback for virtual cards"; +const char kAutofillEnableManualFallbackForVirtualCardsDescription[] = + "When enabled, manual fallback will be enabled for virtual cards on " + "Android."; + const char kAutofillEnableOfferNotificationForPromoCodesName[] = "Extend Autofill offers and rewards notification to promo code offers"; const char kAutofillEnableOfferNotificationForPromoCodesDescription[] = @@ -1629,6 +1635,11 @@ const char kCanvas2DLayersDescription[] = "Enables the canvas 2D methods BeginLayer and EndLayer."; +const char kEnableMachineLearningModelLoaderWebPlatformApiName[] = + "Enables Machine Learning Model Loader Web Platform API"; +const char kEnableMachineLearningModelLoaderWebPlatformApiDescription[] = + "Enables the Machine Learning Model Loader Web Platform API."; + const char kSystemProxyForSystemServicesName[] = "Enable system-proxy for selected system services"; const char kSystemProxyForSystemServicesDescription[] = @@ -2274,6 +2285,11 @@ const char kSidePanelImprovedClobberingDescription[] = "Improves the side panel clobbering experience for RHS side panels."; +const char kSidePanelJourneysFlagId[] = "side-panel-journeys"; +const char kSidePanelJourneysName[] = "Side panel journeys"; +const char kSidePanelJourneysDescription[] = + "Enables Journeys within the side panel."; + const char kSharedClipboardUIName[] = "Enable shared clipboard feature signals to be handled"; const char kSharedClipboardUIDescription[] =
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h index 98991e7..0b3eab1 100644 --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h
@@ -189,6 +189,9 @@ extern const char kAutofillEnableMerchantBoundVirtualCardsName[]; extern const char kAutofillEnableMerchantBoundVirtualCardsDescription[]; +extern const char kAutofillEnableManualFallbackForVirtualCardsName[]; +extern const char kAutofillEnableManualFallbackForVirtualCardsDescription[]; + extern const char kAutofillEnableOfferNotificationForPromoCodesName[]; extern const char kAutofillEnableOfferNotificationForPromoCodesDescription[]; @@ -932,6 +935,9 @@ extern const char kCanvas2DLayersName[]; extern const char kCanvas2DLayersDescription[]; +extern const char kEnableMachineLearningModelLoaderWebPlatformApiName[]; +extern const char kEnableMachineLearningModelLoaderWebPlatformApiDescription[]; + extern const char kDestroyProfileOnBrowserCloseName[]; extern const char kDestroyProfileOnBrowserCloseDescription[]; @@ -1286,6 +1292,10 @@ extern const char kSidePanelImprovedClobberingName[]; extern const char kSidePanelImprovedClobberingDescription[]; +extern const char kSidePanelJourneysFlagId[]; +extern const char kSidePanelJourneysName[]; +extern const char kSidePanelJourneysDescription[]; + extern const char kSharedClipboardUIName[]; extern const char kSharedClipboardUIDescription[];
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc index 14f5865a..0e4b10b 100644 --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc
@@ -83,6 +83,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &autofill::features::kAutofillAddressProfileSavePromptNicknameSupport, &autofill::features::kAutofillCreditCardAuthentication, + &autofill::features::kAutofillEnableManualFallbackForVirtualCards, &autofill::features::kAutofillKeyboardAccessory, &autofill::features::kAutofillManualFallbackAndroid, &autofill::features::kAutofillRefreshStyleAndroid,
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 af7c86c..3405c22 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
@@ -206,6 +206,8 @@ "AutofillAllowNonHttpActivation"; public static final String AUTOFILL_CREDIT_CARD_AUTHENTICATION = "AutofillCreditCardAuthentication"; + public static final String AUTOFILL_ENABLE_MANUAL_FALLBACK_FOR_VIRTUAL_CARDS = + "AutofillEnableManualFallbackForVirtualCards"; public static final String AUTOFILL_ENABLE_SUPPORT_FOR_HONORIFIC_PREFIXES = "AutofillEnableSupportForHonorificPrefixes"; public static final String AUTOFILL_ENABLE_SUPPORT_FOR_MORE_STRUCTURE_IN_ADDRESSES =
diff --git a/chrome/browser/hid/hid_chooser_context_unittest.cc b/chrome/browser/hid/hid_chooser_context_unittest.cc index 043a0fc0..281f80f3 100644 --- a/chrome/browser/hid/hid_chooser_context_unittest.cc +++ b/chrome/browser/hid/hid_chooser_context_unittest.cc
@@ -6,13 +6,13 @@ #include "base/barrier_closure.h" #include "base/guid.h" -#include "base/json/json_reader.h" #include "base/run_loop.h" #include "base/scoped_observation.h" #include "base/test/bind.h" #include "base/test/gmock_callback_support.h" #include "base/test/scoped_feature_list.h" #include "base/test/test_future.h" +#include "base/test/values_test_util.h" #include "build/build_config.h" #include "build/chromeos_buildflags.h" #include "chrome/browser/content_settings/host_content_settings_map_factory.h" @@ -40,6 +40,7 @@ #include "components/user_manager/scoped_user_manager.h" #endif +using ::base::test::ParseJson; using ::base::test::RunClosure; namespace { @@ -55,12 +56,6 @@ constexpr uint16_t kTestUsagePage = device::mojom::kPageGenericDesktop; constexpr uint16_t kTestUsage = device::mojom::kGenericDesktopGamePad; -std::unique_ptr<base::Value> ReadJson(base::StringPiece json) { - absl::optional<base::Value> value = base::JSONReader::Read(json); - EXPECT_TRUE(value); - return value ? base::Value::ToUniquePtrValue(std::move(*value)) : nullptr; -} - // Main text fixture. class HidChooserContextTestBase { public: @@ -257,28 +252,28 @@ void SetAskForUrlsPolicy(base::StringPiece policy) { profile_->GetTestingPrefService()->SetManagedPref( - prefs::kManagedWebHidAskForUrls, ReadJson(policy)); + prefs::kManagedWebHidAskForUrls, ParseJson(policy)); } void SetBlockedForUrlsPolicy(base::StringPiece policy) { profile_->GetTestingPrefService()->SetManagedPref( - prefs::kManagedWebHidBlockedForUrls, ReadJson(policy)); + prefs::kManagedWebHidBlockedForUrls, ParseJson(policy)); } void SetAllowDevicesForUrlsPolicy(base::StringPiece policy) { testing_profile_manager_->local_state()->Get()->SetManagedPref( - prefs::kManagedWebHidAllowDevicesForUrls, ReadJson(policy)); + prefs::kManagedWebHidAllowDevicesForUrls, ParseJson(policy)); } void SetAllowDevicesWithHidUsagesForUrlsPolicy(base::StringPiece policy) { testing_profile_manager_->local_state()->Get()->SetManagedPref( prefs::kManagedWebHidAllowDevicesWithHidUsagesForUrls, - ReadJson(policy)); + ParseJson(policy)); } void SetAllowAllDevicesForUrlsPolicy(base::StringPiece policy) { testing_profile_manager_->local_state()->Get()->SetManagedPref( - prefs::kManagedWebHidAllowAllDevicesForUrls, ReadJson(policy)); + prefs::kManagedWebHidAllowAllDevicesForUrls, ParseJson(policy)); } private:
diff --git a/chrome/browser/hid/hid_policy_allowed_devices_unittest.cc b/chrome/browser/hid/hid_policy_allowed_devices_unittest.cc index ae47cd12..0a03f4e 100644 --- a/chrome/browser/hid/hid_policy_allowed_devices_unittest.cc +++ b/chrome/browser/hid/hid_policy_allowed_devices_unittest.cc
@@ -7,8 +7,8 @@ #include <string> #include <utility> -#include "base/json/json_reader.h" #include "base/strings/string_number_conversions.h" +#include "base/test/values_test_util.h" #include "chrome/browser/prefs/browser_prefs.h" #include "chrome/common/pref_names.h" #include "chrome/test/base/testing_profile.h" @@ -24,15 +24,9 @@ namespace { +using ::base::test::ParseJson; using ::testing::UnorderedElementsAre; -base::Value ReadJson(base::StringPiece json) { - base::JSONReader::ValueWithError result = - base::JSONReader::ReadAndReturnValueWithError(json); - EXPECT_TRUE(result.value) << result.error_message; - return result.value ? std::move(*result.value) : base::Value(); -} - class HidPolicyAllowedDevicesTest : public testing::Test { public: HidPolicyAllowedDevicesTest() { RegisterLocalState(local_state_.registry()); } @@ -46,17 +40,17 @@ void SetAllowDevicesForUrlsPrefValue(base::StringPiece policy) { local_state_.Set(prefs::kManagedWebHidAllowDevicesForUrls, - ReadJson(policy)); + ParseJson(policy)); } void SetAllowDevicesWithHidUsagesForUrlsPrefValue(base::StringPiece policy) { local_state_.Set(prefs::kManagedWebHidAllowDevicesWithHidUsagesForUrls, - ReadJson(policy)); + ParseJson(policy)); } void SetAllowAllDevicesForUrlsPrefValue(base::StringPiece policy) { local_state_.Set(prefs::kManagedWebHidAllowAllDevicesForUrls, - ReadJson(policy)); + ParseJson(policy)); } protected:
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 8294d2f..0f051ff1 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
@@ -43,8 +43,14 @@ // This test doesn't check whether switching between browser windows results in // separate sessions or not. +// Disabled on Linux for being flaky. crbug.com/1311773 +#if BUILDFLAG(IS_LINUX) +#define MAYBE_VisibilityTest DISABLED_VisibilityTest +#else +#define MAYBE_VisibilityTest VisibilityTest +#endif IN_PROC_BROWSER_TEST_F(ChromeVisibilityObserverInteractiveTest, - VisibilityTest) { + MAYBE_VisibilityTest) { // Observer should now be active as there is one active browser. EXPECT_TRUE(is_active());
diff --git a/chrome/browser/net/dns_over_https_browsertest.cc b/chrome/browser/net/dns_over_https_browsertest.cc index bae06d9..e5d5924 100644 --- a/chrome/browser/net/dns_over_https_browsertest.cc +++ b/chrome/browser/net/dns_over_https_browsertest.cc
@@ -2,6 +2,11 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +#include <string> +#include <utility> +#include <vector> + +#include "base/feature_list.h" #include "base/test/scoped_feature_list.h" #include "chrome/browser/net/secure_dns_config.h" #include "chrome/browser/net/stub_resolver_config_reader.h" @@ -17,6 +22,7 @@ #include "net/dns/public/dns_over_https_server_config.h" #include "net/dns/public/doh_provider_entry.h" #include "net/dns/public/secure_dns_mode.h" +#include "testing/gtest/include/gtest/gtest-message.h" #include "testing/gtest/include/gtest/gtest.h" #include "url/gurl.h" @@ -25,27 +31,31 @@ struct DohParameter { DohParameter(std::string provider, net::DnsOverHttpsServerConfig server, - bool valid) + bool valid, + bool provider_feature_enabled) : doh_provider(std::move(provider)), server_config(std::move(server)), - is_valid(valid) {} + is_valid(valid), + provider_feature_enabled(provider_feature_enabled) {} std::string doh_provider; net::DnsOverHttpsServerConfig server_config; bool is_valid; + bool provider_feature_enabled; }; std::vector<DohParameter> GetDohServerTestCases() { std::vector<DohParameter> doh_test_cases; for (const auto* entry : net::DohProviderEntry::GetList()) { + const bool feature_enabled = base::FeatureList::IsEnabled(entry->feature); doh_test_cases.emplace_back(entry->provider, entry->doh_server_config, - true); + /*valid=*/true, feature_enabled); } // Negative test-case doh_test_cases.emplace_back( "NegativeTestExampleCom", *net::DnsOverHttpsServerConfig::FromString("https://www.example.com"), - false); + /*valid=*/false, /*provider_feature_enabled=*/false); return doh_test_cases; } @@ -75,6 +85,9 @@ }; IN_PROC_BROWSER_TEST_P(DohBrowserTest, MANUAL_ExternalDohServers) { + SCOPED_TRACE(testing::Message() << "Provider's base::Feature is enabled: " + << GetParam().provider_feature_enabled); + SecureDnsConfig secure_dns_config = SystemNetworkContextManager::GetStubResolverConfigReader() ->GetSecureDnsConfiguration(
diff --git a/chrome/browser/optimization_guide/prediction/prediction_manager_browsertest.cc b/chrome/browser/optimization_guide/prediction/prediction_manager_browsertest.cc index 38dbea4e..f779d75 100644 --- a/chrome/browser/optimization_guide/prediction/prediction_manager_browsertest.cc +++ b/chrome/browser/optimization_guide/prediction/prediction_manager_browsertest.cc
@@ -42,6 +42,7 @@ #include "content/public/test/network_connection_change_simulator.h" #include "net/test/embedded_test_server/http_request.h" #include "net/test/embedded_test_server/http_response.h" +#include "testing/gmock/include/gmock/gmock.h" #if BUILDFLAG(IS_CHROMEOS_ASH) #include "ash/constants/ash_switches.h" @@ -679,6 +680,25 @@ histogram_tester.ExpectUniqueSample( "OptimizationGuide.PredictionModelLoadedVersion.PainfulPageLoad", kSuccessfulModelVersion, 1); + EXPECT_THAT( + histogram_tester.GetAllSamples("OptimizationGuide.PredictionManager." + "ModelDeliveryEvents.PainfulPageLoad"), + testing::UnorderedElementsAre( + base::Bucket(static_cast<base::HistogramBase::Sample>( + ModelDeliveryEvent::kGetModelsRequest), + 1), + base::Bucket(static_cast<base::HistogramBase::Sample>( + ModelDeliveryEvent::kDownloadServiceRequest), + 1), + base::Bucket(static_cast<base::HistogramBase::Sample>( + ModelDeliveryEvent::kModelDownloadStarted), + 1), + base::Bucket(static_cast<base::HistogramBase::Sample>( + ModelDeliveryEvent::kModelDownloaded), + 1), + base::Bucket(static_cast<base::HistogramBase::Sample>( + ModelDeliveryEvent::kModelDelivered), + 1))); } IN_PROC_BROWSER_TEST_F(PredictionManagerModelDownloadingBrowserTest, @@ -727,6 +747,25 @@ histogram_tester.ExpectUniqueSample( "OptimizationGuide.PredictionModelLoadedVersion.PainfulPageLoad", kSuccessfulModelVersion, 1); + EXPECT_THAT( + histogram_tester.GetAllSamples("OptimizationGuide.PredictionManager." + "ModelDeliveryEvents.PainfulPageLoad"), + testing::UnorderedElementsAre( + base::Bucket(static_cast<base::HistogramBase::Sample>( + ModelDeliveryEvent::kGetModelsRequest), + 1), + base::Bucket(static_cast<base::HistogramBase::Sample>( + ModelDeliveryEvent::kDownloadServiceRequest), + 1), + base::Bucket(static_cast<base::HistogramBase::Sample>( + ModelDeliveryEvent::kModelDownloadStarted), + 1), + base::Bucket(static_cast<base::HistogramBase::Sample>( + ModelDeliveryEvent::kModelDownloaded), + 1), + base::Bucket(static_cast<base::HistogramBase::Sample>( + ModelDeliveryEvent::kModelDelivered), + 1))); } IN_PROC_BROWSER_TEST_F(PredictionManagerModelDownloadingBrowserTest,
diff --git a/chrome/browser/optimization_guide/prediction/prediction_model_download_client.cc b/chrome/browser/optimization_guide/prediction/prediction_model_download_client.cc index 2bec965..8e4214c5a 100644 --- a/chrome/browser/optimization_guide/prediction/prediction_model_download_client.cc +++ b/chrome/browser/optimization_guide/prediction/prediction_model_download_client.cc
@@ -16,6 +16,26 @@ namespace optimization_guide { +namespace { + +// Parses the optimization target from |custom_data|. +absl::optional<proto::OptimizationTarget> ParseOptimizationTarget( + const download::DownloadParams::CustomData& custom_data) { + const auto target_it = + custom_data.find(kPredictionModelOptimizationTargetCustomDataKey); + if (target_it == custom_data.end()) { + return absl::nullopt; + } + proto::OptimizationTarget optimization_target; + if (!proto::OptimizationTarget_Parse(target_it->second, + &optimization_target)) { + return absl::nullopt; + } + return optimization_target; +} + +} // namespace + PredictionModelDownloadClient::PredictionModelDownloadClient(Profile* profile) : profile_(profile) {} @@ -80,8 +100,10 @@ download::Client::FailureReason reason) { PredictionModelDownloadManager* download_manager = GetPredictionModelDownloadManager(); - if (download_manager) - download_manager->OnDownloadFailed(guid); + if (download_manager) { + download_manager->OnDownloadFailed( + ParseOptimizationTarget(completion_info.custom_data), guid); + } } void PredictionModelDownloadClient::OnDownloadSucceeded( @@ -89,8 +111,11 @@ const download::CompletionInfo& completion_info) { PredictionModelDownloadManager* download_manager = GetPredictionModelDownloadManager(); - if (download_manager) - download_manager->OnDownloadSucceeded(guid, completion_info.path); + if (download_manager) { + download_manager->OnDownloadSucceeded( + ParseOptimizationTarget(completion_info.custom_data), guid, + completion_info.path); + } } bool PredictionModelDownloadClient::CanServiceRemoveDownloadedFile(
diff --git a/chrome/browser/page_load_metrics/integration_tests/event_counts_browsertest.cc b/chrome/browser/page_load_metrics/integration_tests/event_counts_browsertest.cc index fc4c1235..0d7816e1 100644 --- a/chrome/browser/page_load_metrics/integration_tests/event_counts_browsertest.cc +++ b/chrome/browser/page_load_metrics/integration_tests/event_counts_browsertest.cc
@@ -9,18 +9,12 @@ #include "content/public/test/browser_test_utils.h" #if defined(USE_AURA) -// TODO(crbug.com/1311383) Fix flakiness and reenable the test. -#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS) -#define MAYBE_EventCounts DISABLED_EventCounts -#else -#define MAYBE_EventCounts EventCounts -#endif -IN_PROC_BROWSER_TEST_F(MetricIntegrationTest, MAYBE_EventCounts) { +IN_PROC_BROWSER_TEST_F(MetricIntegrationTest, EventCounts) { LoadHTML(R"HTML( <p>Sample website</p> <script type="text/javascript"> window.eventCounts = - {mousedown: 0, touchstart: 0, pointerdown: 0, click: 0}; + {mouseup: 0, touchend: 0, pointerup: 0, click: 0}; function recordEvent(e) { eventCounts[e.type]++; } @@ -44,8 +38,9 @@ content::SimulateMouseClick(web_contents(), 0, blink::WebMouseEvent::Button::kLeft); - while (EvalJs(web_contents(), "window.eventCounts.mousedown").ExtractInt() < - 3) { + while (EvalJs(web_contents(), "window.eventCounts.click").ExtractInt() < 3 && + EvalJs(web_contents(), "window.eventCounts.pointerup").ExtractInt() < + 3) { base::RunLoop run_loop; base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( FROM_HERE, run_loop.QuitClosure(), base::Milliseconds(100));
diff --git a/chrome/browser/page_load_metrics/observers/prefetch_proxy_page_load_metrics_observer.cc b/chrome/browser/page_load_metrics/observers/prefetch_proxy_page_load_metrics_observer.cc index 4944fba..654a5bc 100644 --- a/chrome/browser/page_load_metrics/observers/prefetch_proxy_page_load_metrics_observer.cc +++ b/chrome/browser/page_load_metrics/observers/prefetch_proxy_page_load_metrics_observer.cc
@@ -33,8 +33,6 @@ // ) const double kDaysSinceLastVisitBucketSpacing = 1.7; -const size_t kUkmCssJsBeforeFcpMax = 10; - bool IsCSSOrJS(const std::string& mime_type) { std::string lower_mime_type = base::ToLowerASCII(mime_type); return lower_mime_type == "text/css" || @@ -183,16 +181,6 @@ if (!IsCSSOrJS(resource->mime_type)) continue; - - if (!resource->completed_before_fcp) - continue; - - if (resource->cache_type == - page_load_metrics::mojom::CacheType::kNotCached) { - loaded_css_js_from_network_before_fcp_++; - } else { - loaded_css_js_from_cache_before_fcp_++; - } } } @@ -215,13 +203,6 @@ } } - LOCAL_HISTOGRAM_COUNTS_100( - "PageLoad.Clients.SubresourceLoading.LoadedCSSJSBeforeFCP.Cached", - loaded_css_js_from_cache_before_fcp_); - LOCAL_HISTOGRAM_COUNTS_100( - "PageLoad.Clients.SubresourceLoading.LoadedCSSJSBeforeFCP.Noncached", - loaded_css_js_from_network_before_fcp_); - RecordPrefetchProxyEvent(); RecordAfterSRPEvent(); } @@ -243,19 +224,7 @@ } } - int ukm_loaded_css_js_from_cache_before_fcp = - std::min(kUkmCssJsBeforeFcpMax, loaded_css_js_from_cache_before_fcp_); - builder.Setcount_css_js_loaded_cache_before_fcp( - ukm_loaded_css_js_from_cache_before_fcp); - - int ukm_loaded_css_js_from_network_before_fcp = - std::min(kUkmCssJsBeforeFcpMax, loaded_css_js_from_network_before_fcp_); - builder.Setcount_css_js_loaded_network_before_fcp( - ukm_loaded_css_js_from_network_before_fcp); - if (srp_metrics_ && srp_metrics_->predicted_urls_count_ > 0) { - builder.Setordered_eligible_pages_bitmask( - srp_metrics_->ordered_eligible_pages_bitmask_); builder.Setprefetch_eligible_count(srp_metrics_->prefetch_eligible_count_); builder.Setprefetch_attempted_count( srp_metrics_->prefetch_attempted_count_);
diff --git a/chrome/browser/page_load_metrics/observers/prefetch_proxy_page_load_metrics_observer.h b/chrome/browser/page_load_metrics/observers/prefetch_proxy_page_load_metrics_observer.h index 73f20bb..6be5600 100644 --- a/chrome/browser/page_load_metrics/observers/prefetch_proxy_page_load_metrics_observer.h +++ b/chrome/browser/page_load_metrics/observers/prefetch_proxy_page_load_metrics_observer.h
@@ -81,9 +81,6 @@ // query on commit. base::Time navigation_start_; - size_t loaded_css_js_from_cache_before_fcp_ = 0; - size_t loaded_css_js_from_network_before_fcp_ = 0; - // The minimum number of days since the last visit, as reported by // HistoryService, to any origin in the redirect chain. Set to -1 if there is // a response from the history service but was no previous visit.
diff --git a/chrome/browser/page_load_metrics/observers/prefetch_proxy_page_load_metrics_observer_browsertest.cc b/chrome/browser/page_load_metrics/observers/prefetch_proxy_page_load_metrics_observer_browsertest.cc index 6962d6c..18b1f9e0 100644 --- a/chrome/browser/page_load_metrics/observers/prefetch_proxy_page_load_metrics_observer_browsertest.cc +++ b/chrome/browser/page_load_metrics/observers/prefetch_proxy_page_load_metrics_observer_browsertest.cc
@@ -96,17 +96,6 @@ std::unique_ptr<ukm::TestAutoSetUkmRecorder> ukm_recorder_; }; -IN_PROC_BROWSER_TEST_F(PrefetchProxyPageLoadMetricsObserverBrowserTest, - BeforeFCPPlumbing) { - base::HistogramTester histogram_tester; - NavigateToOriginPath("/index.html"); - NavigateAway(); - - histogram_tester.ExpectUniqueSample( - "PageLoad.Clients.SubresourceLoading.LoadedCSSJSBeforeFCP.Noncached", 2, - 1); -} - // TODO(http://crbug.com/1025737) Flaky on Mac. #if BUILDFLAG(IS_MAC) #define MAYBE_HistoryPlumbing DISABLED_HistoryPlumbing @@ -147,10 +136,6 @@ "PageLoad.Clients.SubresourceLoading.DaysSinceLastVisitToOrigin", 0); histogram_tester.ExpectTotalCount( "PageLoad.Clients.SubresourceLoading.HasPreviousVisitToOrigin", 0); - histogram_tester.ExpectTotalCount( - "PageLoad.Clients.SubresourceLoading.LoadedCSSJSBeforeFCP.Cached", 0); - histogram_tester.ExpectTotalCount( - "PageLoad.Clients.SubresourceLoading.LoadedCSSJSBeforeFCP.Noncached", 0); } class PrefetchProxyPageLoadMetricsObserverPrerenderBrowserTest @@ -203,16 +188,8 @@ content::test::PrerenderHostObserver host_observer(*GetWebContents(), host_id); EXPECT_FALSE(host_observer.was_activated()); - histogram_tester.ExpectTotalCount( - "PageLoad.Clients.SubresourceLoading.LoadedCSSJSBeforeFCP.Cached", 0); - histogram_tester.ExpectTotalCount( - "PageLoad.Clients.SubresourceLoading.LoadedCSSJSBeforeFCP.Noncached", 0); // Activate the prerender page. prerender_test_helper().NavigatePrimaryPage(prerender_url); EXPECT_TRUE(host_observer.was_activated()); - histogram_tester.ExpectTotalCount( - "PageLoad.Clients.SubresourceLoading.LoadedCSSJSBeforeFCP.Cached", 1); - histogram_tester.ExpectTotalCount( - "PageLoad.Clients.SubresourceLoading.LoadedCSSJSBeforeFCP.Noncached", 1); }
diff --git a/chrome/browser/page_load_metrics/observers/prefetch_proxy_page_load_metrics_observer_unittest.cc b/chrome/browser/page_load_metrics/observers/prefetch_proxy_page_load_metrics_observer_unittest.cc index 25109a787..8c4bdf6 100644 --- a/chrome/browser/page_load_metrics/observers/prefetch_proxy_page_load_metrics_observer_unittest.cc +++ b/chrome/browser/page_load_metrics/observers/prefetch_proxy_page_load_metrics_observer_unittest.cc
@@ -16,18 +16,6 @@ #include "services/metrics/public/cpp/ukm_builders.h" #include "services/metrics/public/cpp/ukm_source.h" -namespace { - -page_load_metrics::mojom::ResourceDataUpdatePtr CreateBaseResource( - bool was_cached, - bool is_complete) { - return CreateResource(was_cached, 1234 /* delta_bytes */, - 1234 /* encoded_body_length */, - 1234 /* decoded_body_length */, is_complete); -} - -} // namespace - class TestPrefetchProxyPageLoadMetricsObserver : public PrefetchProxyPageLoadMetricsObserver { public: @@ -85,42 +73,6 @@ EXPECT_EQ(*value, expected_value.value()); } - page_load_metrics::mojom::ResourceDataUpdatePtr CreateCSSResource( - bool was_cached, - bool is_complete, - bool completed_before_fcp) { - page_load_metrics::mojom::ResourceDataUpdatePtr update = - CreateBaseResource(was_cached, is_complete); - update->mime_type = "text/css"; - update->is_main_frame_resource = in_main_frame_; - update->completed_before_fcp = completed_before_fcp; - return update; - } - - page_load_metrics::mojom::ResourceDataUpdatePtr CreateJSResource( - bool was_cached, - bool is_complete, - bool completed_before_fcp) { - page_load_metrics::mojom::ResourceDataUpdatePtr update = - CreateBaseResource(was_cached, is_complete); - update->mime_type = "text/javascript"; - update->is_main_frame_resource = in_main_frame_; - update->completed_before_fcp = completed_before_fcp; - return update; - } - - page_load_metrics::mojom::ResourceDataUpdatePtr CreateOtherResource( - bool was_cached, - bool is_complete, - bool completed_before_fcp) { - page_load_metrics::mojom::ResourceDataUpdatePtr update = - CreateBaseResource(was_cached, is_complete); - update->mime_type = "other"; - update->is_main_frame_resource = in_main_frame_; - update->completed_before_fcp = completed_before_fcp; - return update; - } - protected: void RegisterObservers(page_load_metrics::PageLoadTracker* tracker) override { std::unique_ptr<TestPrefetchProxyPageLoadMetricsObserver> observer = @@ -152,300 +104,13 @@ bool in_main_frame_ = true; }; -TEST_F(PrefetchProxyPageLoadMetricsObserverTest, BeforeFCP_CSS) { - StartTest(); - - std::vector<page_load_metrics::mojom::ResourceDataUpdatePtr> resources; - resources.push_back(CreateCSSResource(true /* was_cached */, - true /* is_complete */, - true /* completed_before_fcp */)); - resources.push_back(CreateCSSResource(true /* was_cached */, - true /* is_complete */, - true /* completed_before_fcp */)); - resources.push_back(CreateCSSResource(true /* was_cached */, - true /* is_complete */, - true /* completed_before_fcp */)); - - resources.push_back(CreateCSSResource(false /* was_cached */, - true /* is_complete */, - true /* completed_before_fcp */)); - resources.push_back(CreateCSSResource(false /* was_cached */, - true /* is_complete */, - true /* completed_before_fcp */)); - - tester()->SimulateResourceDataUseUpdate(resources); - tester()->NavigateToUntrackedUrl(); - - tester()->histogram_tester().ExpectUniqueSample( - "PageLoad.Clients.SubresourceLoading.LoadedCSSJSBeforeFCP.Noncached", 2, - 1); - tester()->histogram_tester().ExpectUniqueSample( - "PageLoad.Clients.SubresourceLoading.LoadedCSSJSBeforeFCP.Cached", 3, 1); - - using UkmEntry = ukm::builders::PrefetchProxy; - VerifyUKMEntry(UkmEntry::kcount_css_js_loaded_network_before_fcpName, 2); - VerifyUKMEntry(UkmEntry::kcount_css_js_loaded_cache_before_fcpName, 3); -} - -TEST_F(PrefetchProxyPageLoadMetricsObserverTest, BeforeFCP_JS) { - StartTest(); - - std::vector<page_load_metrics::mojom::ResourceDataUpdatePtr> resources; - resources.push_back(CreateJSResource(true /* was_cached */, - true /* is_complete */, - true /* completed_before_fcp */)); - resources.push_back(CreateJSResource(true /* was_cached */, - true /* is_complete */, - true /* completed_before_fcp */)); - resources.push_back(CreateJSResource(true /* was_cached */, - true /* is_complete */, - true /* completed_before_fcp */)); - - resources.push_back(CreateJSResource(false /* was_cached */, - true /* is_complete */, - true /* completed_before_fcp */)); - resources.push_back(CreateJSResource(false /* was_cached */, - true /* is_complete */, - true /* completed_before_fcp */)); - - tester()->SimulateResourceDataUseUpdate(resources); - tester()->NavigateToUntrackedUrl(); - - tester()->histogram_tester().ExpectUniqueSample( - "PageLoad.Clients.SubresourceLoading.LoadedCSSJSBeforeFCP.Noncached", 2, - 1); - tester()->histogram_tester().ExpectUniqueSample( - "PageLoad.Clients.SubresourceLoading.LoadedCSSJSBeforeFCP.Cached", 3, 1); - - using UkmEntry = ukm::builders::PrefetchProxy; - VerifyUKMEntry(UkmEntry::kcount_css_js_loaded_network_before_fcpName, 2); - VerifyUKMEntry(UkmEntry::kcount_css_js_loaded_cache_before_fcpName, 3); -} - -TEST_F(PrefetchProxyPageLoadMetricsObserverTest, BeforeFCP_Other) { - StartTest(); - - std::vector<page_load_metrics::mojom::ResourceDataUpdatePtr> resources; - resources.push_back(CreateOtherResource(true /* was_cached */, - true /* is_complete */, - true /* completed_before_fcp */)); - resources.push_back(CreateOtherResource(true /* was_cached */, - true /* is_complete */, - true /* completed_before_fcp */)); - resources.push_back(CreateOtherResource(true /* was_cached */, - true /* is_complete */, - true /* completed_before_fcp */)); - - resources.push_back(CreateOtherResource(false /* was_cached */, - true /* is_complete */, - true /* completed_before_fcp */)); - resources.push_back(CreateOtherResource(false /* was_cached */, - true /* is_complete */, - true /* completed_before_fcp */)); - - tester()->SimulateResourceDataUseUpdate(resources); - tester()->NavigateToUntrackedUrl(); - - tester()->histogram_tester().ExpectUniqueSample( - "PageLoad.Clients.SubresourceLoading.LoadedCSSJSBeforeFCP.Noncached", 0, - 1); - tester()->histogram_tester().ExpectUniqueSample( - "PageLoad.Clients.SubresourceLoading.LoadedCSSJSBeforeFCP.Cached", 0, 1); - - using UkmEntry = ukm::builders::PrefetchProxy; - VerifyUKMEntry(UkmEntry::kcount_css_js_loaded_network_before_fcpName, 0); - VerifyUKMEntry(UkmEntry::kcount_css_js_loaded_cache_before_fcpName, 0); -} - -TEST_F(PrefetchProxyPageLoadMetricsObserverTest, BeforeFCP_NotComplete) { - StartTest(); - - std::vector<page_load_metrics::mojom::ResourceDataUpdatePtr> resources; - resources.push_back(CreateCSSResource(true /* was_cached */, - false /* is_complete */, - false /* completed_before_fcp */)); - resources.push_back(CreateCSSResource(true /* was_cached */, - false /* is_complete */, - false /* completed_before_fcp */)); - resources.push_back(CreateCSSResource(true /* was_cached */, - false /* is_complete */, - false /* completed_before_fcp */)); - - resources.push_back(CreateCSSResource(false /* was_cached */, - false /* is_complete */, - false /* completed_before_fcp */)); - resources.push_back(CreateCSSResource(false /* was_cached */, - false /* is_complete */, - false /* completed_before_fcp */)); - - tester()->SimulateResourceDataUseUpdate(resources); - tester()->NavigateToUntrackedUrl(); - - tester()->histogram_tester().ExpectUniqueSample( - "PageLoad.Clients.SubresourceLoading.LoadedCSSJSBeforeFCP.Noncached", 0, - 1); - tester()->histogram_tester().ExpectUniqueSample( - "PageLoad.Clients.SubresourceLoading.LoadedCSSJSBeforeFCP.Cached", 0, 1); - - using UkmEntry = ukm::builders::PrefetchProxy; - VerifyUKMEntry(UkmEntry::kcount_css_js_loaded_network_before_fcpName, 0); - VerifyUKMEntry(UkmEntry::kcount_css_js_loaded_cache_before_fcpName, 0); -} - -TEST_F(PrefetchProxyPageLoadMetricsObserverTest, BeforeFCP_Subframe) { - StartTest(); - set_in_main_frame(false); - - std::vector<page_load_metrics::mojom::ResourceDataUpdatePtr> resources; - resources.push_back(CreateCSSResource(true /* was_cached */, - true /* is_complete */, - true /* completed_before_fcp */)); - resources.push_back(CreateCSSResource(true /* was_cached */, - true /* is_complete */, - true /* completed_before_fcp */)); - resources.push_back(CreateCSSResource(true /* was_cached */, - true /* is_complete */, - true /* completed_before_fcp */)); - - resources.push_back(CreateCSSResource(false /* was_cached */, - true /* is_complete */, - true /* completed_before_fcp */)); - resources.push_back(CreateCSSResource(false /* was_cached */, - true /* is_complete */, - true /* completed_before_fcp */)); - - tester()->SimulateResourceDataUseUpdate(resources); - tester()->NavigateToUntrackedUrl(); - - tester()->histogram_tester().ExpectUniqueSample( - "PageLoad.Clients.SubresourceLoading.LoadedCSSJSBeforeFCP.Noncached", 0, - 1); - tester()->histogram_tester().ExpectUniqueSample( - "PageLoad.Clients.SubresourceLoading.LoadedCSSJSBeforeFCP.Cached", 0, 1); - - using UkmEntry = ukm::builders::PrefetchProxy; - VerifyUKMEntry(UkmEntry::kcount_css_js_loaded_network_before_fcpName, 0); - VerifyUKMEntry(UkmEntry::kcount_css_js_loaded_cache_before_fcpName, 0); -} - -TEST_F(PrefetchProxyPageLoadMetricsObserverTest, AfterFCP) { - StartTest(); - - std::vector<page_load_metrics::mojom::ResourceDataUpdatePtr> resources; - resources.push_back(CreateCSSResource(true /* was_cached */, - true /* is_complete */, - false /* completed_before_fcp */)); - resources.push_back(CreateCSSResource(true /* was_cached */, - true /* is_complete */, - false /* completed_before_fcp */)); - resources.push_back(CreateCSSResource(true /* was_cached */, - true /* is_complete */, - false /* completed_before_fcp */)); - - resources.push_back(CreateCSSResource(false /* was_cached */, - true /* is_complete */, - false /* completed_before_fcp */)); - resources.push_back(CreateCSSResource(false /* was_cached */, - true /* is_complete */, - false /* completed_before_fcp */)); - - tester()->SimulateResourceDataUseUpdate(resources); - tester()->NavigateToUntrackedUrl(); - - tester()->histogram_tester().ExpectUniqueSample( - "PageLoad.Clients.SubresourceLoading.LoadedCSSJSBeforeFCP.Noncached", 0, - 1); - tester()->histogram_tester().ExpectUniqueSample( - "PageLoad.Clients.SubresourceLoading.LoadedCSSJSBeforeFCP.Cached", 0, 1); - - using UkmEntry = ukm::builders::PrefetchProxy; - VerifyUKMEntry(UkmEntry::kcount_css_js_loaded_network_before_fcpName, 0); - VerifyUKMEntry(UkmEntry::kcount_css_js_loaded_cache_before_fcpName, 0); -} - -TEST_F(PrefetchProxyPageLoadMetricsObserverTest, BeforeFCP_MaxUKM) { - StartTest(); - - std::vector<page_load_metrics::mojom::ResourceDataUpdatePtr> resources; - resources.push_back(CreateCSSResource(true /* was_cached */, - true /* is_complete */, - true /* completed_before_fcp */)); - resources.push_back(CreateCSSResource(true /* was_cached */, - true /* is_complete */, - true /* completed_before_fcp */)); - resources.push_back(CreateCSSResource(true /* was_cached */, - true /* is_complete */, - true /* completed_before_fcp */)); - resources.push_back(CreateCSSResource(true /* was_cached */, - true /* is_complete */, - true /* completed_before_fcp */)); - resources.push_back(CreateCSSResource(true /* was_cached */, - true /* is_complete */, - true /* completed_before_fcp */)); - resources.push_back(CreateCSSResource(true /* was_cached */, - true /* is_complete */, - true /* completed_before_fcp */)); - resources.push_back(CreateCSSResource(true /* was_cached */, - true /* is_complete */, - true /* completed_before_fcp */)); - resources.push_back(CreateCSSResource(true /* was_cached */, - true /* is_complete */, - true /* completed_before_fcp */)); - resources.push_back(CreateCSSResource(true /* was_cached */, - true /* is_complete */, - true /* completed_before_fcp */)); - resources.push_back(CreateCSSResource(true /* was_cached */, - true /* is_complete */, - true /* completed_before_fcp */)); - resources.push_back(CreateCSSResource(true /* was_cached */, - true /* is_complete */, - true /* completed_before_fcp */)); - - tester()->SimulateResourceDataUseUpdate(resources); - tester()->NavigateToUntrackedUrl(); - - tester()->histogram_tester().ExpectUniqueSample( - "PageLoad.Clients.SubresourceLoading.LoadedCSSJSBeforeFCP.Noncached", 0, - 1); - tester()->histogram_tester().ExpectUniqueSample( - "PageLoad.Clients.SubresourceLoading.LoadedCSSJSBeforeFCP.Cached", 11, 1); - - using UkmEntry = ukm::builders::PrefetchProxy; - VerifyUKMEntry(UkmEntry::kcount_css_js_loaded_network_before_fcpName, 0); - VerifyUKMEntry(UkmEntry::kcount_css_js_loaded_cache_before_fcpName, 10); -} - TEST_F(PrefetchProxyPageLoadMetricsObserverTest, DontRecordForNonHttp) { set_navigation_url(GURL("chrome://version")); StartTest(); - std::vector<page_load_metrics::mojom::ResourceDataUpdatePtr> resources; - resources.push_back(CreateCSSResource(true /* was_cached */, - true /* is_complete */, - true /* completed_before_fcp */)); - resources.push_back(CreateCSSResource(true /* was_cached */, - true /* is_complete */, - true /* completed_before_fcp */)); - resources.push_back(CreateCSSResource(true /* was_cached */, - true /* is_complete */, - true /* completed_before_fcp */)); - - resources.push_back(CreateCSSResource(false /* was_cached */, - true /* is_complete */, - true /* completed_before_fcp */)); - resources.push_back(CreateCSSResource(false /* was_cached */, - true /* is_complete */, - true /* completed_before_fcp */)); - - tester()->SimulateResourceDataUseUpdate(resources); tester()->NavigateToUntrackedUrl(); - tester()->histogram_tester().ExpectTotalCount( - "PageLoad.Clients.SubresourceLoading.LoadedCSSJSBeforeFCP.Noncached", 0); - tester()->histogram_tester().ExpectTotalCount( - "PageLoad.Clients.SubresourceLoading.LoadedCSSJSBeforeFCP.Cached", 0); - VerifyNoUKM(); }
diff --git a/chrome/browser/policy/serial_allow_usb_devices_for_urls_policy_handler_unittest.cc b/chrome/browser/policy/serial_allow_usb_devices_for_urls_policy_handler_unittest.cc index e2245fba..a12a8504 100644 --- a/chrome/browser/policy/serial_allow_usb_devices_for_urls_policy_handler_unittest.cc +++ b/chrome/browser/policy/serial_allow_usb_devices_for_urls_policy_handler_unittest.cc
@@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "base/json/json_reader.h" #include "base/memory/raw_ptr.h" +#include "base/test/values_test_util.h" #include "chrome/common/pref_names.h" #include "components/content_settings/core/common/pref_names.h" #include "components/policy/core/browser/configuration_policy_handler.h" @@ -20,11 +20,7 @@ namespace { -absl::optional<base::Value> ReadJson(base::StringPiece json) { - auto result = base::JSONReader::ReadAndReturnValueWithError(json); - EXPECT_TRUE(result.value) << result.error_message; - return std::move(result.value); -} +using ::base::test::ParseJson; } // namespace @@ -81,7 +77,7 @@ policy.Set(key::kSerialAllowUsbDevicesForUrls, PolicyLevel::POLICY_LEVEL_MANDATORY, PolicyScope::POLICY_SCOPE_MACHINE, - PolicySource::POLICY_SOURCE_CLOUD, ReadJson(kPolicy), nullptr); + PolicySource::POLICY_SOURCE_CLOUD, ParseJson(kPolicy), nullptr); PolicyErrorMap errors; EXPECT_TRUE(handler()->CheckPolicySettings(policy, &errors)); @@ -141,7 +137,7 @@ policy.Set(key::kSerialAllowUsbDevicesForUrls, PolicyLevel::POLICY_LEVEL_MANDATORY, PolicyScope::POLICY_SCOPE_MACHINE, - PolicySource::POLICY_SOURCE_CLOUD, ReadJson(kPolicy), nullptr); + PolicySource::POLICY_SOURCE_CLOUD, ParseJson(kPolicy), nullptr); PolicyErrorMap errors; EXPECT_FALSE(handler()->CheckPolicySettings(policy, &errors)); @@ -179,7 +175,7 @@ policy.Set(key::kSerialAllowUsbDevicesForUrls, PolicyLevel::POLICY_LEVEL_MANDATORY, PolicyScope::POLICY_SCOPE_MACHINE, - PolicySource::POLICY_SOURCE_CLOUD, ReadJson(kPolicy), nullptr); + PolicySource::POLICY_SOURCE_CLOUD, ParseJson(kPolicy), nullptr); PolicyErrorMap errors; EXPECT_FALSE(handler()->CheckPolicySettings(policy, &errors)); @@ -215,7 +211,7 @@ policy.Set(key::kSerialAllowUsbDevicesForUrls, PolicyLevel::POLICY_LEVEL_MANDATORY, PolicyScope::POLICY_SCOPE_MACHINE, - PolicySource::POLICY_SOURCE_CLOUD, ReadJson(kPolicy), nullptr); + PolicySource::POLICY_SOURCE_CLOUD, ParseJson(kPolicy), nullptr); PolicyErrorMap errors; EXPECT_FALSE(handler()->CheckPolicySettings(policy, &errors)); @@ -258,7 +254,7 @@ policy.Set(key::kSerialAllowUsbDevicesForUrls, PolicyLevel::POLICY_LEVEL_MANDATORY, PolicyScope::POLICY_SCOPE_MACHINE, - PolicySource::POLICY_SOURCE_CLOUD, ReadJson(kPolicy), nullptr); + PolicySource::POLICY_SOURCE_CLOUD, ParseJson(kPolicy), nullptr); PolicyErrorMap errors; EXPECT_FALSE(handler()->CheckPolicySettings(policy, &errors)); @@ -294,7 +290,7 @@ policy.Set(key::kSerialAllowUsbDevicesForUrls, PolicyLevel::POLICY_LEVEL_MANDATORY, PolicyScope::POLICY_SCOPE_MACHINE, - PolicySource::POLICY_SOURCE_CLOUD, ReadJson(kPolicy), nullptr); + PolicySource::POLICY_SOURCE_CLOUD, ParseJson(kPolicy), nullptr); PolicyErrorMap errors; EXPECT_FALSE(handler()->CheckPolicySettings(policy, &errors)); @@ -330,7 +326,7 @@ policy.Set(key::kSerialAllowUsbDevicesForUrls, PolicyLevel::POLICY_LEVEL_MANDATORY, PolicyScope::POLICY_SCOPE_MACHINE, - PolicySource::POLICY_SOURCE_CLOUD, ReadJson(kPolicy), nullptr); + PolicySource::POLICY_SOURCE_CLOUD, ParseJson(kPolicy), nullptr); PolicyErrorMap errors; EXPECT_FALSE(handler()->CheckPolicySettings(policy, &errors)); @@ -367,7 +363,7 @@ policy.Set(key::kSerialAllowUsbDevicesForUrls, PolicyLevel::POLICY_LEVEL_MANDATORY, PolicyScope::POLICY_SCOPE_MACHINE, - PolicySource::POLICY_SOURCE_CLOUD, ReadJson(kPolicy), nullptr); + PolicySource::POLICY_SOURCE_CLOUD, ParseJson(kPolicy), nullptr); PolicyErrorMap errors; EXPECT_FALSE(handler()->CheckPolicySettings(policy, &errors)); @@ -408,7 +404,7 @@ policy.Set(key::kSerialAllowUsbDevicesForUrls, PolicyLevel::POLICY_LEVEL_MANDATORY, PolicyScope::POLICY_SCOPE_MACHINE, - PolicySource::POLICY_SOURCE_CLOUD, ReadJson(kPolicy), nullptr); + PolicySource::POLICY_SOURCE_CLOUD, ParseJson(kPolicy), nullptr); PolicyErrorMap errors; EXPECT_FALSE(handler()->CheckPolicySettings(policy, &errors)); @@ -449,7 +445,7 @@ policy.Set(key::kSerialAllowUsbDevicesForUrls, PolicyLevel::POLICY_LEVEL_MANDATORY, PolicyScope::POLICY_SCOPE_MACHINE, - PolicySource::POLICY_SOURCE_CLOUD, ReadJson(kPolicy), nullptr); + PolicySource::POLICY_SOURCE_CLOUD, ParseJson(kPolicy), nullptr); PolicyErrorMap errors; EXPECT_FALSE(handler()->CheckPolicySettings(policy, &errors));
diff --git a/chrome/browser/policy/webhid_device_policy_handler_unittest.cc b/chrome/browser/policy/webhid_device_policy_handler_unittest.cc index f43b781..597a5f6 100644 --- a/chrome/browser/policy/webhid_device_policy_handler_unittest.cc +++ b/chrome/browser/policy/webhid_device_policy_handler_unittest.cc
@@ -7,8 +7,8 @@ #include <memory> #include <utility> -#include "base/json/json_reader.h" #include "base/strings/string_util.h" +#include "base/test/values_test_util.h" #include "chrome/common/pref_names.h" #include "components/policy/core/browser/configuration_policy_pref_store.h" #include "components/policy/core/browser/configuration_policy_pref_store_test.h" @@ -22,6 +22,8 @@ namespace { +using ::base::test::IsJson; +using ::base::test::ParseJson; using ::testing::WithParamInterface; constexpr char kDevicesKey[] = "devices"; @@ -32,12 +34,6 @@ constexpr char kUsagePageKey[] = "usage_page"; constexpr char kUsageKey[] = "usage"; -absl::optional<base::Value> ReadJson(base::StringPiece json) { - auto result = base::JSONReader::ReadAndReturnValueWithError(json); - EXPECT_TRUE(result.value) << result.error_message; - return std::move(result.value); -} - } // namespace class WebHidDevicePolicyHandlerTest : public ConfigurationPolicyPrefStoreTest { @@ -160,7 +156,7 @@ policy.Set( key::kWebHidAllowDevicesForUrls, PolicyLevel::POLICY_LEVEL_MANDATORY, PolicyScope::POLICY_SCOPE_MACHINE, PolicySource::POLICY_SOURCE_CLOUD, - ReadJson(kAllowDevicesForUrls), /*external_data_fetcher=*/nullptr); + ParseJson(kAllowDevicesForUrls), /*external_data_fetcher=*/nullptr); ASSERT_TRUE(errors.empty()); EXPECT_TRUE(handler->CheckPolicySettings(policy, &errors)); EXPECT_TRUE(errors.empty()); @@ -175,7 +171,7 @@ PolicyLevel::POLICY_LEVEL_MANDATORY, PolicyScope::POLICY_SCOPE_MACHINE, PolicySource::POLICY_SOURCE_CLOUD, - ReadJson(kAllowDevicesWithHidUsagesForUrls), + ParseJson(kAllowDevicesWithHidUsagesForUrls), /*external_data_fetcher=*/nullptr); ASSERT_TRUE(errors.empty()); EXPECT_TRUE(handler->CheckPolicySettings(policy, &errors)); @@ -191,7 +187,7 @@ policy.Set( key::kWebHidAllowDevicesForUrls, PolicyLevel::POLICY_LEVEL_MANDATORY, PolicyScope::POLICY_SCOPE_MACHINE, PolicySource::POLICY_SOURCE_CLOUD, - ReadJson(kAllowDevicesForUrls), nullptr); + ParseJson(kAllowDevicesForUrls), nullptr); UpdateProviderPolicy(policy); const base::Value* pref_value = nullptr; @@ -265,7 +261,7 @@ PolicyLevel::POLICY_LEVEL_MANDATORY, PolicyScope::POLICY_SCOPE_MACHINE, PolicySource::POLICY_SOURCE_CLOUD, - ReadJson(kAllowDevicesWithHidUsagesForUrls), nullptr); + ParseJson(kAllowDevicesWithHidUsagesForUrls), nullptr); UpdateProviderPolicy(policy); const base::Value* pref_value = nullptr; @@ -348,7 +344,7 @@ PolicyMap policy; policy.Set(test_data.policy_name, PolicyLevel::POLICY_LEVEL_MANDATORY, PolicyScope::POLICY_SCOPE_MACHINE, - PolicySource::POLICY_SOURCE_CLOUD, ReadJson(test_data.policy), + PolicySource::POLICY_SOURCE_CLOUD, ParseJson(test_data.policy), /*external_data_fetcher=*/nullptr); // Try CheckPolicySettings with the invalid policy. It returns success if the @@ -368,10 +364,7 @@ const base::Value* pref_value = nullptr; EXPECT_TRUE(store_->GetValue(test_data.pref_name, &pref_value)); ASSERT_TRUE(pref_value); - absl::optional<base::Value> expected_pref_value = - ReadJson(test_data.expected_pref); - ASSERT_TRUE(expected_pref_value); - EXPECT_EQ(*expected_pref_value, *pref_value); + EXPECT_THAT(*pref_value, IsJson(test_data.expected_pref)); } else { EXPECT_FALSE(store_->GetValue(test_data.pref_name, /*result=*/nullptr)); }
diff --git a/chrome/browser/policy/webusb_allow_devices_for_urls_policy_handler_unittest.cc b/chrome/browser/policy/webusb_allow_devices_for_urls_policy_handler_unittest.cc index 69021a6..0585a31c 100644 --- a/chrome/browser/policy/webusb_allow_devices_for_urls_policy_handler_unittest.cc +++ b/chrome/browser/policy/webusb_allow_devices_for_urls_policy_handler_unittest.cc
@@ -7,10 +7,10 @@ #include <memory> #include <utility> -#include "base/json/json_reader.h" #include "base/memory/raw_ptr.h" #include "base/strings/string_util.h" #include "base/strings/utf_string_conversions.h" +#include "base/test/values_test_util.h" #include "components/content_settings/core/common/pref_names.h" #include "components/policy/core/browser/configuration_policy_pref_store.h" #include "components/policy/core/browser/configuration_policy_pref_store_test.h" @@ -24,6 +24,9 @@ namespace { +using ::base::test::IsJson; +using ::base::test::ParseJson; + constexpr char kDevicesKey[] = "devices"; constexpr char kUrlsKey[] = "urls"; constexpr char kVendorIdKey[] = "vendor_id"; @@ -204,12 +207,6 @@ } ])"; -absl::optional<base::Value> ReadJson(base::StringPiece json) { - auto result = base::JSONReader::ReadAndReturnValueWithError(json); - EXPECT_TRUE(result.value) << result.error_message; - return std::move(result.value); -} - } // namespace class WebUsbAllowDevicesForUrlsPolicyHandlerTest @@ -243,7 +240,7 @@ policy.Set( key::kWebUsbAllowDevicesForUrls, PolicyLevel::POLICY_LEVEL_MANDATORY, PolicyScope::POLICY_SCOPE_MACHINE, PolicySource::POLICY_SOURCE_CLOUD, - ReadJson(kValidPolicy), nullptr); + ParseJson(kValidPolicy), nullptr); ASSERT_TRUE(errors.empty()); EXPECT_TRUE(handler()->CheckPolicySettings(policy, &errors)); EXPECT_TRUE(errors.empty()); @@ -257,7 +254,7 @@ policy.Set( key::kWebUsbAllowDevicesForUrls, PolicyLevel::POLICY_LEVEL_MANDATORY, PolicyScope::POLICY_SCOPE_MACHINE, PolicySource::POLICY_SOURCE_CLOUD, - ReadJson(kInvalidPolicyInvalidTopLevelEntry), nullptr); + ParseJson(kInvalidPolicyInvalidTopLevelEntry), nullptr); ASSERT_TRUE(errors.empty()); EXPECT_FALSE(handler()->CheckPolicySettings(policy, &errors)); @@ -277,7 +274,7 @@ policy.Set( key::kWebUsbAllowDevicesForUrls, PolicyLevel::POLICY_LEVEL_MANDATORY, PolicyScope::POLICY_SCOPE_MACHINE, PolicySource::POLICY_SOURCE_CLOUD, - ReadJson(kInvalidPolicyMissingDevicesProperty), nullptr); + ParseJson(kInvalidPolicyMissingDevicesProperty), nullptr); ASSERT_TRUE(errors.empty()); EXPECT_FALSE(handler()->CheckPolicySettings(policy, &errors)); @@ -297,7 +294,7 @@ policy.Set( key::kWebUsbAllowDevicesForUrls, PolicyLevel::POLICY_LEVEL_MANDATORY, PolicyScope::POLICY_SCOPE_MACHINE, PolicySource::POLICY_SOURCE_CLOUD, - ReadJson(kInvalidPolicyMissingUrlsProperty), nullptr); + ParseJson(kInvalidPolicyMissingUrlsProperty), nullptr); ASSERT_TRUE(errors.empty()); EXPECT_FALSE(handler()->CheckPolicySettings(policy, &errors)); @@ -317,7 +314,7 @@ policy.Set( key::kWebUsbAllowDevicesForUrls, PolicyLevel::POLICY_LEVEL_MANDATORY, PolicyScope::POLICY_SCOPE_MACHINE, PolicySource::POLICY_SOURCE_CLOUD, - ReadJson(kInvalidPolicyUnknownProperty), nullptr); + ParseJson(kInvalidPolicyUnknownProperty), nullptr); ASSERT_TRUE(errors.empty()); EXPECT_TRUE(handler()->CheckPolicySettings(policy, &errors)); @@ -337,7 +334,7 @@ policy.Set( key::kWebUsbAllowDevicesForUrls, PolicyLevel::POLICY_LEVEL_MANDATORY, PolicyScope::POLICY_SCOPE_MACHINE, PolicySource::POLICY_SOURCE_CLOUD, - ReadJson(kInvalidPolicyMismatchedVendorIdType), nullptr); + ParseJson(kInvalidPolicyMismatchedVendorIdType), nullptr); ASSERT_TRUE(errors.empty()); EXPECT_FALSE(handler()->CheckPolicySettings(policy, &errors)); @@ -357,7 +354,7 @@ policy.Set( key::kWebUsbAllowDevicesForUrls, PolicyLevel::POLICY_LEVEL_MANDATORY, PolicyScope::POLICY_SCOPE_MACHINE, PolicySource::POLICY_SOURCE_CLOUD, - ReadJson(kInvalidPolicyMismatchedProductIdType), nullptr); + ParseJson(kInvalidPolicyMismatchedProductIdType), nullptr); ASSERT_TRUE(errors.empty()); EXPECT_FALSE(handler()->CheckPolicySettings(policy, &errors)); @@ -377,7 +374,7 @@ policy.Set( key::kWebUsbAllowDevicesForUrls, PolicyLevel::POLICY_LEVEL_MANDATORY, PolicyScope::POLICY_SCOPE_MACHINE, PolicySource::POLICY_SOURCE_CLOUD, - ReadJson(kInvalidPolicyProductIdWithoutVendorId), nullptr); + ParseJson(kInvalidPolicyProductIdWithoutVendorId), nullptr); ASSERT_TRUE(errors.empty()); EXPECT_FALSE(handler()->CheckPolicySettings(policy, &errors)); @@ -397,7 +394,7 @@ policy.Set( key::kWebUsbAllowDevicesForUrls, PolicyLevel::POLICY_LEVEL_MANDATORY, PolicyScope::POLICY_SCOPE_MACHINE, PolicySource::POLICY_SOURCE_CLOUD, - ReadJson(kInvalidPolicyInvalidRequestingUrl), nullptr); + ParseJson(kInvalidPolicyInvalidRequestingUrl), nullptr); ASSERT_TRUE(errors.empty()); EXPECT_FALSE(handler()->CheckPolicySettings(policy, &errors)); @@ -417,7 +414,7 @@ policy.Set( key::kWebUsbAllowDevicesForUrls, PolicyLevel::POLICY_LEVEL_MANDATORY, PolicyScope::POLICY_SCOPE_MACHINE, PolicySource::POLICY_SOURCE_CLOUD, - ReadJson(kInvalidPolicyInvalidEmbeddingUrl), nullptr); + ParseJson(kInvalidPolicyInvalidEmbeddingUrl), nullptr); ASSERT_TRUE(errors.empty()); EXPECT_FALSE(handler()->CheckPolicySettings(policy, &errors)); @@ -437,7 +434,7 @@ policy.Set( key::kWebUsbAllowDevicesForUrls, PolicyLevel::POLICY_LEVEL_MANDATORY, PolicyScope::POLICY_SCOPE_MACHINE, PolicySource::POLICY_SOURCE_CLOUD, - ReadJson(kInvalidPolicyInvalidUrlsEntry), nullptr); + ParseJson(kInvalidPolicyInvalidUrlsEntry), nullptr); ASSERT_TRUE(errors.empty()); EXPECT_FALSE(handler()->CheckPolicySettings(policy, &errors)); @@ -457,7 +454,7 @@ policy.Set( key::kWebUsbAllowDevicesForUrls, PolicyLevel::POLICY_LEVEL_MANDATORY, PolicyScope::POLICY_SCOPE_MACHINE, PolicySource::POLICY_SOURCE_CLOUD, - ReadJson(InvalidPolicyNoUrls), nullptr); + ParseJson(InvalidPolicyNoUrls), nullptr); ASSERT_TRUE(errors.empty()); EXPECT_FALSE(handler()->CheckPolicySettings(policy, &errors)); @@ -477,7 +474,7 @@ policy.Set( key::kWebUsbAllowDevicesForUrls, PolicyLevel::POLICY_LEVEL_MANDATORY, PolicyScope::POLICY_SCOPE_MACHINE, PolicySource::POLICY_SOURCE_CLOUD, - ReadJson(kValidPolicy), nullptr); + ParseJson(kValidPolicy), nullptr); UpdateProviderPolicy(policy); const base::Value* pref_value = nullptr; @@ -556,7 +553,7 @@ policy.Set( key::kWebUsbAllowDevicesForUrls, PolicyLevel::POLICY_LEVEL_MANDATORY, PolicyScope::POLICY_SCOPE_MACHINE, PolicySource::POLICY_SOURCE_CLOUD, - ReadJson(kInvalidPolicyInvalidTopLevelEntry), nullptr); + ParseJson(kInvalidPolicyInvalidTopLevelEntry), nullptr); UpdateProviderPolicy(policy); const base::Value* pref_value = nullptr; @@ -574,7 +571,7 @@ policy.Set( key::kWebUsbAllowDevicesForUrls, PolicyLevel::POLICY_LEVEL_MANDATORY, PolicyScope::POLICY_SCOPE_MACHINE, PolicySource::POLICY_SOURCE_CLOUD, - ReadJson(kInvalidPolicyMissingDevicesProperty), nullptr); + ParseJson(kInvalidPolicyMissingDevicesProperty), nullptr); UpdateProviderPolicy(policy); const base::Value* pref_value = nullptr; EXPECT_FALSE( @@ -591,7 +588,7 @@ policy.Set( key::kWebUsbAllowDevicesForUrls, PolicyLevel::POLICY_LEVEL_MANDATORY, PolicyScope::POLICY_SCOPE_MACHINE, PolicySource::POLICY_SOURCE_CLOUD, - ReadJson(kInvalidPolicyMissingUrlsProperty), nullptr); + ParseJson(kInvalidPolicyMissingUrlsProperty), nullptr); UpdateProviderPolicy(policy); const base::Value* pref_value = nullptr; EXPECT_FALSE( @@ -608,7 +605,7 @@ policy.Set( key::kWebUsbAllowDevicesForUrls, PolicyLevel::POLICY_LEVEL_MANDATORY, PolicyScope::POLICY_SCOPE_MACHINE, PolicySource::POLICY_SOURCE_CLOUD, - ReadJson(kInvalidPolicyUnknownProperty), nullptr); + ParseJson(kInvalidPolicyUnknownProperty), nullptr); UpdateProviderPolicy(policy); const base::Value* pref_value = nullptr; EXPECT_TRUE( @@ -616,7 +613,7 @@ EXPECT_TRUE(pref_value); absl::optional<base::Value> expected_pref_value = - ReadJson(kInvalidPolicyUnknownPropertyAfterCleanup); + ParseJson(kInvalidPolicyUnknownPropertyAfterCleanup); EXPECT_EQ(*expected_pref_value, *pref_value); } @@ -629,7 +626,7 @@ policy.Set( key::kWebUsbAllowDevicesForUrls, PolicyLevel::POLICY_LEVEL_MANDATORY, PolicyScope::POLICY_SCOPE_MACHINE, PolicySource::POLICY_SOURCE_CLOUD, - ReadJson(kInvalidPolicyMismatchedVendorIdType), nullptr); + ParseJson(kInvalidPolicyMismatchedVendorIdType), nullptr); UpdateProviderPolicy(policy); const base::Value* pref_value = nullptr; EXPECT_FALSE( @@ -646,7 +643,7 @@ policy.Set( key::kWebUsbAllowDevicesForUrls, PolicyLevel::POLICY_LEVEL_MANDATORY, PolicyScope::POLICY_SCOPE_MACHINE, PolicySource::POLICY_SOURCE_CLOUD, - ReadJson(kInvalidPolicyMismatchedProductIdType), nullptr); + ParseJson(kInvalidPolicyMismatchedProductIdType), nullptr); UpdateProviderPolicy(policy); const base::Value* pref_value = nullptr; EXPECT_FALSE( @@ -663,7 +660,7 @@ policy.Set( key::kWebUsbAllowDevicesForUrls, PolicyLevel::POLICY_LEVEL_MANDATORY, PolicyScope::POLICY_SCOPE_MACHINE, PolicySource::POLICY_SOURCE_CLOUD, - ReadJson(kInvalidPolicyProductIdWithoutVendorId), nullptr); + ParseJson(kInvalidPolicyProductIdWithoutVendorId), nullptr); UpdateProviderPolicy(policy); const base::Value* pref_value = nullptr; EXPECT_FALSE( @@ -680,7 +677,7 @@ policy.Set( key::kWebUsbAllowDevicesForUrls, PolicyLevel::POLICY_LEVEL_MANDATORY, PolicyScope::POLICY_SCOPE_MACHINE, PolicySource::POLICY_SOURCE_CLOUD, - ReadJson(kInvalidPolicyInvalidRequestingUrl), nullptr); + ParseJson(kInvalidPolicyInvalidRequestingUrl), nullptr); UpdateProviderPolicy(policy); const base::Value* pref_value = nullptr; EXPECT_FALSE( @@ -697,7 +694,7 @@ policy.Set( key::kWebUsbAllowDevicesForUrls, PolicyLevel::POLICY_LEVEL_MANDATORY, PolicyScope::POLICY_SCOPE_MACHINE, PolicySource::POLICY_SOURCE_CLOUD, - ReadJson(kInvalidPolicyInvalidEmbeddingUrl), nullptr); + ParseJson(kInvalidPolicyInvalidEmbeddingUrl), nullptr); UpdateProviderPolicy(policy); const base::Value* pref_value = nullptr; EXPECT_FALSE( @@ -714,7 +711,7 @@ policy.Set( key::kWebUsbAllowDevicesForUrls, PolicyLevel::POLICY_LEVEL_MANDATORY, PolicyScope::POLICY_SCOPE_MACHINE, PolicySource::POLICY_SOURCE_CLOUD, - ReadJson(kInvalidPolicyInvalidUrlsEntry), nullptr); + ParseJson(kInvalidPolicyInvalidUrlsEntry), nullptr); UpdateProviderPolicy(policy); const base::Value* pref_value = nullptr; EXPECT_FALSE( @@ -730,7 +727,7 @@ policy.Set( key::kWebUsbAllowDevicesForUrls, PolicyLevel::POLICY_LEVEL_MANDATORY, PolicyScope::POLICY_SCOPE_MACHINE, PolicySource::POLICY_SOURCE_CLOUD, - ReadJson(InvalidPolicyNoUrls), nullptr); + ParseJson(InvalidPolicyNoUrls), nullptr); UpdateProviderPolicy(policy); const base::Value* pref_value = nullptr; EXPECT_FALSE( @@ -778,7 +775,7 @@ policy.Set(key::kWebUsbAllowDevicesForUrls, PolicyLevel::POLICY_LEVEL_MANDATORY, PolicyScope::POLICY_SCOPE_MACHINE, - PolicySource::POLICY_SOURCE_CLOUD, ReadJson(kPolicy), nullptr); + PolicySource::POLICY_SOURCE_CLOUD, ParseJson(kPolicy), nullptr); PolicyErrorMap errors; EXPECT_TRUE(errors.empty()); @@ -798,8 +795,7 @@ store_->GetValue(prefs::kManagedWebUsbAllowDevicesForUrls, &pref_value)); ASSERT_TRUE(pref_value); - absl::optional<base::Value> expected_pref_value = ReadJson(kNormalizedPolicy); - EXPECT_EQ(*expected_pref_value, *pref_value); + EXPECT_THAT(*pref_value, IsJson(kNormalizedPolicy)); } } // namespace policy
diff --git a/chrome/browser/prefetch/prefetch_proxy/prefetch_proxy_browsertest.cc b/chrome/browser/prefetch/prefetch_proxy/prefetch_proxy_browsertest.cc index 7eac464..b3984cf1 100644 --- a/chrome/browser/prefetch/prefetch_proxy/prefetch_proxy_browsertest.cc +++ b/chrome/browser/prefetch/prefetch_proxy/prefetch_proxy_browsertest.cc
@@ -1520,30 +1520,6 @@ BuildPrefetchResourceMatchers(expected_entries))) << ActualHumanReadableMetricsToDebugString(actual_entries); - // This bit mask records which links were eligible for prefetching with - // respect to their order in the navigation prediction. The LSB corresponds to - // the first index in the prediction, and is set if that url was eligible. - // Given the above URLs, they map to each bit accordingly: - // - // Note: The only difference between eligible and non-eligible urls is the - // scheme. - // - // (eligible) https://a.test/1 - // (eligible) https://a.test/2 | - // (not eligible) http://not-eligible.com/1 | | - // (not eligible) http://not-eligible.com/2 | | | - // (not eligible) http://not-eligible.com/3 | | | | - // (eligible) https://a.test/3 | | | | | - // | | | | | | - // V V V V V V - // int64_t expected_bitmask = 0b 1 0 0 0 1 1; - - constexpr int64_t expected_bitmask = 0b100011; - - VerifyUKMOnSRP( - starting_page, - ukm::builders::PrefetchProxy::kordered_eligible_pages_bitmaskName, - expected_bitmask); VerifyUKMOnSRP(starting_page, ukm::builders::PrefetchProxy::kprefetch_eligible_countName, 3); VerifyUKMOnSRP(starting_page, @@ -1752,9 +1728,6 @@ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), prefetch_404_url)); base::RunLoop().RunUntilIdle(); - VerifyUKMOnSRP( - starting_page, - ukm::builders::PrefetchProxy::kordered_eligible_pages_bitmaskName, 0b01); VerifyUKMOnSRP(starting_page, ukm::builders::PrefetchProxy::kprefetch_eligible_countName, 1); VerifyUKMOnSRP(starting_page, @@ -1827,9 +1800,6 @@ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), link_not_on_srp)); base::RunLoop().RunUntilIdle(); - VerifyUKMOnSRP( - starting_page, - ukm::builders::PrefetchProxy::kordered_eligible_pages_bitmaskName, 0b01); VerifyUKMOnSRP(starting_page, ukm::builders::PrefetchProxy::kprefetch_eligible_countName, 1); VerifyUKMOnSRP(starting_page, @@ -1890,9 +1860,6 @@ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), ineligible_link)); base::RunLoop().RunUntilIdle(); - VerifyUKMOnSRP( - starting_page, - ukm::builders::PrefetchProxy::kordered_eligible_pages_bitmaskName, 0b00); VerifyUKMOnSRP(starting_page, ukm::builders::PrefetchProxy::kprefetch_eligible_countName, 0); VerifyUKMOnSRP(starting_page, @@ -1968,9 +1935,6 @@ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), eligible_link_2)); base::RunLoop().RunUntilIdle(); - VerifyUKMOnSRP( - starting_page, - ukm::builders::PrefetchProxy::kordered_eligible_pages_bitmaskName, 0b11); VerifyUKMOnSRP(starting_page, ukm::builders::PrefetchProxy::kprefetch_eligible_countName, 2); VerifyUKMOnSRP(starting_page,
diff --git a/chrome/browser/prefetch/prefetch_proxy/prefetch_proxy_tab_helper.cc b/chrome/browser/prefetch/prefetch_proxy/prefetch_proxy_tab_helper.cc index 83fa3db7..a172353 100644 --- a/chrome/browser/prefetch/prefetch_proxy/prefetch_proxy_tab_helper.cc +++ b/chrome/browser/prefetch/prefetch_proxy/prefetch_proxy_tab_helper.cc
@@ -1577,13 +1577,6 @@ prefetch_container->SetPrefetchStatus( PrefetchProxyPrefetchStatus::kPrefetchNotStarted); - // Check that we won't go above the allowable size. - if (prefetch_container->GetOriginalPredictionIndex() < - sizeof(page_->srp_metrics_->ordered_eligible_pages_bitmask_) * 8) { - page_->srp_metrics_->ordered_eligible_pages_bitmask_ |= - 1 << prefetch_container->GetOriginalPredictionIndex(); - } - if (!PrefetchProxyShouldPrefetchPosition( prefetch_container->GetOriginalPredictionIndex())) { prefetch_container->SetPrefetchStatus(
diff --git a/chrome/browser/prefetch/prefetch_proxy/prefetch_proxy_tab_helper.h b/chrome/browser/prefetch/prefetch_proxy/prefetch_proxy_tab_helper.h index f160d55a..25c4b0f 100644 --- a/chrome/browser/prefetch/prefetch_proxy/prefetch_proxy_tab_helper.h +++ b/chrome/browser/prefetch/prefetch_proxy/prefetch_proxy_tab_helper.h
@@ -90,18 +90,6 @@ public: PrefetchMetrics(); - // This bitmask keeps track each eligible page's placement in the original - // navigation prediction. The Nth-LSB is set if the Nth predicted page is - // eligible. Pages are in descending order of likelihood of user clicking. - // For example, if the following prediction is made: - // - // [eligible, not eligible, eligible, eligible] - // - // then the resulting bitmask will be - // - // 0b1101. - int64_t ordered_eligible_pages_bitmask_ = 0; - // The number of SRP links that were predicted. Only set on Google SRP pages // for eligible users. This should be used as the source of truth for // determining if the previous page was a Google SRP that could have had
diff --git a/chrome/browser/prefetch/prefetch_proxy/prefetch_proxy_tab_helper_unittest.cc b/chrome/browser/prefetch/prefetch_proxy/prefetch_proxy_tab_helper_unittest.cc index 254ffb93..df17718 100644 --- a/chrome/browser/prefetch/prefetch_proxy/prefetch_proxy_tab_helper_unittest.cc +++ b/chrome/browser/prefetch/prefetch_proxy/prefetch_proxy_tab_helper_unittest.cc
@@ -177,10 +177,6 @@ PrefetchProxyTabHelper* tab_helper() const { return tab_helper_.get(); } - int64_t ordered_eligible_pages_bitmask() const { - return tab_helper_->srp_metrics().ordered_eligible_pages_bitmask_; - } - size_t prefetch_eligible_count() const { return tab_helper_->srp_metrics().prefetch_eligible_count_; } @@ -1097,27 +1093,6 @@ "PrefetchProxy.Prefetch.Mainframe.TotalRedirects", 0, 1); } -TEST_F(PrefetchProxyTabHelperTest, OrderedBitMask) { - base::CommandLine::ForCurrentProcess()->AppendSwitch( - "isolated-prerender-unlimited-prefetches"); - - NavigateSomewhere(); - MakeNavigationPrediction(web_contents(), - GURL("https://www.google.com/search?q=cats"), - { - GURL("http://not-eligible-1.com"), - GURL("http://not-eligible-2.com"), - GURL("https://eligible-1.com"), - GURL("https://eligible-2.com"), - GURL("https://eligible-3.com"), - GURL("http://not-eligible-3.com"), - }); - - EXPECT_EQ(predicted_urls_count(), 6U); - EXPECT_EQ(prefetch_eligible_count(), 3U); - EXPECT_EQ(ordered_eligible_pages_bitmask(), 0b011100); -} - TEST_F(PrefetchProxyTabHelperTest, NumberOfPrefetches_UnlimitedByCmdLine) { base::HistogramTester histogram_tester;
diff --git a/chrome/browser/printing/print_browsertest.cc b/chrome/browser/printing/print_browsertest.cc index 71b3f0e..e0f7c349 100644 --- a/chrome/browser/printing/print_browsertest.cc +++ b/chrome/browser/printing/print_browsertest.cc
@@ -1734,7 +1734,9 @@ EXPECT_EQ(rendered_page_count(), 3u); } -IN_PROC_BROWSER_TEST_F(PrintBrowserTest, PDFPluginNotKeyboardFocusable) { +// Disabled due to flakiness: crbug.com/1311998 +IN_PROC_BROWSER_TEST_F(PrintBrowserTest, + DISABLED_PDFPluginNotKeyboardFocusable) { ASSERT_TRUE(embedded_test_server()->Started()); GURL url(embedded_test_server()->GetURL("/printing/multipage.html")); ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), url));
diff --git a/chrome/browser/reputation/safety_tip_infobar.cc b/chrome/browser/reputation/safety_tip_infobar.cc index 7a60f97..0e78b9d 100644 --- a/chrome/browser/reputation/safety_tip_infobar.cc +++ b/chrome/browser/reputation/safety_tip_infobar.cc
@@ -49,7 +49,8 @@ ScopedJavaLocalRef<jobject> java_bitmap; if (delegate->GetIconId() == infobars::InfoBarDelegate::kNoIconID && !delegate->GetIcon().IsEmpty()) { - java_bitmap = gfx::ConvertToJavaBitmap(*delegate->GetIcon().ToSkBitmap()); + java_bitmap = gfx::ConvertToJavaBitmap( + *delegate->GetIcon().Rasterize(nullptr).bitmap()); } return Java_SafetyTipInfoBar_create(
diff --git a/chrome/browser/resources/chromeos/accessibility/accessibility_common/BUILD.gn b/chrome/browser/resources/chromeos/accessibility/accessibility_common/BUILD.gn index a6dcac5..c349288 100644 --- a/chrome/browser/resources/chromeos/accessibility/accessibility_common/BUILD.gn +++ b/chrome/browser/resources/chromeos/accessibility/accessibility_common/BUILD.gn
@@ -7,7 +7,7 @@ import( "//chrome/browser/resources/chromeos/accessibility/accessibility_common/dictation/buildflags.gni") import( - "//chrome/browser/resources/chromeos/accessibility/common/run_jsbundler.gni") + "//chrome/browser/resources/chromeos/accessibility/tools/run_jsbundler.gni") import("//chrome/test/base/js2gtest.gni") import("//testing/test.gni") import("//third_party/closure_compiler/compile_js.gni")
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/BUILD.gn b/chrome/browser/resources/chromeos/accessibility/chromevox/BUILD.gn index 072fdde..c0d2f36f 100644 --- a/chrome/browser/resources/chromeos/accessibility/chromevox/BUILD.gn +++ b/chrome/browser/resources/chromeos/accessibility/chromevox/BUILD.gn
@@ -5,7 +5,7 @@ import("//build/config/chromeos/ui_mode.gni") import("//build/config/features.gni") import( - "//chrome/browser/resources/chromeos/accessibility/common/run_jsbundler.gni") + "//chrome/browser/resources/chromeos/accessibility/tools/run_jsbundler.gni") import("//chrome/common/features.gni") import("//chrome/test/base/js2gtest.gni") import("//testing/test.gni")
diff --git a/chrome/browser/resources/chromeos/accessibility/common/BUILD.gn b/chrome/browser/resources/chromeos/accessibility/common/BUILD.gn index 81c26a1..a4bb1ce 100644 --- a/chrome/browser/resources/chromeos/accessibility/common/BUILD.gn +++ b/chrome/browser/resources/chromeos/accessibility/common/BUILD.gn
@@ -5,7 +5,7 @@ import("//build/config/chromeos/ui_mode.gni") import("//build/config/features.gni") import( - "//chrome/browser/resources/chromeos/accessibility/common/run_jsbundler.gni") + "//chrome/browser/resources/chromeos/accessibility/tools/run_jsbundler.gni") import("//chrome/common/features.gni") import("//chrome/test/base/js2gtest.gni") import("//testing/test.gni")
diff --git a/chrome/browser/resources/chromeos/accessibility/enhanced_network_tts/BUILD.gn b/chrome/browser/resources/chromeos/accessibility/enhanced_network_tts/BUILD.gn index d043febbc..f72d9b6 100644 --- a/chrome/browser/resources/chromeos/accessibility/enhanced_network_tts/BUILD.gn +++ b/chrome/browser/resources/chromeos/accessibility/enhanced_network_tts/BUILD.gn
@@ -5,7 +5,7 @@ import("//build/config/chromeos/ui_mode.gni") import("//build/config/features.gni") import( - "//chrome/browser/resources/chromeos/accessibility/common/run_jsbundler.gni") + "//chrome/browser/resources/chromeos/accessibility/tools/run_jsbundler.gni") import("//chrome/common/features.gni") import("//chrome/test/base/js2gtest.gni") import("//third_party/closure_compiler/compile_js.gni")
diff --git a/chrome/browser/resources/chromeos/accessibility/select_to_speak/BUILD.gn b/chrome/browser/resources/chromeos/accessibility/select_to_speak/BUILD.gn index e3222ca..d45002e 100644 --- a/chrome/browser/resources/chromeos/accessibility/select_to_speak/BUILD.gn +++ b/chrome/browser/resources/chromeos/accessibility/select_to_speak/BUILD.gn
@@ -5,7 +5,7 @@ import("//build/config/chromeos/ui_mode.gni") import("//build/config/features.gni") import( - "//chrome/browser/resources/chromeos/accessibility/common/run_jsbundler.gni") + "//chrome/browser/resources/chromeos/accessibility/tools/run_jsbundler.gni") import("//chrome/common/features.gni") import("//chrome/test/base/js2gtest.gni") import("//testing/test.gni")
diff --git a/chrome/browser/resources/chromeos/accessibility/switch_access/BUILD.gn b/chrome/browser/resources/chromeos/accessibility/switch_access/BUILD.gn index 2613f93..e870ab8 100644 --- a/chrome/browser/resources/chromeos/accessibility/switch_access/BUILD.gn +++ b/chrome/browser/resources/chromeos/accessibility/switch_access/BUILD.gn
@@ -5,7 +5,7 @@ import("//build/config/chromeos/ui_mode.gni") import("//build/config/features.gni") import( - "//chrome/browser/resources/chromeos/accessibility/common/run_jsbundler.gni") + "//chrome/browser/resources/chromeos/accessibility/tools/run_jsbundler.gni") import("//chrome/common/features.gni") import("//chrome/test/base/js2gtest.gni") import("//testing/test.gni")
diff --git a/chrome/browser/resources/chromeos/accessibility/common/run_jsbundler.gni b/chrome/browser/resources/chromeos/accessibility/tools/run_jsbundler.gni similarity index 100% rename from chrome/browser/resources/chromeos/accessibility/common/run_jsbundler.gni rename to chrome/browser/resources/chromeos/accessibility/tools/run_jsbundler.gni
diff --git a/chrome/browser/serial/serial_chooser_context_unittest.cc b/chrome/browser/serial/serial_chooser_context_unittest.cc index e49cd50..7fa404e 100644 --- a/chrome/browser/serial/serial_chooser_context_unittest.cc +++ b/chrome/browser/serial/serial_chooser_context_unittest.cc
@@ -4,12 +4,12 @@ #include "chrome/browser/serial/serial_chooser_context.h" -#include "base/json/json_reader.h" #include "base/memory/raw_ptr.h" #include "base/run_loop.h" #include "base/scoped_observation.h" #include "base/test/metrics/histogram_tester.h" #include "base/test/scoped_feature_list.h" +#include "base/test/values_test_util.h" #include "build/build_config.h" #include "build/chromeos_buildflags.h" #include "chrome/browser/content_settings/host_content_settings_map_factory.h" @@ -37,10 +37,11 @@ #include "components/user_manager/scoped_user_manager.h" #endif -using testing::NiceMock; - namespace { +using ::base::test::ParseJson; +using ::testing::NiceMock; + constexpr char kTestUserEmail[] = "user@example.com"; class MockPortObserver : public SerialChooserContext::PortObserver { @@ -76,14 +77,6 @@ return port; } -std::unique_ptr<base::Value> ReadJson(base::StringPiece json) { - base::JSONReader::ValueWithError result = - base::JSONReader::ReadAndReturnValueWithError(json); - EXPECT_TRUE(result.value) << result.error_message; - return result.value ? base::Value::ToUniquePtrValue(std::move(*result.value)) - : nullptr; -} - class SerialChooserContextTestBase { public: SerialChooserContextTestBase() = default; @@ -498,7 +491,7 @@ prefs::kManagedDefaultSerialGuardSetting, std::make_unique<base::Value>(CONTENT_SETTING_BLOCK)); profile_prefs->SetManagedPref(prefs::kManagedSerialAskForUrls, - ReadJson(R"([ "https://foo.origin" ])")); + ParseJson(R"([ "https://foo.origin" ])")); EXPECT_TRUE(context()->CanRequestObjectPermission(kFooOrigin)); EXPECT_TRUE(context()->HasPortPermission(kFooOrigin, *port)); @@ -527,7 +520,7 @@ auto* profile_prefs = profile()->GetTestingPrefService(); profile_prefs->SetManagedPref(prefs::kManagedSerialBlockedForUrls, - ReadJson(R"([ "https://foo.origin" ])")); + ParseJson(R"([ "https://foo.origin" ])")); EXPECT_FALSE(context()->CanRequestObjectPermission(kFooOrigin)); EXPECT_FALSE(context()->HasPortPermission(kFooOrigin, *port)); @@ -550,9 +543,9 @@ const auto kBarOrigin = url::Origin::Create(GURL("https://bar.origin")); local_state()->SetManagedPref(prefs::kManagedSerialAllowAllPortsForUrls, - ReadJson(R"([ "https://foo.origin" ])")); + ParseJson(R"([ "https://foo.origin" ])")); local_state()->SetManagedPref(prefs::kManagedSerialAllowUsbDevicesForUrls, - ReadJson(R"([ + ParseJson(R"([ { "devices": [{ "vendor_id": 6353, "product_id": 19985 }], "urls": [ "https://bar.origin" ] @@ -651,7 +644,7 @@ const auto kBarOrigin = url::Origin::Create(GURL("https://bar.origin")); local_state()->SetManagedPref(prefs::kManagedSerialAllowUsbDevicesForUrls, - ReadJson(R"([ + ParseJson(R"([ { "devices": [{ "vendor_id": 6353 }], "urls": [ "https://google.com" ] @@ -728,7 +721,7 @@ prefs::kManagedDefaultSerialGuardSetting, std::make_unique<base::Value>(CONTENT_SETTING_BLOCK)); local_state()->SetManagedPref(prefs::kManagedSerialAllowAllPortsForUrls, - ReadJson(R"([ "https://foo.origin" ])")); + ParseJson(R"([ "https://foo.origin" ])")); auto port = device::mojom::SerialPortInfo::New(); port->token = base::UnguessableToken::Create(); @@ -753,9 +746,9 @@ auto* profile_prefs = profile()->GetTestingPrefService(); profile_prefs->SetManagedPref( prefs::kManagedSerialBlockedForUrls, - ReadJson(R"([ "https://foo.origin", "https://bar.origin" ])")); + ParseJson(R"([ "https://foo.origin", "https://bar.origin" ])")); local_state()->SetManagedPref(prefs::kManagedSerialAllowAllPortsForUrls, - ReadJson(R"([ "https://foo.origin" ])")); + ParseJson(R"([ "https://foo.origin" ])")); auto port = device::mojom::SerialPortInfo::New(); port->token = base::UnguessableToken::Create(); @@ -807,7 +800,7 @@ const auto origin = url::Origin::Create(GURL("https://google.com")); local_state()->SetManagedPref(prefs::kManagedSerialAllowUsbDevicesForUrls, - ReadJson(R"([ + ParseJson(R"([ { "devices": [{ "vendor_id": 6353, "product_id": 22768 }], "urls": [ "https://google.com" ]
diff --git a/chrome/browser/serial/serial_policy_allowed_ports_unittest.cc b/chrome/browser/serial/serial_policy_allowed_ports_unittest.cc index c47266a..57a0acc 100644 --- a/chrome/browser/serial/serial_policy_allowed_ports_unittest.cc +++ b/chrome/browser/serial/serial_policy_allowed_ports_unittest.cc
@@ -5,7 +5,7 @@ #include "chrome/browser/serial/serial_policy_allowed_ports.h" #include "base/containers/contains.h" -#include "base/json/json_reader.h" +#include "base/test/values_test_util.h" #include "chrome/browser/prefs/browser_prefs.h" #include "chrome/common/pref_names.h" #include "components/prefs/testing_pref_service.h" @@ -18,15 +18,9 @@ namespace { +using ::base::test::ParseJson; using ::testing::UnorderedElementsAre; -base::Value ReadJson(base::StringPiece json) { - base::JSONReader::ValueWithError result = - base::JSONReader::ReadAndReturnValueWithError(json); - EXPECT_TRUE(result.value) << result.error_message; - return result.value ? std::move(*result.value) : base::Value(); -} - device::mojom::SerialPortInfoPtr CreateUsbDevice(uint16_t vendor_id, uint16_t product_id) { auto port = device::mojom::SerialPortInfo::New(); @@ -113,8 +107,8 @@ const auto kGoogleOrigin = url::Origin::Create(GURL("https://google.com")); const auto kCrbugOrigin = url::Origin::Create(GURL("https://crbug.com")); - SetAllowAllPortsForUrlsPrefValue(ReadJson(kAllPortsPolicySetting)); - SetAllowUsbDevicesForUrlsPrefValue(ReadJson(kUsbDevicesPolicySetting)); + SetAllowAllPortsForUrlsPrefValue(ParseJson(kAllPortsPolicySetting)); + SetAllowUsbDevicesForUrlsPrefValue(ParseJson(kUsbDevicesPolicySetting)); InitializePolicy(); EXPECT_EQ(1u, policy()->usb_device_policy().size()); @@ -180,8 +174,8 @@ const auto kGoogleOrigin = url::Origin::Create(GURL("https://google.com")); const auto kCrbugOrigin = url::Origin::Create(GURL("https://crbug.com")); - SetAllowAllPortsForUrlsPrefValue(ReadJson(kAllPortsPolicySetting)); - SetAllowUsbDevicesForUrlsPrefValue(ReadJson(kUsbDevicesPolicySetting)); + SetAllowAllPortsForUrlsPrefValue(ParseJson(kAllPortsPolicySetting)); + SetAllowUsbDevicesForUrlsPrefValue(ParseJson(kUsbDevicesPolicySetting)); EXPECT_EQ(1u, policy()->usb_device_policy().size()); EXPECT_EQ(1u, policy()->usb_vendor_policy().size()); @@ -239,8 +233,8 @@ } ])"; - SetAllowAllPortsForUrlsPrefValue(ReadJson(kAllPortsPolicySetting)); - SetAllowUsbDevicesForUrlsPrefValue(ReadJson(kUsbDevicesPolicySetting)); + SetAllowAllPortsForUrlsPrefValue(ParseJson(kAllPortsPolicySetting)); + SetAllowUsbDevicesForUrlsPrefValue(ParseJson(kUsbDevicesPolicySetting)); InitializePolicy(); SetAllowAllPortsForUrlsPrefValue(base::Value(base::Value::Type::LIST)); @@ -279,7 +273,7 @@ const auto kYoutubeOrigin = url::Origin::Create(GURL("https://www.youtube.com")); - SetAllowUsbDevicesForUrlsPrefValue(ReadJson(kUsbDevicesPolicySetting)); + SetAllowUsbDevicesForUrlsPrefValue(ParseJson(kUsbDevicesPolicySetting)); InitializePolicy(); EXPECT_EQ(2u, policy()->usb_device_policy().size());
diff --git a/chrome/browser/ssl/known_interception_disclosure_infobar.cc b/chrome/browser/ssl/known_interception_disclosure_infobar.cc index 3f274e45..7f892e28 100644 --- a/chrome/browser/ssl/known_interception_disclosure_infobar.cc +++ b/chrome/browser/ssl/known_interception_disclosure_infobar.cc
@@ -49,7 +49,8 @@ ScopedJavaLocalRef<jobject> java_bitmap; if (delegate->GetIconId() == infobars::InfoBarDelegate::kNoIconID && !delegate->GetIcon().IsEmpty()) { - java_bitmap = gfx::ConvertToJavaBitmap(*delegate->GetIcon().ToSkBitmap()); + java_bitmap = gfx::ConvertToJavaBitmap( + *delegate->GetIcon().Rasterize(nullptr).bitmap()); } return Java_KnownInterceptionDisclosureInfoBar_create(
diff --git a/chrome/browser/supervised_user/supervised_user_url_filter.cc b/chrome/browser/supervised_user/supervised_user_url_filter.cc index 9084dc0..1886d8a6 100644 --- a/chrome/browser/supervised_user/supervised_user_url_filter.cc +++ b/chrome/browser/supervised_user/supervised_user_url_filter.cc
@@ -89,8 +89,8 @@ bool IsAlwaysAllowedHost(const GURL& effective_url) { // Allow navigations to allowed origins. static const char* const kAllowedHosts[] = { - "families.google.com", "familylink.google.com", "accounts.google.com", - "myaccount.google.com"}; + "accounts.google.com", "families.google.com", "familylink.google.com", + "myaccount.google.com", "support.google.com"}; for (const char* allowedHost : kAllowedHosts) { if (allowedHost == effective_url.host_piece())
diff --git a/chrome/browser/supervised_user/supervised_user_url_filter_unittest.cc b/chrome/browser/supervised_user/supervised_user_url_filter_unittest.cc index 6c3f9e1..9648f292 100644 --- a/chrome/browser/supervised_user/supervised_user_url_filter_unittest.cc +++ b/chrome/browser/supervised_user/supervised_user_url_filter_unittest.cc
@@ -542,6 +542,7 @@ EXPECT_TRUE(IsURLAllowlisted("https://myaccount.google.com/")); EXPECT_TRUE(IsURLAllowlisted("https://accounts.google.com/")); EXPECT_TRUE(IsURLAllowlisted("https://familylink.google.com/")); + EXPECT_TRUE(IsURLAllowlisted("https://support.google.com/")); // Chrome sync dashboard URLs (base initial URL, plus the version with locale // appended, and the redirect URL with locale appended).
diff --git a/chrome/browser/ui/android/infobars/autofill_credit_card_filling_infobar.cc b/chrome/browser/ui/android/infobars/autofill_credit_card_filling_infobar.cc index 989a2e9..e2d153a61 100644 --- a/chrome/browser/ui/android/infobars/autofill_credit_card_filling_infobar.cc +++ b/chrome/browser/ui/android/infobars/autofill_credit_card_filling_infobar.cc
@@ -35,7 +35,8 @@ ScopedJavaLocalRef<jobject> java_bitmap; if (delegate->GetIconId() == infobars::InfoBarDelegate::kNoIconID && !delegate->GetIcon().IsEmpty()) { - java_bitmap = gfx::ConvertToJavaBitmap(*delegate->GetIcon().ToSkBitmap()); + java_bitmap = gfx::ConvertToJavaBitmap( + *delegate->GetIcon().Rasterize(nullptr).bitmap()); } base::android::ScopedJavaLocalRef<jobject> java_delegate =
diff --git a/chrome/browser/ui/android/infobars/simple_confirm_infobar_builder.cc b/chrome/browser/ui/android/infobars/simple_confirm_infobar_builder.cc index 6b2abfe..609c43f 100644 --- a/chrome/browser/ui/android/infobars/simple_confirm_infobar_builder.cc +++ b/chrome/browser/ui/android/infobars/simple_confirm_infobar_builder.cc
@@ -41,7 +41,7 @@ // ConfirmInfoBarDelegate: infobars::InfoBarDelegate::InfoBarIdentifier GetIdentifier() const override; - gfx::Image GetIcon() const override; + ui::ImageModel GetIcon() const override; std::u16string GetLinkText() const override; bool ShouldExpire(const NavigationDetails& details) const override; bool LinkClicked(WindowOpenDisposition disposition) override; @@ -90,9 +90,9 @@ return identifier_; } -gfx::Image SimpleConfirmInfoBarDelegate::GetIcon() const { +ui::ImageModel SimpleConfirmInfoBarDelegate::GetIcon() const { return icon_bitmap_.IsEmpty() ? ConfirmInfoBarDelegate::GetIcon() - : icon_bitmap_; + : ui::ImageModel::FromImage(icon_bitmap_); } std::u16string SimpleConfirmInfoBarDelegate::GetLinkText() const {
diff --git a/chrome/browser/ui/ash/security_token_session_restriction_view.cc b/chrome/browser/ui/ash/security_token_session_restriction_view.cc index 3c6d324..720cbc3 100644 --- a/chrome/browser/ui/ash/security_token_session_restriction_view.cc +++ b/chrome/browser/ui/ash/security_token_session_restriction_view.cc
@@ -32,10 +32,6 @@ constexpr base::TimeDelta kCountdownUpdateInterval = base::Milliseconds(1000); constexpr base::TimeDelta kLastUpdateTime = base::Milliseconds(1000); -gfx::ImageSkia GetImage() { - return gfx::CreateVectorIcon(chromeos::kEnterpriseIcon, 20, SK_ColorDKGRAY); -} - std::u16string GetTitle( ash::login::SecurityTokenSessionController::Behavior behavior) { switch (behavior) { @@ -114,7 +110,9 @@ base::OnceClosure accept_callback, ash::login::SecurityTokenSessionController::Behavior behavior, const std::string& domain) - : AppDialogView(GetImage()), + : AppDialogView(ui::ImageModel::FromVectorIcon(chromeos::kEnterpriseIcon, + ui::kColorIcon, + 20)), behavior_(behavior), clock_(base::DefaultTickClock::GetInstance()), domain_(domain),
diff --git a/chrome/browser/ui/ash/sharesheet/sharesheet_target_button.cc b/chrome/browser/ui/ash/sharesheet/sharesheet_target_button.cc index 5d86d72f..3bab47c 100644 --- a/chrome/browser/ui/ash/sharesheet/sharesheet_target_button.cc +++ b/chrome/browser/ui/ash/sharesheet/sharesheet_target_button.cc
@@ -140,7 +140,6 @@ void SharesheetTargetButton::SetLabelProperties(views::Label* label) { label->SetMultiLine(true); label->SetMaximumWidth(kButtonTextMaxWidth); - label->SetBackgroundColor(SK_ColorTRANSPARENT); label->SetHandlesTooltips(true); label->SetTooltipText(label->GetText()); label->SetAutoColorReadabilityEnabled(false);
diff --git a/chrome/browser/ui/ash/shelf/shelf_spinner_controller.cc b/chrome/browser/ui/ash/shelf/shelf_spinner_controller.cc index 0d9a949a..9dbcdf9 100644 --- a/chrome/browser/ui/ash/shelf/shelf_spinner_controller.cc +++ b/chrome/browser/ui/ash/shelf/shelf_spinner_controller.cc
@@ -127,11 +127,13 @@ 0, 0); const int gap = kSpinningGapPercent * inactive_image_.width() / 100; + constexpr SkColor kThrobberColor = SK_ColorWHITE; gfx::PaintThrobberSpinning( canvas, gfx::Rect(gap, gap, inactive_image_.width() - 2 * gap, inactive_image_.height() - 2 * gap), - SkColorSetA(SK_ColorWHITE, 0xFF * (1.0 - std::abs(animation_lirp))), + SkColorSetA(kThrobberColor, SkColorGetA(kThrobberColor) * + (1.0 - std::abs(animation_lirp))), now - data_.creation_time()); }
diff --git a/chrome/browser/ui/ash/wallpaper_controller_client_impl.cc b/chrome/browser/ui/ash/wallpaper_controller_client_impl.cc index 95a7797..534a186 100644 --- a/chrome/browser/ui/ash/wallpaper_controller_client_impl.cc +++ b/chrome/browser/ui/ash/wallpaper_controller_client_impl.cc
@@ -660,7 +660,8 @@ DCHECK(profile); if (ash::features::IsWallpaperWebUIEnabled()) { web_app::SystemAppLaunchParams params; - params.url = GURL(ash::kChromeUIPersonalizationAppWallpaperSubpageURL); + params.url = GURL(ash::personalization_app:: + kChromeUIPersonalizationAppWallpaperSubpageURL); params.launch_source = apps::mojom::LaunchSource::kFromShelf; web_app::LaunchSystemWebAppAsync( profile, web_app::SystemAppType::PERSONALIZATION, params);
diff --git a/chrome/browser/ui/autofill/chrome_autofill_client.cc b/chrome/browser/ui/autofill/chrome_autofill_client.cc index 8021770..190bcd1 100644 --- a/chrome/browser/ui/autofill/chrome_autofill_client.cc +++ b/chrome/browser/ui/autofill/chrome_autofill_client.cc
@@ -816,10 +816,11 @@ GetFormDataImporter()->CacheFetchedVirtualCard(credit_card->LastFourDigits()); #if BUILDFLAG(IS_ANDROID) - // Show the virtual card snackbar only if the keyboard accessory feature is - // enabled. This is because the ManualFillingComponent for credit cards is - // only enabled when keyboard accessory is enabled. - if (features::IsAutofillManualFallbackEnabled()) { + // Show the virtual card snackbar only if the ManualFillingComponent component + // is enabled for credit cards. + if (features::IsAutofillManualFallbackEnabled() || + base::FeatureList::IsEnabled( + autofill::features::kAutofillEnableManualFallbackForVirtualCards)) { (new AutofillSnackbarControllerImpl(web_contents()))->Show(); } #else
diff --git a/chrome/browser/ui/color/chrome_color_id.h b/chrome/browser/ui/color/chrome_color_id.h index 5a48ec9..f05dc49c 100644 --- a/chrome/browser/ui/color/chrome_color_id.h +++ b/chrome/browser/ui/color/chrome_color_id.h
@@ -68,10 +68,16 @@ E_CPONLY(kColorDownloadToolbarButtonInactive) \ E_CPONLY(kColorDownloadToolbarButtonRingBackground) \ /* Extension colors. */ \ + E_CPONLY(kColorExtensionDialogBackground) \ E_CPONLY(kColorExtensionIconBadgeBackgroundDefault) \ E_CPONLY(kColorExtensionIconBadgeForegroundDefault) \ E_CPONLY(kColorExtensionIconDecorationAmbientShadow) \ + E_CPONLY(kColorExtensionIconDecorationBackground) \ E_CPONLY(kColorExtensionIconDecorationKeyShadow) \ + E_CPONLY(kColorExtensionMenuIcon) \ + E_CPONLY(kColorExtensionMenuIconDisabled) \ + E_CPONLY(kColorExtensionMenuPinButtonIcon) \ + E_CPONLY(kColorExtensionMenuPinButtonIconDisabled) \ /* Eyedropper colors. */ \ E_CPONLY(kColorEyedropperBoundary) \ E_CPONLY(kColorEyedropperCentralPixelInnerRing) \ @@ -405,6 +411,8 @@ ThemeProperties::COLOR_TOOLBAR_TOP_SEPARATOR_FRAME_INACTIVE) \ /* WebAuthn colors. */ \ E_CPONLY(kColorWebAuthnPinTextfieldBottomBorder) \ + E_CPONLY(kColorWebAuthnProgressRingBackground) \ + E_CPONLY(kColorWebAuthnProgressRingForeground) \ /* Web contents colors. */ \ E_CPONLY(kColorWebContentsBackground) \ E_CPONLY(kColorWebContentsBackgroundLetterboxing) \ @@ -436,14 +444,14 @@ E_CPONLY(kColorCaptionCloseButtonForegroundHovered) \ E_CPONLY(kColorCaptionForegroundActive) \ E_CPONLY(kColorCaptionForegroundInactive) \ - E_CPONLY(kColorTryChromeAcceptButtonBackground) \ + /* Try Chrome dialog colors. */ \ E_CPONLY(kColorTryChromeBackground) \ E_CPONLY(kColorTryChromeBorder) \ + E_CPONLY(kColorTryChromeButtonBackgroundAccept) \ + E_CPONLY(kColorTryChromeButtonBackgroundNoThanks) \ E_CPONLY(kColorTryChromeButtonForeground) \ E_CPONLY(kColorTryChromeForeground) \ - E_CPONLY(kColorTryChromeIcon) \ - E_CPONLY(kColorTryChromeNoThanksButtonBackground) \ - + E_CPONLY(kColorTryChromeHeaderForeground) #else #define CHROME_PLATFORM_SPECIFIC_COLOR_IDS #endif // BUILDFLAG(IS_WIN)
diff --git a/chrome/browser/ui/color/chrome_color_mixer.cc b/chrome/browser/ui/color/chrome_color_mixer.cc index 88dd99f..141fa3e2 100644 --- a/chrome/browser/ui/color/chrome_color_mixer.cc +++ b/chrome/browser/ui/color/chrome_color_mixer.cc
@@ -227,7 +227,7 @@ mixer[kColorDesktopMediaTabListBorder] = {ui::kColorMidground}; mixer[kColorDesktopMediaTabListPreviewBackground] = {ui::kColorMidground}; mixer[kColorDownloadItemProgressRingBackground] = { - ui::SetAlpha(kColorDownloadItemProgressRingForeground, 0x33)}; + ui::kColorThrobberPreconnect}; mixer[kColorDownloadItemProgressRingForeground] = {ui::kColorThrobber}; mixer[kColorDownloadShelfBackground] = {kColorToolbar}; mixer[kColorDownloadShelfButtonBackground] = {kColorDownloadShelfBackground}; @@ -242,13 +242,20 @@ mixer[kColorDownloadToolbarButtonInactive] = {kColorToolbarButtonIcon}; mixer[kColorDownloadToolbarButtonRingBackground] = { SkColorSetA(kColorDownloadToolbarButtonInactive, 0x33)}; + mixer[kColorExtensionDialogBackground] = {SK_ColorWHITE}; mixer[kColorExtensionIconBadgeBackgroundDefault] = {ui::kColorAccent}; mixer[kColorExtensionIconBadgeForegroundDefault] = ui::GetColorWithMaxContrast(kColorExtensionIconBadgeBackgroundDefault); mixer[kColorExtensionIconDecorationAmbientShadow] = ui::SetAlpha(ui::kColorShadowBase, 0x26); + mixer[kColorExtensionIconDecorationBackground] = {SK_ColorWHITE}; mixer[kColorExtensionIconDecorationKeyShadow] = ui::SetAlpha(ui::kColorShadowBase, 0x4D); + mixer[kColorExtensionMenuIcon] = {ui::kColorIcon}; + mixer[kColorExtensionMenuIconDisabled] = {ui::kColorIconDisabled}; + mixer[kColorExtensionMenuPinButtonIcon] = {ui::kColorAccent}; + mixer[kColorExtensionMenuPinButtonIconDisabled] = ui::SetAlpha( + kColorExtensionMenuPinButtonIcon, gfx::kDisabledControlAlpha); mixer[kColorEyedropperBoundary] = {SK_ColorDKGRAY}; mixer[kColorEyedropperCentralPixelInnerRing] = {SK_ColorBLACK}; mixer[kColorEyedropperCentralPixelOuterRing] = {SK_ColorWHITE}; @@ -577,6 +584,8 @@ GetToolbarTopSeparatorColorTransform(kColorToolbar, ui::kColorFrameInactive); mixer[kColorWebAuthnPinTextfieldBottomBorder] = {ui::kColorAccent}; + mixer[kColorWebAuthnProgressRingBackground] = {ui::kColorThrobberPreconnect}; + mixer[kColorWebAuthnProgressRingForeground] = {ui::kColorThrobber}; mixer[kColorWebContentsBackground] = {kColorNewTabPageBackground}; mixer[kColorWebContentsBackgroundLetterboxing] = ui::AlphaBlend(kColorWebContentsBackground, SK_ColorBLACK, 0x33);
diff --git a/chrome/browser/ui/color/win/native_chrome_color_mixer_win.cc b/chrome/browser/ui/color/win/native_chrome_color_mixer_win.cc index 56fbac9..0254a77e 100644 --- a/chrome/browser/ui/color/win/native_chrome_color_mixer_win.cc +++ b/chrome/browser/ui/color/win/native_chrome_color_mixer_win.cc
@@ -242,15 +242,15 @@ GetCaptionForegroundColor(ui::kColorFrameActive); mixer[kColorCaptionForegroundInactive] = SetAlpha(GetCaptionForegroundColor(ui::kColorFrameInactive), 0x66); - mixer[kColorTryChromeAcceptButtonBackground] = { - SkColorSetRGB(0x00, 0x78, 0xDA)}; mixer[kColorTryChromeBackground] = {SkColorSetRGB(0x1F, 0x1F, 0x1F)}; mixer[kColorTryChromeBorder] = {SkColorSetARGB(0x80, 0x80, 0x80, 0x80)}; - mixer[kColorTryChromeButtonForeground] = {SK_ColorWHITE}; - mixer[kColorTryChromeForeground] = {SK_ColorWHITE}; - mixer[kColorTryChromeIcon] = {SkColorSetA(SK_ColorWHITE, 0xAD)}; - mixer[kColorTryChromeNoThanksButtonBackground] = { + mixer[kColorTryChromeButtonBackgroundAccept] = { + SkColorSetRGB(0x00, 0x78, 0xDA)}; + mixer[kColorTryChromeButtonBackgroundNoThanks] = { SkColorSetA(SK_ColorWHITE, 0x33)}; + mixer[kColorTryChromeButtonForeground] = {SK_ColorWHITE}; + mixer[kColorTryChromeForeground] = {SkColorSetA(SK_ColorWHITE, 0xAD)}; + mixer[kColorTryChromeHeaderForeground] = {SK_ColorWHITE}; if (key.color_mode == ui::ColorProviderManager::ColorMode::kLight) { mixer[kColorNewTabPageBackground] = {ui::kColorNativeWindow};
diff --git a/chrome/browser/ui/extensions/icon_with_badge_image_source.cc b/chrome/browser/ui/extensions/icon_with_badge_image_source.cc index f065e8ac..f89600b 100644 --- a/chrome/browser/ui/extensions/icon_with_badge_image_source.cc +++ b/chrome/browser/ui/extensions/icon_with_badge_image_source.cc
@@ -230,7 +230,8 @@ cc::PaintFlags paint_flags; paint_flags.setStyle(cc::PaintFlags::kFill_Style); paint_flags.setAntiAlias(true); - paint_flags.setColor(SK_ColorWHITE); + paint_flags.setColor( + color_provider_->GetColor(kColorExtensionIconDecorationBackground)); paint_flags.setLooper( gfx::CreateShadowDrawLooper({key_shadow, ambient_shadow}));
diff --git a/chrome/browser/ui/profile_chooser_constants.h b/chrome/browser/ui/profile_chooser_constants.h index 18fdd7d..c02809c 100644 --- a/chrome/browser/ui/profile_chooser_constants.h +++ b/chrome/browser/ui/profile_chooser_constants.h
@@ -9,8 +9,6 @@ namespace profiles { -static const SkColor kHoverColor = SkColorSetRGB(0xEA, 0xEA, 0xEA); - // Different views that can be displayed in the profile chooser bubble. enum BubbleViewMode { // Shows the default avatar bubble.
diff --git a/chrome/browser/ui/quick_answers/ui/quick_answers_view.cc b/chrome/browser/ui/quick_answers/ui/quick_answers_view.cc index 81c8575..28a5cfe 100644 --- a/chrome/browser/ui/quick_answers/ui/quick_answers_view.cc +++ b/chrome/browser/ui/quick_answers/ui/quick_answers_view.cc
@@ -388,7 +388,7 @@ return; ResetContentView(); - main_view_->SetBackground(views::CreateSolidBackground(SK_ColorTRANSPARENT)); + main_view_->SetBackground(nullptr); // Add title. content_view_->AddChildView(
diff --git a/chrome/browser/ui/ui_features.cc b/chrome/browser/ui/ui_features.cc index 9a691fc..75a12c3 100644 --- a/chrome/browser/ui/ui_features.cc +++ b/chrome/browser/ui/ui_features.cc
@@ -130,6 +130,9 @@ const base::Feature kSidePanelImprovedClobbering{ "SidePanelImprovedClobbering", base::FEATURE_DISABLED_BY_DEFAULT}; +const base::Feature kSidePanelJourneys{"SidePanelJourneys", + base::FEATURE_DISABLED_BY_DEFAULT}; + // Enables tabs to scroll in the tabstrip. https://crbug.com/951078 const base::Feature kScrollableTabStrip{"ScrollableTabStrip", base::FEATURE_DISABLED_BY_DEFAULT};
diff --git a/chrome/browser/ui/ui_features.h b/chrome/browser/ui/ui_features.h index 435c946..e72d5ad4 100644 --- a/chrome/browser/ui/ui_features.h +++ b/chrome/browser/ui/ui_features.h
@@ -70,6 +70,8 @@ extern const base::Feature kSidePanelDragAndDrop; extern const base::Feature kSidePanelImprovedClobbering; +extern const base::Feature kSidePanelJourneys; + #if BUILDFLAG(ENABLE_SIDE_SEARCH) extern const base::Feature kSideSearch; extern const base::Feature kSideSearchClearCacheWhenClosed;
diff --git a/chrome/browser/ui/user_education/tutorial/tutorial.cc b/chrome/browser/ui/user_education/tutorial/tutorial.cc index 64a6957..9ce6e94 100644 --- a/chrome/browser/ui/user_education/tutorial/tutorial.cc +++ b/chrome/browser/ui/user_education/tutorial/tutorial.cc
@@ -201,9 +201,12 @@ params.arrow = arrow_; params.timeout = base::TimeDelta(); params.dismiss_callback = base::BindOnce( - [](TutorialService* tutorial_service) { - tutorial_service->AbortTutorial(); + [](absl::optional<int> step_number, + TutorialService* tutorial_service) { + tutorial_service->AbortTutorial(step_number); }, + progress_.has_value() ? absl::make_optional(progress_.value().first) + : absl::nullopt, base::Unretained(tutorial_service)); if (is_last_step_) { @@ -290,13 +293,13 @@ DCHECK_EQ(current_step, max_progress); builder.SetAbortedCallback(base::BindOnce( - [](TutorialService* tutorial_service, ui::TrackedElement* last_element, - ui::ElementIdentifier last_id, + [](int step_number, TutorialService* tutorial_service, + ui::TrackedElement* last_element, ui::ElementIdentifier last_id, ui::InteractionSequence::StepType last_step_type, ui::InteractionSequence::AbortedReason aborted_reason) { - tutorial_service->AbortTutorial(); + tutorial_service->AbortTutorial(step_number); }, - tutorial_service)); + current_step, tutorial_service)); return builder.Build(); }
diff --git a/chrome/browser/ui/user_education/tutorial/tutorial_description.h b/chrome/browser/ui/user_education/tutorial/tutorial_description.h index a014338..416ea2a 100644 --- a/chrome/browser/ui/user_education/tutorial/tutorial_description.h +++ b/chrome/browser/ui/user_education/tutorial/tutorial_description.h
@@ -33,7 +33,7 @@ virtual void RecordComplete(bool value) = 0; // Records the step on which the tutorial was aborted. - virtual void RecordAbort(int step) = 0; + virtual void RecordAbortStep(int step) = 0; // Records whether, when an IPH offered the tutorial, the user opted into // seeing the tutorial or not. @@ -63,7 +63,7 @@ UMA_HISTOGRAM_BOOLEAN(completed_name_, value); } - void RecordAbort(int step) override { + void RecordAbortStep(int step) override { UMA_HISTOGRAM_EXACT_LINEAR(aborted_name_, step, max_steps_); }
diff --git a/chrome/browser/ui/user_education/tutorial/tutorial_service.cc b/chrome/browser/ui/user_education/tutorial/tutorial_service.cc index 34a4d832..3ecf527 100644 --- a/chrome/browser/ui/user_education/tutorial/tutorial_service.cc +++ b/chrome/browser/ui/user_education/tutorial/tutorial_service.cc
@@ -90,7 +90,7 @@ return true; } -void TutorialService::AbortTutorial() { +void TutorialService::AbortTutorial(absl::optional<int> abort_step) { // For various reasons, we could get called here while e.g. tearing down the // interaction sequence. We only want to actually run AbortTutorial() or // CompleteTutorial() exactly once, so we won't continue if the tutorial has @@ -106,8 +106,9 @@ if (running_tutorial_was_restarted_) return CompleteTutorial(); - // TODO:(crbug.com/1295165) provide step number information from the - // interaction sequence into the abort callback. + if (abort_step.has_value()) + running_tutorial_creation_params_->description_->histograms + ->RecordAbortStep(abort_step.value()); // Log the failure of completion for the tutorial. if (running_tutorial_creation_params_->description_->histograms)
diff --git a/chrome/browser/ui/user_education/tutorial/tutorial_service.h b/chrome/browser/ui/user_education/tutorial/tutorial_service.h index d542a5e..78c38dd 100644 --- a/chrome/browser/ui/user_education/tutorial/tutorial_service.h +++ b/chrome/browser/ui/user_education/tutorial/tutorial_service.h
@@ -13,6 +13,7 @@ #include "chrome/browser/ui/user_education/tutorial/tutorial.h" #include "chrome/browser/ui/user_education/tutorial/tutorial_identifier.h" #include "components/keyed_service/core/keyed_service.h" +#include "third_party/abseil-cpp/absl/types/optional.h" #include "ui/base/interaction/element_tracker.h" class HelpBubble; @@ -61,6 +62,9 @@ return currently_displayed_bubble_.get(); } + // Calls the abort code for the running tutorial. + void AbortTutorial(absl::optional<int> abort_step); + private: friend class Tutorial; friend class TutorialInteractiveUitest; @@ -75,9 +79,6 @@ ui::ElementContext context_; }; - // Calls the abort code for the running tutorial. - void AbortTutorial(); - // Calls the completion code for the running tutorial. // TODO (dpenning): allow for registering a callback that performs any // IPH/other code on completion of tutorial
diff --git a/chrome/browser/ui/views/apps/app_dialog/app_block_dialog_view.cc b/chrome/browser/ui/views/apps/app_dialog/app_block_dialog_view.cc index 56e81ea..bb99530d 100644 --- a/chrome/browser/ui/views/apps/app_dialog/app_block_dialog_view.cc +++ b/chrome/browser/ui/views/apps/app_dialog/app_block_dialog_view.cc
@@ -33,7 +33,7 @@ AppBlockDialogView::AppBlockDialogView(const std::string& app_name, const gfx::ImageSkia& image, Profile* profile) - : AppDialogView(image) { + : AppDialogView(ui::ImageModel::FromImageSkia(image)) { SetTitle(l10n_util::GetStringFUTF16(IDS_APP_BLOCK_PROMPT_TITLE, base::UTF8ToUTF16(app_name)));
diff --git a/chrome/browser/ui/views/apps/app_dialog/app_dialog_view.cc b/chrome/browser/ui/views/apps/app_dialog/app_dialog_view.cc index dd79186c..c9493ef 100644 --- a/chrome/browser/ui/views/apps/app_dialog/app_dialog_view.cc +++ b/chrome/browser/ui/views/apps/app_dialog/app_dialog_view.cc
@@ -13,9 +13,9 @@ #include "ui/views/controls/label.h" #include "ui/views/layout/box_layout.h" -AppDialogView::AppDialogView(const gfx::ImageSkia& image) - : BubbleDialogDelegateView(nullptr, views::BubbleBorder::NONE) { - SetIcon(image); +AppDialogView::AppDialogView(const ui::ImageModel& image) + : BubbleDialogDelegateView(nullptr, views::BubbleBorder::NONE), + image_(image) { SetShowIcon(true); SetShowCloseButton(false); SetModalType(ui::MODAL_TYPE_SYSTEM); @@ -25,6 +25,11 @@ AppDialogView::~AppDialogView() = default; +void AppDialogView::OnThemeChanged() { + views::BubbleDialogDelegateView::OnThemeChanged(); + SetIcon(image_.Rasterize(GetColorProvider())); +} + void AppDialogView::InitializeView(const std::u16string& heading_text) { SetButtons(ui::DIALOG_BUTTON_OK); ChromeLayoutProvider* provider = ChromeLayoutProvider::Get();
diff --git a/chrome/browser/ui/views/apps/app_dialog/app_dialog_view.h b/chrome/browser/ui/views/apps/app_dialog/app_dialog_view.h index 1961b89..cbdd1f5b 100644 --- a/chrome/browser/ui/views/apps/app_dialog/app_dialog_view.h +++ b/chrome/browser/ui/views/apps/app_dialog/app_dialog_view.h
@@ -12,8 +12,8 @@ #include "ui/views/bubble/bubble_dialog_delegate_view.h" #include "ui/views/controls/label.h" -namespace gfx { -class ImageSkia; +namespace ui { +class ImageModel; } // The app dialog that may display the app's name, icon. This is the base class @@ -21,9 +21,12 @@ class AppDialogView : public views::BubbleDialogDelegateView { public: METADATA_HEADER(AppDialogView); - explicit AppDialogView(const gfx::ImageSkia& image); + explicit AppDialogView(const ui::ImageModel& image); ~AppDialogView() override; + // views::BubbleDialogDelegateView: + void OnThemeChanged() override; + protected: void InitializeView(const std::u16string& heading_text); @@ -31,6 +34,7 @@ void SetLabelText(const std::u16string& text); private: + ui::ImageModel image_; raw_ptr<views::Label> label_ = nullptr; };
diff --git a/chrome/browser/ui/views/apps/app_dialog/app_pause_dialog_view.cc b/chrome/browser/ui/views/apps/app_dialog/app_pause_dialog_view.cc index 9f2838c..76ef921 100644 --- a/chrome/browser/ui/views/apps/app_dialog/app_pause_dialog_view.cc +++ b/chrome/browser/ui/views/apps/app_dialog/app_pause_dialog_view.cc
@@ -38,7 +38,7 @@ const gfx::ImageSkia& image, const apps::PauseData& pause_data, apps::AppServiceProxy::OnPauseDialogClosedCallback closed_callback) - : AppDialogView(image) { + : AppDialogView(ui::ImageModel::FromImageSkia(image)) { SetTitle(l10n_util::GetStringFUTF16(IDS_APP_PAUSE_PROMPT_TITLE, base::UTF8ToUTF16(app_name)));
diff --git a/chrome/browser/ui/views/apps/app_dialog/app_uninstall_dialog_view.cc b/chrome/browser/ui/views/apps/app_dialog/app_uninstall_dialog_view.cc index 9be41627..8fd3891 100644 --- a/chrome/browser/ui/views/apps/app_dialog/app_uninstall_dialog_view.cc +++ b/chrome/browser/ui/views/apps/app_dialog/app_uninstall_dialog_view.cc
@@ -108,7 +108,7 @@ gfx::ImageSkia image, apps::UninstallDialog* uninstall_dialog) : apps::UninstallDialog::UiBase(uninstall_dialog), - AppDialogView(image), + AppDialogView(ui::ImageModel::FromImageSkia(image)), profile_(profile) { SetModalType(ui::MODAL_TYPE_WINDOW); SetTitle(GetWindowTitleForApp(profile, app_type, app_id, app_name));
diff --git a/chrome/browser/ui/views/autofill/payments/payments_view_util.cc b/chrome/browser/ui/views/autofill/payments/payments_view_util.cc index 68fa296c..dc59739c 100644 --- a/chrome/browser/ui/views/autofill/payments/payments_view_util.cc +++ b/chrome/browser/ui/views/autofill/payments/payments_view_util.cc
@@ -47,8 +47,6 @@ constexpr int kSeparatorHeight = 12; -constexpr SkColor kTitleSeparatorColor = SkColorSetRGB(0x9E, 0x9E, 0x9E); - class IconView : public views::ImageView { public: METADATA_HEADER(IconView); @@ -115,7 +113,6 @@ auto* icon_view_ptr = AddChildView(std::make_unique<IconView>(icon_to_show)); auto separator = std::make_unique<views::Separator>(); - separator->SetColor(kTitleSeparatorColor); separator->SetPreferredHeight(kSeparatorHeight); auto* separator_ptr = AddChildView(std::move(separator));
diff --git a/chrome/browser/ui/views/bubble/webui_bubble_dialog_view.cc b/chrome/browser/ui/views/bubble/webui_bubble_dialog_view.cc index 34a61be..15813c1 100644 --- a/chrome/browser/ui/views/bubble/webui_bubble_dialog_view.cc +++ b/chrome/browser/ui/views/bubble/webui_bubble_dialog_view.cc
@@ -8,7 +8,6 @@ #include "content/public/browser/native_web_keyboard_event.h" #include "content/public/browser/visibility.h" #include "ui/base/metadata/metadata_impl_macros.h" -#include "ui/gfx/geometry/rect.h" #include "ui/gfx/geometry/rounded_corners_f.h" #include "ui/views/bubble/bubble_border.h" #include "ui/views/controls/webview/webview.h" @@ -45,13 +44,11 @@ WebUIBubbleDialogView::WebUIBubbleDialogView( views::View* anchor_view, - BubbleContentsWrapper* contents_wrapper, - const absl::optional<gfx::Rect>& anchor_rect) + BubbleContentsWrapper* contents_wrapper) : BubbleDialogDelegateView(anchor_view, views::BubbleBorder::TOP_RIGHT), contents_wrapper_(contents_wrapper), web_view_(AddChildView(std::make_unique<WebUIBubbleView>( - contents_wrapper_->web_contents()))), - bubble_anchor_(anchor_rect) { + contents_wrapper_->web_contents()))) { DCHECK(!contents_wrapper_->GetHost()); contents_wrapper_->SetHost(weak_factory_.GetWeakPtr()); @@ -128,11 +125,5 @@ event, GetFocusManager()); } -gfx::Rect WebUIBubbleDialogView::GetAnchorRect() const { - if (bubble_anchor_) - return bubble_anchor_.value(); - return BubbleDialogDelegateView::GetAnchorRect(); -} - BEGIN_METADATA(WebUIBubbleDialogView, views::BubbleDialogDelegateView) END_METADATA
diff --git a/chrome/browser/ui/views/bubble/webui_bubble_dialog_view.h b/chrome/browser/ui/views/bubble/webui_bubble_dialog_view.h index 75079c2..fa9b557 100644 --- a/chrome/browser/ui/views/bubble/webui_bubble_dialog_view.h +++ b/chrome/browser/ui/views/bubble/webui_bubble_dialog_view.h
@@ -19,22 +19,14 @@ } // namespace views // A Views bubble host for a BubbleContentsWrapper. -// NOTE: The anchor rect takes precedence over the anchor view in this class. -// This is the opposite of the behaviour specified in the -// BubbleDialogDelegateView base class. class WebUIBubbleDialogView : public views::WidgetObserver, public views::BubbleDialogDelegateView, public BubbleContentsWrapper::Host { public: METADATA_HEADER(WebUIBubbleDialogView); - // An optional anchor_rect can be passed to anchor the dialog to a specific - // point on the screen. The provided anchor_rect will take precedent over the - // anchor_view. - WebUIBubbleDialogView( - views::View* anchor_view, - BubbleContentsWrapper* contents_wrapper, - const absl::optional<gfx::Rect>& anchor_rect = absl::nullopt); + WebUIBubbleDialogView(views::View* anchor_view, + BubbleContentsWrapper* contents_wrapper); WebUIBubbleDialogView(const WebUIBubbleDialogView&) = delete; WebUIBubbleDialogView& operator=(const WebUIBubbleDialogView&) = delete; ~WebUIBubbleDialogView() override; @@ -64,15 +56,6 @@ } void ResetWebUIContentsForTesting(); - // TODO(ffred): This is necessary because the default behaviour of the bubble - // dialog is that anchor view positioning takes precedent over anchor rect. - // This will not work because the anchor rect is used to explicitly specify - // the positioning of the bubble and the anchor view cannot be null. - // - // That being said, the base class should reconsider its behaviour so that - // this type of override is not necessary. - gfx::Rect GetAnchorRect() const override; - virtual void Redraw() {} private: @@ -82,7 +65,6 @@ raw_ptr<BubbleContentsWrapper> contents_wrapper_; raw_ptr<views::WebView> web_view_; - absl::optional<gfx::Rect> bubble_anchor_; base::ScopedObservation<views::Widget, views::WidgetObserver> bubble_widget_observation_{this};
diff --git a/chrome/browser/ui/views/bubble/webui_bubble_dialog_view_unittest.cc b/chrome/browser/ui/views/bubble/webui_bubble_dialog_view_unittest.cc index 2cbbbc07..6ad14bdb 100644 --- a/chrome/browser/ui/views/bubble/webui_bubble_dialog_view_unittest.cc +++ b/chrome/browser/ui/views/bubble/webui_bubble_dialog_view_unittest.cc
@@ -12,7 +12,6 @@ #include "chrome/test/base/testing_profile.h" #include "chrome/test/views/chrome_views_test_base.h" #include "testing/gtest/include/gtest/gtest.h" -#include "ui/gfx/geometry/rect.h" #include "ui/views/controls/webview/webview.h" #include "ui/views/widget/unique_widget_ptr.h" @@ -122,22 +121,5 @@ EXPECT_EQ(nullptr, web_view()->web_contents()); } -TEST_F(WebUIBubbleDialogViewTest, GetAnchorRectWithProvidedAnchorRect) { - UniqueWidgetPtr anchor_widget = std::make_unique<Widget>(); - Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_WINDOW); - anchor_widget->Init(std::move(params)); - auto profile_ = std::make_unique<TestingProfile>(); - auto contents_wrapper = - std::make_unique<TestBubbleContentsWrapper>(profile_.get()); - - gfx::Rect anchor(666, 666, 0, 0); - auto bubble_dialog = std::make_unique<WebUIBubbleDialogView>( - anchor_widget->GetContentsView(), contents_wrapper.get(), anchor); - - EXPECT_EQ(bubble_dialog->GetAnchorRect(), anchor); - - anchor_widget->CloseNow(); -} - } // namespace test } // namespace views
diff --git a/chrome/browser/ui/views/bubble/webui_bubble_manager.cc b/chrome/browser/ui/views/bubble/webui_bubble_manager.cc index 494165b5..4dfb6da 100644 --- a/chrome/browser/ui/views/bubble/webui_bubble_manager.cc +++ b/chrome/browser/ui/views/bubble/webui_bubble_manager.cc
@@ -6,7 +6,6 @@ #include "base/timer/timer.h" #include "chrome/browser/ui/browser_list.h" -#include "ui/gfx/geometry/rect.h" #include "ui/views/widget/widget.h" namespace { @@ -24,13 +23,13 @@ WebUIBubbleManager::~WebUIBubbleManager() = default; -bool WebUIBubbleManager::ShowBubble(const absl::optional<gfx::Rect>& anchor) { +bool WebUIBubbleManager::ShowBubble() { if (bubble_view_) return false; cache_timer_->Stop(); - bubble_view_ = CreateWebUIBubbleDialog(anchor); + bubble_view_ = CreateWebUIBubbleDialog(); bubble_widget_observation_.Observe(bubble_view_->GetWidget()); // Some bubbles can be triggered when there is no active browser (e.g. emoji
diff --git a/chrome/browser/ui/views/bubble/webui_bubble_manager.h b/chrome/browser/ui/views/bubble/webui_bubble_manager.h index 95d9914..9651502 100644 --- a/chrome/browser/ui/views/bubble/webui_bubble_manager.h +++ b/chrome/browser/ui/views/bubble/webui_bubble_manager.h
@@ -32,14 +32,13 @@ const WebUIBubbleManager& operator=(const WebUIBubbleManager&) = delete; ~WebUIBubbleManager() override; - bool ShowBubble(const absl::optional<gfx::Rect>& anchor = absl::nullopt); + bool ShowBubble(); void CloseBubble(); views::Widget* GetBubbleWidget() const; bool bubble_using_cached_web_contents() const { return bubble_using_cached_web_contents_; } - virtual base::WeakPtr<WebUIBubbleDialogView> CreateWebUIBubbleDialog( - const absl::optional<gfx::Rect>& anchor) = 0; + virtual base::WeakPtr<WebUIBubbleDialogView> CreateWebUIBubbleDialog() = 0; // views::WidgetObserver: void OnWidgetDestroying(views::Widget* widget) override; @@ -111,8 +110,7 @@ } ~WebUIBubbleManagerT() override = default; - base::WeakPtr<WebUIBubbleDialogView> CreateWebUIBubbleDialog( - const absl::optional<gfx::Rect>& anchor) override { + base::WeakPtr<WebUIBubbleDialogView> CreateWebUIBubbleDialog() override { BubbleContentsWrapper* contents_wrapper = nullptr; // Only use per profile peristence if the flag is set and if a @@ -151,8 +149,8 @@ contents_wrapper = cached_contents_wrapper(); } - auto bubble_view = std::make_unique<WebUIBubbleDialogView>( - anchor_view_, contents_wrapper, anchor); + auto bubble_view = + std::make_unique<WebUIBubbleDialogView>(anchor_view_, contents_wrapper); auto weak_ptr = bubble_view->GetWeakPtr(); views::BubbleDialogDelegateView::CreateBubble(std::move(bubble_view)); return weak_ptr;
diff --git a/chrome/browser/ui/views/bubble/webui_bubble_manager_unittest.cc b/chrome/browser/ui/views/bubble/webui_bubble_manager_unittest.cc index 4668e9c..f16df73 100644 --- a/chrome/browser/ui/views/bubble/webui_bubble_manager_unittest.cc +++ b/chrome/browser/ui/views/bubble/webui_bubble_manager_unittest.cc
@@ -142,24 +142,6 @@ profile_manager()->DeleteTestingProfile(kProfileName); } -TEST_F(WebUIBubbleManagerTest, CreateWebUIBubbleDialogWithAnchorProvided) { - const char* kProfileName = "Person 1"; - auto* test_profile = profile_manager()->CreateTestingProfile(kProfileName); - - std::unique_ptr<views::Widget> anchor_widget = - CreateTestWidget(views::Widget::InitParams::TYPE_WINDOW); - auto bubble_manager = - std::make_unique<WebUIBubbleManagerT<TestWebUIController>>( - anchor_widget->GetContentsView(), test_profile, GURL(kTestURL), 1); - bubble_manager->DisableCloseBubbleHelperForTesting(); - - gfx::Rect anchor(666, 666, 0, 0); - bubble_manager->ShowBubble(anchor); - auto bubble_view = bubble_manager->bubble_view_for_testing(); - - EXPECT_EQ(bubble_view->GetAnchorRect(), anchor); -} - #if !BUILDFLAG(IS_CHROMEOS_ASH) // No multi-profile on ChromeOS. TEST_F(WebUIBubbleManagerTest,
diff --git a/chrome/browser/ui/views/extensions/extension_dialog.cc b/chrome/browser/ui/views/extensions/extension_dialog.cc index 2ab4322b..d36eddb0 100644 --- a/chrome/browser/ui/views/extensions/extension_dialog.cc +++ b/chrome/browser/ui/views/extensions/extension_dialog.cc
@@ -13,6 +13,7 @@ #include "chrome/browser/extensions/extension_view_host_factory.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/ui/browser_dialogs.h" +#include "chrome/browser/ui/color/chrome_color_id.h" #include "chrome/browser/ui/views/extensions/extension_dialog_observer.h" #include "chrome/browser/ui/views/extensions/extension_view_views.h" #include "components/constrained_window/constrained_window_views.h" @@ -147,7 +148,8 @@ // Show a white background while the extension loads. This is prettier than // flashing a black unfilled window frame. - extension_view_->SetBackground(views::CreateSolidBackground(SK_ColorWHITE)); + extension_view_->SetBackground(views::CreateThemedSolidBackground( + extension_view_, kColorExtensionDialogBackground)); extension_view_->SetPreferredSize(init_params.size); extension_view_->SetMinimumSize(init_params.min_size); extension_view_->SetVisible(true);
diff --git a/chrome/browser/ui/views/extensions/extensions_menu_item_view.cc b/chrome/browser/ui/views/extensions/extensions_menu_item_view.cc index 5fc6cb6..3b4d075 100644 --- a/chrome/browser/ui/views/extensions/extensions_menu_item_view.cc +++ b/chrome/browser/ui/views/extensions/extensions_menu_item_view.cc
@@ -13,6 +13,7 @@ #include "chrome/app/vector_icons/vector_icons.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/ui/browser.h" +#include "chrome/browser/ui/color/chrome_color_id.h" #include "chrome/browser/ui/extensions/extension_site_access_combobox_model.h" #include "chrome/browser/ui/toolbar/toolbar_action_view_controller.h" #include "chrome/browser/ui/toolbar/toolbar_actions_model.h" @@ -53,14 +54,14 @@ void SetButtonIconWithColor(HoverButton* button, const gfx::VectorIcon& icon, - SkColor icon_color) { + SkColor icon_color, + SkColor disabled_icon_color) { button->SetImage( views::Button::STATE_NORMAL, gfx::CreateVectorIcon(icon, kSecondaryIconSizeDp, icon_color)); - button->SetImage(views::Button::STATE_DISABLED, - gfx::CreateVectorIcon( - icon, kSecondaryIconSizeDp, - SkColorSetA(icon_color, gfx::kDisabledControlAlpha))); + button->SetImage( + views::Button::STATE_DISABLED, + gfx::CreateVectorIcon(icon, kSecondaryIconSizeDp, disabled_icon_color)); } } // namespace @@ -198,13 +199,15 @@ void InstalledExtensionMenuItemView::OnThemeChanged() { views::View::OnThemeChanged(); - const SkColor icon_color = - GetAdjustedIconColor(GetColorProvider()->GetColor(ui::kColorMenuIcon)); + const auto* const color_provider = GetColorProvider(); + const SkColor icon_color = color_provider->GetColor(kColorExtensionMenuIcon); if (pin_button_) views::InkDrop::Get(pin_button_)->SetBaseColor(icon_color); - SetButtonIconWithColor(context_menu_button_, kBrowserToolsIcon, icon_color); + SetButtonIconWithColor( + context_menu_button_, kBrowserToolsIcon, icon_color, + color_provider->GetColor(kColorExtensionMenuIconDisabled)); UpdatePinButton(); } @@ -234,15 +237,15 @@ if (!GetWidget()) return; - SkColor unpinned_icon_color = - GetAdjustedIconColor(GetColorProvider()->GetColor(ui::kColorMenuIcon)); - SkColor icon_color = IsPinned() - ? GetAdjustedIconColor(GetColorProvider()->GetColor( - ui::kColorButtonBackgroundProminent)) - : unpinned_icon_color; + const auto* const color_provider = GetColorProvider(); + const SkColor icon_color = color_provider->GetColor( + IsPinned() ? kColorExtensionMenuPinButtonIcon : kColorExtensionMenuIcon); + const SkColor disabled_icon_color = color_provider->GetColor( + IsPinned() ? kColorExtensionMenuPinButtonIconDisabled + : kColorExtensionMenuIconDisabled); SetButtonIconWithColor(pin_button_, IsPinned() ? views::kUnpinIcon : views::kPinIcon, - icon_color); + icon_color, disabled_icon_color); } bool InstalledExtensionMenuItemView::IsPinned() const { @@ -271,16 +274,6 @@ return context_menu_controller_->IsMenuRunning(); } -SkColor InstalledExtensionMenuItemView::GetAdjustedIconColor( - SkColor icon_color) const { - const SkColor background_color = - GetColorProvider()->GetColor(ui::kColorBubbleBackground); - if (background_color != SK_ColorTRANSPARENT) { - return color_utils::BlendForMinContrast(icon_color, background_color).color; - } - return icon_color; -} - BEGIN_METADATA(SiteAccessMenuItemView, views::View) END_METADATA
diff --git a/chrome/browser/ui/views/extensions/extensions_menu_item_view.h b/chrome/browser/ui/views/extensions/extensions_menu_item_view.h index e1a9a32ac..622d4c7 100644 --- a/chrome/browser/ui/views/extensions/extensions_menu_item_view.h +++ b/chrome/browser/ui/views/extensions/extensions_menu_item_view.h
@@ -124,10 +124,6 @@ HoverButton* pin_button_for_testing() { return pin_button_; } private: - // Maybe adjust `icon_color` to assure high enough contrast with the - // background. - SkColor GetAdjustedIconColor(SkColor icon_color) const; - // Returns whether the action corresponding to this view is pinned to the // toolbar. bool IsPinned() const;
diff --git a/chrome/browser/ui/views/extensions/extensions_menu_view.cc b/chrome/browser/ui/views/extensions/extensions_menu_view.cc index adb8e67..b1cc980 100644 --- a/chrome/browser/ui/views/extensions/extensions_menu_view.cc +++ b/chrome/browser/ui/views/extensions/extensions_menu_view.cc
@@ -175,6 +175,10 @@ gfx::Insets::TLBR(0, kSettingsIconHorizontalPadding, 0, 0))); footer->SetImageLabelSpacing(footer->GetImageLabelSpacing() + kSettingsIconHorizontalPadding); + footer->SetImageModel( + views::Button::STATE_NORMAL, + ui::ImageModel::FromVectorIcon(vector_icons::kSettingsIcon, + ui::kColorIcon, kSettingsIconSize)); manage_extensions_button_ = footer.get(); AddChildView(std::move(footer)); @@ -408,23 +412,6 @@ return std::u16string(); } -void ExtensionsMenuView::OnThemeChanged() { - BubbleDialogDelegateView::OnThemeChanged(); - if (manage_extensions_button_) { - const SkColor background_color = - GetColorProvider()->GetColor(ui::kColorBubbleBackground); - SkColor icon_color = GetColorProvider()->GetColor(ui::kColorMenuIcon); - if (background_color != SK_ColorTRANSPARENT) { - icon_color = - color_utils::BlendForMinContrast(icon_color, background_color).color; - } - manage_extensions_button_->SetImage( - views::Button::STATE_NORMAL, - gfx::CreateVectorIcon(vector_icons::kSettingsIcon, kSettingsIconSize, - icon_color)); - } -} - void ExtensionsMenuView::TabChangedAt(content::WebContents* contents, int index, TabChangeType change_type) {
diff --git a/chrome/browser/ui/views/extensions/extensions_menu_view.h b/chrome/browser/ui/views/extensions/extensions_menu_view.h index 56b028b..1fcbb19e 100644 --- a/chrome/browser/ui/views/extensions/extensions_menu_view.h +++ b/chrome/browser/ui/views/extensions/extensions_menu_view.h
@@ -71,7 +71,6 @@ // views::BubbleDialogDelegateView: std::u16string GetAccessibleWindowTitle() const override; - void OnThemeChanged() override; // TabStripModelObserver: void TabChangedAt(content::WebContents* contents,
diff --git a/chrome/browser/ui/views/frame/browser_non_client_frame_view_chromeos_browsertest.cc b/chrome/browser/ui/views/frame/browser_non_client_frame_view_chromeos_browsertest.cc index d2173fd..6ae5e32 100644 --- a/chrome/browser/ui/views/frame/browser_non_client_frame_view_chromeos_browsertest.cc +++ b/chrome/browser/ui/views/frame/browser_non_client_frame_view_chromeos_browsertest.cc
@@ -1206,7 +1206,7 @@ SkColor active_frame_color = window->GetProperty(chromeos::kFrameActiveColorKey); - EXPECT_EQ(active_frame_color, SkColorSetRGB(253, 254, 255)) + EXPECT_EQ(active_frame_color, SkColorSetRGB(0xFD, 0xFE, 0xFF)) << "RGB: " << SkColorGetR(active_frame_color) << ", " << SkColorGetG(active_frame_color) << ", " << SkColorGetB(active_frame_color);
diff --git a/chrome/browser/ui/views/frame/opaque_browser_frame_view_browsertest.cc b/chrome/browser/ui/views/frame/opaque_browser_frame_view_browsertest.cc index 7ee2b72..2d6d4f77 100644 --- a/chrome/browser/ui/views/frame/opaque_browser_frame_view_browsertest.cc +++ b/chrome/browser/ui/views/frame/opaque_browser_frame_view_browsertest.cc
@@ -184,7 +184,7 @@ IN_PROC_BROWSER_TEST_F(WebAppOpaqueBrowserFrameViewTest, MediumThemeColor) { // Use the theme color for Gmail. - if (!InstallAndLaunchWebApp(SkColorSetRGB(0xd6, 0x49, 0x3b))) + if (!InstallAndLaunchWebApp(SkColorSetRGB(0xD6, 0x49, 0x3B))) return; EXPECT_EQ(web_app_frame_toolbar_->active_color_for_testing(), web_app_frame_toolbar_->GetColorProvider()->GetColor(
diff --git a/chrome/browser/ui/views/infobars/infobar_view.cc b/chrome/browser/ui/views/infobars/infobar_view.cc index 36a60ac45..70d6f8e 100644 --- a/chrome/browser/ui/views/infobars/infobar_view.cc +++ b/chrome/browser/ui/views/infobars/infobar_view.cc
@@ -88,10 +88,10 @@ SetPaintToLayer(); layer()->SetMasksToBounds(true); - gfx::Image image = this->delegate()->GetIcon(); + const ui::ImageModel& image = this->delegate()->GetIcon(); if (!image.IsEmpty()) { icon_ = new views::ImageView; - icon_->SetImage(image.ToImageSkia()); + icon_->SetImage(image); icon_->SizeToPreferredSize(); icon_->SetProperty( views::kMarginsKey,
diff --git a/chrome/browser/ui/views/location_bar/icon_label_bubble_view_unittest.cc b/chrome/browser/ui/views/location_bar/icon_label_bubble_view_unittest.cc index 0424284..0ced146 100644 --- a/chrome/browser/ui/views/location_bar/icon_label_bubble_view_unittest.cc +++ b/chrome/browser/ui/views/location_bar/icon_label_bubble_view_unittest.cc
@@ -39,7 +39,6 @@ const int kOpenTimeMS = 100; const int kAnimationDurationMS = (kOpenTimeMS * 2) + kStayOpenTimeMS; const int kImageSize = 15; -const SkColor kTestColor = SkColorSetRGB(64, 64, 64); const int kNumberOfSteps = 300; class TestIconLabelBubbleView : public IconLabelBubbleView { @@ -142,10 +141,10 @@ public: // IconLabelBubbleView::Delegate: SkColor GetIconLabelBubbleSurroundingForegroundColor() const override { - return kTestColor; + return gfx::kPlaceholderColor; } SkColor GetIconLabelBubbleBackgroundColor() const override { - return kTestColor; + return gfx::kPlaceholderColor; } };
diff --git a/chrome/browser/ui/views/omnibox/omnibox_suggestion_button_row_view.cc b/chrome/browser/ui/views/omnibox/omnibox_suggestion_button_row_view.cc index fd6ad63..ccbc4291 100644 --- a/chrome/browser/ui/views/omnibox/omnibox_suggestion_button_row_view.cc +++ b/chrome/browser/ui/views/omnibox/omnibox_suggestion_button_row_view.cc
@@ -49,8 +49,7 @@ : MdTextButton(std::move(callback), text, CONTEXT_OMNIBOX_PRIMARY), icon_(&icon), popup_contents_view_(popup_contents_view), - selection_(selection), - icon_color_(SK_ColorTRANSPARENT) { + selection_(selection) { SetTriggerableEventFlags(GetTriggerableEventFlags() | ui::EF_MIDDLE_MOUSE_BUTTON); views::InstallPillHighlightPathGenerator(this); @@ -98,11 +97,8 @@ // We can't use colors from NativeTheme as the omnibox theme might be // different (for example, if the NTP colors are customized). const auto* const theme_provider = GetThemeProvider(); - SkColor icon_color = - icon_color_ != SK_ColorTRANSPARENT - ? icon_color_ - : GetOmniboxColor(theme_provider, OmniboxPart::RESULTS_ICON, - theme_state_); + SkColor icon_color = GetOmniboxColor( + theme_provider, OmniboxPart::RESULTS_ICON, theme_state_); SetImage( views::Button::STATE_NORMAL, gfx::CreateVectorIcon(*icon_, GetLayoutConstant(LOCATION_BAR_ICON_SIZE), @@ -129,11 +125,9 @@ node_data->role = ax::mojom::Role::kListBoxOption; } - void SetIcon(const gfx::VectorIcon& icon, - SkColor icon_color = SK_ColorTRANSPARENT) { - if (icon_ != &icon || icon_color != icon_color_) { + void SetIcon(const gfx::VectorIcon& icon) { + if (icon_ != &icon) { icon_ = &icon; - icon_color_ = icon_color; OnThemeChanged(); } } @@ -143,7 +137,6 @@ raw_ptr<OmniboxPopupContentsView> popup_contents_view_; OmniboxPopupSelection selection_; OmniboxPartState theme_state_ = OmniboxPartState::NORMAL; - SkColor icon_color_; }; BEGIN_METADATA(OmniboxSuggestionRowButton, views::MdTextButton) @@ -229,8 +222,7 @@ pedal_button_->SetText(pedal_strings.hint); pedal_button_->SetTooltipText(pedal_strings.suggestion_contents); pedal_button_->SetAccessibleName(pedal_strings.accessibility_hint); - pedal_button_->SetIcon(match().action->GetVectorIcon(), - match().action->GetVectorIconColor()); + pedal_button_->SetIcon(match().action->GetVectorIcon()); } bool is_any_button_visible = keyword_button_->GetVisible() ||
diff --git a/chrome/browser/ui/views/overlay/video_overlay_window_views.cc b/chrome/browser/ui/views/overlay/video_overlay_window_views.cc index 6d2744b6..b35a1ba 100644 --- a/chrome/browser/ui/views/overlay/video_overlay_window_views.cc +++ b/chrome/browser/ui/views/overlay/video_overlay_window_views.cc
@@ -803,7 +803,8 @@ GetCompositor()->AddChildFrameSink(surface_id.frame_sink_id()); has_registered_frame_sink_hierarchy_ = true; video_view_->layer()->SetShowSurface( - surface_id, GetBounds().size(), SK_ColorBLACK, + surface_id, GetBounds().size(), + GetColorProvider()->GetColor(kColorPipWindowBackground), cc::DeadlinePolicy::UseDefaultDeadline(), true /* stretch_content_to_fill_bounds */); }
diff --git a/chrome/browser/ui/views/page_info/page_info_bubble_view_unittest.cc b/chrome/browser/ui/views/page_info/page_info_bubble_view_unittest.cc index 27a87134..7e5f62c 100644 --- a/chrome/browser/ui/views/page_info/page_info_bubble_view_unittest.cc +++ b/chrome/browser/ui/views/page_info/page_info_bubble_view_unittest.cc
@@ -4,9 +4,9 @@ #include "chrome/browser/ui/views/page_info/page_info_bubble_view.h" -#include "base/json/json_reader.h" #include "base/memory/raw_ptr.h" #include "base/strings/utf_string_conversions.h" +#include "base/test/values_test_util.h" #include "build/build_config.h" #include "build/chromeos_buildflags.h" #include "chrome/browser/content_settings/host_content_settings_map_factory.h" @@ -288,6 +288,8 @@ namespace { +using ::base::test::ParseJson; + constexpr char kTestUserEmail[] = "user@example.com"; // Helper class that wraps a TestingProfile and a TestWebContents for a test @@ -394,13 +396,6 @@ std::unique_ptr<test::PageInfoBubbleViewTestApi> api_; }; -base::Value ReadJson(base::StringPiece json) { - base::JSONReader::ValueWithError result = - base::JSONReader::ReadAndReturnValueWithError(json); - EXPECT_TRUE(result.value) << result.error_message; - return result.value ? std::move(*result.value) : base::Value(); -} - views::Label* GetChosenObjectTitle(const views::View::Views& children) { views::View* labels_container = children[1]; return static_cast<views::Label*>(labels_container->children()[0]); @@ -700,7 +695,7 @@ // Add the policy setting to prefs. Profile* profile = web_contents_helper_->profile(); profile->GetPrefs()->Set(prefs::kManagedWebUsbAllowDevicesForUrls, - ReadJson(kWebUsbPolicySetting)); + ParseJson(kWebUsbPolicySetting)); UsbChooserContext* store = UsbChooserContextFactory::GetForProfile(profile); auto objects = store->GetGrantedObjects(origin); @@ -743,7 +738,7 @@ // Add the policy setting to prefs. Profile* profile = web_contents_helper_->profile(); profile->GetPrefs()->Set(prefs::kManagedWebUsbAllowDevicesForUrls, - ReadJson(kWebUsbPolicySetting)); + ParseJson(kWebUsbPolicySetting)); // Connect the UsbChooserContext with FakeUsbDeviceManager. device::FakeUsbDeviceManager usb_device_manager; @@ -849,7 +844,7 @@ // Add the policy setting to prefs. web_contents_helper_->local_state()->Set( - prefs::kManagedSerialAllowUsbDevicesForUrls, ReadJson(R"([ + prefs::kManagedSerialAllowUsbDevicesForUrls, ParseJson(R"([ { "devices": [{ "vendor_id": 6353, "product_id": 5678 }], "urls": [ "http://www.example.com" ]
diff --git a/chrome/browser/ui/views/payments/payment_request_item_list.cc b/chrome/browser/ui/views/payments/payment_request_item_list.cc index 858ac7c..365baff 100644 --- a/chrome/browser/ui/views/payments/payment_request_item_list.cc +++ b/chrome/browser/ui/views/payments/payment_request_item_list.cc
@@ -96,12 +96,16 @@ auto edit_button = views::CreateVectorImageButton( base::BindRepeating(&Item::EditButtonPressed, base::Unretained(this))); edit_button->SetBorder(nullptr); - const SkColor icon_color = - color_utils::DeriveDefaultIconColor(SK_ColorBLACK); - edit_button->SetImage(views::Button::STATE_NORMAL, - gfx::CreateVectorIcon(vector_icons::kEditIcon, - kEditIconSize, icon_color)); - views::InkDrop::Get(edit_button.get())->SetBaseColor(icon_color); + edit_button->SetImageModel( + views::Button::STATE_NORMAL, + ui::ImageModel::FromVectorIcon(vector_icons::kEditIcon, ui::kColorIcon, + kEditIconSize)); + views::InkDrop::Get(edit_button.get()) + ->SetBaseColorCallback(base::BindRepeating( + [](views::View* host) { + return host->GetColorProvider()->GetColor(ui::kColorIcon); + }, + edit_button.get())); edit_button->SetFocusBehavior(views::View::FocusBehavior::ALWAYS); edit_button->SetID(static_cast<int>(DialogViewID::EDIT_ITEM_BUTTON)); edit_button->SetAccessibleName(
diff --git a/chrome/browser/ui/views/payments/secure_payment_confirmation_dialog_view.cc b/chrome/browser/ui/views/payments/secure_payment_confirmation_dialog_view.cc index c9a4be9e..3dd6710 100644 --- a/chrome/browser/ui/views/payments/secure_payment_confirmation_dialog_view.cc +++ b/chrome/browser/ui/views/payments/secure_payment_confirmation_dialog_view.cc
@@ -347,7 +347,7 @@ gfx::CreateVectorIcon( kCreditCardIcon, kSecurePaymentConfirmationInstrumentIconDefaultWidthPx, - SK_ColorGRAY)); + gfx::kPlaceholderColor)); } else { icon_view = CreateSecurePaymentConfirmationInstrumentIconView( gfx::ImageSkia::CreateFrom1xBitmap(*model_->instrument_icon())
diff --git a/chrome/browser/ui/views/profiles/profile_menu_view_base.cc b/chrome/browser/ui/views/profiles/profile_menu_view_base.cc index fdd9d37..1a6a648 100644 --- a/chrome/browser/ui/views/profiles/profile_menu_view_base.cc +++ b/chrome/browser/ui/views/profiles/profile_menu_view_base.cc
@@ -128,14 +128,15 @@ canvas->DrawCircle(gfx::PointF(radius, radius), radius, flags); } -gfx::ImageSkia CreateCircle(int size, SkColor color = SK_ColorWHITE) { +gfx::ImageSkia CreateCircle(int size, SkColor color) { return gfx::CanvasImageSource::MakeImageSkia<CircleImageSource>(size, color); } gfx::ImageSkia CropCircle(const gfx::ImageSkia& image) { DCHECK_EQ(image.width(), image.height()); + // The color here is irrelevant as long as it's opaque; only alpha matters. return gfx::ImageSkiaOperations::CreateMaskedImage( - image, CreateCircle(image.width())); + image, CreateCircle(image.width(), SK_ColorWHITE)); } gfx::ImageSkia AddCircularBackground(const gfx::ImageSkia& image,
diff --git a/chrome/browser/ui/views/read_later/read_later_button.h b/chrome/browser/ui/views/read_later/read_later_button.h index 876916b..ae858f7 100644 --- a/chrome/browser/ui/views/read_later/read_later_button.h +++ b/chrome/browser/ui/views/read_later/read_later_button.h
@@ -71,7 +71,7 @@ const raw_ptr<ReadLaterButton> parent_; - SkColor highlight_color_ = SK_ColorTRANSPARENT; + SkColor highlight_color_ = gfx::kPlaceholderColor; // Animation for showing the highlight color (in icon, text, and // background).
diff --git a/chrome/browser/ui/views/tab_search_bubble_host.cc b/chrome/browser/ui/views/tab_search_bubble_host.cc index 3c4ad72..4c574a5a 100644 --- a/chrome/browser/ui/views/tab_search_bubble_host.cc +++ b/chrome/browser/ui/views/tab_search_bubble_host.cc
@@ -5,11 +5,9 @@ #include "chrome/browser/ui/views/tab_search_bubble_host.h" #include "base/bind.h" -#include "base/i18n/rtl.h" #include "base/metrics/histogram_functions.h" #include "chrome/app/vector_icons/vector_icons.h" #include "chrome/browser/feature_engagement/tracker_factory.h" -#include "chrome/browser/ui/layout_constants.h" #include "chrome/browser/ui/views/tabs/tab_strip_controller.h" #include "chrome/browser/ui/views/user_education/browser_feature_promo_controller.h" #include "chrome/common/webui_url_constants.h" @@ -108,22 +106,8 @@ if (controller) controller->CloseBubble(feature_engagement::kIPHTabSearchFeature); - absl::optional<gfx::Rect> anchor; - if (button_->GetWidget()->IsFullscreen() && !button_->IsDrawn()) { - // Use a screen-coordinate anchor rect when the tabstrip's search button is - // not drawn, and potentially positioned offscreen, in fullscreen mode. - // Place the anchor similar to where the button would be in non-fullscreen - // mode. - gfx::Rect bounds = button_->GetWidget()->GetWorkAreaBoundsInScreen(); - int offset = GetLayoutConstant(TABSTRIP_REGION_VIEW_CONTROL_PADDING); - - int x = base::i18n::IsRTL() ? bounds.x() + offset : bounds.right() - offset; - - anchor.emplace(gfx::Rect(x, bounds.y() + offset, 0, 0)); - } - bubble_created_time_ = base::TimeTicks::Now(); - webui_bubble_manager_.ShowBubble(anchor); + webui_bubble_manager_.ShowBubble(); auto* tracker = feature_engagement::TrackerFactory::GetForBrowserContext(profile_);
diff --git a/chrome/browser/ui/views/tab_search_bubble_host_browsertest.cc b/chrome/browser/ui/views/tab_search_bubble_host_browsertest.cc index 366973f..a0f97b10 100644 --- a/chrome/browser/ui/views/tab_search_bubble_host_browsertest.cc +++ b/chrome/browser/ui/views/tab_search_bubble_host_browsertest.cc
@@ -7,22 +7,11 @@ #include "base/run_loop.h" #include "build/build_config.h" #include "chrome/browser/ui/browser.h" -#include "chrome/browser/ui/exclusive_access/exclusive_access_manager.h" -#include "chrome/browser/ui/exclusive_access/exclusive_access_test.h" -#include "chrome/browser/ui/test/test_browser_dialog.h" #include "chrome/browser/ui/views/bubble/webui_bubble_manager.h" #include "chrome/browser/ui/views/frame/browser_view.h" #include "chrome/test/base/in_process_browser_test.h" #include "content/public/test/browser_test.h" #include "ui/base/accelerators/accelerator.h" -#include "ui/gfx/geometry/rect.h" - -void EnterFullscreen(Browser* browser) { - browser->exclusive_access_manager() - ->fullscreen_controller() - ->ToggleBrowserFullscreenMode(); - FullscreenNotificationObserver(browser).Wait(); -} class TabSearchBubbleHostBrowserTest : public InProcessBrowserTest { public: @@ -67,24 +56,6 @@ RunUntilBubbleWidgetDestroyed(); } -IN_PROC_BROWSER_TEST_F(TabSearchBubbleHostBrowserTest, - BubbleShowCorrectlyInFullscreen) { - EnterFullscreen(browser()); - - gfx::Rect rect(20, 4, 0, 0); - bubble_manager()->ShowBubble(rect); - - bubble_manager()->bubble_view_for_testing()->ShowUI(); - EXPECT_TRUE(bubble_manager()->GetBubbleWidget()->IsVisible()); - - gfx::Rect bound = - bubble_manager()->bubble_view_for_testing()->GetAnchorRect(); - EXPECT_EQ(bound, rect); - - tab_search_bubble_host()->CloseTabSearchBubble(); - RunUntilBubbleWidgetDestroyed(); -} - // On macOS, most accelerators are handled by CommandDispatcher. #if !BUILDFLAG(IS_MAC) IN_PROC_BROWSER_TEST_F(TabSearchBubbleHostBrowserTest, @@ -104,23 +75,3 @@ RunUntilBubbleWidgetDestroyed(); } #endif - -class FullscreenTabSearchBubbleDialogTest : public DialogBrowserTest { - public: - FullscreenTabSearchBubbleDialogTest() = default; - - FullscreenTabSearchBubbleDialogTest( - const FullscreenTabSearchBubbleDialogTest&) = delete; - FullscreenTabSearchBubbleDialogTest& operator=( - const FullscreenTabSearchBubbleDialogTest&) = delete; - - void ShowUi(const std::string& name) override { - EnterFullscreen(browser()); - BrowserView* view = BrowserView::GetBrowserViewForBrowser(browser()); - view->CreateTabSearchBubble(); - } -}; - -IN_PROC_BROWSER_TEST_F(FullscreenTabSearchBubbleDialogTest, InvokeUi_default) { - ShowAndVerifyUi(); -}
diff --git a/chrome/browser/ui/views/tabs/tab_strip.cc b/chrome/browser/ui/views/tabs/tab_strip.cc index 720d31cf..b746529 100644 --- a/chrome/browser/ui/views/tabs/tab_strip.cc +++ b/chrome/browser/ui/views/tabs/tab_strip.cc
@@ -1505,7 +1505,7 @@ BrowserFrameActiveState active_state) const { const ui::ThemeProvider* tp = GetThemeProvider(); if (!tp) - return SK_ColorBLACK; + return gfx::kPlaceholderColor; constexpr int kColorIds[2][2] = { {ThemeProperties::COLOR_TAB_BACKGROUND_INACTIVE_FRAME_INACTIVE, @@ -1524,7 +1524,7 @@ SkColor TabStrip::GetTabForegroundColor(TabActive active) const { const ui::ColorProvider* cp = GetColorProvider(); if (!cp) - return SK_ColorBLACK; + return gfx::kPlaceholderColor; constexpr ChromeColorIds kColorIds[2][2] = { {kColorTabForegroundInactiveFrameInactive,
diff --git a/chrome/browser/ui/views/tabs/tab_style_views.cc b/chrome/browser/ui/views/tabs/tab_style_views.cc index ac16fb5..1be54c5e 100644 --- a/chrome/browser/ui/views/tabs/tab_style_views.cc +++ b/chrome/browser/ui/views/tabs/tab_style_views.cc
@@ -168,7 +168,7 @@ const SkPoint& p, SkScalar radius, SkColor color) { - const SkColor colors[2] = {color, SkColorSetA(color, 0)}; + const SkColor colors[2] = {color, SkColorSetA(color, SK_AlphaTRANSPARENT)}; cc::PaintFlags flags; flags.setAntiAlias(true); flags.setShader(cc::PaintShader::MakeRadialGradient(
diff --git a/chrome/browser/ui/views/try_chrome_dialog_win/arrow_border.cc b/chrome/browser/ui/views/try_chrome_dialog_win/arrow_border.cc index 6f2bcae3..b6886ce 100644 --- a/chrome/browser/ui/views/try_chrome_dialog_win/arrow_border.cc +++ b/chrome/browser/ui/views/try_chrome_dialog_win/arrow_border.cc
@@ -24,30 +24,15 @@ #include "ui/views/widget/widget.h" ArrowBorder::ArrowBorder(int thickness, - SkColor color, - SkColor background_color, + ui::ColorId color, + ui::ColorId background_color, const gfx::VectorIcon& arrow_icon, const Properties* properties) - : views::Border(color), - insets_(gfx::Insets(thickness) + properties->insets), + : insets_(gfx::Insets(thickness) + properties->insets), + color_(color), arrow_border_insets_(properties->arrow_border_insets), - arrow_(gfx::CreateVectorIcon(arrow_icon, background_color)) { - switch (properties->arrow_rotation) { - case ArrowRotation::kNone: - break; - case ArrowRotation::k90Degrees: - arrow_ = gfx::ImageSkiaOperations::CreateRotatedImage( - arrow_, SkBitmapOperations::ROTATION_90_CW); - break; - case ArrowRotation::k180Degrees: - arrow_ = gfx::ImageSkiaOperations::CreateRotatedImage( - arrow_, SkBitmapOperations::ROTATION_180_CW); - break; - case ArrowRotation::k270Degrees: - arrow_ = gfx::ImageSkiaOperations::CreateRotatedImage( - arrow_, SkBitmapOperations::ROTATION_270_CW); - break; - } + arrow_rotation_(properties->arrow_rotation), + arrow_(ui::ImageModel::FromVectorIcon(arrow_icon, background_color)) { } void ArrowBorder::Paint(const views::View& view, gfx::Canvas* canvas) { @@ -68,6 +53,7 @@ SkClipOp::kDifference, true); // Paint the rectangular border, less the region occupied by the arrow. + const auto* const color_provider = view.GetColorProvider(); { gfx::ScopedCanvas content_clip(canvas); @@ -77,7 +63,7 @@ gfx::ConvertInsetsToPixels(arrow_border_insets_, dsf))); canvas->sk_canvas()->clipRect(gfx::RectToSkRect(arrow_bounds), SkClipOp::kDifference, true); - canvas->DrawColor(color()); + canvas->DrawColor(color_provider->GetColor(color_)); } // Paint the arrow. @@ -95,9 +81,27 @@ else if (arrow_bounds.origin().y() < content_bounds.origin().y()) arrow_bounds.Offset(0, arrow_bounds.height() - arrow_size.height()); - canvas->DrawImageIntInPixel(arrow_.GetRepresentation(dsf), arrow_bounds.x(), - arrow_bounds.y(), arrow_size.width(), - arrow_size.height(), false, cc::PaintFlags()); + gfx::ImageSkia arrow = arrow_.Rasterize(color_provider); + switch (arrow_rotation_) { + case ArrowRotation::kNone: + break; + case ArrowRotation::k90Degrees: + arrow = gfx::ImageSkiaOperations::CreateRotatedImage( + arrow, SkBitmapOperations::ROTATION_90_CW); + break; + case ArrowRotation::k180Degrees: + arrow = gfx::ImageSkiaOperations::CreateRotatedImage( + arrow, SkBitmapOperations::ROTATION_180_CW); + break; + case ArrowRotation::k270Degrees: + arrow = gfx::ImageSkiaOperations::CreateRotatedImage( + arrow, SkBitmapOperations::ROTATION_270_CW); + break; + } + canvas->DrawImageIntInPixel( + arrow.GetRepresentation(dsf), arrow_bounds.x(), + arrow_bounds.y(), arrow_size.width(), arrow_size.height(), false, + cc::PaintFlags()); } gfx::Insets ArrowBorder::GetInsets() const {
diff --git a/chrome/browser/ui/views/try_chrome_dialog_win/arrow_border.h b/chrome/browser/ui/views/try_chrome_dialog_win/arrow_border.h index c74137ea..2514397 100644 --- a/chrome/browser/ui/views/try_chrome_dialog_win/arrow_border.h +++ b/chrome/browser/ui/views/try_chrome_dialog_win/arrow_border.h
@@ -5,6 +5,8 @@ #ifndef CHROME_BROWSER_UI_VIEWS_TRY_CHROME_DIALOG_WIN_ARROW_BORDER_H_ #define CHROME_BROWSER_UI_VIEWS_TRY_CHROME_DIALOG_WIN_ARROW_BORDER_H_ +#include "ui/base/models/image_model.h" +#include "ui/color/color_id.h" #include "ui/gfx/geometry/insets.h" #include "ui/gfx/geometry/rect.h" #include "ui/gfx/geometry/size.h" @@ -50,8 +52,8 @@ // |background_color| using |arrow_icon| to paint the arrow itself. // |properties| indicates details for positioning the arrow. ArrowBorder(int thickness, - SkColor color, - SkColor background_color, + ui::ColorId color, + ui::ColorId background_color, const gfx::VectorIcon& arrow_icon, const Properties* properties); @@ -72,12 +74,16 @@ // The region occupied by the border. const gfx::Insets insets_; + const ui::ColorId color_; + // The insets into the bounding rectangle of the arrow into which the popup's // border should extend. const gfx::Insets arrow_border_insets_; + const ArrowRotation arrow_rotation_; + // The arrow image to be painted in the border. - gfx::ImageSkia arrow_; + ui::ImageModel arrow_; // The bounding rectangle of the arrow, in pixels, relative to the window's // client area. This rectangle may extend into the contents of the popup
diff --git a/chrome/browser/ui/views/try_chrome_dialog_win/try_chrome_dialog.cc b/chrome/browser/ui/views/try_chrome_dialog_win/try_chrome_dialog.cc index 639c58cb..bb64eab7 100644 --- a/chrome/browser/ui/views/try_chrome_dialog_win/try_chrome_dialog.cc +++ b/chrome/browser/ui/views/try_chrome_dialog_win/try_chrome_dialog.cc
@@ -32,7 +32,6 @@ #include "chrome/installer/util/experiment.h" #include "chrome/installer/util/experiment_storage.h" #include "components/strings/grit/components_strings.h" -#include "third_party/skia/include/core/SkColor.h" #include "ui/aura/window.h" #include "ui/aura/window_tree_host.h" #include "ui/base/l10n/l10n_util.h" @@ -168,35 +167,98 @@ // Whether a button is an accept or cancel-style button. enum class TryChromeButtonType { OPEN_CHROME, NO_THANKS }; -// Builds a Win10-styled rectangular button, for this toast displayed outside of -// the browser. -views::Builder<views::LabelButton> CreateWin10StyleButton( - views::Button::PressedCallback callback, - const std::u16string& text, - TryChromeButtonType button_type, - const ui::ColorProvider* color_provider) { - return views::Builder<views::LabelButton>( - std::make_unique<views::LabelButton>(std::move(callback), text, - CONTEXT_WINDOWS10_NATIVE)) - .SetHorizontalAlignment(gfx::ALIGN_CENTER) - .SetBackground(views::CreateSolidBackground( - button_type == TryChromeButtonType::OPEN_CHROME - ? color_provider->GetColor(kColorTryChromeAcceptButtonBackground) - : color_provider->GetColor( - kColorTryChromeNoThanksButtonBackground))) - // TODO(crbug.com/1311857): Ensure text color and background color - // selected above meet minimum contrast requirements. - .SetEnabledTextColors( - color_provider->GetColor(kColorTryChromeButtonForeground)) - // Request specific 32pt height, 166+pt width. - .SetMinSize(gfx::Size(166, 32)) - .SetMaxSize(gfx::Size(0, 32)) - // Make button focusable for keyboard navigation. - .SetFocusBehavior(views::View::FocusBehavior::ALWAYS); -} - } // namespace +class Win10StyleButton : public views::LabelButton { + public: + METADATA_HEADER(Win10StyleButton); + Win10StyleButton(views::Button::PressedCallback callback, + const std::u16string& text, + TryChromeButtonType button_type) + : views::LabelButton(std::move(callback), + text, + CONTEXT_WINDOWS10_NATIVE) { + SetHorizontalAlignment(gfx::ALIGN_CENTER); + SetBackground(views::CreateThemedSolidBackground( + this, button_type == TryChromeButtonType::OPEN_CHROME + ? kColorTryChromeButtonBackgroundAccept + : kColorTryChromeButtonBackgroundNoThanks)); + // Request specific 32pt height, 166+pt width. + SetMinSize(gfx::Size(166, 32)); + SetMaxSize(gfx::Size(0, 32)); + // Make button focusable for keyboard navigation. + SetFocusBehavior(views::View::FocusBehavior::ALWAYS); + } + Win10StyleButton(const Win10StyleButton&) = delete; + Win10StyleButton& operator=(const Win10StyleButton&) = delete; + ~Win10StyleButton() override = default; + + void OnThemeChanged() override { + views::LabelButton::OnThemeChanged(); + SetEnabledTextColors( + GetColorProvider()->GetColor(kColorTryChromeButtonForeground)); + } +}; + +BEGIN_VIEW_BUILDER(, Win10StyleButton, views::LabelButton) +END_VIEW_BUILDER + +BEGIN_METADATA(Win10StyleButton, views::LabelButton) +END_METADATA + +DEFINE_VIEW_BUILDER(, Win10StyleButton) + +class BodyLabel : public views::Label { + public: + METADATA_HEADER(BodyLabel); + BodyLabel() { + SetTextContext(CONTEXT_WINDOWS10_NATIVE); + SetMultiLine(true); + SetHorizontalAlignment(gfx::ALIGN_LEFT); + } + BodyLabel(const BodyLabel&) = delete; + BodyLabel& operator=(const BodyLabel&) = delete; + ~BodyLabel() override = default; + + // views::Label: + void OnThemeChanged() override { + views::Label::OnThemeChanged(); + SetBackgroundColor(GetColorProvider()->GetColor(kColorTryChromeBackground)); + } +}; + +BEGIN_VIEW_BUILDER(, BodyLabel, views::Label) +END_VIEW_BUILDER + +BEGIN_METADATA(BodyLabel, views::Label) +END_METADATA + +DEFINE_VIEW_BUILDER(, BodyLabel) + +class HeadingLabel : public BodyLabel { + public: + METADATA_HEADER(HeadingLabel); + HeadingLabel() = default; + HeadingLabel(const HeadingLabel&) = delete; + HeadingLabel& operator=(const HeadingLabel&) = delete; + ~HeadingLabel() override = default; + + // BodyLabel: + void OnThemeChanged() override { + BodyLabel::OnThemeChanged(); + SetEnabledColor( + GetColorProvider()->GetColor(kColorTryChromeHeaderForeground)); + } +}; + +BEGIN_VIEW_BUILDER(, HeadingLabel, views::Label) +END_VIEW_BUILDER + +BEGIN_METADATA(HeadingLabel, views::Label) +END_METADATA + +DEFINE_VIEW_BUILDER(, HeadingLabel) + // A View that unconditionally reports that it handles mouse presses. This // results in the widget capturing the mouse so that it receives a // ET_MOUSE_CAPTURE_CHANGED event upon button release following a drag out of @@ -593,9 +655,8 @@ void TryChromeDialog::Context::NotificationAreaCalculator::AddBorderToContents( views::Widget* popup, views::View* contents_view) { - contents_view->SetBorder(views::CreateSolidBorder( - kTryChromeBorderThickness, - popup->GetColorProvider()->GetColor(kColorTryChromeBorder))); + contents_view->SetBorder(views::CreateThemedSolidBorder( + kTryChromeBorderThickness, kColorTryChromeBorder)); } gfx::Rect TryChromeDialog::Context::NotificationAreaCalculator::ComputeBounds( @@ -636,10 +697,9 @@ // and observe the popup so that these pointers can be appropriately cleared. contents_view_ = contents_view; auto border = std::make_unique<ArrowBorder>( - kTryChromeBorderThickness, - popup->GetColorProvider()->GetColor(kColorTryChromeBorder), - popup->GetColorProvider()->GetColor(kColorTryChromeBackground), - kInactiveToastArrowIcon, &properties_->border_properties); + kTryChromeBorderThickness, kColorTryChromeBorder, + kColorTryChromeBackground, kInactiveToastArrowIcon, + &properties_->border_properties); border_ = border.get(); contents_view->SetBorder(std::move(border)); popup->AddObserver(this); @@ -1056,6 +1116,12 @@ // that the logoff was cancelled. The toast may as well be shown. // Create the popup. + auto logo = views::Builder<views::ImageView>() + .SetImage(ui::ImageModel::FromVectorIcon( + kInactiveToastLogoIcon, kColorTryChromeHeaderForeground)) + .Build(); + const gfx::Size logo_size = logo->GetPreferredSize(); + views::Widget::InitParams params(views::Widget::InitParams::TYPE_POPUP); params.activatable = views::Widget::InitParams::Activatable::kYes; // An approximate window size. Layout() can adjust. @@ -1065,26 +1131,15 @@ popup_->AddObserver(this); popup_->Init(std::move(params)); - auto* color_provider = popup_->GetColorProvider(); - SkColor try_chrome_background_color = - color_provider->GetColor(kColorTryChromeBackground); - SkColor header_color = color_provider->GetColor(kColorTryChromeForeground); - - auto logo = - views::Builder<views::ImageView>() - .SetImage(gfx::CreateVectorIcon(kInactiveToastLogoIcon, header_color)) - .Build(); - const gfx::Size logo_size = logo->GetPreferredSize(); - auto contents_view = views::Builder<ClickableView>() .SetOrientation(views::BoxLayout::Orientation::kVertical) - .SetBackground( - views::CreateSolidBackground(try_chrome_background_color)) .SetMinimumCrossAxisSize(kToastWidth) .CustomConfigure(base::BindOnce( [](Context* context, views::Widget* popup, ClickableView* contents_view) { + contents_view->SetBackground(views::CreateThemedSolidBackground( + contents_view, kColorTryChromeBackground)); context->AddBorderToContents(popup, contents_view); }, context_.get(), popup_)); @@ -1156,17 +1211,15 @@ // accessibility checks. .SetAccessibleName(l10n_util::GetStringUTF16(IDS_CLOSE)) .SetProperty(views::kTableColAndRowSpanKey, gfx::Size(1, 2)) - .CustomConfigure(base::BindOnce( - [](SkColor image_button_color, - views::ImageButton* image_button) { - image_button->SetImage( + .CustomConfigure( + base::BindOnce([](views::ImageButton* image_button) { + image_button->SetImageModel( views::Button::STATE_NORMAL, - gfx::CreateVectorIcon(kInactiveToastCloseIcon, - image_button_color)); + ui::ImageModel::FromVectorIcon( + kInactiveToastCloseIcon, kColorTryChromeForeground)); DCHECK_EQ(image_button->GetPreferredSize().width(), kCloseButtonWidth); - }, - color_provider->GetColor(kColorTryChromeIcon)))); + }))); } else { table_view.AddChild(views::Builder<views::View>().SetProperty( views::kTableColAndRowSpanKey, gfx::Size(1, 2))); @@ -1174,13 +1227,8 @@ table_view.AddChildren( views::Builder<views::ImageView>(std::move(logo)), - views::Builder<views::Label>() - .SetText(l10n_util::GetStringUTF16(kExperiments[group_].heading_id)) - .SetTextContext(CONTEXT_WINDOWS10_NATIVE) - .SetBackgroundColor(try_chrome_background_color) - .SetEnabledColor(header_color) - .SetMultiLine(true) - .SetHorizontalAlignment(gfx::ALIGN_LEFT)); + views::Builder<HeadingLabel>() + .SetText(l10n_util::GetStringUTF16(kExperiments[group_].heading_id))); contents_view.AddChild(std::move(table_view)); @@ -1190,12 +1238,8 @@ if (body_string_id) { const int logo_padding = logo_size.width() + kLogoPadding; contents_view.AddChild( - views::Builder<views::Label>() + views::Builder<BodyLabel>() .SetText(l10n_util::GetStringUTF16(body_string_id)) - .SetTextContext(CONTEXT_WINDOWS10_NATIVE) - .SetBackgroundColor(try_chrome_background_color) - .SetMultiLine(true) - .SetHorizontalAlignment(gfx::ALIGN_LEFT) .SetProperty( views::kMarginsKey, gfx::Insets::TLBR( @@ -1212,21 +1256,23 @@ auto buttons = views::Builder<views::View>() .SetLayoutManager(std::make_unique<ButtonLayout>(kButtonsViewWidth)) - .AddChild(CreateWin10StyleButton( + .AddChild(views::Builder< + Win10StyleButton>(std::make_unique<Win10StyleButton>( base::BindRepeating( &TryChromeDialog::ButtonPressed, base::Unretained(this), installer::ExperimentMetrics::kSelectedOpenChromeAndNoCrash), l10n_util::GetStringUTF16(IDS_WIN10_TOAST_OPEN_CHROME), - TryChromeButtonType::OPEN_CHROME, color_provider)); + TryChromeButtonType::OPEN_CHROME))); const auto style = kExperiments[group_].close_style; if (style == ExperimentVariations::CloseStyle::kNoThanksButton || style == ExperimentVariations::CloseStyle::kNoThanksButtonAndCloseX) { - buttons.AddChild(CreateWin10StyleButton( + buttons.AddChild(views::Builder< + Win10StyleButton>(std::make_unique<Win10StyleButton>( base::BindRepeating(&TryChromeDialog::ButtonPressed, base::Unretained(this), installer::ExperimentMetrics::kSelectedNoThanks), l10n_util::GetStringUTF16(IDS_WIN10_TOAST_NO_THANKS), - TryChromeButtonType::NO_THANKS, color_provider)); + TryChromeButtonType::NO_THANKS))); } contents_view.AddChild(
diff --git a/chrome/browser/ui/views/user_education/browser_feature_promo_controller_unittest.cc b/chrome/browser/ui/views/user_education/browser_feature_promo_controller_unittest.cc index 1680e1f5..90474f7 100644 --- a/chrome/browser/ui/views/user_education/browser_feature_promo_controller_unittest.cc +++ b/chrome/browser/ui/views/user_education/browser_feature_promo_controller_unittest.cc
@@ -660,7 +660,7 @@ UserEducationServiceFactory::GetForProfile(browser()->profile()) ->tutorial_service(); EXPECT_TRUE(tutorial_service.IsRunningTutorial()); - tutorial_service.HideCurrentBubbleIfShowing(); + tutorial_service.AbortTutorial(absl::nullopt); } TEST_F(BrowserFeaturePromoControllerTest, GetAnchorContext) {
diff --git a/chrome/browser/ui/views/user_education/tutorial_interactive_uitest.cc b/chrome/browser/ui/views/user_education/tutorial_interactive_uitest.cc index e745d5d..5ff40f92 100644 --- a/chrome/browser/ui/views/user_education/tutorial_interactive_uitest.cc +++ b/chrome/browser/ui/views/user_education/tutorial_interactive_uitest.cc
@@ -43,7 +43,7 @@ void TearDownOnMainThread() override { auto* const service = GetTutorialService(); - service->AbortTutorial(); + service->AbortTutorial(absl::nullopt); service->tutorial_registry()->RemoveTutorialForTesting(kTestTutorialId); }
diff --git a/chrome/browser/ui/views/web_apps/web_app_integration_test_driver.cc b/chrome/browser/ui/views/web_apps/web_app_integration_test_driver.cc index c55cf6a..52509bc 100644 --- a/chrome/browser/ui/views/web_apps/web_app_integration_test_driver.cc +++ b/chrome/browser/ui/views/web_apps/web_app_integration_test_driver.cc
@@ -182,12 +182,9 @@ {"SiteABar", "Site A Bar"}}; const base::flat_map<std::string, SkColor> g_app_name_icon_color = { - {"Site A", SkColorSetARGB(0xFF, 0x00, 0xFF, 0x00)}, - {"Site B", SkColorSetARGB(0xFF, 0x00, 0x00, 0x00)}, - {"Site C", SkColorSetARGB(0x00, 0x00, 0x00, 0x00)}, - {"Site A Foo", SkColorSetARGB(0xFF, 0x00, 0xFF, 0x00)}, - {"Site A Bar", SkColorSetARGB(0xFF, 0x00, 0xFF, 0x00)}, - {"Site A - Updated name", SkColorSetARGB(0xFF, 0x00, 0xFF, 0x00)}}; + {"Site A", SK_ColorGREEN}, {"Site B", SK_ColorBLACK}, + {"Site C", SK_ColorTRANSPARENT}, {"Site A Foo", SK_ColorGREEN}, + {"Site A Bar", SK_ColorGREEN}, {"Site A - Updated name", SK_ColorGREEN}}; #if !BUILDFLAG(IS_CHROMEOS) class TestAppLauncherHandler : public AppLauncherHandler { @@ -2210,17 +2207,17 @@ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ BUILDFLAG(IS_CHROMEOS) DCHECK(base::Contains(g_app_name_icon_color, name)); - SkColor expected_icon_pxiel_color = g_app_name_icon_color.find(name)->second; + SkColor expected_icon_pixel_color = g_app_name_icon_color.find(name)->second; #endif #if BUILDFLAG(IS_WIN) is_shortcut_and_icon_correct = (IsShortcutAndIconCorrectOnWin(profile, name, shortcut_override_->desktop.GetPath(), - expected_icon_pxiel_color) && + expected_icon_pixel_color) && IsShortcutAndIconCorrectOnWin( profile, name, shortcut_override_->application_menu.GetPath(), - expected_icon_pxiel_color)); + expected_icon_pixel_color)); #elif BUILDFLAG(IS_MAC) std::string shortcut_filename = name + ".app"; base::FilePath app_shortcut_path = @@ -2242,7 +2239,7 @@ if (shortcut_exists) { SkColor icon_pixel_color = GetIconTopLeftColor(app_shortcut_path); is_shortcut_and_icon_correct = - (icon_pixel_color == expected_icon_pxiel_color); + (icon_pixel_color == expected_icon_pixel_color); } #elif BUILDFLAG(IS_LINUX) std::string shortcut_filename = @@ -2252,11 +2249,11 @@ if (base::PathExists(desktop_shortcut_path)) is_shortcut_and_icon_correct = IconManagerCheckIconTopLeftColor( provider()->icon_manager(), id, {kLauncherIconSize, kInstallIconSize}, - expected_icon_pxiel_color); + expected_icon_pixel_color); #elif BUILDFLAG(IS_CHROMEOS) is_shortcut_and_icon_correct = IconManagerCheckIconTopLeftColor( provider()->icon_manager(), id, {kLauncherIconSize, kInstallIconSize}, - expected_icon_pxiel_color); + expected_icon_pixel_color); #endif return is_shortcut_and_icon_correct; }
diff --git a/chrome/browser/ui/views/webauthn/ring_progress_bar.cc b/chrome/browser/ui/views/webauthn/ring_progress_bar.cc index df7d65bb..03febaf 100644 --- a/chrome/browser/ui/views/webauthn/ring_progress_bar.cc +++ b/chrome/browser/ui/views/webauthn/ring_progress_bar.cc
@@ -6,10 +6,12 @@ #include "base/cxx17_backports.h" #include "cc/paint/paint_flags.h" +#include "chrome/browser/ui/color/chrome_color_id.h" #include "third_party/skia/include/core/SkPath.h" #include "ui/accessibility/ax_enums.mojom.h" #include "ui/accessibility/ax_node_data.h" #include "ui/base/metadata/metadata_impl_macros.h" +#include "ui/color/color_provider.h" #include "ui/gfx/animation/linear_animation.h" #include "ui/gfx/canvas.h" #include "ui/gfx/color_utils.h" @@ -20,8 +22,6 @@ namespace { constexpr float kStrokeWidth = 4; constexpr base::TimeDelta kAnimationDuration = base::Milliseconds(200); -static constexpr SkColor kRingColor = SkColorSetRGB(66, 133, 224); -static constexpr SkColor kBackgroundColor = SkColorSetRGB(218, 220, 224); } // namespace RingProgressBar::RingProgressBar() = default; @@ -50,8 +50,12 @@ /*fTop=*/(content_bounds.height() / 2 - radius), /*fRight=*/(content_bounds.width() / 2 + radius), /*fBottom=*/(content_bounds.height() / 2 + radius)}; + const auto* const color_provider = GetColorProvider(); views::DrawProgressRing( - canvas, bounds, kBackgroundColor, kRingColor, kStrokeWidth, + canvas, bounds, + color_provider->GetColor(kColorWebAuthnProgressRingBackground), + color_provider->GetColor(kColorWebAuthnProgressRingForeground), + kStrokeWidth, /*start_angle=*/-90, /*sweep_angle=*/360 * animation_->CurrentValueBetween(initial_, target_)); }
diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc index ae16fbf..99cda39 100644 --- a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc +++ b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
@@ -661,17 +661,19 @@ } template <> -WebUIController* NewWebUI<ash::PersonalizationAppUI>(WebUI* web_ui, - const GURL& url) { - auto ambient_provider = - std::make_unique<PersonalizationAppAmbientProviderImpl>(web_ui); - auto theme_provider = - std::make_unique<PersonalizationAppThemeProviderImpl>(web_ui); - auto user_provider = - std::make_unique<PersonalizationAppUserProviderImpl>(web_ui); - auto wallpaper_provider = - std::make_unique<PersonalizationAppWallpaperProviderImpl>(web_ui); - return new ash::PersonalizationAppUI( +WebUIController* NewWebUI<ash::personalization_app::PersonalizationAppUI>( + WebUI* web_ui, + const GURL& url) { + auto ambient_provider = std::make_unique< + ash::personalization_app::PersonalizationAppAmbientProviderImpl>(web_ui); + auto theme_provider = std::make_unique< + ash::personalization_app::PersonalizationAppThemeProviderImpl>(web_ui); + auto user_provider = std::make_unique< + ash::personalization_app::PersonalizationAppUserProviderImpl>(web_ui); + auto wallpaper_provider = std::make_unique< + ash::personalization_app::PersonalizationAppWallpaperProviderImpl>( + web_ui); + return new ash::personalization_app::PersonalizationAppUI( web_ui, std::move(ambient_provider), std::move(theme_provider), std::move(user_provider), std::move(wallpaper_provider)); } @@ -1081,9 +1083,10 @@ if (url.host_piece() == chrome::kChromeUIVmHost) { return &NewWebUI<chromeos::VmUI>; } - if (url.host_piece() == ash::kChromeUIPersonalizationAppHost && + if (url.host_piece() == + ash::personalization_app::kChromeUIPersonalizationAppHost && chromeos::features::IsWallpaperWebUIEnabled()) { - return &NewWebUI<ash::PersonalizationAppUI>; + return &NewWebUI<ash::personalization_app::PersonalizationAppUI>; } if (url.host_piece() == ash::kChromeUISystemExtensionsInternalsHost && base::FeatureList::IsEnabled(ash::features::kSystemExtensions)) {
diff --git a/chrome/browser/ui/webui/chromeos/projector/selfie_cam_bubble_manager.cc b/chrome/browser/ui/webui/chromeos/projector/selfie_cam_bubble_manager.cc index e057e7f..2258dd5 100644 --- a/chrome/browser/ui/webui/chromeos/projector/selfie_cam_bubble_manager.cc +++ b/chrome/browser/ui/webui/chromeos/projector/selfie_cam_bubble_manager.cc
@@ -47,8 +47,6 @@ 2 * kExpandCollapseButtonRadius, 2 * kExpandCollapseButtonRadius); constexpr int kButtonCircleHighlightPaddingDip = 2; -constexpr SkColor kExpandCollapseButtonBackground = - SkColorSetARGB(0xFF, 0x8A, 0xB4, 0xF8); // Margin of the bubble with respect to the context window. constexpr int kMinAnchorMarginDip = 15; @@ -60,9 +58,8 @@ std::u16string text = l10n_util::GetStringUTF16(tooltip_text_id); auto button = std::make_unique<views::MdTextButton>(std::move(callback), text); + button->SetProminent(true); button->SetTooltipText(text); - button->SetBgColorOverride(kExpandCollapseButtonBackground); - button->SetEnabledTextColors(SK_ColorBLACK); button->SetCornerRadius(kExpandCollapseButtonRadius); button->SetPreferredSize(kExpandCollapseButtonPreferredSize); button->SetVisible(is_visible);
diff --git a/chrome/browser/ui/webui/read_later/side_panel/read_anything/read_anything_page_handler.cc b/chrome/browser/ui/webui/read_later/side_panel/read_anything/read_anything_page_handler.cc index c47d0f83..526bcfd1 100644 --- a/chrome/browser/ui/webui/read_later/side_panel/read_anything/read_anything_page_handler.cc +++ b/chrome/browser/ui/webui/read_later/side_panel/read_anything/read_anything_page_handler.cc
@@ -4,8 +4,6 @@ #include "chrome/browser/ui/webui/read_later/side_panel/read_anything/read_anything_page_handler.h" -#include <algorithm> -#include <queue> #include <string> #include <utility> #include <vector> @@ -18,65 +16,6 @@ #include "ui/accessibility/ax_node.h" #include "ui/accessibility/ax_tree.h" -namespace { - -static const ax::mojom::Role kRolesToSkip[]{ - ax::mojom::Role::kAudio, - ax::mojom::Role::kBanner, - ax::mojom::Role::kButton, - ax::mojom::Role::kComplementary, - ax::mojom::Role::kContentInfo, - ax::mojom::Role::kFooter, - ax::mojom::Role::kFooterAsNonLandmark, - ax::mojom::Role::kHeader, - ax::mojom::Role::kHeaderAsNonLandmark, - ax::mojom::Role::kImage, - ax::mojom::Role::kLabelText, - ax::mojom::Role::kNavigation, -}; -static constexpr int kMaxNodes = 5000; - -// TODO(crbug.com/1266555): Replace this with a call to -// OneShotAccessibilityTreeSearch. -const ui::AXNode* GetArticleNode(const ui::AXNode* node) { - std::queue<const ui::AXNode*> queue; - queue.push(node); - - while (!queue.empty()) { - const ui::AXNode* popped = queue.front(); - queue.pop(); - if (popped->GetRole() == ax::mojom::Role::kArticle) - return popped; - for (auto iter = popped->UnignoredChildrenBegin(); - iter != popped->UnignoredChildrenEnd(); ++iter) { - queue.push(iter.get()); - } - } - - return nullptr; -} - -void AddTextNodesToVector(const ui::AXNode* node, - std::vector<std::string>* strings) { - if (node->GetRole() == ax::mojom::Role::kStaticText) { - std::string value; - if (node->GetStringAttribute(ax::mojom::StringAttribute::kName, &value)) - strings->emplace_back(value); - return; - } - - for (const auto role : kRolesToSkip) { - if (role == node->GetRole()) - return; - } - for (auto iter = node->UnignoredChildrenBegin(); - iter != node->UnignoredChildrenEnd(); ++iter) { - AddTextNodesToVector(iter.get(), strings); - } -} - -} // namespace - ReadAnythingPageHandler::ReadAnythingPageHandler( mojo::PendingRemote<read_anything::mojom::Page> page, mojo::PendingReceiver<read_anything::mojom::PageHandler> receiver) @@ -88,35 +27,40 @@ Browser* browser = chrome::FindLastActive(); if (!browser) return; + content::WebContents* web_contents = browser->tab_strip_model()->GetActiveWebContents(); - - // Get page contents (via snapshot of a11y tree) for read anything generation. - // This will include subframe content for any subframes loaded at this point. - web_contents->RequestAXTreeSnapshot( - base::BindOnce(&ReadAnythingPageHandler::CombineTextNodesAndMakeCallback, - weak_pointer_factory_.GetWeakPtr()), - ui::AXMode::kWebContents, - /* exclude_offscreen= */ false, kMaxNodes, - /* timeout= */ {}); -} - -void ReadAnythingPageHandler::CombineTextNodesAndMakeCallback( - const ui::AXTreeUpdate& update) { - ui::AXTree tree; - bool success = tree.Unserialize(update); - if (!success) + if (!web_contents) return; - // If this page has an article node, only combine text from that node. - const ui::AXNode* read_anything_root = GetArticleNode(tree.root()); - if (!read_anything_root) { - read_anything_root = tree.root(); - } + // Read Anything just runs on the main frame and does not run on embedded + // content. + content::RenderFrameHost* render_frame_host = web_contents->GetMainFrame(); + if (!render_frame_host) + return; + // Request a distilled AXTree for the main frame. + render_frame_host->RequestDistilledAXTree( + base::BindOnce(&ReadAnythingPageHandler::OnAXTreeDistilled, + weak_pointer_factory_.GetWeakPtr())); +} + +void ReadAnythingPageHandler::OnAXTreeDistilled( + const ui::AXTreeUpdate& snapshot, + const std::vector<ui::AXNodeID>& text_node_ids) { + ui::AXTree tree; + bool success = tree.Unserialize(snapshot); + if (!success) + return; std::vector<std::string> text_node_contents; - text_node_contents.reserve(update.nodes.size()); - AddTextNodesToVector(read_anything_root, &text_node_contents); - + text_node_contents.resize(text_node_ids.size()); + for (size_t i = 0; i < text_node_ids.size(); ++i) { + ui::AXNode* node = tree.GetFromId(text_node_ids[i]); + if (!node) + continue; + std::string value; + if (node->GetStringAttribute(ax::mojom::StringAttribute::kName, &value)) + text_node_contents[i] = value; + } page_->OnEssentialContent(std::move(text_node_contents)); }
diff --git a/chrome/browser/ui/webui/read_later/side_panel/read_anything/read_anything_page_handler.h b/chrome/browser/ui/webui/read_later/side_panel/read_anything/read_anything_page_handler.h index 0c9d9c6..be20d4d 100644 --- a/chrome/browser/ui/webui/read_later/side_panel/read_anything/read_anything_page_handler.h +++ b/chrome/browser/ui/webui/read_later/side_panel/read_anything/read_anything_page_handler.h
@@ -11,6 +11,7 @@ #include "mojo/public/cpp/bindings/pending_remote.h" #include "mojo/public/cpp/bindings/receiver.h" #include "mojo/public/cpp/bindings/remote.h" +#include "ui/accessibility/ax_node_id_forward.h" namespace ui { struct AXTreeUpdate; @@ -29,7 +30,10 @@ void ShowUI() override; private: - void CombineTextNodesAndMakeCallback(const ui::AXTreeUpdate& update); + // Callback method which receives an AXTree snapshot and a list of AXNodes + // which correspond to nodes in the tree that contain main content. + void OnAXTreeDistilled(const ui::AXTreeUpdate& snapshot, + const std::vector<ui::AXNodeID>& text_node_ids); mojo::Receiver<read_anything::mojom::PageHandler> receiver_; mojo::Remote<read_anything::mojom::Page> page_;
diff --git a/chrome/browser/ui/webui/read_later/side_panel/read_anything/read_anything_toolbar_view.cc b/chrome/browser/ui/webui/read_later/side_panel/read_anything/read_anything_toolbar_view.cc index c139c82..a7cfd02 100644 --- a/chrome/browser/ui/webui/read_later/side_panel/read_anything/read_anything_toolbar_view.cc +++ b/chrome/browser/ui/webui/read_later/side_panel/read_anything/read_anything_toolbar_view.cc
@@ -6,6 +6,7 @@ #include "chrome/browser/ui/webui/read_later/side_panel/read_anything/read_anything_constants.h" #include "components/vector_icons/vector_icons.h" +#include "ui/color/color_provider.h" #include "ui/gfx/color_palette.h" #include "ui/gfx/geometry/geometry_export.h" #include "ui/views/background.h" @@ -32,7 +33,8 @@ auto title = std::make_unique<views::Label>(); title->SetHorizontalAlignment(gfx::HorizontalAlignment::ALIGN_LEFT); title->SetText(u" sans-serif \u25BE"); - title->SetBackground(views::CreateSolidBackground(SK_ColorWHITE)); + title->SetBackground(views::CreateThemedSolidBackground( + title.get(), ui::kColorPrimaryBackground)); title->SetFontList(gfx::FontList({"Roboto", "Arial", "sans-serif"}, gfx::Font::FontStyle::NORMAL, kFontSize, gfx::Font::Weight::NORMAL)); @@ -45,17 +47,22 @@ views::CreateVectorImageButton(std::move(settings_callback)); // TODO(1266555): This is placeholder text, remove for final UI. settings_button->SetTooltipText(u"Settings"); - views::SetImageFromVectorIcon(settings_button.get(), - vector_icons::kSettingsIcon, kIconSize, - SK_ColorBLACK); views::InstallCircleHighlightPathGenerator(settings_button.get(), gfx::Insets(kIconCornerRadius)); // Add all components to view. - AddChildView(std::move(settings_button)); + settings_button_ = AddChildView(std::move(settings_button)); AddChildView(std::move(title)); } -void ReadAnythingToolbarView::OnSettingsClicked() {} - ReadAnythingToolbarView::~ReadAnythingToolbarView() = default; + +void ReadAnythingToolbarView::OnThemeChanged() { + views::View::OnThemeChanged(); + + views::SetImageFromVectorIcon( + settings_button_, vector_icons::kSettingsIcon, kIconSize, + GetColorProvider()->GetColor(ui::kColorPrimaryForeground)); +} + +void ReadAnythingToolbarView::OnSettingsClicked() {}
diff --git a/chrome/browser/ui/webui/read_later/side_panel/read_anything/read_anything_toolbar_view.h b/chrome/browser/ui/webui/read_later/side_panel/read_anything/read_anything_toolbar_view.h index 639fca0..1183ff9d 100644 --- a/chrome/browser/ui/webui/read_later/side_panel/read_anything/read_anything_toolbar_view.h +++ b/chrome/browser/ui/webui/read_later/side_panel/read_anything/read_anything_toolbar_view.h
@@ -8,6 +8,10 @@ #include "base/memory/weak_ptr.h" #include "ui/views/view.h" +namespace views { +class ImageButton; +} + // Generic View for the toolbar of the Read Anything side panel. class ReadAnythingToolbarView : public views::View { public: @@ -15,8 +19,13 @@ ReadAnythingToolbarView(const ReadAnythingToolbarView&) = delete; ~ReadAnythingToolbarView() override; + // views::View: + void OnThemeChanged() override; + private: void OnSettingsClicked(); + + views::ImageButton* settings_button_; base::WeakPtrFactory<ReadAnythingToolbarView> weak_pointer_factory_{this}; };
diff --git a/chrome/browser/ui/webui/tab_strip/tab_strip_ui.cc b/chrome/browser/ui/webui/tab_strip/tab_strip_ui.cc index b487156..2ddec01d 100644 --- a/chrome/browser/ui/webui/tab_strip/tab_strip_ui.cc +++ b/chrome/browser/ui/webui/tab_strip/tab_strip_ui.cc
@@ -57,14 +57,8 @@ // Add a load time string for the frame color to allow the tab strip to paint // a background color that matches the frame before any content loads. - const auto* browser_window = - BrowserWindow::FindBrowserWindowWithWebContents(web_ui->GetWebContents()); - const auto* theme_provider = - browser_window ? browser_window->GetThemeProvider() : nullptr; - const SkColor frame_color = - theme_provider - ? theme_provider->GetColor(ThemeProperties::COLOR_FRAME_ACTIVE) - : SK_ColorWHITE; + const auto& color_provider = web_ui->GetWebContents()->GetColorProvider(); + const SkColor frame_color = color_provider.GetColor(ui::kColorFrameActive); html_source->AddString("frameColor", color_utils::SkColorToRgbaString(frame_color));
diff --git a/chrome/browser/usb/usb_policy_allowed_devices_unittest.cc b/chrome/browser/usb/usb_policy_allowed_devices_unittest.cc index 4aa0bf82..2c1983d 100644 --- a/chrome/browser/usb/usb_policy_allowed_devices_unittest.cc +++ b/chrome/browser/usb/usb_policy_allowed_devices_unittest.cc
@@ -9,7 +9,7 @@ #include <utility> #include "base/containers/contains.h" -#include "base/json/json_reader.h" +#include "base/test/values_test_util.h" #include "chrome/test/base/testing_profile.h" #include "components/content_settings/core/common/pref_names.h" #include "components/prefs/pref_service.h" @@ -22,7 +22,8 @@ namespace { -using testing::UnorderedElementsAre; +using ::base::test::ParseJson; +using ::testing::UnorderedElementsAre; class UsbPolicyAllowedDevicesTest : public testing::Test { public: @@ -54,12 +55,6 @@ TestingProfile profile_; }; -std::unique_ptr<base::Value> ReadJson(base::StringPiece json) { - absl::optional<base::Value> value = base::JSONReader::Read(json); - EXPECT_TRUE(value); - return value ? base::Value::ToUniquePtrValue(std::move(*value)) : nullptr; -} - } // namespace TEST_F(UsbPolicyAllowedDevicesTest, InitializeWithMissingPrefValue) { @@ -100,9 +95,7 @@ } // namespace TEST_F(UsbPolicyAllowedDevicesTest, InitializeWithExistingPrefValue) { - std::unique_ptr<base::Value> pref_value = ReadJson(kPolicySetting); - - SetWebUsbAllowDevicesForUrlsPrefValue(*pref_value); + SetWebUsbAllowDevicesForUrlsPrefValue(ParseJson(kPolicySetting)); auto usb_policy_allowed_devices = CreateUsbPolicyAllowedDevices(); @@ -134,9 +127,7 @@ EXPECT_TRUE(usb_policy_allowed_devices->map().empty()); // Ensure that the allowed devices can be dynamically updated. - std::unique_ptr<base::Value> pref_value = ReadJson(kPolicySetting); - - SetWebUsbAllowDevicesForUrlsPrefValue(*pref_value); + SetWebUsbAllowDevicesForUrlsPrefValue(ParseJson(kPolicySetting)); const auto& map = usb_policy_allowed_devices->map(); EXPECT_EQ(map.size(), 3ul); @@ -158,9 +149,7 @@ TEST_F(UsbPolicyAllowedDevicesTest, InitializeWithExistingPolicyThenRemovePolicy) { - std::unique_ptr<base::Value> pref_value = ReadJson(kPolicySetting); - - SetWebUsbAllowDevicesForUrlsPrefValue(*pref_value); + SetWebUsbAllowDevicesForUrlsPrefValue(ParseJson(kPolicySetting)); auto usb_policy_allowed_devices = CreateUsbPolicyAllowedDevices(); @@ -186,8 +175,7 @@ EXPECT_THAT(third, UnorderedElementsAre(kYoutubeOrigin)); // Ensure that the allowed devices can be removed dynamically. - pref_value = std::make_unique<base::Value>(base::Value::Type::LIST); - SetWebUsbAllowDevicesForUrlsPrefValue(*pref_value); + SetWebUsbAllowDevicesForUrlsPrefValue(base::Value(base::Value::Type::LIST)); EXPECT_TRUE(usb_policy_allowed_devices->map().empty()); } @@ -212,10 +200,8 @@ TEST_F(UsbPolicyAllowedDevicesTest, InitializeWithExistingPrefValueContainingDuplicateDevices) { - std::unique_ptr<base::Value> pref_value = - ReadJson(kPolicySettingWithEntriesContainingDuplicateDevices); - - SetWebUsbAllowDevicesForUrlsPrefValue(*pref_value); + SetWebUsbAllowDevicesForUrlsPrefValue( + ParseJson(kPolicySettingWithEntriesContainingDuplicateDevices)); auto usb_policy_allowed_devices = CreateUsbPolicyAllowedDevices(); @@ -250,10 +236,8 @@ } // namespace TEST_F(UsbPolicyAllowedDevicesTest, IsDeviceAllowed) { - std::unique_ptr<base::Value> pref_value = - ReadJson(kPolicySettingWithEntriesMatchingMultipleDevices); - - SetWebUsbAllowDevicesForUrlsPrefValue(*pref_value); + SetWebUsbAllowDevicesForUrlsPrefValue( + ParseJson(kPolicySettingWithEntriesMatchingMultipleDevices)); auto usb_policy_allowed_devices = CreateUsbPolicyAllowedDevices(); @@ -298,10 +282,8 @@ } TEST_F(UsbPolicyAllowedDevicesTest, IsDeviceAllowedForUrlsNotInPref) { - std::unique_ptr<base::Value> pref_value = - ReadJson(kPolicySettingWithEntriesMatchingMultipleDevices); - - SetWebUsbAllowDevicesForUrlsPrefValue(*pref_value); + SetWebUsbAllowDevicesForUrlsPrefValue( + ParseJson(kPolicySettingWithEntriesMatchingMultipleDevices)); auto usb_policy_allowed_devices = CreateUsbPolicyAllowedDevices(); @@ -319,10 +301,8 @@ } TEST_F(UsbPolicyAllowedDevicesTest, IsDeviceAllowedForDeviceNotInPref) { - std::unique_ptr<base::Value> pref_value = - ReadJson(kPolicySettingWithEntriesMatchingMultipleDevices); - - SetWebUsbAllowDevicesForUrlsPrefValue(*pref_value); + SetWebUsbAllowDevicesForUrlsPrefValue( + ParseJson(kPolicySettingWithEntriesMatchingMultipleDevices)); auto usb_policy_allowed_devices = CreateUsbPolicyAllowedDevices(); @@ -354,10 +334,8 @@ TEST_F(UsbPolicyAllowedDevicesTest, IsDeviceAllowedForUrlContainingEmbeddingOrigin) { - std::unique_ptr<base::Value> pref_value = - ReadJson(kPolicySettingWithUrlContainingEmbeddingOrigin); - - SetWebUsbAllowDevicesForUrlsPrefValue(*pref_value); + SetWebUsbAllowDevicesForUrlsPrefValue( + ParseJson(kPolicySettingWithUrlContainingEmbeddingOrigin)); auto usb_policy_allowed_devices = CreateUsbPolicyAllowedDevices();
diff --git a/chrome/browser/web_applications/system_web_apps/system_web_app_manager.cc b/chrome/browser/web_applications/system_web_apps/system_web_app_manager.cc index 7d141ac..76ee3d19 100644 --- a/chrome/browser/web_applications/system_web_apps/system_web_app_manager.cc +++ b/chrome/browser/web_applications/system_web_apps/system_web_app_manager.cc
@@ -81,7 +81,7 @@ #include "chrome/browser/ash/web_applications/os_flags_system_web_app_info.h" #include "chrome/browser/ash/web_applications/os_settings_web_app_info.h" #include "chrome/browser/ash/web_applications/os_url_handler_system_web_app_info.h" -#include "chrome/browser/ash/web_applications/personalization_app/personalization_app_info.h" +#include "chrome/browser/ash/web_applications/personalization_app/personalization_system_app_delegate.h" #include "chrome/browser/ash/web_applications/print_management_web_app_info.h" #include "chrome/browser/ash/web_applications/projector_system_web_app_info.h" #include "chrome/browser/ash/web_applications/scanning_system_web_app_info.h"
diff --git a/chrome/build/mac-arm.pgo.txt b/chrome/build/mac-arm.pgo.txt index affdd2e..a3f0a6ba0 100644 --- a/chrome/build/mac-arm.pgo.txt +++ b/chrome/build/mac-arm.pgo.txt
@@ -1 +1 @@ -chrome-mac-arm-main-1648727978-ae35d05176a5ada188035bfda696ed0e46aa2f8c.profdata +chrome-mac-arm-main-1648749546-603688d46155520fe621e77b909c9a23052a7890.profdata
diff --git a/chrome/build/mac.pgo.txt b/chrome/build/mac.pgo.txt index 866650c..2eef1b1 100644 --- a/chrome/build/mac.pgo.txt +++ b/chrome/build/mac.pgo.txt
@@ -1 +1 @@ -chrome-mac-main-1648727978-c8743f457c84ebc5e76859a56fd9d5e5a1814668.profdata +chrome-mac-main-1648749546-385ebeab098551b596321f02fe430c6fc884e2e9.profdata
diff --git a/chrome/build/win32.pgo.txt b/chrome/build/win32.pgo.txt index 5f8dae0c..889ff0f9d 100644 --- a/chrome/build/win32.pgo.txt +++ b/chrome/build/win32.pgo.txt
@@ -1 +1 @@ -chrome-win32-main-1648737916-f5a925377e928aefb9129222e7c307cbcf8b55c3.profdata +chrome-win32-main-1648749603-177e1ce73c30bb82ea9fde41094e1af8b76be452.profdata
diff --git a/chrome/build/win64.pgo.txt b/chrome/build/win64.pgo.txt index 067002da..4deacf1d 100644 --- a/chrome/build/win64.pgo.txt +++ b/chrome/build/win64.pgo.txt
@@ -1 +1 @@ -chrome-win64-main-1648737916-cbe6c9c68be139088d66bc3b318097126ab926ca.profdata +chrome-win64-main-1648760381-511c7cb90a13b23bd4c49b9b90e54ce8a3f2b9a9.profdata
diff --git a/chrome/common/cart/commerce_hints.mojom b/chrome/common/cart/commerce_hints.mojom index 787d4c4c..67f5bdc 100644 --- a/chrome/common/cart/commerce_hints.mojom +++ b/chrome/common/cart/commerce_hints.mojom
@@ -15,6 +15,15 @@ string product_id; }; +struct Heuristics { + // Version number of the heuristics. + string version_number; + // JSON string of hint heuristics. + string hint_json_data; + // JSON string of global heuristics. + string global_json_data; +}; + // This service is implemented in the browser process and is used by the // renderer to notify the CommerceHint events. interface CommerceHintObserver { @@ -40,7 +49,9 @@ // An XMLHttpRequest is about to be sent. OnWillSendRequest(bool is_addtocart); - // A navigation is about to happen or has happened. Return whether - // we should skip collecting commerce hints on current URL or not. - OnNavigation(url.mojom.Url url) => (bool should_skip); + // A navigation is about to happen or has happened. Return whether we + // should skip collecting commerce hints on current domain or not, and + // the commerce heuristics that are applicable in this domain. + OnNavigation(url.mojom.Url url, string version_number) + => (bool should_skip, Heuristics heuristics); };
diff --git a/chrome/common/net/x509_certificate_model.cc b/chrome/common/net/x509_certificate_model.cc index 5ec353e..2211397c 100644 --- a/chrome/common/net/x509_certificate_model.cc +++ b/chrome/common/net/x509_certificate_model.cc
@@ -239,15 +239,52 @@ std::string X509CertificateModel::HashCertSHA256() const { auto hash = crypto::SHA256Hash(net::x509_util::CryptoBufferAsSpan(cert_data_.get())); + return base::HexEncode(hash.data(), hash.size()); +} + +std::string X509CertificateModel::HashCertSHA256WithSeparators() const { + auto hash = + crypto::SHA256Hash(net::x509_util::CryptoBufferAsSpan(cert_data_.get())); return ProcessRawBytes(hash.data(), hash.size()); } -std::string X509CertificateModel::HashCertSHA1() const { +std::string X509CertificateModel::HashCertSHA1WithSeparators() const { auto hash = base::SHA1HashSpan(net::x509_util::CryptoBufferAsSpan(cert_data_.get())); return ProcessRawBytes(hash.data(), hash.size()); } +std::string X509CertificateModel::GetTitle() const { + if (!nickname_.empty()) + return nickname_; + + if (!parsed_successfully_) + return HashCertSHA256(); + + if (!subject_rdns_.empty()) { + OptionalStringOrError common_name = FindLastNameOfType( + net::der::Input(net::kTypeCommonNameOid), subject_rdns_); + if (auto* str = absl::get_if<std::string>(&common_name); str) + return std::move(*str); + if (absl::holds_alternative<Error>(common_name)) + return HashCertSHA256(); + + std::string rv; + if (!net::ConvertToRFC2253(subject_rdns_, &rv)) + return HashCertSHA256(); + return rv; + } + + if (subject_alt_names_) { + if (!subject_alt_names_->dns_names.empty()) + return std::string(subject_alt_names_->dns_names[0]); + if (!subject_alt_names_->rfc822_names.empty()) + return std::string(subject_alt_names_->rfc822_names[0]); + } + + return HashCertSHA256(); +} + std::string X509CertificateModel::GetVersion() const { DCHECK(parsed_successfully_); switch (tbs_.version) {
diff --git a/chrome/common/net/x509_certificate_model.h b/chrome/common/net/x509_certificate_model.h index 301da4a..a8aa160 100644 --- a/chrome/common/net/x509_certificate_model.h +++ b/chrome/common/net/x509_certificate_model.h
@@ -31,14 +31,35 @@ std::string nickname); ~X509CertificateModel(); + // --------------------------------------------------------------------------- // These methods are always safe to call even if |cert_data| could not be // parsed. + + // Returns hex SHA256 hash of the certificate data. std::string HashCertSHA256() const; - std::string HashCertSHA1() const; + // Returns space-separated and line wrapped hex SHA256 hash of the + // certificate data. + std::string HashCertSHA256WithSeparators() const; + // Returns space-separated and line wrapped hex SHA1 hash of the certificate + // data. + std::string HashCertSHA1WithSeparators() const; + + // Get something that can be used as a title for the certificate, using the + // following priority: + // |nickname| passed to constructor + // subject commonName + // full subject + // dnsName or email address from subjectAltNames + // If none of those are present, or certificate could not be parsed, + // the hex SHA256 hash of the certificate data will be returned. + std::string GetTitle() const; + CRYPTO_BUFFER* cert_buffer() const { return cert_data_.get(); } bool is_valid() const { return parsed_successfully_; } + // --------------------------------------------------------------------------- // The rest of the methods should only be called if |is_valid()| returns true. + std::string GetVersion() const; std::string GetSerialNumberHexified() const;
diff --git a/chrome/common/net/x509_certificate_model_unittest.cc b/chrome/common/net/x509_certificate_model_unittest.cc index d01b155..d6bec17 100644 --- a/chrome/common/net/x509_certificate_model_unittest.cc +++ b/chrome/common/net/x509_certificate_model_unittest.cc
@@ -25,9 +25,16 @@ EXPECT_EQ( "1D 7A 36 3C E1 24 30 88 1E C5 6C 9C F1 40 9C 49\nC4 91 04 36 18 E5 98 " "C3 56 E2 95 90 40 87 2F 5A", - model.HashCertSHA256()); + model.HashCertSHA256WithSeparators()); EXPECT_EQ("E9 B3 96 D2 DD DF FD B3 73 BF 2C 6A D0 73 69 6A\nA2 5B 4F 68", - model.HashCertSHA1()); + model.HashCertSHA1WithSeparators()); + if (GetParam().empty()) { + EXPECT_EQ( + "1D7A363CE12430881EC56C9CF1409C49C491043618E598C356E2959040872F5A", + model.GetTitle()); + } else { + EXPECT_EQ(GetParam(), model.GetTitle()); + } EXPECT_FALSE(model.is_valid()); } @@ -40,14 +47,15 @@ EXPECT_EQ( "F6 41 C3 6C FE F4 9B C0 71 35 9E CF 88 EE D9 31\n7B 73 8B 59 89 41 6A " "D4 01 72 0C 0A 4E 2E 63 52", - model.HashCertSHA256()); + model.HashCertSHA256WithSeparators()); EXPECT_EQ("40 50 62 E5 BE FD E4 AF 97 E9 38 2A F1 6C C8 7C\n8F B7 C4 E2", - model.HashCertSHA1()); + model.HashCertSHA1WithSeparators()); ASSERT_TRUE(model.is_valid()); EXPECT_EQ("3", model.GetVersion()); EXPECT_EQ("2F:DF:BC:F6:AE:91:52:6D:0F:9A:A3:DF:40:34:3E:9A", model.GetSerialNumberHexified()); + EXPECT_EQ(OptionalStringOrError("Thawte SGC CA"), model.GetIssuerCommonName()); EXPECT_EQ(OptionalStringOrError("Thawte Consulting (Pty) Ltd."), @@ -59,6 +67,11 @@ EXPECT_EQ(OptionalStringOrError("Google Inc"), model.GetSubjectOrgName()); EXPECT_EQ(OptionalStringOrError(NotPresent()), model.GetSubjectOrgUnitName()); + if (GetParam().empty()) + EXPECT_EQ("www.google.com", model.GetTitle()); + else + EXPECT_EQ(GetParam(), model.GetTitle()); + EXPECT_EQ( OptionalStringOrError( "CN = Thawte SGC CA\nO = Thawte Consulting (Pty) Ltd.\nC = ZA\n"), @@ -102,6 +115,11 @@ model.GetSubjectOrgName()); EXPECT_EQ(OptionalStringOrError("Security"), model.GetSubjectOrgUnitName()); + if (GetParam().empty()) + EXPECT_EQ("New Dream Network Certificate Authority", model.GetTitle()); + else + EXPECT_EQ(GetParam(), model.GetTitle()); + EXPECT_EQ(OptionalStringOrError( "emailAddress = support@dreamhost.com\nCN = New Dream Network " "Certificate " @@ -127,6 +145,10 @@ ASSERT_TRUE(cert); x509_certificate_model::X509CertificateModel model( bssl::UpRef(cert->cert_buffer()), GetParam()); + if (GetParam().empty()) + EXPECT_EQ("xn--wgv71a119e.com", model.GetTitle()); + else + EXPECT_EQ(GetParam(), model.GetTitle()); EXPECT_EQ(OptionalStringOrError("xn--wgv71a119e.com"), model.GetIssuerCommonName()); EXPECT_EQ(OptionalStringOrError("xn--wgv71a119e.com"), @@ -159,8 +181,12 @@ builder->SetSubject(kSubject); x509_certificate_model::X509CertificateModel model( - bssl::UpRef(builder->GetCertBuffer()), ""); + bssl::UpRef(builder->GetCertBuffer()), GetParam()); ASSERT_TRUE(model.is_valid()); + if (GetParam().empty()) + EXPECT_EQ(model.HashCertSHA256(), model.GetTitle()); + else + EXPECT_EQ(GetParam(), model.GetTitle()); EXPECT_EQ(OptionalStringOrError(Error()), model.GetSubjectCommonName()); EXPECT_EQ(OptionalStringOrError(NotPresent()), model.GetSubjectOrgName()); EXPECT_EQ(OptionalStringOrError(NotPresent()), model.GetSubjectOrgUnitName()); @@ -178,7 +204,7 @@ builder->SetSubject(kSubject); x509_certificate_model::X509CertificateModel model( - bssl::UpRef(builder->GetCertBuffer()), ""); + bssl::UpRef(builder->GetCertBuffer()), GetParam()); EXPECT_FALSE(model.is_valid()); } @@ -192,13 +218,33 @@ const uint8_t kSubject[] = {0x30, 0x00}; builder->SetSubject(kSubject); - x509_certificate_model::X509CertificateModel model( - bssl::UpRef(builder->GetCertBuffer()), ""); - ASSERT_TRUE(model.is_valid()); - EXPECT_EQ(OptionalStringOrError(NotPresent()), model.GetSubjectCommonName()); - EXPECT_EQ(OptionalStringOrError(NotPresent()), model.GetSubjectOrgName()); - EXPECT_EQ(OptionalStringOrError(NotPresent()), model.GetSubjectOrgUnitName()); - EXPECT_EQ(OptionalStringOrError(NotPresent()), model.GetSubjectName()); + { + x509_certificate_model::X509CertificateModel model( + bssl::UpRef(builder->GetCertBuffer()), GetParam()); + ASSERT_TRUE(model.is_valid()); + if (GetParam().empty()) + EXPECT_EQ(model.HashCertSHA256(), model.GetTitle()); + else + EXPECT_EQ(GetParam(), model.GetTitle()); + EXPECT_EQ(OptionalStringOrError(NotPresent()), + model.GetSubjectCommonName()); + EXPECT_EQ(OptionalStringOrError(NotPresent()), model.GetSubjectOrgName()); + EXPECT_EQ(OptionalStringOrError(NotPresent()), + model.GetSubjectOrgUnitName()); + EXPECT_EQ(OptionalStringOrError(NotPresent()), model.GetSubjectName()); + } + { + // If subject is empty but subjectAltNames is present, GetTitle checks + // there. + builder->SetSubjectAltNames({"foo.com", "bar.com"}, {}); + x509_certificate_model::X509CertificateModel model( + bssl::UpRef(builder->GetCertBuffer()), GetParam()); + ASSERT_TRUE(model.is_valid()); + if (GetParam().empty()) + EXPECT_EQ("foo.com", model.GetTitle()); + else + EXPECT_EQ(GetParam(), model.GetTitle()); + } } INSTANTIATE_TEST_SUITE_P(All,
diff --git a/chrome/renderer/cart/commerce_hint_agent.cc b/chrome/renderer/cart/commerce_hint_agent.cc index 0db35e9..286c5069 100644 --- a/chrome/renderer/cart/commerce_hint_agent.cc +++ b/chrome/renderer/cart/commerce_hint_agent.cc
@@ -422,12 +422,12 @@ static re2::RE2::Options options; options.set_case_sensitive(false); if (cart_string_map.find(domain) == cart_string_map.end()) { - auto* pattern_from_component = + auto* global_pattern_from_component = commerce_heuristics::CommerceHeuristicsData::GetInstance() .GetCartPageURLPattern(); - if (pattern_from_component && + if (global_pattern_from_component && kCartPattern.Get() == kCartPattern.default_value) { - return pattern_from_component; + return global_pattern_from_component; } static base::NoDestructor<re2::RE2> instance(kCartPattern.Get(), options); return instance.get(); @@ -456,12 +456,12 @@ static re2::RE2::Options options; options.set_case_sensitive(false); if (checkout_string_map.find(domain) == checkout_string_map.end()) { - auto* pattern_from_component = + auto* global_pattern_from_component = commerce_heuristics::CommerceHeuristicsData::GetInstance() .GetCheckoutPageURLPattern(); - if (pattern_from_component && + if (global_pattern_from_component && kCheckoutPattern.Get() == kCheckoutPattern.default_value) { - return pattern_from_component; + return global_pattern_from_component; } static base::NoDestructor<re2::RE2> instance(kCheckoutPattern.Get(), options); @@ -724,6 +724,8 @@ } // namespace +using commerce_heuristics::CommerceHeuristicsData; + CommerceHintAgent::CommerceHintAgent(content::RenderFrame* render_frame) : content::RenderFrameObserver(render_frame), content::RenderFrameObserverTracker<CommerceHintAgent>(render_frame) { @@ -963,9 +965,8 @@ } void CommerceHintAgent::WillSendRequest(const blink::WebURLRequest& request) { - if (should_skip_) { + if (should_skip_) return; - } blink::WebLocalFrame* frame = render_frame()->GetWebFrame(); const GURL& url(frame->GetDocument().Url()); if (!url.SchemeIsHTTPOrHTTPS()) @@ -1007,12 +1008,13 @@ mojo::Remote<mojom::CommerceHintObserver> observer = GetObserver(render_frame()); if (!commerce::kOptimizeRendererSignal.Get()) { - DidStartNavigationCallback(url, std::move(observer), false); + DidStartNavigationCallback(url, std::move(observer), false, + mojom::Heuristics::New()); return; } auto* observer_ptr = observer.get(); observer_ptr->OnNavigation( - url, + url, CommerceHeuristicsData::GetInstance().GetVersion(), base::BindOnce(&CommerceHintAgent::DidStartNavigationCallback, weak_factory_.GetWeakPtr(), url, std::move(observer))); } @@ -1020,15 +1022,28 @@ void CommerceHintAgent::DidStartNavigationCallback( const GURL& url, mojo::Remote<mojom::CommerceHintObserver> observer, - bool should_skip) { + bool should_skip, + mojom::HeuristicsPtr heuristics) { should_skip_ = should_skip; + if (should_skip) + return; + if (!heuristics->version_number.empty() && + heuristics->version_number != + CommerceHeuristicsData::GetInstance().GetVersion()) { + bool is_populated = + CommerceHeuristicsData::GetInstance().PopulateDataFromComponent( + heuristics->hint_json_data, heuristics->global_json_data, + /*product_id_json_data*/ "", /*cart_extraction_script*/ ""); + DCHECK(is_populated); + CommerceHeuristicsData::GetInstance().UpdateVersion( + base::Version(heuristics->version_number)); + } } void CommerceHintAgent::DidCommitProvisionalLoad( ui::PageTransition transition) { - if (should_skip_) { + if (should_skip_) return; - } if (!starting_url_.is_valid()) return; if (IsAddToCart(starting_url_.PathForRequestPiece())) { @@ -1055,15 +1070,18 @@ const GURL& url(frame->GetDocument().Url()); if (!url.SchemeIs(url::kHttpsScheme)) return; + has_finished_loading_ = true; + extraction_count_ = 0; mojo::Remote<mojom::CommerceHintObserver> observer = GetObserver(render_frame()); if (!commerce::kOptimizeRendererSignal.Get()) { - DidFinishLoadCallback(url, std::move(observer), false); + DidFinishLoadCallback(url, std::move(observer), false, + mojom::Heuristics::New()); return; } auto* observer_ptr = observer.get(); observer_ptr->OnNavigation( - url, + url, CommerceHeuristicsData::GetInstance().GetVersion(), base::BindOnce(&CommerceHintAgent::DidFinishLoadCallback, weak_factory_.GetWeakPtr(), url, std::move(observer))); } @@ -1071,13 +1089,22 @@ void CommerceHintAgent::DidFinishLoadCallback( const GURL& url, mojo::Remote<mojom::CommerceHintObserver> observer, - bool should_skip) { + bool should_skip, + mojom::HeuristicsPtr heuristics) { should_skip_ = should_skip; - if (should_skip_) { + if (should_skip_) return; + if (!heuristics->version_number.empty() && + heuristics->version_number != + CommerceHeuristicsData::GetInstance().GetVersion()) { + bool is_populated = + CommerceHeuristicsData::GetInstance().PopulateDataFromComponent( + heuristics->hint_json_data, heuristics->global_json_data, + /*product_id_json_data*/ "", /*cart_extraction_script*/ ""); + DCHECK(is_populated); + CommerceHeuristicsData::GetInstance().UpdateVersion( + base::Version(heuristics->version_number)); } - has_finished_loading_ = true; - extraction_count_ = 0; // Some URLs might satisfy the patterns for both cart and checkout (e.g. // https://www.foo.com/cart/checkout). In those cases, cart has higher // priority. @@ -1093,9 +1120,8 @@ } void CommerceHintAgent::WillSubmitForm(const blink::WebFormElement& form) { - if (should_skip_) { + if (should_skip_) return; - } blink::WebLocalFrame* frame = render_frame()->GetWebFrame(); const GURL url(frame->GetDocument().Url()); if (!url.SchemeIsHTTPOrHTTPS()) @@ -1115,9 +1141,8 @@ // TODO(crbug/1164236): use MutationObserver on cart instead. void CommerceHintAgent::ExtractCartFromCurrentFrame() { - if (should_skip_) { + if (should_skip_) return; - } if (!has_finished_loading_) return; blink::WebLocalFrame* frame = render_frame()->GetWebFrame();
diff --git a/chrome/renderer/cart/commerce_hint_agent.h b/chrome/renderer/cart/commerce_hint_agent.h index 85be0bdf..2e401eac 100644 --- a/chrome/renderer/cart/commerce_hint_agent.h +++ b/chrome/renderer/cart/commerce_hint_agent.h
@@ -101,15 +101,18 @@ // Callbacks with business logics for handling navigation-related observer // calls. These callbacks are triggered when navigation-related signals are - // captured and carry an extra bool |should_act| indicating whether commerce - // hint signals should be collected on current URL or not. + // captured and carry (1) a bool `should_skip` indicating whether commerce + // hint signals should be collected on current URL or not. (2) `heuristics` + // carrying commerce heuristics that are applicable in current domain. void DidStartNavigationCallback( const GURL& url, mojo::Remote<mojom::CommerceHintObserver> observer, - bool should_skip); + bool should_skip, + mojom::HeuristicsPtr heuristics); void DidFinishLoadCallback(const GURL& url, mojo::Remote<mojom::CommerceHintObserver> observer, - bool should_skip); + bool should_skip, + mojom::HeuristicsPtr heuristics); }; } // namespace cart
diff --git a/chrome/renderer/cart/commerce_hint_agent_browsertest.cc b/chrome/renderer/cart/commerce_hint_agent_browsertest.cc index 01d75af6..7894d5d 100644 --- a/chrome/renderer/cart/commerce_hint_agent_browsertest.cc +++ b/chrome/renderer/cart/commerce_hint_agent_browsertest.cc
@@ -9,6 +9,7 @@ #include "chrome/browser/browser_process.h" #include "chrome/browser/cart/cart_db_content.pb.h" #include "chrome/browser/cart/cart_service.h" +#include "chrome/browser/cart/commerce_hint_service.h" #include "chrome/browser/optimization_guide/optimization_guide_keyed_service.h" #include "chrome/browser/optimization_guide/optimization_guide_keyed_service_factory.h" #include "chrome/browser/persisted_state_db/profile_proto_db.h" @@ -42,6 +43,7 @@ #include "chrome/test/base/android/android_browser_test.h" #else #include "chrome/test/base/in_process_browser_test.h" +#include "components/commerce/core/commerce_heuristics_data.h" #endif namespace { @@ -191,6 +193,8 @@ PlatformBrowserTest::SetUpOnMainThread(); Profile* profile = Profile::FromBrowserContext(web_contents()->GetBrowserContext()); + commerce_hint_service_ = + cart::CommerceHintService::FromWebContents(web_contents()); service_ = CartServiceFactory::GetForProfile(profile); auto* identity_manager = IdentityManagerFactory::GetForProfile(profile); ASSERT_TRUE(identity_manager); @@ -414,6 +418,7 @@ base::test::ScopedFeatureList scoped_feature_list_; CartService* service_; + cart::CommerceHintService* commerce_hint_service_; net::EmbeddedTestServer https_server_{net::EmbeddedTestServer::TYPE_HTTPS}; std::unique_ptr<ukm::TestAutoSetUkmRecorder> ukm_recorder_; bool satisfied_; @@ -478,6 +483,65 @@ } #endif // !BUILDFLAG(IS_CHROMEOS) +// Flaky on Windows: https://crbug.com/1300332. +#if BUILDFLAG(IS_WIN) +#define MAYBE_VisitCart_GeneralPattern_FromComponent \ + DISABLED_VisitCart_GeneralPattern_FromComponent +#else +#define MAYBE_VisitCart_GeneralPattern_FromComponent \ + VisitCart_GeneralPattern_FromComponent +#endif +IN_PROC_BROWSER_TEST_F(CommerceHintAgentTest, + MAYBE_VisitCart_GeneralPattern_FromComponent) { + bool is_populated = + commerce_hint_service_->InitializeCommerceHeuristicsForTesting( + base::Version("0.0.0.1"), "{}", R"###( + { + "cart_page_url_regex": "(special|lol)" + } + )###", + "", ""); + DCHECK(is_populated); + + NavigateToURL("https://www.guitarcenter.com/special.html"); + WaitForUmaCount("Commerce.Carts.VisitCart", 1); + + NavigateToURL("https://www.guitarcenter.com/cart.html"); + WaitForUmaCount("Commerce.Carts.VisitCart", 1); + + NavigateToURL("https://www.guitarcenter.com/lol.html"); + WaitForUmaCount("Commerce.Carts.VisitCart", 2); +} + +IN_PROC_BROWSER_TEST_F(CommerceHintAgentTest, + VisitCart_PerDomain_FromComponent) { + bool is_populated = + commerce_hint_service_->InitializeCommerceHeuristicsForTesting( + base::Version("0.0.0.1"), R"###( + { + "guitarcenter.com": { + "cart_url_regex" : "unique|laugh" + } + } + )###", + R"###( + { + "cart_page_url_regex": "(special|lol)" + } + )###", + "", ""); + DCHECK(is_populated); + + NavigateToURL("https://www.guitarcenter.com/unique.html"); + WaitForUmaCount("Commerce.Carts.VisitCart", 1); + + NavigateToURL("https://www.guitarcenter.com/special.html"); + WaitForUmaCount("Commerce.Carts.VisitCart", 1); + + NavigateToURL("https://www.guitarcenter.com/laugh.html"); + WaitForUmaCount("Commerce.Carts.VisitCart", 2); +} + IN_PROC_BROWSER_TEST_F(CommerceHintAgentTest, ExtractCart) { // This page has three products. NavigateToURL("https://www.guitarcenter.com/cart.html"); @@ -668,7 +732,9 @@ // nothing is specified in AddHintForTesting(), and the real hints are not // downloaded, all the URLs are considered non-shopping. IN_PROC_BROWSER_TEST_F(CommerceHintCacaoTest, Rejected) { - NavigateToURL("https://www.guitarcenter.com/"); + NavigateToURL("https://www.guitarcenter.com/cart"); + WaitForCartCount(kEmptyExpected); + SendXHR("/add-to-cart", "product: 123"); base::PlatformThread::Sleep(TestTimeouts::tiny_timeout() * 30); WaitForCartCount(kEmptyExpected); @@ -1202,8 +1268,7 @@ void SetUpInProcessBrowserTestFixture() override { scoped_feature_list_.InitWithFeaturesAndParameters( {{ntp_features::kNtpChromeCartModule, - {{"optimize-renderer-signal", "true"}, - {"cart-extraction-gap-time", "0s"}}}, + {{"cart-extraction-gap-time", "0s"}}}, {optimization_guide::features::kOptimizationHints, {{}}}}, {}); }
diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn index c8c9f340..ff64a68 100644 --- a/chrome/test/BUILD.gn +++ b/chrome/test/BUILD.gn
@@ -1224,6 +1224,7 @@ "//components/cast_channel", "//components/cbor", "//components/certificate_transparency", + "//components/commerce/core:commerce_heuristics_data", "//components/commerce/core:feature_list", "//components/constrained_window", "//components/content_settings/browser",
diff --git a/chrome/test/data/webui/BUILD.gn b/chrome/test/data/webui/BUILD.gn index 6eb33a2..cdcc963c 100644 --- a/chrome/test/data/webui/BUILD.gn +++ b/chrome/test/data/webui/BUILD.gn
@@ -273,32 +273,12 @@ "$root_gen_dir/chrome/test/data/webui/nearby_share/shared/nearby_page_template_test.m.js", "$root_gen_dir/chrome/test/data/webui/nearby_share/shared/nearby_visibility_page_test.m.js", "$root_gen_dir/chrome/test/data/webui/settings/chromeos/add_users_tests.m.js", - "$root_gen_dir/chrome/test/data/webui/settings/chromeos/ambient_mode_page_test.m.js", - "$root_gen_dir/chrome/test/data/webui/settings/chromeos/ambient_mode_photos_page_test.m.js", - "$root_gen_dir/chrome/test/data/webui/settings/chromeos/apps_page_test.m.js", - "$root_gen_dir/chrome/test/data/webui/settings/chromeos/app_details_item_test.m.js", - "$root_gen_dir/chrome/test/data/webui/settings/chromeos/app_detail_view_test.m.js", - "$root_gen_dir/chrome/test/data/webui/settings/chromeos/app_item_test.m.js", - "$root_gen_dir/chrome/test/data/webui/settings/chromeos/app_management_page_tests.m.js", - "$root_gen_dir/chrome/test/data/webui/settings/chromeos/arc_detail_view_test.m.js", - "$root_gen_dir/chrome/test/data/webui/settings/chromeos/chrome_app_detail_view_test.m.js", - "$root_gen_dir/chrome/test/data/webui/settings/chromeos/dark_mode_subpage_tests.m.js", - "$root_gen_dir/chrome/test/data/webui/settings/chromeos/dom_switch_test.m.js", - "$root_gen_dir/chrome/test/data/webui/settings/chromeos/main_view_test.m.js", - "$root_gen_dir/chrome/test/data/webui/settings/chromeos/pin_to_shelf_item_test.m.js", - "$root_gen_dir/chrome/test/data/webui/settings/chromeos/pwa_detail_view_test.m.js", - "$root_gen_dir/chrome/test/data/webui/settings/chromeos/supported_links_item_test.m.js", - "$root_gen_dir/chrome/test/data/webui/settings/chromeos/toggle_row_test.m.js", - "$root_gen_dir/chrome/test/data/webui/settings/chromeos/managed_apps_test.m.js", - "$root_gen_dir/chrome/test/data/webui/settings/chromeos/test_plugin_vm_browser_proxy.m.js", - "$root_gen_dir/chrome/test/data/webui/settings/chromeos/uninstall_button_test.m.js", "$root_gen_dir/chrome/test/data/webui/settings/chromeos/crostini_page_test.m.js", "$root_gen_dir/chrome/test/data/webui/settings/chromeos/crostini_extra_containers_subpage_test.m.js", "$root_gen_dir/chrome/test/data/webui/settings/chromeos/cups_printer_page_tests.m.js", "$root_gen_dir/chrome/test/data/webui/settings/chromeos/cups_printer_test_utils.m.js", "$root_gen_dir/chrome/test/data/webui/settings/chromeos/cups_printer_landing_page_tests.m.js", "$root_gen_dir/chrome/test/data/webui/settings/chromeos/cups_printer_entry_tests.m.js", - "$root_gen_dir/chrome/test/data/webui/settings/chromeos/date_time_page_tests.m.js", "$root_gen_dir/chrome/test/data/webui/settings/chromeos/device_page_tests.m.js", "$root_gen_dir/chrome/test/data/webui/settings/chromeos/fake_receive_manager.m.js", "$root_gen_dir/chrome/test/data/webui/settings/chromeos/fake_quick_unlock_private.m.js", @@ -307,11 +287,8 @@ "$root_gen_dir/chrome/test/data/webui/settings/chromeos/fake_users_private.m.js", "$root_gen_dir/chrome/test/data/webui/settings/chromeos/fake_user_action_recorder.m.js", "$root_gen_dir/chrome/test/data/webui/settings/chromeos/fingerprint_browsertest_chromeos.m.js", - "$root_gen_dir/chrome/test/data/webui/settings/chromeos/google_assistant_page_test.m.js", "$root_gen_dir/chrome/test/data/webui/settings/chromeos/guest_os_shared_paths_test.m.js", "$root_gen_dir/chrome/test/data/webui/settings/chromeos/guest_os_shared_usb_devices_test.m.js", - "$root_gen_dir/chrome/test/data/webui/settings/chromeos/input_method_options_page_test.m.js", - "$root_gen_dir/chrome/test/data/webui/settings/chromeos/input_page_test.m.js", "$root_gen_dir/chrome/test/data/webui/settings/chromeos/onc_mojo_test.m.js", "$root_gen_dir/chrome/test/data/webui/settings/chromeos/kerberos_accounts_test.m.js", "$root_gen_dir/chrome/test/data/webui/settings/chromeos/kerberos_page_test.m.js", @@ -321,7 +298,6 @@ "$root_gen_dir/chrome/test/data/webui/settings/chromeos/os_edit_dictionary_page_test.m.js", "$root_gen_dir/chrome/test/data/webui/settings/chromeos/os_files_page_test.m.js", "$root_gen_dir/chrome/test/data/webui/settings/chromeos/os_languages_page_v2_tests.m.js", - "$root_gen_dir/chrome/test/data/webui/settings/chromeos/app_notifications_subpage_tests.m.js", "$root_gen_dir/chrome/test/data/webui/settings/chromeos/settings_scheduler_slider_test.m.js", "$root_gen_dir/chrome/test/data/webui/settings/chromeos/os_settings_main_test.m.js", "$root_gen_dir/chrome/test/data/webui/settings/chromeos/os_settings_ui_test.m.js", @@ -336,16 +312,13 @@ "$root_gen_dir/chrome/test/data/webui/settings/chromeos/os_search_page_test.m.js", "$root_gen_dir/chrome/test/data/webui/settings/chromeos/os_settings_search_box_test.m.js", "$root_gen_dir/chrome/test/data/webui/settings/chromeos/os_settings_page_test.m.js", - "$root_gen_dir/chrome/test/data/webui/settings/chromeos/parental_controls_page_test.m.js", "$root_gen_dir/chrome/test/data/webui/settings/chromeos/people_page_account_manager_test.m.js", "$root_gen_dir/chrome/test/data/webui/settings/chromeos/people_page_change_picture_test.m.js", - "$root_gen_dir/chrome/test/data/webui/settings/chromeos/personalization_page_test.m.js", "$root_gen_dir/chrome/test/data/webui/settings/chromeos/quick_unlock_authenticate_browsertest_chromeos.m.js", "$root_gen_dir/chrome/test/data/webui/settings/chromeos/smart_inputs_page_test.m.js", "$root_gen_dir/chrome/test/data/webui/settings/chromeos/smart_privacy_subpage_tests.m.js", "$root_gen_dir/chrome/test/data/webui/settings/chromeos/smb_shares_page_tests.m.js", "$root_gen_dir/chrome/test/data/webui/settings/chromeos/os_a11y_page_tests.m.js", - "$root_gen_dir/chrome/test/data/webui/settings/chromeos/reducers_test.m.js", "$root_gen_dir/chrome/test/data/webui/settings/chromeos/search_subpage_test.m.js", "$root_gen_dir/chrome/test/data/webui/settings/chromeos/search_engine_test.m.js", "$root_gen_dir/chrome/test/data/webui/settings/chromeos/switch_access_action_assignment_dialog_test.m.js", @@ -365,8 +338,6 @@ "$root_gen_dir/chrome/test/data/webui/settings/chromeos/test_wallpaper_browser_proxy.m.js", "$root_gen_dir/chrome/test/data/webui/settings/chromeos/tether_connection_dialog_test.m.js", "$root_gen_dir/chrome/test/data/webui/settings/chromeos/text_to_speech_subpage_tests.m.js", - "$root_gen_dir/chrome/test/data/webui/settings/chromeos/timezone_selector_test.m.js", - "$root_gen_dir/chrome/test/data/webui/settings/chromeos/timezone_subpage_test.m.js", "$root_gen_dir/chrome/test/data/webui/settings/chromeos/tts_subpage_test.m.js", "$root_gen_dir/chrome/test/data/webui/settings/chromeos/user_page_tests.m.js", ]
diff --git a/chrome/test/data/webui/settings/chromeos/BUILD.gn b/chrome/test/data/webui/settings/chromeos/BUILD.gn index 90c00e6a..758d022 100644 --- a/chrome/test/data/webui/settings/chromeos/BUILD.gn +++ b/chrome/test/data/webui/settings/chromeos/BUILD.gn
@@ -33,41 +33,12 @@ js_modulizer("modulize") { input_files = [ "add_users_tests.js", - "ambient_mode_page_test.js", - "ambient_mode_photos_page_test.js", - "apps_page_test.js", - "app_notifications_subpage_tests.js", - "app_management/app_details_item_test.js", - "app_management/app_detail_view_test.js", - "app_management/app_item_test.js", - "app_management/app_management_page_tests.js", - "app_management/chrome_app_detail_view_test.js", - "app_management/arc_detail_view_test.js", - "app_management/borealis_detail_view_test.js", - "app_management/dom_switch_test.js", - "app_management/main_view_test.js", - "app_management/pwa_detail_view_test.js", - "app_management/pin_to_shelf_item_test.js", - "app_management/plugin_vm_detail_view_test.js", - "app_management/managed_apps_test.js", - "app_management/reducers_test.js", - "app_management/resize_lock_item_test.js", - "app_management/supported_links_item_test.js", - "app_management/file_handling_item_test.js", - "app_management/test_plugin_vm_browser_proxy.js", - "app_management/toggle_row_test.js", - "app_management/test_store.js", - "app_management/test_util.js", - "app_management/uninstall_button_test.js", - "change_dictation_locale_dialog_test.js", "crostini_page_test.js", "crostini_extra_containers_subpage_test.js", "cups_printer_entry_tests.js", "cups_printer_landing_page_tests.js", "cups_printer_page_tests.js", "cups_printer_test_utils.js", - "dark_mode_subpage_tests.js", - "date_time_page_tests.js", "device_page_tests.js", "fake_quick_unlock_private.js", "fake_quick_unlock_uma.js", @@ -77,14 +48,10 @@ "fake_user_action_recorder.js", "fake_users_private.js", "fingerprint_browsertest_chromeos.js", - "google_assistant_page_test.js", "guest_os_shared_paths_test.js", "guest_os_shared_usb_devices_test.js", - "input_method_options_page_test.js", - "input_page_test.js", "kerberos_accounts_test.js", "kerberos_page_test.js", - "keyboard_shortcut_banner_test.js", "manage_accessibility_page_tests.js", "onc_mojo_test.js", "os_a11y_page_tests.js", @@ -104,12 +71,10 @@ "os_settings_ui_test.js", "os_settings_ui_test_2.js", "os_sync_controls_test.js", - "parental_controls_page_test.js", "people_page_account_manager_test.js", "people_page_change_picture_test.js", "quick_unlock_authenticate_browsertest_chromeos.js", "lock_screen_tests.js", - "personalization_page_test.js", "search_subpage_test.js", "search_engine_test.js", "settings_scheduler_slider_test.js", @@ -122,7 +87,6 @@ "switch_access_subpage_tests.js", "test_about_page_browser_proxy_chromeos.js", "test_crostini_browser_proxy.js", - "test_android_apps_browser_proxy.js", "test_cups_printers_browser_proxy.js", "test_device_name_browser_proxy.js", "test_guest_os_browser_proxy.js", @@ -136,8 +100,6 @@ "test_wallpaper_browser_proxy.js", "tether_connection_dialog_test.js", "text_to_speech_subpage_tests.js", - "timezone_selector_test.js", - "timezone_subpage_test.js", "tts_subpage_test.js", "user_page_tests.js", ]
diff --git a/chrome/test/data/webui/settings/chromeos/ambient_mode_page_test.js b/chrome/test/data/webui/settings/chromeos/ambient_mode_page_test.js index 045f078..1310dc3 100644 --- a/chrome/test/data/webui/settings/chromeos/ambient_mode_page_test.js +++ b/chrome/test/data/webui/settings/chromeos/ambient_mode_page_test.js
@@ -2,19 +2,16 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// clang-format off -// #import 'chrome://os-settings/chromeos/os_settings.js'; +import {AmbientModeBrowserProxyImpl, AmbientModeTemperatureUnit, AmbientModeTopicSource, CrSettingsPrefs, Router, routes} from 'chrome://os-settings/chromeos/os_settings.js'; +import {getDeepActiveElement} from 'chrome://resources/js/util.m.js'; +import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; +import {waitAfterNextRender} from 'chrome://test/test_util.js'; -// #import {AmbientModeTopicSource, AmbientModeTemperatureUnit, AmbientModeBrowserProxyImpl, CrSettingsPrefs, routes, Router} from 'chrome://os-settings/chromeos/os_settings.js'; -// #import {TestBrowserProxy} from '../../test_browser_proxy.js'; -// #import {assertEquals, assertFalse, assertTrue} from '../../chai_assert.js'; -// #import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; -// #import {getDeepActiveElement} from 'chrome://resources/js/util.m.js'; -// #import {waitAfterNextRender} from 'chrome://test/test_util.js'; -// clang-format on +import {assertEquals, assertFalse, assertTrue} from '../../chai_assert.js'; +import {TestBrowserProxy} from '../../test_browser_proxy.js'; /** - * @implements {settings.AmbientModeBrowserProxy} + * @implements {AmbientModeBrowserProxy} */ class TestAmbientModeBrowserProxy extends TestBrowserProxy { constructor() { @@ -58,7 +55,7 @@ setup(function() { browserProxy = new TestAmbientModeBrowserProxy(); - settings.AmbientModeBrowserProxyImpl.instance_ = browserProxy; + AmbientModeBrowserProxyImpl.instance_ = browserProxy; PolymerTest.clearBody(); @@ -74,13 +71,13 @@ }; document.body.appendChild(ambientModePage); - Polymer.dom.flush(); + flush(); }); }); teardown(function() { ambientModePage.remove(); - settings.Router.getInstance().resetRouteForTesting(); + Router.getInstance().resetRouteForTesting(); }); test('toggleAmbientMode', () => { @@ -95,7 +92,7 @@ // Click the button will toggle the pref value. button.click(); - Polymer.dom.flush(); + flush(); const enabled_toggled = ambientModePage.getPref('settings.ambient_mode.enabled.value'); assertEquals(enabled_toggled, button.checked); @@ -103,7 +100,7 @@ // Click again will toggle the pref value. button.click(); - Polymer.dom.flush(); + flush(); const enabled_toggled_twice = ambientModePage.getPref('settings.ambient_mode.enabled.value'); assertEquals(enabled_toggled_twice, button.checked); @@ -137,7 +134,7 @@ // Select celsius as the initial temperature unit. cr.webUIListenerCallback( 'temperature-unit-changed', AmbientModeTemperatureUnit.CELSIUS); - Polymer.dom.flush(); + flush(); // Spinner is not active and not visible. assertFalse(spinner.active); @@ -160,7 +157,7 @@ // Select celsius as the initial temperature unit. cr.webUIListenerCallback( 'temperature-unit-changed', AmbientModeTemperatureUnit.CELSIUS); - Polymer.dom.flush(); + flush(); const topicSourceList = ambientModePage.$$('topic-source-list'); const ironList = topicSourceList.$$('iron-list'); @@ -180,7 +177,7 @@ // Select celsius as the initial temperature unit. cr.webUIListenerCallback( 'temperature-unit-changed', AmbientModeTemperatureUnit.CELSIUS); - Polymer.dom.flush(); + flush(); const topicSourceList = ambientModePage.$$('topic-source-list'); const ironList = topicSourceList.$$('iron-list'); @@ -200,7 +197,7 @@ assertEquals(1, showAlbumEventCalls); // Should navigate to the ambient-mode/photos?topic-source=0 subpage. - const router = settings.Router.getInstance(); + const router = Router.getInstance(); assertEquals('/ambientMode/photos', router.getCurrentRoute().path); assertEquals('topicSource=0', router.getQueryParameters().toString()); }); @@ -208,8 +205,7 @@ test('Deep link to topic sources', async () => { const params = new URLSearchParams; params.append('settingId', '502'); - settings.Router.getInstance().navigateTo( - settings.routes.AMBIENT_MODE, params); + Router.getInstance().navigateTo(routes.AMBIENT_MODE, params); // Select the google photos topic source. cr.webUIListenerCallback('topic-source-changed', { @@ -219,11 +215,11 @@ // Select celsius as the initial temperature unit. cr.webUIListenerCallback( 'temperature-unit-changed', AmbientModeTemperatureUnit.CELSIUS); - Polymer.dom.flush(); + flush(); const deepLinkElement = ambientModePage.$$('topic-source-list').$$('topic-source-item'); - await test_util.waitAfterNextRender(deepLinkElement); + await waitAfterNextRender(deepLinkElement); assertEquals( deepLinkElement, getDeepActiveElement(), 'Topic sources row should be focused for settingId=502.'); @@ -235,7 +231,7 @@ 'topicSource': AmbientModeTopicSource.GOOGLE_PHOTOS, 'hasAlbums': true }); - Polymer.dom.flush(); + flush(); // When |selectedTemperatureUnit_| is invalid the radio buttons is not // visible. This is the initial state. @@ -246,7 +242,7 @@ // visible and enabled. cr.webUIListenerCallback( 'temperature-unit-changed', AmbientModeTemperatureUnit.CELSIUS); - Polymer.dom.flush(); + flush(); radioGroup = ambientModePage.$$('#weatherDiv cr-radio-group'); assertTrue(!!radioGroup); @@ -262,7 +258,7 @@ // Select celsius as the initial temperature unit. cr.webUIListenerCallback( 'temperature-unit-changed', AmbientModeTemperatureUnit.CELSIUS); - Polymer.dom.flush(); + flush(); const celsiusButton = ambientModePage.$$('cr-radio-button[name=celsius]'); const fahrenheitButton = @@ -309,7 +305,7 @@ // Select celsius as the initial temperature unit. cr.webUIListenerCallback( 'temperature-unit-changed', AmbientModeTemperatureUnit.CELSIUS); - Polymer.dom.flush(); + flush(); const celsiusButton = ambientModePage.$$('cr-radio-button[name=celsius]'); @@ -329,7 +325,7 @@ // Select celsius as the initial temperature unit. cr.webUIListenerCallback( 'temperature-unit-changed', AmbientModeTemperatureUnit.CELSIUS); - Polymer.dom.flush(); + flush(); const button = ambientModePage.$$('#ambientModeEnable'); assertTrue(!!button); @@ -349,7 +345,7 @@ // Click the button will toggle the pref value. button.click(); - Polymer.dom.flush(); + flush(); enabled = ambientModePage.getPref('settings.ambient_mode.enabled.value'); assertFalse(enabled); assertEquals(enabled, button.checked);
diff --git a/chrome/test/data/webui/settings/chromeos/ambient_mode_photos_page_test.js b/chrome/test/data/webui/settings/chromeos/ambient_mode_photos_page_test.js index aa3b4fa..1c849df 100644 --- a/chrome/test/data/webui/settings/chromeos/ambient_mode_photos_page_test.js +++ b/chrome/test/data/webui/settings/chromeos/ambient_mode_photos_page_test.js
@@ -2,18 +2,15 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// clang-format off -// #import 'chrome://os-settings/chromeos/os_settings.js'; +import {AmbientModeBrowserProxyImpl, AmbientModeTopicSource} from 'chrome://os-settings/chromeos/os_settings.js'; +import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; +import {waitAfterNextRender} from 'chrome://test/test_util.js'; -// #import {AmbientModeTopicSource, AmbientModeBrowserProxyImpl} from 'chrome://os-settings/chromeos/os_settings.js'; -// #import {TestBrowserProxy} from '../../test_browser_proxy.js'; -// #import {assertEquals, assertFalse, assertTrue} from '../../chai_assert.js'; -// #import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; -// #import {waitAfterNextRender} from 'chrome://test/test_util.js'; -// clang-format on +import {assertEquals, assertFalse, assertTrue} from '../../chai_assert.js'; +import {TestBrowserProxy} from '../../test_browser_proxy.js'; /** - * @implements {settings.AmbientModeBrowserProxy} + * @implements {AmbientModeBrowserProxy} */ class TestAmbientModeBrowserProxy extends TestBrowserProxy { constructor() { @@ -50,13 +47,13 @@ setup(function() { browserProxy = new TestAmbientModeBrowserProxy(); - settings.AmbientModeBrowserProxyImpl.instance_ = browserProxy; + AmbientModeBrowserProxyImpl.instance_ = browserProxy; PolymerTest.clearBody(); ambientModePhotosPage = document.createElement('settings-ambient-mode-photos-page'); document.body.appendChild(ambientModePhotosPage); - Polymer.dom.flush(); + flush(); }); teardown(function() { @@ -121,7 +118,7 @@ function displayPhotosPage_(albums, topicSource) { ambientModePhotosPage.albums = albums; ambientModePhotosPage.topicSource = topicSource; - Polymer.dom.flush(); + flush(); } /** @@ -401,10 +398,10 @@ const image1 = album1.$$('#image'); image1.click(); assertTrue(album1.checked); - Polymer.dom.flush(); + flush(); const artAlbumDialog = ambientModePhotosPage.$$('art-album-dialog'); - await test_util.waitAfterNextRender(artAlbumDialog); + await waitAfterNextRender(artAlbumDialog); assertTrue(artAlbumDialog.$$('#dialog').open); }); @@ -856,13 +853,13 @@ 'There shouldn\'t be a tooltip for non-overflowing text.'); getTitleElement_(0).text = createRandomString_(300); - Polymer.dom.flush(); + flush(); assertTrue( isTooltipAvailable_(getTitleElement_(0)), 'There should be a tooltip for overflowing text.'); getTitleElement_(0).text = createRandomString_(1); - Polymer.dom.flush(); + flush(); assertFalse( isTooltipAvailable_(getTitleElement_(0)), 'There shouldn\'t be a tooltip for non-overflowing text.');
diff --git a/chrome/test/data/webui/settings/chromeos/app_management/app_detail_view_test.js b/chrome/test/data/webui/settings/chromeos/app_management/app_detail_view_test.js index 13de9a7..f6537b3 100644 --- a/chrome/test/data/webui/settings/chromeos/app_management/app_detail_view_test.js +++ b/chrome/test/data/webui/settings/chromeos/app_management/app_detail_view_test.js
@@ -2,16 +2,11 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// clang-format off -// #import 'chrome://os-settings/chromeos/os_settings.js'; - -// #import {AppManagementStore, FakePageHandler, updateSelectedAppId, getPermissionValueBool, PageType, Router, routes} from 'chrome://os-settings/chromeos/os_settings.js'; -// #import {setupFakeHandler, replaceStore, replaceBody, isHiddenByDomIf, isHidden, getPermissionItemByType, getPermissionCrToggleByType} from './test_util.m.js'; -// #import {flushTasks} from 'chrome://test/test_util.js'; -// clang-format on - 'use strict'; +import {AppManagementStore, updateSelectedAppId} from 'chrome://os-settings/chromeos/os_settings.js'; +import {setupFakeHandler, replaceStore, replaceBody} from './test_util.js'; + suite('<app-management-app-detail-view>', () => { let appDetailView; let fakeHandler; @@ -26,8 +21,7 @@ // Add an app, and make it the currently selected app. arcApp = await fakeHandler.addApp('app1_id', arcOptions); - app_management.AppManagementStore.getInstance().dispatch( - app_management.actions.updateSelectedAppId(arcApp.id)); + AppManagementStore.getInstance().dispatch(updateSelectedAppId(arcApp.id)); appDetailView = document.createElement('app-management-app-detail-view'); @@ -37,7 +31,7 @@ test('Change selected app', async () => { assertEquals( - app_management.AppManagementStore.getInstance().data.selectedAppId, + AppManagementStore.getInstance().data.selectedAppId, appDetailView.app_.id); assertEquals(arcApp.id, appDetailView.app_.id); assertTrue(!!appDetailView.$$('app-management-arc-detail-view')); @@ -45,12 +39,11 @@ const pwaOptions = {type: appManagement.mojom.AppType.kWeb}; // Add an second pwa app, and make it the currently selected app. const pwaApp = await fakeHandler.addApp('app2_id', pwaOptions); - app_management.AppManagementStore.getInstance().dispatch( - app_management.actions.updateSelectedAppId(pwaApp.id)); + AppManagementStore.getInstance().dispatch(updateSelectedAppId(pwaApp.id)); await fakeHandler.flushPipesForTesting(); assertEquals( - app_management.AppManagementStore.getInstance().data.selectedAppId, + AppManagementStore.getInstance().data.selectedAppId, appDetailView.app_.id); assertEquals(pwaApp.id, appDetailView.app_.id); assertFalse(!!appDetailView.$$('app-management-arc-detail-view'));
diff --git a/chrome/test/data/webui/settings/chromeos/app_management/app_details_item_test.js b/chrome/test/data/webui/settings/chromeos/app_management/app_details_item_test.js index 8968cb1c..2966e1cf 100644 --- a/chrome/test/data/webui/settings/chromeos/app_management/app_details_item_test.js +++ b/chrome/test/data/webui/settings/chromeos/app_management/app_details_item_test.js
@@ -2,13 +2,10 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// clang-format off -// #import 'chrome://os-settings/chromeos/os_settings.js'; +import {AppManagementStore, updateSelectedAppId} from 'chrome://os-settings/chromeos/os_settings.js'; +import {flushTasks} from 'chrome://test/test_util.js'; -// #import {AppManagementStore, FakePageHandler, updateSelectedAppId, addApp} from 'chrome://os-settings/chromeos/os_settings.js'; -// #import {setupFakeHandler, replaceStore, replaceBody, isHidden} from './test_util.m.js'; -// #import {flushTasks} from 'chrome://test/test_util.js'; -// clang-format on +import {replaceBody, replaceStore, setupFakeHandler} from './test_util.js'; suite('<app-management-app-details-item>', () => { let appDetailsItem; @@ -21,7 +18,7 @@ appDetailsItem = document.createElement('app-management-app-details-item'); replaceBody(appDetailsItem); - test_util.flushTasks(); + flushTasks(); }); test('PWA type', async function() { @@ -33,19 +30,17 @@ // Add PWA app, and make it the currently selected app. const app = await fakeHandler.addApp('app', options); - app_management.AppManagementStore.getInstance().dispatch( - app_management.actions.updateSelectedAppId(app.id)); + AppManagementStore.getInstance().dispatch(updateSelectedAppId(app.id)); await fakeHandler.flushPipesForTesting(); - assertTrue( - !!app_management.AppManagementStore.getInstance().data.apps[app.id]); + assertTrue(!!AppManagementStore.getInstance().data.apps[app.id]); appDetailsItem.app = app; replaceBody(appDetailsItem); fakeHandler.flushPipesForTesting(); - test_util.flushTasks(); + flushTasks(); expectEquals( appDetailsItem.shadowRoot.querySelector('#type').innerText.trim(), @@ -61,19 +56,17 @@ // Add Android app, and make it the currently selected app. const app = await fakeHandler.addApp('app', options); - app_management.AppManagementStore.getInstance().dispatch( - app_management.actions.updateSelectedAppId(app.id)); + AppManagementStore.getInstance().dispatch(updateSelectedAppId(app.id)); await fakeHandler.flushPipesForTesting(); - assertTrue( - !!app_management.AppManagementStore.getInstance().data.apps[app.id]); + assertTrue(!!AppManagementStore.getInstance().data.apps[app.id]); appDetailsItem.app = app; replaceBody(appDetailsItem); fakeHandler.flushPipesForTesting(); - test_util.flushTasks(); + flushTasks(); expectEquals( appDetailsItem.shadowRoot.querySelector('#type').innerText.trim(), @@ -89,19 +82,17 @@ // Add Chrome app, and make it the currently selected app. const app = await fakeHandler.addApp('app', options); - app_management.AppManagementStore.getInstance().dispatch( - app_management.actions.updateSelectedAppId(app.id)); + AppManagementStore.getInstance().dispatch(updateSelectedAppId(app.id)); await fakeHandler.flushPipesForTesting(); - assertTrue( - !!app_management.AppManagementStore.getInstance().data.apps[app.id]); + assertTrue(!!AppManagementStore.getInstance().data.apps[app.id]); appDetailsItem.app = app; replaceBody(appDetailsItem); fakeHandler.flushPipesForTesting(); - test_util.flushTasks(); + flushTasks(); expectEquals( appDetailsItem.shadowRoot.querySelector('#type').innerText.trim(), @@ -117,19 +108,17 @@ // Add Chrome app, and make it the currently selected app. const app = await fakeHandler.addApp('app', options); - app_management.AppManagementStore.getInstance().dispatch( - app_management.actions.updateSelectedAppId(app.id)); + AppManagementStore.getInstance().dispatch(updateSelectedAppId(app.id)); await fakeHandler.flushPipesForTesting(); - assertTrue( - !!app_management.AppManagementStore.getInstance().data.apps[app.id]); + assertTrue(!!AppManagementStore.getInstance().data.apps[app.id]); appDetailsItem.app = app; replaceBody(appDetailsItem); fakeHandler.flushPipesForTesting(); - test_util.flushTasks(); + flushTasks(); expectEquals( appDetailsItem.shadowRoot.querySelector('#type').innerText.trim(), @@ -145,19 +134,17 @@ // Add Chrome app, and make it the currently selected app. const app = await fakeHandler.addApp('app', options); - app_management.AppManagementStore.getInstance().dispatch( - app_management.actions.updateSelectedAppId(app.id)); + AppManagementStore.getInstance().dispatch(updateSelectedAppId(app.id)); await fakeHandler.flushPipesForTesting(); - assertTrue( - !!app_management.AppManagementStore.getInstance().data.apps[app.id]); + assertTrue(!!AppManagementStore.getInstance().data.apps[app.id]); appDetailsItem.app = app; replaceBody(appDetailsItem); fakeHandler.flushPipesForTesting(); - test_util.flushTasks(); + flushTasks(); expectEquals( appDetailsItem.shadowRoot.querySelector('#type').innerText.trim(), @@ -172,19 +159,17 @@ // Add System app, and make it the currently selected app. const app = await fakeHandler.addApp('app', options); - app_management.AppManagementStore.getInstance().dispatch( - app_management.actions.updateSelectedAppId(app.id)); + AppManagementStore.getInstance().dispatch(updateSelectedAppId(app.id)); await fakeHandler.flushPipesForTesting(); - assertTrue( - !!app_management.AppManagementStore.getInstance().data.apps[app.id]); + assertTrue(!!AppManagementStore.getInstance().data.apps[app.id]); appDetailsItem.app = app; replaceBody(appDetailsItem); fakeHandler.flushPipesForTesting(); - test_util.flushTasks(); + flushTasks(); expectEquals( appDetailsItem.shadowRoot.querySelector('#type').innerText.trim(), @@ -199,19 +184,17 @@ // Add System app, and make it the currently selected app. const app = await fakeHandler.addApp('app', options); - app_management.AppManagementStore.getInstance().dispatch( - app_management.actions.updateSelectedAppId(app.id)); + AppManagementStore.getInstance().dispatch(updateSelectedAppId(app.id)); await fakeHandler.flushPipesForTesting(); - assertTrue( - !!app_management.AppManagementStore.getInstance().data.apps[app.id]); + assertTrue(!!AppManagementStore.getInstance().data.apps[app.id]); appDetailsItem.app = app; replaceBody(appDetailsItem); fakeHandler.flushPipesForTesting(); - test_util.flushTasks(); + flushTasks(); expectEquals( appDetailsItem.shadowRoot.querySelector('#type').innerText.trim(), @@ -227,19 +210,17 @@ // Add Chrome app, and make it the currently selected app. const app = await fakeHandler.addApp('app', options); - app_management.AppManagementStore.getInstance().dispatch( - app_management.actions.updateSelectedAppId(app.id)); + AppManagementStore.getInstance().dispatch(updateSelectedAppId(app.id)); await fakeHandler.flushPipesForTesting(); - assertTrue( - !!app_management.AppManagementStore.getInstance().data.apps[app.id]); + assertTrue(!!AppManagementStore.getInstance().data.apps[app.id]); appDetailsItem.app = app; replaceBody(appDetailsItem); fakeHandler.flushPipesForTesting(); - test_util.flushTasks(); + flushTasks(); expectEquals( appDetailsItem.shadowRoot.querySelector('#version').innerText.trim(), @@ -255,19 +236,17 @@ // Add Android app, and make it the currently selected app. const app = await fakeHandler.addApp('app', options); - app_management.AppManagementStore.getInstance().dispatch( - app_management.actions.updateSelectedAppId(app.id)); + AppManagementStore.getInstance().dispatch(updateSelectedAppId(app.id)); await fakeHandler.flushPipesForTesting(); - assertTrue( - !!app_management.AppManagementStore.getInstance().data.apps[app.id]); + assertTrue(!!AppManagementStore.getInstance().data.apps[app.id]); appDetailsItem.app = app; replaceBody(appDetailsItem); fakeHandler.flushPipesForTesting(); - test_util.flushTasks(); + flushTasks(); expectEquals( appDetailsItem.shadowRoot.querySelector('#version').innerText.trim(),
diff --git a/chrome/test/data/webui/settings/chromeos/app_management/app_item_test.js b/chrome/test/data/webui/settings/chromeos/app_management/app_item_test.js index 1de8ec5a..63a0271f 100644 --- a/chrome/test/data/webui/settings/chromeos/app_management/app_item_test.js +++ b/chrome/test/data/webui/settings/chromeos/app_management/app_item_test.js
@@ -2,17 +2,13 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// clang-format off -// #import 'chrome://os-settings/chromeos/os_settings.js'; - -// #import {FakePageHandler} from 'chrome://os-settings/chromeos/os_settings.js'; -// #import {replaceBody} from './test_util.m.js'; -// #import {flushTasks} from 'chrome://test/test_util.js'; -// #import {Router} from 'chrome://os-settings/chromeos/os_settings.js'; -// clang-format on - 'use strict'; +import {FakePageHandler} from 'chrome://os-settings/chromeos/os_settings.js'; +import {replaceBody} from './test_util.js'; +import {flushTasks} from 'chrome://test/test_util.js'; +import {Router} from 'chrome://os-settings/chromeos/os_settings.js'; + suite('<app-management-app-item>', () => { let appItem; let arcApp; @@ -20,25 +16,24 @@ setup(async () => { appItem = document.createElement('app-management-app-item'); replaceBody(appItem); - await test_util.flushTasks(); + await flushTasks(); // Create an ARC app. const arcOptions = {type: appManagement.mojom.AppType.kArc}; - arcApp = app_management.FakePageHandler.createApp('app1_id', arcOptions); + arcApp = FakePageHandler.createApp('app1_id', arcOptions); appItem.app = arcApp; - await test_util.flushTasks(); + await flushTasks(); }); test('Onclick redirects to correct route', async () => { - assertFalse(!!settings.Router.getInstance().getQueryParameters().get('id')); + assertFalse(!!Router.getInstance().getQueryParameters().get('id')); appItem.click(); - await test_util.flushTasks(); + await flushTasks(); assertEquals( - arcApp.id, - settings.Router.getInstance().getQueryParameters().get('id')); + arcApp.id, Router.getInstance().getQueryParameters().get('id')); }); test('Icon renders', async () => {
diff --git a/chrome/test/data/webui/settings/chromeos/app_management/app_management_page_tests.js b/chrome/test/data/webui/settings/chromeos/app_management/app_management_page_tests.js index 50634138..a1647a12f 100644 --- a/chrome/test/data/webui/settings/chromeos/app_management/app_management_page_tests.js +++ b/chrome/test/data/webui/settings/chromeos/app_management/app_management_page_tests.js
@@ -2,16 +2,12 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// clang-format off -// #import 'chrome://os-settings/chromeos/os_settings.js'; - -// #import {BrowserProxy} from 'chrome://os-settings/chromeos/os_settings.js'; -// #import {flushTasks} from 'chrome://test/test_util.js'; -// #import {setupFakeHandler, replaceStore, replaceBody, isHiddenByDomIf} from './test_util.m.js'; -// clang-format on - 'use strict'; +import {BrowserProxy} from 'chrome://os-settings/chromeos/os_settings.js'; +import {flushTasks} from 'chrome://test/test_util.js'; +import {setupFakeHandler, replaceStore, replaceBody, isHiddenByDomIf} from './test_util.js'; + suite('AppManagementPageTests', () => { let appManagementPage; let fakeHandler; @@ -45,7 +41,7 @@ test('loads', async () => { // Check that the browser responds to the getApps() message. const {apps: initialApps} = - await app_management.BrowserProxy.getInstance().handler.getApps(); + await BrowserProxy.getInstance().handler.getApps(); }); test('App list renders on page change', async () => { @@ -64,7 +60,7 @@ expectTrue(isHiddenByDomIf(getNoAppsFoundLabel())); fakeHandler.uninstall(app.id); - await test_util.flushTasks(); + await flushTasks(); expectEquals(0, getAppListChildren()); expectFalse(isHiddenByDomIf(getNoAppsFoundLabel())); }); @@ -76,20 +72,20 @@ expectEquals(3, getAppListChildren()); appManagementPage.searchTerm = 's'; - await test_util.flushTasks(); + await flushTasks(); expectEquals(2, getAppListChildren()); fakeHandler.uninstall(sheets.id); - await test_util.flushTasks(); + await flushTasks(); expectEquals(1, getAppListChildren()); appManagementPage.searchTerm = 'ss'; - await test_util.flushTasks(); + await flushTasks(); expectEquals(0, getAppListChildren()); expectFalse(isHiddenByDomIf(getNoAppsFoundLabel())); appManagementPage.searchTerm = ''; - await test_util.flushTasks(); + await flushTasks(); expectEquals(2, getAppListChildren()); }); });
diff --git a/chrome/test/data/webui/settings/chromeos/app_management/arc_detail_view_test.js b/chrome/test/data/webui/settings/chromeos/app_management/arc_detail_view_test.js index 45c512c..8ab390b 100644 --- a/chrome/test/data/webui/settings/chromeos/app_management/arc_detail_view_test.js +++ b/chrome/test/data/webui/settings/chromeos/app_management/arc_detail_view_test.js
@@ -2,16 +2,12 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// clang-format off -// #import 'chrome://os-settings/chromeos/os_settings.js'; - -// #import {AppManagementStore, FakePageHandler, PermissionType, updateSelectedAppId, getPermissionValueBool} from 'chrome://os-settings/chromeos/os_settings.js'; -// #import {setupFakeHandler, replaceStore, replaceBody, isHiddenByDomIf, isHidden, getPermissionItemByType, getPermissionCrToggleByType} from './test_util.m.js'; -// #import {flushTasks} from 'chrome://test/test_util.js'; -// clang-format on - 'use strict'; +import {AppManagementStore, FakePageHandler, PermissionType, updateSelectedAppId, getPermissionValueBool} from 'chrome://os-settings/chromeos/os_settings.js'; +import {setupFakeHandler, replaceStore, replaceBody, isHiddenByDomIf, isHidden, getPermissionItemByType, getPermissionCrToggleByType} from './test_util.js'; +import {flushTasks} from 'chrome://test/test_util.js'; + suite('<app-management-arc-detail-view>', () => { let arcPermissionView; let fakeHandler; @@ -21,8 +17,7 @@ } function getPermissionBoolByType(permissionType) { - return app_management.util.getPermissionValueBool( - arcPermissionView.app_, permissionType); + return getPermissionValueBool(arcPermissionView.app_, permissionType); } async function clickPermissionToggle(permissionType) { @@ -42,7 +37,7 @@ // Create an ARC app without microphone permissions. const arcOptions = { type: appManagement.mojom.AppType.kArc, - permissions: app_management.FakePageHandler.createArcPermissions([ + permissions: FakePageHandler.createArcPermissions([ PermissionType.kCamera, PermissionType.kLocation, PermissionType.kNotifications, @@ -53,8 +48,7 @@ // Add an arc app, and make it the currently selected app. const app = await fakeHandler.addApp(null, arcOptions); - app_management.AppManagementStore.getInstance().dispatch( - app_management.actions.updateSelectedAppId(app.id)); + AppManagementStore.getInstance().dispatch(updateSelectedAppId(app.id)); arcPermissionView = document.createElement('app-management-arc-detail-view'); @@ -63,7 +57,7 @@ test('App is rendered correctly', () => { assertEquals( - app_management.AppManagementStore.getInstance().data.selectedAppId, + AppManagementStore.getInstance().data.selectedAppId, arcPermissionView.app_.id); }); @@ -141,14 +135,13 @@ // Create an ARC app without any permissions. const arcOptions = { type: appManagement.mojom.AppType.kArc, - permissions: app_management.FakePageHandler.createArcPermissions([]) + permissions: FakePageHandler.createArcPermissions([]) }; // Add an arc app, and make it the currently selected app. const app = await fakeHandler.addApp(null, arcOptions); - app_management.AppManagementStore.getInstance().dispatch( - app_management.actions.updateSelectedAppId(app.id)); - await test_util.flushTasks(); + AppManagementStore.getInstance().dispatch(updateSelectedAppId(app.id)); + await flushTasks(); expectFalse(isHiddenByDomIf( arcPermissionView.root.querySelector('#no-permissions')));
diff --git a/chrome/test/data/webui/settings/chromeos/app_management/borealis_detail_view_test.js b/chrome/test/data/webui/settings/chromeos/app_management/borealis_detail_view_test.js index af4b9e1..41a9537 100644 --- a/chrome/test/data/webui/settings/chromeos/app_management/borealis_detail_view_test.js +++ b/chrome/test/data/webui/settings/chromeos/app_management/borealis_detail_view_test.js
@@ -2,17 +2,12 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// clang-format off -// #import 'chrome://os-settings/chromeos/os_settings.js'; - -// #import {PermissionType, createBoolPermission, AppManagementStore, updateSelectedAppId, getPermissionValueBool, convertOptionalBoolToBool} from 'chrome://os-settings/chromeos/os_settings.js'; -// #import {setupFakeHandler, replaceStore, replaceBody, getPermissionCrToggleByType, getPermissionToggleByType} from './test_util.m.js'; -// #import {eventToPromise, flushTasks} from 'chrome://test/test_util.js'; -// #import {Router, routes, Route} from 'chrome://os-settings/chromeos/os_settings.js'; -// clang-format on - 'use strict'; +import {PermissionType, createBoolPermission, AppManagementStore, updateSelectedAppId, getPermissionValueBool, convertOptionalBoolToBool, Router} from 'chrome://os-settings/chromeos/os_settings.js'; +import {setupFakeHandler, replaceStore, replaceBody, getPermissionCrToggleByType, getPermissionToggleByType} from './test_util.js'; +import {eventToPromise, flushTasks} from 'chrome://test/test_util.js'; + suite('<app-management-borealis-detail-view>', function() { let borealisDetailView; let fakeHandler; @@ -20,8 +15,7 @@ const kBorealisClientAppId = 'epfhbkiklgmlkhfpbcdleadnhcfdjfmo'; function getPermissionBoolByType(permissionType) { - return app_management.util.getPermissionValueBool( - borealisDetailView.app_, permissionType); + return getPermissionValueBool(borealisDetailView.app_, permissionType); } async function clickToggle(permissionType) { @@ -30,7 +24,7 @@ } function getSelectedAppFromStore() { - const storeData = app_management.AppManagementStore.getInstance().data; + const storeData = AppManagementStore.getInstance().data; return storeData.apps[storeData.selectedAppId]; } @@ -51,8 +45,7 @@ permissions: permissions }; const mainApp = await fakeHandler.addApp(kBorealisClientAppId, mainOptions); - app_management.AppManagementStore.getInstance().dispatch( - app_management.actions.updateSelectedAppId(mainApp.id)); + AppManagementStore.getInstance().dispatch(updateSelectedAppId(mainApp.id)); borealisDetailView = document.createElement('app-management-borealis-detail-view'); replaceBody(borealisDetailView); @@ -60,7 +53,7 @@ test('App is rendered correctly', function() { assertEquals( - app_management.AppManagementStore.getInstance().data.selectedAppId, + AppManagementStore.getInstance().data.selectedAppId, borealisDetailView.app_.id); }); @@ -94,22 +87,19 @@ assertFalse(toggle.checked); assertEquals( toggle.checked, - app_management.util.convertOptionalBoolToBool( - getSelectedAppFromStore().isPinned)); + convertOptionalBoolToBool(getSelectedAppFromStore().isPinned)); pinToShelfItem.click(); await fakeHandler.flushPipesForTesting(); assertTrue(toggle.checked); assertEquals( toggle.checked, - app_management.util.convertOptionalBoolToBool( - getSelectedAppFromStore().isPinned)); + convertOptionalBoolToBool(getSelectedAppFromStore().isPinned)); pinToShelfItem.click(); await fakeHandler.flushPipesForTesting(); assertFalse(toggle.checked); assertEquals( toggle.checked, - app_management.util.convertOptionalBoolToBool( - getSelectedAppFromStore().isPinned)); + convertOptionalBoolToBool(getSelectedAppFromStore().isPinned)); }); test('Permission info links are correct', async function() { @@ -122,8 +112,7 @@ type: appManagement.mojom.AppType.kBorealis, }; const app = await fakeHandler.addApp('foo', options); - app_management.AppManagementStore.getInstance().dispatch( - app_management.actions.updateSelectedAppId(app.id)); + AppManagementStore.getInstance().dispatch(updateSelectedAppId(app.id)); await fakeHandler.flushPipesForTesting(); assertFalse(!!borealisDetailView.$$('#main-link')); assertTrue(!!borealisDetailView.$$('#borealis-link')); @@ -132,12 +121,12 @@ const link = borealisDetailView.$$('#borealis-link'); const anchorTag = link.$$('a'); assertTrue(!!anchorTag); - const localizedLinkPromise = test_util.eventToPromise('link-clicked', link); + const localizedLinkPromise = eventToPromise('link-clicked', link); anchorTag.click(); - await Promise.all([localizedLinkPromise, test_util.flushTasks()]); + await Promise.all([localizedLinkPromise, flushTasks()]); await fakeHandler.flushPipesForTesting(); assertEquals( - settings.Router.getInstance().getQueryParameters().get('id'), + Router.getInstance().getQueryParameters().get('id'), kBorealisClientAppId); }); });
diff --git a/chrome/test/data/webui/settings/chromeos/app_management/chrome_app_detail_view_test.js b/chrome/test/data/webui/settings/chromeos/app_management/chrome_app_detail_view_test.js index 5e3a6bf..4a41107c 100644 --- a/chrome/test/data/webui/settings/chromeos/app_management/chrome_app_detail_view_test.js +++ b/chrome/test/data/webui/settings/chromeos/app_management/chrome_app_detail_view_test.js
@@ -2,16 +2,12 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// clang-format off -// #import 'chrome://os-settings/chromeos/os_settings.js'; - -// #import {AppManagementStore, FakePageHandler, updateSelectedAppId, getPermissionValueBool} from 'chrome://os-settings/chromeos/os_settings.js'; -// #import {setupFakeHandler, replaceStore, replaceBody, isHiddenByDomIf, isHidden, getPermissionItemByType, getPermissionCrToggleByType} from './test_util.m.js'; -// #import {flushTasks} from 'chrome://test/test_util.js'; -// clang-format on - 'use strict'; +import {AppManagementStore, updateSelectedAppId} from 'chrome://os-settings/chromeos/os_settings.js'; +import {setupFakeHandler, replaceStore, replaceBody} from './test_util.js'; +import {flushTasks} from 'chrome://test/test_util.js'; + suite('<app-management-chrome-app-detail-view>', () => { let chromeAppDetailView; let fakeHandler; @@ -27,22 +23,21 @@ // Add an chrome app, and make it the currently selected app. const app = await fakeHandler.addApp(null, chromeOptions); - app_management.AppManagementStore.getInstance().dispatch( - app_management.actions.updateSelectedAppId(app.id)); + AppManagementStore.getInstance().dispatch(updateSelectedAppId(app.id)); fakeHandler.flushPipesForTesting(); - await test_util.flushTasks(); + await flushTasks(); chromeAppDetailView = document.createElement('app-management-chrome-app-detail-view'); replaceBody(chromeAppDetailView); fakeHandler.flushPipesForTesting(); - await test_util.flushTasks(); + await flushTasks(); }); test('App is rendered correctly', () => { assertEquals( - app_management.AppManagementStore.getInstance().data.selectedAppId, + AppManagementStore.getInstance().data.selectedAppId, chromeAppDetailView.app_.id); assertTrue(!!chromeAppDetailView.$$('app-management-pin-to-shelf-item')); assertTrue(!!chromeAppDetailView.$$('#more-settings'));
diff --git a/chrome/test/data/webui/settings/chromeos/app_management/dom_switch_test.js b/chrome/test/data/webui/settings/chromeos/app_management/dom_switch_test.js index 7516d943..e99ef09 100644 --- a/chrome/test/data/webui/settings/chromeos/app_management/dom_switch_test.js +++ b/chrome/test/data/webui/settings/chromeos/app_management/dom_switch_test.js
@@ -2,14 +2,10 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// clang-format off -// #import 'chrome://os-settings/chromeos/os_settings.js'; - -// #import {Router, routes} from 'chrome://os-settings/chromeos/os_settings.js'; -// clang-format on - 'use strict'; +import 'chrome://os-settings/chromeos/os_settings.js'; + suite('<app-management-dom-switch>', function() { let domSwitch; let domBind;
diff --git a/chrome/test/data/webui/settings/chromeos/app_management/file_handling_item_test.js b/chrome/test/data/webui/settings/chromeos/app_management/file_handling_item_test.js index 3a4356d..e325cc0 100644 --- a/chrome/test/data/webui/settings/chromeos/app_management/file_handling_item_test.js +++ b/chrome/test/data/webui/settings/chromeos/app_management/file_handling_item_test.js
@@ -2,16 +2,12 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// clang-format off -// #import 'chrome://os-settings/chromeos/os_settings.js'; - -// #import {AppManagementStore, FakePageHandler, updateSelectedAppId, addApp} from 'chrome://os-settings/chromeos/os_settings.js'; -// #import {setupFakeHandler, replaceStore, replaceBody} from './test_util.m.js'; -// #import {flushTasks} from 'chrome://test/test_util.js'; -// clang-format on - 'use strict'; +import {AppManagementStore, updateSelectedAppId} from 'chrome://os-settings/chromeos/os_settings.js'; +import {setupFakeHandler, replaceStore, replaceBody} from './test_util.js'; +import {flushTasks} from 'chrome://test/test_util.js'; + suite('<app-management-file-handling-item>', () => { let fileHandlingItem; let fakeHandler; @@ -24,7 +20,7 @@ document.createElement('app-management-file-handling-item'); replaceBody(fileHandlingItem); - test_util.flushTasks(); + flushTasks(); }); // Simple test that just verifies the file handling item is present and @@ -45,19 +41,17 @@ // Add PWA app, and make it the currently selected app. const app = await fakeHandler.addApp('app1', pwaOptions); - app_management.AppManagementStore.getInstance().dispatch( - app_management.actions.updateSelectedAppId(app.id)); + AppManagementStore.getInstance().dispatch(updateSelectedAppId(app.id)); await fakeHandler.flushPipesForTesting(); - assertTrue( - !!app_management.AppManagementStore.getInstance().data.apps[app.id]); + assertTrue(!!AppManagementStore.getInstance().data.apps[app.id]); fileHandlingItem.app = app; replaceBody(fileHandlingItem); fakeHandler.flushPipesForTesting(); - test_util.flushTasks(); + flushTasks(); expectFalse( fileHandlingItem.shadowRoot.querySelector('#toggle-row').isChecked());
diff --git a/chrome/test/data/webui/settings/chromeos/app_management/main_view_test.js b/chrome/test/data/webui/settings/chromeos/app_management/main_view_test.js index 23b2040..f20d5be 100644 --- a/chrome/test/data/webui/settings/chromeos/app_management/main_view_test.js +++ b/chrome/test/data/webui/settings/chromeos/app_management/main_view_test.js
@@ -2,16 +2,12 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// clang-format off -// #import 'chrome://os-settings/chromeos/os_settings.js'; - -// #import {PageType} from 'chrome://os-settings/chromeos/os_settings.js'; -// #import {setupFakeHandler, replaceStore, replaceBody} from './test_util.m.js'; -// #import {Router, routes} from 'chrome://os-settings/chromeos/os_settings.js'; -// clang-format on - 'use strict'; +import 'chrome://os-settings/chromeos/os_settings.js'; +import {setupFakeHandler, replaceStore, replaceBody} from './test_util.js'; +import {Router} from 'chrome://os-settings/chromeos/os_settings.js'; + suite('<app-management-main-view>', function() { let mainView; let fakeHandler; @@ -46,11 +42,11 @@ const appItems = getAppItems(); expectEquals(1, appItems.length); - assertFalse(!!settings.Router.getInstance().getQueryParameters().get('id')); + assertFalse(!!Router.getInstance().getQueryParameters().get('id')); store.setReducersEnabled(false); appItems[0].click(); fakeHandler.flushPipesForTesting(); - assertTrue(!!settings.Router.getInstance().getQueryParameters().get('id')); + assertTrue(!!Router.getInstance().getQueryParameters().get('id')); }); });
diff --git a/chrome/test/data/webui/settings/chromeos/app_management/managed_apps_test.js b/chrome/test/data/webui/settings/chromeos/app_management/managed_apps_test.js index 8e7f8c2..b0dced9 100644 --- a/chrome/test/data/webui/settings/chromeos/app_management/managed_apps_test.js +++ b/chrome/test/data/webui/settings/chromeos/app_management/managed_apps_test.js
@@ -2,16 +2,12 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// clang-format off -// #import 'chrome://os-settings/chromeos/os_settings.js'; - -// #import {PermissionType, TriState, FakePageHandler, AppManagementStore, updateSelectedAppId, createTriStatePermission} from 'chrome://os-settings/chromeos/os_settings.js'; -// #import {flushTasks} from 'chrome://test/test_util.js'; -// #import {setupFakeHandler, replaceStore, replaceBody, getPermissionToggleByType } from './test_util.m.js'; -// clang-format on - 'use strict'; +import {PermissionType, TriState, FakePageHandler, AppManagementStore, updateSelectedAppId, createTriStatePermission} from 'chrome://os-settings/chromeos/os_settings.js'; +import {flushTasks} from 'chrome://test/test_util.js'; +import {setupFakeHandler, replaceStore, replaceBody, getPermissionToggleByType} from './test_util.js'; + suite('<app-management-managed-apps>', () => { let appDetailView; let fakeHandler; @@ -32,16 +28,14 @@ isPinned: appManagement.mojom.OptionalBool.kTrue, isPolicyPinned: appManagement.mojom.OptionalBool.kTrue, installReason: appManagement.mojom.InstallReason.kPolicy, - permissions: app_management.FakePageHandler.createWebPermissions( - permissionOptions), + permissions: FakePageHandler.createWebPermissions(permissionOptions), }; const app = await fakeHandler.addApp(null, policyAppOptions); // Select created app. - app_management.AppManagementStore.getInstance().dispatch( - app_management.actions.updateSelectedAppId(app.id)); + AppManagementStore.getInstance().dispatch(updateSelectedAppId(app.id)); appDetailView = document.createElement('app-management-pwa-detail-view'); replaceBody(appDetailView); - await test_util.flushTasks(); + await flushTasks(); }); // TODO(crbug.com/999412): rewrite test.
diff --git a/chrome/test/data/webui/settings/chromeos/app_management/pin_to_shelf_item_test.js b/chrome/test/data/webui/settings/chromeos/app_management/pin_to_shelf_item_test.js index 7fb965d..866b407 100644 --- a/chrome/test/data/webui/settings/chromeos/app_management/pin_to_shelf_item_test.js +++ b/chrome/test/data/webui/settings/chromeos/app_management/pin_to_shelf_item_test.js
@@ -2,16 +2,12 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// clang-format off -// #import 'chrome://os-settings/chromeos/os_settings.js'; - -// #import {AppManagementStore, convertOptionalBoolToBool} from 'chrome://os-settings/chromeos/os_settings.js'; -// #import {setupFakeHandler, replaceBody} from './test_util.m.js'; -// #import {flushTasks} from 'chrome://test/test_util.js'; -// clang-format on - 'use strict'; +import {AppManagementStore, convertOptionalBoolToBool} from 'chrome://os-settings/chromeos/os_settings.js'; +import {setupFakeHandler, replaceBody} from './test_util.js'; +import {flushTasks} from 'chrome://test/test_util.js'; + suite('<app-management-pin-to-shelf-item>', () => { let pinToShelfItem; let fakeHandler; @@ -21,7 +17,7 @@ pinToShelfItem = document.createElement('app-management-pin-to-shelf-item'); replaceBody(pinToShelfItem); - test_util.flushTasks(); + flushTasks(); }); test('Toggle pin to shelf', async () => { @@ -35,18 +31,14 @@ await fakeHandler.flushPipesForTesting(); pinToShelfItem.app = app; - assertFalse(app_management.util.convertOptionalBoolToBool( - app_management.AppManagementStore.getInstance() - .data.apps[app.id] - .isPinned)); + assertFalse(convertOptionalBoolToBool( + AppManagementStore.getInstance().data.apps[app.id].isPinned)); pinToShelfItem.click(); - test_util.flushTasks(); + flushTasks(); await fakeHandler.flushPipesForTesting(); - assertTrue(app_management.util.convertOptionalBoolToBool( - app_management.AppManagementStore.getInstance() - .data.apps[app.id] - .isPinned)); + assertTrue(convertOptionalBoolToBool( + AppManagementStore.getInstance().data.apps[app.id].isPinned)); }); });
diff --git a/chrome/test/data/webui/settings/chromeos/app_management/plugin_vm_detail_view_test.js b/chrome/test/data/webui/settings/chromeos/app_management/plugin_vm_detail_view_test.js index e3392b6..89b5bbd0 100644 --- a/chrome/test/data/webui/settings/chromeos/app_management/plugin_vm_detail_view_test.js +++ b/chrome/test/data/webui/settings/chromeos/app_management/plugin_vm_detail_view_test.js
@@ -2,16 +2,12 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// clang-format off -// #import 'chrome://os-settings/chromeos/os_settings.js'; - -// #import {PluginVmBrowserProxyImpl, PermissionType, createBoolPermission, AppManagementStore, updateSelectedAppId, getPermissionValueBool, convertOptionalBoolToBool} from 'chrome://os-settings/chromeos/os_settings.js'; -// #import {TestPluginVmBrowserProxy} from './test_plugin_vm_browser_proxy.m.js'; -// #import {setupFakeHandler, replaceStore, replaceBody, getPermissionCrToggleByType, getPermissionToggleByType} from './test_util.m.js'; -// clang-format on - 'use strict'; +import {PluginVmBrowserProxyImpl, PermissionType, createBoolPermission, AppManagementStore, updateSelectedAppId, getPermissionValueBool, convertOptionalBoolToBool} from 'chrome://os-settings/chromeos/os_settings.js'; +import {TestPluginVmBrowserProxy} from './test_plugin_vm_browser_proxy.js'; +import {setupFakeHandler, replaceStore, replaceBody, getPermissionCrToggleByType, getPermissionToggleByType} from './test_util.js'; + suite('<app-management-plugin-vm-detail-view>', function() { /** @enum {number} */ const Permissions = { @@ -26,8 +22,7 @@ let appId; function getPermissionBoolByType(permissionType) { - return app_management.util.getPermissionValueBool( - pluginVmDetailView.app_, permissionType); + return getPermissionValueBool(pluginVmDetailView.app_, permissionType); } function isCrToggleChecked(permissionType) { @@ -45,7 +40,7 @@ } function getSelectedAppFromStore() { - const storeData = app_management.AppManagementStore.getInstance().data; + const storeData = AppManagementStore.getInstance().data; return storeData.apps[storeData.selectedAppId]; } @@ -107,7 +102,7 @@ setup(async function() { pluginVmBrowserProxy = new TestPluginVmBrowserProxy(); - settings.PluginVmBrowserProxyImpl.instance_ = pluginVmBrowserProxy; + PluginVmBrowserProxyImpl.instance_ = pluginVmBrowserProxy; fakeHandler = setupFakeHandler(); replaceStore(); @@ -136,8 +131,7 @@ }; const app = await fakeHandler.addApp(null, options); appId = app.id; - app_management.AppManagementStore.getInstance().dispatch( - app_management.actions.updateSelectedAppId(appId)); + AppManagementStore.getInstance().dispatch(updateSelectedAppId(appId)); pluginVmDetailView = document.createElement('app-management-plugin-vm-detail-view'); @@ -147,7 +141,7 @@ test('App is rendered correctly', function() { assertEquals( - app_management.AppManagementStore.getInstance().data.selectedAppId, + AppManagementStore.getInstance().data.selectedAppId, pluginVmDetailView.app_.id); }); @@ -237,21 +231,18 @@ assertFalse(toggle.checked); assertEquals( toggle.checked, - app_management.util.convertOptionalBoolToBool( - getSelectedAppFromStore().isPinned)); + convertOptionalBoolToBool(getSelectedAppFromStore().isPinned)); pinToShelfItem.click(); await fakeHandler.flushPipesForTesting(); assertTrue(toggle.checked); assertEquals( toggle.checked, - app_management.util.convertOptionalBoolToBool( - getSelectedAppFromStore().isPinned)); + convertOptionalBoolToBool(getSelectedAppFromStore().isPinned)); pinToShelfItem.click(); await fakeHandler.flushPipesForTesting(); assertFalse(toggle.checked); assertEquals( toggle.checked, - app_management.util.convertOptionalBoolToBool( - getSelectedAppFromStore().isPinned)); + convertOptionalBoolToBool(getSelectedAppFromStore().isPinned)); }); });
diff --git a/chrome/test/data/webui/settings/chromeos/app_management/pwa_detail_view_test.js b/chrome/test/data/webui/settings/chromeos/app_management/pwa_detail_view_test.js index 51eacd1f..b92c8a7f 100644 --- a/chrome/test/data/webui/settings/chromeos/app_management/pwa_detail_view_test.js +++ b/chrome/test/data/webui/settings/chromeos/app_management/pwa_detail_view_test.js
@@ -2,22 +2,17 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// clang-format off -// #import 'chrome://os-settings/chromeos/os_settings.js'; - -// #import {AppManagementStore, updateSelectedAppId, getPermissionValueBool, convertOptionalBoolToBool} from 'chrome://os-settings/chromeos/os_settings.js'; -// #import {setupFakeHandler, replaceStore, replaceBody, getPermissionCrToggleByType, getPermissionToggleByType} from './test_util.m.js'; -// clang-format on - 'use strict'; +import {AppManagementStore, updateSelectedAppId, getPermissionValueBool, convertOptionalBoolToBool} from 'chrome://os-settings/chromeos/os_settings.js'; +import {setupFakeHandler, replaceStore, replaceBody, getPermissionCrToggleByType, getPermissionToggleByType} from './test_util.js'; + suite('<app-management-pwa-detail-view>', function() { let pwaPermissionView; let fakeHandler; function getPermissionBoolByType(permissionType) { - return app_management.util.getPermissionValueBool( - pwaPermissionView.app_, permissionType); + return getPermissionValueBool(pwaPermissionView.app_, permissionType); } async function clickToggle(permissionType) { @@ -26,7 +21,7 @@ } function getSelectedAppFromStore() { - const storeData = app_management.AppManagementStore.getInstance().data; + const storeData = AppManagementStore.getInstance().data; return storeData.apps[storeData.selectedAppId]; } @@ -36,8 +31,7 @@ // Add an app, and make it the currently selected app. const app = await fakeHandler.addApp(); - app_management.AppManagementStore.getInstance().dispatch( - app_management.actions.updateSelectedAppId(app.id)); + AppManagementStore.getInstance().dispatch(updateSelectedAppId(app.id)); pwaPermissionView = document.createElement('app-management-pwa-detail-view'); @@ -46,7 +40,7 @@ test('App is rendered correctly', function() { assertEquals( - app_management.AppManagementStore.getInstance().data.selectedAppId, + AppManagementStore.getInstance().data.selectedAppId, pwaPermissionView.app_.id); }); @@ -82,21 +76,18 @@ assertFalse(toggle.checked); assertEquals( toggle.checked, - app_management.util.convertOptionalBoolToBool( - getSelectedAppFromStore().isPinned)); + convertOptionalBoolToBool(getSelectedAppFromStore().isPinned)); pinToShelfItem.click(); await fakeHandler.flushPipesForTesting(); assertTrue(toggle.checked); assertEquals( toggle.checked, - app_management.util.convertOptionalBoolToBool( - getSelectedAppFromStore().isPinned)); + convertOptionalBoolToBool(getSelectedAppFromStore().isPinned)); pinToShelfItem.click(); await fakeHandler.flushPipesForTesting(); assertFalse(toggle.checked); assertEquals( toggle.checked, - app_management.util.convertOptionalBoolToBool( - getSelectedAppFromStore().isPinned)); + convertOptionalBoolToBool(getSelectedAppFromStore().isPinned)); }); });
diff --git a/chrome/test/data/webui/settings/chromeos/app_management/reducers_test.js b/chrome/test/data/webui/settings/chromeos/app_management/reducers_test.js index 1983d74..4da5f90 100644 --- a/chrome/test/data/webui/settings/chromeos/app_management/reducers_test.js +++ b/chrome/test/data/webui/settings/chromeos/app_management/reducers_test.js
@@ -2,15 +2,11 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// clang-format off -// #import 'chrome://os-settings/chromeos/os_settings.js'; - -// #import {createApp} from './test_util.m.js'; -// #import {addApp, AppState, changeApp, createInitialState, reduceAction, removeApp, updateSelectedAppId} from 'chrome://os-settings/chromeos/os_settings.js'; -// clang-format on - 'use strict'; +import {createApp} from './test_util.js'; +import {addApp, AppState, changeApp, createInitialState, reduceAction, removeApp, updateSelectedAppId} from 'chrome://os-settings/chromeos/os_settings.js'; + suite('app state', function() { let apps; @@ -23,8 +19,8 @@ test('updates when an app is added', function() { const newApp = createApp('3', {type: 1, title: 'a'}); - const action = app_management.actions.addApp(newApp); - apps = app_management.AppState.updateApps(apps, action); + const action = addApp(newApp); + apps = AppState.updateApps(apps, action); // Check that apps contains a key for each app id. assertTrue(!!apps['1']); @@ -40,8 +36,8 @@ test('updates when an app is changed', function() { const changedApp = createApp('2', {type: 1, title: 'a'}); - const action = app_management.actions.changeApp(changedApp); - apps = app_management.AppState.updateApps(apps, action); + const action = changeApp(changedApp); + apps = AppState.updateApps(apps, action); // Check that app has changed. const app = apps['2']; @@ -53,8 +49,8 @@ }); test('updates when an app is removed', function() { - const action = app_management.actions.removeApp('1'); - apps = app_management.AppState.updateApps(apps, action); + const action = removeApp('1'); + apps = AppState.updateApps(apps, action); // Check that app is removed. assertFalse(!!apps['1']); @@ -68,7 +64,7 @@ let state; setup(function() { - state = app_management.util.createInitialState([ + state = createInitialState([ createApp('1'), createApp('2'), ]); @@ -79,26 +75,26 @@ }); test('updates selected app id', function() { - let action = app_management.actions.updateSelectedAppId('1'); - state = app_management.reduceAction(state, action); + let action = updateSelectedAppId('1'); + state = reduceAction(state, action); assertEquals('1', state.selectedAppId); - action = app_management.actions.updateSelectedAppId('2'); - state = app_management.reduceAction(state, action); + action = updateSelectedAppId('2'); + state = reduceAction(state, action); assertEquals('2', state.selectedAppId); - action = app_management.actions.updateSelectedAppId(null); - state = app_management.reduceAction(state, action); + action = updateSelectedAppId(null); + state = reduceAction(state, action); assertEquals(null, state.selectedAppId); }); test('removing an app resets selected app id', function() { - let action = app_management.actions.updateSelectedAppId('1'); - state = app_management.reduceAction(state, action); + let action = updateSelectedAppId('1'); + state = reduceAction(state, action); assertEquals('1', state.selectedAppId); - action = app_management.actions.removeApp('1'); - state = app_management.reduceAction(state, action); + action = removeApp('1'); + state = reduceAction(state, action); assertEquals(null, state.selectedAppId); }); });
diff --git a/chrome/test/data/webui/settings/chromeos/app_management/resize_lock_item_test.js b/chrome/test/data/webui/settings/chromeos/app_management/resize_lock_item_test.js index 3966cc2a..005e5b9 100644 --- a/chrome/test/data/webui/settings/chromeos/app_management/resize_lock_item_test.js +++ b/chrome/test/data/webui/settings/chromeos/app_management/resize_lock_item_test.js
@@ -2,16 +2,14 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// clang-format off -// #import 'chrome://os-settings/chromeos/os_settings.js'; - -// #import {flushTasks} from 'chrome://test/test_util.js'; -// #import {setupFakeHandler, replaceBody, isHidden} from './test_util.m.js'; -// #import {FakePageHandler} from 'chrome://os-settings/chromeos/os_settings.js'; -// clang-format on - 'use strict'; +import 'chrome://os-settings/chromeos/os_settings.js'; + +import {flushTasks} from 'chrome://test/test_util.js'; +import {setupFakeHandler, replaceBody, isHidden} from './test_util.js'; + + suite('<app-management-resize-lock-item>', () => { let resizeLockItem; let fakeHandler; @@ -21,7 +19,7 @@ resizeLockItem = document.createElement('app-management-resize-lock-item'); replaceBody(resizeLockItem); - test_util.flushTasks(); + flushTasks(); }); test('Resize lock setting visibility', async () => {
diff --git a/chrome/test/data/webui/settings/chromeos/app_management/supported_links_item_test.js b/chrome/test/data/webui/settings/chromeos/app_management/supported_links_item_test.js index 3c497d7..484bdbbe 100644 --- a/chrome/test/data/webui/settings/chromeos/app_management/supported_links_item_test.js +++ b/chrome/test/data/webui/settings/chromeos/app_management/supported_links_item_test.js
@@ -2,16 +2,12 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// clang-format off -// #import 'chrome://os-settings/chromeos/os_settings.js'; - -// #import {AppManagementStore, FakePageHandler, updateSelectedAppId, addApp} from 'chrome://os-settings/chromeos/os_settings.js'; -// #import {setupFakeHandler, replaceStore, replaceBody, isHidden} from './test_util.m.js'; -// #import {flushTasks} from 'chrome://test/test_util.js'; -// clang-format on - 'use strict'; +import {AppManagementStore, updateSelectedAppId} from 'chrome://os-settings/chromeos/os_settings.js'; +import {setupFakeHandler, replaceStore, replaceBody, isHidden} from './test_util.js'; +import {flushTasks} from 'chrome://test/test_util.js'; + suite('<app-management-supported-links-item>', () => { let supportedLinksItem; let fakeHandler; @@ -24,7 +20,7 @@ document.createElement('app-management-supported-links-item'); replaceBody(supportedLinksItem); - test_util.flushTasks(); + flushTasks(); }); test('PWA - preferred -> browser', async function() { @@ -37,19 +33,17 @@ // Add PWA app, and make it the currently selected app. const app = await fakeHandler.addApp('app1', pwaOptions); - app_management.AppManagementStore.getInstance().dispatch( - app_management.actions.updateSelectedAppId(app.id)); + AppManagementStore.getInstance().dispatch(updateSelectedAppId(app.id)); await fakeHandler.flushPipesForTesting(); - assertTrue( - !!app_management.AppManagementStore.getInstance().data.apps[app.id]); + assertTrue(!!AppManagementStore.getInstance().data.apps[app.id]); supportedLinksItem.app = app; replaceBody(supportedLinksItem); fakeHandler.flushPipesForTesting(); - test_util.flushTasks(); + flushTasks(); expectEquals( supportedLinksItem.shadowRoot.querySelector('cr-radio-group').selected, @@ -57,11 +51,10 @@ await supportedLinksItem.shadowRoot.querySelector('#browser').click(); await fakeHandler.whenCalled('setPreferredApp'); - await test_util.flushTasks(); + await flushTasks(); - expectFalse(app_management.AppManagementStore.getInstance() - .data.apps[app.id] - .isPreferredApp); + expectFalse( + AppManagementStore.getInstance().data.apps[app.id].isPreferredApp); expectEquals( supportedLinksItem.shadowRoot.querySelector('cr-radio-group').selected, @@ -78,19 +71,17 @@ // Add ARC app, and make it the currently selected app. const app = await fakeHandler.addApp('app1', arcOptions); - app_management.AppManagementStore.getInstance().dispatch( - app_management.actions.updateSelectedAppId(app.id)); + AppManagementStore.getInstance().dispatch(updateSelectedAppId(app.id)); await fakeHandler.flushPipesForTesting(); - assertTrue( - !!app_management.AppManagementStore.getInstance().data.apps[app.id]); + assertTrue(!!AppManagementStore.getInstance().data.apps[app.id]); supportedLinksItem.app = app; replaceBody(supportedLinksItem); fakeHandler.flushPipesForTesting(); - test_util.flushTasks(); + flushTasks(); expectEquals( supportedLinksItem.shadowRoot.querySelector('cr-radio-group').selected, @@ -98,11 +89,10 @@ await supportedLinksItem.shadowRoot.querySelector('#preferred').click(); await fakeHandler.whenCalled('setPreferredApp'); - await test_util.flushTasks(); + await flushTasks(); - expectTrue(app_management.AppManagementStore.getInstance() - .data.apps[app.id] - .isPreferredApp); + expectTrue( + AppManagementStore.getInstance().data.apps[app.id].isPreferredApp); expectEquals( supportedLinksItem.shadowRoot.querySelector('cr-radio-group').selected, @@ -119,19 +109,17 @@ // Add PWA app, and make it the currently selected app. const app = await fakeHandler.addApp('app1', pwaOptions); - app_management.AppManagementStore.getInstance().dispatch( - app_management.actions.updateSelectedAppId(app.id)); + AppManagementStore.getInstance().dispatch(updateSelectedAppId(app.id)); await fakeHandler.flushPipesForTesting(); - assertTrue( - !!app_management.AppManagementStore.getInstance().data.apps[app.id]); + assertTrue(!!AppManagementStore.getInstance().data.apps[app.id]); supportedLinksItem.app = app; replaceBody(supportedLinksItem); fakeHandler.flushPipesForTesting(); - test_util.flushTasks(); + flushTasks(); assertTrue(isHidden(supportedLinksItem)); }); @@ -147,19 +135,17 @@ // Add PWA app, and make it the currently selected app. const app = await fakeHandler.addApp('app1', options); - app_management.AppManagementStore.getInstance().dispatch( - app_management.actions.updateSelectedAppId(app.id)); + AppManagementStore.getInstance().dispatch(updateSelectedAppId(app.id)); await fakeHandler.flushPipesForTesting(); - assertTrue( - !!app_management.AppManagementStore.getInstance().data.apps[app.id]); + assertTrue(!!AppManagementStore.getInstance().data.apps[app.id]); supportedLinksItem.app = app; replaceBody(supportedLinksItem); await fakeHandler.flushPipesForTesting(); - await test_util.flushTasks(); + await flushTasks(); assertTrue(!!supportedLinksItem.shadowRoot.querySelector( '#disabled-explanation-text')); @@ -180,19 +166,17 @@ // Add PWA app, and make it the currently selected app. const app = await fakeHandler.addApp('app1', pwaOptions); - app_management.AppManagementStore.getInstance().dispatch( - app_management.actions.updateSelectedAppId(app.id)); + AppManagementStore.getInstance().dispatch(updateSelectedAppId(app.id)); await fakeHandler.flushPipesForTesting(); - assertTrue( - !!app_management.AppManagementStore.getInstance().data.apps[app.id]); + assertTrue(!!AppManagementStore.getInstance().data.apps[app.id]); supportedLinksItem.app = app; replaceBody(supportedLinksItem); await fakeHandler.flushPipesForTesting(); - await test_util.flushTasks(); + await flushTasks(); assertFalse(!!supportedLinksItem.querySelector('#dialog')); @@ -200,7 +184,7 @@ const heading = supportedLinksItem.shadowRoot.querySelector('#heading'); heading.shadowRoot.querySelector('a').click(); await fakeHandler.flushPipesForTesting(); - await test_util.flushTasks(); + await flushTasks(); const dialog = supportedLinksItem.shadowRoot.querySelector('#dialog') .shadowRoot.querySelector('#dialog'); assertTrue(dialog.open); @@ -216,7 +200,7 @@ // Close dialog. dialog.shadowRoot.querySelector('#close').click(); await fakeHandler.flushPipesForTesting(); - await test_util.flushTasks(); + await flushTasks(); assertFalse(supportedLinksItem.shadowRoot.querySelector('#dialog') .shadowRoot.querySelector('#dialog') .open); @@ -236,17 +220,15 @@ await fakeHandler.addApp('app2', pwaOptions); fakeHandler.overlappingAppIds = ['app2']; - app_management.AppManagementStore.getInstance().dispatch( - app_management.actions.updateSelectedAppId(app.id)); + AppManagementStore.getInstance().dispatch(updateSelectedAppId(app.id)); await fakeHandler.flushPipesForTesting(); - assertTrue( - !!app_management.AppManagementStore.getInstance().data.apps[app.id]); + assertTrue(!!AppManagementStore.getInstance().data.apps[app.id]); supportedLinksItem.app = app; replaceBody(supportedLinksItem); await fakeHandler.flushPipesForTesting(); - await test_util.flushTasks(); + await flushTasks(); // Pre-test checks assertFalse(!!supportedLinksItem.querySelector('#overlap-dialog')); @@ -264,13 +246,12 @@ supportedLinksItem.shadowRoot.querySelector('#overlap-dialog') .$.cancel.click(); await fakeHandler.flushPipesForTesting(); - await test_util.flushTasks(); + await flushTasks(); assertFalse( !!supportedLinksItem.shadowRoot.querySelector('#overlap-dialog')); - expectFalse(app_management.AppManagementStore.getInstance() - .data.apps[app.id] - .isPreferredApp); + expectFalse( + AppManagementStore.getInstance().data.apps[app.id].isPreferredApp); expectEquals( supportedLinksItem.shadowRoot.querySelector('cr-radio-group').selected, 'browser'); @@ -288,17 +269,15 @@ await fakeHandler.addApp('app2', pwaOptions); fakeHandler.overlappingAppIds = ['app2']; - app_management.AppManagementStore.getInstance().dispatch( - app_management.actions.updateSelectedAppId(app.id)); + AppManagementStore.getInstance().dispatch(updateSelectedAppId(app.id)); await fakeHandler.flushPipesForTesting(); - assertTrue( - !!app_management.AppManagementStore.getInstance().data.apps[app.id]); + assertTrue(!!AppManagementStore.getInstance().data.apps[app.id]); supportedLinksItem.app = app; replaceBody(supportedLinksItem); await fakeHandler.flushPipesForTesting(); - await test_util.flushTasks(); + await flushTasks(); // Pre-test checks assertFalse(!!supportedLinksItem.querySelector('#overlap-dialog')); @@ -309,7 +288,7 @@ await supportedLinksItem.shadowRoot.querySelector('#preferred').click(); await promise; await fakeHandler.flushPipesForTesting(); - await test_util.flushTasks(); + await flushTasks(); assertTrue( !!supportedLinksItem.shadowRoot.querySelector('#overlap-dialog')); @@ -319,13 +298,12 @@ .$.change.click(); await promise; await fakeHandler.flushPipesForTesting(); - await test_util.flushTasks(); + await flushTasks(); assertFalse( !!supportedLinksItem.shadowRoot.querySelector('#overlap-dialog')); - expectTrue(app_management.AppManagementStore.getInstance() - .data.apps[app.id] - .isPreferredApp); + expectTrue( + AppManagementStore.getInstance().data.apps[app.id].isPreferredApp); expectEquals( supportedLinksItem.shadowRoot.querySelector('cr-radio-group').selected, 'preferred'); @@ -349,16 +327,14 @@ await fakeHandler.addApp('app2', pwaOptions2); fakeHandler.overlappingAppIds = ['app2']; - app_management.AppManagementStore.getInstance().dispatch( - app_management.actions.updateSelectedAppId(app1.id)); + AppManagementStore.getInstance().dispatch(updateSelectedAppId(app1.id)); await fakeHandler.flushPipesForTesting(); - expectTrue( - !!app_management.AppManagementStore.getInstance().data.apps[app1.id]); + expectTrue(!!AppManagementStore.getInstance().data.apps[app1.id]); supportedLinksItem.app = app1; replaceBody(supportedLinksItem); await fakeHandler.flushPipesForTesting(); - await test_util.flushTasks(); + await flushTasks(); assertFalse( !!supportedLinksItem.shadowRoot.querySelector('#overlap-warning')); @@ -382,19 +358,16 @@ const app2 = await fakeHandler.addApp('app2', pwaOptions2); fakeHandler.overlappingAppIds = ['app2']; - app_management.AppManagementStore.getInstance().dispatch( - app_management.actions.updateSelectedAppId(app1.id)); + AppManagementStore.getInstance().dispatch(updateSelectedAppId(app1.id)); await fakeHandler.flushPipesForTesting(); - await test_util.flushTasks(); + await flushTasks(); - expectTrue( - !!app_management.AppManagementStore.getInstance().data.apps[app1.id]); - expectTrue( - !!app_management.AppManagementStore.getInstance().data.apps[app2.id]); + expectTrue(!!AppManagementStore.getInstance().data.apps[app1.id]); + expectTrue(!!AppManagementStore.getInstance().data.apps[app2.id]); supportedLinksItem.app = app1; replaceBody(supportedLinksItem); await fakeHandler.flushPipesForTesting(); - await test_util.flushTasks(); + await flushTasks(); assertTrue( !!supportedLinksItem.shadowRoot.querySelector('#overlap-warning'));
diff --git a/chrome/test/data/webui/settings/chromeos/app_management/test_plugin_vm_browser_proxy.js b/chrome/test/data/webui/settings/chromeos/app_management/test_plugin_vm_browser_proxy.js index 37aae93d..57d615e 100644 --- a/chrome/test/data/webui/settings/chromeos/app_management/test_plugin_vm_browser_proxy.js +++ b/chrome/test/data/webui/settings/chromeos/app_management/test_plugin_vm_browser_proxy.js
@@ -2,12 +2,10 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// clang-format off -// #import {TestBrowserProxy} from '../../../test_browser_proxy.js'; -// clang-format on +import {TestBrowserProxy} from '../../../test_browser_proxy.js'; -/** @implements {settings.PluginVmBrowserProxy} */ -/* #export */ class TestPluginVmBrowserProxy extends TestBrowserProxy { +/** @implements {PluginVmBrowserProxy} */ +export class TestPluginVmBrowserProxy extends TestBrowserProxy { constructor() { super([ 'isRelaunchNeededForNewPermissions',
diff --git a/chrome/test/data/webui/settings/chromeos/app_management/test_store.js b/chrome/test/data/webui/settings/chromeos/app_management/test_store.js index 0671cfa..3ef271a 100644 --- a/chrome/test/data/webui/settings/chromeos/app_management/test_store.js +++ b/chrome/test/data/webui/settings/chromeos/app_management/test_store.js
@@ -2,22 +2,11 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// clang-format off -// #import {TestStore} from 'chrome://test/test_store.js'; -// #import {AppManagementStore, createEmptyState, reduceAction} from 'chrome://os-settings/chromeos/os_settings.js'; -// clang-format on +import {AppManagementStore, createEmptyState, reduceAction} from 'chrome://os-settings/chromeos/os_settings.js'; +import {TestStore} from 'chrome://test/test_store.js'; -cr.define('app_management', function() { - /* #export */ class TestAppManagementStore extends cr.ui.TestStore { - constructor(data) { - super( - data, app_management.AppManagementStore, - app_management.util.createEmptyState(), app_management.reduceAction); - } +export class TestAppManagementStore extends TestStore { + constructor(data) { + super(data, AppManagementStore, createEmptyState(), reduceAction); } - - // #cr_define_end - return { - TestAppManagementStore: TestAppManagementStore, - }; -}); +}
diff --git a/chrome/test/data/webui/settings/chromeos/app_management/test_util.js b/chrome/test/data/webui/settings/chromeos/app_management/test_util.js index 93c73ad9..da56232 100644 --- a/chrome/test/data/webui/settings/chromeos/app_management/test_util.js +++ b/chrome/test/data/webui/settings/chromeos/app_management/test_util.js
@@ -2,29 +2,27 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// clang-format off -// #import {BrowserProxy, FakePageHandler, AppManagementComponentBrowserProxy} from 'chrome://os-settings/chromeos/os_settings.js'; -// #import {TestAppManagementStore} from './test_store.m.js'; -// clang-format on - 'use strict'; +import {BrowserProxy, FakePageHandler, AppManagementComponentBrowserProxy} from 'chrome://os-settings/chromeos/os_settings.js'; +import {TestAppManagementStore} from './test_store.js'; + /** * Create an app for testing purpose. * @param {string} id * @param {Object=} optConfig * @return {!App} */ -/* #export */ function createApp(id, config) { - return app_management.FakePageHandler.createApp(id, config); +export function createApp(id, config) { + return FakePageHandler.createApp(id, config); } /** - * @return {app_management.FakePageHandler} + * @return {FakePageHandler} */ -/* #export */ function setupFakeHandler() { - const browserProxy = app_management.BrowserProxy.getInstance(); - const fakeHandler = new app_management.FakePageHandler( +export function setupFakeHandler() { + const browserProxy = BrowserProxy.getInstance(); + const fakeHandler = new FakePageHandler( browserProxy.callbackRouter.$.bindNewPipeAndPassRemote()); browserProxy.handler = fakeHandler.getRemote(); @@ -37,10 +35,10 @@ /** * Replace the app management store instance with a new, empty * TestAppManagementStore. - * @return {app_management.TestAppManagementStore} + * @return {TestAppManagementStore} */ -/* #export */ function replaceStore() { - const store = new app_management.TestAppManagementStore(); +export function replaceStore() { + const store = new TestAppManagementStore(); store.setReducersEnabled(true); store.replaceSingleton(); return store; @@ -50,7 +48,7 @@ * @param {Element} element * @return {bool} */ -/* #export */ function isHidden(element) { +export function isHidden(element) { const rect = element.getBoundingClientRect(); return rect.height === 0 && rect.width === 0; } @@ -59,7 +57,7 @@ * Replace the current body of the test with a new element. * @param {Element} element */ -/* #export */ function replaceBody(element) { +export function replaceBody(element) { PolymerTest.clearBody(); window.history.replaceState({}, '', '/'); @@ -76,7 +74,7 @@ async function navigateTo(route) { window.history.replaceState({}, '', route); window.dispatchEvent(new CustomEvent('location-changed')); - await test_util.flushTasks(); + await flushTasks(); } /** @@ -84,7 +82,7 @@ * @param {Object} permissionType * @return {Element} */ -/* #export */ function getPermissionItemByType(view, permissionType) { +export function getPermissionItemByType(view, permissionType) { return view.root.querySelector('[permission-type=' + permissionType + ']'); } @@ -93,7 +91,7 @@ * @param {Object} permissionType * @return {Element} */ -/* #export */ function getPermissionToggleByType(view, permissionType) { +export function getPermissionToggleByType(view, permissionType) { return getPermissionItemByType(view, permissionType) .shadowRoot.querySelector('app-management-toggle-row'); } @@ -103,7 +101,7 @@ * @param {Object} permissionType * @return {Element} */ -/* #export */ function getPermissionCrToggleByType(view, permissionType) { +export function getPermissionCrToggleByType(view, permissionType) { return getPermissionToggleByType(view, permissionType) .shadowRoot.querySelector('cr-toggle'); } @@ -112,7 +110,7 @@ * @param {Element} element * @return {boolean} */ -/* #export */ function isHiddenByDomIf(element) { +export function isHiddenByDomIf(element) { // Happens when the dom-if is false and the element is not rendered. if (!element) { return true;
diff --git a/chrome/test/data/webui/settings/chromeos/app_management/toggle_row_test.js b/chrome/test/data/webui/settings/chromeos/app_management/toggle_row_test.js index 8de441b6..877e8761 100644 --- a/chrome/test/data/webui/settings/chromeos/app_management/toggle_row_test.js +++ b/chrome/test/data/webui/settings/chromeos/app_management/toggle_row_test.js
@@ -2,29 +2,27 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// clang-format off -// #import 'chrome://os-settings/chromeos/os_settings.js'; - -// #import {replaceBody} from './test_util.m.js'; -// #import {flushTasks} from 'chrome://test/test_util.js'; -// clang-format on - 'use strict'; +import 'chrome://os-settings/chromeos/os_settings.js'; + +import {replaceBody} from './test_util.js'; +import {flushTasks} from 'chrome://test/test_util.js'; + suite('<app-management-toggle-row', () => { let toggleRow; setup(async () => { toggleRow = document.createElement('app-management-toggle-row'); replaceBody(toggleRow); - await test_util.flushTasks(); + await flushTasks(); }); test('Click toggle', async () => { toggleRow.setToggle(false); assertFalse(toggleRow.isChecked()); toggleRow.click(); - await test_util.flushTasks(); + await flushTasks(); assertTrue(toggleRow.isChecked()); }); @@ -35,12 +33,12 @@ assertFalse(!!toggleRow.shadowRoot.querySelector('cr-policy-indicator')); toggleRow.managed = true; - await test_util.flushTasks(); + await flushTasks(); assertTrue(!!toggleRow.shadowRoot.querySelector('cr-toggle').disabled); assertTrue(!!toggleRow.shadowRoot.querySelector('cr-policy-indicator')); toggleRow.click(); - await test_util.flushTasks(); + await flushTasks(); assertFalse(toggleRow.isChecked()); }); });
diff --git a/chrome/test/data/webui/settings/chromeos/app_management/uninstall_button_test.js b/chrome/test/data/webui/settings/chromeos/app_management/uninstall_button_test.js index 473f66e..c9b0d0d 100644 --- a/chrome/test/data/webui/settings/chromeos/app_management/uninstall_button_test.js +++ b/chrome/test/data/webui/settings/chromeos/app_management/uninstall_button_test.js
@@ -2,16 +2,13 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// clang-format off -// #import 'chrome://os-settings/chromeos/os_settings.js'; - -// #import {AppManagementStore, FakePageHandler, updateSelectedAppId, PageType} from 'chrome://os-settings/chromeos/os_settings.js'; -// #import {setupFakeHandler, replaceStore, replaceBody, isHiddenByDomIf, isHidden} from './test_util.m.js'; -// #import {flushTasks} from 'chrome://test/test_util.js'; -// clang-format on - 'use strict'; +import 'chrome://os-settings/chromeos/os_settings.js'; + +import {AppManagementStore} from 'chrome://os-settings/chromeos/os_settings.js'; +import {setupFakeHandler, replaceStore, replaceBody} from './test_util.js'; + suite('<app-management-uninstall-button', () => { let uninstallButton; let fakeHandler; @@ -33,8 +30,7 @@ app = await fakeHandler.addApp('app1_id', arcOptions); await fakeHandler.flushPipesForTesting(); - assertTrue( - !!app_management.AppManagementStore.getInstance().data.apps[app.id]); + assertTrue(!!AppManagementStore.getInstance().data.apps[app.id]); uninstallButton = document.createElement('app-management-uninstall-button'); uninstallButton.app = app; @@ -47,8 +43,7 @@ uninstallButton.shadowRoot.querySelector('#uninstallButton').click(); await fakeHandler.flushPipesForTesting(); - assertFalse( - !!app_management.AppManagementStore.getInstance().data.apps[app.id]); + assertFalse(!!AppManagementStore.getInstance().data.apps[app.id]); }); test('Disabled by policy', async () => { @@ -56,8 +51,7 @@ uninstallButton.shadowRoot.querySelector('#uninstallButton').click(); await fakeHandler.flushPipesForTesting(); // Disabled by policy, clicking should not remove app. - assertTrue( - !!app_management.AppManagementStore.getInstance().data.apps[app.id]); + assertTrue(!!AppManagementStore.getInstance().data.apps[app.id]); }); test('System app, button hidden', async () => { @@ -65,7 +59,6 @@ assertFalse(!!uninstallButton.shadowRoot.querySelector('#uninstallButton')); await fakeHandler.flushPipesForTesting(); // Disabled by policy, clicking should not remove app. - assertTrue( - !!app_management.AppManagementStore.getInstance().data.apps[app.id]); + assertTrue(!!AppManagementStore.getInstance().data.apps[app.id]); }); });
diff --git a/chrome/test/data/webui/settings/chromeos/apps_page_test.js b/chrome/test/data/webui/settings/chromeos/apps_page_test.js index efcd482..f71ad3e3 100644 --- a/chrome/test/data/webui/settings/chromeos/apps_page_test.js +++ b/chrome/test/data/webui/settings/chromeos/apps_page_test.js
@@ -2,17 +2,16 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// clang-format off -// #import 'chrome://os-settings/chromeos/os_settings.js'; +import 'chrome://os-settings/chromeos/os_settings.js'; -// #import {loadTimeData} from 'chrome://resources/js/load_time_data.m.js'; -// #import {PromiseResolver} from 'chrome://resources/js/promise_resolver.m.js'; -// #import {AndroidAppsBrowserProxyImpl, Router, routes, setAppNotificationProviderForTesting, createBoolPermission} from 'chrome://os-settings/chromeos/os_settings.js'; -// #import {TestAndroidAppsBrowserProxy} from './test_android_apps_browser_proxy.m.js'; -// #import {flush} from'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; -// #import {waitAfterNextRender, flushTasks} from 'chrome://test/test_util.js'; -// #import {getDeepActiveElement} from 'chrome://resources/js/util.m.js'; -// clang-format on +import {AndroidAppsBrowserProxyImpl, createBoolPermission, Router, routes, setAppNotificationProviderForTesting} from 'chrome://os-settings/chromeos/os_settings.js'; +import {loadTimeData} from 'chrome://resources/js/load_time_data.m.js'; +import {PromiseResolver} from 'chrome://resources/js/promise_resolver.m.js'; +import {getDeepActiveElement} from 'chrome://resources/js/util.m.js'; +import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; +import {flushTasks, waitAfterNextRender} from 'chrome://test/test_util.js'; + +import {TestAndroidAppsBrowserProxy} from './test_android_apps_browser_proxy.js'; /** @type {?OsSettingsAppsPageElement} */ let appsPage = null; @@ -227,7 +226,7 @@ setup(async () => { loadTimeData.overrideValues({showOsSettingsAppNotificationsRow: true}); androidAppsBrowserProxy = new TestAndroidAppsBrowserProxy(); - settings.AndroidAppsBrowserProxyImpl.instance_ = androidAppsBrowserProxy; + AndroidAppsBrowserProxyImpl.instance_ = androidAppsBrowserProxy; PolymerTest.clearBody(); mojoApi_ = new FakeAppNotificationHandler(); setAppNotificationProviderForTesting(mojoApi_); @@ -241,7 +240,7 @@ mojoApi_.resetForTest(); appsPage.remove(); appsPage = null; - settings.Router.getInstance().resetRouteForTesting(); + Router.getInstance().resetRouteForTesting(); }); suite('Page Combinations', function() { @@ -257,7 +256,7 @@ test('Only App Management Shown', function() { appsPage.showAndroidApps = false; appsPage.showStartup = false; - Polymer.dom.flush(); + flush(); assertTrue(AppManagementShown()); assertFalse(AndroidAppsShown()); @@ -267,7 +266,7 @@ test('Android Apps and App Management Shown', function() { appsPage.showAndroidApps = true; appsPage.showStartup = false; - Polymer.dom.flush(); + flush(); assertTrue(AppManagementShown()); assertTrue(AndroidAppsShown()); @@ -277,7 +276,7 @@ test('Android Apps, On Startup and App Management Shown', function() { appsPage.showAndroidApps = true; appsPage.showStartup = true; - Polymer.dom.flush(); + flush(); assertTrue(AppManagementShown()); assertTrue(AndroidAppsShown()); @@ -288,7 +287,7 @@ test('App notification row', async () => { appsPage.showAndroidApps = true; appsPage.showStartup = true; - Polymer.dom.flush(); + flush(); const rowLink = appsPage.$$('#appNotifications'); assertTrue(!!rowLink); @@ -330,7 +329,7 @@ playStoreEnabled: false, settingsAppAvailable: false, }; - Polymer.dom.flush(); + flush(); }); test('Clicking enable button enables ARC', function() { @@ -339,41 +338,41 @@ assertFalse(!!appsPage.$$('.subpage-arrow')); button.click(); - Polymer.dom.flush(); + flush(); assertTrue(appsPage.prefs.arc.enabled.value); appsPage.androidAppsInfo = { playStoreEnabled: true, settingsAppAvailable: false, }; - Polymer.dom.flush(); + flush(); assertTrue(!!appsPage.$$('.subpage-arrow')); }); test('On startup dropdown menu', async () => { appsPage.prefs = setPrefs(1); - Polymer.dom.flush(); + flush(); assertEquals(1, appsPage.$$('#onStartupDropdown').pref.value); appsPage.prefs = setPrefs(2); - Polymer.dom.flush(); + flush(); assertEquals(2, appsPage.$$('#onStartupDropdown').pref.value); appsPage.prefs = setPrefs(3); - Polymer.dom.flush(); + flush(); assertEquals(3, appsPage.$$('#onStartupDropdown').pref.value); }); test('Deep link to On startup dropdown menu', async () => { - Polymer.dom.flush(); + flush(); const params = new URLSearchParams; params.append('settingId', '703'); - settings.Router.getInstance().navigateTo(settings.routes.APPS, params); + Router.getInstance().navigateTo(routes.APPS, params); const deepLinkElement = appsPage.$$('#onStartupDropdown') .shadowRoot.querySelector('#dropdownMenu'); - await test_util.waitAfterNextRender(deepLinkElement); + await waitAfterNextRender(deepLinkElement); assertEquals( deepLinkElement, getDeepActiveElement(), 'On startup dropdown menu should be focused for settingId=703.'); @@ -381,15 +380,15 @@ test('Deep link to manage android prefs', async () => { appsPage.havePlayStoreApp = false; - Polymer.dom.flush(); + flush(); const params = new URLSearchParams; params.append('settingId', '700'); - settings.Router.getInstance().navigateTo(settings.routes.APPS, params); + Router.getInstance().navigateTo(routes.APPS, params); const deepLinkElement = appsPage.$$('#manageApps').shadowRoot.querySelector('cr-icon-button'); - await test_util.waitAfterNextRender(deepLinkElement); + await waitAfterNextRender(deepLinkElement); assertEquals( deepLinkElement, getDeepActiveElement(), 'Manage android prefs button should be focused for settingId=700.'); @@ -398,10 +397,10 @@ test('Deep link to turn on Play Store', async () => { const params = new URLSearchParams; params.append('settingId', '702'); - settings.Router.getInstance().navigateTo(settings.routes.APPS, params); + Router.getInstance().navigateTo(routes.APPS, params); const deepLinkElement = appsPage.$$('#enable'); - await test_util.waitAfterNextRender(deepLinkElement); + await waitAfterNextRender(deepLinkElement); assertEquals( deepLinkElement, getDeepActiveElement(), 'Turn on play store button should be focused for settingId=702.'); @@ -416,7 +415,7 @@ setup(function() { androidAppsBrowserProxy = new TestAndroidAppsBrowserProxy(); - settings.AndroidAppsBrowserProxyImpl.instance_ = androidAppsBrowserProxy; + AndroidAppsBrowserProxyImpl.instance_ = androidAppsBrowserProxy; PolymerTest.clearBody(); subpage = document.createElement('settings-android-apps-subpage'); document.body.appendChild(subpage); @@ -424,8 +423,8 @@ // Because we can't simulate the loadTimeData value androidAppsVisible, // this route doesn't exist for tests. Add it in for testing. - if (!settings.routes.ANDROID_APPS_DETAILS) { - settings.routes.ANDROID_APPS_DETAILS = settings.routes.APPS.createChild( + if (!routes.ANDROID_APPS_DETAILS) { + routes.ANDROID_APPS_DETAILS = routes.APPS.createChild( '/' + chromeos.settings.mojom.GOOGLE_PLAY_STORE_SUBPAGE_PATH); } @@ -434,7 +433,7 @@ playStoreEnabled: true, settingsAppAvailable: false, }; - Polymer.dom.flush(); + flush(); }); teardown(function() { @@ -453,14 +452,14 @@ playStoreEnabled: true, settingsAppAvailable: true, }; - Polymer.dom.flush(); + flush(); assertTrue(!!subpage.$$('#manageApps')); subpage.androidAppsInfo = { playStoreEnabled: true, settingsAppAvailable: false, }; - Polymer.dom.flush(); + flush(); assertTrue(!subpage.$$('#manageApps')); }); @@ -469,13 +468,13 @@ playStoreEnabled: true, settingsAppAvailable: true, }; - Polymer.dom.flush(); + flush(); const button = subpage.$$('#manageApps'); assertTrue(!!button); const promise = androidAppsBrowserProxy.whenCalled('showAndroidAppsSettings'); button.click(); - Polymer.dom.flush(); + flush(); return promise; }); @@ -488,7 +487,7 @@ assertTrue(!!remove); subpage.onRemoveTap_(); - Polymer.dom.flush(); + flush(); assertTrue(dialog.open); dialog.close(); }); @@ -506,7 +505,7 @@ playStoreEnabled: true, settingsAppAvailable: true, }; - Polymer.dom.flush(); + flush(); assertFalse(!!subpage.$$('#remove')); assertTrue(!!subpage.$$('#manageApps')); @@ -518,14 +517,14 @@ playStoreEnabled: false, settingsAppAvailable: true, }; - Polymer.dom.flush(); + flush(); const button = subpage.$$('#manageApps'); assertTrue(!!button); const promise = androidAppsBrowserProxy.whenCalled('showAndroidAppsSettings'); button.click(); - Polymer.dom.flush(); + flush(); return promise; }); @@ -534,16 +533,15 @@ playStoreEnabled: false, settingsAppAvailable: true, }; - Polymer.dom.flush(); + flush(); const params = new URLSearchParams; params.append('settingId', '700'); - settings.Router.getInstance().navigateTo( - settings.routes.ANDROID_APPS_DETAILS, params); + Router.getInstance().navigateTo(routes.ANDROID_APPS_DETAILS, params); const deepLinkElement = subpage.$$('#manageApps').shadowRoot.querySelector('cr-icon-button'); - await test_util.waitAfterNextRender(deepLinkElement); + await waitAfterNextRender(deepLinkElement); assertEquals( deepLinkElement, getDeepActiveElement(), 'Manage android prefs button should be focused for settingId=700.'); @@ -552,11 +550,10 @@ test('Deep link to remove play store', async () => { const params = new URLSearchParams; params.append('settingId', '701'); - settings.Router.getInstance().navigateTo( - settings.routes.ANDROID_APPS_DETAILS, params); + Router.getInstance().navigateTo(routes.ANDROID_APPS_DETAILS, params); const deepLinkElement = subpage.$$('#remove cr-button'); - await test_util.waitAfterNextRender(deepLinkElement); + await waitAfterNextRender(deepLinkElement); assertEquals( deepLinkElement, getDeepActiveElement(), 'Remove play store button should be focused for settingId=701.'); @@ -565,12 +562,12 @@ test('ManageUsbDevice', function() { // ARCVM is not enabled subpage.showArcvmManageUsb = false; - Polymer.dom.flush(); + flush(); assertFalse(!!subpage.$$('#manageArcvmShareUsbDevices')); // ARCMV is enabled subpage.showArcvmManageUsb = true; - Polymer.dom.flush(); + flush(); assertTrue(!!subpage.$$('#manageArcvmShareUsbDevices')); }); });
diff --git a/chrome/test/data/webui/settings/chromeos/change_dictation_locale_dialog_test.js b/chrome/test/data/webui/settings/chromeos/change_dictation_locale_dialog_test.js index 3363ec0..2279c6e7 100644 --- a/chrome/test/data/webui/settings/chromeos/change_dictation_locale_dialog_test.js +++ b/chrome/test/data/webui/settings/chromeos/change_dictation_locale_dialog_test.js
@@ -2,13 +2,11 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// clang-format off -// #import 'chrome://os-settings/chromeos/os_settings.js'; +import 'chrome://os-settings/chromeos/os_settings.js'; -// #import {assertEquals, assertTrue, assertFalse} from '../../chai_assert.js'; -// #import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; -// #import {eventToPromise} from 'chrome://test/test_util.js'; -// clang-format on +import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; + +import {assertEquals, assertFalse, assertTrue} from '../../chai_assert.js'; suite('DictationChangeLanguageLocaleDialogTest', function() { /** @type {!ChangeDictationLocaleDialog} */ @@ -32,7 +30,7 @@ dialog.pref = pref; dialog.options = options; document.body.appendChild(dialog); - Polymer.dom.flush(); + flush(); }); test('Cancel button closes dialog', function() {
diff --git a/chrome/test/data/webui/settings/chromeos/dark_mode_subpage_tests.js b/chrome/test/data/webui/settings/chromeos/dark_mode_subpage_tests.js index b2a4c6a..35a58d7 100644 --- a/chrome/test/data/webui/settings/chromeos/dark_mode_subpage_tests.js +++ b/chrome/test/data/webui/settings/chromeos/dark_mode_subpage_tests.js
@@ -2,15 +2,12 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// clang-format off -// #import 'chrome://os-settings/chromeos/os_settings.js'; +import {Router, routes} from 'chrome://os-settings/chromeos/os_settings.js'; +import {getDeepActiveElement} from 'chrome://resources/js/util.m.js'; +import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; +import {waitAfterNextRender} from 'chrome://test/test_util.js'; -// #import {Router, routes, CrSettingsPrefs} from 'chrome://os-settings/chromeos/os_settings.js'; -// #import {assertEquals, assertFalse, assertTrue} from '../../chai_assert.js'; -// #import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; -// #import {getDeepActiveElement} from 'chrome://resources/js/util.m.js'; -// #import {waitAfterNextRender} from 'chrome://test/test_util.js'; -// clang-format on +import {assertEquals, assertFalse, assertTrue} from '../../chai_assert.js'; let darkModePage = null; @@ -39,7 +36,7 @@ darkModePage = document.createElement('settings-dark-mode-subpage'); darkModePage.prefs = prefElement.prefs; document.body.appendChild(darkModePage); - Polymer.dom.flush(); + flush(); } suite('DarkModeHandler', function() { @@ -75,12 +72,12 @@ // Click the button, and dark mode should be enabled. button.click(); - Polymer.dom.flush(); + flush(); assertTrue(getPrefValue()); // Click the button again to disable dark mode again. button.click(); - Polymer.dom.flush(); + flush(); assertFalse(getPrefValue()); }); @@ -99,38 +96,38 @@ // Enable theming from pref and expect an update to a radio button group. darkModePage.setPrefValue('ash.dark_mode.color_mode_themed', true); - Polymer.dom.flush(); + flush(); assertEquals('true', darkModeThemedRadioGroup.selected); // Disable theming from pref and expect an update to a radio button group. darkModePage.setPrefValue('ash.dark_mode.color_mode_themed', false); - Polymer.dom.flush(); + flush(); assertEquals('false', darkModeThemedRadioGroup.selected); // Clicking the 'on' radio should updates the theming pref to on. const darkModeThemedOn = darkModePage.$$('#darkModeThemedOn'); darkModeThemedOn.click(); - Polymer.dom.flush(); + flush(); assertTrue(getPrefValue()); // Clicking the 'off' radio should updates the theming pref to off. const darkModeThemedOff = darkModePage.$$('#darkModeThemedOff'); darkModeThemedOff.click(); - Polymer.dom.flush(); + flush(); assertFalse(getPrefValue()); }); test('Deep link to dark mode toggle button', async () => { const params = new URLSearchParams; params.append('settingId', '505'); - settings.Router.getInstance().navigateTo(settings.routes.DARK_MODE, params); + Router.getInstance().navigateTo(routes.DARK_MODE, params); - Polymer.dom.flush(); + flush(); const deepLinkElement = darkModePage.$$('#darkModeToggleButton') .shadowRoot.querySelector('cr-toggle'); - await test_util.waitAfterNextRender(deepLinkElement); + await waitAfterNextRender(deepLinkElement); assertEquals( deepLinkElement, getDeepActiveElement(), @@ -152,10 +149,10 @@ darkModePage.setPrefValue('ash.dark_mode.color_mode_themed', true); const params = new URLSearchParams; params.append('settingId', '506'); - settings.Router.getInstance().navigateTo(settings.routes.DARK_MODE, params); - Polymer.dom.flush(); + Router.getInstance().navigateTo(routes.DARK_MODE, params); + flush(); let deepLinkElement = darkModePage.$$('#darkModeThemedOn').$$('#button'); - await test_util.waitAfterNextRender(deepLinkElement); + await waitAfterNextRender(deepLinkElement); assertEquals('true', darkModeThemedRadioGroup.selected); assertEquals( @@ -166,10 +163,10 @@ // Disable theming from pref and expect deep link to focus the themed-off // radio button. darkModePage.setPrefValue('ash.dark_mode.color_mode_themed', false); - settings.Router.getInstance().navigateTo(settings.routes.DARK_MODE, params); - Polymer.dom.flush(); + Router.getInstance().navigateTo(routes.DARK_MODE, params); + flush(); deepLinkElement = darkModePage.$$('#darkModeThemedOff').$$('#button'); - await test_util.waitAfterNextRender(deepLinkElement); + await waitAfterNextRender(deepLinkElement); assertEquals('false', darkModeThemedRadioGroup.selected); assertEquals(
diff --git a/chrome/test/data/webui/settings/chromeos/date_time_page_tests.js b/chrome/test/data/webui/settings/chromeos/date_time_page_tests.js index 896e8b7b..033d69af0 100644 --- a/chrome/test/data/webui/settings/chromeos/date_time_page_tests.js +++ b/chrome/test/data/webui/settings/chromeos/date_time_page_tests.js
@@ -2,19 +2,17 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// clang-format off -// #import {CrSettingsPrefs} from 'chrome://os-settings/chromeos/os_settings.js' -// #import {assertEquals, assertFalse, assertTrue} from '../../chai_assert.js'; -// #import {assert} from 'chrome://resources/js/assert.m.js'; -// #import {flush} from'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; -// #import {Router, routes} from 'chrome://os-settings/chromeos/os_settings.js'; -// #import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.js'; -// #import {TimeZoneAutoDetectMethod, TimeZoneBrowserProxyImpl} from 'chrome://os-settings/chromeos/lazy_load.js'; -// #import {getDeepActiveElement} from 'chrome://resources/js/util.m.js'; -// #import {waitAfterNextRender, flushTasks} from 'chrome://test/test_util.js'; -// clang-format on +import {TimeZoneAutoDetectMethod, TimeZoneBrowserProxyImpl} from 'chrome://os-settings/chromeos/lazy_load.js'; +import {CrSettingsPrefs, Router, routes} from 'chrome://os-settings/chromeos/os_settings.js'; +import {assert} from 'chrome://resources/js/assert.m.js'; +import {getDeepActiveElement} from 'chrome://resources/js/util.m.js'; +import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; +import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.js'; +import {flushTasks, waitAfterNextRender} from 'chrome://test/test_util.js'; -/** @implements {settings.TimeZoneBrowserProxy} */ +import {assertEquals, assertFalse, assertTrue} from '../../chai_assert.js'; + +/** @implements {TimeZoneBrowserProxy} */ class TestTimeZoneBrowserProxy extends TestBrowserProxy { constructor() { super([ @@ -98,7 +96,7 @@ resolve_timezone_by_geolocation_method_short: { key: 'generated.resolve_timezone_by_geolocation_method_short', type: chrome.settingsPrivate.PrefType.NUMBER, - value: settings.TimeZoneAutoDetectMethod.IP_ONLY, + value: TimeZoneAutoDetectMethod.IP_ONLY, }, resolve_timezone_by_geolocation_on_off: { key: 'generated.resolve_timezone_by_geolocation_on_off', @@ -117,8 +115,8 @@ prefsCopy.generated.resolve_timezone_by_geolocation_method_short .enforcement = chrome.settingsPrivate.Enforcement.ENFORCED; prefsCopy.generated.resolve_timezone_by_geolocation_method_short.value = - valueFromPolicy ? settings.TimeZoneAutoDetectMethod.IP_ONLY : - settings.TimeZoneAutoDetectMethod.DISABLED; + valueFromPolicy ? TimeZoneAutoDetectMethod.IP_ONLY : + TimeZoneAutoDetectMethod.DISABLED; prefsCopy.generated.resolve_timezone_by_geolocation_on_off.controlledBy = chrome.settingsPrivate.ControlledBy.USER_POLICY; @@ -145,7 +143,7 @@ .enforcement = undefined; // Auto-resolve defaults to true. prefsCopy.generated.resolve_timezone_by_geolocation_method_short.value = - settings.TimeZoneAutoDetectMethod.IP_ONLY; + TimeZoneAutoDetectMethod.IP_ONLY; prefsCopy.settings.timezone.controlledBy = undefined; prefsCopy.settings.timezone.enforcement = undefined; @@ -246,13 +244,13 @@ setup(function() { testBrowserProxy = new TestTimeZoneBrowserProxy(); - settings.TimeZoneBrowserProxyImpl.instance_ = testBrowserProxy; + TimeZoneBrowserProxyImpl.instance_ = testBrowserProxy; PolymerTest.clearBody(); CrSettingsPrefs.resetForTesting(); }); teardown(function() { - settings.Router.getInstance().resetRouteForTesting(); + Router.getInstance().resetRouteForTesting(); }); function getTimeZoneSelector(id) { @@ -295,7 +293,7 @@ testBrowserProxy.setTimeZones(fakeTimeZones); const prefs = getFakePrefs(); dateTime = initializeDateTime(prefs, false); - Polymer.dom.flush(); + flush(); const resolveMethodDropdown = dateTime.$$('#timeZoneResolveMethodDropdown'); assertEquals(0, testBrowserProxy.getCallCount('getTimeZones')); @@ -305,7 +303,7 @@ verifyTimeZonesPopulated(false); clickDisableAutoDetect(dateTime); - Polymer.dom.flush(); + flush(); verifyAutoDetectSetting(false, false); assertTrue(resolveMethodDropdown.disabled); @@ -323,7 +321,7 @@ 'prefs.generated.resolve_timezone_by_geolocation_on_off.value', false); dateTime.set( 'prefs.generated.resolve_timezone_by_geolocation_method_short.value', - settings.TimeZoneAutoDetectMethod.DISABLED); + TimeZoneAutoDetectMethod.DISABLED); await testBrowserProxy.whenCalled('getTimeZones'); @@ -345,13 +343,13 @@ const params = new URLSearchParams; params.append('settingId', '1001'); - settings.Router.getInstance().navigateTo(settings.routes.DATETIME, params); + Router.getInstance().navigateTo(routes.DATETIME, params); - Polymer.dom.flush(); + flush(); const deepLinkElement = dateTime.$$('#timeZoneAutoDetect') .shadowRoot.querySelector('cr-toggle'); - await test_util.waitAfterNextRender(deepLinkElement); + await waitAfterNextRender(deepLinkElement); assertEquals( deepLinkElement, getDeepActiveElement(), 'Auto set time zone toggle should be focused for settingId=1001.'); @@ -361,7 +359,7 @@ testBrowserProxy.setTimeZones(fakeTimeZones); const prefs = getFakePrefs(); dateTime = initializeDateTime(prefs, true, true); - Polymer.dom.flush(); + flush(); const resolveMethodDropdown = dateTime.$$('#timeZoneResolveMethodDropdown'); assertEquals(0, testBrowserProxy.getCallCount('getTimeZones')); @@ -419,15 +417,14 @@ 'prefs.generated.resolve_timezone_by_geolocation_on_off.value', true); dateTime.set( 'prefs.generated.resolve_timezone_by_geolocation_method_short.value', - settings.TimeZoneAutoDetectMethod.IP_ONLY); + TimeZoneAutoDetectMethod.IP_ONLY); // Set fake child account. loadTimeData.overrideValues({ isChild: true, }); - await settings.Router.getInstance().navigateTo( - settings.routes.DATETIME_TIMEZONE_SUBPAGE); + await Router.getInstance().navigateTo(routes.DATETIME_TIMEZONE_SUBPAGE); const resolveMethodDropdown = dateTime.$$('#timeZoneResolveMethodDropdown'); const timezoneSelector = getTimeZoneSelector('#userTimeZoneSelector'); @@ -461,14 +458,13 @@ 'prefs.generated.resolve_timezone_by_geolocation_on_off.value', false); dateTime.set( 'prefs.generated.resolve_timezone_by_geolocation_method_short.value', - settings.TimeZoneAutoDetectMethod.DISABLED); + TimeZoneAutoDetectMethod.DISABLED); // Set fake child account. loadTimeData.overrideValues({ isChild: true, }); - await settings.Router.getInstance().navigateTo( - settings.routes.DATETIME_TIMEZONE_SUBPAGE); + await Router.getInstance().navigateTo(routes.DATETIME_TIMEZONE_SUBPAGE); const resolveMethodDropdown = dateTime.$$('#timeZoneResolveMethodDropdown'); const timezoneSelector = getTimeZoneSelector('#userTimeZoneSelector'); @@ -504,7 +500,7 @@ // Make the date and time editable. cr.webUIListenerCallback('can-set-date-time-changed', true); - await test_util.flushTasks(); + await flushTasks(); assertGT(setDateTimeButton.offsetHeight, 0); assertEquals(0, testBrowserProxy.getCallCount('showSetDateTimeUI'));
diff --git a/chrome/test/data/webui/settings/chromeos/google_assistant_page_test.js b/chrome/test/data/webui/settings/chromeos/google_assistant_page_test.js index 1b16db72..546fc82 100644 --- a/chrome/test/data/webui/settings/chromeos/google_assistant_page_test.js +++ b/chrome/test/data/webui/settings/chromeos/google_assistant_page_test.js
@@ -2,22 +2,16 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// clang-format off -// #import 'chrome://os-settings/chromeos/os_settings.js'; +import {ConsentStatus, CrSettingsPrefs, DspHotwordState, GoogleAssistantBrowserProxyImpl, Router, routes} from 'chrome://os-settings/chromeos/os_settings.js'; +import {getDeepActiveElement} from 'chrome://resources/js/util.m.js'; +import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; +import {waitAfterNextRender} from 'chrome://test/test_util.js'; -// #import {ConsentStatus, DspHotwordState} from 'chrome://os-settings/chromeos/os_settings.js'; -// #import {CrSettingsPrefs} from 'chrome://os-settings/chromeos/os_settings.js'; -// #import {GoogleAssistantBrowserProxyImpl} from 'chrome://os-settings/chromeos/os_settings.js'; -// #import {Router, routes} from 'chrome://os-settings/chromeos/os_settings.js'; -// #import {TestBrowserProxy} from '../../test_browser_proxy.js'; -// #import {assertEquals, assertFalse, assertTrue} from '../../chai_assert.js'; -// #import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; -// #import {getDeepActiveElement} from 'chrome://resources/js/util.m.js'; -// #import {waitAfterNextRender} from 'chrome://test/test_util.js'; -// clang-format on +import {assertEquals, assertFalse, assertTrue} from '../../chai_assert.js'; +import {TestBrowserProxy} from '../../test_browser_proxy.js'; /** - * @implements {settings.GoogleAssistantBrowserProxy} + * @implements {GoogleAssistantBrowserProxy} */ class TestGoogleAssistantBrowserProxy extends TestBrowserProxy { constructor() { @@ -60,7 +54,7 @@ setup(function() { browserProxy = new TestGoogleAssistantBrowserProxy(); - settings.GoogleAssistantBrowserProxyImpl.instance_ = browserProxy; + GoogleAssistantBrowserProxyImpl.instance_ = browserProxy; PolymerTest.clearBody(); @@ -79,7 +73,7 @@ }); test('toggleAssistant', function() { - Polymer.dom.flush(); + flush(); const button = page.$$('#google-assistant-enable'); assertTrue(!!button); assertFalse(button.disabled); @@ -87,7 +81,7 @@ // Tap the enable toggle button and ensure the state becomes enabled. button.click(); - Polymer.dom.flush(); + flush(); assertTrue(button.checked); }); @@ -96,14 +90,14 @@ assertFalse(!!button); page.setPrefValue('settings.voice_interaction.enabled', true); page.setPrefValue('settings.voice_interaction.context.enabled', false); - Polymer.dom.flush(); + flush(); button = page.$$('#google-assistant-context-enable'); assertTrue(!!button); assertFalse(button.disabled); assertFalse(button.checked); button.click(); - Polymer.dom.flush(); + flush(); assertTrue(button.checked); assertTrue( page.getPref('settings.voice_interaction.context.enabled.value')); @@ -114,14 +108,14 @@ assertFalse(!!button); page.setPrefValue('settings.voice_interaction.enabled', true); page.setPrefValue('settings.voice_interaction.hotword.enabled', false); - Polymer.dom.flush(); + flush(); button = page.$$('#google-assistant-hotword-enable'); assertTrue(!!button); assertFalse(button.disabled); assertFalse(button.checked); button.click(); - Polymer.dom.flush(); + flush(); assertTrue(button.checked); assertTrue( page.getPref('settings.voice_interaction.hotword.enabled.value')); @@ -133,7 +127,7 @@ assertFalse(!!button); page.setPrefValue('settings.voice_interaction.enabled', true); - Polymer.dom.flush(); + flush(); button = page.$$('#google-assistant-hotword-enable'); assertTrue(!!button); @@ -147,7 +141,7 @@ value: false, }); - Polymer.dom.flush(); + flush(); const button = page.$$('#google-assistant-hotword-enable'); const indicator = page.$$('#google-assistant-hotword-enable') .shadowRoot.querySelector('cr-policy-pref-indicator'); @@ -164,12 +158,12 @@ page.setPrefValue( 'settings.voice_interaction.activity_control.consent_status', ConsentStatus.kActivityControlAccepted); - Polymer.dom.flush(); + flush(); button = page.$$('#retrain-voice-model'); assertTrue(!!button); button.click(); - Polymer.dom.flush(); + flush(); return browserProxy.whenCalled('retrainAssistantVoiceModel'); }); @@ -177,21 +171,21 @@ let button = page.$$('#retrain-voice-model'); assertFalse(!!button); page.setPrefValue('settings.voice_interaction.enabled', true); - Polymer.dom.flush(); + flush(); button = page.$$('#retrain-voice-model'); assertFalse(!!button); // Hotword disabled. // Button should not be shown. page.setPrefValue('settings.voice_interaction.hotword.enabled', false); - Polymer.dom.flush(); + flush(); button = page.$$('#retrain-voice-model'); assertFalse(!!button); // Hotword enabled. // Button should be shown. page.setPrefValue('settings.voice_interaction.hotword.enabled', true); - Polymer.dom.flush(); + flush(); button = page.$$('#retrain-voice-model'); assertTrue(!!button); }); @@ -202,16 +196,15 @@ page.setPrefValue( 'settings.voice_interaction.activity_control.consent_status', ConsentStatus.kActivityControlAccepted); - Polymer.dom.flush(); + flush(); const params = new URLSearchParams; params.append('settingId', '607'); - settings.Router.getInstance().navigateTo( - settings.routes.GOOGLE_ASSISTANT, params); + Router.getInstance().navigateTo(routes.GOOGLE_ASSISTANT, params); const deepLinkElement = page.$$('#retrain-voice-model').shadowRoot.querySelector('cr-button'); - await test_util.waitAfterNextRender(deepLinkElement); + await waitAfterNextRender(deepLinkElement); assertEquals( deepLinkElement, getDeepActiveElement(), 'Retrain model button should be focused for settingId=607.'); @@ -222,14 +215,14 @@ assertFalse(!!button); page.setPrefValue('settings.voice_interaction.enabled', true); page.setPrefValue('settings.voice_interaction.notification.enabled', false); - Polymer.dom.flush(); + flush(); button = page.$$('#google-assistant-notification-enable'); assertTrue(!!button); assertFalse(button.disabled); assertFalse(button.checked); button.click(); - Polymer.dom.flush(); + flush(); assertTrue(button.checked); assertTrue( page.getPref('settings.voice_interaction.notification.enabled.value')); @@ -240,14 +233,14 @@ assertFalse(!!button); page.setPrefValue('settings.voice_interaction.enabled', true); page.setPrefValue('settings.voice_interaction.launch_with_mic_open', false); - Polymer.dom.flush(); + flush(); button = page.$$('#google-assistant-launch-with-mic-open'); assertTrue(!!button); assertFalse(button.disabled); assertFalse(button.checked); button.click(); - Polymer.dom.flush(); + flush(); assertTrue(button.checked); assertTrue( page.getPref('settings.voice_interaction.launch_with_mic_open.value')); @@ -257,12 +250,12 @@ let button = page.$$('#google-assistant-settings'); assertFalse(!!button); page.setPrefValue('settings.voice_interaction.enabled', true); - Polymer.dom.flush(); + flush(); button = page.$$('#google-assistant-settings'); assertTrue(!!button); button.click(); - Polymer.dom.flush(); + flush(); return browserProxy.whenCalled('showGoogleAssistantSettings'); }); @@ -272,14 +265,14 @@ assertFalse(button.disabled); assertFalse(button.checked); page.setPrefValue('settings.voice_interaction.enabled', true); - Polymer.dom.flush(); + flush(); button = page.$$('#google-assistant-enable'); assertTrue(!!button); assertFalse(button.disabled); assertTrue(button.checked); page.setPrefValue('settings.assistant.disabled_by_policy', true); - Polymer.dom.flush(); + flush(); assertTrue(!!button); assertTrue(button.disabled); assertFalse(button.checked); @@ -302,7 +295,7 @@ setup(function() { browserProxy = new TestGoogleAssistantBrowserProxy(); - settings.GoogleAssistantBrowserProxyImpl.instance_ = browserProxy; + GoogleAssistantBrowserProxyImpl.instance_ = browserProxy; PolymerTest.clearBody(); @@ -313,7 +306,7 @@ page = document.createElement('settings-google-assistant-page'); page.prefs = prefElement.prefs; document.body.appendChild(page); - Polymer.dom.flush(); + flush(); }); }); @@ -328,7 +321,7 @@ function selectValue(select, value) { select.value = value; select.dispatchEvent(new CustomEvent('change')); - Polymer.dom.flush(); + flush(); } test('hotwordToggleVisibilityWithNoDspHotword', function() { @@ -336,7 +329,7 @@ assertFalse(!!toggle); page.setPrefValue('settings.voice_interaction.enabled', true); - Polymer.dom.flush(); + flush(); toggle = page.$$('#google-assistant-hotword-enable'); assertFalse(!!toggle); @@ -347,7 +340,7 @@ assertFalse(!!container); page.setPrefValue('settings.voice_interaction.enabled', true); - Polymer.dom.flush(); + flush(); container = page.$$('#dsp-hotword-container'); assertTrue(!!container); @@ -363,7 +356,7 @@ value: true, }); - Polymer.dom.flush(); + flush(); const dropdown = page.$$('#dsp-hotword-state'); indicator = page.$$('#hotword-policy-pref-indicator'); assertTrue(!!dropdown); @@ -381,7 +374,7 @@ value: true, }); - Polymer.dom.flush(); + flush(); const dropdown = page.$$('#dsp-hotword-state'); indicator = page.$$('#hotword-policy-pref-indicator'); assertTrue(!!dropdown); @@ -400,7 +393,7 @@ value: false, }); - Polymer.dom.flush(); + flush(); const dropdown = page.$$('#dsp-hotword-state'); indicator = page.$$('#hotword-policy-pref-indicator'); assertTrue(!!dropdown); @@ -413,28 +406,28 @@ assertFalse(!!dropdown); page.setPrefValue('settings.voice_interaction.enabled', true); - Polymer.dom.flush(); + flush(); dropdown = page.$$('#dsp-hotword-state'); assertTrue(!!dropdown); assertFalse(dropdown.disabled); selectValue(dropdown, DspHotwordState.DEFAULT_ON); - Polymer.dom.flush(); + flush(); assertTrue( page.getPref('settings.voice_interaction.hotword.enabled.value')); assertFalse( page.getPref('settings.voice_interaction.hotword.always_on.value')); selectValue(dropdown, DspHotwordState.ALWAYS_ON); - Polymer.dom.flush(); + flush(); assertTrue( page.getPref('settings.voice_interaction.hotword.enabled.value')); assertTrue( page.getPref('settings.voice_interaction.hotword.always_on.value')); selectValue(dropdown, DspHotwordState.OFF); - Polymer.dom.flush(); + flush(); assertFalse( page.getPref('settings.voice_interaction.hotword.enabled.value')); assertFalse( @@ -446,7 +439,7 @@ assertFalse(!!dropdown); page.setPrefValue('settings.voice_interaction.enabled', true); - Polymer.dom.flush(); + flush(); dropdown = page.$$('#dsp-hotword-state'); assertTrue(!!dropdown); @@ -454,17 +447,17 @@ page.setPrefValue('settings.voice_interaction.hotword.enabled', true); page.setPrefValue('settings.voice_interaction.hotword.always_on', false); - Polymer.dom.flush(); + flush(); assertEquals(Number(dropdown.value), DspHotwordState.DEFAULT_ON); page.setPrefValue('settings.voice_interaction.hotword.enabled', true); page.setPrefValue('settings.voice_interaction.hotword.always_on', true); - Polymer.dom.flush(); + flush(); assertEquals(Number(dropdown.value), DspHotwordState.ALWAYS_ON); page.setPrefValue('settings.voice_interaction.hotword.enabled', false); page.setPrefValue('settings.voice_interaction.hotword.always_on', false); - Polymer.dom.flush(); + flush(); assertEquals(Number(dropdown.value), DspHotwordState.OFF); }); @@ -473,16 +466,16 @@ assertFalse(!!dropdown); page.setPrefValue('settings.voice_interaction.enabled', true); - Polymer.dom.flush(); + flush(); dropdown = page.$$('#dsp-hotword-state'); assertTrue(!!dropdown); assertFalse(dropdown.disabled); selectValue(dropdown, DspHotwordState.OFF); - Polymer.dom.flush(); + flush(); selectValue(dropdown, DspHotwordState.DEFAULT_ON); - Polymer.dom.flush(); + flush(); return browserProxy.whenCalled('syncVoiceModelStatus'); }); @@ -491,16 +484,16 @@ assertFalse(!!dropdown); page.setPrefValue('settings.voice_interaction.enabled', true); - Polymer.dom.flush(); + flush(); dropdown = page.$$('#dsp-hotword-state'); assertTrue(!!dropdown); assertFalse(dropdown.disabled); selectValue(dropdown, DspHotwordState.OFF); - Polymer.dom.flush(); + flush(); selectValue(dropdown, DspHotwordState.ALWAYS_ON); - Polymer.dom.flush(); + flush(); return browserProxy.whenCalled('syncVoiceModelStatus'); }); });
diff --git a/chrome/test/data/webui/settings/chromeos/input_method_options_page_test.js b/chrome/test/data/webui/settings/chromeos/input_method_options_page_test.js index 2d886df..254cb8c2 100644 --- a/chrome/test/data/webui/settings/chromeos/input_method_options_page_test.js +++ b/chrome/test/data/webui/settings/chromeos/input_method_options_page_test.js
@@ -2,13 +2,14 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// clang-format off -// #import 'chrome://os-settings/chromeos/lazy_load.js'; -// #import {CrSettingsPrefs, Router, routes} from 'chrome://os-settings/chromeos/os_settings.js'; -// #import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; -// #import {FakeSettingsPrivate} from './fake_settings_private.js'; -// #import {waitAfterNextRender} from '../../test_util.js'; -// clang-format on +import 'chrome://os-settings/chromeos/lazy_load.js'; + +import {CrSettingsPrefs, Router, routes} from 'chrome://os-settings/chromeos/os_settings.js'; +import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; + +import {waitAfterNextRender} from '../../test_util.js'; + +import {FakeSettingsPrivate} from './fake_settings_private.js'; /** * @fileoverview Suite of tests for the OS Settings input method options page. @@ -44,7 +45,7 @@ PolymerTest.clearBody(); CrSettingsPrefs.deferInitialization = true; const settingsPrefs = document.createElement('settings-prefs'); - settingsPrivate = new settings.FakeSettingsPrivate(getFakePrefs()); + settingsPrivate = new FakeSettingsPrivate(getFakePrefs()); settingsPrefs.initialize(settingsPrivate); document.body.appendChild(settingsPrefs); await CrSettingsPrefs.initialized; @@ -61,10 +62,10 @@ function createOptionsPage(id) { const params = new URLSearchParams; params.append('id', id); - settings.Router.getInstance().navigateTo( - settings.routes.OS_LANGUAGES_INPUT_METHOD_OPTIONS, params); + Router.getInstance().navigateTo( + routes.OS_LANGUAGES_INPUT_METHOD_OPTIONS, params); - Polymer.dom.flush(); + flush(); } test('US English page', () => { @@ -109,7 +110,7 @@ assertEquals(select.value, '0'); select.value = '1'; select.dispatchEvent(new CustomEvent('change')); - await test_util.waitAfterNextRender(select); + await waitAfterNextRender(select); assertEquals( optionsPage.getPref(PREFS_KEY) .value['xkb:us::eng']['physicalKeyboardAutoCorrectionLevel'], @@ -121,7 +122,7 @@ const toggleButton = options[1].querySelector('cr-toggle'); assertEquals(toggleButton.checked, false); toggleButton.click(); - await test_util.waitAfterNextRender(toggleButton); + await waitAfterNextRender(toggleButton); assertEquals(toggleButton.checked, true); assertEquals( optionsPage.getPref(PREFS_KEY)
diff --git a/chrome/test/data/webui/settings/chromeos/input_page_test.js b/chrome/test/data/webui/settings/chromeos/input_page_test.js index b557ce8..49316af 100644 --- a/chrome/test/data/webui/settings/chromeos/input_page_test.js +++ b/chrome/test/data/webui/settings/chromeos/input_page_test.js
@@ -2,27 +2,27 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// clang-format off -// #import {LanguagesBrowserProxyImpl, LanguagesMetricsProxyImpl, LanguagesPageInteraction, InputsShortcutReminderState} from 'chrome://os-settings/chromeos/lazy_load.js'; -// #import {CrSettingsPrefs, Router, routes} from 'chrome://os-settings/chromeos/os_settings.js'; -// #import {keyDownOn} from 'chrome://resources/polymer/v3_0/iron-test-helpers/mock-interactions.js'; -// #import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; -// #import {getFakeLanguagePrefs} from './fake_language_settings_private.js' -// #import {FakeSettingsPrivate} from './fake_settings_private.js'; -// #import {TestLanguagesBrowserProxy} from './test_os_languages_browser_proxy.m.js'; -// #import {TestLanguagesMetricsProxy} from './test_os_languages_metrics_proxy.m.js'; -// #import {assertEquals, assertFalse, assertTrue} from '../../chai_assert.js'; -// #import {fakeDataBind} from '../../test_util.js'; -// #import {getDeepActiveElement} from 'chrome://resources/js/util.m.js'; -// #import {isVisible, waitAfterNextRender} from 'chrome://test/test_util.js'; -// clang-format on +import {InputsShortcutReminderState, LanguagesBrowserProxyImpl, LanguagesMetricsProxyImpl, LanguagesPageInteraction} from 'chrome://os-settings/chromeos/lazy_load.js'; +import {CrSettingsPrefs, Router, routes} from 'chrome://os-settings/chromeos/os_settings.js'; +import {getDeepActiveElement} from 'chrome://resources/js/util.m.js'; +import {keyDownOn} from 'chrome://resources/polymer/v3_0/iron-test-helpers/mock-interactions.js'; +import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; +import {isVisible, waitAfterNextRender} from 'chrome://test/test_util.js'; + +import {assertEquals, assertFalse, assertTrue} from '../../chai_assert.js'; +import {fakeDataBind} from '../../test_util.js'; + +import {getFakeLanguagePrefs} from './fake_language_settings_private.js'; +import {FakeSettingsPrivate} from './fake_settings_private.js'; +import {TestLanguagesBrowserProxy} from './test_os_languages_browser_proxy.m.js'; +import {TestLanguagesMetricsProxy} from './test_os_languages_metrics_proxy.m.js'; suite('input page', () => { /** @type {!SettingsInputPageElement} */ let inputPage; - /** @type {!settings.LanguagesMetricsProxy} */ + /** @type {!LanguagesMetricsProxy} */ let metricsProxy; - /** @type {!settings.LanguagesBrowserProxy} */ + /** @type {!LanguagesBrowserProxy} */ let browserProxy; /** @type {!LanguagesHelper} */ let languageHelper; @@ -34,8 +34,7 @@ setup(() => { document.body.innerHTML = ''; const prefElement = document.createElement('settings-prefs'); - const settingsPrivate = - new settings.FakeSettingsPrivate(settings.getFakeLanguagePrefs()); + const settingsPrivate = new FakeSettingsPrivate(getFakeLanguagePrefs()); prefElement.initialize(settingsPrivate); /** @@ -98,12 +97,12 @@ return CrSettingsPrefs.initialized.then(() => { // Set up test browser proxy. - browserProxy = new settings.TestLanguagesBrowserProxy(); - settings.LanguagesBrowserProxyImpl.setInstance(browserProxy); + browserProxy = new TestLanguagesBrowserProxy(); + LanguagesBrowserProxyImpl.setInstance(browserProxy); // Sets up test metrics proxy. - metricsProxy = new settings.TestLanguagesMetricsProxy(); - settings.LanguagesMetricsProxyImpl.instance_ = metricsProxy; + metricsProxy = new TestLanguagesMetricsProxy(); + LanguagesMetricsProxyImpl.instance_ = metricsProxy; // Set up fake languageSettingsPrivate API. const languageSettingsPrivate = browserProxy.getLanguageSettingsPrivate(); @@ -112,31 +111,31 @@ // Instantiate the data model with data bindings for prefs. const settingsLanguages = document.createElement('settings-languages'); settingsLanguages.prefs = prefElement.prefs; - test_util.fakeDataBind(prefElement, settingsLanguages, 'prefs'); + fakeDataBind(prefElement, settingsLanguages, 'prefs'); document.body.appendChild(settingsLanguages); // Create page with data bindings for prefs and data model. inputPage = document.createElement('os-settings-input-page'); inputPage.prefs = prefElement.prefs; - test_util.fakeDataBind(prefElement, inputPage, 'prefs'); + fakeDataBind(prefElement, inputPage, 'prefs'); inputPage.languages = settingsLanguages.languages; - test_util.fakeDataBind(settingsLanguages, inputPage, 'languages'); + fakeDataBind(settingsLanguages, inputPage, 'languages'); inputPage.languageHelper = settingsLanguages.languageHelper; - test_util.fakeDataBind(settingsLanguages, inputPage, 'language-helper'); + fakeDataBind(settingsLanguages, inputPage, 'language-helper'); languageHelper = inputPage.languageHelper; document.body.appendChild(inputPage); }); }); teardown(function() { - settings.Router.getInstance().resetRouteForTesting(); + Router.getInstance().resetRouteForTesting(); }); suite('language pack notice', () => { test('is shown when needed', () => { inputPage.shouldShowLanguagePacksNotice_ = true; loadTimeData.overrideValues({languagePacksHandwritingEnabled: true}); - Polymer.dom.flush(); + flush(); assertTrue(isVisible(inputPage.$$('#languagePacksNotice'))); }); @@ -144,7 +143,7 @@ test('is hidden when needed', () => { inputPage.shouldShowLanguagePacksNotice_ = false; loadTimeData.overrideValues({languagePacksHandwritingEnabled: false}); - Polymer.dom.flush(); + flush(); assertFalse(isVisible(inputPage.$$('#languagePacksNotice'))); }); @@ -177,7 +176,7 @@ const inputMethodsList = inputPage.$.inputMethodsList; const items = inputMethodsList.querySelectorAll('.list-item'); items[0].querySelector('.subpage-arrow').click(); - const router = settings.Router.getInstance(); + const router = Router.getInstance(); assertEquals( router.getCurrentRoute().getAbsolutePath(), 'chrome://os-settings/osLanguages/inputMethodOptions'); @@ -198,7 +197,7 @@ // clicks remove input method button. items[0].querySelector('.icon-clear').click(); - Polymer.dom.flush(); + flush(); inputMethodsList = inputPage.$.inputMethodsList; items = inputMethodsList.querySelectorAll('.list-item'); @@ -215,7 +214,7 @@ // Remove US Dvorak keyboard, so there is only 1 component IME left. languageHelper.removeInputMethod( '_comp_ime_fgoepimhcoialccpbmpnnblemnepkkaoxkb:us:dvorak:eng'); - Polymer.dom.flush(); + flush(); const inputMethodsList = inputPage.$.inputMethodsList; const items = inputMethodsList.querySelectorAll('.list-item'); @@ -237,7 +236,7 @@ inputPage.setPrefValue( 'settings.language.allowed_input_methods', ['xkb:us::eng']); - Polymer.dom.flush(); + flush(); assertTrue(!!inputPage.$$('#inputMethodsManagedbyPolicy')); }); @@ -247,14 +246,13 @@ test('Deep link to spell check', async () => { const params = new URLSearchParams; params.append('settingId', '1207'); - settings.Router.getInstance().navigateTo( - settings.routes.OS_LANGUAGES_INPUT, params); + Router.getInstance().navigateTo(routes.OS_LANGUAGES_INPUT, params); - Polymer.dom.flush(); + flush(); const deepLinkElement = inputPage.$$('#enableSpellcheckingToggle') .shadowRoot.querySelector('cr-toggle'); - await test_util.waitAfterNextRender(deepLinkElement); + await waitAfterNextRender(deepLinkElement); assertEquals( deepLinkElement, getDeepActiveElement(), 'Spell check toggle should be focused for settingId=1207.'); @@ -271,7 +269,7 @@ setup(() => { assertFalse(!!inputPage.$$('os-settings-add-input-methods-dialog')); inputPage.$$('#addInputMethod').click(); - Polymer.dom.flush(); + flush(); dialog = inputPage.$$('os-settings-add-input-methods-dialog'); assertTrue(!!dialog); @@ -384,7 +382,7 @@ test('suggested input methods hidden when no languages is enabled', () => { languageHelper.setPrefValue('intl.accept_languages', ''); languageHelper.setPrefValue('settings.language.preferred_languages', ''); - Polymer.dom.flush(); + flush(); suggestedInputMethods = dialog.$$('#suggestedInputMethods'); // suggested input methods is rendered previously. @@ -401,7 +399,7 @@ .forEach(inputMethod => { languageHelper.addInputMethod(inputMethod.id); }); - Polymer.dom.flush(); + flush(); suggestedInputMethods = dialog.$$('#suggestedInputMethods'); // suggested input methods is rendered previously. @@ -423,19 +421,19 @@ // Search hides suggestedInputMethods and allInputMethodsLabel. searchInput.setValue('v'); - Polymer.dom.flush(); + flush(); assertTrue(dialog.$$('#allInputMethodsLabel').hidden); assertEquals('none', getComputedStyle(suggestedInputMethods).display); // Search input methods name searchInput.setValue('vietnamese'); - Polymer.dom.flush(); + flush(); assertEquals(1, getItems().length); assertTrue(getItems()[0].textContent.includes('Vietnamese')); // Search input methods' language searchInput.setValue('Turkmen'); - Polymer.dom.flush(); + flush(); assertEquals(1, getItems().length); assertTrue(getItems()[0].textContent.includes('Swahili keyboard')); }); @@ -446,13 +444,13 @@ // Test that dialog is not closed if 'Escape' is pressed on the input // and a search query exists. - MockInteractions.keyDownOn(searchInput, 19, [], 'Escape'); + keyDownOn(searchInput, 19, [], 'Escape'); assertTrue(dialog.$.dialog.open); // Test that dialog is closed if 'Escape' is pressed on the input and no // search query exists. searchInput.setValue(''); - MockInteractions.keyDownOn(searchInput, 19, [], 'Escape'); + keyDownOn(searchInput, 19, [], 'Escape'); assertFalse(dialog.$.dialog.open); }); }); @@ -461,7 +459,7 @@ test('when deactivating show ime menu', async () => { inputPage.setPrefValue('settings.language.ime_menu_activated', true); inputPage.$$('#showImeMenu').click(); - Polymer.dom.flush(); + flush(); assertFalse( await metricsProxy.whenCalled('recordToggleShowInputOptionsOnShelf')); @@ -470,7 +468,7 @@ test('when activating show ime menu', async () => { inputPage.setPrefValue('settings.language.ime_menu_activated', false); inputPage.$$('#showImeMenu').click(); - Polymer.dom.flush(); + flush(); assertTrue( await metricsProxy.whenCalled('recordToggleShowInputOptionsOnShelf')); @@ -478,7 +476,7 @@ test('when adding input methods', async () => { inputPage.$$('#addInputMethod').click(); - Polymer.dom.flush(); + flush(); await metricsProxy.whenCalled('recordAddInputMethod'); }); @@ -491,7 +489,7 @@ const items = inputMethodsList.querySelectorAll('.list-item'); items[0].click(); assertEquals( - settings.LanguagesPageInteraction.SWITCH_INPUT_METHOD, + LanguagesPageInteraction.SWITCH_INPUT_METHOD, await metricsProxy.whenCalled('recordInteraction')); }); @@ -499,7 +497,7 @@ // Enable Update 2. inputPage.languageSettingsV2Update2Enabled_ = true; loadTimeData.overrideValues({enableLanguageSettingsV2Update2: true}); - Polymer.dom.flush(); + flush(); // Default shortcut reminder with two elements should show "last used IME" // reminder. @@ -512,7 +510,7 @@ // Add US Swahili keyboard, a third party IME. languageHelper.addInputMethod( 'ime_abcdefghijklmnopqrstuvwxyzabcdefxkb:us:sw'); - Polymer.dom.flush(); + flush(); // Shortcut reminder should show "next IME" shortcut. inputPage.$$('keyboard-shortcut-banner').$.dismiss.click(); @@ -526,7 +524,7 @@ 'ash.shortcut_reminders.last_used_ime_dismissed', false); inputPage.setPrefValue( 'ash.shortcut_reminders.next_ime_dismissed', false); - Polymer.dom.flush(); + flush(); // Shortcut reminder should show both shortcuts. inputPage.$$('keyboard-shortcut-banner').$.dismiss.click(); @@ -538,7 +536,7 @@ test('when clicking on "learn more" about language packs', async () => { inputPage.shouldShowLanguagePacksNotice_ = true; loadTimeData.overrideValues({languagePacksHandwritingEnabled: true}); - Polymer.dom.flush(); + flush(); const anchor = inputPage.$$('#languagePacksNotice').$$('a'); // The below would normally create a new window, which would change the @@ -570,7 +568,7 @@ onDeviceGrammarCheckEnabled: false, }); - Polymer.dom.flush(); + flush(); // spell check is initially on spellCheckToggle = inputPage.$$('#enableSpellcheckingToggle'); assertTrue(!!spellCheckToggle); @@ -626,7 +624,7 @@ // toggle off by clicking name spellCheckList[0].querySelector('.name-with-error').click(); - Polymer.dom.flush(); + flush(); assertFalse(spellCheckLanguageToggle.checked); assertDeepEquals( @@ -639,7 +637,7 @@ // toggle on by clicking name spellCheckList[0].querySelector('.name-with-error').click(); - Polymer.dom.flush(); + flush(); assertTrue(spellCheckLanguageToggle.checked); assertDeepEquals( @@ -649,7 +647,7 @@ test('shows force-on existing spell check language', () => { // Force-enable an existing language via policy. languageHelper.setPrefValue('spellcheck.forced_dictionaries', ['sw']); - Polymer.dom.flush(); + flush(); const newSpellCheckList = spellCheckListContainer.querySelectorAll('.list-item'); @@ -672,7 +670,7 @@ test('shows force-on non-enabled spell check language', () => { // Force-enable a new language via policy. languageHelper.setPrefValue('spellcheck.forced_dictionaries', ['nb']); - Polymer.dom.flush(); + flush(); const newSpellCheckList = spellCheckListContainer.querySelectorAll('.list-item'); @@ -695,7 +693,7 @@ test('can disable non-enabled spell check language', () => { // Add a new language to spellcheck.dictionaries which isn't enabled. languageHelper.setPrefValue('spellcheck.dictionaries', ['en-US', 'nb']); - Polymer.dom.flush(); + flush(); let newSpellCheckList = spellCheckListContainer.querySelectorAll('.list-item'); @@ -712,7 +710,7 @@ // Disable nb. newSpellCheckList[2].querySelector('cr-toggle').click(); - Polymer.dom.flush(); + flush(); newSpellCheckList = spellCheckListContainer.querySelectorAll('.list-item'); @@ -734,7 +732,7 @@ // Force-disable a language via policy. languageHelper.setPrefValue( 'spellcheck.blocked_dictionaries', ['nb']); - Polymer.dom.flush(); + flush(); const newSpellCheckList = spellCheckListContainer.querySelectorAll('.list-item'); assertEquals(2, newSpellCheckList.length); @@ -744,7 +742,7 @@ // Force-disable a language via policy. languageHelper.setPrefValue('spellcheck.blocked_dictionaries', ['nb']); languageHelper.enableLanguage('nb'); - Polymer.dom.flush(); + flush(); const newSpellCheckList = spellCheckListContainer.querySelectorAll('.list-item'); @@ -796,7 +794,7 @@ // Enabling a language without spellcheck support should not add it to // the list languageHelper.enableLanguage('tk'); - Polymer.dom.flush(); + flush(); assertEquals(spellCheckList.length, spellCheckLanguagesCount); }); @@ -832,7 +830,7 @@ {languageCode, isReady: false, downloadFailed: true}, ]); - Polymer.dom.flush(); + flush(); assertFalse(errorDivs[0].hidden); assertFalse(retryButtons[0].hidden); assertFalse(retryButtons[0].disabled); @@ -847,7 +845,7 @@ {languageCode, isReady: true, downloadFailed: false}, ]); - Polymer.dom.flush(); + flush(); assertTrue(errorDivs[0].hidden); assertTrue(retryButtons[0].hidden); }); @@ -874,7 +872,7 @@ const editDictionarySubpageTrigger = inputPage.$$('#editDictionarySubpageTrigger'); editDictionarySubpageTrigger.click(); - const router = settings.Router.getInstance(); + const router = Router.getInstance(); assertEquals( router.getCurrentRoute().getAbsolutePath(), 'chrome://os-settings/osLanguages/editDictionary'); @@ -898,7 +896,7 @@ enableLanguageSettingsV2Update2: true, onDeviceGrammarCheckEnabled: true, }); - Polymer.dom.flush(); + flush(); // Spell check is initially on. spellCheckToggle = inputPage.$$('#enableSpellcheckingToggle'); @@ -926,7 +924,7 @@ // Remove the language. spellCheckLanguageToggle.click(); - Polymer.dom.flush(); + flush(); const newSpellCheckList = spellCheckListContainer.querySelectorAll('.list-item'); @@ -939,7 +937,7 @@ test('can remove non-enabled language from spell check list', () => { // Add a new non-enabled language to spellcheck.dictionaries. languageHelper.setPrefValue('spellcheck.dictionaries', ['en-US', 'nb']); - Polymer.dom.flush(); + flush(); let newSpellCheckList = spellCheckListContainer.querySelectorAll('.list-item'); @@ -952,7 +950,7 @@ // Remove nb. newSpellCheckList[1].querySelector('cr-icon-button').click(); - Polymer.dom.flush(); + flush(); newSpellCheckList = spellCheckListContainer.querySelectorAll('.list-item'); @@ -968,7 +966,7 @@ test('shows force-on spell check language turned on by user', () => { // Force-enable a spell check language originally set by the user. languageHelper.setPrefValue('spellcheck.forced_dictionaries', ['en-US']); - Polymer.dom.flush(); + flush(); const newSpellCheckList = spellCheckListContainer.querySelectorAll('.list-item'); @@ -992,7 +990,7 @@ test('shows force-on enabled spell check language', () => { // Force-enable an enabled language via policy. languageHelper.setPrefValue('spellcheck.forced_dictionaries', ['sw']); - Polymer.dom.flush(); + flush(); const newSpellCheckList = spellCheckListContainer.querySelectorAll('.list-item'); @@ -1014,7 +1012,7 @@ test('shows force-on non-enabled spell check language', () => { // Force-enable a non-enabled language via policy. languageHelper.setPrefValue('spellcheck.forced_dictionaries', ['nb']); - Polymer.dom.flush(); + flush(); const newSpellCheckList = spellCheckListContainer.querySelectorAll('.list-item'); @@ -1037,7 +1035,7 @@ test('does not show force-off spell check language enabled by user', () => { // Force-disable a spell check language originally set by the user. languageHelper.setPrefValue('spellcheck.blocked_dictionaries', ['en-US']); - Polymer.dom.flush(); + flush(); // The spell check list should just have "add languages". const newSpellCheckList = @@ -1048,7 +1046,7 @@ test('does not show force-off enabled spell check language', () => { // Force-disable an enabled language via policy. languageHelper.setPrefValue('spellcheck.blocked_dictionaries', ['sw']); - Polymer.dom.flush(); + flush(); // The spell check list should be the same (en-US, "add languages"). const newSpellCheckList = @@ -1061,7 +1059,7 @@ test('does not show force-off non-enabled spell check language', () => { // Force-disable a non-enabled language via policy. languageHelper.setPrefValue('spellcheck.blocked_dictionaries', ['nb']); - Polymer.dom.flush(); + flush(); // The spell check list should be the same (en-US, "add languages"). const newSpellCheckList = @@ -1087,7 +1085,7 @@ test('languages are in sorted order', () => { languageHelper.setPrefValue( 'spellcheck.dictionaries', ['sw', 'en-US', 'nb', 'en-CA']); - Polymer.dom.flush(); + flush(); // The spell check list should be sorted by display name: // English (Canada), English (United States), Norwegian Bokmål, then // Swahili. @@ -1107,7 +1105,7 @@ const spellCheckLanguageToggle = spellCheckList[0].querySelector('cr-icon-button'); spellCheckLanguageToggle.click(); - Polymer.dom.flush(); + flush(); let newSpellCheckList = spellCheckListContainer.querySelectorAll('.list-item'); @@ -1128,7 +1126,7 @@ // Add an enabled language (en-US). languageHelper.toggleSpellCheck('en-US', true); - Polymer.dom.flush(); + flush(); newSpellCheckList = spellCheckListContainer.querySelectorAll('.list-item'); @@ -1144,7 +1142,7 @@ // Remove en-US from Accept-Language, which is also an enabled spell check // language. languageHelper.disableLanguage('en-US'); - Polymer.dom.flush(); + flush(); // en-US should still be there. let newSpellCheckList = @@ -1155,7 +1153,7 @@ // Add a spell check language not in Accept-Language. languageHelper.toggleSpellCheck('nb', true); - Polymer.dom.flush(); + flush(); // The spell check list should now have en-US, nb and "add languages". newSpellCheckList = @@ -1167,7 +1165,7 @@ // Add an arbitrary language to Accept-Language. languageHelper.enableLanguage('tk'); - Polymer.dom.flush(); + flush(); // The spell check list should remain the same. newSpellCheckList = @@ -1191,7 +1189,7 @@ test('error handling', () => { // Enable Swahili so we have two languages for testing. languageHelper.setPrefValue('spellcheck.dictionaries', ['en-US', 'sw']); - Polymer.dom.flush(); + flush(); const checkAllHidden = nodes => { assertTrue(nodes.every(node => node.hidden)); }; @@ -1211,7 +1209,7 @@ {languageCode, isReady: false, downloadFailed: true}, ]); - Polymer.dom.flush(); + flush(); assertFalse(errorDivs[0].hidden); assertFalse(retryButtons[0].hidden); assertFalse(retryButtons[0].disabled); @@ -1226,7 +1224,7 @@ {languageCode, isReady: true, downloadFailed: false}, ]); - Polymer.dom.flush(); + flush(); assertTrue(errorDivs[0].hidden); assertTrue(retryButtons[0].hidden); }); @@ -1244,7 +1242,7 @@ const editDictionarySubpageTrigger = inputPage.$$('#editDictionarySubpageTrigger'); editDictionarySubpageTrigger.click(); - const router = settings.Router.getInstance(); + const router = Router.getInstance(); assertEquals( router.getCurrentRoute().getAbsolutePath(), 'chrome://os-settings/osLanguages/editDictionary'); @@ -1297,12 +1295,12 @@ // However, we should still set loadTimeData as some other code may use // it (such as languages.js). loadTimeData.overrideValues({enableLanguageSettingsV2Update2: true}); - Polymer.dom.flush(); + flush(); assertFalse( !!inputPage.$$('os-settings-add-spellcheck-languages-dialog')); inputPage.$$('#addSpellcheckLanguages').click(); - Polymer.dom.flush(); + flush(); dialog = inputPage.$$('os-settings-add-spellcheck-languages-dialog'); assertTrue(!!dialog); @@ -1427,7 +1425,7 @@ test('policy disabled languages cannot be selected and show icon', () => { // Force-disable sw. languageHelper.setPrefValue('spellcheck.blocked_dictionaries', ['sw']); - Polymer.dom.flush(); + flush(); const swCheckboxWithPolicy = getAllLanguagesCheckboxWithPolicies()[1]; const swCheckbox = @@ -1443,7 +1441,7 @@ test('labels do not appear if there are no suggested languages', () => { // Disable sw, the only default suggested language, as a web language. languageHelper.disableLanguage('sw'); - Polymer.dom.flush(); + flush(); // Suggested languages should not show up whatsoever. assertFalse(isVisible(suggestedLanguages)); @@ -1455,7 +1453,7 @@ // Remove en-US from the dictionary list AND the enabled languages list. languageHelper.setPrefValue('spellcheck.dictionaries', []); languageHelper.disableLanguage('en-US'); - Polymer.dom.flush(); + flush(); // Both Swahili (as it is an enabled language) and English (US) (as it is // enabled as an input method) should appear in the list. @@ -1478,19 +1476,19 @@ // Issue query that matches the |displayedName| in lowercase. searchInput.setValue('norwegian'); - Polymer.dom.flush(); + flush(); assertEquals(getAllLanguagesCheckboxWithPolicies().length, 1); assertTrue(getAllLanguagesCheckboxWithPolicies()[0].textContent.includes( 'Norwegian Bokmål')); // Issue query that matches the |nativeDisplayedName|. searchInput.setValue('norsk'); - Polymer.dom.flush(); + flush(); assertEquals(getAllLanguagesCheckboxWithPolicies().length, 1); // Issue query that does not match any language. searchInput.setValue('egaugnal'); - Polymer.dom.flush(); + flush(); assertEquals(getAllLanguagesCheckboxWithPolicies().length, 0); assertFalse(dialog.$$('#no-search-results').hidden); }); @@ -1501,13 +1499,13 @@ // Test that dialog is not closed if 'Escape' is pressed on the input // and a search query exists. - MockInteractions.keyDownOn(searchInput, 19, [], 'Escape'); + keyDownOn(searchInput, 19, [], 'Escape'); assertTrue(dialog.$.dialog.open); // Test that dialog is closed if 'Escape' is pressed on the input and no // search query exists. searchInput.setValue(''); - MockInteractions.keyDownOn(searchInput, 19, [], 'Escape'); + keyDownOn(searchInput, 19, [], 'Escape'); assertFalse(dialog.$.dialog.open); }); });
diff --git a/chrome/test/data/webui/settings/chromeos/os_settings_v3_browsertest.js b/chrome/test/data/webui/settings/chromeos/os_settings_v3_browsertest.js index aa686bf..fc5e507 100644 --- a/chrome/test/data/webui/settings/chromeos/os_settings_v3_browsertest.js +++ b/chrome/test/data/webui/settings/chromeos/os_settings_v3_browsertest.js
@@ -288,7 +288,7 @@ class extends OSSettingsV3BrowserTest { /** @override */ get browsePreload() { - return 'chrome://os-settings/test_loader.html?module=settings/chromeos/app_details_item_test.m.js'; + return 'chrome://os-settings/test_loader.html?module=settings/chromeos/app_management/app_details_item_test.js'; } /** @override */ @@ -345,53 +345,65 @@ [['AccessibilityPage', 'os_a11y_page_tests.m.js'], ['AboutPage', 'os_about_page_tests.m.js'], ['AccountsPage', 'add_users_tests.m.js'], - ['AmbientModePage', 'ambient_mode_page_test.m.js'], - ['AmbientModePhotosPage', 'ambient_mode_photos_page_test.m.js'], - ['AppsPage', 'apps_page_test.m.js'], - ['AppNotificationsSubpage', 'app_notifications_subpage_tests.m.js'], - ['AppManagementAppDetailsItem', 'app_details_item_test.m.js'], - ['AppManagementAppDetailView', 'app_detail_view_test.m.js'], - ['AppManagementAppItem', 'app_item_test.m.js'], - ['AppManagementArcDetailView', 'arc_detail_view_test.m.js'], - ['AppManagementBorealisDetailView', 'borealis_detail_view_test.m.js'], - ['AppManagementChromeAppDetailView', 'chrome_app_detail_view_test.m.js'], - ['AppManagementDomSwitch', 'dom_switch_test.m.js'], - ['AppManagementFileHandlingItem', 'file_handling_item_test.m.js'], - ['AppManagementMainView', 'main_view_test.m.js'], - ['AppManagementManagedApp', 'managed_apps_test.m.js'], - ['AppManagementPage', 'app_management_page_tests.m.js'], - ['AppManagementPinToShelfItem', 'pin_to_shelf_item_test.m.js'], - ['AppManagementPluginVmDetailView', 'plugin_vm_detail_view_test.m.js'], - ['AppManagementPwaDetailView', 'pwa_detail_view_test.m.js'], - ['AppManagementReducers', 'reducers_test.m.js'], - ['AppManagementResizeLockItem', 'resize_lock_item_test.m.js'], - ['AppManagementSupportedLinksItem', 'supported_links_item_test.m.js'], - ['AppManagementToggleRow', 'toggle_row_test.m.js'], - ['AppManagementUninstallButton', 'uninstall_button_test.m.js'], + ['AmbientModePage', 'ambient_mode_page_test.js'], + ['AmbientModePhotosPage', 'ambient_mode_photos_page_test.js'], + ['AppsPage', 'apps_page_test.js'], + ['AppNotificationsSubpage', 'app_notifications_subpage_tests.js'], + ['AppManagementAppDetailsItem', 'app_management/app_details_item_test.js'], + ['AppManagementAppDetailView', 'app_management/app_detail_view_test.js'], + ['AppManagementAppItem', 'app_management/app_item_test.js'], + ['AppManagementArcDetailView', 'app_management/arc_detail_view_test.js'], + [ + 'AppManagementBorealisDetailView', + 'app_management/borealis_detail_view_test.js' + ], + [ + 'AppManagementChromeAppDetailView', + 'app_management/chrome_app_detail_view_test.js' + ], + ['AppManagementDomSwitch', 'app_management/dom_switch_test.js'], + ['AppManagementFileHandlingItem', 'app_management/file_handling_item_test.js'], + ['AppManagementMainView', 'app_management/main_view_test.js'], + ['AppManagementManagedApp', 'app_management/managed_apps_test.js'], + ['AppManagementPage', 'app_management/app_management_page_tests.js'], + ['AppManagementPinToShelfItem', 'app_management/pin_to_shelf_item_test.js'], + [ + 'AppManagementPluginVmDetailView', + 'app_management/plugin_vm_detail_view_test.js' + ], + ['AppManagementPwaDetailView', 'app_management/pwa_detail_view_test.js'], + ['AppManagementReducers', 'app_management/reducers_test.js'], + ['AppManagementResizeLockItem', 'app_management/resize_lock_item_test.js'], + [ + 'AppManagementSupportedLinksItem', + 'app_management/supported_links_item_test.js' + ], + ['AppManagementToggleRow', 'app_management/toggle_row_test.js'], + ['AppManagementUninstallButton', 'app_management/uninstall_button_test.js'], ['BluetoothPage', 'bluetooth_page_tests.js'], ['CellularNetworksList', 'cellular_networks_list_test.js'], ['CellularRoamingToggleButton', 'cellular_roaming_toggle_button_test.js'], ['CellularSetupDialog', 'cellular_setup_dialog_test.js'], [ 'DictationChangeLanguageLocaleDialogTest', - 'change_dictation_locale_dialog_test.m.js' + 'change_dictation_locale_dialog_test.js' ], ['CupsPrinterEntry', 'cups_printer_entry_tests.m.js'], ['CupsPrinterLandingPage', 'cups_printer_landing_page_tests.m.js'], // TODO(crbug/1240970): Re-enable once flakiness is fixed. // ['CupsPrinterPage', 'cups_printer_page_tests.m.js'], - ['DarkModeSubpage', 'dark_mode_subpage_tests.m.js'], - ['DateTimePage', 'date_time_page_tests.m.js'], + ['DarkModeSubpage', 'dark_mode_subpage_tests.js'], + ['DateTimePage', 'date_time_page_tests.js'], ['EsimInstallErrorDialog', 'esim_install_error_dialog_test.js'], ['EsimRemoveProfileDialog', 'esim_remove_profile_dialog_test.js'], ['EsimRenameDialog', 'esim_rename_dialog_test.js'], ['FilesPage', 'os_files_page_test.m.js'], ['FingerprintPage', 'fingerprint_browsertest_chromeos.m.js'], - ['GoogleAssistantPage', 'google_assistant_page_test.m.js'], + ['GoogleAssistantPage', 'google_assistant_page_test.js'], ['GuestOsSharedPaths', 'guest_os_shared_paths_test.m.js'], ['GuestOsSharedUsbDevices', 'guest_os_shared_usb_devices_test.m.js'], - ['InputMethodOptionPage', 'input_method_options_page_test.m.js'], - ['InputPage', 'input_page_test.m.js'], + ['InputMethodOptionPage', 'input_method_options_page_test.js'], + ['InputPage', 'input_page_test.js'], ['InternetConfig', 'internet_config_test.js'], ['InternetDetailMenu', 'internet_detail_menu_test.js'], ['InternetDetailPage', 'internet_detail_page_tests.js'], @@ -455,14 +467,14 @@ ['OsSearchPage', 'os_search_page_test.m.js'], ['OsSettingsSearchBox', 'os_settings_search_box_test.m.js'], ['OSSettingsMenu', 'os_settings_menu_test.m.js'], - ['ParentalControlsPage', 'parental_controls_page_test.m.js'], + ['ParentalControlsPage', 'parental_controls_page_test.js'], ['PeoplePage', 'os_people_page_test.m.js'], ['PeoplePageChangePicture', 'people_page_change_picture_test.m.js'], [ 'PeoplePageQuickUnlock', 'quick_unlock_authenticate_browsertest_chromeos.m.js' ], - ['PersonalizationPage', 'personalization_page_test.m.js'], + ['PersonalizationPage', 'personalization_page_test.js'], ['PrintingPage', 'os_printing_page_tests.m.js'], ['PrivacyPage', 'os_privacy_page_test.m.js'], ['ResetPage', 'os_reset_page_test.m.js'], @@ -480,8 +492,8 @@ ['SwitchAccessSubpage', 'switch_access_subpage_tests.m.js'], ['TetherConnectionDialog', 'tether_connection_dialog_test.m.js'], ['TextToSpeechSubpage', 'text_to_speech_subpage_tests.m.js'], - ['TimezoneSelector', 'timezone_selector_test.m.js'], - ['TimezoneSubpage', 'timezone_subpage_test.m.js'], + ['TimezoneSelector', 'timezone_selector_test.js'], + ['TimezoneSubpage', 'timezone_subpage_test.js'], ['TtsSubpage', 'tts_subpage_test.m.js'], ['UserPage', 'user_page_tests.m.js'], ].forEach(test => registerTest(...test));
diff --git a/chrome/test/data/webui/settings/chromeos/parental_controls_page_test.js b/chrome/test/data/webui/settings/chromeos/parental_controls_page_test.js index fb09842..dea991e7 100644 --- a/chrome/test/data/webui/settings/chromeos/parental_controls_page_test.js +++ b/chrome/test/data/webui/settings/chromeos/parental_controls_page_test.js
@@ -2,18 +2,15 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// clang-format off -// #import 'chrome://os-settings/chromeos/os_settings.js'; +import {osPageVisibility, ParentalControlsBrowserProxy, ParentalControlsBrowserProxyImpl} from 'chrome://os-settings/chromeos/os_settings.js'; +import {assert} from 'chrome://resources/js/assert.m.js'; +import {loadTimeData} from 'chrome://resources/js/load_time_data.m.js'; +import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; +import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.js'; -// #import {loadTimeData} from 'chrome://resources/js/load_time_data.m.js'; -// #import {osPageVisibility, ParentalControlsBrowserProxyImpl, ParentalControlsBrowserProxy} from 'chrome://os-settings/chromeos/os_settings.js'; -// #import {assertEquals, assertFalse, assertTrue} from '../../chai_assert.js'; -// #import {assert} from 'chrome://resources/js/assert.m.js'; -// #import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; -// #import {TestBrowserProxy} from 'chrome://test/test_browser_proxy.js'; -// clang-format on +import {assertEquals, assertFalse, assertTrue} from '../../chai_assert.js'; -/** @implements {parental_controls.ParentalControlsBrowserProxy} */ +/** @implements {ParentalControlsBrowserProxy} */ class TestParentalControlsBrowserProxy extends TestBrowserProxy { constructor() { super([ @@ -49,14 +46,14 @@ setup(function() { parentalControlsBrowserProxy = new TestParentalControlsBrowserProxy(); - parental_controls.ParentalControlsBrowserProxyImpl.instance_ = parentalControlsBrowserProxy; + ParentalControlsBrowserProxyImpl.instance_ = parentalControlsBrowserProxy; PolymerTest.clearBody(); parentalControlsPage = document.createElement('settings-parental-controls-page'); - parentalControlsPage.pageVisibility = settings.osPageVisibility; + parentalControlsPage.pageVisibility = osPageVisibility; document.body.appendChild(parentalControlsPage); - Polymer.dom.flush(); + flush(); }); teardown(function() { @@ -127,14 +124,14 @@ setup(async function() { parentalControlsBrowserProxy = new TestParentalControlsBrowserProxy(); - parental_controls.ParentalControlsBrowserProxyImpl.instance_ = parentalControlsBrowserProxy; + ParentalControlsBrowserProxyImpl.instance_ = parentalControlsBrowserProxy; PolymerTest.clearBody(); parentalControlsPage = document.createElement('settings-parental-controls-page'); - parentalControlsPage.pageVisibility = settings.osPageVisibility; + parentalControlsPage.pageVisibility = osPageVisibility; document.body.appendChild(parentalControlsPage); - Polymer.dom.flush(); + flush(); }); teardown(function() {
diff --git a/chrome/test/data/webui/settings/chromeos/personalization_page_test.js b/chrome/test/data/webui/settings/chromeos/personalization_page_test.js index 374c6858..266ff75 100644 --- a/chrome/test/data/webui/settings/chromeos/personalization_page_test.js +++ b/chrome/test/data/webui/settings/chromeos/personalization_page_test.js
@@ -2,24 +2,22 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// clang-format off -// #import 'chrome://os-settings/chromeos/os_settings.js'; +import {PersonalizationHubBrowserProxyImpl, Router, routes, WallpaperBrowserProxyImpl} from 'chrome://os-settings/chromeos/os_settings.js'; +import {getDeepActiveElement} from 'chrome://resources/js/util.m.js'; +import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; +import {flushTasks, waitAfterNextRender} from 'chrome://test/test_util.js'; -// #import {PersonalizationHubBrowserProxyImpl, WallpaperBrowserProxyImpl, routes, Router} from 'chrome://os-settings/chromeos/os_settings.js'; -// #import {assertEquals, assertFalse, assertTrue} from '../../chai_assert.js'; -// #import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; -// #import {TestPersonalizationHubBrowserProxy} from './test_personalization_hub_browser_proxy.m.js'; -// #import {TestWallpaperBrowserProxy} from './test_wallpaper_browser_proxy.m.js'; -// #import {getDeepActiveElement} from 'chrome://resources/js/util.m.js'; -// #import {flushTasks, waitAfterNextRender} from 'chrome://test/test_util.js'; -// clang-format on +import {assertEquals, assertFalse, assertTrue} from '../../chai_assert.js'; + +import {TestPersonalizationHubBrowserProxy} from './test_personalization_hub_browser_proxy.m.js'; +import {TestWallpaperBrowserProxy} from './test_wallpaper_browser_proxy.m.js'; let personalizationPage = null; -/** @type {?settings.TestPersonalizationHubBrowserProxy} */ +/** @type {?TestPersonalizationHubBrowserProxy} */ let PersonalizationHubBrowserProxy = null; -/** @type {?settings.TestWallpaperBrowserProxy} */ +/** @type {?TestWallpaperBrowserProxy} */ let WallpaperBrowserProxy = null; function createPersonalizationPage() { @@ -53,7 +51,7 @@ }); document.body.appendChild(personalizationPage); - Polymer.dom.flush(); + flush(); } suite('PersonalizationHandler', function() { @@ -62,19 +60,18 @@ }); setup(function() { - WallpaperBrowserProxy = new settings.TestWallpaperBrowserProxy(); - settings.WallpaperBrowserProxyImpl.instance_ = WallpaperBrowserProxy; - PersonalizationHubBrowserProxy = - new settings.TestPersonalizationHubBrowserProxy(); - settings.PersonalizationHubBrowserProxyImpl.instance_ = + WallpaperBrowserProxy = new TestWallpaperBrowserProxy(); + WallpaperBrowserProxyImpl.instance_ = WallpaperBrowserProxy; + PersonalizationHubBrowserProxy = new TestPersonalizationHubBrowserProxy(); + PersonalizationHubBrowserProxyImpl.instance_ = PersonalizationHubBrowserProxy; createPersonalizationPage(); }); teardown(async function() { personalizationPage.remove(); - settings.Router.getInstance().resetRouteForTesting(); - await test_util.flushTasks(); + Router.getInstance().resetRouteForTesting(); + await flushTasks(); }); test('wallpaperManager', async () => { @@ -93,7 +90,7 @@ test('wallpaperSettingVisible', function() { personalizationPage.showWallpaperRow_ = false; - Polymer.dom.flush(); + flush(); assertTrue(personalizationPage.$$('#wallpaperButton').hidden); }); @@ -103,7 +100,7 @@ WallpaperBrowserProxy.setIsWallpaperPolicyControlled(true); createPersonalizationPage(); await WallpaperBrowserProxy.whenCalled('isWallpaperPolicyControlled'); - Polymer.dom.flush(); + flush(); assertFalse(personalizationPage.$$('#wallpaperPolicyIndicator').hidden); assertTrue(personalizationPage.$$('#wallpaperButton').disabled); }); @@ -111,13 +108,12 @@ test('Deep link to open wallpaper button', async () => { const params = new URLSearchParams; params.append('settingId', '500'); - settings.Router.getInstance().navigateTo( - settings.routes.PERSONALIZATION, params); + Router.getInstance().navigateTo(routes.PERSONALIZATION, params); const deepLinkElement = personalizationPage.shadowRoot.getElementById('wallpaperButton') .shadowRoot.querySelector('#icon'); - await test_util.waitAfterNextRender(deepLinkElement); + await waitAfterNextRender(deepLinkElement); assertEquals( deepLinkElement, getDeepActiveElement(), 'Wallpaper button should be focused for settingId=500.'); @@ -128,9 +124,7 @@ personalizationPage.shadowRoot.getElementById('changePictureRow'); assertTrue(!!row); row.click(); - assertEquals( - settings.routes.CHANGE_PICTURE, - settings.Router.getInstance().getCurrentRoute()); + assertEquals(routes.CHANGE_PICTURE, Router.getInstance().getCurrentRoute()); }); test('ambientMode', function() { @@ -141,9 +135,7 @@ const row = personalizationPage.$$('#ambientModeRow'); assertTrue(!!row); row.click(); - assertEquals( - settings.routes.AMBIENT_MODE, - settings.Router.getInstance().getCurrentRoute()); + assertEquals(routes.AMBIENT_MODE, Router.getInstance().getCurrentRoute()); } }); @@ -153,7 +145,7 @@ // hidden due to no personalization section show in the guest mode. loadTimeData.overrideValues({isDarkModeAllowed: true, isGuest: true}); assertTrue(loadTimeData.getBoolean('isDarkModeAllowed')); - Polymer.dom.flush(); + flush(); let row = personalizationPage.$$('#darkModeRow'); assertTrue(!row); @@ -161,20 +153,18 @@ loadTimeData.overrideValues({isDarkModeAllowed: true, isGuest: false}); assertFalse(loadTimeData.getBoolean('isGuest')); createPersonalizationPage(); - Polymer.dom.flush(); + flush(); row = personalizationPage.$$('#darkModeRow'); assertFalse(!row); row.click(); - assertTrue( - settings.routes.DARK_MODE === - settings.Router.getInstance().getCurrentRoute()); + assertTrue(routes.DARK_MODE === Router.getInstance().getCurrentRoute()); // Disable dark mode feature and check that dark mode row is hidden. loadTimeData.overrideValues({isDarkModeAllowed: false, isGuest: false}); assertFalse(loadTimeData.getBoolean('isDarkModeAllowed')); createPersonalizationPage(); personalizationPage.prefs.ash.dark_mode.enabled.value = false; - Polymer.dom.flush(); + flush(); row = personalizationPage.$$('#darkModeRow'); assertTrue(!row); }); @@ -182,19 +172,18 @@ test('Deep link to change account picture', async () => { const params = new URLSearchParams; params.append('settingId', '503'); - settings.Router.getInstance().navigateTo( - settings.routes.CHANGE_PICTURE, params); + Router.getInstance().navigateTo(routes.CHANGE_PICTURE, params); - Polymer.dom.flush(); + flush(); - await test_util.waitAfterNextRender(personalizationPage); + await waitAfterNextRender(personalizationPage); const changePicturePage = personalizationPage.$$('settings-change-picture'); assertTrue(!!changePicturePage); const deepLinkElement = changePicturePage.$$('#pictureList') .$$('#selector') .$$('[class="iron-selected"]'); - await test_util.waitAfterNextRender(deepLinkElement); + await waitAfterNextRender(deepLinkElement); assertEquals( deepLinkElement, getDeepActiveElement(), 'Account picture elem should be focused for settingId=503.'); @@ -204,8 +193,8 @@ loadTimeData.overrideValues({isPersonalizationHubEnabled: true}); assertTrue(loadTimeData.getBoolean('isPersonalizationHubEnabled')); createPersonalizationPage(); - Polymer.dom.flush(); - await test_util.waitAfterNextRender(personalizationPage); + flush(); + await waitAfterNextRender(personalizationPage); const crLinks = personalizationPage.shadowRoot.querySelectorAll('cr-link-row'); @@ -218,8 +207,8 @@ loadTimeData.overrideValues({isPersonalizationHubEnabled: true}); assertTrue(loadTimeData.getBoolean('isPersonalizationHubEnabled')); createPersonalizationPage(); - Polymer.dom.flush(); - await test_util.waitAfterNextRender(personalizationPage); + flush(); + await waitAfterNextRender(personalizationPage); const hubLink = personalizationPage.shadowRoot.getElementById( 'personalizationHubButton');
diff --git a/chrome/test/data/webui/settings/chromeos/test_android_apps_browser_proxy.js b/chrome/test/data/webui/settings/chromeos/test_android_apps_browser_proxy.js index 36c531f..b80d5bc 100644 --- a/chrome/test/data/webui/settings/chromeos/test_android_apps_browser_proxy.js +++ b/chrome/test/data/webui/settings/chromeos/test_android_apps_browser_proxy.js
@@ -2,12 +2,10 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// clang-format off -// #import {TestBrowserProxy} from '../../test_browser_proxy.js'; -// clang-format on +import {TestBrowserProxy} from '../../test_browser_proxy.js'; -/** @implements {settings.AndroidAppsBrowserProxy} */ -/* #export */ class TestAndroidAppsBrowserProxy extends TestBrowserProxy { +/** @implements {AndroidAppsBrowserProxy} */ +export class TestAndroidAppsBrowserProxy extends TestBrowserProxy { constructor() { super([ 'requestAndroidAppsInfo',
diff --git a/chrome/test/data/webui/settings/chromeos/timezone_selector_test.js b/chrome/test/data/webui/settings/chromeos/timezone_selector_test.js index 104a769..5ecb934 100644 --- a/chrome/test/data/webui/settings/chromeos/timezone_selector_test.js +++ b/chrome/test/data/webui/settings/chromeos/timezone_selector_test.js
@@ -2,13 +2,12 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// clang-format off -// #import 'chrome://os-settings/chromeos/lazy_load.js'; +import 'chrome://os-settings/chromeos/lazy_load.js'; -// #import {flush} from'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; -// #import {assertEquals} from '../../chai_assert.js'; -// #import {assert} from 'chrome://resources/js/assert.m.js'; -// clang-format on +import {assert} from 'chrome://resources/js/assert.m.js'; +import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; + +import {assertEquals} from '../../chai_assert.js'; suite('TimezoneSelectorTests', function() { /** @type {TimezoneSelector} */ @@ -35,7 +34,7 @@ }; document.body.appendChild(timezoneSelector); - Polymer.dom.flush(); + flush(); assertEquals(null, timezoneSelector.$$('#userTimeZoneSelector')); assertEquals(null, timezoneSelector.$$('#systemTimezoneSelector')); @@ -54,7 +53,7 @@ }; document.body.appendChild(timezoneSelector); - Polymer.dom.flush(); + flush(); const userTimezoneSelector = assert(timezoneSelector.$$('#userTimeZoneSelector'));
diff --git a/chrome/test/data/webui/settings/chromeos/timezone_subpage_test.js b/chrome/test/data/webui/settings/chromeos/timezone_subpage_test.js index ad8f546..eb2303f 100644 --- a/chrome/test/data/webui/settings/chromeos/timezone_subpage_test.js +++ b/chrome/test/data/webui/settings/chromeos/timezone_subpage_test.js
@@ -2,17 +2,15 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// clang-format off -// #import 'chrome://os-settings/chromeos/lazy_load.js'; +import 'chrome://os-settings/chromeos/lazy_load.js'; -// #import {CrSettingsPrefs} from 'chrome://os-settings/chromeos/os_settings.js' -// #import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; -// #import {assertEquals} from '../../chai_assert.js'; -// #import {assert} from 'chrome://resources/js/assert.m.js'; -// #import {getDeepActiveElement} from 'chrome://resources/js/util.m.js'; -// #import {Router, routes} from 'chrome://os-settings/chromeos/os_settings.js'; -// #import {waitAfterNextRender} from 'chrome://test/test_util.js'; -// clang-format on +import {CrSettingsPrefs, Router, routes} from 'chrome://os-settings/chromeos/os_settings.js'; +import {assert} from 'chrome://resources/js/assert.m.js'; +import {getDeepActiveElement} from 'chrome://resources/js/util.m.js'; +import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; +import {waitAfterNextRender} from 'chrome://test/test_util.js'; + +import {assertEquals} from '../../chai_assert.js'; suite('TimezoneSubpageTests', function() { /** @type {TimezoneSubpage} */ @@ -34,7 +32,7 @@ teardown(function() { timezoneSubpage.remove(); CrSettingsPrefs.resetForTesting(); - settings.Router.getInstance().resetRouteForTesting(); + Router.getInstance().resetRouteForTesting(); }); test('Timezone autodetect by geolocation radio', async () => { @@ -44,13 +42,13 @@ // Resolve timezone by geolocation is on. timezoneSubpage.setPrefValue( 'generated.resolve_timezone_by_geolocation_on_off', true); - Polymer.dom.flush(); + flush(); assertEquals('true', timezoneRadioGroup.selected); // Resolve timezone by geolocation is off. timezoneSubpage.setPrefValue( 'generated.resolve_timezone_by_geolocation_on_off', false); - Polymer.dom.flush(); + flush(); assertEquals('false', timezoneRadioGroup.selected); // Set timezone autodetect on by clicking the 'on' radio. @@ -77,12 +75,11 @@ const params = new URLSearchParams; params.append('settingId', '1001'); - settings.Router.getInstance().navigateTo( - settings.routes.DATETIME_TIMEZONE_SUBPAGE, params); + Router.getInstance().navigateTo(routes.DATETIME_TIMEZONE_SUBPAGE, params); const deepLinkElement = timezoneSubpage.$$('#timeZoneAutoDetectOn').$$('#button'); - await test_util.waitAfterNextRender(deepLinkElement); + await waitAfterNextRender(deepLinkElement); assertEquals( deepLinkElement, getDeepActiveElement(), 'Auto set time zone toggle should be focused for settingId=1001.');
diff --git a/chromeos/tast_control.gni b/chromeos/tast_control.gni index 1de48f5..aa1f90d7 100644 --- a/chromeos/tast_control.gni +++ b/chromeos/tast_control.gni
@@ -191,6 +191,52 @@ # https://crbug.com/1309331 "policy.CookiesAllowedForUrls", + + # https://crbug.com/1307582 + "policy.AccessibilityPolicies.docked_magnifier", + + # https://crbug.com/1307940 + "policy.URLCheck.blocklist", + + # https://crbug.com/1309114 + "policy.BlockThirdPartyCookies.lacros", + + # https://crbug.com/1309288 + "policy.AudioCaptureAllowed", + "policy.AlternateErrorPagesEnabled", + + # https://crbug.com/1309289 + "policy.AllowDeletingBrowserHistory", + + # https://crbug.com/1307750 + "dlp.DataLeakPreventionRulesListPrinting.ash_blocked", + "dlp.DataLeakPreventionRulesListPrinting.ash_allowed", + + # https://crbug.com/1309052 + "policy.ShowHomeButton", + "policy.ShowLogoutButtonInTray", + + # https://crbug.com/1309075 + "policy.AccessibilityPolicies.virtual_keyboard", + "policy.AccessibilityPolicies.spoken_feedback", + + # https://crbug.com/1309466 + "arc.StartStop.vm", + + # https://crbug.com/1309492 + "inputs.VirtualKeyboardGlideTyping.clamshell_a11y_floating", + "inputs.VirtualKeyboardChangeInput.a11y", + "arc.DragDrop.chrome_to_android", + + # https://crbug.com/1311081 + "policy.AutoOpenAllowedForURLs.lacros", + + # https://crbug.com/1312120 + "oobe.Smoke", + + # https://crbug.com/1312121 + "policy.DefaultJavaScriptSetting", + "policy.CookiesBlockedForUrls", ] # To disable a specific test in lacros_all_tast_tests, add it the following
diff --git a/components/BUILD.gn b/components/BUILD.gn index 34b8ee4..5c50c86d 100644 --- a/components/BUILD.gn +++ b/components/BUILD.gn
@@ -294,6 +294,7 @@ "//components/captive_portal/content:unit_tests", "//components/cast_certificate:unit_tests", "//components/cast_channel:unit_tests", + "//components/cast_streaming:unit_tests", "//components/certificate_transparency:unit_tests", "//components/content_capture/browser:unit_tests", "//components/content_settings/browser:unit_tests", @@ -391,10 +392,7 @@ ] if (!is_win) { #!iOS and!Windows - deps += [ - "//components/cast:unit_tests", - "//components/cast_streaming:unit_tests", - ] + deps += [ "//components/cast:unit_tests" ] } if (!is_fuchsia) { #!iOS and!Fuchsia
diff --git a/components/autofill/core/common/autofill_payments_features.cc b/components/autofill/core/common/autofill_payments_features.cc index 696361f0..85a9470 100644 --- a/components/autofill/core/common/autofill_payments_features.cc +++ b/components/autofill/core/common/autofill_payments_features.cc
@@ -60,6 +60,11 @@ "AutofillEnableMerchantBoundVirtualCards", base::FEATURE_ENABLED_BY_DEFAULT}; +// When enabled, enable manual falling component for virtual cards on Android. +const base::Feature kAutofillEnableManualFallbackForVirtualCards{ + "AutofillEnableManualFallbackForVirtualCards", + base::FEATURE_DISABLED_BY_DEFAULT}; + // When enabled, a notification will be displayed on page navigation if the // domain has an eligible merchant promo code offer or reward. const base::Feature kAutofillEnableOfferNotificationForPromoCodes{
diff --git a/components/autofill/core/common/autofill_payments_features.h b/components/autofill/core/common/autofill_payments_features.h index 43eaafc..ad61063 100644 --- a/components/autofill/core/common/autofill_payments_features.h +++ b/components/autofill/core/common/autofill_payments_features.h
@@ -21,6 +21,7 @@ extern const base::Feature kAutofillAutoTriggerManualFallbackForCards; extern const base::Feature kAutofillCreditCardAuthentication; extern const base::Feature kAutofillCreditCardUploadFeedback; +extern const base::Feature kAutofillEnableManualFallbackForVirtualCards; extern const base::Feature kAutofillEnableMerchantBoundVirtualCards; extern const base::Feature kAutofillEnableOfferNotificationForPromoCodes; extern const base::Feature kAutofillEnableOffersInClankKeyboardAccessory;
diff --git a/components/cast_streaming/browser/BUILD.gn b/components/cast_streaming/browser/BUILD.gn index 356a6c1b..f428bc5 100644 --- a/components/cast_streaming/browser/BUILD.gn +++ b/components/cast_streaming/browser/BUILD.gn
@@ -4,29 +4,6 @@ import("//testing/test.gni") -# TODO(crbug.com/1207718): Remove cast_message_port_impl code from this -# component and replace with a more general interface. -# TODO(crbug.com/1208195): Move code to correct place with respect to the -# /public folder to only expose publicly needed headers. -source_set("core") { - deps = [ - "//base", - "//media", - ] - public_deps = [ - "//components/cast/message_port", - "//third_party/openscreen/src/cast/common:public", - "//third_party/openscreen/src/cast/streaming:common", - ] - visibility = [ ":*" ] - sources = [ - "cast_message_port_impl.cc", - "cast_message_port_impl.h", - "message_serialization.cc", - "message_serialization.h", - ] -} - source_set("receiver_session_public") { deps = [ "//base", @@ -40,57 +17,157 @@ sources = [ "public/receiver_session.h" ] } -source_set("receiver_session") { - deps = [ - ":core", - ":network_context", - ":receiver_session_public", - ":streaming_session", - "//base", - "//media", - "//media/mojo/common", - "//media/mojo/mojom", - "//mojo/public/cpp/system", - ] - public_deps = [ - "//components/cast_streaming/public/mojom", - "//third_party/openscreen/src/cast/streaming:receiver", - ] - visibility = [ ":*" ] - sources = [ - "receiver_session_impl.cc", - "receiver_session_impl.h", - ] -} +# MessagePort cannot be used on Windows due to intersection of its PostMessage +# method with a macro of the same name, so hide the targets that use it and all +# that depend on it behind a platform check. +if (!is_win) { + # TODO(crbug.com/1207718): Remove cast_message_port_impl code from this + # component and replace with a more general interface. + # TODO(crbug.com/1208195): Move code to correct place with respect to the + # /public folder to only expose publicly needed headers. + source_set("core") { + deps = [ + "//base", + "//media", + ] + public_deps = [ + "//components/cast/message_port", + "//third_party/openscreen/src/cast/common:public", + "//third_party/openscreen/src/cast/streaming:common", + ] + visibility = [ ":*" ] + sources = [ + "cast_message_port_impl.cc", + "cast_message_port_impl.h", + "message_serialization.cc", + "message_serialization.h", + ] + } -source_set("streaming_session") { - deps = [ - ":core", - ":receiver_session_public", - ":renderer_controls", - "//base", - "//components/cast_streaming/public", - "//components/cast_streaming/public:config_conversions", - "//components/cast_streaming/public/mojom", - "//components/openscreen_platform", - "//media", - "//media/mojo/common", - "//media/mojo/mojom", - "//mojo/public/cpp/system", - "//third_party/openscreen/src/cast/common:public", - "//third_party/openscreen/src/cast/streaming:receiver", - "//third_party/openscreen/src/util", - ] - public_deps = [ "//components/cast/message_port" ] - visibility = [ ":*" ] - sources = [ - "cast_streaming_session.cc", - "cast_streaming_session.h", - "renderer_controller_config.cc", - "renderer_controller_config.h", - "stream_consumer.cc", - "stream_consumer.h", - ] + source_set("receiver_session") { + deps = [ + ":core", + ":network_context", + ":receiver_session_public", + ":streaming_session", + "//base", + "//media", + "//media/mojo/common", + "//media/mojo/mojom", + "//mojo/public/cpp/system", + ] + public_deps = [ + "//components/cast_streaming/public/mojom", + "//third_party/openscreen/src/cast/streaming:receiver", + ] + visibility = [ ":*" ] + sources = [ + "receiver_session_impl.cc", + "receiver_session_impl.h", + ] + } + + source_set("streaming_session") { + deps = [ + ":core", + ":receiver_session_public", + ":renderer_controls", + "//base", + "//components/cast_streaming/public", + "//components/cast_streaming/public:config_conversions", + "//components/cast_streaming/public/mojom", + "//components/openscreen_platform", + "//media", + "//media/mojo/common", + "//media/mojo/mojom", + "//mojo/public/cpp/system", + "//third_party/openscreen/src/cast/common:public", + "//third_party/openscreen/src/cast/streaming:receiver", + "//third_party/openscreen/src/util", + ] + public_deps = [ "//components/cast/message_port" ] + visibility = [ ":*" ] + sources = [ + "cast_streaming_session.cc", + "cast_streaming_session.h", + "renderer_controller_config.cc", + "renderer_controller_config.h", + "stream_consumer.cc", + "stream_consumer.h", + ] + } + + # TODO(crbug.com/1207715): Move to /tests directory. + source_set("test_sender") { + testonly = true + deps = [ + ":core", + "//components/cast_streaming/public", + "//components/cast_streaming/public:config_conversions", + "//media/mojo/common", + "//media/mojo/mojom", + "//mojo/public/cpp/system", + "//third_party/openscreen/src/platform:api", + "//third_party/openscreen/src/util", + ] + public_deps = [ + "//base", + "//components/openscreen_platform", + "//media", + "//third_party/openscreen/src/cast/common:public", + "//third_party/openscreen/src/cast/streaming:sender", + ] + sources = [ + "test/cast_message_port_sender_impl.cc", + "test/cast_message_port_sender_impl.h", + "test/cast_streaming_test_sender.cc", + "test/cast_streaming_test_sender.h", + ] + } + + # TODO(crbug.com/1207715): Move to /tests directory. + source_set("test_receiver") { + testonly = true + deps = [ + ":streaming_session", + "//base", + "//components/cast_streaming/public", + "//components/cast_streaming/public:config_conversions", + "//components/openscreen_platform", + "//media", + "//media/mojo/common", + "//mojo/public/cpp/system", + "//third_party/openscreen/src/cast/common:public", + "//third_party/openscreen/src/cast/streaming:receiver", + "//third_party/openscreen/src/platform:api", + "//third_party/openscreen/src/util", + ] + visibility = [ ":*" ] + sources = [ + "test/cast_streaming_test_receiver.cc", + "test/cast_streaming_test_receiver.h", + ] + } + + # TODO(crbug.com/1207715): Move to /tests directory. + test("e2e_tests") { + deps = [ + ":core", + ":streaming_session", + ":test_receiver", + ":test_sender", + "//base/test:test_support", + "//components/openscreen_platform:openscreen_platform_net", + "//media", + "//mojo/core/embedder", + "//testing/gtest", + "//third_party/openscreen/src/platform:api", + ] + sources = [ + "cast_streaming_session_unittest.cc", + "test/run_all_unittests.cc", + ] + } } source_set("network_context") { @@ -131,79 +208,10 @@ ":network_context", ":receiver_session_public", ] - deps = [ ":receiver_session" ] -} -# TODO(crbug.com/1207715): Move to /tests directory. -source_set("test_sender") { - testonly = true - deps = [ - ":core", - "//components/cast_streaming/public", - "//components/cast_streaming/public:config_conversions", - "//media/mojo/common", - "//media/mojo/mojom", - "//mojo/public/cpp/system", - "//third_party/openscreen/src/platform:api", - "//third_party/openscreen/src/util", - ] - public_deps = [ - "//base", - "//components/openscreen_platform", - "//media", - "//third_party/openscreen/src/cast/common:public", - "//third_party/openscreen/src/cast/streaming:sender", - ] - sources = [ - "test/cast_message_port_sender_impl.cc", - "test/cast_message_port_sender_impl.h", - "test/cast_streaming_test_sender.cc", - "test/cast_streaming_test_sender.h", - ] -} - -# TODO(crbug.com/1207715): Move to /tests directory. -source_set("test_receiver") { - testonly = true - deps = [ - ":streaming_session", - "//base", - "//components/cast_streaming/public", - "//components/cast_streaming/public:config_conversions", - "//components/openscreen_platform", - "//media", - "//media/mojo/common", - "//mojo/public/cpp/system", - "//third_party/openscreen/src/cast/common:public", - "//third_party/openscreen/src/cast/streaming:receiver", - "//third_party/openscreen/src/platform:api", - "//third_party/openscreen/src/util", - ] - visibility = [ ":*" ] - sources = [ - "test/cast_streaming_test_receiver.cc", - "test/cast_streaming_test_receiver.h", - ] -} - -# TODO(crbug.com/1207715): Move to /tests directory. -test("e2e_tests") { - deps = [ - ":core", - ":streaming_session", - ":test_receiver", - ":test_sender", - "//base/test:test_support", - "//components/openscreen_platform:openscreen_platform_net", - "//media", - "//mojo/core/embedder", - "//testing/gtest", - "//third_party/openscreen/src/platform:api", - ] - sources = [ - "cast_streaming_session_unittest.cc", - "test/run_all_unittests.cc", - ] + if (!is_win) { + deps = [ ":receiver_session" ] + } } # TODO(crbug.com/1207721): Add more unit tests for code in this directory. @@ -211,12 +219,18 @@ testonly = true deps = [ ":browser", - ":core", ":renderer_controls", "//base", "//base/test:test_support", - "//components/cast/message_port:test_message_port_receiver", "//testing/gtest", ] - sources = [ "cast_message_port_impl_unittest.cc" ] + sources = [] + + if (!is_win) { + deps += [ + ":core", + "//components/cast/message_port:test_message_port_receiver", + ] + sources += [ "cast_message_port_impl_unittest.cc" ] + } }
diff --git a/components/commerce/core/commerce_heuristics_data.cc b/components/commerce/core/commerce_heuristics_data.cc index 5ddb7c8..170170e 100644 --- a/components/commerce/core/commerce_heuristics_data.cc +++ b/components/commerce/core/commerce_heuristics_data.cc
@@ -5,6 +5,7 @@ #include "components/commerce/core/commerce_heuristics_data.h" #include "base/json/json_reader.h" +#include "base/json/json_writer.h" #include "base/no_destructor.h" namespace commerce_heuristics { @@ -65,6 +66,7 @@ return false; } hint_heuristics_ = std::move(*hint_json_value->GetIfDict()); + global_heuristics_string_ = global_json_data; global_heuristics_ = std::move(*global_json_value->GetIfDict()); // Global regex patterns. product_skip_pattern_ = ConstructGlobalRegex(kSkipProductPatternType); @@ -94,6 +96,27 @@ return GetCommerceHintHeuristics(kMerchantCartURLType, domain); } +absl::optional<std::string> +CommerceHeuristicsData::GetHintHeuristicsJSONForDomain( + const std::string& domain) { + if (!hint_heuristics_.contains(domain)) { + return absl::nullopt; + } + base::Value::Dict* domain_heuristics = hint_heuristics_.FindDict(domain); + if (!domain_heuristics || domain_heuristics->empty()) { + return absl::nullopt; + } + base::Value::Dict res_dic; + res_dic.Set(domain, std::move(*domain_heuristics)); + std::string res_string; + base::JSONWriter::Write(res_dic, &res_string); + return absl::optional<std::string>(res_string); +} + +absl::optional<std::string> CommerceHeuristicsData::GetGlobalHeuristicsJSON() { + return global_heuristics_string_; +} + const re2::RE2* CommerceHeuristicsData::GetProductSkipPattern() { return product_skip_pattern_.get(); }
diff --git a/components/commerce/core/commerce_heuristics_data.h b/components/commerce/core/commerce_heuristics_data.h index 0b501b7..3975de3 100644 --- a/components/commerce/core/commerce_heuristics_data.h +++ b/components/commerce/core/commerce_heuristics_data.h
@@ -39,6 +39,13 @@ // Try to get merchant cart URL for `domain`. absl::optional<std::string> GetMerchantCartURL(const std::string& domain); + // Try to get hint heuristics JSON data for `domain`. + absl::optional<std::string> GetHintHeuristicsJSONForDomain( + const std::string& domain); + + // Try to get global heuristics JSON data. + absl::optional<std::string> GetGlobalHeuristicsJSON(); + // Try to get the product skip pattern. const re2::RE2* GetProductSkipPattern(); @@ -95,6 +102,7 @@ base::Version version_; base::Value::Dict hint_heuristics_; base::Value::Dict global_heuristics_; + std::string global_heuristics_string_; std::unique_ptr<re2::RE2> product_skip_pattern_; std::unique_ptr<re2::RE2> rule_discount_partner_merchant_pattern_; std::unique_ptr<re2::RE2> coupon_discount_partner_merchant_pattern_;
diff --git a/components/commerce/core/commerce_heuristics_data_unittest.cc b/components/commerce/core/commerce_heuristics_data_unittest.cc index 2775093f..7dd04bd0 100644 --- a/components/commerce/core/commerce_heuristics_data_unittest.cc +++ b/components/commerce/core/commerce_heuristics_data_unittest.cc
@@ -3,6 +3,7 @@ // found in the LICENSE file. #include "components/commerce/core/commerce_heuristics_data.h" +#include "base/strings/string_util.h" #include "testing/gtest/include/gtest/gtest.h" namespace commerce_heuristics { @@ -56,14 +57,14 @@ base::Version version1("2022.1.1.1200"); commerce_heuristics::CommerceHeuristicsData::GetInstance().UpdateVersion( version1); - ASSERT_EQ( + EXPECT_EQ( commerce_heuristics::CommerceHeuristicsData::GetInstance().GetVersion(), "2022.1.1.1200"); base::Version version2("2022.2.1.1300"); commerce_heuristics::CommerceHeuristicsData::GetInstance().UpdateVersion( version2); - ASSERT_EQ( + EXPECT_EQ( commerce_heuristics::CommerceHeuristicsData::GetInstance().GetVersion(), "2022.2.1.1300"); } @@ -74,49 +75,49 @@ kGlobalHeuristicsJSONData, "", "")); auto* hint_heuristics = GetHintHeuristics(); - ASSERT_EQ(hint_heuristics->size(), 3u); - ASSERT_TRUE(hint_heuristics->contains("foo.com")); - ASSERT_TRUE(hint_heuristics->contains("bar.com")); - ASSERT_TRUE(hint_heuristics->contains("baz.com")); - ASSERT_EQ(*hint_heuristics->FindDict("foo.com")->FindString("merchant_name"), + EXPECT_EQ(hint_heuristics->size(), 3u); + EXPECT_TRUE(hint_heuristics->contains("foo.com")); + EXPECT_TRUE(hint_heuristics->contains("bar.com")); + EXPECT_TRUE(hint_heuristics->contains("baz.com")); + EXPECT_EQ(*hint_heuristics->FindDict("foo.com")->FindString("merchant_name"), "Foo"); - ASSERT_EQ(*hint_heuristics->FindDict("foo.com")->FindString("cart_url"), + EXPECT_EQ(*hint_heuristics->FindDict("foo.com")->FindString("cart_url"), "foo.com/cart"); - ASSERT_EQ(*hint_heuristics->FindDict("foo.com")->FindString("cart_url_regex"), + EXPECT_EQ(*hint_heuristics->FindDict("foo.com")->FindString("cart_url_regex"), "foo.com/([^/]+/)?cart"); - ASSERT_EQ(*hint_heuristics->FindDict("bar.com")->FindString("merchant_name"), + EXPECT_EQ(*hint_heuristics->FindDict("bar.com")->FindString("merchant_name"), "Bar"); - ASSERT_EQ( + EXPECT_EQ( *hint_heuristics->FindDict("bar.com")->FindString("checkout_url_regex"), "bar.com/([^/]+/)?checkout"); - ASSERT_EQ( + EXPECT_EQ( *hint_heuristics->FindDict("baz.com")->FindString("purchase_url_regex"), "baz.com/([^/]+/)?purchase"); auto* global_heuristics = GetGlobalHeuristics(); - ASSERT_EQ(global_heuristics->size(), 7u); - ASSERT_TRUE(global_heuristics->contains("sensitive_product_regex")); - ASSERT_EQ(*global_heuristics->FindString("sensitive_product_regex"), + EXPECT_EQ(global_heuristics->size(), 7u); + EXPECT_TRUE(global_heuristics->contains("sensitive_product_regex")); + EXPECT_EQ(*global_heuristics->FindString("sensitive_product_regex"), "\\b\\B"); - ASSERT_TRUE( + EXPECT_TRUE( global_heuristics->contains("rule_discount_partner_merchant_regex")); - ASSERT_EQ( + EXPECT_EQ( *global_heuristics->FindString("rule_discount_partner_merchant_regex"), "foo"); - ASSERT_TRUE( + EXPECT_TRUE( global_heuristics->contains("coupon_discount_partner_merchant_regex")); - ASSERT_EQ( + EXPECT_EQ( *global_heuristics->FindString("coupon_discount_partner_merchant_regex"), "bar"); - ASSERT_TRUE(global_heuristics->contains("cart_page_url_regex")); - ASSERT_EQ(*global_heuristics->FindString("cart_page_url_regex"), "cart"); - ASSERT_TRUE(global_heuristics->contains("checkout_page_url_regex")); - ASSERT_EQ(*global_heuristics->FindString("checkout_page_url_regex"), + EXPECT_TRUE(global_heuristics->contains("cart_page_url_regex")); + EXPECT_EQ(*global_heuristics->FindString("cart_page_url_regex"), "cart"); + EXPECT_TRUE(global_heuristics->contains("checkout_page_url_regex")); + EXPECT_EQ(*global_heuristics->FindString("checkout_page_url_regex"), "checkout"); - ASSERT_TRUE(global_heuristics->contains("purchase_button_text_regex")); - ASSERT_EQ(*global_heuristics->FindString("purchase_button_text_regex"), + EXPECT_TRUE(global_heuristics->contains("purchase_button_text_regex")); + EXPECT_EQ(*global_heuristics->FindString("purchase_button_text_regex"), "purchase"); - ASSERT_TRUE(global_heuristics->contains("add_to_cart_request_regex")); - ASSERT_EQ(*global_heuristics->FindString("add_to_cart_request_regex"), + EXPECT_TRUE(global_heuristics->contains("add_to_cart_request_regex")); + EXPECT_EQ(*global_heuristics->FindString("add_to_cart_request_regex"), "add_to_cart"); } @@ -130,11 +131,11 @@ "merchant_name": "Bar" )###"; - ASSERT_FALSE(commerce_heuristics::CommerceHeuristicsData::GetInstance() + EXPECT_FALSE(commerce_heuristics::CommerceHeuristicsData::GetInstance() .PopulateDataFromComponent(broken_hint_json_string, kGlobalHeuristicsJSONData, "", "")); - ASSERT_FALSE( + EXPECT_FALSE( commerce_heuristics::CommerceHeuristicsData::GetInstance() .PopulateDataFromComponent(kHintHeuristicsJSONData, "{", "", "")); } @@ -145,10 +146,10 @@ ASSERT_TRUE(data.PopulateDataFromComponent( kHintHeuristicsJSONData, kGlobalHeuristicsJSONData, "", "")); - ASSERT_EQ(*data.GetMerchantName("foo.com"), "Foo"); - ASSERT_EQ(*data.GetMerchantName("bar.com"), "Bar"); - ASSERT_FALSE(data.GetMerchantName("baz.com").has_value()); - ASSERT_FALSE(data.GetMerchantName("xyz.com").has_value()); + EXPECT_EQ(*data.GetMerchantName("foo.com"), "Foo"); + EXPECT_EQ(*data.GetMerchantName("bar.com"), "Bar"); + EXPECT_FALSE(data.GetMerchantName("baz.com").has_value()); + EXPECT_FALSE(data.GetMerchantName("xyz.com").has_value()); } TEST_F(CommerceHeuristicsDataTest, TestGetMerchantCartURL) { @@ -157,8 +158,8 @@ ASSERT_TRUE(data.PopulateDataFromComponent( kHintHeuristicsJSONData, kGlobalHeuristicsJSONData, "", "")); - ASSERT_EQ(*data.GetMerchantCartURL("foo.com"), "foo.com/cart"); - ASSERT_FALSE(data.GetMerchantCartURL("baz.com").has_value()); + EXPECT_EQ(*data.GetMerchantCartURL("foo.com"), "foo.com/cart"); + EXPECT_FALSE(data.GetMerchantCartURL("baz.com").has_value()); } TEST_F(CommerceHeuristicsDataTest, TestGetProductSkipPattern) { @@ -167,7 +168,7 @@ ASSERT_TRUE(data.PopulateDataFromComponent( kHintHeuristicsJSONData, kGlobalHeuristicsJSONData, "", "")); - ASSERT_EQ(data.GetProductSkipPattern()->pattern(), "\\b\\B"); + EXPECT_EQ(data.GetProductSkipPattern()->pattern(), "\\b\\B"); } TEST_F(CommerceHeuristicsDataTest, TestGetRuleDiscountPartnerMerchantPattern) { @@ -176,7 +177,7 @@ ASSERT_TRUE(data.PopulateDataFromComponent( kHintHeuristicsJSONData, kGlobalHeuristicsJSONData, "", "")); - ASSERT_EQ(data.GetRuleDiscountPartnerMerchantPattern()->pattern(), "foo"); + EXPECT_EQ(data.GetRuleDiscountPartnerMerchantPattern()->pattern(), "foo"); } TEST_F(CommerceHeuristicsDataTest, @@ -186,7 +187,7 @@ ASSERT_TRUE(data.PopulateDataFromComponent( kHintHeuristicsJSONData, kGlobalHeuristicsJSONData, "", "")); - ASSERT_EQ(data.GetCouponDiscountPartnerMerchantPattern()->pattern(), "bar"); + EXPECT_EQ(data.GetCouponDiscountPartnerMerchantPattern()->pattern(), "bar"); } TEST_F(CommerceHeuristicsDataTest, TestGetCartPageURLPattern) { @@ -195,7 +196,7 @@ ASSERT_TRUE(data.PopulateDataFromComponent( kHintHeuristicsJSONData, kGlobalHeuristicsJSONData, "", "")); - ASSERT_EQ(data.GetCartPageURLPattern()->pattern(), "cart"); + EXPECT_EQ(data.GetCartPageURLPattern()->pattern(), "cart"); } TEST_F(CommerceHeuristicsDataTest, TestGetCheckoutPageURLPattern) { @@ -204,7 +205,7 @@ ASSERT_TRUE(data.PopulateDataFromComponent( kHintHeuristicsJSONData, kGlobalHeuristicsJSONData, "", "")); - ASSERT_EQ(data.GetCheckoutPageURLPattern()->pattern(), "checkout"); + EXPECT_EQ(data.GetCheckoutPageURLPattern()->pattern(), "checkout"); } TEST_F(CommerceHeuristicsDataTest, TestGetPurchaseButtonTextPattern) { @@ -213,7 +214,7 @@ ASSERT_TRUE(data.PopulateDataFromComponent( kHintHeuristicsJSONData, kGlobalHeuristicsJSONData, "", "")); - ASSERT_EQ(data.GetPurchaseButtonTextPattern()->pattern(), "purchase"); + EXPECT_EQ(data.GetPurchaseButtonTextPattern()->pattern(), "purchase"); } TEST_F(CommerceHeuristicsDataTest, TestGetAddToCartRequestPattern) { @@ -222,7 +223,7 @@ ASSERT_TRUE(data.PopulateDataFromComponent( kHintHeuristicsJSONData, kGlobalHeuristicsJSONData, "", "")); - ASSERT_EQ(data.GetAddToCartRequestPattern()->pattern(), "add_to_cart"); + EXPECT_EQ(data.GetAddToCartRequestPattern()->pattern(), "add_to_cart"); } TEST_F(CommerceHeuristicsDataTest, TestGetCartPageURLPatternForDomain) { @@ -231,7 +232,7 @@ ASSERT_TRUE(data.PopulateDataFromComponent( kHintHeuristicsJSONData, kGlobalHeuristicsJSONData, "", "")); - ASSERT_EQ(data.GetCartPageURLPatternForDomain("foo.com")->pattern(), + EXPECT_EQ(data.GetCartPageURLPatternForDomain("foo.com")->pattern(), "foo.com/([^/]+/)?cart"); } @@ -241,7 +242,7 @@ ASSERT_TRUE(data.PopulateDataFromComponent( kHintHeuristicsJSONData, kGlobalHeuristicsJSONData, "", "")); - ASSERT_EQ(data.GetCheckoutPageURLPatternForDomain("bar.com")->pattern(), + EXPECT_EQ(data.GetCheckoutPageURLPatternForDomain("bar.com")->pattern(), "bar.com/([^/]+/)?checkout"); } @@ -251,7 +252,7 @@ ASSERT_TRUE(data.PopulateDataFromComponent( kHintHeuristicsJSONData, kGlobalHeuristicsJSONData, "", "")); - ASSERT_EQ(data.GetPurchasePageURLPatternForDomain("baz.com")->pattern(), + EXPECT_EQ(data.GetPurchasePageURLPatternForDomain("baz.com")->pattern(), "baz.com/([^/]+/)?purchase"); } @@ -261,11 +262,11 @@ ASSERT_TRUE(data.PopulateDataFromComponent( kHintHeuristicsJSONData, kGlobalHeuristicsJSONData, "", "")); - ASSERT_EQ(data.GetCartPageURLPatternForDomain("foo.com")->pattern(), + EXPECT_EQ(data.GetCartPageURLPatternForDomain("foo.com")->pattern(), "foo.com/([^/]+/)?cart"); - ASSERT_EQ(data.GetCheckoutPageURLPatternForDomain("bar.com")->pattern(), + EXPECT_EQ(data.GetCheckoutPageURLPatternForDomain("bar.com")->pattern(), "bar.com/([^/]+/)?checkout"); - ASSERT_EQ(data.GetPurchasePageURLPatternForDomain("baz.com")->pattern(), + EXPECT_EQ(data.GetPurchasePageURLPatternForDomain("baz.com")->pattern(), "baz.com/([^/]+/)?purchase"); ASSERT_TRUE(data.PopulateDataFromComponent( @@ -278,10 +279,57 @@ )###", kGlobalHeuristicsJSONData, "", "")); - ASSERT_FALSE(data.GetCartPageURLPatternForDomain("foo.com")); - ASSERT_FALSE(data.GetCheckoutPageURLPatternForDomain("bar.com")); - ASSERT_FALSE(data.GetPurchasePageURLPatternForDomain("baz.com")); - ASSERT_EQ(data.GetPurchasePageURLPatternForDomain("qux.com")->pattern(), + EXPECT_FALSE(data.GetCartPageURLPatternForDomain("foo.com")); + EXPECT_FALSE(data.GetCheckoutPageURLPatternForDomain("bar.com")); + EXPECT_FALSE(data.GetPurchasePageURLPatternForDomain("baz.com")); + EXPECT_EQ(data.GetPurchasePageURLPatternForDomain("qux.com")->pattern(), "qux.com/([^/]+/)?purchase"); } + +TEST_F(CommerceHeuristicsDataTest, TestGetHintHeuristicsJSONForDomain) { + auto& data = commerce_heuristics::CommerceHeuristicsData::GetInstance(); + std::string hint_heuristics_string = R"###( + { + "foo.com":{ + "merchant_name":"Foo" + }, + "bar.com":{} + } + )###"; + std::string foo_expected = R"###( + { + "foo.com":{ + "merchant_name":"Foo" + } + } + )###"; + foo_expected = base::CollapseWhitespaceASCII(foo_expected, true); + + ASSERT_TRUE( + data.PopulateDataFromComponent(hint_heuristics_string, "{}", "", "")); + + auto foo_heuristics = + commerce_heuristics::CommerceHeuristicsData::GetInstance() + .GetHintHeuristicsJSONForDomain("foo.com"); + EXPECT_TRUE(foo_heuristics.has_value()); + EXPECT_EQ(*foo_heuristics, foo_expected); + auto bar_heuristics = + commerce_heuristics::CommerceHeuristicsData::GetInstance() + .GetHintHeuristicsJSONForDomain("bar.com"); + EXPECT_FALSE(bar_heuristics.has_value()); +} + +TEST_F(CommerceHeuristicsDataTest, TestGetGlobalHeuristicsJSON) { + auto& data = commerce_heuristics::CommerceHeuristicsData::GetInstance(); + std::string global_heuristics_string = "{\"cart_pattern\" : \"foo\"}"; + + ASSERT_TRUE( + data.PopulateDataFromComponent("{}", global_heuristics_string, "", "")); + + auto global_heuristics_optional = + commerce_heuristics::CommerceHeuristicsData::GetInstance() + .GetGlobalHeuristicsJSON(); + EXPECT_TRUE(global_heuristics_optional.has_value()); + EXPECT_EQ(*global_heuristics_optional, global_heuristics_string); +} } // namespace commerce_heuristics
diff --git a/components/infobars/android/confirm_infobar.cc b/components/infobars/android/confirm_infobar.cc index 578c355..a0f154dd 100644 --- a/components/infobars/android/confirm_infobar.cc +++ b/components/infobars/android/confirm_infobar.cc
@@ -52,7 +52,8 @@ ScopedJavaLocalRef<jobject> java_bitmap; if (delegate->GetIconId() == infobars::InfoBarDelegate::kNoIconID && !delegate->GetIcon().IsEmpty()) { - java_bitmap = gfx::ConvertToJavaBitmap(*delegate->GetIcon().ToSkBitmap()); + java_bitmap = gfx::ConvertToJavaBitmap( + *delegate->GetIcon().Rasterize(nullptr).bitmap()); } return Java_ConfirmInfoBar_create(
diff --git a/components/infobars/core/BUILD.gn b/components/infobars/core/BUILD.gn index 8882f9c1..4447d21 100644 --- a/components/infobars/core/BUILD.gn +++ b/components/infobars/core/BUILD.gn
@@ -28,10 +28,10 @@ public_deps = [ "//base", "//skia", + "//ui/base", ] deps = [ - "//ui/base", "//ui/gfx", "//ui/gfx/animation", "//ui/strings",
diff --git a/components/infobars/core/infobar_delegate.cc b/components/infobars/core/infobar_delegate.cc index 80a1d73..e3f33ad9 100644 --- a/components/infobars/core/infobar_delegate.cc +++ b/components/infobars/core/infobar_delegate.cc
@@ -36,20 +36,19 @@ return empty_icon; } -gfx::Image InfoBarDelegate::GetIcon() const { +ui::ImageModel InfoBarDelegate::GetIcon() const { #if !BUILDFLAG(IS_IOS) && !BUILDFLAG(IS_ANDROID) const gfx::VectorIcon& vector_icon = GetVectorIcon(); - if (!vector_icon.is_empty()) { - return gfx::Image( - gfx::CreateVectorIcon(vector_icon, 20, gfx::kGoogleBlue500)); - } + if (!vector_icon.is_empty()) + return ui::ImageModel::FromVectorIcon(vector_icon, ui::kColorAccent, 20); #endif int icon_id = GetIconId(); return icon_id == kNoIconID - ? gfx::Image() - : ui::ResourceBundle::GetSharedInstance().GetNativeImageNamed( - icon_id); + ? ui::ImageModel() + : ui::ImageModel::FromImage( + ui::ResourceBundle::GetSharedInstance().GetNativeImageNamed( + icon_id)); } std::u16string InfoBarDelegate::GetLinkText() const {
diff --git a/components/infobars/core/infobar_delegate.h b/components/infobars/core/infobar_delegate.h index 7c1f945..75c3fc5f 100644 --- a/components/infobars/core/infobar_delegate.h +++ b/components/infobars/core/infobar_delegate.h
@@ -9,6 +9,7 @@ #include "base/memory/raw_ptr.h" #include "build/build_config.h" +#include "ui/base/models/image_model.h" #include "ui/base/window_open_disposition.h" #include "url/gurl.h" @@ -229,7 +230,7 @@ // Most subclasses should not override this; override GetIconId() instead // unless the infobar needs to show an image from somewhere other than the // resource bundle as its icon. - virtual gfx::Image GetIcon() const; + virtual ui::ImageModel GetIcon() const; // Returns the text of the link to be displayed, if any. Otherwise returns // an empty string.
diff --git a/components/omnibox/browser/actions/omnibox_action.cc b/components/omnibox/browser/actions/omnibox_action.cc index 20e31b9..bd78a6b8a 100644 --- a/components/omnibox/browser/actions/omnibox_action.cc +++ b/components/omnibox/browser/actions/omnibox_action.cc
@@ -89,10 +89,6 @@ } #endif -SkColor OmniboxAction::GetVectorIconColor() const { - return SK_ColorTRANSPARENT; -} - size_t OmniboxAction::EstimateMemoryUsage() const { size_t total = 0; total += base::trace_event::EstimateMemoryUsage(url_);
diff --git a/components/omnibox/browser/actions/omnibox_action.h b/components/omnibox/browser/actions/omnibox_action.h index 7179610..6f0ad77 100644 --- a/components/omnibox/browser/actions/omnibox_action.h +++ b/components/omnibox/browser/actions/omnibox_action.h
@@ -148,10 +148,6 @@ virtual const gfx::VectorIcon& GetVectorIcon() const; #endif - // Returns SK_ColorTRANSPARENT by default to indicate usage of normal theme - // color for suggestion row buttons; or override to force icon color. - virtual SkColor GetVectorIconColor() const; - // Estimates RAM usage in bytes for this Action. virtual size_t EstimateMemoryUsage() const;
diff --git a/components/optimization_guide/core/optimization_guide_enums.h b/components/optimization_guide/core/optimization_guide_enums.h index a7e817c..7eedee2 100644 --- a/components/optimization_guide/core/optimization_guide_enums.h +++ b/components/optimization_guide/core/optimization_guide_enums.h
@@ -133,6 +133,46 @@ kMaxValue = kSpecificVisitForUrlNotFound, }; +// Different events of the prediction model delivery lifecycle for an +// OptimizationTarget. +// Keep in sync with OptimizationGuideModelDeliveryEvent in enums.xml. +enum class ModelDeliveryEvent { + kUnknown = 0, + + // The model was delivered from immediately or after a + // successful download. + kModelDeliveredAtRegistration = 1, + kModelDelivered = 2, + + // GetModelsRequest was sent to the optimization guide server. + kGetModelsRequest = 3, + + // Model was requested to be downloaded using download service. + kDownloadServiceRequest = 4, + + // Download service started the model download. + kModelDownloadStarted = 5, + + // Model got downloaded from the download service. + kModelDownloaded = 6, + + // Download service was unavailable. + kDownloadServiceUnavailable = 7, + + // GetModelsResponse failed. + kGetModelsResponseFailure = 8, + + // Download URL received from model metadata is invalid + kDownloadURLInvalid = 9, + + // Model download failed due to download service or verifying the downloaded + // model. + kModelDownloadFailure = 10, + + // Add new values above this line. + kMaxValue = kModelDownloadFailure, +}; + } // namespace optimization_guide #endif // COMPONENTS_OPTIMIZATION_GUIDE_CORE_OPTIMIZATION_GUIDE_ENUMS_H_
diff --git a/components/optimization_guide/core/prediction_manager.cc b/components/optimization_guide/core/prediction_manager.cc index f50b03a..fc190d56 100644 --- a/components/optimization_guide/core/prediction_manager.cc +++ b/components/optimization_guide/core/prediction_manager.cc
@@ -135,6 +135,16 @@ model_info.version()); } +void RecordLifecycleState( + optimization_guide::proto::OptimizationTarget optimization_target, + optimization_guide::ModelDeliveryEvent event) { + base::UmaHistogramEnumeration( + "OptimizationGuide.PredictionManager.ModelDeliveryEvents." + + optimization_guide::GetStringNameForOptimizationTarget( + optimization_target), + event); +} + // Returns whether models should be fetched from the // remote Optimization Guide Service. bool ShouldFetchModels(bool off_the_record, PrefService* pref_service) { @@ -278,13 +288,15 @@ << (*model_it->second).GetModelFilePath().AsUTF8Unsafe() << "\nHas metadata: " << (model_metadata ? "True" : "False"); } + RecordLifecycleState(optimization_target, + ModelDeliveryEvent::kModelDeliveredAtRegistration); } DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); if (registered_optimization_targets_and_metadata_.contains( - optimization_target)) + optimization_target)) { return; - + } DCHECK(!model_metadata || IsModelMetadataTypeOnServerAllowlist(*model_metadata)); @@ -381,6 +393,11 @@ "DownloadServiceAvailabilityBlockedFetch", !download_service_available); if (!download_service_available) { + for (const auto& optimization_target_and_metadata : + registered_optimization_targets_and_metadata_) { + RecordLifecycleState(optimization_target_and_metadata.first, + ModelDeliveryEvent::kDownloadServiceUnavailable); + } // We cannot download any models from the server, so don't refresh them. return; } @@ -434,6 +451,8 @@ << "Fetching models for Optimization Target " << model_info.optimization_target(); } + RecordLifecycleState(optimization_target_and_metadata.first, + ModelDeliveryEvent::kGetModelsRequest); } bool fetch_initiated = @@ -441,7 +460,7 @@ models_info, active_field_trials, proto::CONTEXT_BATCH_UPDATE_MODELS, application_locale_, base::BindOnce(&PredictionManager::OnModelsFetched, - ui_weak_ptr_factory_.GetWeakPtr())); + ui_weak_ptr_factory_.GetWeakPtr(), models_info)); if (fetch_initiated) SetLastModelFetchAttemptTime(clock_->Now()); @@ -452,12 +471,17 @@ } void PredictionManager::OnModelsFetched( + const std::vector<proto::ModelInfo> models_request_info, absl::optional<std::unique_ptr<proto::GetModelsResponse>> get_models_response_data) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); - if (!get_models_response_data) + if (!get_models_response_data) { + for (const auto& model_info : models_request_info) { + RecordLifecycleState(model_info.optimization_target(), + ModelDeliveryEvent::kGetModelsResponseFailure); + } return; - + } SetLastModelFetchSuccessTime(clock_->Now()); if ((*get_models_response_data)->models_size() > 0) { @@ -491,6 +515,10 @@ prediction_model_download_manager_->StartDownload( download_url, model.model_info().optimization_target()); } + RecordLifecycleState(model.model_info().optimization_target(), + download_url.is_valid() + ? ModelDeliveryEvent::kDownloadServiceRequest + : ModelDeliveryEvent::kDownloadURLInvalid); base::UmaHistogramBoolean( "OptimizationGuide.PredictionManager.IsDownloadUrlValid." + GetStringNameForOptimizationTarget( @@ -548,6 +576,8 @@ model.model_info().has_optimization_target()); RecordModelUpdateVersion(model.model_info()); + RecordLifecycleState(model.model_info().optimization_target(), + ModelDeliveryEvent::kModelDownloaded); if (optimization_guide_logger_->ShouldEnableDebugLogs()) { OPTIMIZATION_GUIDE_LOGGER(optimization_guide_logger_) << "Model Files Downloaded target: " @@ -574,14 +604,27 @@ } } +void PredictionManager::OnModelDownloadStarted( + proto::OptimizationTarget optimization_target) { + RecordLifecycleState(optimization_target, + ModelDeliveryEvent::kModelDownloadStarted); +} + +void PredictionManager::OnModelDownloadFailed( + proto::OptimizationTarget optimization_target) { + RecordLifecycleState(optimization_target, + ModelDeliveryEvent::kModelDownloadFailure); +} + void PredictionManager::NotifyObserversOfNewModel( proto::OptimizationTarget optimization_target, - const ModelInfo& model_info) const { + const ModelInfo& model_info) { auto observers_it = registered_observers_for_optimization_targets_.find(optimization_target); if (observers_it == registered_observers_for_optimization_targets_.end()) return; - + RecordLifecycleState(optimization_target, + ModelDeliveryEvent::kModelDelivered); for (auto& observer : observers_it->second) { observer.OnModelUpdated(optimization_target, model_info); if (optimization_guide_logger_->ShouldEnableDebugLogs()) {
diff --git a/components/optimization_guide/core/prediction_manager.h b/components/optimization_guide/core/prediction_manager.h index 9247fa6..cd702674 100644 --- a/components/optimization_guide/core/prediction_manager.h +++ b/components/optimization_guide/core/prediction_manager.h
@@ -126,6 +126,10 @@ // PredictionModelDownloadObserver: void OnModelReady(const proto::PredictionModel& model) override; + void OnModelDownloadStarted( + proto::OptimizationTarget optimization_target) override; + void OnModelDownloadFailed( + proto::OptimizationTarget optimization_target) override; protected: // Process |prediction_models| to be stored in the in memory optimization @@ -153,7 +157,8 @@ // the response and stores them for use. The metadata entry containing the // time that updates should be fetched from the remote Optimization Guide // Service is updated, even when the response is empty. - void OnModelsFetched(absl::optional<std::unique_ptr<proto::GetModelsResponse>> + void OnModelsFetched(const std::vector<proto::ModelInfo> models_request_info, + absl::optional<std::unique_ptr<proto::GetModelsResponse>> get_models_response_data); // Callback run after the model and host model features store is fully @@ -224,7 +229,7 @@ // Notifies observers of |optimization_target| that the model has been // updated. void NotifyObserversOfNewModel(proto::OptimizationTarget optimization_target, - const ModelInfo& model_info) const; + const ModelInfo& model_info); // A map of optimization target to the model file containing the model for the // target.
diff --git a/components/optimization_guide/core/prediction_manager_unittest.cc b/components/optimization_guide/core/prediction_manager_unittest.cc index 441bce2..e4e87ed 100644 --- a/components/optimization_guide/core/prediction_manager_unittest.cc +++ b/components/optimization_guide/core/prediction_manager_unittest.cc
@@ -929,13 +929,16 @@ prediction_manager()->AddObserverForOptimizationTargetModel( proto::OPTIMIZATION_TARGET_PAINFUL_PAGE_LOAD, absl::nullopt, &observer); - SetStoreInitialized(); + SetStoreInitialized(/*load_models=*/true, /*have_models_in_store=*/false); EXPECT_FALSE(prediction_model_fetcher()->models_fetched()); histogram_tester.ExpectUniqueSample( "OptimizationGuide.PredictionManager." "DownloadServiceAvailabilityBlockedFetch", true, 1); + histogram_tester.ExpectUniqueSample( + "OptimizationGuide.PredictionManager.ModelDeliveryEvents.PainfulPageLoad", + ModelDeliveryEvent::kDownloadServiceUnavailable, 1); } TEST_F(PredictionManagerTest, UpdateModelWithDownloadUrl) { @@ -999,10 +1002,21 @@ prediction_manager()->AddObserverForOptimizationTargetModel( proto::OPTIMIZATION_TARGET_PAINFUL_PAGE_LOAD, absl::nullopt, &observer); + RunUntilIdle(); + histogram_tester.ExpectUniqueSample( "OptimizationGuide.PredictionManager.ModelAvailableAtRegistration." "PainfulPageLoad", true, 1); + histogram_tester.ExpectTotalCount( + "OptimizationGuide.PredictionManager.ModelDeliveryEvents.PainfulPageLoad", + 2); + histogram_tester.ExpectBucketCount( + "OptimizationGuide.PredictionManager.ModelDeliveryEvents.PainfulPageLoad", + ModelDeliveryEvent::kModelDownloaded, 1); + histogram_tester.ExpectBucketCount( + "OptimizationGuide.PredictionManager.ModelDeliveryEvents.PainfulPageLoad", + ModelDeliveryEvent::kModelDelivered, 1); } TEST_F(PredictionManagerTest,
diff --git a/components/optimization_guide/core/prediction_model_download_manager.cc b/components/optimization_guide/core/prediction_model_download_manager.cc index f351ff2..4b44271 100644 --- a/components/optimization_guide/core/prediction_model_download_manager.cc +++ b/components/optimization_guide/core/prediction_model_download_manager.cc
@@ -96,6 +96,9 @@ } // namespace +const char kPredictionModelOptimizationTargetCustomDataKey[] = + "PredictionModelOptimizationTargetCustomDataKey"; + PredictionModelDownloadManager::PredictionModelDownloadManager( download::BackgroundDownloadService* download_service, const base::FilePath& models_dir_path, @@ -115,6 +118,8 @@ download_params.client = download::DownloadClient::OPTIMIZATION_GUIDE_PREDICTION_MODELS; download_params.guid = base::GenerateGUID(); + download_params.custom_data[kPredictionModelOptimizationTargetCustomDataKey] = + proto::OptimizationTarget_Name(optimization_target); download_params.callback = base::BindRepeating(&PredictionModelDownloadManager::OnDownloadStarted, ui_weak_ptr_factory_.GetWeakPtr(), @@ -205,10 +210,13 @@ optimization_guide::GetStringNameForOptimizationTarget( optimization_target), base::TimeTicks::Now() - download_requested_time); + for (PredictionModelDownloadObserver& observer : observers_) + observer.OnModelDownloadStarted(optimization_target); } } void PredictionModelDownloadManager::OnDownloadSucceeded( + absl::optional<proto::OptimizationTarget> optimization_target, const std::string& guid, const base::FilePath& file_path) { pending_download_guids_.erase(guid); @@ -222,15 +230,19 @@ base::BindOnce(&PredictionModelDownloadManager::ProcessDownload, base::Unretained(this), file_path), base::BindOnce(&PredictionModelDownloadManager::StartUnzipping, - ui_weak_ptr_factory_.GetWeakPtr())); + ui_weak_ptr_factory_.GetWeakPtr(), optimization_target)); } -void PredictionModelDownloadManager::OnDownloadFailed(const std::string& guid) { +void PredictionModelDownloadManager::OnDownloadFailed( + absl::optional<proto::OptimizationTarget> optimization_target, + const std::string& guid) { pending_download_guids_.erase(guid); base::UmaHistogramBoolean( "OptimizationGuide.PredictionModelDownloadManager.DownloadSucceeded", false); + if (optimization_target) + NotifyModelDownloadFailed(*optimization_target); } absl::optional<std::pair<base::FilePath, base::FilePath>> @@ -289,12 +301,17 @@ } void PredictionModelDownloadManager::StartUnzipping( + absl::optional<proto::OptimizationTarget> optimization_target, const absl::optional<std::pair<base::FilePath, base::FilePath>>& unzip_paths) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); - if (!unzip_paths) + if (!unzip_paths) { + if (optimization_target) { + NotifyModelDownloadFailed(*optimization_target); + } return; + } #if BUILDFLAG(IS_IOS) auto unzipper = unzip::LaunchInProcessUnzipper(); @@ -304,11 +321,12 @@ unzip::Unzip( std::move(unzipper), unzip_paths->first, unzip_paths->second, base::BindOnce(&PredictionModelDownloadManager::OnDownloadUnzipped, - ui_weak_ptr_factory_.GetWeakPtr(), unzip_paths->first, - unzip_paths->second)); + ui_weak_ptr_factory_.GetWeakPtr(), optimization_target, + unzip_paths->first, unzip_paths->second)); } void PredictionModelDownloadManager::OnDownloadUnzipped( + absl::optional<proto::OptimizationTarget> optimization_target, const base::FilePath& original_file_path, const base::FilePath& unzipped_dir_path, bool success) { @@ -320,6 +338,9 @@ base::BindOnce(base::GetDeleteFileCallback(), original_file_path)); if (!success) { + if (optimization_target) { + NotifyModelDownloadFailed(*optimization_target); + } RecordPredictionModelDownloadStatus( PredictionModelDownloadStatus::kFailedCrxUnzip); return; @@ -330,7 +351,7 @@ base::BindOnce(&PredictionModelDownloadManager::ProcessUnzippedContents, models_dir_path_, unzipped_dir_path), base::BindOnce(&PredictionModelDownloadManager::NotifyModelReady, - ui_weak_ptr_factory_.GetWeakPtr())); + ui_weak_ptr_factory_.GetWeakPtr(), optimization_target)); } // static @@ -453,14 +474,26 @@ } void PredictionModelDownloadManager::NotifyModelReady( + absl::optional<proto::OptimizationTarget> optimization_target, const absl::optional<proto::PredictionModel>& model) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); - if (!model) + if (!model) { + if (optimization_target) { + NotifyModelDownloadFailed(*optimization_target); + } return; + } for (PredictionModelDownloadObserver& observer : observers_) observer.OnModelReady(*model); } +void PredictionModelDownloadManager::NotifyModelDownloadFailed( + proto::OptimizationTarget optimization_target) { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + for (PredictionModelDownloadObserver& observer : observers_) + observer.OnModelDownloadFailed(optimization_target); +} + } // namespace optimization_guide
diff --git a/components/optimization_guide/core/prediction_model_download_manager.h b/components/optimization_guide/core/prediction_model_download_manager.h index 30c27d2..20191e2 100644 --- a/components/optimization_guide/core/prediction_model_download_manager.h +++ b/components/optimization_guide/core/prediction_model_download_manager.h
@@ -30,6 +30,8 @@ class PredictionModel; } // namespace proto +extern const char kPredictionModelOptimizationTargetCustomDataKey[]; + // Manages the downloads of prediction models. // Keep in sync with OptimizationGuidePredictionModelDownloadState in enums.xml. class PredictionModelDownloadManager { @@ -98,12 +100,18 @@ const std::string& guid, download::DownloadParams::StartResult start_result); - // Invoked when the download as specified by |downloaded_guid| succeeded. - void OnDownloadSucceeded(const std::string& downloaded_guid, - const base::FilePath& file_path); + // Invoked when the download as specified by |downloaded_guid| succeeded for + // |optimization_target|. + void OnDownloadSucceeded( + absl::optional<proto::OptimizationTarget> optimization_target, + const std::string& downloaded_guid, + const base::FilePath& file_path); - // Invoked when the download as specified by |failed_download_guid| failed. - void OnDownloadFailed(const std::string& failed_download_guid); + // Invoked when the download as specified by |failed_download_guid| failed + // for |optimization_target|. + void OnDownloadFailed( + absl::optional<proto::OptimizationTarget> optimization_target, + const std::string& failed_download_guid); // Verifies the download came from a trusted source and process the downloaded // contents. Returns a pair of file paths of the form (src, dst) if @@ -116,14 +124,17 @@ // Starts unzipping the contents of |unzip_paths|, if present. |unzip_paths| // is a pair of the form (src, dst), if present. void StartUnzipping( + absl::optional<proto::OptimizationTarget> optimization_target, const absl::optional<std::pair<base::FilePath, base::FilePath>>& unzip_paths); // Invoked when the contents of |original_file_path| have been unzipped to // |unzipped_dir_path|. - void OnDownloadUnzipped(const base::FilePath& original_file_path, - const base::FilePath& unzipped_dir_path, - bool success); + void OnDownloadUnzipped( + absl::optional<proto::OptimizationTarget> optimization_target, + const base::FilePath& original_file_path, + const base::FilePath& unzipped_dir_path, + bool success); // Processes the contents in |unzipped_dir_path|. // @@ -133,10 +144,16 @@ const base::FilePath& model_dir_path, const base::FilePath& unzipped_dir_path); - // Notifies |observers_| that a model is ready. + // Notifies |observers_| that a model is ready for |optimization_target|. // // Must be invoked on the UI thread. - void NotifyModelReady(const absl::optional<proto::PredictionModel>& model); + void NotifyModelReady( + absl::optional<proto::OptimizationTarget> optimization_target, + const absl::optional<proto::PredictionModel>& model); + + // Notifies |observers_| that a model download failed for + // |optimization_target|. + void NotifyModelDownloadFailed(proto::OptimizationTarget optimization_target); // The set of GUIDs that are still pending download. std::set<std::string> pending_download_guids_;
diff --git a/components/optimization_guide/core/prediction_model_download_manager_unittest.cc b/components/optimization_guide/core/prediction_model_download_manager_unittest.cc index fbc71983..4866849 100644 --- a/components/optimization_guide/core/prediction_model_download_manager_unittest.cc +++ b/components/optimization_guide/core/prediction_model_download_manager_unittest.cc
@@ -45,6 +45,11 @@ last_ready_model_ = model; } + void OnModelDownloadStarted( + proto::OptimizationTarget optimization_target) override {} + void OnModelDownloadFailed( + proto::OptimizationTarget optimization_target) override {} + absl::optional<proto::PredictionModel> last_ready_model() const { return last_ready_model_; } @@ -118,11 +123,13 @@ PredictionModelDownloadFileStatus file_status) { WriteFileForStatus(file_status); download_manager()->OnDownloadSucceeded( - guid, GetFilePathForDownloadFileStatus(file_status)); + proto::OptimizationTarget::OPTIMIZATION_TARGET_PAINFUL_PAGE_LOAD, guid, + GetFilePathForDownloadFileStatus(file_status)); } void SetDownloadFailed(const std::string& guid) { - download_manager()->OnDownloadFailed(guid); + download_manager()->OnDownloadFailed( + proto::OptimizationTarget::OPTIMIZATION_TARGET_PAINFUL_PAGE_LOAD, guid); } void RunUntilIdle() { task_environment_.RunUntilIdle(); }
diff --git a/components/optimization_guide/core/prediction_model_download_observer.h b/components/optimization_guide/core/prediction_model_download_observer.h index d3a8172..fcfa41e9 100644 --- a/components/optimization_guide/core/prediction_model_download_observer.h +++ b/components/optimization_guide/core/prediction_model_download_observer.h
@@ -16,6 +16,14 @@ public: // Invoked when a model has been downloaded and verified. virtual void OnModelReady(const proto::PredictionModel& model) = 0; + + // Invoked when a model download started. + virtual void OnModelDownloadStarted( + proto::OptimizationTarget optimization_target) = 0; + + // Invoked when a model download, its extraction, verification, etc., failed. + virtual void OnModelDownloadFailed( + proto::OptimizationTarget optimization_target) = 0; }; } // namespace optimization_guide
diff --git a/components/translate/core/browser/BUILD.gn b/components/translate/core/browser/BUILD.gn index 4d074e5..f57e625 100644 --- a/components/translate/core/browser/BUILD.gn +++ b/components/translate/core/browser/BUILD.gn
@@ -83,7 +83,7 @@ "translate_infobar_delegate.cc", "translate_infobar_delegate.h", ] - deps += [ "//components/infobars/core" ] + public_deps += [ "//components/infobars/core" ] } }
diff --git a/components/url_pattern_index/README b/components/url_pattern_index/README deleted file mode 100644 index 755e9df3..0000000 --- a/components/url_pattern_index/README +++ /dev/null
@@ -1,12 +0,0 @@ -UrlPatternIndex component can be used to build an index over a set of URL rules, -and speed up matching network requests against these rules. - -A URL rule (see flat::UrlRule structure) describes a subset of network requests -that it targets. The essential element of the rule is its URL pattern, which is -a simplified regular expression (a string with wildcards). UrlPatternIndex is -mainly based on text fragments extracted from the patterns. - -The component uses FlatBuffers serialization library to represent the rules and -the index. The key advantage of the format is that it does not require -deserialization. Once built, the data structure can be stored on disk or -transferred, then copied/loaded/memory-mapped and used directly.
diff --git a/components/url_pattern_index/README.md b/components/url_pattern_index/README.md new file mode 100644 index 0000000..99c5878 --- /dev/null +++ b/components/url_pattern_index/README.md
@@ -0,0 +1,129 @@ +# `UrlPatternIndex` overview + +The UrlPatternIndex component can be used to build an index over a set of URL +rules, and speed up matching network requests against these rules. + +A URL rule (see `flat::UrlRule` structure) describes a subset of network +requests that it targets. The essential element of the rule is its URL pattern, +which is a simplified regular expression (a string with wildcards). +`UrlPatternIndex` is mainly based on text fragments extracted from the patterns. + +The component uses the [FlatBuffers serialization +library](https://google.github.io/flatbuffers/) to represent the rules and the +index. The key advantage of the format is that it does not require +deserialization. Once built, the data structure can be stored on disk or +transferred, then copied/loaded/memory-mapped and used directly. + +# Detailed design + +## `UrlPattern`s + +The component is built around an underlying concept of a URL pattern, defined in +the class `UrlPattern`. These patterns are largely inspired by patterns in +[EasyList / Adblock Plus filters](https://adblockplus.org/filter-cheatsheet) and +are documented in more detail in the [declarativeNetRequest +documentation](https://developer.chrome.com/docs/extensions/reference/declarativeNetRequest/#type-RuleCondition). + +## Building the index + +The underlying goal of the index format is to efficiently check to see if URLs +match any URL patterns contained in the index. The data structure used here is +an N-gram filter. An N-gram is a string consisting of N (up to 8) bytes. Currently, +the component has chosen to use [`kNGramSize = 5`](https://source.chromium.org/chromium/chromium/src/+/main:components/url_pattern_index/url_pattern_index.h;drc=e89a43f45befc5c8e549d765018524d2f81c8765;l=54). + +The strategy used in this component is to build a data structure which maps +`NGram -> vector<UrlRule>`, by finding all N-grams associated with a given URL +pattern, and picking one of them (the most distinctive one, see +`UrlPatternIndexBuilder::GetMostDistinctiveNGram`). The URL pattern is then +inserted into the map associated with that N-gram. + +Note: URL patterns have special characters like `*` and `^` which implement +special wildcard matching. N-grams are built only _between_ these special +characters. + +For example, the URL pattern `foo.com/*abc*` will generate the following 5-grams: +``` +foo.c +oo.co +o.com +.com/ +``` + +See +[url_pattern_index.fbs](https://source.chromium.org/chromium/chromium/src/+/main:components/url_pattern_index/flat/url_pattern_index.fbs) +for the raw underlying Flatbuffers format which builds the N-gram filter using a +[custom hash table](https://source.chromium.org/chromium/chromium/src/+/main:components/url_pattern_index/closed_hash_map.h) +implementation. + +## Querying the index + +Querying a built index is very similar to building the index in the first place. +Given a URL, it is broken into all of it's component N-grams, just like the URL +pattern was above. For example, the URL `https://foo.com/?q=abcdef` would +generate the following 5-grams: +``` +https +ttps: +tps:/ +ps:// +s://f +://fo +//foo +/foo. +foo.c +oo.co +o.com +.com/ +com/? +om/?q +m/?q= +/?q=a +?q=ab +q=abc +=abcd +abcde +bcdef +``` +With these N-grams extracted, we can just consider all of the `UrlPattern`s +which are associated with those N-grams. See `FindMatchInFlatUrlPatternIndex` +and `FindMatchAmongCandidates` for this logic. + +Many of these N-grams match ones that are also present in the `foo.com/*abc*` +example above , so we can be sure that that URL pattern will be considered +during pattern evaluation. + +## Fallback rules +You might be thinking "what about URLs whose length is less than N, or +patterns that generate no N-grams?" We will make sure to put all rules like that +into a special list called the `fallback_rules` which are applied to every URL +unconditionally. + +## Checking an individual `UrlPattern` + +This logic is encapsulated in `UrlPattern::MatchesUrl`. This essentially +consists of splitting a URL pattern by the `*` wildcard, and considering each +subpattern in between the `*`s. + +There is some complexity here to deal with: +- `^` separator matching, which matches any ASCII symbol except letters, digits, + and the following: `'_', '-', '.', '%'`. See + [fuzzy_pattern_matching](https://source.chromium.org/chromium/chromium/src/+/main:components/url_pattern_index/fuzzy_pattern_matching.h). +- `|` Left/right anchors, which specifies the beginning or end of a URL. +- `||` Domain anchors, which specifies the start of a (sub-)domain of a URL. + +After all this complexity is dealt with, the bulk of the subpattern logic is +simply `StringPiece::find / std::search`! This component used to use something +much more complicated ([Knuth-Morris-Pratt +algorithm](https://en.wikipedia.org/wiki/Knuth%E2%80%93Morris%E2%80%93Pratt_algorithm)), +but benchmarking on real URLs proved the simple solution was more optimal (and +removed the need for a preprocessing step at indexing time), so it was +[removed](https://codereview.chromium.org/2793993002/). + +For example, in checking if `https://foo.com/?q=abcdef` matches `foo.com/*abc*`, +the component will: + +- Split the URL pattern into two pieces: `foo.com/` and `abc`. +- Try to find `foo.com/` in `https://foo.com/?q=abcdef`, which is a match! +- Remove the matching prefix +- Try to find `abc` in `?q=abcdef`, which is a match! This is the last pattern, + so return true \ No newline at end of file
diff --git a/components/user_notes/browser/BUILD.gn b/components/user_notes/browser/BUILD.gn index 4dfb0a9..42c75d5 100644 --- a/components/user_notes/browser/BUILD.gn +++ b/components/user_notes/browser/BUILD.gn
@@ -33,6 +33,7 @@ ":browser", "//base/test:test_support", "//components/user_notes:features", + "//components/user_notes/model:unit_tests", "//content/public/browser", "//testing/gtest", ]
diff --git a/components/user_notes/browser/user_note_service_unittest.cc b/components/user_notes/browser/user_note_service_unittest.cc index fe233091..cac6cb48 100644 --- a/components/user_notes/browser/user_note_service_unittest.cc +++ b/components/user_notes/browser/user_note_service_unittest.cc
@@ -8,6 +8,7 @@ #include "base/test/scoped_feature_list.h" #include "components/user_notes/browser/user_notes_manager.h" +#include "components/user_notes/model/user_note_model_test_utils.h" #include "components/user_notes/user_notes_features.h" #include "content/public/browser/page.h" #include "testing/gtest/include/gtest/gtest.h" @@ -53,8 +54,12 @@ scoped_feature_list_.InitAndEnableFeature(user_notes::kUserNotes); note_service_ = std::make_unique<UserNoteService>( std::make_unique<UserNoteServiceDelegateMockImpl>()); - auto note1 = std::make_unique<UserNote>(kNoteId1); - auto note2 = std::make_unique<UserNote>(kNoteId2); + auto note1 = std::make_unique<UserNote>(kNoteId1, GetTestUserNoteMetadata(), + GetTestUserNoteBody(), + GetTestUserNotePageTarget()); + auto note2 = std::make_unique<UserNote>(kNoteId2, GetTestUserNoteMetadata(), + GetTestUserNoteBody(), + GetTestUserNotePageTarget()); UserNoteService::ModelMapEntry entry1(std::move(note1)); UserNoteService::ModelMapEntry entry2(std::move(note2)); note_service_->model_map_.emplace(kNoteId1, std::move(entry1));
diff --git a/components/user_notes/browser/user_notes_manager_unittest.cc b/components/user_notes/browser/user_notes_manager_unittest.cc index 260ae90..4701f26 100644 --- a/components/user_notes/browser/user_notes_manager_unittest.cc +++ b/components/user_notes/browser/user_notes_manager_unittest.cc
@@ -8,6 +8,7 @@ #include "base/test/scoped_feature_list.h" #include "components/user_notes/browser/user_note_service.h" +#include "components/user_notes/model/user_note_model_test_utils.h" #include "components/user_notes/user_notes_features.h" #include "content/public/browser/page.h" #include "testing/gtest/include/gtest/gtest.h" @@ -54,9 +55,15 @@ scoped_feature_list_.InitAndEnableFeature(user_notes::kUserNotes); note_service_ = std::make_unique<UserNoteService>( std::make_unique<UserNoteServiceDelegateMockImpl>()); - UserNoteService::ModelMapEntry entry1(std::make_unique<UserNote>(kNoteId1)); - UserNoteService::ModelMapEntry entry2(std::make_unique<UserNote>(kNoteId2)); - UserNoteService::ModelMapEntry entry3(std::make_unique<UserNote>(kNoteId3)); + UserNoteService::ModelMapEntry entry1(std::make_unique<UserNote>( + kNoteId1, GetTestUserNoteMetadata(), GetTestUserNoteBody(), + GetTestUserNotePageTarget())); + UserNoteService::ModelMapEntry entry2(std::make_unique<UserNote>( + kNoteId2, GetTestUserNoteMetadata(), GetTestUserNoteBody(), + GetTestUserNotePageTarget())); + UserNoteService::ModelMapEntry entry3(std::make_unique<UserNote>( + kNoteId3, GetTestUserNoteMetadata(), GetTestUserNoteBody(), + GetTestUserNotePageTarget())); note_service_->model_map_.emplace(kNoteId1, std::move(entry1)); note_service_->model_map_.emplace(kNoteId2, std::move(entry2)); note_service_->model_map_.emplace(kNoteId3, std::move(entry3));
diff --git a/components/user_notes/model/BUILD.gn b/components/user_notes/model/BUILD.gn index 9593d43..5a413f5 100644 --- a/components/user_notes/model/BUILD.gn +++ b/components/user_notes/model/BUILD.gn
@@ -6,9 +6,29 @@ sources = [ "user_note.cc", "user_note.h", + "user_note_body.cc", + "user_note_body.h", "user_note_metadata.cc", "user_note_metadata.h", + "user_note_target.cc", + "user_note_target.h", ] - deps = [ "//base" ] + deps = [ + "//base", + "//url", + ] +} + +source_set("unit_tests") { + testonly = true + sources = [ + "user_note_model_test_utils.cc", + "user_note_model_test_utils.h", + ] + + deps = [ + ":model", + "//base", + ] }
diff --git a/components/user_notes/model/user_note.cc b/components/user_notes/model/user_note.cc index 9c07dbdf..e542ba9 100644 --- a/components/user_notes/model/user_note.cc +++ b/components/user_notes/model/user_note.cc
@@ -6,7 +6,11 @@ namespace user_notes { -UserNote::UserNote(const std::string& guid) : guid_(guid) {} +UserNote::UserNote(const std::string& guid, + std::unique_ptr<UserNoteMetadata> metadata, + std::unique_ptr<UserNoteBody> body, + std::unique_ptr<UserNoteTarget> target) + : guid_(guid), metadata_(std::move(metadata)), target_(std::move(target)) {} UserNote::~UserNote() = default;
diff --git a/components/user_notes/model/user_note.h b/components/user_notes/model/user_note.h index 99a799a..667a747f 100644 --- a/components/user_notes/model/user_note.h +++ b/components/user_notes/model/user_note.h
@@ -9,13 +9,19 @@ #include "base/memory/safe_ref.h" #include "base/memory/weak_ptr.h" +#include "components/user_notes/model/user_note_body.h" +#include "components/user_notes/model/user_note_metadata.h" +#include "components/user_notes/model/user_note_target.h" namespace user_notes { // Model class for a note. class UserNote { public: - explicit UserNote(const std::string& guid); + explicit UserNote(const std::string& guid, + std::unique_ptr<UserNoteMetadata> metadata, + std::unique_ptr<UserNoteBody> body, + std::unique_ptr<UserNoteTarget> target); ~UserNote(); UserNote(const UserNote&) = delete; UserNote& operator=(const UserNote&) = delete; @@ -23,11 +29,18 @@ base::SafeRef<UserNote> GetSafeRef(); const std::string& guid() const { return guid_; } + const UserNoteMetadata& metadata() const { return *metadata_; } + const UserNoteBody& body() const { return *body_; } + const UserNoteTarget& target() const { return *target_; } private: // The unique (among the user's notes) ID for this note. std::string guid_; + std::unique_ptr<UserNoteMetadata> metadata_; + std::unique_ptr<UserNoteBody> body_; + std::unique_ptr<UserNoteTarget> target_; + base::WeakPtrFactory<UserNote> weak_ptr_factory_{this}; };
diff --git a/components/user_notes/model/user_note_body.cc b/components/user_notes/model/user_note_body.cc new file mode 100644 index 0000000..d0d8a5d3 --- /dev/null +++ b/components/user_notes/model/user_note_body.cc
@@ -0,0 +1,14 @@ +// Copyright 2022 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "components/user_notes/model/user_note_body.h" + +namespace user_notes { + +UserNoteBody::UserNoteBody(const std::string& plain_text_value) + : plain_text_value_(plain_text_value) {} + +UserNoteBody::~UserNoteBody() = default; + +} // namespace user_notes
diff --git a/components/user_notes/model/user_note_body.h b/components/user_notes/model/user_note_body.h new file mode 100644 index 0000000..b80acae --- /dev/null +++ b/components/user_notes/model/user_note_body.h
@@ -0,0 +1,36 @@ +// Copyright 2022 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef COMPONENTS_USER_NOTES_MODEL_USER_NOTE_BODY_H_ +#define COMPONENTS_USER_NOTES_MODEL_USER_NOTE_BODY_H_ + +#include <string> + +namespace user_notes { + +// Model class for a note body. +class UserNoteBody { + public: + enum BodyType { PLAIN_TEXT = 0, RICH_TEXT, IMAGE }; + + explicit UserNoteBody(const std::string& plain_text_value); + ~UserNoteBody(); + UserNoteBody(const UserNoteBody&) = delete; + UserNoteBody& operator=(const UserNoteBody&) = delete; + + BodyType type() const { return type_; } + + const std::string& plain_text_value() const { return plain_text_value_; } + + private: + // The type of body this note has. Currently only plain text is supported. + BodyType type_ = BodyType::PLAIN_TEXT; + + // The note body in plain text + std::string plain_text_value_; +}; + +} // namespace user_notes + +#endif // COMPONENTS_USER_NOTES_MODEL_USER_NOTE_BODY_H_
diff --git a/components/user_notes/model/user_note_metadata.cc b/components/user_notes/model/user_note_metadata.cc index fc1a60f..2697253 100644 --- a/components/user_notes/model/user_note_metadata.cc +++ b/components/user_notes/model/user_note_metadata.cc
@@ -6,7 +6,12 @@ namespace user_notes { -UserNoteMetadata::UserNoteMetadata() = default; +UserNoteMetadata::UserNoteMetadata(base::Time creation_date, + base::Time modification_date, + int min_note_version) + : creation_date_(creation_date), + modification_date_(modification_date), + min_note_version_(min_note_version) {} UserNoteMetadata::~UserNoteMetadata() = default;
diff --git a/components/user_notes/model/user_note_metadata.h b/components/user_notes/model/user_note_metadata.h index 5a4f7bf..0801c21a 100644 --- a/components/user_notes/model/user_note_metadata.h +++ b/components/user_notes/model/user_note_metadata.h
@@ -5,15 +5,33 @@ #ifndef COMPONENTS_USER_NOTES_MODEL_USER_NOTE_METADATA_H_ #define COMPONENTS_USER_NOTES_MODEL_USER_NOTE_METADATA_H_ +#include "base/time/time.h" + namespace user_notes { // Model class for a note. class UserNoteMetadata { public: - explicit UserNoteMetadata(); + explicit UserNoteMetadata(base::Time creation_date, + base::Time modification_date, + int min_note_version); ~UserNoteMetadata(); UserNoteMetadata(const UserNoteMetadata&) = delete; UserNoteMetadata& operator=(const UserNoteMetadata&) = delete; + + base::Time creation_date() const { return creation_date_; } + base::Time modification_date() const { return modification_date_; } + int min_note_version() const { return min_note_version_; } + + private: + // The date and time (stored in seconds UTC) when the note was created. + base::Time creation_date_; + + // The date and time (stored in seconds UTC) when the note was last modified. + base::Time modification_date_; + + // The minimum User Note version required to support this note. + int min_note_version_; }; } // namespace user_notes
diff --git a/components/user_notes/model/user_note_model_test_utils.cc b/components/user_notes/model/user_note_model_test_utils.cc new file mode 100644 index 0000000..61ed258 --- /dev/null +++ b/components/user_notes/model/user_note_model_test_utils.cc
@@ -0,0 +1,26 @@ +// Copyright 2022 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "components/user_notes/model/user_note_model_test_utils.h" + +#include "base/time/time.h" + +namespace user_notes { + +std::unique_ptr<UserNoteMetadata> GetTestUserNoteMetadata() { + base::Time now = base::Time::Now(); + int note_version = 1; + return std::make_unique<UserNoteMetadata>(now, now, note_version); +} + +std::unique_ptr<UserNoteBody> GetTestUserNoteBody() { + return std::make_unique<UserNoteBody>("test note"); +} + +std::unique_ptr<UserNoteTarget> GetTestUserNotePageTarget() { + return std::make_unique<UserNoteTarget>(UserNoteTarget::TargetType::PAGE, "", + GURL("www.exmaple.com"), ""); +} + +} // namespace user_notes
diff --git a/components/user_notes/model/user_note_model_test_utils.h b/components/user_notes/model/user_note_model_test_utils.h new file mode 100644 index 0000000..acef1b6 --- /dev/null +++ b/components/user_notes/model/user_note_model_test_utils.h
@@ -0,0 +1,23 @@ +// Copyright 2022 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef COMPONENTS_USER_NOTES_MODEL_USER_NOTE_MODEL_TEST_UTILS_H_ +#define COMPONENTS_USER_NOTES_MODEL_USER_NOTE_MODEL_TEST_UTILS_H_ + +#include "base/time/time.h" +#include "components/user_notes/model/user_note_body.h" +#include "components/user_notes/model/user_note_metadata.h" +#include "components/user_notes/model/user_note_target.h" + +namespace user_notes { + +extern std::unique_ptr<UserNoteMetadata> GetTestUserNoteMetadata(); + +extern std::unique_ptr<UserNoteBody> GetTestUserNoteBody(); + +extern std::unique_ptr<UserNoteTarget> GetTestUserNotePageTarget(); + +} // namespace user_notes + +#endif // COMPONENTS_USER_NOTES_MODEL_USER_NOTE_MODEL_TEST_UTILS_H_ \ No newline at end of file
diff --git a/components/user_notes/model/user_note_target.cc b/components/user_notes/model/user_note_target.cc new file mode 100644 index 0000000..1630d62b --- /dev/null +++ b/components/user_notes/model/user_note_target.cc
@@ -0,0 +1,20 @@ +// Copyright 2022 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "components/user_notes/model/user_note_target.h" + +namespace user_notes { + +UserNoteTarget::UserNoteTarget(TargetType type, + const std::string& original_text, + GURL target_page, + const std::string& selector) + : type_(type), + original_text_(original_text), + target_page_(target_page), + selector_(selector) {} + +UserNoteTarget::~UserNoteTarget() = default; + +} // namespace user_notes
diff --git a/components/user_notes/model/user_note_target.h b/components/user_notes/model/user_note_target.h new file mode 100644 index 0000000..670a5fa --- /dev/null +++ b/components/user_notes/model/user_note_target.h
@@ -0,0 +1,50 @@ +// Copyright 2022 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef COMPONENTS_USER_NOTES_MODEL_USER_NOTE_TARGET_H_ +#define COMPONENTS_USER_NOTES_MODEL_USER_NOTE_TARGET_H_ + +#include <string> + +#include "url/gurl.h" + +namespace user_notes { + +// Model class for a note target. +class UserNoteTarget { + public: + enum TargetType { PAGE = 0, PAGE_TEXT }; + + explicit UserNoteTarget(TargetType type, + const std::string& original_text, + GURL target_page, + const std::string& selector); + ~UserNoteTarget(); + UserNoteTarget(const UserNoteTarget&) = delete; + UserNoteTarget& operator=(const UserNoteTarget&) = delete; + + TargetType type() const { return type_; } + const std::string& original_text() const { return original_text_; } + const GURL& target_page() const { return target_page_; } + const std::string& selector() const { return selector_; } + + private: + // The type of target. Currently only page and page text is supported. + TargetType type_; + + // The original text to which the note was attached. Useful if the page + // changes. Empty for `TargetType::PAGE`. + std::string original_text_; + + // The URL of the page the note is attached to. + GURL target_page_; + + // The text fragment selector that identifies the `original_text_`. + // Empty for `TargetType::PAGE`. + std::string selector_; +}; + +} // namespace user_notes + +#endif // COMPONENTS_USER_NOTES_MODEL_USER_NOTE_TARGET_H_
diff --git a/components/viz/common/quads/render_pass_io.cc b/components/viz/common/quads/render_pass_io.cc index 929e2cfd..b8432acaf 100644 --- a/components/viz/common/quads/render_pass_io.cc +++ b/components/viz/common/quads/render_pass_io.cc
@@ -330,6 +330,28 @@ return true; } +base::Value MaskFilterInfoToDict(const gfx::MaskFilterInfo& mask_filter_info) { + base::Value dict(base::Value::Type::DICTIONARY); + dict.SetKey("rounded_corner_bounds", + RRectFToDict(mask_filter_info.rounded_corner_bounds())); + return dict; +} + +bool MaskFilterInfoFromDict(const base::Value& dict, gfx::MaskFilterInfo* out) { + DCHECK(out); + if (!dict.is_dict()) + return false; + const base::Value* rounded_corner_bounds = + dict.FindDictKey("rounded_corner_bounds"); + if (!rounded_corner_bounds) + return false; + gfx::RRectF t_rounded_corner_bounds; + if (!RRectFFromDict(*rounded_corner_bounds, &t_rounded_corner_bounds)) + return false; + *out = gfx::MaskFilterInfo(t_rounded_corner_bounds); + return true; +} + base::Value TransformToList(const gfx::Transform& transform) { base::Value list(base::Value::Type::LIST); float data[16]; @@ -1653,8 +1675,7 @@ dict.SetKey("quad_layer_rect", RectToDict(sqs.quad_layer_rect)); dict.SetKey("visible_quad_layer_rect", RectToDict(sqs.visible_quad_layer_rect)); - dict.SetKey("rounded_corner_bounds", - RRectFToDict(sqs.mask_filter_info.rounded_corner_bounds())); + dict.SetKey("mask_filter_info", MaskFilterInfoToDict(sqs.mask_filter_info)); if (sqs.clip_rect) { dict.SetKey("clip_rect", RectToDict(*sqs.clip_rect)); } @@ -1713,8 +1734,7 @@ const base::Value* quad_layer_rect = dict.FindDictKey("quad_layer_rect"); const base::Value* visible_quad_layer_rect = dict.FindDictKey("visible_quad_layer_rect"); - const base::Value* rounded_corner_bounds = - dict.FindDictKey("rounded_corner_bounds"); + const base::Value* mask_filter_info = dict.FindDictKey("mask_filter_info"); const base::Value* clip_rect = dict.FindDictKey("clip_rect"); absl::optional<bool> is_clipped = dict.FindBoolKey("is_clipped"); absl::optional<bool> are_contents_opaque = @@ -1729,19 +1749,19 @@ dict.FindDoubleKey("de_jelly_delta_y"); if (!quad_to_target_transform || !quad_layer_rect || - !visible_quad_layer_rect || !rounded_corner_bounds || - !are_contents_opaque || !opacity || !blend_mode || !sorting_context_id || + !visible_quad_layer_rect || !mask_filter_info || !are_contents_opaque || + !opacity || !blend_mode || !sorting_context_id || !is_fast_rounded_corner || !de_jelly_delta_y) { return false; } gfx::Transform t_quad_to_target_transform; gfx::Rect t_quad_layer_rect, t_visible_quad_layer_rect, t_clip_rect; - gfx::RRectF t_rounded_corner_bounds; + gfx::MaskFilterInfo t_mask_filter_info; if (!TransformFromList(*quad_to_target_transform, &t_quad_to_target_transform) || !RectFromDict(*quad_layer_rect, &t_quad_layer_rect) || !RectFromDict(*visible_quad_layer_rect, &t_visible_quad_layer_rect) || - !RRectFFromDict(*rounded_corner_bounds, &t_rounded_corner_bounds) || + !MaskFilterInfoFromDict(*mask_filter_info, &t_mask_filter_info) || (clip_rect && !RectFromDict(*clip_rect, &t_clip_rect))) { return false; } @@ -1761,9 +1781,8 @@ if (blend_mode_index < 0) return false; SkBlendMode t_blend_mode = static_cast<SkBlendMode>(blend_mode_index); - gfx::MaskFilterInfo mask_filter_info(t_rounded_corner_bounds); sqs->SetAll(t_quad_to_target_transform, t_quad_layer_rect, - t_visible_quad_layer_rect, mask_filter_info, clip_rect_opt, + t_visible_quad_layer_rect, t_mask_filter_info, clip_rect_opt, are_contents_opaque.value(), static_cast<float>(opacity.value()), t_blend_mode, sorting_context_id.value()); sqs->is_fast_rounded_corner = is_fast_rounded_corner.value();
diff --git a/components/viz/common/quads/shared_quad_state.h b/components/viz/common/quads/shared_quad_state.h index 1771abc7..81290b1 100644 --- a/components/viz/common/quads/shared_quad_state.h +++ b/components/viz/common/quads/shared_quad_state.h
@@ -55,7 +55,8 @@ // of the quad rects. gfx::Rect visible_quad_layer_rect; // This mask filter's coordinates is in the target content space. It defines - // the corner radius to clip the quads with. + // the corner radius to clip the quads with, and the gradient mask applied to + // the clip rect given by the Rect part of |roudned_corner_bounds|. gfx::MaskFilterInfo mask_filter_info; // This rect lives in the target content space. absl::optional<gfx::Rect> clip_rect;
diff --git a/components/viz/service/display/overlay_unittest.cc b/components/viz/service/display/overlay_unittest.cc index 5de72ac..72e19f32 100644 --- a/components/viz/service/display/overlay_unittest.cc +++ b/components/viz/service/display/overlay_unittest.cc
@@ -2864,7 +2864,8 @@ sqs->overlay_damage_index = 0; surface_damage_rect_list.emplace_back(damage_rect_); sqs->mask_filter_info = - gfx::MaskFilterInfo(gfx::RectF(kOverlayRect), gfx::RoundedCornersF(1.f)); + gfx::MaskFilterInfo(gfx::RectF(kOverlayRect), gfx::RoundedCornersF(1.f), + gfx::LinearGradient::GetEmpty()); CreateFullscreenCandidateQuad(resource_provider_.get(), child_resource_provider_.get(), child_provider_.get(), sqs, pass.get()); @@ -3104,8 +3105,9 @@ sqs->overlay_damage_index = 0; surface_damage_rect_list.emplace_back(damage_rect_); if (kHasMaskFilter[i]) { - sqs->mask_filter_info = gfx::MaskFilterInfo(gfx::RectF(kOverlayRect), - gfx::RoundedCornersF(1.f)); + sqs->mask_filter_info = gfx::MaskFilterInfo( + gfx::RectF(kOverlayRect), gfx::RoundedCornersF(1.f), + gfx::LinearGradient::GetEmpty()); } CreateCandidateQuadAt(resource_provider_.get(), child_resource_provider_.get(), child_provider_.get(), @@ -3890,7 +3892,8 @@ sqs->overlay_damage_index = 0; surface_damage_rect_list.emplace_back(damage_rect_); sqs->mask_filter_info = - gfx::MaskFilterInfo(gfx::RectF(kOverlayRect), gfx::RoundedCornersF(1.f)); + gfx::MaskFilterInfo(gfx::RectF(kOverlayRect), gfx::RoundedCornersF(1.f), + gfx::LinearGradient::GetEmpty()); CreateVideoHoleDrawQuadAt(sqs, pass.get(), kOverlayRect); OverlayCandidateList candidate_list; @@ -5068,8 +5071,9 @@ // Create a candidate in the bottom left that won't be promoted. auto* sqs = pass->CreateAndAppendSharedQuadState(); if (mask_filter) { - sqs->mask_filter_info = gfx::MaskFilterInfo(gfx::RectF(kOverlayRect), - gfx::RoundedCornersF(1.f)); + sqs->mask_filter_info = gfx::MaskFilterInfo( + gfx::RectF(kOverlayRect), gfx::RoundedCornersF(1.f), + gfx::LinearGradient::GetEmpty()); } sqs->overlay_damage_index = surface_damage_rect_list.size(); surface_damage_rect_list.emplace_back(kBottomLeft); @@ -5082,8 +5086,9 @@ // Create an underlay candidate in the top right. auto* sqs = pass->CreateAndAppendSharedQuadState(); if (mask_filter) { - sqs->mask_filter_info = gfx::MaskFilterInfo(gfx::RectF(kOverlayRect), - gfx::RoundedCornersF(1.f)); + sqs->mask_filter_info = gfx::MaskFilterInfo( + gfx::RectF(kOverlayRect), gfx::RoundedCornersF(1.f), + gfx::LinearGradient::GetEmpty()); } sqs->overlay_damage_index = surface_damage_rect_list.size(); surface_damage_rect_list.emplace_back(kTopRight);
diff --git a/components/viz/service/display/renderer_pixeltest.cc b/components/viz/service/display/renderer_pixeltest.cc index 4ccc732..1016312 100644 --- a/components/viz/service/display/renderer_pixeltest.cc +++ b/components/viz/service/display/renderer_pixeltest.cc
@@ -55,7 +55,7 @@ #include "third_party/skia/include/core/SkSurface.h" #include "third_party/skia/include/effects/SkColorMatrixFilter.h" #include "ui/gfx/color_transform.h" -#include "ui/gfx/geometry/rect_conversions.h" +#include "ui/gfx/geometry/mask_filter_info.h" #include "ui/gfx/test/icc_profiles.h" using gpu::gles2::GLES2Interface; @@ -150,12 +150,11 @@ gfx::Transform quad_to_target_transform, const gfx::Rect& rect, AggregatedRenderPass* render_pass, - const gfx::RRectF& rrect) { + const gfx::MaskFilterInfo& mask_filter_info) { const gfx::Rect layer_rect = rect; const gfx::Rect visible_layer_rect = rect; const bool are_contents_opaque = false; const float opacity = 1.0f; - const gfx::MaskFilterInfo mask_filter_info(rrect); const SkBlendMode blend_mode = SkBlendMode::kSrcOver; int sorting_context_id = 0; SharedQuadState* shared_state = render_pass->CreateAndAppendSharedQuadState(); @@ -868,8 +867,9 @@ front_quad_to_target_transform.Translate(50, 50); front_quad_to_target_transform.Scale(0.5f + 1.0f / (rect.width() * 2.0f), 0.5f + 1.0f / (rect.height() * 2.0f)); - SharedQuadState* front_shared_state = CreateTestSharedQuadState( - front_quad_to_target_transform, rect, pass, gfx::RRectF()); + SharedQuadState* front_shared_state = + CreateTestSharedQuadState(front_quad_to_target_transform, rect, pass, + gfx::MaskFilterInfo()); auto* front = pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); front->SetAll(front_shared_state, rect, rect, needs_blending, front_color, @@ -878,8 +878,9 @@ gfx::Transform back_quad_to_target_transform; back_quad_to_target_transform.Translate(25.5f, 25.5f); back_quad_to_target_transform.Scale(0.5f, 0.5f); - SharedQuadState* back_shared_state = CreateTestSharedQuadState( - back_quad_to_target_transform, rect, pass, gfx::RRectF()); + SharedQuadState* back_shared_state = + CreateTestSharedQuadState(back_quad_to_target_transform, rect, pass, + gfx::MaskFilterInfo()); auto* back = pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); back->SetAll(back_shared_state, rect, rect, needs_blending, back_color, @@ -932,7 +933,7 @@ auto pass = CreateTestRootRenderPass(id, rect); SharedQuadState* shared_state = CreateTestSharedQuadState( - gfx::Transform(), rect, pass.get(), gfx::RRectF()); + gfx::Transform(), rect, pass.get(), gfx::MaskFilterInfo()); auto* color_quad = pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); color_quad->SetNew(shared_state, rect, rect, SK_ColorGREEN, false); @@ -953,8 +954,9 @@ auto child_pass = CreateTestRenderPass(child_id, small_rect, gfx::Transform()); - SharedQuadState* child_shared_state = CreateTestSharedQuadState( - gfx::Transform(), small_rect, child_pass.get(), gfx::RRectF()); + SharedQuadState* child_shared_state = + CreateTestSharedQuadState(gfx::Transform(), small_rect, child_pass.get(), + gfx::MaskFilterInfo()); auto* color_quad = child_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); color_quad->SetNew(child_shared_state, rect, rect, SK_ColorGREEN, false); @@ -962,8 +964,9 @@ AggregatedRenderPassId root_id{1}; auto root_pass = CreateTestRenderPass(root_id, rect, gfx::Transform()); - SharedQuadState* root_shared_state = CreateTestSharedQuadState( - gfx::Transform(), rect, root_pass.get(), gfx::RRectF()); + SharedQuadState* root_shared_state = + CreateTestSharedQuadState(gfx::Transform(), rect, root_pass.get(), + gfx::MaskFilterInfo()); CreateTestRenderPassDrawQuad(root_shared_state, small_rect, child_id, root_pass.get()); @@ -987,7 +990,7 @@ auto pass = CreateTestRootRenderPass(id, rect); SharedQuadState* shared_state = CreateTestSharedQuadState( - gfx::Transform(), rect, pass.get(), gfx::RRectF()); + gfx::Transform(), rect, pass.get(), gfx::MaskFilterInfo()); CreateTestTextureDrawQuad( !is_software_renderer(), gfx::Rect(this->device_viewport_size_), @@ -1016,7 +1019,7 @@ auto pass = CreateTestRootRenderPass(id, rect); SharedQuadState* texture_quad_state = CreateTestSharedQuadState( - gfx::Transform(), rect, pass.get(), gfx::RRectF()); + gfx::Transform(), rect, pass.get(), gfx::MaskFilterInfo()); texture_quad_state->opacity = 0.8f; CreateTestTextureDrawQuad( @@ -1029,7 +1032,7 @@ this->child_context_provider_, pass.get()); SharedQuadState* color_quad_state = CreateTestSharedQuadState( - gfx::Transform(), rect, pass.get(), gfx::RRectF()); + gfx::Transform(), rect, pass.get(), gfx::MaskFilterInfo()); auto* color_quad = pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); color_quad->SetNew(color_quad_state, rect, rect, SK_ColorWHITE, false); @@ -1048,7 +1051,7 @@ auto pass = CreateTestRootRenderPass(id, rect); SharedQuadState* texture_quad_state = CreateTestSharedQuadState( - gfx::Transform(), rect, pass.get(), gfx::RRectF()); + gfx::Transform(), rect, pass.get(), gfx::MaskFilterInfo()); CreateTestTwoColoredTextureDrawQuad( !is_software_renderer(), gfx::Rect(this->device_viewport_size_), @@ -1063,7 +1066,7 @@ this->child_context_provider_, pass.get()); pass->quad_list.front()->visible_rect.Inset(30, 50, 0, 0); SharedQuadState* color_quad_state = CreateTestSharedQuadState( - gfx::Transform(), rect, pass.get(), gfx::RRectF()); + gfx::Transform(), rect, pass.get(), gfx::MaskFilterInfo()); auto* color_quad = pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); color_quad->SetNew(color_quad_state, rect, rect, SK_ColorWHITE, false); @@ -1085,7 +1088,7 @@ auto pass = CreateTestRootRenderPass(id, rect); SharedQuadState* texture_quad_state = CreateTestSharedQuadState( - gfx::Transform(), rect, pass.get(), gfx::RRectF()); + gfx::Transform(), rect, pass.get(), gfx::MaskFilterInfo()); CreateTestTwoColoredTextureDrawQuad( !is_software_renderer(), gfx::Rect(this->device_viewport_size_), @@ -1106,7 +1109,7 @@ quad->uv_bottom_right.SetPoint(.4, .7); quad->nearest_neighbor = true; // To avoid bilinear filter differences. SharedQuadState* color_quad_state = CreateTestSharedQuadState( - gfx::Transform(), rect, pass.get(), gfx::RRectF()); + gfx::Transform(), rect, pass.get(), gfx::MaskFilterInfo()); auto* color_quad = pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); color_quad->SetNew(color_quad_state, rect, rect, SK_ColorWHITE, false); @@ -1126,7 +1129,7 @@ auto pass = CreateTestRootRenderPass(id, rect); SharedQuadState* texture_quad_state = CreateTestSharedQuadState( - gfx::Transform(), rect, pass.get(), gfx::RRectF()); + gfx::Transform(), rect, pass.get(), gfx::MaskFilterInfo()); CreateTestTwoColoredTextureDrawQuad( !is_software_renderer(), gfx::Rect(this->device_viewport_size_), @@ -1141,7 +1144,7 @@ this->child_context_provider_, pass.get()); pass->quad_list.front()->visible_rect.Inset(0, 0, 40, 60); SharedQuadState* color_quad_state = CreateTestSharedQuadState( - gfx::Transform(), rect, pass.get(), gfx::RRectF()); + gfx::Transform(), rect, pass.get(), gfx::MaskFilterInfo()); auto* color_quad = pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); color_quad->SetNew(color_quad_state, rect, rect, SK_ColorWHITE, false); @@ -1161,7 +1164,7 @@ pass->has_transparent_background = false; SharedQuadState* shared_state = CreateTestSharedQuadState( - gfx::Transform(), rect, pass.get(), gfx::RRectF()); + gfx::Transform(), rect, pass.get(), gfx::MaskFilterInfo()); shared_state->opacity = 1 - 16.0f / 255; shared_state->blend_mode = SkBlendMode::kDstOut; @@ -1169,7 +1172,7 @@ color_quad->SetNew(shared_state, rect, rect, SK_ColorRED, false); SharedQuadState* shared_state_background = CreateTestSharedQuadState( - gfx::Transform(), rect, pass.get(), gfx::RRectF()); + gfx::Transform(), rect, pass.get(), gfx::MaskFilterInfo()); SkColor background_color = SkColorSetRGB(0xff, 0xff * 14 / 16, 0xff); auto* color_quad_background = @@ -1193,7 +1196,7 @@ auto pass = CreateTestRootRenderPass(id, rect); SharedQuadState* shared_state = CreateTestSharedQuadState( - gfx::Transform(), rect, pass.get(), gfx::RRectF()); + gfx::Transform(), rect, pass.get(), gfx::MaskFilterInfo()); auto* color_quad = pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); color_quad->SetNew(shared_state, rect, rect, SK_ColorYELLOW, false); @@ -1234,8 +1237,9 @@ gfx::Transform(), cc::FilterOperations()); cc::AddQuad(root_pass, root_rect, SK_ColorYELLOW); - SharedQuadState* pass_shared_state = CreateTestSharedQuadState( - gfx::Transform(), viewport_rect, root_pass, gfx::RRectF()); + SharedQuadState* pass_shared_state = + CreateTestSharedQuadState(gfx::Transform(), viewport_rect, root_pass, + gfx::MaskFilterInfo()); CreateTestRenderPassDrawQuad(pass_shared_state, viewport_rect, child_pass_id, root_pass); @@ -1261,7 +1265,7 @@ auto pass = CreateTestRootRenderPass(id, rect); SharedQuadState* texture_quad_state = CreateTestSharedQuadState( - gfx::Transform(), rect, pass.get(), gfx::RRectF()); + gfx::Transform(), rect, pass.get(), gfx::MaskFilterInfo()); texture_quad_state->opacity = 0.8f; float vertex_opacity[4] = {1.f, 1.f, 0.f, 0.f}; @@ -1276,7 +1280,7 @@ this->child_context_provider_, pass.get()); SharedQuadState* color_quad_state = CreateTestSharedQuadState( - gfx::Transform(), rect, pass.get(), gfx::RRectF()); + gfx::Transform(), rect, pass.get(), gfx::MaskFilterInfo()); auto* color_quad = pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); color_quad->SetNew(color_quad_state, rect, rect, SK_ColorWHITE, false); @@ -1312,7 +1316,7 @@ trans.RotateAboutZAxis(45.0); trans.RotateAboutYAxis(45.0); front_quad_state_ = CreateTestSharedQuadState( - trans, viewport_rect_, render_pass_.get(), gfx::RRectF()); + trans, viewport_rect_, render_pass_.get(), gfx::MaskFilterInfo()); // Make sure they end up in a 3d sorting context. front_quad_state_->sorting_context_id = 1; @@ -1321,14 +1325,16 @@ trans = gfx::Transform(); trans.Translate3d(0, 0, -0.707 * this->device_viewport_size_.width() / 2.0); trans.RotateAboutYAxis(-45.0); - back_quad_state_ = CreateTestSharedQuadState( - trans, viewport_rect_, render_pass_.get(), gfx::RRectF()); + back_quad_state_ = + CreateTestSharedQuadState(trans, viewport_rect_, render_pass_.get(), + gfx::MaskFilterInfo()); back_quad_state_->sorting_context_id = 1; } void AppendBackgroundAndRunTest(const cc::PixelComparator& comparator, const base::FilePath::CharType* ref_file) { - SharedQuadState* background_quad_state = CreateTestSharedQuadState( - gfx::Transform(), viewport_rect_, render_pass_.get(), gfx::RRectF()); + SharedQuadState* background_quad_state = + CreateTestSharedQuadState(gfx::Transform(), viewport_rect_, + render_pass_.get(), gfx::MaskFilterInfo()); auto* background_quad = render_pass_->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); background_quad->SetNew(background_quad_state, viewport_rect_, @@ -1552,11 +1558,11 @@ auto child_pass1 = CreateTestRenderPass(child_pass_id1, this->quad_rect_, gfx::Transform()); SharedQuadState* child1_quad_state = CreateTestSharedQuadState( - gfx::Transform(), this->quad_rect_, child_pass1.get(), gfx::RRectF()); + gfx::Transform(), this->quad_rect_, child_pass1.get(), gfx::MaskFilterInfo()); auto child_pass2 = CreateTestRenderPass(child_pass_id2, this->quad_rect_, gfx::Transform()); SharedQuadState* child2_quad_state = CreateTestSharedQuadState( - gfx::Transform(), this->quad_rect_, child_pass2.get(), gfx::RRectF()); + gfx::Transform(), this->quad_rect_, child_pass2.get(), gfx::MaskFilterInfo()); CreateTestTwoColoredTextureDrawQuad( !is_software_renderer(), this->quad_rect_, SkColorSetARGB(255, 0, 0, 0), SkColorSetARGB(255, 0, 0, 255), SK_ColorTRANSPARENT, @@ -1650,7 +1656,7 @@ auto pass = CreateTestRootRenderPass(id, rect); SharedQuadState* shared_state = CreateTestSharedQuadState( - gfx::Transform(), rect, pass.get(), gfx::RRectF()); + gfx::Transform(), rect, pass.get(), gfx::MaskFilterInfo()); CreateTestTextureDrawQuad( !is_software_renderer(), gfx::Rect(this->device_viewport_size_), @@ -1680,7 +1686,7 @@ auto pass = CreateTestRootRenderPass(id, rect); SharedQuadState* texture_quad_state = CreateTestSharedQuadState( - gfx::Transform(), rect, pass.get(), gfx::RRectF()); + gfx::Transform(), rect, pass.get(), gfx::MaskFilterInfo()); texture_quad_state->opacity = 0.8f; CreateTestTextureDrawQuad( @@ -1693,7 +1699,7 @@ this->child_context_provider_, pass.get()); SharedQuadState* color_quad_state = CreateTestSharedQuadState( - gfx::Transform(), rect, pass.get(), gfx::RRectF()); + gfx::Transform(), rect, pass.get(), gfx::MaskFilterInfo()); auto* color_quad = pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); color_quad->SetNew(color_quad_state, rect, rect, SK_ColorWHITE, false); @@ -1728,8 +1734,9 @@ gfx::Transform scale_by_2; scale_by_2.Scale(2.f, 2.f); gfx::Rect half_rect(100, 100); - SharedQuadState* shared_state = CreateTestSharedQuadState( - scale_by_2, half_rect, pass.get(), gfx::RRectF()); + SharedQuadState* shared_state = + CreateTestSharedQuadState(scale_by_2, half_rect, pass.get(), + gfx::MaskFilterInfo()); gfx::Size background_size(200, 200); gfx::Rect green_rect(16, 20, 100, 100); @@ -1803,7 +1810,7 @@ this->display_color_spaces_ = kRec601DisplayColorSpaces; SharedQuadState* shared_state = CreateTestSharedQuadState( - gfx::Transform(), rect, pass.get(), gfx::RRectF()); + gfx::Transform(), rect, pass.get(), gfx::MaskFilterInfo()); CreateTestYUVVideoDrawQuad_Striped( shared_state, media::PIXEL_FORMAT_I420, gfx::ColorSpace::CreateREC601(), @@ -1830,8 +1837,9 @@ // Set the output color space to match the input primaries and transfer. this->display_color_spaces_ = kRec601DisplayColorSpaces; - SharedQuadState* shared_state = CreateTestSharedQuadState( - gfx::Transform(), viewport, pass.get(), gfx::RRectF()); + SharedQuadState* shared_state = + CreateTestSharedQuadState(gfx::Transform(), viewport, pass.get(), + gfx::MaskFilterInfo()); CreateTestYUVVideoDrawQuad_Striped( shared_state, media::PIXEL_FORMAT_I420, gfx::ColorSpace::CreateREC601(), @@ -1874,7 +1882,7 @@ this->display_color_spaces_ = kRec601DisplayColorSpaces; SharedQuadState* shared_state = CreateTestSharedQuadState( - gfx::Transform(), rect, pass.get(), gfx::RRectF()); + gfx::Transform(), rect, pass.get(), gfx::MaskFilterInfo()); // Intentionally sets frame format to I420 for testing coverage. CreateTestYUVVideoDrawQuad_Striped( @@ -1901,7 +1909,7 @@ this->display_color_spaces_ = kRec601DisplayColorSpaces; SharedQuadState* shared_state = CreateTestSharedQuadState( - gfx::Transform(), rect, pass.get(), gfx::RRectF()); + gfx::Transform(), rect, pass.get(), gfx::MaskFilterInfo()); // In MPEG color range YUV values of (15,128,128) should produce black. CreateTestYUVVideoDrawQuad_Solid( @@ -1928,7 +1936,7 @@ auto pass = CreateTestRootRenderPass(id, rect); SharedQuadState* shared_state = CreateTestSharedQuadState( - gfx::Transform(), rect, pass.get(), gfx::RRectF()); + gfx::Transform(), rect, pass.get(), gfx::MaskFilterInfo()); // YUV of (149,43,21) should be green (0,255,0) in RGB. CreateTestYUVVideoDrawQuad_Solid( @@ -1953,7 +1961,7 @@ auto pass = CreateTestRootRenderPass(id, rect); SharedQuadState* shared_state = CreateTestSharedQuadState( - gfx::Transform(), rect, pass.get(), gfx::RRectF()); + gfx::Transform(), rect, pass.get(), gfx::MaskFilterInfo()); // YUV of (225,0,148) should be yellow (255,255,0) in RGB. CreateTestYUVVideoDrawQuad_Solid( @@ -1984,7 +1992,7 @@ auto pass = CreateTestRootRenderPass(id, rect); SharedQuadState* shared_state = CreateTestSharedQuadState( - gfx::Transform(), rect, pass.get(), gfx::RRectF()); + gfx::Transform(), rect, pass.get(), gfx::MaskFilterInfo()); // YUV of (149,43,21) should be green (0,255,0) in RGB. CreateTestYUVVideoDrawQuad_NV12( @@ -2031,7 +2039,7 @@ auto pass = CreateTestRootRenderPass(id, rect); SharedQuadState* shared_state = CreateTestSharedQuadState( - gfx::Transform(), rect, pass.get(), gfx::RRectF()); + gfx::Transform(), rect, pass.get(), gfx::MaskFilterInfo()); // Dark grey in JPEG color range (in MPEG, this is black). CreateTestYUVVideoDrawQuad_Solid( @@ -2058,7 +2066,7 @@ this->display_color_spaces_ = kRec601DisplayColorSpaces; SharedQuadState* shared_state = CreateTestSharedQuadState( - gfx::Transform(), rect, pass.get(), gfx::RRectF()); + gfx::Transform(), rect, pass.get(), gfx::MaskFilterInfo()); CreateTestYUVVideoDrawQuad_Striped( shared_state, media::PIXEL_FORMAT_I420A, gfx::ColorSpace::CreateREC601(), @@ -2087,7 +2095,7 @@ this->display_color_spaces_ = kRec601DisplayColorSpaces; SharedQuadState* shared_state = CreateTestSharedQuadState( - gfx::Transform(), rect, pass.get(), gfx::RRectF()); + gfx::Transform(), rect, pass.get(), gfx::MaskFilterInfo()); CreateTestYUVVideoDrawQuad_Striped( shared_state, media::PIXEL_FORMAT_I420A, gfx::ColorSpace::CreateREC601(), @@ -2114,7 +2122,7 @@ auto pass = CreateTestRootRenderPass(id, rect); SharedQuadState* shared_state = CreateTestSharedQuadState( - gfx::Transform(), rect, pass.get(), gfx::RRectF()); + gfx::Transform(), rect, pass.get(), gfx::MaskFilterInfo()); gfx::Rect upper_rect(rect.x(), rect.y(), rect.width(), rect.height() / 2); CreateTestY16TextureDrawQuad_TwoColor( @@ -2168,7 +2176,7 @@ gfx::Transform quad_to_target_transform; SharedQuadState* shared_state = CreateTestSharedQuadState( - quad_to_target_transform, viewport_rect, child_pass.get(), gfx::RRectF()); + quad_to_target_transform, viewport_rect, child_pass.get(), gfx::MaskFilterInfo()); shared_state->opacity = 0.5f; gfx::Rect blue_rect(0, 0, this->device_viewport_size_.width(), @@ -2182,14 +2190,15 @@ yellow->SetNew(shared_state, yellow_rect, yellow_rect, SK_ColorYELLOW, false); SharedQuadState* blank_state = CreateTestSharedQuadState( - quad_to_target_transform, viewport_rect, child_pass.get(), gfx::RRectF()); + quad_to_target_transform, viewport_rect, child_pass.get(), gfx::MaskFilterInfo()); auto* white = child_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); white->SetNew(blank_state, viewport_rect, viewport_rect, SK_ColorWHITE, false); - SharedQuadState* pass_shared_state = CreateTestSharedQuadState( - gfx::Transform(), pass_rect, root_pass.get(), gfx::RRectF()); + SharedQuadState* pass_shared_state = + CreateTestSharedQuadState(gfx::Transform(), pass_rect, root_pass.get(), + gfx::MaskFilterInfo()); auto* render_pass_quad = root_pass->CreateAndAppendDrawQuad<AggregatedRenderPassDrawQuad>(); @@ -2227,7 +2236,7 @@ gfx::Transform quad_to_target_transform; SharedQuadState* shared_state = CreateTestSharedQuadState( - quad_to_target_transform, viewport_rect, child_pass.get(), gfx::RRectF()); + quad_to_target_transform, viewport_rect, child_pass.get(), gfx::MaskFilterInfo()); shared_state->opacity = 0.5f; gfx::Rect blue_rect(0, 0, this->device_viewport_size_.width(), @@ -2241,14 +2250,15 @@ yellow->SetNew(shared_state, yellow_rect, yellow_rect, SK_ColorYELLOW, false); SharedQuadState* blank_state = CreateTestSharedQuadState( - quad_to_target_transform, viewport_rect, child_pass.get(), gfx::RRectF()); + quad_to_target_transform, viewport_rect, child_pass.get(), gfx::MaskFilterInfo()); auto* white = child_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); white->SetNew(blank_state, viewport_rect, viewport_rect, SK_ColorWHITE, false); - SharedQuadState* pass_shared_state = CreateTestSharedQuadState( - gfx::Transform(), pass_rect, root_pass.get(), gfx::RRectF()); + SharedQuadState* pass_shared_state = + CreateTestSharedQuadState(gfx::Transform(), pass_rect, root_pass.get(), + gfx::MaskFilterInfo()); auto* render_pass_quad = root_pass->CreateAndAppendDrawQuad<AggregatedRenderPassDrawQuad>(); @@ -2287,7 +2297,7 @@ gfx::Transform quad_to_target_transform; SharedQuadState* shared_state = CreateTestSharedQuadState( - quad_to_target_transform, viewport_rect, child_pass.get(), gfx::RRectF()); + quad_to_target_transform, viewport_rect, child_pass.get(), gfx::MaskFilterInfo()); shared_state->opacity = 0.5f; gfx::Rect blue_rect(0, 0, this->device_viewport_size_.width(), @@ -2301,14 +2311,15 @@ yellow->SetNew(shared_state, yellow_rect, yellow_rect, SK_ColorYELLOW, false); SharedQuadState* blank_state = CreateTestSharedQuadState( - quad_to_target_transform, viewport_rect, child_pass.get(), gfx::RRectF()); + quad_to_target_transform, viewport_rect, child_pass.get(), gfx::MaskFilterInfo()); auto* white = child_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); white->SetNew(blank_state, viewport_rect, viewport_rect, SK_ColorWHITE, false); - SharedQuadState* pass_shared_state = CreateTestSharedQuadState( - gfx::Transform(), pass_rect, root_pass.get(), gfx::RRectF()); + SharedQuadState* pass_shared_state = + CreateTestSharedQuadState(gfx::Transform(), pass_rect, root_pass.get(), + gfx::MaskFilterInfo()); auto* render_pass_quad = root_pass->CreateAndAppendDrawQuad<AggregatedRenderPassDrawQuad>(); @@ -2368,7 +2379,7 @@ gfx::Transform quad_to_target_transform; SharedQuadState* shared_state = CreateTestSharedQuadState( - quad_to_target_transform, viewport_rect, child_pass.get(), gfx::RRectF()); + quad_to_target_transform, viewport_rect, child_pass.get(), gfx::MaskFilterInfo()); shared_state->opacity = 0.5f; gfx::Rect blue_rect(0, 0, this->device_viewport_size_.width(), @@ -2382,14 +2393,15 @@ yellow->SetNew(shared_state, yellow_rect, yellow_rect, SK_ColorYELLOW, false); SharedQuadState* blank_state = CreateTestSharedQuadState( - quad_to_target_transform, viewport_rect, child_pass.get(), gfx::RRectF()); + quad_to_target_transform, viewport_rect, child_pass.get(), gfx::MaskFilterInfo()); auto* white = child_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); white->SetNew(blank_state, viewport_rect, viewport_rect, SK_ColorWHITE, false); - SharedQuadState* pass_shared_state = CreateTestSharedQuadState( - gfx::Transform(), pass_rect, root_pass.get(), gfx::RRectF()); + SharedQuadState* pass_shared_state = + CreateTestSharedQuadState(gfx::Transform(), pass_rect, root_pass.get(), + gfx::MaskFilterInfo()); auto* render_pass_quad = root_pass->CreateAndAppendDrawQuad<AggregatedRenderPassDrawQuad>(); @@ -2425,7 +2437,7 @@ gfx::Transform quad_to_target_transform; SharedQuadState* shared_state = CreateTestSharedQuadState( - quad_to_target_transform, viewport_rect, child_pass.get(), gfx::RRectF()); + quad_to_target_transform, viewport_rect, child_pass.get(), gfx::MaskFilterInfo()); gfx::Rect blue_rect(0, 0, this->device_viewport_size_.width(), this->device_viewport_size_.height() / 2); @@ -2437,8 +2449,9 @@ auto* yellow = child_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); yellow->SetNew(shared_state, yellow_rect, yellow_rect, SK_ColorYELLOW, false); - SharedQuadState* pass_shared_state = CreateTestSharedQuadState( - gfx::Transform(), pass_rect, root_pass.get(), gfx::RRectF()); + SharedQuadState* pass_shared_state = + CreateTestSharedQuadState(gfx::Transform(), pass_rect, root_pass.get(), + gfx::MaskFilterInfo()); CreateTestRenderPassDrawQuad(pass_shared_state, pass_rect, child_pass_id, root_pass.get()); @@ -2467,7 +2480,7 @@ gfx::Transform quad_to_target_transform; SharedQuadState* shared_state = CreateTestSharedQuadState( - quad_to_target_transform, viewport_rect, child_pass.get(), gfx::RRectF()); + quad_to_target_transform, viewport_rect, child_pass.get(), gfx::MaskFilterInfo()); gfx::Rect blue_rect(0, 0, this->device_viewport_size_.width(), this->device_viewport_size_.height() / 2); @@ -2482,13 +2495,14 @@ gfx::Transform aa_transform; aa_transform.Translate(0.5, 0.0); - SharedQuadState* pass_shared_state = CreateTestSharedQuadState( - aa_transform, pass_rect, root_pass.get(), gfx::RRectF()); + SharedQuadState* pass_shared_state = + CreateTestSharedQuadState(aa_transform, pass_rect, root_pass.get(), + gfx::MaskFilterInfo()); CreateTestRenderPassDrawQuad(pass_shared_state, pass_rect, child_pass_id, root_pass.get()); SharedQuadState* root_shared_state = CreateTestSharedQuadState( - gfx::Transform(), viewport_rect, root_pass.get(), gfx::RRectF()); + gfx::Transform(), viewport_rect, root_pass.get(), gfx::MaskFilterInfo()); auto* background = root_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); background->SetNew(root_shared_state, gfx::Rect(this->device_viewport_size_), gfx::Rect(this->device_viewport_size_), SK_ColorWHITE, @@ -2514,14 +2528,14 @@ AggregatedRenderPassId root_pass_id{1}; auto root_pass = CreateTestRootRenderPass(root_pass_id, viewport_rect); SharedQuadState* root_pass_shared_state = CreateTestSharedQuadState( - gfx::Transform(), viewport_rect, root_pass.get(), gfx::RRectF()); + gfx::Transform(), viewport_rect, root_pass.get(), gfx::MaskFilterInfo()); AggregatedRenderPassId child_pass_id{2}; gfx::Transform transform_to_root; auto child_pass = CreateTestRenderPass(child_pass_id, viewport_rect, transform_to_root); SharedQuadState* child_pass_shared_state = CreateTestSharedQuadState( - gfx::Transform(), viewport_rect, child_pass.get(), gfx::RRectF()); + gfx::Transform(), viewport_rect, child_pass.get(), gfx::MaskFilterInfo()); // The child render pass is just a green box. static const SkColor kCSSGreen = 0xff008000; @@ -2611,14 +2625,14 @@ AggregatedRenderPassId root_pass_id{1}; auto root_pass = CreateTestRootRenderPass(root_pass_id, viewport_rect); SharedQuadState* root_pass_shared_state = CreateTestSharedQuadState( - gfx::Transform(), viewport_rect, root_pass.get(), gfx::RRectF()); + gfx::Transform(), viewport_rect, root_pass.get(), gfx::MaskFilterInfo()); AggregatedRenderPassId child_pass_id{2}; gfx::Transform transform_to_root; auto child_pass = CreateTestRenderPass(child_pass_id, viewport_rect, transform_to_root); SharedQuadState* child_pass_shared_state = CreateTestSharedQuadState( - gfx::Transform(), viewport_rect, child_pass.get(), gfx::RRectF()); + gfx::Transform(), viewport_rect, child_pass.get(), gfx::MaskFilterInfo()); // The child render pass is just a green box. static const SkColor kCSSGreen = 0xff008000; @@ -2708,14 +2722,14 @@ AggregatedRenderPassId root_pass_id{1}; auto root_pass = CreateTestRootRenderPass(root_pass_id, viewport_rect); SharedQuadState* root_pass_shared_state = CreateTestSharedQuadState( - gfx::Transform(), viewport_rect, root_pass.get(), gfx::RRectF()); + gfx::Transform(), viewport_rect, root_pass.get(), gfx::MaskFilterInfo()); AggregatedRenderPassId child_pass_id{2}; gfx::Transform transform_to_root; auto child_pass = CreateTestRenderPass(child_pass_id, viewport_rect, transform_to_root); SharedQuadState* child_pass_shared_state = CreateTestSharedQuadState( - gfx::Transform(), viewport_rect, child_pass.get(), gfx::RRectF()); + gfx::Transform(), viewport_rect, child_pass.get(), gfx::MaskFilterInfo()); // The child render pass is just a blue box. auto* blue = child_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); @@ -2802,14 +2816,14 @@ AggregatedRenderPassId root_pass_id{1}; auto root_pass = CreateTestRootRenderPass(root_pass_id, viewport_rect); SharedQuadState* root_pass_shared_state = CreateTestSharedQuadState( - gfx::Transform(), viewport_rect, root_pass.get(), gfx::RRectF()); + gfx::Transform(), viewport_rect, root_pass.get(), gfx::MaskFilterInfo()); AggregatedRenderPassId child_pass_id{2}; gfx::Transform transform_to_root; auto child_pass = CreateTestRenderPass(child_pass_id, viewport_rect, transform_to_root); SharedQuadState* child_pass_shared_state = CreateTestSharedQuadState( - gfx::Transform(), viewport_rect, child_pass.get(), gfx::RRectF()); + gfx::Transform(), viewport_rect, child_pass.get(), gfx::MaskFilterInfo()); // The child render pass is half a blue box and other half yellow box. gfx::Rect blue_rect(0, 0, this->device_viewport_size_.width(), @@ -2912,7 +2926,7 @@ { SharedQuadState* shared_state = CreateTestSharedQuadState( identity_quad_to_target_transform, filter_pass_layer_rect_, - filter_pass.get(), gfx::RRectF()); + filter_pass.get(), gfx::MaskFilterInfo()); auto* color_quad = filter_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); color_quad->SetNew(shared_state, filter_pass_layer_rect_, @@ -2977,7 +2991,7 @@ { SharedQuadState* shared_state = CreateTestSharedQuadState( filter_pass_to_target_transform_, filter_pass_layer_rect_, - filter_pass.get(), gfx::RRectF()); + filter_pass.get(), gfx::MaskFilterInfo()); auto* filter_pass_quad = root_pass->CreateAndAppendDrawQuad<AggregatedRenderPassDrawQuad>(); filter_pass_quad->SetNew(shared_state, filter_pass_layer_rect_, @@ -2995,9 +3009,9 @@ gfx::Rect left_rect = gfx::Rect(0, 0, kColumnWidth, 20); while (left_rect.y() < device_viewport_rect.height()) { - SharedQuadState* shared_state = - CreateTestSharedQuadState(identity_quad_to_target_transform, - left_rect, root_pass.get(), gfx::RRectF()); + SharedQuadState* shared_state = CreateTestSharedQuadState( + identity_quad_to_target_transform, left_rect, root_pass.get(), + gfx::MaskFilterInfo()); auto* color_quad = root_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); color_quad->SetNew(shared_state, left_rect, left_rect, SK_ColorGREEN, @@ -3009,7 +3023,7 @@ while (middle_rect.y() < device_viewport_rect.height()) { SharedQuadState* shared_state = CreateTestSharedQuadState( identity_quad_to_target_transform, middle_rect, root_pass.get(), - gfx::RRectF()); + gfx::MaskFilterInfo()); auto* color_quad = root_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); color_quad->SetNew(shared_state, middle_rect, middle_rect, SK_ColorRED, @@ -3020,9 +3034,9 @@ gfx::Rect right_rect = gfx::Rect((kColumnWidth + 1) * 2, 0, kColumnWidth, 20); while (right_rect.y() < device_viewport_rect.height()) { - SharedQuadState* shared_state = - CreateTestSharedQuadState(identity_quad_to_target_transform, - right_rect, root_pass.get(), gfx::RRectF()); + SharedQuadState* shared_state = CreateTestSharedQuadState( + identity_quad_to_target_transform, right_rect, root_pass.get(), + gfx::MaskFilterInfo()); auto* color_quad = root_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); color_quad->SetNew(shared_state, right_rect, right_rect, SK_ColorBLUE, @@ -3032,7 +3046,7 @@ SharedQuadState* shared_state = CreateTestSharedQuadState( identity_quad_to_target_transform, device_viewport_rect, - root_pass.get(), gfx::RRectF()); + root_pass.get(), gfx::MaskFilterInfo()); auto* background_quad = root_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); background_quad->SetNew(shared_state, device_viewport_rect, @@ -3118,7 +3132,7 @@ { SharedQuadState* shared_state = CreateTestSharedQuadState( identity_quad_to_target_transform, filter_pass_layer_rect_, - filter_pass.get(), gfx::RRectF()); + filter_pass.get(), gfx::MaskFilterInfo()); auto* color_quad = filter_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); color_quad->SetNew(shared_state, filter_pass_layer_rect_, @@ -3128,7 +3142,7 @@ { SharedQuadState* shared_state = CreateTestSharedQuadState( filter_pass_to_target_transform_, filter_pass_layer_rect_, - filter_pass.get(), gfx::RRectF()); + filter_pass.get(), gfx::MaskFilterInfo()); auto* filter_pass_quad = root_pass->CreateAndAppendDrawQuad<AggregatedRenderPassDrawQuad>(); filter_pass_quad->SetAll( @@ -3148,25 +3162,25 @@ gfx::Rect left_rect = gfx::Rect(kGridWidth / 2, kGridHeight, kGridWidth, kGridHeight); - SharedQuadState* shared_state = - CreateTestSharedQuadState(identity_quad_to_target_transform, left_rect, - root_pass.get(), gfx::RRectF()); + SharedQuadState* shared_state = CreateTestSharedQuadState( + identity_quad_to_target_transform, left_rect, root_pass.get(), + gfx::MaskFilterInfo()); auto* color_quad = root_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); color_quad->SetNew(shared_state, left_rect, left_rect, SK_ColorGREEN, false); gfx::Rect right_rect = gfx::Rect(kGridWidth * 3 / 2, kGridHeight, kGridWidth, kGridHeight); - shared_state = - CreateTestSharedQuadState(identity_quad_to_target_transform, right_rect, - root_pass.get(), gfx::RRectF()); + shared_state = CreateTestSharedQuadState( + identity_quad_to_target_transform, right_rect, root_pass.get(), + gfx::MaskFilterInfo()); color_quad = root_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); color_quad->SetNew(shared_state, right_rect, right_rect, SK_ColorRED, false); - shared_state = CreateTestSharedQuadState(identity_quad_to_target_transform, - device_viewport_rect, - root_pass.get(), gfx::RRectF()); + shared_state = CreateTestSharedQuadState( + identity_quad_to_target_transform, device_viewport_rect, + root_pass.get(), gfx::MaskFilterInfo()); auto* background_quad = root_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); background_quad->SetNew(shared_state, device_viewport_rect, @@ -3264,8 +3278,9 @@ gfx::Transform red_quad_to_target_transform; red_quad_to_target_transform.Rotate(10); - SharedQuadState* red_shared_state = CreateTestSharedQuadState( - red_quad_to_target_transform, rect, pass.get(), gfx::RRectF()); + SharedQuadState* red_shared_state = + CreateTestSharedQuadState(red_quad_to_target_transform, rect, pass.get(), + gfx::MaskFilterInfo()); auto* red = pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); red->SetNew(red_shared_state, rect, rect, SK_ColorRED, false); @@ -3273,14 +3288,15 @@ gfx::Transform yellow_quad_to_target_transform; yellow_quad_to_target_transform.Rotate(5); SharedQuadState* yellow_shared_state = CreateTestSharedQuadState( - yellow_quad_to_target_transform, rect, pass.get(), gfx::RRectF()); + yellow_quad_to_target_transform, rect, pass.get(), gfx::MaskFilterInfo()); auto* yellow = pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); yellow->SetNew(yellow_shared_state, rect, rect, SK_ColorYELLOW, false); gfx::Transform blue_quad_to_target_transform; - SharedQuadState* blue_shared_state = CreateTestSharedQuadState( - blue_quad_to_target_transform, rect, pass.get(), gfx::RRectF()); + SharedQuadState* blue_shared_state = + CreateTestSharedQuadState(blue_quad_to_target_transform, rect, pass.get(), + gfx::MaskFilterInfo()); auto* blue = pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); blue->SetNew(blue_shared_state, rect, rect, SK_ColorBLUE, false); @@ -3306,19 +3322,20 @@ 1.0f, 2.4520f, 10.6206f, 19.0f, 0.0f, 0.3528f, 5.9737f, 9.5f, 0.0f, -0.2250f, -0.9744f, 0.0f, 0.0f, 0.0225f, 0.0974f, 1.0f); SharedQuadState* red_shared_state = CreateTestSharedQuadState( - red_quad_to_target_transform, red_rect, pass.get(), gfx::RRectF()); + red_quad_to_target_transform, red_rect, pass.get(), gfx::MaskFilterInfo()); auto* red = pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); red->SetNew(red_shared_state, red_rect, red_rect, SK_ColorRED, false); gfx::Rect green_rect(19, 7, 180, 10); - SharedQuadState* green_shared_state = CreateTestSharedQuadState( - gfx::Transform(), green_rect, pass.get(), gfx::RRectF()); + SharedQuadState* green_shared_state = + CreateTestSharedQuadState(gfx::Transform(), green_rect, pass.get(), + gfx::MaskFilterInfo()); auto* green = pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); green->SetNew(green_shared_state, green_rect, green_rect, SK_ColorGREEN, false); SharedQuadState* blue_shared_state = CreateTestSharedQuadState( - gfx::Transform(), rect, pass.get(), gfx::RRectF()); + gfx::Transform(), rect, pass.get(), gfx::MaskFilterInfo()); auto* blue = pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); blue->SetNew(blue_shared_state, rect, rect, SK_ColorBLUE, false); @@ -3345,8 +3362,9 @@ pass.get()); gfx::Transform blue_quad_to_target_transform; - SharedQuadState* blue_shared_state = CreateTestSharedQuadState( - blue_quad_to_target_transform, rect, pass.get(), gfx::RRectF()); + SharedQuadState* blue_shared_state = + CreateTestSharedQuadState(blue_quad_to_target_transform, rect, pass.get(), + gfx::MaskFilterInfo()); auto* blue = pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); blue->SetNew(blue_shared_state, rect, rect, SK_ColorBLUE, false); @@ -3374,15 +3392,16 @@ hole_quad_to_target_transform.Translate(50, 50); hole_quad_to_target_transform.Scale(0.5f + 1.0f / (rect.width() * 2.0f), 0.5f + 1.0f / (rect.height() * 2.0f)); - SharedQuadState* hole_shared_state = CreateTestSharedQuadState( - hole_quad_to_target_transform, rect, pass.get(), gfx::RRectF()); + SharedQuadState* hole_shared_state = + CreateTestSharedQuadState(hole_quad_to_target_transform, rect, pass.get(), + gfx::MaskFilterInfo()); auto* hole = pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); hole->SetAll(hole_shared_state, rect, rect, false, SK_ColorTRANSPARENT, true); gfx::Transform green_quad_to_target_transform; SharedQuadState* green_shared_state = CreateTestSharedQuadState( - green_quad_to_target_transform, rect, pass.get(), gfx::RRectF()); + green_quad_to_target_transform, rect, pass.get(), gfx::MaskFilterInfo()); auto* green = pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); green->SetNew(green_shared_state, rect, rect, SK_ColorGREEN, false); @@ -3413,7 +3432,7 @@ gfx::Transform quad_to_target_transform; SharedQuadState* hole_shared_state = CreateTestSharedQuadState( - quad_to_target_transform, rect, child_pass.get(), gfx::RRectF()); + quad_to_target_transform, rect, child_pass.get(), gfx::MaskFilterInfo()); SolidColorDrawQuad* hole = child_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); hole->SetAll(hole_shared_state, rect, rect, false, SK_ColorTRANSPARENT, @@ -3428,7 +3447,7 @@ hole_pass_to_target_transform.Scale(0.5f + 1.0f / (rect.width() * 2.0f), 0.5f + 1.0f / (rect.height() * 2.0f)); SharedQuadState* pass_shared_state = CreateTestSharedQuadState( - hole_pass_to_target_transform, rect, root_pass.get(), gfx::RRectF()); + hole_pass_to_target_transform, rect, root_pass.get(), gfx::MaskFilterInfo()); AggregatedRenderPassDrawQuad* pass_quad = root_pass->CreateAndAppendDrawQuad<AggregatedRenderPassDrawQuad>(); pass_quad->SetAll(pass_shared_state, rect, rect, needs_blending, @@ -3439,7 +3458,7 @@ gfx::Transform green_quad_to_target_transform; SharedQuadState* green_shared_state = CreateTestSharedQuadState( - green_quad_to_target_transform, rect, root_pass.get(), gfx::RRectF()); + green_quad_to_target_transform, rect, root_pass.get(), gfx::MaskFilterInfo()); SolidColorDrawQuad* green = root_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); @@ -3497,8 +3516,9 @@ hole_quad_to_target_transform.Translate(50, 50); hole_quad_to_target_transform.Scale(0.5f + 1.0f / (rect.width() * 2.0f), 0.5f + 1.0f / (rect.height() * 2.0f)); - SharedQuadState* hole_shared_state = CreateTestSharedQuadState( - hole_quad_to_target_transform, rect, pass.get(), gfx::RRectF()); + SharedQuadState* hole_shared_state = + CreateTestSharedQuadState(hole_quad_to_target_transform, rect, pass.get(), + gfx::MaskFilterInfo()); TileDrawQuad* hole = pass->CreateAndAppendDrawQuad<TileDrawQuad>(); hole->SetNew(hole_shared_state, rect, rect, needs_blending, mapped_resource, gfx::RectF(gfx::Rect(tile_size)), tile_size, @@ -3507,7 +3527,7 @@ gfx::Transform green_quad_to_target_transform; SharedQuadState* green_shared_state = CreateTestSharedQuadState( - green_quad_to_target_transform, rect, pass.get(), gfx::RRectF()); + green_quad_to_target_transform, rect, pass.get(), gfx::MaskFilterInfo()); SolidColorDrawQuad* green = pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); @@ -3537,7 +3557,7 @@ pass.get()); SharedQuadState* background_quad_state = CreateTestSharedQuadState( - gfx::Transform(), rect, pass.get(), gfx::RRectF()); + gfx::Transform(), rect, pass.get(), gfx::MaskFilterInfo()); auto* background_quad = pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); background_quad->SetNew(background_quad_state, rect, rect, SK_ColorBLACK, false); @@ -3573,13 +3593,14 @@ // Small enough red rect that linear filtering will miss it but large enough // that it makes a meaningful contribution when using trilinear filtering. red_rect.ClampToCenteredSize(gfx::Size(2, child_pass_rect.height())); - SharedQuadState* red_shared_state = CreateTestSharedQuadState( - gfx::Transform(), red_rect, child_pass.get(), gfx::RRectF()); + SharedQuadState* red_shared_state = + CreateTestSharedQuadState(gfx::Transform(), red_rect, child_pass.get(), + gfx::MaskFilterInfo()); auto* red = child_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); red->SetNew(red_shared_state, red_rect, red_rect, SK_ColorRED, false); SharedQuadState* blue_shared_state = CreateTestSharedQuadState( - gfx::Transform(), child_pass_rect, child_pass.get(), gfx::RRectF()); + gfx::Transform(), child_pass_rect, child_pass.get(), gfx::MaskFilterInfo()); auto* blue = child_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); blue->SetNew(blue_shared_state, child_pass_rect, child_pass_rect, SK_ColorBLUE, false); @@ -3587,7 +3608,7 @@ gfx::Transform child_to_root_transform(SkMatrix::RectToRect( RectToSkRect(child_pass_rect), RectToSkRect(viewport_rect))); SharedQuadState* child_pass_shared_state = CreateTestSharedQuadState( - child_to_root_transform, child_pass_rect, root_pass.get(), gfx::RRectF()); + child_to_root_transform, child_pass_rect, root_pass.get(), gfx::MaskFilterInfo()); auto* child_pass_quad = root_pass->CreateAndAppendDrawQuad<AggregatedRenderPassDrawQuad>(); child_pass_quad->SetNew( @@ -3678,7 +3699,7 @@ gfx::Transform green_quad_to_target_transform; SharedQuadState* green_shared_state = CreateTestSharedQuadState( - green_quad_to_target_transform, viewport, pass.get(), gfx::RRectF()); + green_quad_to_target_transform, viewport, pass.get(), gfx::MaskFilterInfo()); auto* green_quad = pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); green_quad->SetNew(green_shared_state, viewport, viewport, needs_blending, @@ -3718,7 +3739,7 @@ gfx::Transform green_quad_to_target_transform; SharedQuadState* green_shared_state = CreateTestSharedQuadState( - green_quad_to_target_transform, viewport, pass.get(), gfx::RRectF()); + green_quad_to_target_transform, viewport, pass.get(), gfx::MaskFilterInfo()); green_shared_state->opacity = 0.5f; auto* green_quad = pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); @@ -3739,7 +3760,7 @@ gfx::Transform white_quad_to_target_transform; SharedQuadState* white_shared_state = CreateTestSharedQuadState( - white_quad_to_target_transform, viewport, pass.get(), gfx::RRectF()); + white_quad_to_target_transform, viewport, pass.get(), gfx::MaskFilterInfo()); auto* white_quad = pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); white_quad->SetNew(white_shared_state, viewport, viewport, needs_blending, @@ -3776,9 +3797,8 @@ transparent_recording->CreateRasterSource(); gfx::Transform transparent_quad_to_target_transform; - SharedQuadState* transparent_shared_state = - CreateTestSharedQuadState(transparent_quad_to_target_transform, viewport, - pass.get(), gfx::RRectF()); + SharedQuadState* transparent_shared_state = CreateTestSharedQuadState( + transparent_quad_to_target_transform, viewport, pass.get(), gfx::MaskFilterInfo()); transparent_shared_state->opacity = 0.5f; auto* transparent_quad = pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); @@ -3799,7 +3819,7 @@ gfx::Transform white_quad_to_target_transform; SharedQuadState* white_shared_state = CreateTestSharedQuadState( - white_quad_to_target_transform, viewport, pass.get(), gfx::RRectF()); + white_quad_to_target_transform, viewport, pass.get(), gfx::MaskFilterInfo()); auto* white_quad = pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); white_quad->SetNew(white_shared_state, viewport, viewport, needs_blending, @@ -3851,8 +3871,9 @@ recording->CreateRasterSource(); gfx::Transform quad_to_target_transform; - SharedQuadState* shared_state = CreateTestSharedQuadState( - quad_to_target_transform, viewport, pass.get(), gfx::RRectF()); + SharedQuadState* shared_state = + CreateTestSharedQuadState(quad_to_target_transform, viewport, pass.get(), + gfx::MaskFilterInfo()); auto* quad = pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); quad->SetNew(shared_state, viewport, viewport, needs_blending, @@ -3901,8 +3922,9 @@ recording->CreateRasterSource(); gfx::Transform quad_to_target_transform; - SharedQuadState* shared_state = CreateTestSharedQuadState( - quad_to_target_transform, viewport, pass.get(), gfx::RRectF()); + SharedQuadState* shared_state = + CreateTestSharedQuadState(quad_to_target_transform, viewport, pass.get(), + gfx::MaskFilterInfo()); auto* quad = pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); quad->SetNew(shared_state, viewport, viewport, needs_blending, @@ -3962,8 +3984,9 @@ auto pass = CreateTestRenderPass(id, viewport, transform_to_root); gfx::Transform quad_to_target_transform; - SharedQuadState* shared_state = CreateTestSharedQuadState( - quad_to_target_transform, viewport, pass.get(), gfx::RRectF()); + SharedQuadState* shared_state = + CreateTestSharedQuadState(quad_to_target_transform, viewport, pass.get(), + gfx::MaskFilterInfo()); auto* quad = pass->CreateAndAppendDrawQuad<TileDrawQuad>(); quad->SetNew(shared_state, viewport, viewport, needs_blending, @@ -4012,8 +4035,9 @@ auto pass = CreateTestRenderPass(id, viewport, transform_to_root); gfx::Transform quad_to_target_transform; - SharedQuadState* shared_state = CreateTestSharedQuadState( - quad_to_target_transform, viewport, pass.get(), gfx::RRectF()); + SharedQuadState* shared_state = + CreateTestSharedQuadState(quad_to_target_transform, viewport, pass.get(), + gfx::MaskFilterInfo()); float vertex_opacity[4] = {1.0f, 1.0f, 1.0f, 1.0f}; auto* quad = pass->CreateAndAppendDrawQuad<TextureDrawQuad>(); @@ -4065,8 +4089,9 @@ auto pass = CreateTestRenderPass(id, viewport, transform_to_root); gfx::Transform quad_to_target_transform; - SharedQuadState* shared_state = CreateTestSharedQuadState( - quad_to_target_transform, viewport, pass.get(), gfx::RRectF()); + SharedQuadState* shared_state = + CreateTestSharedQuadState(quad_to_target_transform, viewport, pass.get(), + gfx::MaskFilterInfo()); float vertex_opacity[4] = {1.0f, 1.0f, 1.0f, 1.0f}; auto* quad = pass->CreateAndAppendDrawQuad<TextureDrawQuad>(); @@ -4122,7 +4147,7 @@ SharedQuadState* top_right_green_shared_quad_state = CreateTestSharedQuadState(green_quad_to_target_transform, viewport, - pass.get(), gfx::RRectF()); + pass.get(), gfx::MaskFilterInfo()); auto* green_quad1 = pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); green_quad1->SetNew( @@ -4194,7 +4219,7 @@ quad_to_target_transform.Scale(10.0, 10.0); gfx::Rect quad_content_rect(gfx::Size(20, 20)); SharedQuadState* blue_shared_state = CreateTestSharedQuadState( - quad_to_target_transform, quad_content_rect, pass.get(), gfx::RRectF()); + quad_to_target_transform, quad_content_rect, pass.get(), gfx::MaskFilterInfo()); auto* blue_quad = pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); blue_quad->SetNew(blue_shared_state, quad_content_rect, quad_content_rect, @@ -4206,9 +4231,9 @@ // Fill left half of viewport with green. gfx::Transform half_green_quad_to_target_transform; gfx::Rect half_green_rect(gfx::Size(viewport.width() / 2, viewport.height())); - SharedQuadState* half_green_shared_state = - CreateTestSharedQuadState(half_green_quad_to_target_transform, - half_green_rect, pass.get(), gfx::RRectF()); + SharedQuadState* half_green_shared_state = CreateTestSharedQuadState( + half_green_quad_to_target_transform, half_green_rect, pass.get(), + gfx::MaskFilterInfo()); auto* half_color_quad = pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); half_color_quad->SetNew(half_green_shared_state, half_green_rect, half_green_rect, SK_ColorGREEN, false); @@ -4253,7 +4278,7 @@ gfx::Transform quad_to_target_transform; SharedQuadState* shared_state = CreateTestSharedQuadState( - quad_to_target_transform, viewport_rect, child_pass.get(), gfx::RRectF()); + quad_to_target_transform, viewport_rect, child_pass.get(), gfx::MaskFilterInfo()); gfx::Rect blue_rect(0, 0, this->device_viewport_size_.width(), this->device_viewport_size_.height() / 2); @@ -4265,8 +4290,9 @@ auto* yellow = child_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); yellow->SetNew(shared_state, yellow_rect, yellow_rect, SK_ColorYELLOW, false); - SharedQuadState* pass_shared_state = CreateTestSharedQuadState( - gfx::Transform(), pass_rect, root_pass.get(), gfx::RRectF()); + SharedQuadState* pass_shared_state = + CreateTestSharedQuadState(gfx::Transform(), pass_rect, root_pass.get(), + gfx::MaskFilterInfo()); CreateTestRenderPassDrawQuad(pass_shared_state, pass_rect, child_pass_id, root_pass.get()); @@ -4297,7 +4323,7 @@ gfx::Transform quad_to_target_transform; SharedQuadState* shared_state = CreateTestSharedQuadState( - quad_to_target_transform, viewport_rect, child_pass.get(), gfx::RRectF()); + quad_to_target_transform, viewport_rect, child_pass.get(), gfx::MaskFilterInfo()); gfx::Rect blue_rect(0, 0, this->device_viewport_size_.width(), this->device_viewport_size_.height() / 2); @@ -4309,8 +4335,9 @@ auto* yellow = child_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); yellow->SetNew(shared_state, yellow_rect, yellow_rect, SK_ColorYELLOW, false); - SharedQuadState* pass_shared_state = CreateTestSharedQuadState( - gfx::Transform(), pass_rect, root_pass.get(), gfx::RRectF()); + SharedQuadState* pass_shared_state = + CreateTestSharedQuadState(gfx::Transform(), pass_rect, root_pass.get(), + gfx::MaskFilterInfo()); CreateTestRenderPassDrawQuad(pass_shared_state, pass_rect, child_pass_id, root_pass.get()); @@ -4339,7 +4366,7 @@ gfx::Transform quad_to_target_transform; SharedQuadState* shared_state = CreateTestSharedQuadState( - quad_to_target_transform, viewport_rect, child_pass.get(), gfx::RRectF()); + quad_to_target_transform, viewport_rect, child_pass.get(), gfx::MaskFilterInfo()); // Draw a green quad full-size with a blue quad in the lower-right corner. gfx::Rect blue_rect(this->device_viewport_size_.width() * 3 / 4, @@ -4353,8 +4380,9 @@ auto* green = child_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); green->SetNew(shared_state, green_rect, green_rect, SK_ColorGREEN, false); - SharedQuadState* pass_shared_state = CreateTestSharedQuadState( - gfx::Transform(), pass_rect, root_pass.get(), gfx::RRectF()); + SharedQuadState* pass_shared_state = + CreateTestSharedQuadState(gfx::Transform(), pass_rect, root_pass.get(), + gfx::MaskFilterInfo()); CreateTestRenderPassDrawQuad(pass_shared_state, pass_rect, child_pass_id, root_pass.get()); @@ -4385,7 +4413,7 @@ auto pass = CreateTestRootRenderPass(id, rect); SharedQuadState* shared_state = CreateTestSharedQuadState( - gfx::Transform(), rect, pass.get(), gfx::RRectF()); + gfx::Transform(), rect, pass.get(), gfx::MaskFilterInfo()); // Make a mask. gfx::Rect mask_rect = rect; @@ -4507,16 +4535,18 @@ // tex coord rect. gfx::Transform transform; transform.Scale(40, 40); - SharedQuadState* quad_shared = CreateTestSharedQuadState( - transform, gfx::Rect(layer_size), pass.get(), gfx::RRectF()); + SharedQuadState* quad_shared = + CreateTestSharedQuadState(transform, gfx::Rect(layer_size), pass.get(), + gfx::MaskFilterInfo()); auto* quad = pass->CreateAndAppendDrawQuad<TileDrawQuad>(); quad->SetNew(quad_shared, gfx::Rect(layer_size), gfx::Rect(layer_size), needs_blending, mapped_resource, tex_coord_rect, tile_size, contents_premultiplied, nearest_neighbor, use_aa); // Green background. - SharedQuadState* background_shared = CreateTestSharedQuadState( - gfx::Transform(), viewport, pass.get(), gfx::RRectF()); + SharedQuadState* background_shared = + CreateTestSharedQuadState(gfx::Transform(), viewport, pass.get(), + gfx::MaskFilterInfo()); auto* color_quad = pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); color_quad->SetNew(background_shared, viewport, viewport, SK_ColorGREEN, false); @@ -4544,15 +4574,15 @@ blue_rect.Inset(kInset, kInset); gfx::RRectF rounded_corner_rrect(gfx::RectF(blue_rect), kCornerRadius); - SharedQuadState* shared_state_rounded = - CreateTestSharedQuadState(quad_to_target_transform, viewport_rect, - root_pass.get(), rounded_corner_rrect); + SharedQuadState* shared_state_rounded = CreateTestSharedQuadState( + quad_to_target_transform, viewport_rect, root_pass.get(), + gfx::MaskFilterInfo(rounded_corner_rrect, gfx::LinearGradient())); auto* blue = root_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); blue->SetNew(shared_state_rounded, blue_rect, blue_rect, SK_ColorBLUE, false); SharedQuadState* shared_state_normal = CreateTestSharedQuadState( - quad_to_target_transform, viewport_rect, root_pass.get(), gfx::RRectF()); + quad_to_target_transform, viewport_rect, root_pass.get(), gfx::MaskFilterInfo()); auto* white = root_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); white->SetNew(shared_state_normal, red_rect, red_rect, SK_ColorWHITE, false); @@ -4592,9 +4622,9 @@ blue_rect.Inset(kInset, kInset); gfx::RRectF rounded_corner_rrect(gfx::RectF(blue_rect), kCornerRadius); - SharedQuadState* shared_state_rounded = - CreateTestSharedQuadState(quad_to_target_transform, viewport_rect, - root_pass.get(), rounded_corner_rrect); + SharedQuadState* shared_state_rounded = CreateTestSharedQuadState( + quad_to_target_transform, viewport_rect, root_pass.get(), + gfx::MaskFilterInfo(rounded_corner_rrect, gfx::LinearGradient())); const uint8_t colors[] = {0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255}; @@ -4621,7 +4651,7 @@ /*secure_output_only=*/false, gfx::ProtectedVideoType::kClear); SharedQuadState* shared_state_normal = CreateTestSharedQuadState( - quad_to_target_transform, viewport_rect, root_pass.get(), gfx::RRectF()); + quad_to_target_transform, viewport_rect, root_pass.get(), gfx::MaskFilterInfo()); auto* white = root_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); white->SetNew(shared_state_normal, red_rect, red_rect, SK_ColorWHITE, false); @@ -4670,15 +4700,15 @@ blue_rrect.Offset(blue_offset_from_target); gfx::Transform quad_to_target_transform; quad_to_target_transform.Translate(blue_offset_from_target); - SharedQuadState* shared_state_with_rrect = - CreateTestSharedQuadState(quad_to_target_transform, child_pass_local_rect, - child_pass.get(), blue_rrect); + SharedQuadState* shared_state_with_rrect = CreateTestSharedQuadState( + quad_to_target_transform, child_pass_local_rect, child_pass.get(), + gfx::MaskFilterInfo(blue_rrect, gfx::LinearGradient())); auto* blue = child_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); blue->SetNew(shared_state_with_rrect, blue_rect, blue_rect, SK_ColorBLUE, false); SharedQuadState* shared_state_without_rrect = CreateTestSharedQuadState( - gfx::Transform(), child_pass_local_rect, child_pass.get(), gfx::RRectF()); + gfx::Transform(), child_pass_local_rect, child_pass.get(), gfx::MaskFilterInfo()); gfx::Rect yellow_rect = child_pass_local_rect; yellow_rect.Offset(30, -60); auto* yellow = child_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); @@ -4691,8 +4721,9 @@ SK_ColorWHITE, false); gfx::RRectF rounded_corner_bounds(gfx::RectF(pass_rect), kCornerRadius); - SharedQuadState* pass_shared_state = CreateTestSharedQuadState( - gfx::Transform(), pass_rect, root_pass.get(), rounded_corner_bounds); + SharedQuadState* pass_shared_state = + CreateTestSharedQuadState(gfx::Transform(), pass_rect, root_pass.get(), + gfx::MaskFilterInfo(rounded_corner_bounds, gfx::LinearGradient())); CreateTestRenderPassDrawQuad(pass_shared_state, pass_rect, child_pass_id, root_pass.get()); @@ -4721,9 +4752,9 @@ blue_rect.set_height(blue_rect.height() / 2); gfx::Transform quad_to_target_transform; - SharedQuadState* shared_state_normal = - CreateTestSharedQuadState(quad_to_target_transform, pass_rect, - root_pass.get(), rounded_corner_bounds); + SharedQuadState* shared_state_normal = CreateTestSharedQuadState( + quad_to_target_transform, pass_rect, root_pass.get(), + gfx::MaskFilterInfo(rounded_corner_bounds, gfx::LinearGradient())); auto* blue = root_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); blue->SetNew(shared_state_normal, blue_rect, blue_rect, SK_ColorBLUE, false); @@ -4735,7 +4766,7 @@ false); SharedQuadState* sqs_white = CreateTestSharedQuadState( - quad_to_target_transform, viewport_rect, root_pass.get(), gfx::RRectF()); + quad_to_target_transform, viewport_rect, root_pass.get(), gfx::MaskFilterInfo()); gfx::Rect white_rect = gfx::Rect(this->device_viewport_size_); auto* white = root_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); white->SetNew(sqs_white, white_rect, white_rect, SK_ColorWHITE, false); @@ -4799,16 +4830,23 @@ ll_rect.set_height(lr_rect.height()); SharedQuadState* shared_state_normal_ul = CreateTestSharedQuadState( - gfx::Transform(), pass_rect, root_pass.get(), rounded_corner_bounds_ul); + gfx::Transform(), pass_rect, root_pass.get(), + gfx::MaskFilterInfo(rounded_corner_bounds_ul, gfx::LinearGradient())); SharedQuadState* shared_state_normal_ur = CreateTestSharedQuadState( - gfx::Transform(), pass_rect, root_pass.get(), rounded_corner_bounds_ur); + gfx::Transform(), pass_rect, root_pass.get(), + gfx::MaskFilterInfo(rounded_corner_bounds_ur, + gfx::LinearGradient())); SharedQuadState* shared_state_normal_lr = CreateTestSharedQuadState( - gfx::Transform(), pass_rect, root_pass.get(), rounded_corner_bounds_lr); + gfx::Transform(), pass_rect, root_pass.get(), + gfx::MaskFilterInfo(rounded_corner_bounds_lr, + gfx::LinearGradient())); SharedQuadState* shared_state_normal_ll = CreateTestSharedQuadState( - gfx::Transform(), pass_rect, root_pass.get(), rounded_corner_bounds_ll); + gfx::Transform(), pass_rect, root_pass.get(), + gfx::MaskFilterInfo(rounded_corner_bounds_ll, + gfx::LinearGradient())); auto* ul = root_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); auto* ur = root_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); @@ -4821,7 +4859,7 @@ ll->SetNew(shared_state_normal_ll, ll_rect, ll_rect, SK_ColorYELLOW, false); SharedQuadState* sqs_white = CreateTestSharedQuadState( - gfx::Transform(), viewport_rect, root_pass.get(), gfx::RRectF()); + gfx::Transform(), viewport_rect, root_pass.get(), gfx::MaskFilterInfo()); gfx::Rect white_rect = gfx::Rect(this->device_viewport_size_); auto* white = root_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); white->SetNew(sqs_white, white_rect, white_rect, SK_ColorWHITE, false); @@ -4865,8 +4903,9 @@ pass.get()); gfx::Transform bg_quad_to_target_transform; - SharedQuadState* bg_shared_state = CreateTestSharedQuadState( - bg_quad_to_target_transform, rect, pass.get(), gfx::RRectF()); + SharedQuadState* bg_shared_state = + CreateTestSharedQuadState(bg_quad_to_target_transform, rect, pass.get(), + gfx::MaskFilterInfo()); auto* bg = pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); bg->SetNew(bg_shared_state, rect, rect, SK_ColorBLACK, false); @@ -5010,8 +5049,9 @@ // Append a quad to execute the transform. { - SharedQuadState* shared_state = CreateTestSharedQuadState( - gfx::Transform(), rect, pass.get(), gfx::RRectF()); + SharedQuadState* shared_state = + CreateTestSharedQuadState(gfx::Transform(), rect, pass.get(), + gfx::MaskFilterInfo()); ResourceId resource = CreateGpuResource( this->child_context_provider_, this->child_resource_provider_.get(), @@ -5162,7 +5202,7 @@ CreateTestRootRenderPass(id, rect, damage_rect); SharedQuadState* shared_state = CreateTestSharedQuadState( - gfx::Transform(), rect, pass.get(), gfx::RRectF()); + gfx::Transform(), rect, pass.get(), gfx::MaskFilterInfo()); SolidColorDrawQuad* color_quad = pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); @@ -5337,7 +5377,7 @@ auto pass = CreateTestRootRenderPass(id, rect, rect); SharedQuadState* shared_state = CreateTestSharedQuadState( - gfx::Transform(), rect, pass.get(), gfx::RRectF()); + gfx::Transform(), rect, pass.get(), gfx::MaskFilterInfo()); CreateTestTextureDrawQuad( !is_software_renderer(), gfx::Rect(this->device_viewport_size_), @@ -5379,7 +5419,7 @@ auto child_pass = CreateTestRenderPass(child_id, rect, gfx::Transform()); SharedQuadState* child_shared_state = CreateTestSharedQuadState( - gfx::Transform(), rect, child_pass.get(), gfx::RRectF()); + gfx::Transform(), rect, child_pass.get(), gfx::MaskFilterInfo()); auto* color_quad = child_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); color_quad->SetNew(child_shared_state, rect, rect, SK_ColorGREEN, false); @@ -5388,7 +5428,7 @@ auto root_pass = CreateTestRootRenderPass(root_id, rect, rect); SharedQuadState* root_shared_state = CreateTestSharedQuadState( - gfx::Transform(), rect, root_pass.get(), gfx::RRectF()); + gfx::Transform(), rect, root_pass.get(), gfx::MaskFilterInfo()); CreateTestRenderPassDrawQuad(root_shared_state, rect, child_id, root_pass.get());
diff --git a/components/viz/service/display/skia_renderer.cc b/components/viz/service/display/skia_renderer.cc index 32a9b6f3..d79eae4d 100644 --- a/components/viz/service/display/skia_renderer.cc +++ b/components/viz/service/display/skia_renderer.cc
@@ -499,9 +499,12 @@ // Optional restricted draw geometry, will point to a length 4 SkPoint array // with its points in CW order matching Skia's vertex/edge expectations. absl::optional<SkDrawRegion> draw_region; - // Optional rounded corner clip to apply. If present, it will have been - // transformed to device space and ShouldApplyRoundedCorner returns true. - absl::optional<gfx::RRectF> rounded_corner_bounds; + // Optional mask filter info that may contain rounded corner clip and/or a + // gradient mask to apply. If present, rounded corner clip will have been + // transformed to device space and ShouldApplyRoundedCorner returns true. If + // present, gradient mask will have been transformed to device space and + // ShouldApplyGradientMask returns true. + absl::optional<gfx::MaskFilterInfo> mask_filter_info; // Optional device space clip to apply. If present, it is equal to the current // |scissor_rect_| of the renderer. absl::optional<gfx::Rect> scissor_rect; @@ -1057,7 +1060,7 @@ void SkiaRenderer::PrepareCanvas( const absl::optional<gfx::Rect>& scissor_rect, - const absl::optional<gfx::RRectF>& rounded_corner_bounds, + const absl::optional<gfx::MaskFilterInfo>& mask_filter_info, const gfx::Transform* cdt) { // Scissor is applied in the device space (CTM == I) and since no changes // to the canvas persist, CTM should already be the identity @@ -1067,8 +1070,11 @@ current_canvas_->clipRect(gfx::RectToSkRect(*scissor_rect)); } - if (rounded_corner_bounds.has_value()) - current_canvas_->clipRRect(SkRRect(*rounded_corner_bounds), true /* AA */); + if (mask_filter_info.has_value()) { + current_canvas_->clipRRect( + static_cast<SkRRect>(mask_filter_info->rounded_corner_bounds()), + /*doAntiAlias=*/true); + } if (cdt) { SkMatrix m; @@ -1343,13 +1349,15 @@ // corner_bounds is not empty and 'to_device' should just be scale+translate SkRRect device_bounds; if (corner_bounds.transform(to_device, &device_bounds)) { - params.rounded_corner_bounds.emplace(device_bounds); + params.mask_filter_info.emplace( + gfx::MaskFilterInfo(gfx::RRectF(device_bounds))); } else { // TODO(crbug/1220004): We used to assert transform succeeded, but an // unreproduceable fuzzer test case could trip it. To be safe, and to // match the most likely scenario that the device transform has scale=0, // just force the clip to empty so we don't draw anything. - params.rounded_corner_bounds.emplace(SkRRect::MakeEmpty()); + params.mask_filter_info.emplace( + gfx::MaskFilterInfo(gfx::RRectF(SkRRect::MakeEmpty()))); } } @@ -1623,7 +1631,8 @@ // Rounded corner bounds are in device space, which gets tricky when bypassing // the device that the RP would have represented - DCHECK(!bypass_params.rounded_corner_bounds.has_value()); + DCHECK(!bypass_params.mask_filter_info.has_value()); + return BypassMode::kDrawBypassQuad; } @@ -1706,8 +1715,7 @@ return true; } - if (batched_quad_state_.rounded_corner_bounds != - params.rounded_corner_bounds) { + if (batched_quad_state_.mask_filter_info != params.mask_filter_info) { return true; } @@ -1728,7 +1736,7 @@ // Configure batch state if it's the first if (batched_quads_.empty()) { batched_quad_state_.scissor_rect = params->scissor_rect; - batched_quad_state_.rounded_corner_bounds = params->rounded_corner_bounds; + batched_quad_state_.mask_filter_info = params->mask_filter_info; batched_quad_state_.blend_mode = params->blend_mode; batched_quad_state_.sampling = params->sampling; batched_quad_state_.constraint = constraint; @@ -1758,7 +1766,7 @@ SkAutoCanvasRestore acr(current_canvas_, true /* do_save */); PrepareCanvas(batched_quad_state_.scissor_rect, - batched_quad_state_.rounded_corner_bounds, nullptr); + batched_quad_state_.mask_filter_info, nullptr); SkPaint paint; sk_sp<SkColorFilter> color_filter = GetContentColorFilter(); @@ -1783,7 +1791,7 @@ DCHECK(batched_quads_.empty()); SkAutoCanvasRestore acr(current_canvas_, true /* do_save */); - PrepareCanvas(params->scissor_rect, params->rounded_corner_bounds, + PrepareCanvas(params->scissor_rect, params->mask_filter_info, ¶ms->content_device_transform); if (rpdq_params) { @@ -1822,7 +1830,7 @@ TRACE_EVENT0("viz", "SkiaRenderer::DrawSingleImage"); SkAutoCanvasRestore acr(current_canvas_, true /* do_save */); - PrepareCanvas(params->scissor_rect, params->rounded_corner_bounds, + PrepareCanvas(params->scissor_rect, params->mask_filter_info, ¶ms->content_device_transform); int matrix_index = -1; @@ -1870,7 +1878,7 @@ FlushBatchedQuads(); SkAutoCanvasRestore auto_canvas_restore(current_canvas_, true /* do_save */); - PrepareCanvas(params->scissor_rect, params->rounded_corner_bounds, + PrepareCanvas(params->scissor_rect, params->mask_filter_info, ¶ms->content_device_transform); auto visible_rect = gfx::RectFToSkRect(params->visible_rect); @@ -1913,7 +1921,7 @@ SkAutoCanvasRestore acr(current_canvas_, true /* do_save */); // We need to apply the matrix manually to have pixel-sized stroke width. - PrepareCanvas(params->scissor_rect, params->rounded_corner_bounds, nullptr); + PrepareCanvas(params->scissor_rect, params->mask_filter_info, nullptr); SkMatrix cdt; gfx::TransformToFlattenedSkMatrix(params->content_device_transform, &cdt); @@ -1946,7 +1954,8 @@ params->sampling == SkSamplingOptions(); SkAutoCanvasRestore acr(current_canvas_, true /* do_save */); - PrepareCanvas(params->scissor_rect, params->rounded_corner_bounds, + PrepareCanvas(params->scissor_rect, + params->mask_filter_info, ¶ms->content_device_transform); // Unlike other quads which draw visible_rect or draw_region as their geometry @@ -3083,9 +3092,8 @@ -filter_bounds.y()); // Also adjust the |rounded_corner_bounds| to the new location. - if (params.rounded_corner_bounds) { - params.rounded_corner_bounds->Offset(-filter_bounds.x(), - -filter_bounds.y()); + if (params.mask_filter_info) { + params.mask_filter_info->Transform(params.content_device_transform); } // When Render Pass has a single quad inside we would draw that directly.
diff --git a/components/viz/service/display/skia_renderer.h b/components/viz/service/display/skia_renderer.h index fcb96836..6028029 100644 --- a/components/viz/service/display/skia_renderer.h +++ b/components/viz/service/display/skia_renderer.h
@@ -116,11 +116,13 @@ void ClearFramebuffer(); // Callers should init an SkAutoCanvasRestore before calling this function. - // |scissor_rect| and |rounded_corner_bounds| should be in device space, + // |scissor_rect| and |mask_filter_info| should be in device space, // i.e. same space that |cdt| will transform subsequent draws into. - void PrepareCanvas(const absl::optional<gfx::Rect>& scissor_rect, - const absl::optional<gfx::RRectF>& rounded_corner_bounds, - const gfx::Transform* cdt); + void PrepareCanvas( + const absl::optional<gfx::Rect>& scissor_rect, + const absl::optional<gfx::MaskFilterInfo>& mask_filter_info, + const gfx::Transform* cdt); + // Further modify the canvas as needed to apply the effects represented by // |rpdq_params|. Call Prepare[Paint|Color]OrCanvasForRPDQ when possible, // in order apply the RPDQ effects into a more efficient format. @@ -295,7 +297,7 @@ // captured by this state cannot be batched. struct BatchedQuadState { absl::optional<gfx::Rect> scissor_rect; - absl::optional<gfx::RRectF> rounded_corner_bounds; + absl::optional<gfx::MaskFilterInfo> mask_filter_info; SkBlendMode blend_mode; SkSamplingOptions sampling; SkCanvas::SrcRectConstraint constraint;
diff --git a/components/viz/test/data/render_pass_data/multi_surface_test/youtube_tab_focused/1641.json b/components/viz/test/data/render_pass_data/multi_surface_test/youtube_tab_focused/1641.json index 55ca89b..85d65a6 100644 --- a/components/viz/test/data/render_pass_data/multi_surface_test/youtube_tab_focused/1641.json +++ b/components/viz/test/data/render_pass_data/multi_surface_test/youtube_tab_focused/1641.json
@@ -717,8 +717,10 @@ "y": 0 }, "quad_to_target_transform": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 3.0, 1167.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "type": "kEmpty" + } }, "sorting_context_id": 0, "visible_quad_layer_rect": { @@ -746,8 +748,10 @@ "y": 0 }, "quad_to_target_transform": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 4.0, 81.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "type": "kEmpty" + } }, "sorting_context_id": 0, "visible_quad_layer_rect": { @@ -769,8 +773,10 @@ "y": 0 }, "quad_to_target_transform": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 112.0, 47.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "type": "kEmpty" + } }, "sorting_context_id": 0, "visible_quad_layer_rect": { @@ -792,8 +798,10 @@ "y": 0 }, "quad_to_target_transform": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "type": "kEmpty" + } }, "sorting_context_id": 0, "visible_quad_layer_rect": { @@ -1396,8 +1404,10 @@ "y": 0 }, "quad_to_target_transform": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1124.0, 0.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "type": "kEmpty" + } }, "sorting_context_id": 0, "visible_quad_layer_rect": { @@ -1425,8 +1435,10 @@ "y": 0 }, "quad_to_target_transform": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 56.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "type": "kEmpty" + } }, "sorting_context_id": 0, "visible_quad_layer_rect": { @@ -1454,8 +1466,10 @@ "y": -1000 }, "quad_to_target_transform": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "type": "kEmpty" + } }, "sorting_context_id": 0, "visible_quad_layer_rect": { @@ -1483,8 +1497,10 @@ "y": 0 }, "quad_to_target_transform": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1018.0, 57.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "type": "kEmpty" + } }, "sorting_context_id": 0, "visible_quad_layer_rect": { @@ -1512,8 +1528,10 @@ "y": 0 }, "quad_to_target_transform": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 72.0, 57.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "type": "kEmpty" + } }, "sorting_context_id": 0, "visible_quad_layer_rect": { @@ -1541,8 +1559,10 @@ "y": 0 }, "quad_to_target_transform": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 72.0, 56.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "type": "kEmpty" + } }, "sorting_context_id": 0, "visible_quad_layer_rect": { @@ -1570,8 +1590,10 @@ "y": 0 }, "quad_to_target_transform": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 822.0, 960.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "type": "kEmpty" + } }, "sorting_context_id": 0, "visible_quad_layer_rect": { @@ -1599,8 +1621,10 @@ "y": 0 }, "quad_to_target_transform": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 486.0, 980.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "type": "kEmpty" + } }, "sorting_context_id": 0, "visible_quad_layer_rect": { @@ -1628,8 +1652,10 @@ "y": 0 }, "quad_to_target_transform": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 150.0, 980.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "type": "kEmpty" + } }, "sorting_context_id": 0, "visible_quad_layer_rect": { @@ -1657,8 +1683,10 @@ "y": 0 }, "quad_to_target_transform": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 822.0, 666.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "type": "kEmpty" + } }, "sorting_context_id": 0, "visible_quad_layer_rect": { @@ -1686,8 +1714,10 @@ "y": 0 }, "quad_to_target_transform": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 486.0, 666.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "type": "kEmpty" + } }, "sorting_context_id": 0, "visible_quad_layer_rect": { @@ -1715,8 +1745,10 @@ "y": 0 }, "quad_to_target_transform": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 150.0, 666.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "type": "kEmpty" + } }, "sorting_context_id": 0, "visible_quad_layer_rect": { @@ -1744,8 +1776,10 @@ "y": 0 }, "quad_to_target_transform": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "type": "kEmpty" + } }, "sorting_context_id": 0, "visible_quad_layer_rect": { @@ -1767,8 +1801,10 @@ "y": 0 }, "quad_to_target_transform": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "type": "kEmpty" + } }, "sorting_context_id": 0, "visible_quad_layer_rect": { @@ -2143,8 +2179,10 @@ "y": 0 }, "quad_to_target_transform": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1125.0, 0.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "type": "kEmpty" + } }, "sorting_context_id": 0, "visible_quad_layer_rect": { @@ -2172,8 +2210,10 @@ "y": 0 }, "quad_to_target_transform": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "type": "kEmpty" + } }, "sorting_context_id": 0, "visible_quad_layer_rect": { @@ -2201,8 +2241,10 @@ "y": 0 }, "quad_to_target_transform": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 48.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "type": "kEmpty" + } }, "sorting_context_id": 0, "visible_quad_layer_rect": { @@ -2230,8 +2272,10 @@ "y": 0 }, "quad_to_target_transform": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "type": "kEmpty" + } }, "sorting_context_id": 0, "visible_quad_layer_rect": { @@ -3430,8 +3474,10 @@ "y": 0 }, "quad_to_target_transform": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1125.0, 1092.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "type": "kEmpty" + } }, "sorting_context_id": 0, "visible_quad_layer_rect": { @@ -3453,8 +3499,10 @@ "y": 0 }, "quad_to_target_transform": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1125.0, 0.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "type": "kEmpty" + } }, "sorting_context_id": 0, "visible_quad_layer_rect": { @@ -3476,8 +3524,10 @@ "y": 0 }, "quad_to_target_transform": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1092.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "type": "kEmpty" + } }, "sorting_context_id": 0, "visible_quad_layer_rect": { @@ -3505,8 +3555,10 @@ "y": 0 }, "quad_to_target_transform": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 103.0, 1.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "type": "kEmpty" + } }, "sorting_context_id": 0, "visible_quad_layer_rect": { @@ -3534,8 +3586,10 @@ "y": 0 }, "quad_to_target_transform": [ 0.699999988079071, 0.0, 0.0, 0.0, 0.0, 0.699999988079071, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1057.0, 369.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "type": "kEmpty" + } }, "sorting_context_id": 0, "visible_quad_layer_rect": { @@ -3563,8 +3617,10 @@ "y": 0 }, "quad_to_target_transform": [ 0.699999988079071, 0.0, 0.0, 0.0, 0.0, 0.699999988079071, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 999.0, 369.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "type": "kEmpty" + } }, "sorting_context_id": 0, "visible_quad_layer_rect": { @@ -3592,8 +3648,10 @@ "y": 0 }, "quad_to_target_transform": [ 0.699999988079071, 0.0, 0.0, 0.0, 0.0, 0.699999988079071, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 941.0, 369.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "type": "kEmpty" + } }, "sorting_context_id": 0, "visible_quad_layer_rect": { @@ -3621,8 +3679,10 @@ "y": 0 }, "quad_to_target_transform": [ 0.699999988079071, 0.0, 0.0, 0.0, 0.0, 0.699999988079071, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 883.0, 369.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "type": "kEmpty" + } }, "sorting_context_id": 0, "visible_quad_layer_rect": { @@ -3650,8 +3710,10 @@ "y": 0 }, "quad_to_target_transform": [ 0.699999988079071, 0.0, 0.0, 0.0, 0.0, 0.699999988079071, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 825.0, 369.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "type": "kEmpty" + } }, "sorting_context_id": 0, "visible_quad_layer_rect": { @@ -3679,8 +3741,10 @@ "y": 0 }, "quad_to_target_transform": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 546.0, 990.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "type": "kEmpty" + } }, "sorting_context_id": 0, "visible_quad_layer_rect": { @@ -3708,8 +3772,10 @@ "y": 0 }, "quad_to_target_transform": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 546.0, 946.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "type": "kEmpty" + } }, "sorting_context_id": 0, "visible_quad_layer_rect": { @@ -3737,8 +3803,10 @@ "y": 0 }, "quad_to_target_transform": [ 0.5328184962272644, 0.0, 0.0, 0.0, 0.0, 0.5328184962272644, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 546.0, 852.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "type": "kEmpty" + } }, "sorting_context_id": 0, "visible_quad_layer_rect": { @@ -3766,8 +3834,10 @@ "y": -1 }, "quad_to_target_transform": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 546.0, 852.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "type": "kEmpty" + } }, "sorting_context_id": 0, "visible_quad_layer_rect": { @@ -3795,8 +3865,10 @@ "y": 0 }, "quad_to_target_transform": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 281.0, 990.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "type": "kEmpty" + } }, "sorting_context_id": 0, "visible_quad_layer_rect": { @@ -3824,8 +3896,10 @@ "y": 0 }, "quad_to_target_transform": [ 0.5328184962272644, 0.0, 0.0, 0.0, 0.0, 0.5328184962272644, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 281.0, 852.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "type": "kEmpty" + } }, "sorting_context_id": 0, "visible_quad_layer_rect": { @@ -3853,8 +3927,10 @@ "y": -1 }, "quad_to_target_transform": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 281.0, 852.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "type": "kEmpty" + } }, "sorting_context_id": 0, "visible_quad_layer_rect": { @@ -3882,8 +3958,10 @@ "y": 0 }, "quad_to_target_transform": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 17.0, 990.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "type": "kEmpty" + } }, "sorting_context_id": 0, "visible_quad_layer_rect": { @@ -3911,8 +3989,10 @@ "y": 0 }, "quad_to_target_transform": [ 0.5328184962272644, 0.0, 0.0, 0.0, 0.0, 0.5328184962272644, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 17.0, 852.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "type": "kEmpty" + } }, "sorting_context_id": 0, "visible_quad_layer_rect": { @@ -3940,8 +4020,10 @@ "y": -1 }, "quad_to_target_transform": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 17.0, 852.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "type": "kEmpty" + } }, "sorting_context_id": 0, "visible_quad_layer_rect": { @@ -3969,8 +4051,10 @@ "y": 0 }, "quad_to_target_transform": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 17.0, 626.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "type": "kEmpty" + } }, "sorting_context_id": 0, "visible_quad_layer_rect": { @@ -3998,8 +4082,10 @@ "y": 0 }, "quad_to_target_transform": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 17.0, 584.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "type": "kEmpty" + } }, "sorting_context_id": 0, "visible_quad_layer_rect": { @@ -4027,8 +4113,10 @@ "y": 0 }, "quad_to_target_transform": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 17.0, 426.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "type": "kEmpty" + } }, "sorting_context_id": 0, "visible_quad_layer_rect": { @@ -4056,8 +4144,10 @@ "y": 0 }, "quad_to_target_transform": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 17.0, 426.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "type": "kEmpty" + } }, "sorting_context_id": 0, "visible_quad_layer_rect": { @@ -4085,8 +4175,10 @@ "y": 0 }, "quad_to_target_transform": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 958.0, 98.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "type": "kEmpty" + } }, "sorting_context_id": 0, "visible_quad_layer_rect": { @@ -4114,8 +4206,10 @@ "y": 0 }, "quad_to_target_transform": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 78.0, 113.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "type": "kEmpty" + } }, "sorting_context_id": 0, "visible_quad_layer_rect": { @@ -4143,8 +4237,10 @@ "y": 0 }, "quad_to_target_transform": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 78.0, 113.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "type": "kEmpty" + } }, "sorting_context_id": 0, "visible_quad_layer_rect": { @@ -4172,8 +4268,10 @@ "y": 0 }, "quad_to_target_transform": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 16.0, 15.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "type": "kEmpty" + } }, "sorting_context_id": 0, "visible_quad_layer_rect": { @@ -4201,8 +4299,10 @@ "y": 0 }, "quad_to_target_transform": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 915.0, 18.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "type": "kEmpty" + } }, "sorting_context_id": 0, "visible_quad_layer_rect": { @@ -4230,8 +4330,10 @@ "y": 0 }, "quad_to_target_transform": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 809.0, 457.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "type": "kEmpty" + } }, "sorting_context_id": 0, "visible_quad_layer_rect": { @@ -4259,8 +4361,10 @@ "y": 0 }, "quad_to_target_transform": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "type": "kEmpty" + } }, "sorting_context_id": 0, "visible_quad_layer_rect": { @@ -4282,8 +4386,10 @@ "y": 0 }, "quad_to_target_transform": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "type": "kEmpty" + } }, "sorting_context_id": 0, "visible_quad_layer_rect": { @@ -4401,8 +4507,10 @@ "y": 0 }, "quad_to_target_transform": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "type": "kEmpty" + } }, "sorting_context_id": 0, "visible_quad_layer_rect": { @@ -4518,8 +4626,10 @@ "y": 0 }, "quad_to_target_transform": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "type": "kEmpty" + } }, "sorting_context_id": 0, "visible_quad_layer_rect": { @@ -5583,8 +5693,10 @@ "y": 0 }, "quad_to_target_transform": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "type": "kEmpty" + } }, "sorting_context_id": 0, "visible_quad_layer_rect": { @@ -5784,8 +5896,10 @@ "y": 0 }, "quad_to_target_transform": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "type": "kEmpty" + } }, "sorting_context_id": 0, "visible_quad_layer_rect": {
diff --git a/components/viz/test/data/render_pass_data/top_real_world_desktop/espn_2018/0463.json b/components/viz/test/data/render_pass_data/top_real_world_desktop/espn_2018/0463.json index 6b36c76..9897effe 100644 --- a/components/viz/test/data/render_pass_data/top_real_world_desktop/espn_2018/0463.json +++ b/components/viz/test/data/render_pass_data/top_real_world_desktop/espn_2018/0463.json
@@ -113,22 +113,24 @@ "y": 0 }, "quad_to_target_transform": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 161.0, 139.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "lower_left.x": 12.5, "lower_left.y": 12.5, "lower_right.x": 0.0, "lower_right.y": 0.0, "rect": { - "height": 167.0, - "width": 298.0, - "x": 20.0, - "y": 65.0 + "height": 167.0, + "width": 298.0, + "x": 20.0, + "y": 65.0 }, "type": "kComplex", "upper_left.x": 12.5, "upper_left.y": 12.5, "upper_right.x": 0.0, "upper_right.y": 0.0 + } }, "sorting_context_id": 0, "visible_quad_layer_rect": { @@ -156,22 +158,24 @@ "y": 0 }, "quad_to_target_transform": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 149.0, 129.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "lower_left.x": 12.5, "lower_left.y": 12.5, "lower_right.x": 0.0, "lower_right.y": 0.0, "rect": { - "height": 167.0, - "width": 298.0, - "x": 20.0, - "y": 65.0 + "height": 167.0, + "width": 298.0, + "x": 20.0, + "y": 65.0 }, "type": "kComplex", "upper_left.x": 12.5, "upper_left.y": 12.5, "upper_right.x": 0.0, "upper_right.y": 0.0 + } }, "sorting_context_id": 1873712234, "visible_quad_layer_rect": { @@ -272,22 +276,24 @@ "y": 129 }, "quad_to_target_transform": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "lower_left.x": 12.5, "lower_left.y": 12.5, "lower_right.x": 12.5, "lower_right.y": 12.5, "rect": { - "height": 167.0, - "width": 785.0, - "x": 20.0, - "y": 65.0 + "height": 167.0, + "width": 785.0, + "x": 20.0, + "y": 65.0 }, "type": "kSingle", "upper_left.x": 12.5, "upper_left.y": 12.5, "upper_right.x": 12.5, "upper_right.y": 12.5 + } }, "sorting_context_id": 0, "visible_quad_layer_rect": { @@ -464,8 +470,10 @@ "y": 0 }, "quad_to_target_transform": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 611.0, 433.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "type": "kEmpty" + } }, "sorting_context_id": 0, "visible_quad_layer_rect": { @@ -493,8 +501,10 @@ "y": 0 }, "quad_to_target_transform": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 411.0, 433.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "type": "kEmpty" + } }, "sorting_context_id": 0, "visible_quad_layer_rect": { @@ -522,8 +532,10 @@ "y": 0 }, "quad_to_target_transform": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 212.0, 433.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "type": "kEmpty" + } }, "sorting_context_id": 0, "visible_quad_layer_rect": { @@ -551,8 +563,10 @@ "y": 0 }, "quad_to_target_transform": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 12.0, 433.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "type": "kEmpty" + } }, "sorting_context_id": 0, "visible_quad_layer_rect": { @@ -669,22 +683,24 @@ "y": -6 }, "quad_to_target_transform": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 494.0, 579.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "lower_left.x": 12.5, "lower_left.y": 12.5, "lower_right.x": 0.0, "lower_right.y": 0.0, "rect": { - "height": 167.0, - "width": 167.0, - "x": 418.0, - "y": 499.0 + "height": 167.0, + "width": 167.0, + "x": 418.0, + "y": 499.0 }, "type": "kComplex", "upper_left.x": 12.5, "upper_left.y": 12.5, "upper_right.x": 0.0, "upper_right.y": 0.0 + } }, "sorting_context_id": 0, "visible_quad_layer_rect": { @@ -712,22 +728,24 @@ "y": -16 }, "quad_to_target_transform": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 481.0, 579.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "lower_left.x": 12.5, "lower_left.y": 12.5, "lower_right.x": 0.0, "lower_right.y": 0.0, "rect": { - "height": 167.0, - "width": 167.0, - "x": 418.0, - "y": 499.0 + "height": 167.0, + "width": 167.0, + "x": 418.0, + "y": 499.0 }, "type": "kComplex", "upper_left.x": 12.5, "upper_left.y": 12.5, "upper_right.x": 0.0, "upper_right.y": 0.0 + } }, "sorting_context_id": 1713838396, "visible_quad_layer_rect": { @@ -844,22 +862,24 @@ "y": -6 }, "quad_to_target_transform": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 96.0, 579.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "lower_left.x": 12.5, "lower_left.y": 12.5, "lower_right.x": 0.0, "lower_right.y": 0.0, "rect": { - "height": 167.0, - "width": 168.0, - "x": 20.0, - "y": 499.0 + "height": 167.0, + "width": 168.0, + "x": 20.0, + "y": 499.0 }, "type": "kComplex", "upper_left.x": 12.5, "upper_left.y": 12.5, "upper_right.x": 0.0, "upper_right.y": 0.0 + } }, "sorting_context_id": 0, "visible_quad_layer_rect": { @@ -887,22 +907,24 @@ "y": -16 }, "quad_to_target_transform": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 84.0, 579.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "lower_left.x": 12.5, "lower_left.y": 12.5, "lower_right.x": 0.0, "lower_right.y": 0.0, "rect": { - "height": 167.0, - "width": 168.0, - "x": 20.0, - "y": 499.0 + "height": 167.0, + "width": 168.0, + "x": 20.0, + "y": 499.0 }, "type": "kComplex", "upper_left.x": 12.5, "upper_left.y": 12.5, "upper_right.x": 0.0, "upper_right.y": 0.0 + } }, "sorting_context_id": -1049879514, "visible_quad_layer_rect": { @@ -1047,22 +1069,24 @@ "y": 563 }, "quad_to_target_transform": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "lower_left.x": 12.5, "lower_left.y": 12.5, "lower_right.x": 12.5, "lower_right.y": 12.5, "rect": { - "height": 167.0, - "width": 387.0, - "x": 418.0, - "y": 499.0 + "height": 167.0, + "width": 387.0, + "x": 418.0, + "y": 499.0 }, "type": "kSingle", "upper_left.x": 12.5, "upper_left.y": 12.5, "upper_right.x": 12.5, "upper_right.y": 12.5 + } }, "sorting_context_id": 0, "visible_quad_layer_rect": { @@ -1090,22 +1114,24 @@ "y": 563 }, "quad_to_target_transform": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "lower_left.x": 12.5, "lower_left.y": 12.5, "lower_right.x": 12.5, "lower_right.y": 12.5, "rect": { - "height": 167.0, - "width": 388.0, - "x": 20.0, - "y": 499.0 + "height": 167.0, + "width": 388.0, + "x": 20.0, + "y": 499.0 }, "type": "kSingle", "upper_left.x": 12.5, "upper_left.y": 12.5, "upper_right.x": 12.5, "upper_right.y": 12.5 + } }, "sorting_context_id": 0, "visible_quad_layer_rect": { @@ -2628,8 +2654,10 @@ "y": 0 }, "quad_to_target_transform": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 155.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "type": "kEmpty" + } }, "sorting_context_id": 0, "visible_quad_layer_rect": { @@ -2657,8 +2685,10 @@ "y": 0 }, "quad_to_target_transform": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 100.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "type": "kEmpty" + } }, "sorting_context_id": 0, "visible_quad_layer_rect": { @@ -2686,8 +2716,10 @@ "y": 0 }, "quad_to_target_transform": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1563.0, 155.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "type": "kEmpty" + } }, "sorting_context_id": 0, "visible_quad_layer_rect": { @@ -2715,8 +2747,10 @@ "y": 0 }, "quad_to_target_transform": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, -0.7815000414848328, -0.1418750137090683, 1.0, -0.0010000000474974513, -88.0, 155.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "type": "kEmpty" + } }, "sorting_context_id": -1804539955, "visible_quad_layer_rect": { @@ -2744,8 +2778,10 @@ "y": 0 }, "quad_to_target_transform": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, -0.7815000414848328, -0.1418750137090683, 1.0, -0.0010000000474974513, -26.0, 155.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "type": "kEmpty" + } }, "sorting_context_id": -1804539955, "visible_quad_layer_rect": { @@ -2773,8 +2809,10 @@ "y": 0 }, "quad_to_target_transform": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, -0.7815000414848328, -0.1418750137090683, 1.0, -0.0010000000474974513, -1.0, 155.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "type": "kEmpty" + } }, "sorting_context_id": -1804539955, "visible_quad_layer_rect": { @@ -2802,22 +2840,24 @@ "y": 129 }, "quad_to_target_transform": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 319.0, 1101.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "lower_left.x": 12.5, "lower_left.y": 12.5, "lower_right.x": 12.5, "lower_right.y": 12.5, "rect": { - "height": 252.0, - "width": 825.0, - "x": 319.0, - "y": 1101.0 + "height": 252.0, + "width": 825.0, + "x": 319.0, + "y": 1101.0 }, "type": "kSingle", "upper_left.x": 12.5, "upper_left.y": 12.5, "upper_right.x": 12.5, "upper_right.y": 12.5 + } }, "sorting_context_id": 0, "visible_quad_layer_rect": { @@ -2845,8 +2885,10 @@ "y": 0 }, "quad_to_target_transform": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 319.0, 1101.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "type": "kEmpty" + } }, "sorting_context_id": 0, "visible_quad_layer_rect": { @@ -2874,22 +2916,24 @@ "y": 433 }, "quad_to_target_transform": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 319.0, 320.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "lower_left.x": 12.5, "lower_left.y": 12.5, "lower_right.x": 12.5, "lower_right.y": 12.5, "rect": { - "height": 768.0, - "width": 825.0, - "x": 319.0, - "y": 320.0 + "height": 768.0, + "width": 825.0, + "x": 319.0, + "y": 320.0 }, "type": "kSingle", "upper_left.x": 12.5, "upper_left.y": 12.5, "upper_right.x": 12.5, "upper_right.y": 12.5 + } }, "sorting_context_id": 0, "visible_quad_layer_rect": { @@ -2917,8 +2961,10 @@ "y": 0 }, "quad_to_target_transform": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 319.0, 320.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "type": "kEmpty" + } }, "sorting_context_id": 0, "visible_quad_layer_rect": { @@ -2946,22 +2992,24 @@ "y": 579 }, "quad_to_target_transform": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 319.0, -424.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "lower_left.x": 12.5, "lower_left.y": 12.5, "lower_right.x": 12.5, "lower_right.y": 12.5, "rect": { - "height": 731.0, - "width": 825.0, - "x": 319.0, - "y": -424.0 + "height": 731.0, + "width": 825.0, + "x": 319.0, + "y": -424.0 }, "type": "kSingle", "upper_left.x": 12.5, "upper_left.y": 12.5, "upper_right.x": 12.5, "upper_right.y": 12.5 + } }, "sorting_context_id": 0, "visible_quad_layer_rect": { @@ -2989,8 +3037,10 @@ "y": -579 }, "quad_to_target_transform": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 319.0, 155.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "type": "kEmpty" + } }, "sorting_context_id": 0, "visible_quad_layer_rect": { @@ -3018,8 +3068,10 @@ "y": 0 }, "quad_to_target_transform": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, -3418.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "type": "kEmpty" + } }, "sorting_context_id": 0, "visible_quad_layer_rect": { @@ -3047,8 +3099,10 @@ "y": 0 }, "quad_to_target_transform": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 155.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "type": "kEmpty" + } }, "sorting_context_id": 0, "visible_quad_layer_rect": { @@ -3070,8 +3124,10 @@ "y": 0 }, "quad_to_target_transform": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 263.0, 67.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "type": "kEmpty" + } }, "sorting_context_id": 0, "visible_quad_layer_rect": { @@ -3093,8 +3149,10 @@ "y": 0 }, "quad_to_target_transform": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 135.0, 59.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "type": "kEmpty" + } }, "sorting_context_id": 0, "visible_quad_layer_rect": { @@ -3116,8 +3174,10 @@ "y": 0 }, "quad_to_target_transform": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 25.0, 23.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "type": "kEmpty" + } }, "sorting_context_id": 0, "visible_quad_layer_rect": { @@ -3139,8 +3199,10 @@ "y": 0 }, "quad_to_target_transform": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ], - "rounded_corner_bounds": { + "mask_filter_info": { + "rounded_corner_bounds": { "type": "kEmpty" + } }, "sorting_context_id": 0, "visible_quad_layer_rect": {
diff --git a/content/DEPS b/content/DEPS index f567a63..4315668 100644 --- a/content/DEPS +++ b/content/DEPS
@@ -27,6 +27,7 @@ "+components/browsing_topics/common", "+components/memory_pressure", + "+components/ml/mojom", "+components/power_scheduler", "+components/services/filesystem", "+components/services/font/public",
diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn index 610d6906..ba3a6e39 100644 --- a/content/browser/BUILD.gn +++ b/content/browser/BUILD.gn
@@ -73,6 +73,7 @@ "//components/link_header_util", "//components/metrics", "//components/metrics:single_sample_metrics", + "//components/ml/mojom", "//components/network_session_configurator/browser", "//components/offline_pages/buildflags", "//components/offline_pages/core/request_header", @@ -404,8 +405,6 @@ "attribution_reporting/attribution_filter_data.h", "attribution_reporting/attribution_host.cc", "attribution_reporting/attribution_host.h", - "attribution_reporting/attribution_host_utils.cc", - "attribution_reporting/attribution_host_utils.h", "attribution_reporting/attribution_info.cc", "attribution_reporting/attribution_info.h", "attribution_reporting/attribution_internals_handler_impl.cc", @@ -1263,6 +1262,10 @@ "metrics/histograms_monitor.h", "mime_registry_impl.cc", "mime_registry_impl.h", + "ml/ml_service_factory.cc", + "ml/ml_service_factory.h", + "ml/ml_service_impl.cc", + "ml/ml_service_impl.h", "mojo_binder_policy_applier.cc", "mojo_binder_policy_applier.h", "mojo_binder_policy_map_impl.cc", @@ -2091,6 +2094,8 @@ "webauth/client_data_json.h", "webauth/webauth_request_security_checker.cc", "webauth/webauth_request_security_checker.h", + "webid/fake_identity_request_dialog_controller.cc", + "webid/fake_identity_request_dialog_controller.h", "webid/fedcm_metrics.cc", "webid/fedcm_metrics.h", "webid/federated_auth_request_impl.cc", @@ -2396,6 +2401,8 @@ "lock_screen/lock_screen_service_impl.h", "lock_screen/lock_screen_storage_impl.cc", "lock_screen/lock_screen_storage_impl.h", + "ml/ml_service_impl_cros.cc", + "ml/ml_service_impl_cros.h", ] }
diff --git a/content/browser/attribution_reporting/attribution_host.cc b/content/browser/attribution_reporting/attribution_host.cc index b9820984..ae65d6b 100644 --- a/content/browser/attribution_reporting/attribution_host.cc +++ b/content/browser/attribution_reporting/attribution_host.cc
@@ -11,15 +11,18 @@ #include "base/metrics/histogram_macros.h" #include "base/time/time.h" #include "build/build_config.h" +#include "content/browser/attribution_reporting/attribution_aggregatable_source.h" #include "content/browser/attribution_reporting/attribution_aggregatable_trigger.h" #include "content/browser/attribution_reporting/attribution_data_host_manager.h" -#include "content/browser/attribution_reporting/attribution_host_utils.h" +#include "content/browser/attribution_reporting/attribution_filter_data.h" #include "content/browser/attribution_reporting/attribution_manager.h" #include "content/browser/attribution_reporting/attribution_manager_provider.h" #include "content/browser/attribution_reporting/attribution_metrics.h" #include "content/browser/attribution_reporting/attribution_page_metrics.h" #include "content/browser/attribution_reporting/attribution_source_type.h" #include "content/browser/attribution_reporting/attribution_trigger.h" +#include "content/browser/attribution_reporting/common_source_info.h" +#include "content/browser/attribution_reporting/storable_source.h" #include "content/browser/renderer_host/frame_tree.h" #include "content/browser/renderer_host/frame_tree_node.h" #include "content/browser/renderer_host/render_frame_host_impl.h" @@ -32,6 +35,7 @@ #include "mojo/public/cpp/bindings/message.h" #include "net/base/schemeful_site.h" #include "services/network/public/cpp/is_potentially_trustworthy.h" +#include "third_party/blink/public/common/navigation/impression.h" #include "url/gurl.h" #include "url/origin.h" @@ -201,9 +205,35 @@ return; } - attribution_host_utils::VerifyAndStoreImpression( - AttributionSourceType::kNavigation, impression_origin, impression, - *attribution_manager, base::Time::Now()); + // Convert |impression| into a StorableImpression that can be forwarded to + // storage. If a reporting origin was not provided, default to the impression + // origin for reporting. + const url::Origin& reporting_origin = !impression.reporting_origin + ? impression_origin + : *impression.reporting_origin; + + // Conversion measurement is only allowed in secure contexts. + if (!network::IsOriginPotentiallyTrustworthy(impression_origin) || + !network::IsOriginPotentiallyTrustworthy(reporting_origin) || + !network::IsOriginPotentiallyTrustworthy( + impression.conversion_destination)) { + return; + } + + const AttributionSourceType source_type = AttributionSourceType::kNavigation; + const base::Time impression_time = base::Time::Now(); + + StorableSource storable_impression( + // Impression data doesn't need to be sanitized. + CommonSourceInfo( + impression.impression_data, impression_origin, + impression.conversion_destination, reporting_origin, impression_time, + CommonSourceInfo::GetExpiryTime(impression.expiry, impression_time, + source_type), + source_type, impression.priority, AttributionFilterData(), + /*debug_key=*/absl::nullopt, AttributionAggregatableSource())); + + attribution_manager->HandleSource(std::move(storable_impression)); } void AttributionHost::MaybeNotifyFailedSourceNavigation(
diff --git a/content/browser/attribution_reporting/attribution_host_utils.cc b/content/browser/attribution_reporting/attribution_host_utils.cc deleted file mode 100644 index 19123e4b..0000000 --- a/content/browser/attribution_reporting/attribution_host_utils.cc +++ /dev/null
@@ -1,58 +0,0 @@ -// Copyright 2021 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "content/browser/attribution_reporting/attribution_host_utils.h" - -#include <utility> - -#include "base/time/time.h" -#include "content/browser/attribution_reporting/attribution_aggregatable_source.h" -#include "content/browser/attribution_reporting/attribution_filter_data.h" -#include "content/browser/attribution_reporting/attribution_manager.h" -#include "content/browser/attribution_reporting/common_source_info.h" -#include "content/browser/attribution_reporting/storable_source.h" -#include "services/network/public/cpp/is_potentially_trustworthy.h" -#include "third_party/blink/public/common/navigation/impression.h" -#include "url/origin.h" - -namespace content { - -namespace attribution_host_utils { - -void VerifyAndStoreImpression(AttributionSourceType source_type, - const url::Origin& impression_origin, - const blink::Impression& impression, - AttributionManager& attribution_manager, - base::Time impression_time) { - // Convert |impression| into a StorableImpression that can be forwarded to - // storage. If a reporting origin was not provided, default to the impression - // origin for reporting. - const url::Origin& reporting_origin = !impression.reporting_origin - ? impression_origin - : *impression.reporting_origin; - - // Conversion measurement is only allowed in secure contexts. - if (!network::IsOriginPotentiallyTrustworthy(impression_origin) || - !network::IsOriginPotentiallyTrustworthy(reporting_origin) || - !network::IsOriginPotentiallyTrustworthy( - impression.conversion_destination)) { - return; - } - - StorableSource storable_impression( - // Impression data doesn't need to be sanitized. - CommonSourceInfo( - impression.impression_data, impression_origin, - impression.conversion_destination, reporting_origin, impression_time, - CommonSourceInfo::GetExpiryTime(impression.expiry, impression_time, - source_type), - source_type, impression.priority, AttributionFilterData(), - /*debug_key=*/absl::nullopt, AttributionAggregatableSource())); - - attribution_manager.HandleSource(std::move(storable_impression)); -} - -} // namespace attribution_host_utils - -} // namespace content
diff --git a/content/browser/attribution_reporting/attribution_host_utils.h b/content/browser/attribution_reporting/attribution_host_utils.h deleted file mode 100644 index 7f6e926..0000000 --- a/content/browser/attribution_reporting/attribution_host_utils.h +++ /dev/null
@@ -1,41 +0,0 @@ -// Copyright 2021 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef CONTENT_BROWSER_ATTRIBUTION_REPORTING_ATTRIBUTION_HOST_UTILS_H_ -#define CONTENT_BROWSER_ATTRIBUTION_REPORTING_ATTRIBUTION_HOST_UTILS_H_ - -#include "content/browser/attribution_reporting/attribution_source_type.h" - -namespace base { -class Time; -} // namespace base - -namespace blink { -struct Impression; -} // namespace blink - -namespace url { -class Origin; -} // namespace url - -namespace content { - -class AttributionManager; - -namespace attribution_host_utils { - -// Performs required checks on an incoming impression's data (trustworthy -// origins, etc), and if verified, generates a `StorableSource` and persists -// it. -void VerifyAndStoreImpression(AttributionSourceType source_type, - const url::Origin& impression_origin, - const blink::Impression& impression, - AttributionManager& attribution_manager, - base::Time impression_time); - -} // namespace attribution_host_utils - -} // namespace content - -#endif // CONTENT_BROWSER_ATTRIBUTION_REPORTING_ATTRIBUTION_HOST_UTILS_H_
diff --git a/content/browser/browser_interface_binders.cc b/content/browser/browser_interface_binders.cc index d53a7c8..b9246597 100644 --- a/content/browser/browser_interface_binders.cc +++ b/content/browser/browser_interface_binders.cc
@@ -33,6 +33,7 @@ #include "content/browser/media/media_web_contents_observer.h" #include "content/browser/media/midi_host.h" #include "content/browser/media/session/media_session_service_impl.h" +#include "content/browser/ml/ml_service_factory.h" #include "content/browser/net/reporting_service_proxy.h" #include "content/browser/picture_in_picture/picture_in_picture_service_impl.h" #include "content/browser/prerender/prerender_internals.mojom.h" @@ -892,6 +893,12 @@ map->Add<handwriting::mojom::HandwritingRecognitionService>( base::BindRepeating(&CreateHandwritingRecognitionService)); + if (base::FeatureList::IsEnabled( + features::kEnableMachineLearningModelLoaderWebPlatformApi)) { + map->Add<ml::model_loader::mojom::MLService>( + base::BindRepeating(&CreateMLService)); + } + map->Add<blink::mojom::WebBluetoothService>(base::BindRepeating( &RenderFrameHostImpl::CreateWebBluetoothService, base::Unretained(host))); @@ -1078,6 +1085,10 @@ &EmptyBinderForFrame<blink::mojom::AnchorElementMetricsHost>)); map->Add<blink::mojom::CredentialManager>(base::BindRepeating( &EmptyBinderForFrame<blink::mojom::CredentialManager>)); + if (base::FeatureList::IsEnabled(blink::features::kBrowsingTopics)) { + map->Add<blink::mojom::BrowsingTopicsDocumentService>( + base::BindRepeating(&BrowsingTopicsDocumentHost::CreateMojoService)); + } #if !BUILDFLAG(IS_ANDROID) if (SiteIsolationPolicy::IsApplicationIsolationLevelEnabled()) { map->Add<blink::mojom::DirectSocketsService>( @@ -1091,10 +1102,6 @@ media::mojom::SpeechRecognitionClientBrowserInterface>)); map->Add<media::mojom::MediaFoundationRendererNotifier>(base::BindRepeating( &EmptyBinderForFrame<media::mojom::MediaFoundationRendererNotifier>)); - if (base::FeatureList::IsEnabled(blink::features::kBrowsingTopics)) { - map->Add<blink::mojom::BrowsingTopicsDocumentService>( - base::BindRepeating(&BrowsingTopicsDocumentHost::CreateMojoService)); - } map->Add<media::mojom::MediaPlayerObserverClient>(base::BindRepeating( &EmptyBinderForFrame<media::mojom::MediaPlayerObserverClient>)); #endif
diff --git a/content/browser/first_party_sets/first_party_sets_handler_impl.cc b/content/browser/first_party_sets/first_party_sets_handler_impl.cc index 9b93a4a..c5a9cd1 100644 --- a/content/browser/first_party_sets/first_party_sets_handler_impl.cc +++ b/content/browser/first_party_sets/first_party_sets_handler_impl.cc
@@ -78,11 +78,10 @@ FirstPartySetsHandlerImpl::~FirstPartySetsHandlerImpl() = default; -void FirstPartySetsHandlerImpl::ReconfigureAfterNetworkRestart( - SetsReadyOnceCallback on_sets_ready) { +absl::optional<FirstPartySetsHandlerImpl::FlattenedSets> +FirstPartySetsHandlerImpl::GetSetsIfEnabledAndReady() { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); - if (!on_sets_ready.is_null() && ShouldInvokeOnSetsReady()) - std::move(on_sets_ready).Run(sets_.value()); + return IsEnabledAndReady() ? sets_ : absl::nullopt; } void FirstPartySetsHandlerImpl::Init(const base::FilePath& user_data_dir, @@ -194,7 +193,7 @@ // TODO(shuuran@chromium.org): Implement site state clearing. - if (!on_sets_ready_.is_null() && ShouldInvokeOnSetsReady()) + if (!on_sets_ready_.is_null() && IsEnabledAndReady()) std::move(on_sets_ready_).Run(sets_.value()); base::ThreadPool::PostTask( @@ -204,7 +203,7 @@ FirstPartySetParser::SerializeFirstPartySets(sets_.value()))); } -bool FirstPartySetsHandlerImpl::ShouldInvokeOnSetsReady() { +bool FirstPartySetsHandlerImpl::IsEnabledAndReady() { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); return IsFirstPartySetsEnabled() && sets_.has_value(); }
diff --git a/content/browser/first_party_sets/first_party_sets_handler_impl.h b/content/browser/first_party_sets/first_party_sets_handler_impl.h index eb204b6..ecad499f 100644 --- a/content/browser/first_party_sets/first_party_sets_handler_impl.h +++ b/content/browser/first_party_sets/first_party_sets_handler_impl.h
@@ -62,9 +62,9 @@ const std::string& flag_value, SetsReadyOnceCallback on_sets_ready); - // Calls the callback with the current First-Party Sets data, if the data - // is ready. - void ReconfigureAfterNetworkRestart(SetsReadyOnceCallback on_sets_ready); + // Returns the current First-Party Sets data, if the data is ready and the + // feature is enabled. + absl::optional<FlattenedSets> GetSetsIfEnabledAndReady(); // FirstPartySetsHandler void SetPublicFirstPartySets(base::File sets_file) override; @@ -129,7 +129,7 @@ // Returns true if: // * First-Party Sets are enabled; // * `sets_` is ready to be used. - bool ShouldInvokeOnSetsReady(); + bool IsEnabledAndReady(); // Represents the mapping of site -> site, where keys are members of sets, and // values are owners of the sets. Owners are explicitly represented as members
diff --git a/content/browser/first_party_sets/first_party_sets_handler_impl_unittest.cc b/content/browser/first_party_sets/first_party_sets_handler_impl_unittest.cc index 98e92f2..683bd0c 100644 --- a/content/browser/first_party_sets/first_party_sets_handler_impl_unittest.cc +++ b/content/browser/first_party_sets/first_party_sets_handler_impl_unittest.cc
@@ -334,6 +334,26 @@ EXPECT_EQ(got, "{}"); } +TEST_F(FirstPartySetsHandlerImplDisabledTest, + GetSetsIfEnabledAndReady_AfterSetsReady) { + ASSERT_TRUE(base::WriteFile(persisted_sets_path_, "{}")); + + FirstPartySetsHandlerImpl::GetInstance()->Init( + scoped_dir_.GetPath(), + /*flag_value=*/"", + base::BindLambdaForTesting( + [](const FirstPartySetsHandlerImpl::FlattenedSets& got) { + FAIL(); // Should not be called. + })); + + SetPublicFirstPartySetsAndWait(R"({"owner": "https://example.test", )" + R"("members": ["https://member.test"]})"); + + EXPECT_EQ( + FirstPartySetsHandlerImpl::GetInstance()->GetSetsIfEnabledAndReady(), + absl::nullopt); +} + class FirstPartySetsHandlerImplEnabledTest : public FirstPartySetsHandlerImplTest { public: @@ -441,7 +461,8 @@ expected_sets); } -TEST_F(FirstPartySetsHandlerImplEnabledTest, ReconfigureAfterNetworkRestart) { +TEST_F(FirstPartySetsHandlerImplEnabledTest, + GetSetsIfEnabledAndReady_AfterSetsReady) { ASSERT_TRUE(base::WriteFile(persisted_sets_path_, "{}")); const std::string input = R"({"owner": "https://example.test", )" @@ -470,25 +491,19 @@ EXPECT_THAT(FirstPartySetParser::DeserializeFirstPartySets(got), expected_sets); - { - base::test::TestFuture<const FirstPartySetsHandlerImpl::FlattenedSets&> - future; - FirstPartySetsHandlerImpl::GetInstance()->ReconfigureAfterNetworkRestart( - future.GetCallback()); - EXPECT_THAT(future.Get(), expected_sets); - } + EXPECT_THAT( + FirstPartySetsHandlerImpl::GetInstance()->GetSetsIfEnabledAndReady(), + testing::Optional(expected_sets)); } TEST_F(FirstPartySetsHandlerImplEnabledTest, - ReconfigureAfterNetworkRestart_BeforeSetsReady) { + GetSetsIfEnabledAndReady_BeforeSetsReady) { ASSERT_TRUE(base::WriteFile(persisted_sets_path_, "{}")); - // Call ReconfigureAfterNetworkRestart before the sets are ready. - FirstPartySetsHandlerImpl::GetInstance()->ReconfigureAfterNetworkRestart( - base::BindLambdaForTesting( - [](const FirstPartySetsHandlerImpl::FlattenedSets& got) { - FAIL(); // Should not be called. - })); + // Call GetSetsIfEnabledAndReady before the sets are ready. + EXPECT_EQ( + FirstPartySetsHandlerImpl::GetInstance()->GetSetsIfEnabledAndReady(), + absl::nullopt); // Persisted sets are expected to be loaded with the provided path. base::test::TestFuture<const FirstPartySetsHandlerImpl::FlattenedSets&> @@ -507,6 +522,14 @@ SerializesTo("https://example.test")), Pair(SerializesTo("https://member.test"), SerializesTo("https://example.test")))); + + EXPECT_THAT( + FirstPartySetsHandlerImpl::GetInstance()->GetSetsIfEnabledAndReady(), + testing::Optional( + UnorderedElementsAre(Pair(SerializesTo("https://example.test"), + SerializesTo("https://example.test")), + Pair(SerializesTo("https://member.test"), + SerializesTo("https://example.test"))))); } } // namespace content \ No newline at end of file
diff --git a/content/browser/interest_group/ad_auction_service_impl_unittest.cc b/content/browser/interest_group/ad_auction_service_impl_unittest.cc index d9c955f..f0b1e6d6 100644 --- a/content/browser/interest_group/ad_auction_service_impl_unittest.cc +++ b/content/browser/interest_group/ad_auction_service_impl_unittest.cc
@@ -842,18 +842,22 @@ // The server JSON updates all fields that can be updated. TEST_F(AdAuctionServiceImplTest, UpdateAllUpdatableFields) { network_responder_->RegisterUpdateResponse( - kDailyUpdateUrlPath, - base::StringPrintf(R"({ + kDailyUpdateUrlPath, base::StringPrintf(R"({ "priority": 1.59, "biddingLogicUrl": "%s/interest_group/new_bidding_logic.js", +"biddingWasmHelperUrl":"%s/interest_group/new_bidding_wasm_helper_url.wasm", "trustedBiddingSignalsUrl": "%s/interest_group/new_trusted_bidding_signals_url.json", "trustedBiddingSignalsKeys": ["new_key"], "ads": [{"renderUrl": "%s/new_ad_render_url", "metadata": {"new_a": "b"} - }] + }], +"adComponents": [{"renderUrl": "https://example.com/component_url", + "metadata": {"new_c": "d"} + }] })", - kOriginStringA, kOriginStringA, kOriginStringA)); + kOriginStringA, kOriginStringA, + kOriginStringA, kOriginStringA)); blink::InterestGroup interest_group = CreateInterestGroup(); interest_group.priority = 2.0; @@ -883,6 +887,11 @@ EXPECT_EQ(group.bidding_url->spec(), base::StringPrintf("%s/interest_group/new_bidding_logic.js", kOriginStringA)); + ASSERT_TRUE(group.bidding_wasm_helper_url.has_value()); + EXPECT_EQ( + group.bidding_wasm_helper_url->spec(), + base::StringPrintf("%s/interest_group/new_bidding_wasm_helper_url.wasm", + kOriginStringA)); ASSERT_TRUE(group.trusted_bidding_signals_url.has_value()); EXPECT_EQ(group.trusted_bidding_signals_url->spec(), base::StringPrintf( @@ -896,6 +905,11 @@ EXPECT_EQ(group.ads.value()[0].render_url.spec(), base::StringPrintf("%s/new_ad_render_url", kOriginStringA)); EXPECT_EQ(group.ads.value()[0].metadata, "{\"new_a\":\"b\"}"); + ASSERT_TRUE(group.ad_components.has_value()); + ASSERT_EQ(group.ad_components->size(), 1u); + EXPECT_EQ(group.ad_components.value()[0].render_url.spec(), + "https://example.com/component_url"); + EXPECT_EQ(group.ad_components.value()[0].metadata, "{\"new_c\":\"d\"}"); } // Only set the ads field -- the other fields shouldn't be changed.
diff --git a/content/browser/interest_group/interest_group_update_manager.cc b/content/browser/interest_group/interest_group_update_manager.cc index 1f2e1f0..485f18a 100644 --- a/content/browser/interest_group/interest_group_update_manager.cc +++ b/content/browser/interest_group/interest_group_update_manager.cc
@@ -110,20 +110,16 @@ return true; } -// Copies the `ads` list JSON field into `interest_group_update`, returns true -// iff the JSON is valid and the copy completed. -[[nodiscard]] bool TryToCopyAds(blink::InterestGroup& interest_group_update, - const base::Value& value) { - const base::Value* maybe_ads = value.FindListKey("ads"); - if (!maybe_ads) - return true; +// Helper for TryToCopyAds() and TryToCopyAdComponents(). +[[nodiscard]] absl::optional<std::vector<blink::InterestGroup::Ad>> ExtractAds( + const base::Value& ads_list) { std::vector<blink::InterestGroup::Ad> ads; - for (const base::Value& ads_value : maybe_ads->GetListDeprecated()) { + for (const base::Value& ads_value : ads_list.GetListDeprecated()) { if (!ads_value.is_dict()) - return false; + return absl::nullopt; const std::string* maybe_render_url = ads_value.FindStringKey("renderUrl"); if (!maybe_render_url) - return false; + return absl::nullopt; blink::InterestGroup::Ad ad; ad.render_url = GURL(*maybe_render_url); const base::Value* maybe_metadata = ads_value.FindKey("metadata"); @@ -133,13 +129,43 @@ if (!serializer.Serialize(*maybe_metadata)) { // Binary blobs shouldn't be present, but it's possible we exceeded the // max JSON depth. - return false; + return absl::nullopt; } ad.metadata = std::move(metadata); } ads.push_back(std::move(ad)); } - interest_group_update.ads = std::move(ads); + return ads; +} + +// Copies the `ads` list JSON field into `interest_group_update`, returns true +// iff the JSON is valid and the copy completed. +[[nodiscard]] bool TryToCopyAds(blink::InterestGroup& interest_group_update, + const base::Value& value) { + const base::Value* maybe_ads = value.FindListKey("ads"); + if (!maybe_ads) + return true; + absl::optional<std::vector<blink::InterestGroup::Ad>> maybe_extracted_ads = + ExtractAds(*maybe_ads); + if (!maybe_extracted_ads) + return false; + interest_group_update.ads = std::move(*maybe_extracted_ads); + return true; +} + +// Copies the `adComponents` list JSON field into `interest_group_update`, +// returns true iff the JSON is valid and the copy completed. +[[nodiscard]] bool TryToCopyAdComponents( + blink::InterestGroup& interest_group_update, + const base::Value& value) { + const base::Value* maybe_ads = value.FindListKey("adComponents"); + if (!maybe_ads) + return true; + absl::optional<std::vector<blink::InterestGroup::Ad>> maybe_extracted_ads = + ExtractAds(*maybe_ads); + if (!maybe_extracted_ads) + return false; + interest_group_update.ad_components = std::move(*maybe_extracted_ads); return true; } @@ -171,6 +197,12 @@ const std::string* maybe_bidding_url = value.FindStringKey("biddingLogicUrl"); if (maybe_bidding_url) interest_group_update.bidding_url = GURL(*maybe_bidding_url); + const std::string* maybe_bidding_wasm_helper_url = + value.FindStringKey("biddingWasmHelperUrl"); + if (maybe_bidding_wasm_helper_url) { + interest_group_update.bidding_wasm_helper_url = + GURL(*maybe_bidding_wasm_helper_url); + } const std::string* maybe_update_trusted_bidding_signals_url = value.FindStringKey("trustedBiddingSignalsUrl"); if (maybe_update_trusted_bidding_signals_url) { @@ -183,6 +215,9 @@ if (!TryToCopyAds(interest_group_update, value)) { return absl::nullopt; } + if (!TryToCopyAdComponents(interest_group_update, value)) { + return absl::nullopt; + } if (!interest_group_update.IsValid()) { return absl::nullopt; }
diff --git a/content/browser/ml/OWNERS b/content/browser/ml/OWNERS new file mode 100644 index 0000000..383049e --- /dev/null +++ b/content/browser/ml/OWNERS
@@ -0,0 +1,2 @@ +file://third_party/blink/renderer/modules/ml/OWNERS +honglinyu@chromium.org
diff --git a/content/browser/ml/ml_service_factory.cc b/content/browser/ml/ml_service_factory.cc new file mode 100644 index 0000000..16cab0ec9 --- /dev/null +++ b/content/browser/ml/ml_service_factory.cc
@@ -0,0 +1,28 @@ +// Copyright 2022 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "content/browser/ml/ml_service_factory.h" + +#include <utility> + +#include "build/buildflag.h" +#if BUILDFLAG(IS_CHROMEOS_ASH) +#include "content/browser/ml/ml_service_impl_cros.h" +#else +// The default service which does not have any real backend. +#include "content/browser/ml/ml_service_impl.h" +#endif // IS_CHROMEOS_ASH + +namespace content { + +void CreateMLService(mojo::PendingReceiver<ml::model_loader::mojom::MLService> + pending_receiver) { +#if BUILDFLAG(IS_CHROMEOS_ASH) + CrOSMLServiceImpl::Create(std::move(pending_receiver)); +#else + MLServiceImpl::Create(std::move(pending_receiver)); +#endif +} + +} // namespace content
diff --git a/content/browser/ml/ml_service_factory.h b/content/browser/ml/ml_service_factory.h new file mode 100644 index 0000000..b5ba0894 --- /dev/null +++ b/content/browser/ml/ml_service_factory.h
@@ -0,0 +1,19 @@ +// Copyright 2022 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CONTENT_BROWSER_ML_ML_SERVICE_FACTORY_H_ +#define CONTENT_BROWSER_ML_ML_SERVICE_FACTORY_H_ + +#include "components/ml/mojom/ml_service.mojom.h" +#include "mojo/public/cpp/bindings/pending_receiver.h" + +namespace content { + +// A simple API used by browser interface broker. The main motivation is to +// expose an identical `Create()` interface over different platforms. +void CreateMLService(mojo::PendingReceiver<ml::model_loader::mojom::MLService>); + +} // namespace content + +#endif // CONTENT_BROWSER_ML_ML_SERVICE_FACTORY_H_
diff --git a/content/browser/ml/ml_service_impl.cc b/content/browser/ml/ml_service_impl.cc new file mode 100644 index 0000000..92843e9 --- /dev/null +++ b/content/browser/ml/ml_service_impl.cc
@@ -0,0 +1,40 @@ +// Copyright 2022 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "content/browser/ml/ml_service_impl.h" + +#include "base/memory/ptr_util.h" +#include "components/ml/mojom/ml_service.mojom.h" +#include "components/ml/mojom/web_platform_model.mojom.h" +#include "mojo/public/cpp/bindings/self_owned_receiver.h" + +namespace content { + +namespace { + +using ml::model_loader::mojom::CreateModelLoaderOptionsPtr; +using ml::model_loader::mojom::CreateModelLoaderResult; +using ml::model_loader::mojom::MLService; + +} // namespace + +// static +void MLServiceImpl::Create(mojo::PendingReceiver<MLService> receiver) { + mojo::MakeSelfOwnedReceiver<MLService>(base::WrapUnique(new MLServiceImpl()), + std::move(receiver)); +} + +MLServiceImpl::~MLServiceImpl() = default; + +MLServiceImpl::MLServiceImpl() = default; + +void MLServiceImpl::CreateModelLoader(CreateModelLoaderOptionsPtr options, + CreateModelLoaderCallback callback) { + // TODO(https://crbug.com/1309672): We should consider supporting this API on + // the other platforms in the future. + std::move(callback).Run(CreateModelLoaderResult::kNotSupported, + mojo::NullRemote()); +} + +} // namespace content
diff --git a/content/browser/ml/ml_service_impl.h b/content/browser/ml/ml_service_impl.h new file mode 100644 index 0000000..e1cc500 --- /dev/null +++ b/content/browser/ml/ml_service_impl.h
@@ -0,0 +1,36 @@ +// Copyright 2022 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CONTENT_BROWSER_ML_ML_SERVICE_IMPL_H_ +#define CONTENT_BROWSER_ML_ML_SERVICE_IMPL_H_ + +#include "components/ml/mojom/ml_service.mojom.h" +#include "content/common/content_export.h" +#include "mojo/public/cpp/bindings/pending_receiver.h" +#include "mojo/public/cpp/bindings/receiver.h" + +namespace content { + +class CONTENT_EXPORT MLServiceImpl : public ml::model_loader::mojom::MLService { + public: + ~MLServiceImpl() override; + // The interface to create an object, called by the ml service factory. + static void Create( + mojo::PendingReceiver<ml::model_loader::mojom::MLService> receiver); + MLServiceImpl(const MLServiceImpl&) = delete; + MLServiceImpl& operator=(const MLServiceImpl&) = delete; + + protected: + MLServiceImpl(); + + private: + // ml::model_loader::mojom::MLService + void CreateModelLoader( + ml::model_loader::mojom::CreateModelLoaderOptionsPtr options, + CreateModelLoaderCallback callback) override; +}; + +} // namespace content + +#endif // CONTENT_BROWSER_ML_ML_SERVICE_IMPL_H_
diff --git a/content/browser/ml/ml_service_impl_cros.cc b/content/browser/ml/ml_service_impl_cros.cc new file mode 100644 index 0000000..5ff969a --- /dev/null +++ b/content/browser/ml/ml_service_impl_cros.cc
@@ -0,0 +1,60 @@ +// Copyright 2022 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "content/browser/ml/ml_service_impl_cros.h" + +#include "base/memory/ptr_util.h" +#include "chromeos/services/machine_learning/public/cpp/service_connection.h" +#include "components/ml/mojom/ml_service.mojom.h" +#include "components/ml/mojom/web_platform_model.mojom.h" +#include "content/public/browser/render_frame_host.h" +#include "content/public/browser/storage_partition.h" +#include "mojo/public/cpp/bindings/self_owned_receiver.h" + +namespace content { + +namespace { + +using ml::model_loader::mojom::CreateModelLoaderOptionsPtr; +using ml::model_loader::mojom::CreateModelLoaderResult; +using ml::model_loader::mojom::MLService; +using ml::model_loader::mojom::ModelLoader; + +void OnModelCreated(mojo::PendingRemote<ModelLoader> remote, + MLService::CreateModelLoaderCallback callback, + CreateModelLoaderResult result) { + std::move(callback).Run(result, std::move(remote)); +} + +} // namespace + +// static +void CrOSMLServiceImpl::Create(mojo::PendingReceiver<MLService> receiver) { + mojo::MakeSelfOwnedReceiver<MLService>( + base::WrapUnique(new CrOSMLServiceImpl()), std::move(receiver)); +} + +CrOSMLServiceImpl::~CrOSMLServiceImpl() = default; + +CrOSMLServiceImpl::CrOSMLServiceImpl() = default; + +void CrOSMLServiceImpl::CreateModelLoader( + CreateModelLoaderOptionsPtr options, + MLService::CreateModelLoaderCallback callback) { + // The remote sent to the renderer. + mojo::PendingRemote<ModelLoader> blink_remote; + // The receiver sent to ml-service. + auto cros_receiver = blink_remote.InitWithNewPipeAndPassReceiver(); + + // TODO(https://crbug.com/1309814): we should consider restricting the + // resource usage of this API. + chromeos::machine_learning::ServiceConnection::GetInstance() + ->GetMachineLearningService() + .CreateWebPlatformModelLoader( + std::move(cros_receiver), std::move(options), + base::BindOnce(&OnModelCreated, std::move(blink_remote), + std::move(callback))); +} + +} // namespace content
diff --git a/content/browser/ml/ml_service_impl_cros.h b/content/browser/ml/ml_service_impl_cros.h new file mode 100644 index 0000000..199c8c5 --- /dev/null +++ b/content/browser/ml/ml_service_impl_cros.h
@@ -0,0 +1,40 @@ +// Copyright 2022 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CONTENT_BROWSER_ML_ML_SERVICE_IMPL_CROS_H_ +#define CONTENT_BROWSER_ML_ML_SERVICE_IMPL_CROS_H_ + +#include "components/ml/mojom/ml_service.mojom-forward.h" +#include "content/browser/ml/ml_service_impl.h" +#include "content/common/content_export.h" +#include "mojo/public/cpp/bindings/pending_receiver.h" +#include "mojo/public/cpp/bindings/receiver.h" + +namespace content { + +class CONTENT_EXPORT CrOSMLServiceImpl + : public ml::model_loader::mojom::MLService { + public: + ~CrOSMLServiceImpl() override; + // The interface to create an `CrOSMLServiceImpl` object and bind the mojo + // receiver, called by the ml service factory. + static void Create( + mojo::PendingReceiver<ml::model_loader::mojom::MLService> receiver); + + CrOSMLServiceImpl(const CrOSMLServiceImpl&) = delete; + MLServiceImpl& operator=(const CrOSMLServiceImpl&) = delete; + + protected: + CrOSMLServiceImpl(); + + private: + // ml::model_loader::mojom::MLService + void CreateModelLoader( + ml::model_loader::mojom::CreateModelLoaderOptionsPtr options, + CreateModelLoaderCallback callback) override; +}; + +} // namespace content + +#endif // CONTENT_BROWSER_ML_ML_SERVICE_IMPL_CROS_H_
diff --git a/content/browser/network_service_instance_impl.cc b/content/browser/network_service_instance_impl.cc index ce419ec..7788ca3 100644 --- a/content/browser/network_service_instance_impl.cc +++ b/content/browser/network_service_instance_impl.cc
@@ -578,11 +578,12 @@ } } - FirstPartySetsHandlerImpl::GetInstance()->ReconfigureAfterNetworkRestart( - base::BindOnce([](const base::flat_map<net::SchemefulSite, - net::SchemefulSite>& sets) { - g_network_service_remote->get()->SetFirstPartySets(sets); - })); + if (absl::optional<FirstPartySetsHandlerImpl::FlattenedSets> sets = + FirstPartySetsHandlerImpl::GetInstance() + ->GetSetsIfEnabledAndReady(); + sets.has_value()) { + g_network_service_remote->get()->SetFirstPartySets(*sets); + } GetContentClient()->browser()->OnNetworkServiceCreated( g_network_service_remote->get());
diff --git a/content/browser/renderer_host/media/service_video_capture_device_launcher.cc b/content/browser/renderer_host/media/service_video_capture_device_launcher.cc index 2ca14625..e10521a 100644 --- a/content/browser/renderer_host/media/service_video_capture_device_launcher.cc +++ b/content/browser/renderer_host/media/service_video_capture_device_launcher.cc
@@ -147,7 +147,7 @@ // GpuMemoryBuffer-based VideoCapture buffer works only on the Chrome OS // and Windows VideoCaptureDevice implementations. #if BUILDFLAG(IS_WIN) - if (base::FeatureList::IsEnabled(media::kMediaFoundationD3D11VideoCapture) && + if (media::IsMediaFoundationD3D11VideoCaptureEnabled() && params.requested_format.pixel_format == media::PIXEL_FORMAT_NV12) { new_params.buffer_type = media::VideoCaptureBufferType::kGpuMemoryBuffer; }
diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc index 426dce8..4b78252 100644 --- a/content/browser/renderer_host/render_frame_host_impl.cc +++ b/content/browser/renderer_host/render_frame_host_impl.cc
@@ -9186,6 +9186,17 @@ weak_ptr_factory_.GetWeakPtr(), std::move(callback))); } +void RenderFrameHostImpl::RequestDistilledAXTree( + AXTreeDistillerCallback callback) { + // TODO(https://crbug.com/859110): Remove once frame_ can no longer be null. + if (!IsRenderFrameCreated()) + return; + + GetMojomFrameInRenderer()->SnapshotAndDistillAXTree( + base::BindOnce(&RenderFrameHostImpl::RequestDistilledAXTreeCallback, + weak_ptr_factory_.GetWeakPtr(), std::move(callback))); +} + void RenderFrameHostImpl::GetSavableResourceLinksFromRenderer() { if (!IsRenderFrameLive()) return; @@ -9680,18 +9691,38 @@ void RenderFrameHostImpl::RequestAXTreeSnapshotCallback( AXTreeSnapshotCallback callback, const ui::AXTreeUpdate& snapshot) { + // Since |snapshot| is const, we need to make a copy in order to modify the + // tree data. ui::AXTreeUpdate dst_snapshot; - dst_snapshot.root_id = snapshot.root_id; - dst_snapshot.nodes.resize(snapshot.nodes.size()); + CopyAXTreeUpdate(snapshot, &dst_snapshot); + std::move(callback).Run(dst_snapshot); +} + +void RenderFrameHostImpl::RequestDistilledAXTreeCallback( + AXTreeDistillerCallback callback, + const ui::AXTreeUpdate& snapshot, + const std::vector<ui::AXNodeID>& text_nodes) { + // Since |snapshot| is const, we need to make a copy in order to modify the + // tree data. + ui::AXTreeUpdate dst_snapshot; + CopyAXTreeUpdate(snapshot, &dst_snapshot); + std::move(callback).Run(dst_snapshot, text_nodes); +} + +void RenderFrameHostImpl::CopyAXTreeUpdate(const ui::AXTreeUpdate& snapshot, + ui::AXTreeUpdate* snapshot_copy) { + snapshot_copy->root_id = snapshot.root_id; + snapshot_copy->nodes.resize(snapshot.nodes.size()); for (size_t i = 0; i < snapshot.nodes.size(); ++i) - dst_snapshot.nodes[i] = snapshot.nodes[i]; + snapshot_copy->nodes[i] = snapshot.nodes[i]; if (snapshot.has_tree_data) { ax_tree_data_ = snapshot.tree_data; - dst_snapshot.tree_data = GetAXTreeData(); - dst_snapshot.has_tree_data = true; + // Set the AXTreeData to be the last |ax_tree_data_| received from the + // render frame. + snapshot_copy->tree_data = GetAXTreeData(); + snapshot_copy->has_tree_data = true; } - std::move(callback).Run(dst_snapshot); } void RenderFrameHostImpl::CreatePaymentManager(
diff --git a/content/browser/renderer_host/render_frame_host_impl.h b/content/browser/renderer_host/render_frame_host_impl.h index e357de40..3c38b7bec 100644 --- a/content/browser/renderer_host/render_frame_host_impl.h +++ b/content/browser/renderer_host/render_frame_host_impl.h
@@ -326,6 +326,7 @@ bool exclude_offscreen, size_t max_nodes, const base::TimeDelta& timeout) override; + void RequestDistilledAXTree(AXTreeDistillerCallback callback) override; SiteInstanceImpl* GetSiteInstance() const override; RenderProcessHost* GetProcess() const override; GlobalRenderFrameHostId GetGlobalId() const override; @@ -2920,6 +2921,19 @@ const ui::AXTreeUpdate& snapshot); // Callback that will be called as a response to the call to the method + // content::mojom::RenderAccessibility::DistillAXTree(). The |callback| passed + // will be invoked after the renderer has responded with a list of text node + // ID's as |text_nodes|. + void RequestDistilledAXTreeCallback( + AXTreeDistillerCallback callback, + const ui::AXTreeUpdate& snapshot, + const std::vector<ui::AXNodeID>& text_node_ids); + + // Makes a copy of an AXTreeUpdate to send to the destination. + void CopyAXTreeUpdate(const ui::AXTreeUpdate& snapshot, + ui::AXTreeUpdate* snapshot_copy); + + // Callback that will be called as a response to the call to the method // blink::mojom::LocalFrame::GetSavableResourceLinks(). The |reply| passed // will be a nullptr when the url is not the savable URLs or valid. void GetSavableResourceLinksCallback(
diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc index a188b12..6445dba 100644 --- a/content/browser/renderer_host/render_process_host_impl.cc +++ b/content/browser/renderer_host/render_process_host_impl.cc
@@ -3476,7 +3476,7 @@ CopyFeatureSwitch(browser_cmd, renderer_cmd, switches::kDisableBlinkFeatures); #if BUILDFLAG(IS_WIN) - if (base::FeatureList::IsEnabled(media::kMediaFoundationD3D11VideoCapture)) { + if (media::IsMediaFoundationD3D11VideoCaptureEnabled()) { renderer_cmd->AppendSwitch(switches::kVideoCaptureUseGpuMemoryBuffer); } #endif
diff --git a/content/browser/utility_process_host.cc b/content/browser/utility_process_host.cc index fb1dccfb..ed3778ac 100644 --- a/content/browser/utility_process_host.cc +++ b/content/browser/utility_process_host.cc
@@ -316,8 +316,7 @@ cmd_line->AppendSwitch(extra_switch); #if BUILDFLAG(IS_WIN) - if (base::FeatureList::IsEnabled( - media::kMediaFoundationD3D11VideoCapture)) { + if (media::IsMediaFoundationD3D11VideoCaptureEnabled()) { // MediaFoundationD3D11VideoCapture requires Gpu memory buffers, // which are unavailable if the GPU process isn't running. if (!GpuDataManagerImpl::GetInstance()->IsGpuCompositingDisabled()) {
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc index 9b341e54..d9fb954 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc
@@ -2716,12 +2716,6 @@ prefs.pepper_3d_enabled = !command_line.HasSwitch(switches::kDisablePepper3d); - prefs.flash_3d_enabled = !command_line.HasSwitch(switches::kDisableFlash3d); - prefs.flash_stage3d_enabled = - !command_line.HasSwitch(switches::kDisableFlashStage3d); - prefs.flash_stage3d_baseline_enabled = - !command_line.HasSwitch(switches::kDisableFlashStage3d); - prefs.allow_file_access_from_file_urls = command_line.HasSwitch(switches::kAllowFileAccessFromFiles);
diff --git a/content/browser/webid/fake_identity_request_dialog_controller.cc b/content/browser/webid/fake_identity_request_dialog_controller.cc new file mode 100644 index 0000000..0fa61a3 --- /dev/null +++ b/content/browser/webid/fake_identity_request_dialog_controller.cc
@@ -0,0 +1,32 @@ +// Copyright 2022 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "content/browser/webid/fake_identity_request_dialog_controller.h" + +namespace content { + +FakeIdentityRequestDialogController::FakeIdentityRequestDialogController( + absl::optional<std::string> selected_account) + : selected_account_(selected_account) {} + +FakeIdentityRequestDialogController::~FakeIdentityRequestDialogController() = + default; + +void FakeIdentityRequestDialogController::ShowAccountsDialog( + content::WebContents* rp_web_contents, + const GURL& idp_signin_url, + base::span<const IdentityRequestAccount> accounts, + const IdentityProviderMetadata& idp_metadata, + const ClientIdData& client_id_data, + IdentityRequestAccount::SignInMode sign_in_mode, + AccountSelectionCallback on_selected) { + DCHECK_GT(accounts.size(), 0ul); + // Use the provided account, if any. Otherwise use the first one. + if (selected_account_) + std::move(on_selected).Run(*selected_account_, /* is_sign_in= */ true); + else + std::move(on_selected).Run(accounts[0].id, /* is_sign_in= */ true); +} + +} // namespace content
diff --git a/content/browser/webid/fake_identity_request_dialog_controller.h b/content/browser/webid/fake_identity_request_dialog_controller.h new file mode 100644 index 0000000..3dc205b8 --- /dev/null +++ b/content/browser/webid/fake_identity_request_dialog_controller.h
@@ -0,0 +1,39 @@ +// Copyright 2022 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CONTENT_BROWSER_WEBID_FAKE_IDENTITY_REQUEST_DIALOG_CONTROLLER_H_ +#define CONTENT_BROWSER_WEBID_FAKE_IDENTITY_REQUEST_DIALOG_CONTROLLER_H_ + +#include <string> + +#include "content/public/browser/identity_request_dialog_controller.h" +#include "third_party/abseil-cpp/absl/types/optional.h" + +namespace content { + +// This fakes the request dialogs to always provide user consent. +// Used by tests and if the --use-fake-ui-for-fedcm command-line +// flag is provided. +class CONTENT_EXPORT FakeIdentityRequestDialogController + : public IdentityRequestDialogController { + public: + explicit FakeIdentityRequestDialogController( + absl::optional<std::string> selected_account = absl::nullopt); + ~FakeIdentityRequestDialogController() override; + + void ShowAccountsDialog(content::WebContents* rp_web_contents, + const GURL& idp_signin_url, + base::span<const IdentityRequestAccount> accounts, + const IdentityProviderMetadata& idp_metadata, + const ClientIdData& client_id_data, + IdentityRequestAccount::SignInMode sign_in_mode, + AccountSelectionCallback on_selected) override; + + private: + absl::optional<std::string> selected_account_; +}; + +} // namespace content + +#endif // CONTENT_BROWSER_WEBID_FAKE_IDENTITY_REQUEST_DIALOG_CONTROLLER_H_
diff --git a/content/browser/webid/federated_auth_request_impl.cc b/content/browser/webid/federated_auth_request_impl.cc index 5a3fa17..1ccc2f2 100644 --- a/content/browser/webid/federated_auth_request_impl.cc +++ b/content/browser/webid/federated_auth_request_impl.cc
@@ -5,12 +5,14 @@ #include "content/browser/webid/federated_auth_request_impl.h" #include "base/callback.h" +#include "base/command_line.h" #include "base/ranges/algorithm.h" #include "base/strings/string_piece.h" #include "base/threading/sequenced_task_runner_handle.h" #include "base/time/time.h" #include "content/browser/bad_message.h" #include "content/browser/renderer_host/render_frame_host_impl.h" +#include "content/browser/webid/fake_identity_request_dialog_controller.h" #include "content/browser/webid/fedcm_metrics.h" #include "content/browser/webid/flags.h" #include "content/browser/webid/webid_utils.h" @@ -23,6 +25,7 @@ #include "content/public/browser/render_frame_host.h" #include "content/public/browser/web_contents.h" #include "content/public/common/content_client.h" +#include "content/public/common/content_switches.h" #include "third_party/blink/public/mojom/devtools/console_message.mojom.h" #include "third_party/blink/public/mojom/devtools/inspector_issue.mojom.h" #include "ui/accessibility/ax_mode.h" @@ -1108,6 +1111,17 @@ if (mock_dialog_controller_) return std::move(mock_dialog_controller_); + if (base::CommandLine::ForCurrentProcess()->HasSwitch( + switches::kUseFakeUIForFedCM)) { + std::string selected_account = + base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII( + switches::kUseFakeUIForFedCM); + return std::make_unique<FakeIdentityRequestDialogController>( + selected_account.empty() + ? absl::nullopt + : absl::optional<std::string>(selected_account)); + } + return GetContentClient()->browser()->CreateIdentityRequestDialogController(); }
diff --git a/content/browser/webid/test/fake_identity_request_dialog_controller.cc b/content/browser/webid/test/fake_identity_request_dialog_controller.cc deleted file mode 100644 index c66f78bc..0000000 --- a/content/browser/webid/test/fake_identity_request_dialog_controller.cc +++ /dev/null
@@ -1,33 +0,0 @@ -// Copyright 2021 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "content/browser/webid/test/fake_identity_request_dialog_controller.h" - -#include "base/bind.h" -#include "testing/gtest/include/gtest/gtest.h" - -namespace content { - -FakeIdentityRequestDialogController::FakeIdentityRequestDialogController( - absl::optional<std::string> dialog_selected_account) - : dialog_selected_account_(dialog_selected_account) {} - -FakeIdentityRequestDialogController::~FakeIdentityRequestDialogController() = - default; - -void FakeIdentityRequestDialogController::ShowAccountsDialog( - WebContents* rp_web_contents, - const GURL& idp_signin_url, - base::span<const IdentityRequestAccount> accounts, - const IdentityProviderMetadata& idp_metadata, - const ClientIdData& client_id_data, - IdentityRequestAccount::SignInMode sign_in_mode, - AccountSelectionCallback on_selected) { - if (dialog_selected_account_) { - std::move(on_selected) - .Run(*dialog_selected_account_, true /* is_sign_in */); - } -} - -} // namespace content
diff --git a/content/browser/webid/test/fake_identity_request_dialog_controller.h b/content/browser/webid/test/fake_identity_request_dialog_controller.h deleted file mode 100644 index 342b9b4..0000000 --- a/content/browser/webid/test/fake_identity_request_dialog_controller.h +++ /dev/null
@@ -1,49 +0,0 @@ -// Copyright 2021 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef CONTENT_BROWSER_WEBID_TEST_FAKE_IDENTITY_REQUEST_DIALOG_CONTROLLER_H_ -#define CONTENT_BROWSER_WEBID_TEST_FAKE_IDENTITY_REQUEST_DIALOG_CONTROLLER_H_ - -#include <string> - -#include "content/public/browser/identity_request_dialog_controller.h" -#include "third_party/abseil-cpp/absl/types/optional.h" -#include "url/gurl.h" - -namespace content { - -class WebContents; - -// This fakes the request dialogs to always provide user consent. -// Tests that need to vary the responses or set test expectations should use -// MockIdentityRequestDialogController. -// This also fakes an IdP sign-in page until tests can be set up to -// verify the FederatedAuthResponse mechanics. -class FakeIdentityRequestDialogController - : public IdentityRequestDialogController { - public: - explicit FakeIdentityRequestDialogController( - absl::optional<std::string> dialog_selected_account); - ~FakeIdentityRequestDialogController() override; - - FakeIdentityRequestDialogController( - const FakeIdentityRequestDialogController&) = delete; - FakeIdentityRequestDialogController& operator=( - const FakeIdentityRequestDialogController&) = delete; - - void ShowAccountsDialog(WebContents* rp_web_contents, - const GURL& idp_signin_url, - base::span<const IdentityRequestAccount> accounts, - const IdentityProviderMetadata& idp_metadata, - const ClientIdData& client_id_data, - IdentityRequestAccount::SignInMode sign_in_mode, - AccountSelectionCallback on_selected) override; - - private: - absl::optional<std::string> dialog_selected_account_; -}; - -} // namespace content - -#endif // CONTENT_BROWSER_WEBID_TEST_FAKE_IDENTITY_REQUEST_DIALOG_CONTROLLER_H_
diff --git a/content/browser/webid/webid_browsertest.cc b/content/browser/webid/webid_browsertest.cc index bd45be0..e2cba7a2 100644 --- a/content/browser/webid/webid_browsertest.cc +++ b/content/browser/webid/webid_browsertest.cc
@@ -13,7 +13,7 @@ #include "base/strings/string_number_conversions.h" #include "base/test/scoped_feature_list.h" #include "components/network_session_configurator/common/network_switches.h" -#include "content/browser/webid/test/fake_identity_request_dialog_controller.h" +#include "content/browser/webid/fake_identity_request_dialog_controller.h" #include "content/browser/webid/test/webid_test_content_browser_client.h" #include "content/public/browser/content_browser_client.h" #include "content/public/browser/identity_request_dialog_controller.h"
diff --git a/content/common/frame.mojom b/content/common/frame.mojom index ec594f2..037e4c6 100644 --- a/content/common/frame.mojom +++ b/content/common/frame.mojom
@@ -469,6 +469,11 @@ SnapshotAccessibilityTree(SnapshotAccessibilityTreeParams params) => (ax.mojom.AXTreeUpdate snapshot); + // Requests a one-time distillation of the accessibility tree without enabling + // accessibility if it wasn't already enabled. + SnapshotAndDistillAXTree() => (ax.mojom.AXTreeUpdate snapshot, + array<int32> text_node_ids); + // Get HTML data by serializing the target frame and replacing all resource // links with a path to the local copy passed in the message payload. In order // to report progress to the the browser process, a pending remote is passed
diff --git a/content/public/browser/render_frame_host.h b/content/public/browser/render_frame_host.h index 81a4a0b3..f867cc24 100644 --- a/content/public/browser/render_frame_host.h +++ b/content/public/browser/render_frame_host.h
@@ -31,6 +31,7 @@ #include "third_party/blink/public/mojom/page/page_visibility_state.mojom-forward.h" #include "third_party/blink/public/mojom/permissions_policy/permissions_policy_feature.mojom-forward.h" #include "third_party/perfetto/include/perfetto/tracing/traced_value_forward.h" +#include "ui/accessibility/ax_node_id_forward.h" #include "ui/gfx/native_widget_types.h" class GURL; @@ -191,6 +192,13 @@ size_t max_nodes, const base::TimeDelta& timeout) = 0; + using AXTreeDistillerCallback = + base::OnceCallback<void(const ui::AXTreeUpdate&, + const std::vector<ui::AXNodeID>& text_node_ids)>; + // Requests a one-time snapshot of the accessibility tree with distilled + // node IDs identified. + virtual void RequestDistilledAXTree(AXTreeDistillerCallback callback) = 0; + // Returns the SiteInstance grouping all RenderFrameHosts that have script // access to this RenderFrameHost, and must therefore live in the same // process.
diff --git a/content/public/common/content_features.cc b/content/public/common/content_features.cc index a4f254e..5a326da 100644 --- a/content/public/common/content_features.cc +++ b/content/public/common/content_features.cc
@@ -293,6 +293,12 @@ const base::Feature kEnableCanvas2DLayers{"EnableCanvas2DLayers", base::FEATURE_DISABLED_BY_DEFAULT}; +// Enables the Machine Learning Model Loader Web Platform API. Explainer: +// https://github.com/webmachinelearning/model-loader/blob/main/explainer.md +const base::Feature kEnableMachineLearningModelLoaderWebPlatformApi{ + "EnableMachineLearningModelLoaderWebPlatformApi", + base::FEATURE_DISABLED_BY_DEFAULT}; + // If this feature is enabled and device permission is not granted by the user, // media-device enumeration will provide at most one device per type and the // device IDs will not be available.
diff --git a/content/public/common/content_features.h b/content/public/common/content_features.h index 762b159..9e9bf19 100644 --- a/content/public/common/content_features.h +++ b/content/public/common/content_features.h
@@ -78,6 +78,8 @@ CONTENT_EXPORT extern const base::Feature kEnableBackForwardCacheForScreenReader; CONTENT_EXPORT extern const base::Feature kEnableCanvas2DLayers; +CONTENT_EXPORT extern const base::Feature + kEnableMachineLearningModelLoaderWebPlatformApi; CONTENT_EXPORT extern const base::Feature kEnumerateDevicesHideDeviceIDs; CONTENT_EXPORT extern const base::Feature kExperimentalAccessibilityLabels; CONTENT_EXPORT extern const base::Feature
diff --git a/content/public/common/content_switches.cc b/content/public/common/content_switches.cc index dc96641..d2920e3 100644 --- a/content/public/common/content_switches.cc +++ b/content/public/common/content_switches.cc
@@ -135,12 +135,6 @@ // Disable FileSystem API. const char kDisableFileSystem[] = "disable-file-system"; -// Disable 3D inside of flapper. -const char kDisableFlash3d[] = "disable-flash-3d"; - -// Disable Stage3D inside of flapper. -const char kDisableFlashStage3d[] = "disable-flash-stage3d"; - // Disable user gesture requirement for presentation. const char kDisableGestureRequirementForPresentation[] = "disable-gesture-requirement-for-presentation"; @@ -799,6 +793,11 @@ const char kUseFakeCodecForPeerConnection[] = "use-fake-codec-for-peer-connection"; +// Bypass the FedCM account selection dialog. If a value is provided for +// this switch, that account ID is selected, otherwise the first account +// is chosen. +const char kUseFakeUIForFedCM[] = "use-fake-ui-for-fedcm"; + // Bypass the media stream infobar by selecting the default device for media // streams (e.g. WebRTC). Works with --use-fake-device-for-media-stream. const char kUseFakeUIForMediaStream[] = "use-fake-ui-for-media-stream";
diff --git a/content/public/common/content_switches.h b/content/public/common/content_switches.h index 07877047..9876270 100644 --- a/content/public/common/content_switches.h +++ b/content/public/common/content_switches.h
@@ -50,8 +50,6 @@ CONTENT_EXPORT extern const char kDisableWebGL[]; CONTENT_EXPORT extern const char kDisableWebGL2[]; CONTENT_EXPORT extern const char kDisableFileSystem[]; -CONTENT_EXPORT extern const char kDisableFlash3d[]; -CONTENT_EXPORT extern const char kDisableFlashStage3d[]; CONTENT_EXPORT extern const char kDisableGestureRequirementForPresentation[]; CONTENT_EXPORT extern const char kDisableGpu[]; CONTENT_EXPORT extern const char kDisableGpuCompositing[]; @@ -221,6 +219,7 @@ CONTENT_EXPORT extern const char kTouchEventFeatureDetectionDisabled[]; CONTENT_EXPORT extern const char kTrustableWebBundleFileUrl[]; CONTENT_EXPORT extern const char kUseFakeCodecForPeerConnection[]; +CONTENT_EXPORT extern const char kUseFakeUIForFedCM[]; CONTENT_EXPORT extern const char kUseFakeUIForMediaStream[]; CONTENT_EXPORT extern const char kVideoImageTextureTarget[]; CONTENT_EXPORT extern const char kUseMobileUserAgent[];
diff --git a/content/public/test/browser_test_base.cc b/content/public/test/browser_test_base.cc index 04663c2..120e333 100644 --- a/content/public/test/browser_test_base.cc +++ b/content/public/test/browser_test_base.cc
@@ -432,7 +432,12 @@ // Mark the channel as blocking. int flags = fcntl(socket_fd.get(), F_GETFL); - PCHECK(flags != -1) << "Ash is probably not running. Perhaps it crashed?"; + std::string helper_msg = + "On bot, open CAS outputs on test result page(Milo)," + "there is a ash_chrome.log file which contains ash log." + "For local debugging, pass in --ash-logging-path to test runner."; + PCHECK(flags != -1) << "Ash is probably not running. Perhaps it crashed?" + << helper_msg; fcntl(socket_fd.get(), F_SETFL, flags & ~O_NONBLOCK); uint8_t buf[32]; @@ -440,7 +445,7 @@ auto size = mojo::SocketRecvmsg(socket_fd.get(), buf, sizeof(buf), &descriptors, true /*block*/); if (size < 0) - PLOG(ERROR) << "Error receiving message from the socket"; + PLOG(ERROR) << "Error receiving message from the socket" << helper_msg; ASSERT_EQ(1, size); // TODO(crbug.com/1156033): Clean up when both ash-chrome and
diff --git a/content/renderer/BUILD.gn b/content/renderer/BUILD.gn index 6adaa80..7bb9625 100644 --- a/content/renderer/BUILD.gn +++ b/content/renderer/BUILD.gn
@@ -40,6 +40,8 @@ "accessibility/ax_image_annotator.h", "accessibility/ax_image_stopwords.cc", "accessibility/ax_image_stopwords.h", + "accessibility/ax_tree_distiller.cc", + "accessibility/ax_tree_distiller.h", "accessibility/ax_tree_snapshotter_impl.cc", "accessibility/ax_tree_snapshotter_impl.h", "accessibility/blink_ax_action_target.cc",
diff --git a/content/renderer/accessibility/ax_tree_distiller.cc b/content/renderer/accessibility/ax_tree_distiller.cc new file mode 100644 index 0000000..de7dd327 --- /dev/null +++ b/content/renderer/accessibility/ax_tree_distiller.cc
@@ -0,0 +1,120 @@ +// Copyright 2022 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "content/renderer/accessibility/ax_tree_distiller.h" + +#include <queue> +#include <vector> + +#include "base/strings/utf_string_conversions.h" +#include "content/renderer/accessibility/ax_tree_snapshotter_impl.h" +#include "ui/accessibility/ax_node.h" +#include "ui/accessibility/ax_tree.h" + +namespace { + +static const ax::mojom::Role kRolesToSkip[]{ + ax::mojom::Role::kAudio, + ax::mojom::Role::kBanner, + ax::mojom::Role::kButton, + ax::mojom::Role::kComplementary, + ax::mojom::Role::kContentInfo, + ax::mojom::Role::kFooter, + ax::mojom::Role::kFooterAsNonLandmark, + ax::mojom::Role::kHeader, + ax::mojom::Role::kHeaderAsNonLandmark, + ax::mojom::Role::kImage, + ax::mojom::Role::kLabelText, + ax::mojom::Role::kNavigation, +}; +static constexpr int kMaxNodes = 5000; + +// TODO(crbug.com/1266555): Replace this with a call to +// OneShotAccessibilityTreeSearch. +const ui::AXNode* GetArticleNode(const ui::AXNode* node) { + std::queue<const ui::AXNode*> queue; + queue.push(node); + + while (!queue.empty()) { + const ui::AXNode* popped = queue.front(); + queue.pop(); + if (popped->GetRole() == ax::mojom::Role::kArticle) + return popped; + for (auto iter = popped->UnignoredChildrenBegin(); + iter != popped->UnignoredChildrenEnd(); ++iter) { + queue.push(iter.get()); + } + } + + return nullptr; +} + +void AddTextNodesToVector(const ui::AXNode* node, + std::vector<ui::AXNodeID>* text_node_ids) { + if (node->GetRole() == ax::mojom::Role::kStaticText) { + if (node->HasStringAttribute(ax::mojom::StringAttribute::kName)) + text_node_ids->emplace_back(node->id()); + return; + } + + for (const auto role : kRolesToSkip) { + if (role == node->GetRole()) + return; + } + for (auto iter = node->UnignoredChildrenBegin(); + iter != node->UnignoredChildrenEnd(); ++iter) { + AddTextNodesToVector(iter.get(), text_node_ids); + } +} + +} // namespace + +namespace content { + +AXTreeDistiller::AXTreeDistiller(RenderFrameImpl* render_frame) + : render_frame_(render_frame) {} + +AXTreeDistiller::~AXTreeDistiller() = default; + +void AXTreeDistiller::Distill() { + SnapshotAXTree(); + DistillAXTree(); +} + +void AXTreeDistiller::SnapshotAXTree() { + // If snapshot_ is already cached, do nothing. + if (snapshot_) + return; + snapshot_ = std::make_unique<ui::AXTreeUpdate>(); + + // Get page contents (via snapshot of a11y tree) for reader generation. + AXTreeSnapshotterImpl snapshotter(render_frame_, ui::AXMode::kWebContents); + snapshotter.Snapshot( + /* exclude_offscreen= */ false, kMaxNodes, + /* timeout= */ {}, snapshot_.get()); +} + +void AXTreeDistiller::DistillAXTree() { + // If text_node_ids_ is already cached, do nothing. + if (text_node_ids_) + return; + text_node_ids_ = std::make_unique<std::vector<ui::AXNodeID>>(); + + DCHECK(snapshot_); + ui::AXTree tree; + bool success = tree.Unserialize(*snapshot_); + if (!success) + return; + + // If this page has an article node, only combine text from that node. + const ui::AXNode* reader_root = GetArticleNode(tree.root()); + if (!reader_root) { + reader_root = tree.root(); + } + + text_node_ids_->reserve(snapshot_->nodes.size()); + AddTextNodesToVector(reader_root, text_node_ids_.get()); +} + +} // namespace content
diff --git a/content/renderer/accessibility/ax_tree_distiller.h b/content/renderer/accessibility/ax_tree_distiller.h new file mode 100644 index 0000000..d5e5184e --- /dev/null +++ b/content/renderer/accessibility/ax_tree_distiller.h
@@ -0,0 +1,50 @@ +// Copyright 2022 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CONTENT_RENDERER_ACCESSIBILITY_AX_TREE_DISTILLER_H_ +#define CONTENT_RENDERER_ACCESSIBILITY_AX_TREE_DISTILLER_H_ + +#include <vector> + +#include "ui/accessibility/ax_node_id_forward.h" +#include "ui/accessibility/ax_tree_update_forward.h" + +namespace content { + +class RenderFrameImpl; + +/////////////////////////////////////////////////////////////////////////////// +// AXTreeDistiller +// +// A class that creates and stores a distilled AXTree for a particular render +// frame. +// +class AXTreeDistiller { + public: + explicit AXTreeDistiller(RenderFrameImpl* render_frame); + ~AXTreeDistiller(); + AXTreeDistiller(const AXTreeDistiller&) = delete; + AXTreeDistiller& operator=(const AXTreeDistiller&) = delete; + + void Distill(); + + ui::AXTreeUpdate* GetSnapshot() { return snapshot_.get(); } + std::vector<ui::AXNodeID>* GetTextNodeIDs() { return text_node_ids_.get(); } + + private: + // Takes a snapshot of an accessibility tree and caches it as |snapshot_|. + void SnapshotAXTree(); + + // Distills |snapshot_| by identifying main content nodes and caching their + // IDs as |text_node_ids_|. + void DistillAXTree(); + + RenderFrameImpl* render_frame_; + std::unique_ptr<ui::AXTreeUpdate> snapshot_; + std::unique_ptr<std::vector<ui::AXNodeID>> text_node_ids_; +}; + +} // namespace content + +#endif // CONTENT_RENDERER_ACCESSIBILITY_AX_TREE_SNAPSHOTTER_IMPL_H_
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc index df66eff..655a3fdc 100644 --- a/content/renderer/render_frame_impl.cc +++ b/content/renderer/render_frame_impl.cc
@@ -76,6 +76,7 @@ #include "content/public/renderer/render_thread.h" #include "content/public/renderer/renderer_ppapi_host.h" #include "content/renderer/accessibility/aom_content_ax_tree.h" +#include "content/renderer/accessibility/ax_tree_distiller.h" #include "content/renderer/accessibility/ax_tree_snapshotter_impl.h" #include "content/renderer/accessibility/render_accessibility_impl.h" #include "content/renderer/accessibility/render_accessibility_manager.h" @@ -2275,6 +2276,15 @@ std::move(callback).Run(response); } +void RenderFrameImpl::SnapshotAndDistillAXTree( + SnapshotAndDistillAXTreeCallback callback) { + if (!ax_tree_distiller_) + ax_tree_distiller_ = std::make_unique<AXTreeDistiller>(this); + ax_tree_distiller_->Distill(); + std::move(callback).Run(*ax_tree_distiller_->GetSnapshot(), + *ax_tree_distiller_->GetTextNodeIDs()); +} + void RenderFrameImpl::GetSerializedHtmlWithLocalLinks( const base::flat_map<GURL, base::FilePath>& url_map, const base::flat_map<blink::FrameToken, base::FilePath>& frame_token_map,
diff --git a/content/renderer/render_frame_impl.h b/content/renderer/render_frame_impl.h index 7be2fd1e..1dc67c2e 100644 --- a/content/renderer/render_frame_impl.h +++ b/content/renderer/render_frame_impl.h
@@ -108,6 +108,7 @@ #include "third_party/blink/public/web/web_meaningful_layout.h" #include "ui/accessibility/ax_event.h" #include "ui/accessibility/ax_mode.h" +#include "ui/accessibility/ax_node_id_forward.h" #include "ui/gfx/range/range.h" #include "url/gurl.h" #include "url/origin.h" @@ -150,6 +151,7 @@ namespace content { class AgentSchedulingGroup; +class AXTreeDistiller; class BlinkInterfaceRegistryImpl; class DocumentState; class MediaPermissionDispatcher; @@ -852,6 +854,8 @@ void SnapshotAccessibilityTree( mojom::SnapshotAccessibilityTreeParamsPtr params, SnapshotAccessibilityTreeCallback callback) override; + void SnapshotAndDistillAXTree( + SnapshotAndDistillAXTreeCallback callback) override; void GetSerializedHtmlWithLocalLinks( const base::flat_map<GURL, base::FilePath>& url_map, const base::flat_map<blink::FrameToken, base::FilePath>& frame_token_map, @@ -1390,6 +1394,9 @@ // use inside of Blink. std::unique_ptr<blink::WebComputedAXTree> computed_ax_tree_; + // The AXTreeDistiller for this render frame. + std::unique_ptr<AXTreeDistiller> ax_tree_distiller_; + // Used for tracking a frame's main frame document intersection and // and replicating it to the browser when it changes. absl::optional<gfx::Rect> mainframe_intersection_rect_;
diff --git a/content/shell/BUILD.gn b/content/shell/BUILD.gn index cf042eeb..9e6fde15 100644 --- a/content/shell/BUILD.gn +++ b/content/shell/BUILD.gn
@@ -133,8 +133,6 @@ "browser/shell_download_manager_delegate.h", "browser/shell_federated_permission_context.cc", "browser/shell_federated_permission_context.h", - "browser/shell_identity_dialog_controller.cc", - "browser/shell_identity_dialog_controller.h", "browser/shell_javascript_dialog.h", "browser/shell_javascript_dialog_manager.cc", "browser/shell_javascript_dialog_manager.h",
diff --git a/content/shell/browser/shell_content_browser_client.cc b/content/shell/browser/shell_content_browser_client.cc index 353d55e5..1720e904 100644 --- a/content/shell/browser/shell_content_browser_client.cc +++ b/content/shell/browser/shell_content_browser_client.cc
@@ -51,7 +51,6 @@ #include "content/shell/browser/shell_browser_context.h" #include "content/shell/browser/shell_browser_main_parts.h" #include "content/shell/browser/shell_devtools_manager_delegate.h" -#include "content/shell/browser/shell_identity_dialog_controller.h" #include "content/shell/browser/shell_paths.h" #include "content/shell/browser/shell_quota_permission_context.h" #include "content/shell/browser/shell_web_contents_view_delegate_creator.h" @@ -621,11 +620,6 @@ return http_status_code >= 400 && http_status_code < 600; } -std::unique_ptr<IdentityRequestDialogController> -ShellContentBrowserClient::CreateIdentityRequestDialogController() { - return std::make_unique<ShellIdentityDialogController>(); -} - void ShellContentBrowserClient::CreateFeatureListAndFieldTrials() { local_state_ = CreateLocalState(); SetUpFieldTrials();
diff --git a/content/shell/browser/shell_content_browser_client.h b/content/shell/browser/shell_content_browser_client.h index 7d02e93b..9aa5169 100644 --- a/content/shell/browser/shell_content_browser_client.h +++ b/content/shell/browser/shell_content_browser_client.h
@@ -128,8 +128,6 @@ void GetHyphenationDictionary( base::OnceCallback<void(const base::FilePath&)>) override; bool HasErrorPage(int http_status_code) override; - std::unique_ptr<IdentityRequestDialogController> - CreateIdentityRequestDialogController() override; void OnNetworkServiceCreated( network::mojom::NetworkService* network_service) override;
diff --git a/content/shell/browser/shell_identity_dialog_controller.cc b/content/shell/browser/shell_identity_dialog_controller.cc deleted file mode 100644 index 2727183..0000000 --- a/content/shell/browser/shell_identity_dialog_controller.cc +++ /dev/null
@@ -1,23 +0,0 @@ -// Copyright 2022 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "content/shell/browser/shell_identity_dialog_controller.h" - -namespace content { - -void ShellIdentityDialogController::ShowAccountsDialog( - content::WebContents* rp_web_contents, - const GURL& idp_signin_url, - base::span<const IdentityRequestAccount> accounts, - const IdentityProviderMetadata& idp_metadata, - const ClientIdData& client_id_data, - IdentityRequestAccount::SignInMode sign_in_mode, - AccountSelectionCallback on_selected) { - // Similar in spirit to allowlisted permissions in ShellPermissionManager, - // we automatically select the first account here so that tests can pass. - DCHECK_GT(accounts.size(), 0ul); - std::move(on_selected).Run(accounts[0].id, /* is_sign_in= */ false); -} - -} // namespace content
diff --git a/content/shell/browser/shell_identity_dialog_controller.h b/content/shell/browser/shell_identity_dialog_controller.h deleted file mode 100644 index b7eec9c..0000000 --- a/content/shell/browser/shell_identity_dialog_controller.h +++ /dev/null
@@ -1,25 +0,0 @@ -// Copyright 2022 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef CONTENT_SHELL_BROWSER_SHELL_IDENTITY_DIALOG_CONTROLLER_H_ -#define CONTENT_SHELL_BROWSER_SHELL_IDENTITY_DIALOG_CONTROLLER_H_ - -#include "content/public/browser/identity_request_dialog_controller.h" - -namespace content { - -class ShellIdentityDialogController : public IdentityRequestDialogController { - public: - void ShowAccountsDialog(content::WebContents* rp_web_contents, - const GURL& idp_signin_url, - base::span<const IdentityRequestAccount> accounts, - const IdentityProviderMetadata& idp_metadata, - const ClientIdData& client_id_data, - IdentityRequestAccount::SignInMode sign_in_mode, - AccountSelectionCallback on_selected) override; -}; - -} // namespace content - -#endif // CONTENT_SHELL_BROWSER_SHELL_IDENTITY_DIALOG_CONTROLLER_H_
diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn index 387482b..6c73cecf 100644 --- a/content/test/BUILD.gn +++ b/content/test/BUILD.gn
@@ -1357,8 +1357,6 @@ "../browser/web_package/web_bundle_file_browsertest.cc", "../browser/web_package/web_bundle_network_browsertest.cc", "../browser/web_package/web_bundle_trustable_file_browsertest.cc", - "../browser/webid/test/fake_identity_request_dialog_controller.cc", - "../browser/webid/test/fake_identity_request_dialog_controller.h", "../browser/webid/test/webid_test_content_browser_client.cc", "../browser/webid/test/webid_test_content_browser_client.h", "../browser/webid/webid_browsertest.cc", @@ -2332,8 +2330,6 @@ "../browser/web_package/web_bundle_utils_unittest.cc", "../browser/webid/federated_auth_request_impl_unittest.cc", "../browser/webid/idp_network_request_manager_unittest.cc", - "../browser/webid/test/fake_identity_request_dialog_controller.cc", - "../browser/webid/test/fake_identity_request_dialog_controller.h", "../browser/webid/test/mock_active_session_permission_delegate.cc", "../browser/webid/test/mock_active_session_permission_delegate.h", "../browser/webid/test/mock_api_permission_delegate.cc",
diff --git a/content/test/data/gpu/core_animation_status_api.html b/content/test/data/gpu/core_animation_status_api.html index 7c9c62a..e937c7f9 100644 --- a/content/test/data/gpu/core_animation_status_api.html +++ b/content/test/data/gpu/core_animation_status_api.html
@@ -16,6 +16,7 @@ return pairs; })(window.location.search.substr(1).split('&')); +// Command line '--enable-gpu-benchmarking' is required for this test. function main() { var expectedError = parsedString['error']; if (expectedError == undefined) @@ -23,7 +24,7 @@ const container = document.getElementById('container'); const icon = document.createElement('icon'); - icon.style.backgroundColor = "rgba(90, 129, 193, 255)"; + icon.style.backgroundColor = 'Red'; icon.style.position = "absolute"; icon.style.width = '100px'; icon.style.height = '100px'; @@ -31,9 +32,9 @@ icon.style.left = '0px'; container.appendChild(icon); - // core_animation_status_api.html is tested with a browser command - // line '--disable-features=CoreAnimationRenderer' which causes overlay to - // fail. gfx::kCALayerFailedOverlayDisabled = 32. + // If core_animation_status_api.html is tested with a command line + // '--disable-features=CoreAnimationRenderer' which causes overlay to fail. + // The error code would be 32 (gfx::kCALayerFailedOverlayDisabled). // (See "ui/gfx/ca_layer_result.h" for error code.) function errorCodeHandler(errorCode) { if (errorCode == expectedError) { @@ -45,8 +46,15 @@ } function animation() { - icon.style.left = '200px'; - chrome.gpuBenchmarking.addCoreAnimationStatusEventListener(errorCodeHandler); + if (!chrome.gpuBenchmarking.addCoreAnimationStatusEventListener(errorCodeHandler)) { + console.log("addCoreAnimationStatusEventListener failed!"); + window.domAutomationController.send("FAILED"); + } + + // if gpuBenchmarking is not supported, the test will not reach here and + // the final output shows a red quad instead of a bluish quad. + icon.style.left = '200px'; + icon.style.backgroundColor = "rgba(90, 129, 193, 255)"; } window.requestAnimationFrame(animation);
diff --git a/content/test/gpu/gpu_tests/pixel_test_pages.py b/content/test/gpu/gpu_tests/pixel_test_pages.py index 9cb3f31..e4d70e6 100644 --- a/content/test/gpu/gpu_tests/pixel_test_pages.py +++ b/content/test/gpu/gpu_tests/pixel_test_pages.py
@@ -725,18 +725,20 @@ # Test GpuBenchmarking::AddCoreAnimationStatusEventListener. # Error code is 0 (gfx::kCALayerSuccess) when it succeeds. + # --enable-gpu-benchmarking is added by default and it's required to run + # this test. PixelTestPage('core_animation_status_api.html?error=0', base_name + '_CoreAnimationStatusApiNoError', - test_rect=[0, 0, 300, 300], - browser_args=[cba.ENABLE_GPU_BENCHMARKING]), + test_rect=[0, 0, 300, 300]), # Test GpuBenchmarking::AddCoreAnimationStatusEventListener. # Error code is 32 (gfx::kCALayerFailedOverlayDisabled) when # CoreAnimationRenderer is disabled. + # --enable-gpu-benchmarking is added by default and it's required to run + # this test. PixelTestPage('core_animation_status_api.html?error=32', base_name + '_CoreAnimationStatusApiWithError', test_rect=[0, 0, 300, 300], - browser_args=[cba.ENABLE_GPU_BENCHMARKING] + - no_overlays_args), + browser_args=no_overlays_args), ] # Pages that should be run only on dual-GPU MacBook Pros (at the
diff --git a/content/web_test/browser/web_test_browser_main_runner.cc b/content/web_test/browser/web_test_browser_main_runner.cc index 107cd00..823bfa0 100644 --- a/content/web_test/browser/web_test_browser_main_runner.cc +++ b/content/web_test/browser/web_test_browser_main_runner.cc
@@ -211,6 +211,9 @@ command_line.AppendSwitch(switches::kUseFakeUIForMediaStream); command_line.AppendSwitch(switches::kUseFakeDeviceForMediaStream); + // Always run with fake FedCM UI. + command_line.AppendSwitch(switches::kUseFakeUIForFedCM); + // Enable the deprecated WebAuthn Mojo Testing API. command_line.AppendSwitch(switches::kEnableWebAuthDeprecatedMojoTestingApi);
diff --git a/device/bluetooth/BUILD.gn b/device/bluetooth/BUILD.gn index f1c5a48..1dce4a2 100644 --- a/device/bluetooth/BUILD.gn +++ b/device/bluetooth/BUILD.gn
@@ -356,6 +356,8 @@ "bluez/bluetooth_service_record_bluez.h", "bluez/bluetooth_socket_bluez.cc", "bluez/bluetooth_socket_bluez.h", + "bluez/metrics_recorder.cc", + "bluez/metrics_recorder.h", "dbus/bluetooth_adapter_client.cc", "dbus/bluetooth_adapter_client.h", "dbus/bluetooth_admin_policy_client.cc",
diff --git a/device/bluetooth/bluez/bluetooth_device_bluez.cc b/device/bluetooth/bluez/bluetooth_device_bluez.cc index a5f0670c..4ff7c36 100644 --- a/device/bluetooth/bluez/bluetooth_device_bluez.cc +++ b/device/bluetooth/bluez/bluetooth_device_bluez.cc
@@ -27,6 +27,7 @@ #include "device/bluetooth/bluez/bluetooth_remote_gatt_service_bluez.h" #include "device/bluetooth/bluez/bluetooth_service_record_bluez.h" #include "device/bluetooth/bluez/bluetooth_socket_bluez.h" +#include "device/bluetooth/bluez/metrics_recorder.h" #include "device/bluetooth/dbus/bluetooth_adapter_client.h" #include "device/bluetooth/dbus/bluetooth_device_client.h" #include "device/bluetooth/dbus/bluetooth_gatt_service_client.h" @@ -735,7 +736,9 @@ socket_thread_); socket->Connect(this, uuid, BluetoothSocketBlueZ::SECURITY_LEVEL_MEDIUM, base::BindOnce(std::move(callback), socket), - std::move(error_callback)); + base::BindOnce(&BluetoothDeviceBlueZ::OnConnectToServiceError, + weak_ptr_factory_.GetWeakPtr(), + std::move(error_callback))); } void BluetoothDeviceBlueZ::ConnectToServiceInsecurely( @@ -750,7 +753,9 @@ socket_thread_); socket->Connect(this, uuid, BluetoothSocketBlueZ::SECURITY_LEVEL_LOW, base::BindOnce(std::move(callback), socket), - std::move(error_callback)); + base::BindOnce(&BluetoothDeviceBlueZ::OnConnectToServiceError, + weak_ptr_factory_.GetWeakPtr(), + std::move(error_callback))); } std::unique_ptr<device::BluetoothGattConnection> @@ -790,6 +795,28 @@ } #endif +void BluetoothDeviceBlueZ::OnConnectToServiceError( + ConnectToServiceErrorCallback error_callback, + const std::string& error_message) { + BLUETOOTH_LOG(ERROR) << object_path_.value() + << ": Failed to connect to service: " << error_message; + +#if BUILDFLAG(IS_CHROMEOS) + bluetooth::ConnectToServiceFailureReason reason = + bluetooth::ExtractFailureReasonFromErrorString(error_message); + bluetooth::RecordConnectToServiceFailureReason(reason); + + // If the connection fails when we are supposedly bonded with the remote + // device, record this event specifically. This may indicate that we are in a + // "half paired" (or "half bonded") state as described in b/204274786. + if (IsBonded()) { + bluetooth::RecordBondedConnectToServiceFailureReason(reason); + } +#endif // BUILDFLAG(IS_CHROMEOS) + + std::move(error_callback).Run(error_message); +} + void BluetoothDeviceBlueZ::UpdateServiceData() { bluez::BluetoothDeviceClient::Properties* properties = bluez::BluezDBusManager::Get()->GetBluetoothDeviceClient()->GetProperties(
diff --git a/device/bluetooth/bluez/bluetooth_device_bluez.h b/device/bluetooth/bluez/bluetooth_device_bluez.h index e7e9abf..cd983060 100644 --- a/device/bluetooth/bluez/bluetooth_device_bluez.h +++ b/device/bluetooth/bluez/bluetooth_device_bluez.h
@@ -119,6 +119,12 @@ AbortWriteErrorCallback error_callback) override; #endif // BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_CHROMEOS_LACROS) + // Invoked after a ConnectToService() or ConnectToServiceInsecurely() error, + // to allow us to perform error handling before we invoke the + // ConnectToServiceErrorCallback. + void OnConnectToServiceError(ConnectToServiceErrorCallback error_callback, + const std::string& error_message); + // Returns the complete list of service records discovered for on this // device via SDP. If called before discovery is complete, it may return // an incomplete list and/or stale cached records. @@ -312,7 +318,6 @@ scoped_refptr<base::SequencedTaskRunner> ui_task_runner_; scoped_refptr<device::BluetoothSocketThread> socket_thread_; - // During pairing this is set to an object that we don't own, but on which // we can make method calls to request, display or confirm PIN Codes and // Passkeys. Generally it is the object that owns this one.
diff --git a/device/bluetooth/bluez/metrics_recorder.cc b/device/bluetooth/bluez/metrics_recorder.cc index b1772fdb..ba7c8267 100644 --- a/device/bluetooth/bluez/metrics_recorder.cc +++ b/device/bluetooth/bluez/metrics_recorder.cc
@@ -26,6 +26,30 @@ const char kBlueZNotReadyError[] = "org.bluez.Error.NotReady"; const char kBlueZFailedError[] = "org.bluez.Error.Failed"; +// Note: These values are sourced from the "BR/EDR connection failure reasons" +// in BlueZ's error.h file, and should be kept in sync. +const char kBlueZConnectionAlreadyConnected[] = + "br-connection-already-connected"; +const char kBlueZPageTimeout[] = "br-connection-page-timeout"; +const char kBlueZProfileUnavailable[] = "br-connection-profile-unavailable"; +const char kBlueZSdpSearch[] = "br-connection-sdp-search"; +const char kBlueZCreateSocket[] = "br-connection-create-socket"; +const char kBlueZInvalidArgument[] = "br-connection-invalid-argument"; +const char kBlueZAdapterNotPowered[] = "br-connection-adapter-not-powered"; +const char kBlueZNotSupported[] = "br-connection-not-supported"; +const char kBlueZBadSocket[] = "br-connection-bad-socket"; +const char kBlueZMemoryAllocation[] = "br-connection-memory-allocation"; +const char kBlueZBusy[] = "br-connection-busy"; +const char kBlueZConcurrentConnectionLimit[] = + "br-connection-concurrent-connection-limit"; +const char kBlueZTimeout[] = "br-connection-timeout"; +const char kBlueZRefused[] = "br-connection-refused"; +const char kBlueZAbortedByRemote[] = "br-connection-aborted-by-remote"; +const char kBlueZAbortedByLocal[] = "br-connection-aborted-by-local"; +const char kBlueZLmpProtocolError[] = "br-connection-lmp-protocol-error"; +const char kBlueZCanceled[] = "br-connection-canceled"; +const char kBlueZUnknown[] = "br-connection-unknown"; + } // namespace absl::optional<ConnectToServiceInsecurelyResult> ExtractResultFromErrorString( @@ -75,10 +99,83 @@ return absl::nullopt; } +ConnectToServiceFailureReason ExtractFailureReasonFromErrorString( + const std::string& error_string) { + if (base::Contains(error_string, kBlueZConnectionAlreadyConnected)) + return ConnectToServiceFailureReason::kReasonConnectionAlreadyConnected; + + if (base::Contains(error_string, kBlueZPageTimeout)) + return ConnectToServiceFailureReason::kReasonPageTimeout; + + if (base::Contains(error_string, kBlueZProfileUnavailable)) + return ConnectToServiceFailureReason::kReasonProfileUnavailable; + + if (base::Contains(error_string, kBlueZSdpSearch)) + return ConnectToServiceFailureReason::kReasonSdpSearch; + + if (base::Contains(error_string, kBlueZCreateSocket)) + return ConnectToServiceFailureReason::kReasonCreateSocket; + + if (base::Contains(error_string, kBlueZInvalidArgument)) + return ConnectToServiceFailureReason::kReasonInvalidArgument; + + if (base::Contains(error_string, kBlueZAdapterNotPowered)) + return ConnectToServiceFailureReason::kReasonAdapterNotPowered; + + if (base::Contains(error_string, kBlueZNotSupported)) + return ConnectToServiceFailureReason::kReasonNotSupported; + + if (base::Contains(error_string, kBlueZBadSocket)) + return ConnectToServiceFailureReason::kReasonBadSocket; + + if (base::Contains(error_string, kBlueZMemoryAllocation)) + return ConnectToServiceFailureReason::kReasonMemoryAllocation; + + if (base::Contains(error_string, kBlueZBusy)) + return ConnectToServiceFailureReason::kReasonBusy; + + if (base::Contains(error_string, kBlueZConcurrentConnectionLimit)) + return ConnectToServiceFailureReason::kReasonConcurrentConnectionLimit; + + if (base::Contains(error_string, kBlueZTimeout)) + return ConnectToServiceFailureReason::kReasonTimeout; + + if (base::Contains(error_string, kBlueZRefused)) + return ConnectToServiceFailureReason::kReasonRefused; + + if (base::Contains(error_string, kBlueZAbortedByRemote)) + return ConnectToServiceFailureReason::kReasonAbortedByRemote; + + if (base::Contains(error_string, kBlueZAbortedByLocal)) + return ConnectToServiceFailureReason::kReasonAbortedByLocal; + + if (base::Contains(error_string, kBlueZLmpProtocolError)) + return ConnectToServiceFailureReason::kReasonLmpProtocolError; + + if (base::Contains(error_string, kBlueZCanceled)) + return ConnectToServiceFailureReason::kReasonCanceled; + + if (base::Contains(error_string, kBlueZUnknown)) + return ConnectToServiceFailureReason::kReasonUnknown; + + return ConnectToServiceFailureReason::kReasonUnknown; +} + void RecordConnectToServiceInsecurelyResult( ConnectToServiceInsecurelyResult result) { base::UmaHistogramEnumeration( "Bluetooth.Linux.ConnectToServiceInsecurelyResult", result); } +void RecordConnectToServiceFailureReason(ConnectToServiceFailureReason reason) { + base::UmaHistogramEnumeration( + "Bluetooth.Linux.ConnectToService.FailureReason", reason); +} + +void RecordBondedConnectToServiceFailureReason( + ConnectToServiceFailureReason reason) { + base::UmaHistogramEnumeration( + "Bluetooth.Linux.ConnectToService.Bonded.FailureReason", reason); +} + } // namespace bluetooth
diff --git a/device/bluetooth/bluez/metrics_recorder.h b/device/bluetooth/bluez/metrics_recorder.h index 4064db1a..b8ca5164 100644 --- a/device/bluetooth/bluez/metrics_recorder.h +++ b/device/bluetooth/bluez/metrics_recorder.h
@@ -34,14 +34,51 @@ kMaxValue = kUnknownError }; +// Failure reasons for connection failures. Numerical values are used for +// metrics and should not be changed or reused. +enum class ConnectToServiceFailureReason { + kReasonConnectionAlreadyConnected = 0, + kReasonPageTimeout = 1, + kReasonProfileUnavailable = 2, + kReasonSdpSearch = 3, + kReasonCreateSocket = 4, + kReasonInvalidArgument = 5, + kReasonAdapterNotPowered = 6, + kReasonNotSupported = 7, + kReasonBadSocket = 8, + kReasonMemoryAllocation = 9, + kReasonBusy = 10, + kReasonConcurrentConnectionLimit = 11, + kReasonTimeout = 12, + kReasonRefused = 13, + kReasonAbortedByRemote = 14, + kReasonAbortedByLocal = 15, + kReasonLmpProtocolError = 16, + kReasonCanceled = 17, + kReasonUnknown = 18, + kMaxValue = kReasonUnknown +}; + // Returns the ConnectToServiceInsecurelyResult type associated with // |error_string|, or null if no result could be found. absl::optional<ConnectToServiceInsecurelyResult> ExtractResultFromErrorString( const std::string& error_string); +// Returns the ConnectToServiceFailureReason type associated with +// |error_string|. Returns |kReasonUnknown| if the error is not recognized. +ConnectToServiceFailureReason ExtractFailureReasonFromErrorString( + const std::string& error_string); + void RecordConnectToServiceInsecurelyResult( ConnectToServiceInsecurelyResult result); +void RecordConnectToServiceFailureReason(ConnectToServiceFailureReason reason); + +// Records a specific scenario in which we fail to connect to a remote device +// that is considered to be bonded. +void RecordBondedConnectToServiceFailureReason( + ConnectToServiceFailureReason reason); + } // namespace bluetooth #endif // DEVICE_BLUETOOTH_BLUEZ_METRICS_RECORDER_H_
diff --git a/fuchsia/cipd/BUILD.gn b/fuchsia/cipd/BUILD.gn index 8811ec0..568103d 100644 --- a/fuchsia/cipd/BUILD.gn +++ b/fuchsia/cipd/BUILD.gn
@@ -422,5 +422,5 @@ ] } visibility = [] # Required to replace the file default. - visibility = [ "//fuchsia:gn_all" ] + visibility = [ "//:gn_all" ] }
diff --git a/infra/config/generated/builders/ci/Dawn Win10 x64 ASAN Release/properties.json b/infra/config/generated/builders/ci/Dawn Win10 x64 ASAN Release/properties.json index 9de08acc..5ff6274 100644 --- a/infra/config/generated/builders/ci/Dawn Win10 x64 ASAN Release/properties.json +++ b/infra/config/generated/builders/ci/Dawn Win10 x64 ASAN Release/properties.json
@@ -1,9 +1,8 @@ { - "$build/goma": { - "enable_ats": true, - "rpc_extra_params": "?prod", - "server_host": "goma.chromium.org", - "use_luci_auth": true + "$build/reclient": { + "instance": "rbe-chromium-trusted", + "jobs": 80, + "metrics_project": "chromium-reclient-metrics" }, "$recipe_engine/resultdb/test_presentation": { "column_keys": [],
diff --git a/infra/config/generated/cq-builders.md b/infra/config/generated/cq-builders.md index 547d48a0..08adf27 100644 --- a/infra/config/generated/cq-builders.md +++ b/infra/config/generated/cq-builders.md
@@ -464,7 +464,7 @@ * [`//third_party/nearby/README.chromium`](https://cs.chromium.org/search?q=+file:third_party/nearby/README.chromium) * [android-12-x64-rel](https://ci.chromium.org/p/chromium/builders/try/android-12-x64-rel) ([definition](https://cs.chromium.org/search?q=+file:/try.star$+""android-12-x64-rel"")) ([matching builders](https://cs.chromium.org/search?q=+file:trybots.py+""android-12-x64-rel"")) - * Experiment percentage: 80.0 + * Experiment percentage: 100.0 * [android-pie-arm64-coverage-experimental-rel](https://ci.chromium.org/p/chromium/builders/try/android-pie-arm64-coverage-experimental-rel) ([definition](https://cs.chromium.org/search?q=+file:/try.star$+""android-pie-arm64-coverage-experimental-rel"")) ([matching builders](https://cs.chromium.org/search?q=+file:trybots.py+""android-pie-arm64-coverage-experimental-rel"")) * Experiment percentage: 3.0
diff --git a/infra/config/generated/luci/commit-queue.cfg b/infra/config/generated/luci/commit-queue.cfg index ad11461..4ab942f2 100644 --- a/infra/config/generated/luci/commit-queue.cfg +++ b/infra/config/generated/luci/commit-queue.cfg
@@ -286,7 +286,7 @@ } builders { name: "chromium/try/android-12-x64-rel" - experiment_percentage: 80 + experiment_percentage: 100 location_regexp: ".*" location_regexp_exclude: ".+/[+]/docs/.+" location_regexp_exclude: ".+/[+]/infra/config/.+"
diff --git a/infra/config/subprojects/chromium/ci/chromium.dawn.star b/infra/config/subprojects/chromium/ci/chromium.dawn.star index 46f80fec..a7bfa15 100644 --- a/infra/config/subprojects/chromium/ci/chromium.dawn.star +++ b/infra/config/subprojects/chromium/ci/chromium.dawn.star
@@ -187,6 +187,9 @@ category = "ToT|Windows|ASAN", short_name = "x64", ), + goma_backend = None, + reclient_jobs = rbe_jobs.LOW_JOBS_FOR_CI, + reclient_instance = rbe_instance.DEFAULT, ) ci.gpu.windows_builder(
diff --git a/infra/config/subprojects/chromium/try/tryserver.chromium.android.star b/infra/config/subprojects/chromium/try/tryserver.chromium.android.star index b1287ae8..3af27d5 100644 --- a/infra/config/subprojects/chromium/try/tryserver.chromium.android.star +++ b/infra/config/subprojects/chromium/try/tryserver.chromium.android.star
@@ -47,7 +47,7 @@ # branch_selector = branches.STANDARD_MILESTONE, main_list_view = "try", tryjob = try_.job( - experiment_percentage = 80, + experiment_percentage = 100, ), )
diff --git a/ios/chrome/browser/overlays/public/infobar_banner/confirm_infobar_banner_overlay_request_config.mm b/ios/chrome/browser/overlays/public/infobar_banner/confirm_infobar_banner_overlay_request_config.mm index cc6cc07..14c9705 100644 --- a/ios/chrome/browser/overlays/public/infobar_banner/confirm_infobar_banner_overlay_request_config.mm +++ b/ios/chrome/browser/overlays/public/infobar_banner/confirm_infobar_banner_overlay_request_config.mm
@@ -29,7 +29,7 @@ message_text_ = delegate->GetMessageText(); button_label_text_ = delegate->GetButtonLabel(ConfirmInfoBarDelegate::BUTTON_OK); - icon_image_ = delegate->GetIcon(); + icon_image_ = gfx::Image(delegate->GetIcon().Rasterize(nullptr)); is_high_priority_ = static_cast<InfoBarIOS*>(infobar)->high_priority(); use_icon_background_tint_ = delegate->UseIconBackgroundTint(); }
diff --git a/ios/chrome/browser/ui/authentication/re_signin_infobar_delegate.h b/ios/chrome/browser/ui/authentication/re_signin_infobar_delegate.h index b589d93..7fc293c 100644 --- a/ios/chrome/browser/ui/authentication/re_signin_infobar_delegate.h +++ b/ios/chrome/browser/ui/authentication/re_signin_infobar_delegate.h
@@ -58,7 +58,7 @@ std::u16string GetMessageText() const override; int GetButtons() const override; std::u16string GetButtonLabel(InfoBarButton button) const override; - gfx::Image GetIcon() const override; + ui::ImageModel GetIcon() const override; bool Accept() override; void InfoBarDismissed() override;
diff --git a/ios/chrome/browser/ui/authentication/re_signin_infobar_delegate.mm b/ios/chrome/browser/ui/authentication/re_signin_infobar_delegate.mm index 0584a32a..d15322f 100644 --- a/ios/chrome/browser/ui/authentication/re_signin_infobar_delegate.mm +++ b/ios/chrome/browser/ui/authentication/re_signin_infobar_delegate.mm
@@ -125,8 +125,8 @@ IDS_IOS_SYNC_INFOBAR_SIGN_IN_SETTINGS_BUTTON_MOBILE); } -gfx::Image ReSignInInfoBarDelegate::GetIcon() const { - return icon_; +ui::ImageModel ReSignInInfoBarDelegate::GetIcon() const { + return ui::ImageModel::FromImage(icon_); } bool ReSignInInfoBarDelegate::Accept() {
diff --git a/ios/chrome/browser/ui/authentication/signin_notification_infobar_delegate.h b/ios/chrome/browser/ui/authentication/signin_notification_infobar_delegate.h index 727126f..6301731 100644 --- a/ios/chrome/browser/ui/authentication/signin_notification_infobar_delegate.h +++ b/ios/chrome/browser/ui/authentication/signin_notification_infobar_delegate.h
@@ -53,7 +53,7 @@ std::u16string GetMessageText() const override; int GetButtons() const override; std::u16string GetButtonLabel(InfoBarButton button) const override; - gfx::Image GetIcon() const override; + ui::ImageModel GetIcon() const override; bool UseIconBackgroundTint() const override; bool Accept() override; bool ShouldExpire(const NavigationDetails& details) const override;
diff --git a/ios/chrome/browser/ui/authentication/signin_notification_infobar_delegate.mm b/ios/chrome/browser/ui/authentication/signin_notification_infobar_delegate.mm index c5d3522..35e43a4 100644 --- a/ios/chrome/browser/ui/authentication/signin_notification_infobar_delegate.mm +++ b/ios/chrome/browser/ui/authentication/signin_notification_infobar_delegate.mm
@@ -100,8 +100,8 @@ return button_text_; } -gfx::Image SigninNotificationInfoBarDelegate::GetIcon() const { - return icon_; +ui::ImageModel SigninNotificationInfoBarDelegate::GetIcon() const { + return ui::ImageModel::FromImage(icon_); } bool SigninNotificationInfoBarDelegate::UseIconBackgroundTint() const {
diff --git a/ios/chrome/browser/ui/ntp/feed_header_view_controller.h b/ios/chrome/browser/ui/ntp/feed_header_view_controller.h index 976d768..548f5ea 100644 --- a/ios/chrome/browser/ui/ntp/feed_header_view_controller.h +++ b/ios/chrome/browser/ui/ntp/feed_header_view_controller.h
@@ -33,6 +33,10 @@ bundle:(NSBundle*)nibBundleOrNil NS_UNAVAILABLE; - (instancetype)initWithCoder:(NSCoder*)aDecoder NS_UNAVAILABLE; +// Toggles the feed header's background blur. Animates the transition if +// |animated| is YES. +- (void)toggleBackgroundBlur:(BOOL)blurred animated:(BOOL)animated; + @end #endif // IOS_CHROME_BROWSER_UI_NTP_FEED_HEADER_VIEW_CONTROLLER_H_
diff --git a/ios/chrome/browser/ui/ntp/feed_header_view_controller.mm b/ios/chrome/browser/ui/ntp/feed_header_view_controller.mm index 861da8f6d..9ee1cfc 100644 --- a/ios/chrome/browser/ui/ntp/feed_header_view_controller.mm +++ b/ios/chrome/browser/ui/ntp/feed_header_view_controller.mm
@@ -10,6 +10,7 @@ #import "ios/chrome/browser/ui/ntp/new_tab_page_feature.h" #import "ios/chrome/browser/ui/util/uikit_ui_util.h" #import "ios/chrome/common/ui/colors/semantic_color_names.h" +#import "ios/chrome/common/ui/util/constraints_ui_util.h" #include "ios/chrome/grit/ios_strings.h" #include "ui/base/l10n/l10n_util.h" #include "ui/base/l10n/l10n_util_mac.h" @@ -80,6 +81,9 @@ // The currently selected sorting for the Following feed. @property(nonatomic, assign) FollowingFeedSortType followingFeedSortType; +// The blurred background of the feed header. +@property(nonatomic, strong) UIVisualEffectView* blurBackgroundView; + @end @implementation FeedHeaderViewController @@ -101,10 +105,18 @@ - (void)viewDidLoad { [super viewDidLoad]; - self.container = [[UIView alloc] init]; + // Adds a minor background to the blur so that it doesn't blend too much with + // the feed content. If Reduce Trasparency is enabled, then we just use + // translucent opacity instead. + if (UIAccessibilityIsReduceTransparencyEnabled()) { + self.view.backgroundColor = + [[UIColor colorNamed:kBackgroundColor] colorWithAlphaComponent:0.95]; + } else { + self.view.backgroundColor = + [[UIColor colorNamed:kBackgroundColor] colorWithAlphaComponent:0.1]; + } - self.view.backgroundColor = - [[UIColor colorNamed:kBackgroundColor] colorWithAlphaComponent:0.95]; + self.container = [[UIView alloc] init]; self.view.translatesAutoresizingMaskIntoConstraints = NO; self.container.translatesAutoresizingMaskIntoConstraints = NO; @@ -118,6 +130,15 @@ self.sortButton = [self createSortButton]; self.sortButton.menu = [self createSortMenu]; [self.container addSubview:self.sortButton]; + + if (!UIAccessibilityIsReduceTransparencyEnabled()) { + self.blurBackgroundView = [self createBlurBackground]; + [self.view addSubview:self.blurBackgroundView]; + // The blurred background has a tint that is visible when the header is + // over the standard NTP background. For this reason, we only add the blur + // background when scrolled into the feed. + self.blurBackgroundView.hidden = YES; + } } else { self.titleLabel = [self createTitleLabel]; [self.container addSubview:self.titleLabel]; @@ -128,6 +149,25 @@ [self applyHeaderConstraints]; } +- (void)toggleBackgroundBlur:(BOOL)blurred animated:(BOOL)animated { + if (UIAccessibilityIsReduceTransparencyEnabled() || !IsWebChannelsEnabled()) { + return; + } + DCHECK(self.blurBackgroundView); + + if (!animated) { + self.blurBackgroundView.hidden = !blurred; + return; + } + [UIView transitionWithView:self.blurBackgroundView + duration:0.3 + options:UIViewAnimationOptionTransitionCrossDissolve + animations:^{ + self.blurBackgroundView.hidden = !blurred; + } + completion:nil]; +} + #pragma mark - Setters // Sets |titleText| and updates header label if it exists. @@ -273,6 +313,16 @@ return segmentedControl; } +// Configures and returns the blurred background of the feed header. +- (UIVisualEffectView*)createBlurBackground { + UIBlurEffect* blurEffect = + [UIBlurEffect effectWithStyle:UIBlurEffectStyleSystemMaterial]; + UIVisualEffectView* blurBackgroundView = + [[UIVisualEffectView alloc] initWithEffect:blurEffect]; + blurBackgroundView.translatesAutoresizingMaskIntoConstraints = NO; + return blurBackgroundView; +} + // Applies constraints for the feed header elements' positioning. - (void)applyHeaderConstraints { // Anchor container and menu button. @@ -320,6 +370,9 @@ [self.sortButton.centerYAnchor constraintEqualToAnchor:self.container.centerYAnchor], ]]; + if (self.blurBackgroundView) { + AddSameConstraints(self.blurBackgroundView, self.view); + } } else { // Anchors title label. [NSLayoutConstraint activateConstraints:@[
diff --git a/ios/chrome/browser/ui/ntp/new_tab_page_view_controller.mm b/ios/chrome/browser/ui/ntp/new_tab_page_view_controller.mm index 0f09819..f3fd9cc 100644 --- a/ios/chrome/browser/ui/ntp/new_tab_page_view_controller.mm +++ b/ios/chrome/browser/ui/ntp/new_tab_page_view_controller.mm
@@ -724,9 +724,8 @@ // omnibox. - (void)stickFeedHeaderToTop { DCHECK(self.feedHeaderViewController); - + DCHECK(IsWebChannelsEnabled()); [NSLayoutConstraint deactivateConstraints:self.feedHeaderConstraints]; - self.feedHeaderConstraints = @[ [self.feedHeaderViewController.view.topAnchor constraintEqualToAnchor:self.headerController.view.bottomAnchor @@ -735,12 +734,13 @@ constraintEqualToAnchor:[self contentSuggestionsViewController] .view.bottomAnchor], ]; - + [self.feedHeaderViewController toggleBackgroundBlur:YES animated:YES]; [NSLayoutConstraint activateConstraints:self.feedHeaderConstraints]; } // Sets initial feed header constraints, between content suggestions and feed. - (void)setInitialFeedHeaderConstraints { + DCHECK(self.feedHeaderViewController); [NSLayoutConstraint deactivateConstraints:self.feedHeaderConstraints]; self.feedHeaderConstraints = @[ [self.feedHeaderViewController.view.topAnchor @@ -750,6 +750,7 @@ constraintEqualToAnchor:self.feedHeaderViewController.view .bottomAnchor], ]; + [self.feedHeaderViewController toggleBackgroundBlur:NO animated:YES]; [NSLayoutConstraint activateConstraints:self.feedHeaderConstraints]; } @@ -1116,6 +1117,10 @@ - (void)setContentOffset:(CGFloat)offset { self.collectionView.contentOffset = CGPointMake(0, offset); self.scrolledIntoFeed = offset > -[self offsetWhenScrolledIntoFeed]; + if (self.feedHeaderViewController) { + [self.feedHeaderViewController toggleBackgroundBlur:self.scrolledIntoFeed + animated:NO]; + } } @end
diff --git a/ios/chrome/browser/ui/settings/sync/utils/sync_error_infobar_delegate.h b/ios/chrome/browser/ui/settings/sync/utils/sync_error_infobar_delegate.h index e6fa7ba..e52b73a 100644 --- a/ios/chrome/browser/ui/settings/sync/utils/sync_error_infobar_delegate.h +++ b/ios/chrome/browser/ui/settings/sync/utils/sync_error_infobar_delegate.h
@@ -48,7 +48,7 @@ std::u16string GetMessageText() const override; int GetButtons() const override; std::u16string GetButtonLabel(InfoBarButton button) const override; - gfx::Image GetIcon() const override; + ui::ImageModel GetIcon() const override; bool UseIconBackgroundTint() const override; bool Accept() override;
diff --git a/ios/chrome/browser/ui/settings/sync/utils/sync_error_infobar_delegate.mm b/ios/chrome/browser/ui/settings/sync/utils/sync_error_infobar_delegate.mm index 19384415..b0fb685e 100644 --- a/ios/chrome/browser/ui/settings/sync/utils/sync_error_infobar_delegate.mm +++ b/ios/chrome/browser/ui/settings/sync/utils/sync_error_infobar_delegate.mm
@@ -94,8 +94,8 @@ return button_text_; } -gfx::Image SyncErrorInfoBarDelegate::GetIcon() const { - return icon_; +ui::ImageModel SyncErrorInfoBarDelegate::GetIcon() const { + return ui::ImageModel::FromImage(icon_); } bool SyncErrorInfoBarDelegate::UseIconBackgroundTint() const {
diff --git a/ios/chrome/browser/upgrade/upgrade_center.mm b/ios/chrome/browser/upgrade/upgrade_center.mm index ab88de0b..164feff 100644 --- a/ios/chrome/browser/upgrade/upgrade_center.mm +++ b/ios/chrome/browser/upgrade/upgrade_center.mm
@@ -85,11 +85,11 @@ return false; } - gfx::Image GetIcon() const override { + ui::ImageModel GetIcon() const override { if (icon_.IsEmpty()) { icon_ = gfx::Image([UIImage imageNamed:@"infobar_update"]); } - return icon_; + return ui::ImageModel::FromImage(icon_); } std::u16string GetMessageText() const override {
diff --git a/ios/chrome/browser/web/BUILD.gn b/ios/chrome/browser/web/BUILD.gn index 3eaa7f1f..ea5fe38 100644 --- a/ios/chrome/browser/web/BUILD.gn +++ b/ios/chrome/browser/web/BUILD.gn
@@ -39,7 +39,6 @@ "//components/content_settings/core/browser", "//components/error_page/common", "//components/feature_engagement/public", - "//components/infobars/core", "//components/pref_registry", "//components/resources:components_resources_grit", "//components/resources:dev_ui_components_resources_grit", @@ -75,6 +74,7 @@ "//ui/base", "//url", ] + public_deps = [ "//components/infobars/core" ] } source_set("delegate") {
diff --git a/ios/chrome/browser/web/blocked_popup_tab_helper.mm b/ios/chrome/browser/web/blocked_popup_tab_helper.mm index 3606ca53..73246fb 100644 --- a/ios/chrome/browser/web/blocked_popup_tab_helper.mm +++ b/ios/chrome/browser/web/blocked_popup_tab_helper.mm
@@ -50,11 +50,11 @@ return POPUP_BLOCKED_INFOBAR_DELEGATE_MOBILE; } - gfx::Image GetIcon() const override { + ui::ImageModel GetIcon() const override { if (icon_.IsEmpty()) { icon_ = gfx::Image([UIImage imageNamed:@"infobar_popup_blocker"]); } - return icon_; + return ui::ImageModel::FromImage(icon_); } std::u16string GetMessageText() const override {
diff --git a/ios/web/text_fragments/resources/text_fragments.js b/ios/web/text_fragments/resources/text_fragments.js index 39cbca84..24eb21b 100644 --- a/ios/web/text_fragments/resources/text_fragments.js +++ b/ios/web/text_fragments/resources/text_fragments.js
@@ -136,10 +136,23 @@ }; const handleClickWithSender = function(event) { + const mark = event.currentTarget; + + // Traverse upwards from the mark element to see if it's a child of an <a>. + // If so, discard the event to prevent showing a menu while navigation is + // in progress. + let node = mark.parentNode; + while (node != null) { + if (node.tagName == 'A') { + return; + } + node = node.parentNode; + } + __gCrWeb.common.sendWebKitMessage('textFragments', { command: 'textFragments.onClickWithSender', - rect: rectFromElement(event.target), - text: `"${event.target.innerText}"`, + rect: rectFromElement(mark), + text: `"${mark.innerText}"`, fragments: cachedFragments }); }; @@ -152,5 +165,5 @@ width: domRect.width, height: domRect.height }; - } + }; })();
diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc index 95db4fd..277ece1 100644 --- a/media/base/media_switches.cc +++ b/media/base/media_switches.cc
@@ -786,6 +786,8 @@ "MediaFoundationAV1Encoding", base::FEATURE_DISABLED_BY_DEFAULT}; // Enables H.264 CBP encode acceleration for Windows. +// For feature check of kMediaFoundationH264CbpEncoding at runtime, +// please use IsMediaFoundationH264CbpEncodingEnabled() instead. const base::Feature MEDIA_EXPORT kMediaFoundationH264CbpEncoding{ "MediaFoundationH264CbpEncoding", base::FEATURE_DISABLED_BY_DEFAULT}; @@ -794,6 +796,8 @@ "MediaFoundationVideoCapture", base::FEATURE_ENABLED_BY_DEFAULT}; // Enables MediaFoundation based video capture with D3D11 +// For feature check of kMediaFoundationD3D11VideoCapture at runtime, +// please use IsMediaFoundationD3D11VideoCaptureEnabled() instead. const base::Feature kMediaFoundationD3D11VideoCapture{ "MediaFoundationD3D11VideoCapture", base::FEATURE_DISABLED_BY_DEFAULT}; @@ -1013,4 +1017,14 @@ #endif } +#if BUILDFLAG(IS_WIN) +bool IsMediaFoundationH264CbpEncodingEnabled() { + return base::FeatureList::IsEnabled(kMediaFoundationH264CbpEncoding); +} + +bool IsMediaFoundationD3D11VideoCaptureEnabled() { + return base::FeatureList::IsEnabled(kMediaFoundationD3D11VideoCapture); +} +#endif + } // namespace media
diff --git a/media/base/media_switches.h b/media/base/media_switches.h index 4488c97..2309556 100644 --- a/media/base/media_switches.h +++ b/media/base/media_switches.h
@@ -246,10 +246,18 @@ MEDIA_EXPORT extern const base::Feature kDirectShowGetPhotoState; MEDIA_EXPORT extern const base::Feature kIncludeIRCamerasInDeviceEnumeration; MEDIA_EXPORT extern const base::Feature kMediaFoundationAV1Encoding; + +// For feature check of kMediaFoundationH264CbpEncoding at runtime, +// please use IsMediaFoundationH264CbpEncodingEnabled() instead. MEDIA_EXPORT extern const base::Feature kMediaFoundationH264CbpEncoding; + MEDIA_EXPORT extern const base::Feature kMediaFoundationVideoCapture; MEDIA_EXPORT extern const base::Feature kMediaFoundationVP8Decoding; + +// For feature check of kMediaFoundationD3D11VideoCapture at runtime, +// please use IsMediaFoundationD3D11VideoCaptureEnabled() instead. MEDIA_EXPORT extern const base::Feature kMediaFoundationD3D11VideoCapture; + MEDIA_EXPORT extern const base::Feature kMediaFoundationClearPlayback; MEDIA_EXPORT extern const base::Feature kWasapiRawAudioCapture; MEDIA_EXPORT extern const base::Feature kD3D11HEVCDecoding; @@ -273,6 +281,11 @@ MEDIA_EXPORT bool IsLiveCaptionFeatureEnabled(); MEDIA_EXPORT bool IsVideoCaptureAcceleratedJpegDecodingEnabled(); +#if BUILDFLAG(IS_WIN) +MEDIA_EXPORT bool IsMediaFoundationH264CbpEncodingEnabled(); +MEDIA_EXPORT bool IsMediaFoundationD3D11VideoCaptureEnabled(); +#endif + enum class kCrosGlobalMediaControlsPinOptions { kPin, kNotPin,
diff --git a/media/capture/video/win/video_capture_device_factory_win.cc b/media/capture/video/win/video_capture_device_factory_win.cc index 62f3247..8fb4433 100644 --- a/media/capture/video/win/video_capture_device_factory_win.cc +++ b/media/capture/video/win/video_capture_device_factory_win.cc
@@ -329,8 +329,7 @@ : use_media_foundation_( base::FeatureList::IsEnabled(media::kMediaFoundationVideoCapture)), use_d3d11_with_media_foundation_( - base::FeatureList::IsEnabled( - media::kMediaFoundationD3D11VideoCapture) && + media::IsMediaFoundationD3D11VideoCaptureEnabled() && switches::IsVideoCaptureUseGpuMemoryBufferEnabled()), com_thread_("Windows Video Capture COM Thread") { if (use_media_foundation_ && !PlatformSupportsMediaFoundation()) {
diff --git a/media/gpu/chromeos/platform_video_frame_utils.cc b/media/gpu/chromeos/platform_video_frame_utils.cc index 428c869..9aa74fa 100644 --- a/media/gpu/chromeos/platform_video_frame_utils.cc +++ b/media/gpu/chromeos/platform_video_frame_utils.cc
@@ -331,6 +331,7 @@ } handle.type = gfx::NATIVE_PIXMAP; + handle.id = GetNextGpuMemoryBufferId(); DCHECK_EQ(video_frame->layout().planes().size(), num_planes); handle.native_pixmap_handle.modifier = video_frame->layout().modifier(); for (size_t i = 0; i < num_planes; ++i) {
diff --git a/media/gpu/vaapi/vaapi_image_processor_backend.cc b/media/gpu/vaapi/vaapi_image_processor_backend.cc index f5a346f..cd69c010 100644 --- a/media/gpu/vaapi/vaapi_image_processor_backend.cc +++ b/media/gpu/vaapi/vaapi_image_processor_backend.cc
@@ -75,19 +75,15 @@ return nullptr; if (!base::Contains(input_config.preferred_storage_types, - VideoFrame::STORAGE_DMABUFS) && - !base::Contains(input_config.preferred_storage_types, VideoFrame::STORAGE_GPU_MEMORY_BUFFER)) { - VLOGF(2) << "VaapiImageProcessorBackend supports Dmabuf-backed or " - "GpuMemoryBuffer based VideoFrame only for input"; + VLOGF(2) << "VaapiImageProcessorBackend supports GpuMemoryBuffer based" + "VideoFrame only for input"; return nullptr; } if (!base::Contains(output_config.preferred_storage_types, - VideoFrame::STORAGE_DMABUFS) && - !base::Contains(output_config.preferred_storage_types, VideoFrame::STORAGE_GPU_MEMORY_BUFFER)) { - VLOGF(2) << "VaapiImageProcessorBackend supports Dmabuf-backed or " - "GpuMemoryBuffer based VideoFrame only for output"; + VLOGF(2) << "VaapiImageProcessorBackend supports GpuMemoryBuffer based" + "VideoFrame only for output"; return nullptr; }
diff --git a/media/gpu/windows/media_foundation_video_encode_accelerator_win.cc b/media/gpu/windows/media_foundation_video_encode_accelerator_win.cc index 72bb399..7bf3f37 100644 --- a/media/gpu/windows/media_foundation_video_encode_accelerator_win.cc +++ b/media/gpu/windows/media_foundation_video_encode_accelerator_win.cc
@@ -434,7 +434,7 @@ RETURN_ON_HR_FAILURE(hr, "Failed to create sample", false); if (config.input_format == PIXEL_FORMAT_NV12 && - base::FeatureList::IsEnabled(kMediaFoundationD3D11VideoCapture)) { + media::IsMediaFoundationD3D11VideoCaptureEnabled()) { dxgi_device_manager_ = DXGIDeviceManager::Create(); if (!dxgi_device_manager_) { MEDIA_LOG(ERROR, media_log.get()) << "Failed to create DXGIDeviceManager";
diff --git a/net/dns/dns_test_util.cc b/net/dns/dns_test_util.cc index 4109ba1..5ba78a5 100644 --- a/net/dns/dns_test_util.cc +++ b/net/dns/dns_test_util.cc
@@ -475,9 +475,13 @@ result_.response = CreateMalformedResponse(hostname_, qtype_); break; case MockDnsClientRule::ResultType::kUnexpected: - ADD_FAILURE() - << "Unexpected DNS transaction created for hostname " - << hostname_; + if (!delayed_) { + // Assume a delayed kUnexpected transaction is only an issue if + // allowed to complete. + ADD_FAILURE() + << "Unexpected DNS transaction created for hostname " + << hostname_; + } break; }
diff --git a/net/dns/dns_test_util.h b/net/dns/dns_test_util.h index abfa149..299e808 100644 --- a/net/dns/dns_test_util.h +++ b/net/dns/dns_test_util.h
@@ -296,7 +296,8 @@ // "Succeed" but with an unparsable response. kMalformed, // Immediately records a test failure if queried. Used to catch unexpected - // queries. + // queries. Alternately, if combined with `MockDnsClientRule::delay`, fails + // only if the query is allowed to complete without being cancelled. kUnexpected, // Results in the response in |Result::response| or, if null, results in a
diff --git a/net/dns/host_resolver_manager.cc b/net/dns/host_resolver_manager.cc index a324e5a..b3a509c 100644 --- a/net/dns/host_resolver_manager.cc +++ b/net/dns/host_resolver_manager.cc
@@ -24,6 +24,7 @@ #include "base/compiler_specific.h" #include "base/containers/circular_deque.h" #include "base/containers/contains.h" +#include "base/containers/cxx20_erase.h" #include "base/containers/flat_set.h" #include "base/containers/linked_list.h" #include "base/debug/debugger.h" @@ -1237,10 +1238,10 @@ HostCache::Entry results, bool secure) = 0; - // Called when a job succeeds and there are more transactions needed. If - // the current completed transaction fails, this is not called. Also not - // called when the DnsTask only needs to run one transaction. - virtual void OnIntermediateTransactionComplete() = 0; + // Called when one or more transactions complete or get cancelled, but only + // if more transactions are needed. If no more transactions are needed, + // expect `OnDnsTaskComplete()` to be called instead. + virtual void OnIntermediateTransactionsComplete() = 0; virtual RequestPriority priority() const = 0; @@ -1285,24 +1286,24 @@ DnsTask(const DnsTask&) = delete; DnsTask& operator=(const DnsTask&) = delete; - // The number of transactions required for the specified query type. Does not - // change as transactions are completed. - int num_needed_transactions() const { return num_needed_transactions_; } + int num_additional_transactions_needed() const { + return base::checked_cast<int>(transactions_needed_.size()); + } - bool needs_another_transaction() const { - return !transactions_needed_.empty(); + int num_transactions_in_progress() const { + return base::checked_cast<int>(transactions_in_progress_.size()); } bool secure() const { return secure_; } void StartNextTransaction() { - DCHECK(needs_another_transaction()); + DCHECK_GE(num_additional_transactions_needed(), 1); - if (num_needed_transactions_ == - static_cast<int>(transactions_needed_.size())) { + if (!any_transaction_started_) { net_log_.BeginEvent(NetLogEventType::HOST_RESOLVER_MANAGER_DNS_TASK, [&] { return NetLogDnsTaskCreationParams(); }); } + any_transaction_started_ = true; TransactionInfo transaction_info = std::move(transactions_needed_.front()); transactions_needed_.pop_front(); @@ -1373,9 +1374,9 @@ base::Value NetLogDnsTaskTimeoutParams() { base::Value::Dict dict; - if (!transactions_started_.empty()) { + if (!transactions_in_progress_.empty()) { base::Value::List list; - for (const TransactionInfo& info : transactions_started_) { + for (const TransactionInfo& info : transactions_in_progress_) { base::Value::Dict transaction_dict; transaction_dict.Set("dns_query_type", static_cast<int>(info.type)); list.Append(std::move(transaction_dict)); @@ -1465,8 +1466,6 @@ transactions_needed_.emplace_back(remaining_query); } } - num_needed_transactions_ = - base::checked_cast<int>(transactions_needed_.size()); } void CreateAndStartTransaction(TransactionInfo transaction_info) { @@ -1493,14 +1492,14 @@ transaction_info.transaction->SetRequestPriority(delegate_->priority()); auto transaction_info_it = - transactions_started_.insert(std::move(transaction_info)).first; + transactions_in_progress_.insert(std::move(transaction_info)).first; // Safe to pass `transaction_info_it` because it is only modified/removed // after async completion of this call or by destruction (which cancels the // transaction and prevents callback because it owns the `DnsTransaction` // object). transaction_info_it->transaction->Start(base::BindOnce( - &DnsTask::OnTransactionComplete, base::Unretained(this), + &DnsTask::OnDnsTransactionComplete, base::Unretained(this), tick_clock_->NowTicks(), transaction_info_it, request_port)); } @@ -1508,7 +1507,7 @@ net_log_.AddEvent(NetLogEventType::HOST_RESOLVER_MANAGER_DNS_TASK_TIMEOUT, [&] { return NetLogDnsTaskTimeoutParams(); }); - for (const TransactionInfo& transaction : transactions_started_) { + for (const TransactionInfo& transaction : transactions_in_progress_) { base::TimeDelta elapsed_time = tick_clock_->NowTicks() - task_start_time_; switch (transaction.type) { @@ -1544,34 +1543,34 @@ } } - num_completed_transactions_ += transactions_needed_.size(); transactions_needed_.clear(); - num_completed_transactions_ += transactions_started_.size(); - transactions_started_.clear(); - DCHECK(num_completed_transactions_ == num_needed_transactions()); + transactions_in_progress_.clear(); - ProcessResultsOnCompletion(); + OnTransactionsFinished(); } - void OnTransactionComplete( + // Called on completion of a `DnsTransaction`, but not necessarily completion + // of all work for the individual transaction in this task (see + // `OnTransactionsFinished()`). + void OnDnsTransactionComplete( const base::TimeTicks& start_time, std::set<TransactionInfo>::iterator transaction_info_it, uint16_t request_port, int net_error, const DnsResponse* response, absl::optional<std::string> doh_provider_id) { - DCHECK(transaction_info_it != transactions_started_.end()); - DCHECK(transactions_started_.find(*transaction_info_it) != - transactions_started_.end()); + DCHECK(transaction_info_it != transactions_in_progress_.end()); + DCHECK(transactions_in_progress_.find(*transaction_info_it) != + transactions_in_progress_.end()); - // Pull the TransactionInfo out of `transactions_started_` now, so it and - // its underlying DnsTransaction will be deleted on completion of + // Pull the TransactionInfo out of `transactions_in_progress_` now, so it + // and its underlying DnsTransaction will be deleted on completion of // OnTransactionComplete. Note: Once control leaves OnTransactionComplete, // there's no further need for the transaction object. On the other hand, // since it owns `*response`, it should stay around while // OnTransactionComplete executes. - TransactionInfo transaction_info = - std::move(transactions_started_.extract(transaction_info_it).value()); + TransactionInfo transaction_info = std::move( + transactions_in_progress_.extract(transaction_info_it).value()); base::TimeDelta elapsed_time = tick_clock_->NowTicks() - task_start_time_; enum HttpssvcDnsRcode rcode_for_httpssvc = HttpssvcDnsRcode::kNoError; @@ -1687,8 +1686,13 @@ // Merge results with saved results from previous transactions. if (saved_results_) { - DCHECK_LE(2, num_needed_transactions()); - DCHECK_LT(num_completed_transactions_, num_needed_transactions()); + // If saved result is a deferred failure, try again to complete with that + // failure. + if (saved_results_is_failure_) { + OnFailure(saved_results_.value().error(), /*allow_fallback=*/true, + saved_results_.value().GetOptionalTtl()); + return; + } switch (transaction_info.type) { case DnsQueryType::A: @@ -1717,21 +1721,7 @@ } saved_results_ = std::move(results); - - // If not all transactions are complete, the task cannot yet be completed - // and the results so far must be saved to merge with additional results. - ++num_completed_transactions_; - if (num_completed_transactions_ < num_needed_transactions()) { - delegate_->OnIntermediateTransactionComplete(); - MaybeStartTimeoutTimer(); - return; - } - - // Since all transactions are complete, in particular, all experimental or - // supplemental transactions are complete (if any were started). - timeout_timer_.Stop(); - - ProcessResultsOnCompletion(); + OnTransactionsFinished(); } bool IsFatalTransactionFailure(int transaction_error, @@ -1784,12 +1774,21 @@ return error == HttpsTransactionError::kFatalErrorEnabled; } - // Postprocesses the transactions' aggregated results after all - // transactions have completed. - void ProcessResultsOnCompletion() { + // Called on processing for one or more individual transaction being + // completed/cancelled. Processes overall results if all transactions are + // finished. + void OnTransactionsFinished() { + if (!transactions_in_progress_.empty() || !transactions_needed_.empty()) { + delegate_->OnIntermediateTransactionsComplete(); + MaybeStartTimeoutTimer(); + return; + } + DCHECK(saved_results_.has_value()); HostCache::Entry results = std::move(*saved_results_); + timeout_timer_.Stop(); + absl::optional<std::vector<IPEndPoint>> ip_endpoints; if (results.legacy_addresses().has_value()) { ip_endpoints = results.legacy_addresses().value().endpoints(); @@ -1853,27 +1852,59 @@ OnSuccess(std::move(results)); } - // TODO(crbug.com/1264933): Prevent A/AAAA errors from leading to immediate - // fallback if an HTTPS query is still pending that may lead to a fatal HTTPS - // error. + bool AnyPotentiallyFatalTransactionsRemain() { + auto is_fatal_or_empty_error = [](TransactionErrorBehavior behavior) { + return behavior == TransactionErrorBehavior::kFatalOrEmpty; + }; + + return base::ranges::any_of(transactions_needed_, is_fatal_or_empty_error, + &TransactionInfo::error_behavior) || + base::ranges::any_of(transactions_in_progress_, + is_fatal_or_empty_error, + &TransactionInfo::error_behavior); + } + + void CancelNonFatalTransactions() { + auto has_non_fatal_or_empty_error = [](const TransactionInfo& info) { + return info.error_behavior != TransactionErrorBehavior::kFatalOrEmpty; + }; + + base::EraseIf(transactions_needed_, has_non_fatal_or_empty_error); + base::EraseIf(transactions_in_progress_, has_non_fatal_or_empty_error); + } + void OnFailure( int net_error, bool allow_fallback, absl::optional<base::TimeDelta> ttl = absl::nullopt, absl::optional<DnsQueryType> failed_transaction_type = absl::nullopt) { - if (httpssvc_metrics_ && failed_transaction_type && + if (httpssvc_metrics_ && failed_transaction_type.has_value() && IsAddressType(failed_transaction_type.value())) { httpssvc_metrics_->SaveAddressQueryFailure(); } DCHECK_NE(OK, net_error); + HostCache::Entry results(net_error, HostCache::Entry::SOURCE_UNKNOWN, ttl); + + // On non-fatal errors, if any potentially fatal transactions remain, need + // to defer ending the task in case any of those remaining transactions end + // with a fatal failure. + if (allow_fallback && AnyPotentiallyFatalTransactionsRemain()) { + saved_results_ = std::move(results); + saved_results_is_failure_ = true; + + CancelNonFatalTransactions(); + OnTransactionsFinished(); + return; + } net_log_.EndEvent(NetLogEventType::HOST_RESOLVER_MANAGER_DNS_TASK, [&] { return NetLogDnsTaskFailedParams(net_error, failed_transaction_type, ttl, base::OptionalOrNullptr(saved_results_)); }); - HostCache::Entry results(net_error, HostCache::Entry::SOURCE_UNKNOWN, ttl); + // Expect this to result in destroying `this` and thus cancelling any + // remaining transactions. delegate_->OnDnsTaskComplete(task_start_time_, allow_fallback, std::move(results), secure_); } @@ -1892,12 +1923,13 @@ std::initializer_list<DnsQueryType> types) const { // Should only be called if some transactions are still running or waiting // to run. - DCHECK(!transactions_needed_.empty() || !transactions_started_.empty()); + DCHECK(!transactions_needed_.empty() || !transactions_in_progress_.empty()); // Check running transactions. - if (base::ranges::find_first_of(transactions_started_, types, /*pred=*/{}, + if (base::ranges::find_first_of(transactions_in_progress_, types, + /*pred=*/{}, /*proj1=*/&TransactionInfo::type) != - transactions_started_.end()) { + transactions_in_progress_.end()) { return true; } @@ -1911,7 +1943,7 @@ void MaybeStartTimeoutTimer() { // Should only be called if some transactions are still running or waiting // to run. - DCHECK(!transactions_started_.empty() || !transactions_needed_.empty()); + DCHECK(!transactions_in_progress_.empty() || !transactions_needed_.empty()); // Timer already running. if (timeout_timer_.IsRunning()) @@ -2030,17 +2062,15 @@ raw_ptr<Delegate> delegate_; const NetLogWithSource net_log_; + bool any_transaction_started_ = false; base::circular_deque<TransactionInfo> transactions_needed_; // Active transactions have iterators pointing to their entry in this set, so // individual entries should not be modified or removed until completion or // cancellation of the transaction. - std::set<TransactionInfo> transactions_started_; - int num_needed_transactions_; - int num_completed_transactions_ = 0; + std::set<TransactionInfo> transactions_in_progress_; - // Result from previously completed transactions. Only set if a transaction - // has completed while others are still in progress. absl::optional<HostCache::Entry> saved_results_; + bool saved_results_is_failure_ = false; raw_ptr<const base::TickClock> tick_clock_; base::TimeTicks task_start_time_; @@ -2530,7 +2560,9 @@ return; } StartNextDnsTransaction(); - if (dns_task_->needs_another_transaction()) { + DCHECK_EQ(num_occupied_job_slots_, + dns_task_->num_transactions_in_progress()); + if (dns_task_->num_additional_transactions_needed() >= 1) { Schedule(true); } return; @@ -2627,9 +2659,10 @@ // Schedule a second transaction, if needed. DoH queries can bypass the // dispatcher and start all of their transactions immediately. if (secure) { - while (dns_task_->needs_another_transaction()) + while (dns_task_->num_additional_transactions_needed() >= 1) dns_task_->StartNextTransaction(); - } else if (dns_task_->needs_another_transaction()) { + DCHECK_EQ(dns_task_->num_additional_transactions_needed(), 0); + } else if (dns_task_->num_additional_transactions_needed() >= 1) { Schedule(true); } } @@ -2637,8 +2670,9 @@ void StartNextDnsTransaction() { DCHECK(dns_task_); DCHECK_EQ(dns_task_->secure(), !dispatched_); - DCHECK(!dispatched_ || num_occupied_job_slots_ >= 1); - DCHECK(dns_task_->needs_another_transaction()); + DCHECK(!dispatched_ || num_occupied_job_slots_ == + dns_task_->num_transactions_in_progress() + 1); + DCHECK_GE(dns_task_->num_additional_transactions_needed(), 1); dns_task_->StartNextTransaction(); } @@ -2736,26 +2770,33 @@ CompleteRequests(results, bounded_ttl, true /* allow_cache */, secure); } - void OnIntermediateTransactionComplete() override { - DCHECK_LE(2, dns_task_->num_needed_transactions()); - DCHECK_EQ(dns_task_->needs_another_transaction(), is_queued()); - + void OnIntermediateTransactionsComplete() override { if (dispatched_) { - // We already have a job slot at the dispatcher, so if the next - // transaction hasn't started, reuse it now instead of waiting in the - // queue for another slot. - if (!dns_task_->needs_another_transaction()) { - // The DnsTask has no more transactions, so we can relinquish this slot. - DCHECK(!is_queued()); - ReduceByOneJobSlot(); - } else { + DCHECK_GE(num_occupied_job_slots_, + dns_task_->num_transactions_in_progress()); + int unused_slots = + num_occupied_job_slots_ - dns_task_->num_transactions_in_progress(); + + // Reuse vacated slots for any remaining transactions. + while (unused_slots > 0 && + dns_task_->num_additional_transactions_needed() > 0) { dns_task_->StartNextTransaction(); - if (!dns_task_->needs_another_transaction() && is_queued()) { - resolver_->dispatcher_->Cancel(handle_); - handle_.Reset(); - } + --unused_slots; } - } else if (dns_task_->needs_another_transaction()) { + + // If all remaining transactions found a slot, no more needed from the + // dispatcher. + if (is_queued() && dns_task_->num_additional_transactions_needed() == 0) { + resolver_->dispatcher_->Cancel(handle_); + handle_.Reset(); + } + + // Relinquish any remaining extra slots. + while (unused_slots > 0) { + ReduceByOneJobSlot(); + --unused_slots; + } + } else if (dns_task_->num_additional_transactions_needed() >= 1) { dns_task_->StartNextTransaction(); } }
diff --git a/net/dns/host_resolver_manager_unittest.cc b/net/dns/host_resolver_manager_unittest.cc index 4741dbc5..f741dd0 100644 --- a/net/dns/host_resolver_manager_unittest.cc +++ b/net/dns/host_resolver_manager_unittest.cc
@@ -11232,6 +11232,122 @@ testing::Pointee(testing::IsEmpty())); } +TEST_F( + HostResolverManagerDnsTest, + FailedHttpsInAddressRequestAfterAddressFailureIsFatalWhenFeatureEnabled) { + const char kName[] = "name.test"; + + base::test::ScopedFeatureList features; + features.InitAndEnableFeatureWithParameters( + features::kUseDnsHttpsSvcb, + {{"UseDnsHttpsSvcbEnforceSecureResponse", "true"}}); + + MockDnsClientRuleList rules; + // Delay HTTPS result to ensure it comes after A failure. + rules.emplace_back( + kName, dns_protocol::kTypeHttps, /*secure=*/true, + MockDnsClientRule::Result(MockDnsClientRule::ResultType::kFail), + /*delay=*/true); + rules.emplace_back( + kName, dns_protocol::kTypeA, /*secure=*/true, + MockDnsClientRule::Result(MockDnsClientRule::ResultType::kFail), + /*delay=*/false); + // Delay AAAA result to ensure it is cancelled after A failure. + rules.emplace_back( + kName, dns_protocol::kTypeAAAA, /*secure=*/true, + MockDnsClientRule::Result(MockDnsClientRule::ResultType::kUnexpected), + /*delay=*/true); + + CreateResolver(); + UseMockDnsClient(CreateValidDnsConfig(), std::move(rules)); + DnsConfigOverrides overrides; + overrides.secure_dns_mode = SecureDnsMode::kAutomatic; + resolver_->SetDnsConfigOverrides(overrides); + + ResolveHostResponseHelper response(resolver_->CreateRequest( + url::SchemeHostPort(url::kHttpsScheme, kName, 443), NetworkIsolationKey(), + NetLogWithSource(), absl::nullopt, resolve_context_.get(), + resolve_context_->host_cache())); + + base::RunLoop().RunUntilIdle(); + EXPECT_FALSE(response.complete()); + dns_client_->CompleteDelayedTransactions(); + + EXPECT_THAT(response.result_error(), IsError(ERR_NAME_NOT_RESOLVED)); + EXPECT_FALSE(response.request()->GetAddressResults()); + EXPECT_FALSE(response.request()->GetEndpointResults()); + EXPECT_FALSE(response.request()->GetTextResults()); + EXPECT_FALSE(response.request()->GetHostnameResults()); + EXPECT_FALSE(response.request()->GetExperimentalResultsForTesting()); + + // Expect result not cached. + EXPECT_EQ(resolve_context_->host_cache()->size(), 0u); +} + +TEST_F( + HostResolverManagerDnsTest, + FailedHttpsInAddressRequestAfterAddressFailureIgnoredWhenFeatureDisabled) { + const char kName[] = "name.test"; + + base::test::ScopedFeatureList features; + features.InitAndEnableFeatureWithParameters( + features::kUseDnsHttpsSvcb, + {{"UseDnsHttpsSvcbEnforceSecureResponse", "false"}}); + + MockDnsClientRuleList rules; + // Delay HTTPS result to ensure it is cancelled after AAAA failure. + rules.emplace_back( + kName, dns_protocol::kTypeHttps, /*secure=*/true, + MockDnsClientRule::Result(MockDnsClientRule::ResultType::kUnexpected), + /*delay=*/true); + // Delay A result to ensure it is cancelled after AAAA failure. + rules.emplace_back( + kName, dns_protocol::kTypeA, /*secure=*/true, + MockDnsClientRule::Result(MockDnsClientRule::ResultType::kUnexpected), + /*delay=*/true); + rules.emplace_back( + kName, dns_protocol::kTypeAAAA, /*secure=*/true, + MockDnsClientRule::Result(MockDnsClientRule::ResultType::kFail), + /*delay=*/false); + + // Expect fall back to insecure due to AAAA failure. + rules.emplace_back( + kName, dns_protocol::kTypeHttps, /*secure=*/false, + MockDnsClientRule::Result(MockDnsClientRule::ResultType::kEmpty), + /*delay=*/false); + rules.emplace_back( + kName, dns_protocol::kTypeA, /*secure=*/false, + MockDnsClientRule::Result(MockDnsClientRule::ResultType::kOk), + /*delay=*/false); + rules.emplace_back( + kName, dns_protocol::kTypeAAAA, /*secure=*/false, + MockDnsClientRule::Result(MockDnsClientRule::ResultType::kOk), + /*delay=*/false); + + CreateResolver(); + UseMockDnsClient(CreateValidDnsConfig(), std::move(rules)); + DnsConfigOverrides overrides; + overrides.secure_dns_mode = SecureDnsMode::kAutomatic; + resolver_->SetDnsConfigOverrides(overrides); + + ResolveHostResponseHelper response(resolver_->CreateRequest( + url::SchemeHostPort(url::kHttpsScheme, kName, 443), NetworkIsolationKey(), + NetLogWithSource(), absl::nullopt, resolve_context_.get(), + resolve_context_->host_cache())); + + base::RunLoop().RunUntilIdle(); + // Unnecessary to complete delayed transactions because they should be + // cancelled after first failure (AAAA). + EXPECT_TRUE(response.complete()); + + EXPECT_THAT(response.result_error(), IsOk()); + EXPECT_TRUE(response.request()->GetAddressResults()); + EXPECT_TRUE(response.request()->GetEndpointResults()); + EXPECT_FALSE(response.request()->GetTextResults()); + EXPECT_FALSE(response.request()->GetHostnameResults()); + EXPECT_FALSE(response.request()->GetExperimentalResultsForTesting()); +} + TEST_F(HostResolverManagerDnsTest, TimeoutHttpsInAddressRequestIsFatal) { const char kName[] = "name.test";
diff --git a/remoting/host/client_session.cc b/remoting/host/client_session.cc index d5f1cf7a..b467c8d 100644 --- a/remoting/host/client_session.cc +++ b/remoting/host/client_session.cc
@@ -924,7 +924,7 @@ LOG(INFO) << " #" << display_id << " : " << track.position_x() << "," << track.position_y() << " " << track.width() << "x" << track.height() << " [" << track.x_dpi() << "," << track.y_dpi() - << "], id=" << track.id(); + << "], screen_id=" << track.screen_id(); if (dpi_x == 0) dpi_x = track.x_dpi(); if (dpi_y == 0) @@ -1020,13 +1020,13 @@ video_track = layout.add_video_track(); video_track->CopyFrom(display); if (multiStreamEnabled) { - video_track->set_track_name(StreamNameForId(display.id())); + video_track->set_media_stream_id(StreamNameForId(display.screen_id())); } LOG(INFO) << " Display " << display_id << " = " << display.position_x() << "," << display.position_y() << " " << display.width() << "x" << display.height() << " [" << display.x_dpi() << "," - << display.y_dpi() << "], id=" << display.id(); + << display.y_dpi() << "], screen_id=" << display.screen_id(); } // Set the display index, if this is the first message being processed.
diff --git a/remoting/host/desktop_display_info.cc b/remoting/host/desktop_display_info.cc index 415676e6..3d01bd3 100644 --- a/remoting/host/desktop_display_info.cc +++ b/remoting/host/desktop_display_info.cc
@@ -160,7 +160,7 @@ void DesktopDisplayInfo::AddDisplayFrom( const protocol::VideoTrackLayout& track) { DisplayGeometry display; - display.id = track.id(); + display.id = track.screen_id(); display.x = track.position_x(); display.y = track.position_y(); display.width = track.width();
diff --git a/remoting/host/desktop_display_info_monitor.cc b/remoting/host/desktop_display_info_monitor.cc index b8056ad..7e2007d 100644 --- a/remoting/host/desktop_display_info_monitor.cc +++ b/remoting/host/desktop_display_info_monitor.cc
@@ -82,7 +82,7 @@ track->set_height(display.height); track->set_x_dpi(display.dpi); track->set_y_dpi(display.dpi); - track->set_id(display.id); + track->set_screen_id(display.id); HOST_LOG << " Display: " << display.x << "," << display.y << " " << display.width << "x" << display.height << " @ " << display.dpi << ", id=" << display.id;
diff --git a/remoting/proto/control.proto b/remoting/proto/control.proto index 983f620..cb4f129 100644 --- a/remoting/proto/control.proto +++ b/remoting/proto/control.proto
@@ -87,11 +87,11 @@ } message VideoTrackLayout { - // Unique display identifier. - optional int64 id = 8; + // Unique display identifier, from ScreenId in desktop_capture_types.h. + optional int64 screen_id = 8; - // Name of the video track. - optional string track_name = 1; + // Name of the video stream, from the WebRTC MediaStream.id property. + optional string media_stream_id = 1; // Position of the top left corner of the rectangle covered by the video // track in DIPs (device independent pixels).
diff --git a/remoting/proto/event.proto b/remoting/proto/event.proto index d841ee8..ebc0d2a 100644 --- a/remoting/proto/event.proto +++ b/remoting/proto/event.proto
@@ -44,6 +44,16 @@ optional string text = 1; } +// Fractional coordinate information. Fractional coordinates define a location +// as a number in the range [0, 1], interpreted relative to the bounds of a +// monitor identified by |stream_id| in the most recent VideoLayout message sent +// by the host. +message FractionalCoordinate { + optional float x = 1; + optional float y = 2; + optional int64 screen_id = 3; +} + // Defines a mouse event message on the event channel. message MouseEvent { @@ -76,9 +86,14 @@ optional float wheel_ticks_x = 9; optional float wheel_ticks_y = 10; - // Mouse movement information. Provided only when mouse lock is engaged. + // Mouse movement information. Provided only for relative mouse events (i.e. + // when mouse lock is engaged). optional int32 delta_x = 11; optional int32 delta_y = 12; + + // Fractional coordinate information. Provided only for absolute mouse events + // (i.e. when mouse lock is *not* engaged). + optional FractionalCoordinate fractional_coordinate = 13; } // Defines an event that sends clipboard data between peers. @@ -112,6 +127,8 @@ // The pressure of the touch point. // The value should be in [0.0, 1.0]. optional float pressure = 7; + + optional FractionalCoordinate fractional_coordinate = 8; } message TouchEvent {
diff --git a/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc b/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc index 9728d0b..7feff3f 100644 --- a/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc +++ b/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc
@@ -261,8 +261,13 @@ const uint64_t kAllowedMask = O_ACCMODE | O_APPEND | O_NONBLOCK | O_SYNC | kOLargeFileFlag | O_CLOEXEC | O_NOATIME; - const uint64_t kAllowedSeals = - F_SEAL_SEAL | F_SEAL_GROW | F_SEAL_SHRINK | F_SEAL_FUTURE_WRITE; +#if BUILDFLAG(IS_ANDROID) + const uint64_t kOsSpecificSeals = F_SEAL_FUTURE_WRITE; +#else + const uint64_t kOsSpecificSeals = 0; +#endif + const uint64_t kAllowedSeals = F_SEAL_SEAL | F_SEAL_GROW | F_SEAL_SHRINK | + kOsSpecificSeals; // clang-format off return Switch(cmd) .CASES((F_GETFL,
diff --git a/sandbox/win/src/handle_closer_agent.cc b/sandbox/win/src/handle_closer_agent.cc index 1aea0ebb..0904a536 100644 --- a/sandbox/win/src/handle_closer_agent.cc +++ b/sandbox/win/src/handle_closer_agent.cc
@@ -149,10 +149,10 @@ if (base::win::IsAppVerifierLoaded()) return true; // If the accurate handle enumeration fails then fallback to the old brute - // force approach. This should only happen on Windows 7. + // force approach. This should only happen on Windows 7 and 8.0. absl::optional<ProcessHandleMap> handle_map = GetCurrentProcessHandles(); if (!handle_map) { - DCHECK(base::win::GetVersion() < base::win::Version::WIN8); + DCHECK(base::win::GetVersion() < base::win::Version::WIN8_1); handle_map = GetCurrentProcessHandlesWin7(); }
diff --git a/testing/buildbot/chromium.dawn.json b/testing/buildbot/chromium.dawn.json index a999ff6..848c83f 100644 --- a/testing/buildbot/chromium.dawn.json +++ b/testing/buildbot/chromium.dawn.json
@@ -298,7 +298,8 @@ "--browser=release", "--passthrough", "-v", - "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu --enable-features=UseSkiaRenderer,Vulkan" + "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu --enable-features=UseSkiaRenderer,Vulkan", + "--retry-limit=3" ], "experiment_percentage": 100, "isolate_name": "telemetry_gpu_integration_test", @@ -336,7 +337,8 @@ "-v", "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu --enable-features=UseSkiaRenderer,Vulkan", "--is-backend-validation", - "--override-timeout=30" + "--override-timeout=30", + "--retry-limit=3" ], "experiment_percentage": 100, "isolate_name": "telemetry_gpu_integration_test", @@ -662,7 +664,8 @@ "--browser=release", "--passthrough", "-v", - "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu --enable-features=UseSkiaRenderer,Vulkan" + "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu --enable-features=UseSkiaRenderer,Vulkan", + "--retry-limit=3" ], "experiment_percentage": 100, "isolate_name": "telemetry_gpu_integration_test", @@ -700,7 +703,8 @@ "-v", "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu --enable-features=UseSkiaRenderer,Vulkan", "--is-backend-validation", - "--override-timeout=30" + "--override-timeout=30", + "--retry-limit=3" ], "experiment_percentage": 100, "isolate_name": "telemetry_gpu_integration_test", @@ -1026,7 +1030,8 @@ "--browser=release", "--passthrough", "-v", - "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu --enable-features=UseSkiaRenderer,Vulkan" + "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu --enable-features=UseSkiaRenderer,Vulkan", + "--retry-limit=3" ], "experiment_percentage": 100, "isolate_name": "telemetry_gpu_integration_test", @@ -1064,7 +1069,8 @@ "-v", "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu --enable-features=UseSkiaRenderer,Vulkan", "--is-backend-validation", - "--override-timeout=30" + "--override-timeout=30", + "--retry-limit=3" ], "experiment_percentage": 100, "isolate_name": "telemetry_gpu_integration_test", @@ -1390,7 +1396,8 @@ "--browser=release", "--passthrough", "-v", - "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu --enable-features=UseSkiaRenderer,Vulkan" + "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu --enable-features=UseSkiaRenderer,Vulkan", + "--retry-limit=3" ], "experiment_percentage": 100, "isolate_name": "telemetry_gpu_integration_test", @@ -1428,7 +1435,8 @@ "-v", "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu --enable-features=UseSkiaRenderer,Vulkan", "--is-backend-validation", - "--override-timeout=30" + "--override-timeout=30", + "--retry-limit=3" ], "experiment_percentage": 100, "isolate_name": "telemetry_gpu_integration_test", @@ -1778,7 +1786,8 @@ "--browser=release", "--passthrough", "-v", - "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu" + "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu", + "--retry-limit=3" ], "experiment_percentage": 100, "isolate_name": "telemetry_gpu_integration_test", @@ -1819,7 +1828,8 @@ "-v", "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu", "--is-backend-validation", - "--override-timeout=30" + "--override-timeout=30", + "--retry-limit=3" ], "experiment_percentage": 100, "isolate_name": "telemetry_gpu_integration_test", @@ -2148,7 +2158,8 @@ "--browser=release", "--passthrough", "-v", - "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu" + "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu", + "--retry-limit=3" ], "experiment_percentage": 100, "isolate_name": "telemetry_gpu_integration_test", @@ -2187,7 +2198,8 @@ "-v", "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu", "--is-backend-validation", - "--override-timeout=30" + "--override-timeout=30", + "--retry-limit=3" ], "experiment_percentage": 100, "isolate_name": "telemetry_gpu_integration_test", @@ -2546,7 +2558,8 @@ "--browser=release", "--passthrough", "-v", - "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu" + "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu", + "--retry-limit=3" ], "experiment_percentage": 100, "isolate_name": "telemetry_gpu_integration_test", @@ -2588,7 +2601,8 @@ "-v", "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu", "--is-backend-validation", - "--override-timeout=30" + "--override-timeout=30", + "--retry-limit=3" ], "experiment_percentage": 100, "isolate_name": "telemetry_gpu_integration_test", @@ -2976,7 +2990,8 @@ "--browser=release", "--passthrough", "-v", - "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu" + "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu", + "--retry-limit=3" ], "experiment_percentage": 100, "isolate_name": "telemetry_gpu_integration_test", @@ -3017,7 +3032,8 @@ "-v", "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu", "--is-backend-validation", - "--override-timeout=30" + "--override-timeout=30", + "--retry-limit=3" ], "experiment_percentage": 100, "isolate_name": "telemetry_gpu_integration_test", @@ -3346,7 +3362,8 @@ "--browser=release", "--passthrough", "-v", - "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu" + "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu", + "--retry-limit=3" ], "experiment_percentage": 100, "isolate_name": "telemetry_gpu_integration_test", @@ -3385,7 +3402,8 @@ "-v", "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu", "--is-backend-validation", - "--override-timeout=30" + "--override-timeout=30", + "--retry-limit=3" ], "experiment_percentage": 100, "isolate_name": "telemetry_gpu_integration_test", @@ -3681,7 +3699,8 @@ "--browser=release_x64", "--passthrough", "-v", - "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu" + "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu", + "--retry-limit=3" ], "experiment_percentage": 100, "isolate_name": "telemetry_gpu_integration_test", @@ -4006,7 +4025,8 @@ "--browser=release_x64", "--passthrough", "-v", - "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu" + "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu", + "--retry-limit=3" ], "experiment_percentage": 100, "isolate_name": "telemetry_gpu_integration_test", @@ -4044,7 +4064,8 @@ "-v", "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu", "--is-backend-validation", - "--override-timeout=30" + "--override-timeout=30", + "--retry-limit=3" ], "experiment_percentage": 100, "isolate_name": "telemetry_gpu_integration_test", @@ -4362,7 +4383,8 @@ "--browser=release_x64", "--passthrough", "-v", - "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu" + "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu", + "--retry-limit=3" ], "experiment_percentage": 100, "isolate_name": "telemetry_gpu_integration_test", @@ -4400,7 +4422,8 @@ "-v", "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu", "--is-backend-validation", - "--override-timeout=30" + "--override-timeout=30", + "--retry-limit=3" ], "experiment_percentage": 100, "isolate_name": "telemetry_gpu_integration_test", @@ -4718,7 +4741,8 @@ "--browser=release_x64", "--passthrough", "-v", - "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu" + "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu", + "--retry-limit=3" ], "experiment_percentage": 100, "isolate_name": "telemetry_gpu_integration_test", @@ -4756,7 +4780,8 @@ "-v", "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu", "--is-backend-validation", - "--override-timeout=30" + "--override-timeout=30", + "--retry-limit=3" ], "experiment_percentage": 100, "isolate_name": "telemetry_gpu_integration_test", @@ -5074,7 +5099,8 @@ "--browser=release_x64", "--passthrough", "-v", - "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu" + "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu", + "--retry-limit=3" ], "experiment_percentage": 100, "isolate_name": "telemetry_gpu_integration_test", @@ -5112,7 +5138,8 @@ "-v", "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu", "--is-backend-validation", - "--override-timeout=30" + "--override-timeout=30", + "--retry-limit=3" ], "experiment_percentage": 100, "isolate_name": "telemetry_gpu_integration_test", @@ -5430,7 +5457,8 @@ "--browser=release", "--passthrough", "-v", - "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu" + "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu", + "--retry-limit=3" ], "experiment_percentage": 100, "isolate_name": "telemetry_gpu_integration_test", @@ -5468,7 +5496,8 @@ "-v", "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu", "--is-backend-validation", - "--override-timeout=30" + "--override-timeout=30", + "--retry-limit=3" ], "experiment_percentage": 100, "isolate_name": "telemetry_gpu_integration_test", @@ -5784,7 +5813,8 @@ "--browser=release", "--passthrough", "-v", - "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu" + "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu", + "--retry-limit=3" ], "experiment_percentage": 100, "isolate_name": "telemetry_gpu_integration_test", @@ -5822,7 +5852,8 @@ "-v", "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu", "--is-backend-validation", - "--override-timeout=30" + "--override-timeout=30", + "--retry-limit=3" ], "experiment_percentage": 100, "isolate_name": "telemetry_gpu_integration_test", @@ -6138,7 +6169,8 @@ "--browser=release", "--passthrough", "-v", - "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu" + "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu", + "--retry-limit=3" ], "experiment_percentage": 100, "isolate_name": "telemetry_gpu_integration_test", @@ -6176,7 +6208,8 @@ "-v", "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu", "--is-backend-validation", - "--override-timeout=30" + "--override-timeout=30", + "--retry-limit=3" ], "experiment_percentage": 100, "isolate_name": "telemetry_gpu_integration_test", @@ -6492,7 +6525,8 @@ "--browser=release", "--passthrough", "-v", - "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu" + "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu", + "--retry-limit=3" ], "experiment_percentage": 100, "isolate_name": "telemetry_gpu_integration_test", @@ -6530,7 +6564,8 @@ "-v", "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --force_high_performance_gpu", "--is-backend-validation", - "--override-timeout=30" + "--override-timeout=30", + "--retry-limit=3" ], "experiment_percentage": 100, "isolate_name": "telemetry_gpu_integration_test",
diff --git a/testing/buildbot/filters/fuchsia.browser_tests.filter b/testing/buildbot/filters/fuchsia.browser_tests.filter index b1294ffb8..7e4a02e 100644 --- a/testing/buildbot/filters/fuchsia.browser_tests.filter +++ b/testing/buildbot/filters/fuchsia.browser_tests.filter
@@ -1,63 +1,386 @@ -AccessContextAuditBrowserTest.CheckSessionOnly -AccessContextAuditBrowserTest.MultipleAccesses --AccessContextAuditBrowserTest.Remove* +-AccessContextAuditBrowserTest.RemoveHistory +-AccessContextAuditBrowserTest.RemoveRecords -AccessContextAuditBrowserTest.TabClosed -AccessContextAuditSessionRestoreBrowserTest.RestoreSession -AccuracyTipBubbleViewBrowserTest.SurveyShownAfterShowingTip --AccuracyTipBubbleViewDialogBrowserTest.Invoke* +-AccuracyTipBubbleViewDialogBrowserTest.InvokeUi_default +-AccuracyTipBubbleViewDialogBrowserTest.InvokeUi_ignore_button -ActivityLogApiTest.TriggerEvent -AdsPageLoadMetricsObserverBrowserTest.AggregateCpuTriggersCpuUpdateOverSubframeNavigate -AdsPageLoadMetricsObserverBrowserTest.FrameRAFTriggersCpuUpdate -AdsPageLoadMetricsObserverBrowserTest.SubframeNavigate_CpuTimesCumulative --All/CastV2PerformanceTest.Performance* --All/ChromeBrowsingDataLifetimeManagerScheduledRemovalTest.Cache/0 --All/ChromeBrowsingDataLifetimeManagerScheduledRemovalTest.Keeps* --All/ChromeBrowsingDataLifetimeManagerScheduledRemovalTest.PrefChange/0 --All/ChromeBrowsingDataLifetimeManagerScheduledRemovalTest.Site* --All/ChromeMultiProfileStartupBrowserTestBase.Post* --All/CryptotokenBrowserTest.Sign* --All/DeclarativeNetRequestBrowserTest.Pac* --All/DiceWebSigninInterceptionBubblePixelTest.Invoke* --All/DiceWebSigninInterceptionBubbleSyncPromoPixelTest.Invoke* --All/DownloadReferrerPolicyTest.Alt* --All/DownloadReferrerPolicyTest.Download* --All/DownloadReferrerPolicyTest.Save* --All/DownloadTestWithOptionalSafetyTipsFeature.Safety* --All/ExtensionURLLoaderThrottleWithSplitCacheBrowserTest.Do* --All/HostedOrWebAppTest.Ctrl* --All/LoadingPredictorNetworkIsolationKeyBrowserTest.Loading* --All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.Check* --All/ManifestUpdateManagerBrowserTest_UpdateDialog.Check* +-All/CastV2PerformanceTest.Performance/1 +-All/CastV2PerformanceTest.Performance/2 +-All/CastV2PerformanceTest.Performance/3 +-All/CastV2PerformanceTest.Performance/4 +-All/CastV2PerformanceTest.Performance/5 +-All/ChromeBrowsingDataLifetimeManagerScheduledRemovalTest.KeepsOtherTabData/0 +-All/ChromeBrowsingDataLifetimeManagerScheduledRemovalTest.KeepsOtherWindowData/0 +-All/ChromeBrowsingDataLifetimeManagerScheduledRemovalTest.SiteData/0 +-All/ChromeBrowsingDataLifetimeManagerScheduledRemovalTest.SiteData/1 +-All/ChromeMultiProfileStartupBrowserTestBase.PostProfileInitInvocation/1 +-All/ChromeMultiProfileStartupBrowserTestBase.PostProfileInitInvocation/3 +-All/CryptotokenBrowserTest.SignWithEnterprisePolicyDoesNotShowPrompt/0 +-All/CryptotokenBrowserTest.SignWithEnterprisePolicyDoesNotShowPrompt/1 +-All/CryptotokenBrowserTest.SignWithOriginTrialDoesNotShowPrompt/0 +-All/CryptotokenBrowserTest.SignWithOriginTrialDoesNotShowPrompt/1 +-All/CryptotokenBrowserTest.SignWithOriginTrialInCrossOriginIframeDoesNotShowPrompt/0 +-All/CryptotokenBrowserTest.SignWithOriginTrialInCrossOriginIframeDoesNotShowPrompt/1 +-All/DeclarativeNetRequestBrowserTest.PacRequestsBypassRules/0 +-All/DeclarativeNetRequestBrowserTest.PacRequestsBypassRules/1 +-All/DiceWebSigninInterceptionBubblePixelTest.InvokeUi_default/ConsumerDark +-All/DiceWebSigninInterceptionBubblePixelTest.InvokeUi_default/ConsumerManagedDevice +-All/DiceWebSigninInterceptionBubblePixelTest.InvokeUi_default/ConsumerSimple +-All/DiceWebSigninInterceptionBubblePixelTest.InvokeUi_default/EntepriseManagedDevice +-All/DiceWebSigninInterceptionBubblePixelTest.InvokeUi_default/EnterpriseManagedIntercepted +-All/DiceWebSigninInterceptionBubblePixelTest.InvokeUi_default/EnterpriseManagedInterceptedDark +-All/DiceWebSigninInterceptionBubblePixelTest.InvokeUi_default/EnterpriseSimple +-All/DiceWebSigninInterceptionBubblePixelTest.InvokeUi_default/ProfileSwitch +-All/DiceWebSigninInterceptionBubbleSyncPromoPixelTest.InvokeUi_default/ConsumerDark +-All/DiceWebSigninInterceptionBubbleSyncPromoPixelTest.InvokeUi_default/ConsumerManagedDevice +-All/DiceWebSigninInterceptionBubbleSyncPromoPixelTest.InvokeUi_default/ConsumerSimple +-All/DiceWebSigninInterceptionBubbleSyncPromoPixelTest.InvokeUi_default/EntepriseManagedDevice +-All/DiceWebSigninInterceptionBubbleSyncPromoPixelTest.InvokeUi_default/EnterpriseManagedIntercepted +-All/DiceWebSigninInterceptionBubbleSyncPromoPixelTest.InvokeUi_default/EnterpriseManagedInterceptedDark +-All/DiceWebSigninInterceptionBubbleSyncPromoPixelTest.InvokeUi_default/EnterpriseSimple +-All/DiceWebSigninInterceptionBubbleSyncPromoPixelTest.InvokeUi_default/ProfileSwitch +-All/DownloadReferrerPolicyTest.AltClickDownloadReferrerPolicy/0 +-All/DownloadReferrerPolicyTest.AltClickDownloadReferrerPolicy/1 +-All/DownloadReferrerPolicyTest.AltClickDownloadReferrerPolicy/2 +-All/DownloadReferrerPolicyTest.AltClickDownloadReferrerPolicy/3 +-All/DownloadReferrerPolicyTest.AltClickDownloadReferrerPolicy/4 +-All/DownloadReferrerPolicyTest.AltClickDownloadReferrerPolicy/5 +-All/DownloadReferrerPolicyTest.AltClickDownloadReferrerPolicy/6 +-All/DownloadReferrerPolicyTest.AltClickDownloadReferrerPolicy/7 +-All/DownloadReferrerPolicyTest.AltClickDownloadReferrerPolicy/8 +-All/DownloadReferrerPolicyTest.DownloadCrossDomainReferrerPolicy/0 +-All/DownloadReferrerPolicyTest.DownloadCrossDomainReferrerPolicy/1 +-All/DownloadReferrerPolicyTest.DownloadCrossDomainReferrerPolicy/2 +-All/DownloadReferrerPolicyTest.DownloadCrossDomainReferrerPolicy/4 +-All/DownloadReferrerPolicyTest.DownloadCrossDomainReferrerPolicy/5 +-All/DownloadReferrerPolicyTest.DownloadCrossDomainReferrerPolicy/6 +-All/DownloadReferrerPolicyTest.DownloadCrossDomainReferrerPolicy/7 +-All/DownloadReferrerPolicyTest.DownloadCrossDomainReferrerPolicy/8 +-All/DownloadReferrerPolicyTest.SaveLinkAsReferrerPolicy/0 +-All/DownloadReferrerPolicyTest.SaveLinkAsReferrerPolicy/1 +-All/DownloadReferrerPolicyTest.SaveLinkAsReferrerPolicy/2 +-All/DownloadReferrerPolicyTest.SaveLinkAsReferrerPolicy/3 +-All/DownloadReferrerPolicyTest.SaveLinkAsReferrerPolicy/4 +-All/DownloadReferrerPolicyTest.SaveLinkAsReferrerPolicy/6 +-All/DownloadReferrerPolicyTest.SaveLinkAsReferrerPolicy/7 +-All/DownloadReferrerPolicyTest.SaveLinkAsReferrerPolicy/8 +-All/DownloadTestWithOptionalSafetyTipsFeature.SafetyTips/0 +-All/DownloadTestWithOptionalSafetyTipsFeature.SafetyTips/1 +-All/HostedOrWebAppTest.CtrlClickLink/HostedApp +-All/HostedOrWebAppTest.CtrlClickLink/WebApp +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/RemoveInstallIcon_DefaultApp_Flags_None_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/RemoveInstallIcon_DefaultApp_Flags_PolicyCanUpdate_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/RemoveInstallIcon_DefaultApp_Flags_WithAppIdDlgForIcon_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/RemoveInstallIcon_DefaultApp_Flags_WithAppIdDlgForIcon_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/RemoveInstallIcon_DefaultApp_Flags_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/RemoveInstallIcon_PolicyApp_Flags_None_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/RemoveInstallIcon_PolicyApp_Flags_PolicyCanUpdate_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/RemoveInstallIcon_PolicyApp_Flags_PolicyCanUpdate_WithAppIdDlgForIcon_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/RemoveInstallIcon_PolicyApp_Flags_WithAppIdDlgForIcon_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/RemoveInstallIcon_PolicyApp_Flags_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/RemoveInstallIcon_WebApp_Flags_None_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/RemoveInstallIcon_WebApp_Flags_PolicyCanUpdate_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/RemoveInstallIcon_WebApp_Flags_PolicyCanUpdate_WithAppIdDlgForIcon_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/RemoveInstallIcon_WebApp_Flags_WithAppIdDlgForIcon_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/RemoveInstallIcon_WebApp_Flags_WithAppIdDlgForIcon_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/RemoveInstallIcon_WebApp_Flags_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/RemoveLauncherIcon_DefaultApp_Flags_None_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/RemoveLauncherIcon_DefaultApp_Flags_PolicyCanUpdate_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/RemoveLauncherIcon_DefaultApp_Flags_PolicyCanUpdate_WithAppIdDlgForIcon_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/RemoveLauncherIcon_DefaultApp_Flags_WithAppIdDlgForIcon_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/RemoveLauncherIcon_DefaultApp_Flags_WithAppIdDlgForIcon_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/RemoveLauncherIcon_DefaultApp_Flags_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/RemoveLauncherIcon_PolicyApp_Flags_None_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/RemoveLauncherIcon_PolicyApp_Flags_PolicyCanUpdate_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/RemoveLauncherIcon_PolicyApp_Flags_PolicyCanUpdate_WithAppIdDlgForIcon_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/RemoveLauncherIcon_PolicyApp_Flags_WithAppIdDlgForIcon_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/RemoveLauncherIcon_PolicyApp_Flags_WithAppIdDlgForIcon_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/RemoveLauncherIcon_PolicyApp_Flags_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/RemoveLauncherIcon_WebApp_Flags_None_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/RemoveLauncherIcon_WebApp_Flags_PolicyCanUpdate_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/RemoveLauncherIcon_WebApp_Flags_PolicyCanUpdate_WithAppIdDlgForIcon_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/RemoveLauncherIcon_WebApp_Flags_WithAppIdDlgForIcon_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/RemoveLauncherIcon_WebApp_Flags_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/RemoveUnimportantIcon_DefaultApp_Flags_None_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/RemoveUnimportantIcon_DefaultApp_Flags_PolicyCanUpdate_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/RemoveUnimportantIcon_DefaultApp_Flags_PolicyCanUpdate_WithAppIdDlgForIcon_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/RemoveUnimportantIcon_DefaultApp_Flags_WithAppIdDlgForIcon_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/RemoveUnimportantIcon_DefaultApp_Flags_WithAppIdDlgForIcon_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/RemoveUnimportantIcon_DefaultApp_Flags_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/RemoveUnimportantIcon_PolicyApp_Flags_None_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/RemoveUnimportantIcon_PolicyApp_Flags_PolicyCanUpdate_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/RemoveUnimportantIcon_PolicyApp_Flags_PolicyCanUpdate_WithAppIdDlgForIcon_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/RemoveUnimportantIcon_PolicyApp_Flags_WithAppIdDlgForIcon_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/RemoveUnimportantIcon_PolicyApp_Flags_WithAppIdDlgForIcon_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/RemoveUnimportantIcon_PolicyApp_Flags_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/RemoveUnimportantIcon_WebApp_Flags_None_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/RemoveUnimportantIcon_WebApp_Flags_PolicyCanUpdate_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/RemoveUnimportantIcon_WebApp_Flags_PolicyCanUpdate_WithAppIdDlgForIcon_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/RemoveUnimportantIcon_WebApp_Flags_WithAppIdDlgForIcon_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/RemoveUnimportantIcon_WebApp_Flags_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/SwitchFromLauncher_DefaultApp_Flags_PolicyCanUpdate_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/SwitchFromLauncher_DefaultApp_Flags_PolicyCanUpdate_WithAppIdDlgForIcon_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/SwitchFromLauncher_DefaultApp_Flags_WithAppIdDlgForIcon_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/SwitchFromLauncher_DefaultApp_Flags_WithAppIdDlgForIcon_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/SwitchFromLauncher_DefaultApp_Flags_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/SwitchFromLauncher_PolicyApp_Flags_None_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/SwitchFromLauncher_PolicyApp_Flags_PolicyCanUpdate_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/SwitchFromLauncher_PolicyApp_Flags_PolicyCanUpdate_WithAppIdDlgForIcon_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/SwitchFromLauncher_PolicyApp_Flags_WithAppIdDlgForIcon_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/SwitchFromLauncher_PolicyApp_Flags_WithAppIdDlgForIcon_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/SwitchFromLauncher_PolicyApp_Flags_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/SwitchFromLauncher_WebApp_Flags_None_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/SwitchFromLauncher_WebApp_Flags_PolicyCanUpdate_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/SwitchFromLauncher_WebApp_Flags_PolicyCanUpdate_WithAppIdDlgForIcon_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/SwitchFromLauncher_WebApp_Flags_WithAppIdDlgForIcon_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/SwitchFromLauncher_WebApp_Flags_WithAppIdDlgForIcon_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/SwitchFromLauncher_WebApp_Flags_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/SwitchToLauncher_DefaultApp_Flags_None_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/SwitchToLauncher_DefaultApp_Flags_PolicyCanUpdate_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/SwitchToLauncher_DefaultApp_Flags_PolicyCanUpdate_WithAppIdDlgForIcon_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/SwitchToLauncher_DefaultApp_Flags_WithAppIdDlgForIcon_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/SwitchToLauncher_DefaultApp_Flags_WithAppIdDlgForIcon_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/SwitchToLauncher_DefaultApp_Flags_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/SwitchToLauncher_PolicyApp_Flags_None_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/SwitchToLauncher_PolicyApp_Flags_PolicyCanUpdate_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/SwitchToLauncher_PolicyApp_Flags_PolicyCanUpdate_WithAppIdDlgForIcon_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/SwitchToLauncher_PolicyApp_Flags_WithAppIdDlgForIcon_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/SwitchToLauncher_PolicyApp_Flags_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/SwitchToLauncher_WebApp_Flags_None_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/SwitchToLauncher_WebApp_Flags_PolicyCanUpdate_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/SwitchToLauncher_WebApp_Flags_PolicyCanUpdate_WithAppIdDlgForIcon_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/SwitchToLauncher_WebApp_Flags_WithAppIdDlgForIcon_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/SwitchToLauncher_WebApp_Flags_WithAppIdDlgForIcon_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/SwitchToLauncher_WebApp_Flags_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateInstallIcon_DefaultApp_Flags_None_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateInstallIcon_DefaultApp_Flags_PolicyCanUpdate_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateInstallIcon_DefaultApp_Flags_PolicyCanUpdate_WithAppIdDlgForIcon_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateInstallIcon_DefaultApp_Flags_WithAppIdDlgForIcon_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateInstallIcon_DefaultApp_Flags_WithAppIdDlgForIcon_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateInstallIcon_DefaultApp_Flags_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateInstallIcon_PolicyApp_Flags_PolicyCanUpdate_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateInstallIcon_PolicyApp_Flags_PolicyCanUpdate_WithAppIdDlgForIcon_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateInstallIcon_PolicyApp_Flags_WithAppIdDlgForIcon_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateInstallIcon_PolicyApp_Flags_WithAppIdDlgForIcon_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateInstallIcon_PolicyApp_Flags_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateInstallIcon_WebApp_Flags_None_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateInstallIcon_WebApp_Flags_PolicyCanUpdate_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateInstallIcon_WebApp_Flags_PolicyCanUpdate_WithAppIdDlgForIcon_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateInstallIcon_WebApp_Flags_WithAppIdDlgForIcon_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateInstallIcon_WebApp_Flags_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateLauncherAndInstallIcon_DefaultApp_Flags_None_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateLauncherAndInstallIcon_DefaultApp_Flags_PolicyCanUpdate_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateLauncherAndInstallIcon_DefaultApp_Flags_PolicyCanUpdate_WithAppIdDlgForIcon_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateLauncherAndInstallIcon_DefaultApp_Flags_WithAppIdDlgForIcon_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateLauncherAndInstallIcon_DefaultApp_Flags_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateLauncherAndInstallIcon_PolicyApp_Flags_None_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateLauncherAndInstallIcon_PolicyApp_Flags_PolicyCanUpdate_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateLauncherAndInstallIcon_PolicyApp_Flags_PolicyCanUpdate_WithAppIdDlgForIcon_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateLauncherAndInstallIcon_PolicyApp_Flags_WithAppIdDlgForIcon_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateLauncherAndInstallIcon_PolicyApp_Flags_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateLauncherAndInstallIcon_WebApp_Flags_None_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateLauncherAndInstallIcon_WebApp_Flags_PolicyCanUpdate_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateLauncherAndInstallIcon_WebApp_Flags_PolicyCanUpdate_WithAppIdDlgForIcon_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateLauncherAndInstallIcon_WebApp_Flags_WithAppIdDlgForIcon_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateLauncherAndInstallIcon_WebApp_Flags_WithAppIdDlgForIcon_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateLauncherAndInstallIcon_WebApp_Flags_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateLauncherIcon_DefaultApp_Flags_None_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateLauncherIcon_DefaultApp_Flags_PolicyCanUpdate_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateLauncherIcon_DefaultApp_Flags_WithAppIdDlgForIcon_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateLauncherIcon_DefaultApp_Flags_WithAppIdDlgForIcon_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateLauncherIcon_DefaultApp_Flags_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateLauncherIcon_PolicyApp_Flags_None_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateLauncherIcon_PolicyApp_Flags_PolicyCanUpdate_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateLauncherIcon_PolicyApp_Flags_PolicyCanUpdate_WithAppIdDlgForIcon_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateLauncherIcon_PolicyApp_Flags_WithAppIdDlgForIcon_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateLauncherIcon_PolicyApp_Flags_WithAppIdDlgForIcon_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateLauncherIcon_PolicyApp_Flags_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateLauncherIcon_WebApp_Flags_None_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateLauncherIcon_WebApp_Flags_PolicyCanUpdate_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateLauncherIcon_WebApp_Flags_PolicyCanUpdate_WithAppIdDlgForIcon_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateLauncherIcon_WebApp_Flags_WithAppIdDlgForIcon_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateLauncherIcon_WebApp_Flags_WithAppIdDlgForIcon_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateLauncherIcon_WebApp_Flags_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateTitleAndLauncherIcon_DefaultApp_Flags_None_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateTitleAndLauncherIcon_DefaultApp_Flags_PolicyCanUpdate_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateTitleAndLauncherIcon_DefaultApp_Flags_PolicyCanUpdate_WithAppIdDlgForIcon_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateTitleAndLauncherIcon_DefaultApp_Flags_WithAppIdDlgForIcon_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateTitleAndLauncherIcon_DefaultApp_Flags_WithAppIdDlgForIcon_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateTitleAndLauncherIcon_DefaultApp_Flags_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateTitleAndLauncherIcon_PolicyApp_Flags_None_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateTitleAndLauncherIcon_PolicyApp_Flags_PolicyCanUpdate_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateTitleAndLauncherIcon_PolicyApp_Flags_PolicyCanUpdate_WithAppIdDlgForIcon_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateTitleAndLauncherIcon_PolicyApp_Flags_WithAppIdDlgForIcon_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateTitleAndLauncherIcon_PolicyApp_Flags_WithAppIdDlgForIcon_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateTitleAndLauncherIcon_PolicyApp_Flags_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateTitleAndLauncherIcon_WebApp_Flags_None_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateTitleAndLauncherIcon_WebApp_Flags_PolicyCanUpdate_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateTitleAndLauncherIcon_WebApp_Flags_PolicyCanUpdate_WithAppIdDlgForIcon_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateTitleAndLauncherIcon_WebApp_Flags_WithAppIdDlgForIcon_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateTitleAndLauncherIcon_WebApp_Flags_WithAppIdDlgForIcon_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateTitleAndLauncherIcon_WebApp_Flags_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateTitle_DefaultApp_Flags_None_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateTitle_DefaultApp_Flags_PolicyCanUpdate_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateTitle_DefaultApp_Flags_PolicyCanUpdate_WithAppIdDlgForIcon_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateTitle_DefaultApp_Flags_WithAppIdDlgForIcon_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateTitle_DefaultApp_Flags_WithAppIdDlgForIcon_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateTitle_DefaultApp_Flags_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateTitle_PolicyApp_Flags_None_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateTitle_PolicyApp_Flags_PolicyCanUpdate_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateTitle_PolicyApp_Flags_PolicyCanUpdate_WithAppIdDlgForIcon_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateTitle_PolicyApp_Flags_WithAppIdDlgForIcon_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateTitle_PolicyApp_Flags_WithAppIdDlgForIcon_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateTitle_PolicyApp_Flags_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateTitle_WebApp_Flags_None_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateTitle_WebApp_Flags_PolicyCanUpdate_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateTitle_WebApp_Flags_PolicyCanUpdate_WithAppIdDlgForIcon_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateTitle_WebApp_Flags_WithAppIdDlgForIcon_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateTitle_WebApp_Flags_WithAppIdDlgForIcon_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateTitle_WebApp_Flags_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateUnimportantIcon_DefaultApp_Flags_None_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateUnimportantIcon_DefaultApp_Flags_PolicyCanUpdate_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateUnimportantIcon_DefaultApp_Flags_PolicyCanUpdate_WithAppIdDlgForIcon_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateUnimportantIcon_DefaultApp_Flags_WithAppIdDlgForIcon_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateUnimportantIcon_DefaultApp_Flags_WithAppIdDlgForIcon_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateUnimportantIcon_DefaultApp_Flags_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateUnimportantIcon_PolicyApp_Flags_None_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateUnimportantIcon_PolicyApp_Flags_PolicyCanUpdate_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateUnimportantIcon_PolicyApp_Flags_PolicyCanUpdate_WithAppIdDlgForIcon_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateUnimportantIcon_PolicyApp_Flags_WithAppIdDlgForIcon_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateUnimportantIcon_PolicyApp_Flags_WithAppIdDlgForIcon_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateUnimportantIcon_PolicyApp_Flags_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateUnimportantIcon_WebApp_Flags_None_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateUnimportantIcon_WebApp_Flags_PolicyCanUpdate_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateUnimportantIcon_WebApp_Flags_PolicyCanUpdate_WithAppIdDlgForIcon_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateUnimportantIcon_WebApp_Flags_WithAppIdDlgForIcon_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_AppIdentityParameterized.CheckCombinations/UpdateUnimportantIcon_WebApp_Flags_WithAppIdDlgForName_ +-All/ManifestUpdateManagerBrowserTest_UpdateDialog.CheckFindsIconContentChange/UpdateDialogDisabled +-All/ManifestUpdateManagerBrowserTest_UpdateDialog.CheckFindsIconContentChange/UpdateDialogEnabled -All/ManifestUpdateManagerBrowserTest_UpdateDialog.ScopeChangeWithProductIconChange/UpdateDialogEnabled --All/ManifestUpdateManagerBrowserTest_UpdateDialog.Shortcut* --All/MediaEngagementAutoplayBrowserTest.Preloaded* --All/MediaEngagementAutoplayBrowserTest.Use* --All/NetworkRequestMetricsBrowserTest.Cancel* +-All/ManifestUpdateManagerBrowserTest_UpdateDialog.ShortcutIconContentChangeWithProductIconChange/UpdateDialogDisabled +-All/ManifestUpdateManagerBrowserTest_UpdateDialog.ShortcutIconContentChangeWithProductIconChange/UpdateDialogEnabled +-All/MediaEngagementAutoplayBrowserTest.PreloadedDataAndHighVisits/0 +-All/MediaEngagementAutoplayBrowserTest.PreloadedDataAndHighVisits/1 +-All/MediaEngagementAutoplayBrowserTest.UsePreloadedData_Allowed/0 +-All/MediaEngagementAutoplayBrowserTest.UsePreloadedData_Allowed/1 +-All/MediaEngagementAutoplayBrowserTest.UsePreloadedData_Denied/0 +-All/MediaEngagementAutoplayBrowserTest.UsePreloadedData_Denied/1 +-All/MediaHistoryBrowserTest.DoNotRecordWatchtime_Background/2 +-All/NetworkRequestMetricsBrowserTest.CancelBeforeHeaders/1 +-All/NetworkRequestMetricsBrowserTest.CancelBeforeHeaders/2 +-All/NetworkRequestMetricsBrowserTest.CancelBeforeHeaders/3 +-All/NetworkRequestMetricsBrowserTest.CancelDuringBody/1 +-All/NetworkRequestMetricsBrowserTest.CancelDuringBody/2 +-All/NetworkRequestMetricsBrowserTest.CancelDuringBody/3 -All/NetworkRequestMetricsBrowserTest.Download/1 --All/NetworkRequestMetricsBrowserTest.File* --All/NetworkRequestMetricsBrowserTest.Interrupted* --All/NetworkRequestMetricsBrowserTest.Net* --All/NetworkRequestMetricsBrowserTest.Success* --All/NoStatePrefetchBrowserTestHttpCache_DefaultAndDoubleKeyedHttpCache.Load* --All/OneTimePermissionPromptBubbleViewBrowserTest.Invoke* --All/PermissionPromptBubbleViewBrowserTest.Active* --All/PermissionPromptBubbleViewBrowserTest.Invoke* --All/PopupBrowserTest.Move* +-All/NetworkRequestMetricsBrowserTest.FileURLError/1 +-All/NetworkRequestMetricsBrowserTest.FileURLError/2 +-All/NetworkRequestMetricsBrowserTest.FileURLError/3 +-All/NetworkRequestMetricsBrowserTest.FileURLSuccess/0 +-All/NetworkRequestMetricsBrowserTest.FileURLSuccess/1 +-All/NetworkRequestMetricsBrowserTest.FileURLSuccess/3 +-All/NetworkRequestMetricsBrowserTest.InterruptedBeforeHeaders/1 +-All/NetworkRequestMetricsBrowserTest.InterruptedBeforeHeaders/2 +-All/NetworkRequestMetricsBrowserTest.InterruptedBeforeHeaders/3 +-All/NetworkRequestMetricsBrowserTest.InterruptedCancelDuringBody/0 +-All/NetworkRequestMetricsBrowserTest.InterruptedCancelDuringBody/1 +-All/NetworkRequestMetricsBrowserTest.InterruptedCancelDuringBody/2 +-All/NetworkRequestMetricsBrowserTest.InterruptedCancelDuringBody/3 +-All/NetworkRequestMetricsBrowserTest.NetErrorBeforeHeaders/1 +-All/NetworkRequestMetricsBrowserTest.NetErrorBeforeHeaders/2 +-All/NetworkRequestMetricsBrowserTest.NetErrorBeforeHeaders/3 +-All/NetworkRequestMetricsBrowserTest.NetErrorDuringBody/0 +-All/NetworkRequestMetricsBrowserTest.NetErrorDuringBody/1 +-All/NetworkRequestMetricsBrowserTest.NetErrorDuringBody/3 +-All/NetworkRequestMetricsBrowserTest.SuccessWithBody/0 +-All/NetworkRequestMetricsBrowserTest.SuccessWithBody/1 +-All/NetworkRequestMetricsBrowserTest.SuccessWithBody/2 +-All/NetworkRequestMetricsBrowserTest.SuccessWithBody/3 +-All/NetworkRequestMetricsBrowserTest.SuccessWithEmptyBody/0 +-All/NetworkRequestMetricsBrowserTest.SuccessWithEmptyBody/1 +-All/NetworkRequestMetricsBrowserTest.SuccessWithEmptyBody/2 +-All/NetworkRequestMetricsBrowserTest.SuccessWithEmptyBody/3 +-All/OneTimePermissionPromptBubbleViewBrowserTest.InvokeUi_geolocation/0 +-All/OneTimePermissionPromptBubbleViewBrowserTest.InvokeUi_geolocation/1 +-All/PermissionPromptBubbleViewBrowserTest.ActiveTabClosedAfterRendererCrashesWithPendingPermissionRequest/0 +-All/PermissionPromptBubbleViewBrowserTest.ActiveTabClosedAfterRendererCrashesWithPendingPermissionRequest/1 +-All/PermissionPromptBubbleViewBrowserTest.InvokeUi_camera/0 +-All/PermissionPromptBubbleViewBrowserTest.InvokeUi_camera/1 +-All/PermissionPromptBubbleViewBrowserTest.InvokeUi_downloads/0 +-All/PermissionPromptBubbleViewBrowserTest.InvokeUi_downloads/1 +-All/PermissionPromptBubbleViewBrowserTest.InvokeUi_geolocation/0 +-All/PermissionPromptBubbleViewBrowserTest.InvokeUi_geolocation/1 +-All/PermissionPromptBubbleViewBrowserTest.InvokeUi_mic/0 +-All/PermissionPromptBubbleViewBrowserTest.InvokeUi_mic/1 +-All/PermissionPromptBubbleViewBrowserTest.InvokeUi_midi/0 +-All/PermissionPromptBubbleViewBrowserTest.InvokeUi_midi/1 +-All/PermissionPromptBubbleViewBrowserTest.InvokeUi_multiple/0 +-All/PermissionPromptBubbleViewBrowserTest.InvokeUi_multiple/1 +-All/PermissionPromptBubbleViewBrowserTest.InvokeUi_notifications/0 +-All/PermissionPromptBubbleViewBrowserTest.InvokeUi_notifications/1 +-All/PermissionPromptBubbleViewBrowserTest.InvokeUi_protocol_handlers/0 +-All/PermissionPromptBubbleViewBrowserTest.InvokeUi_protocol_handlers/1 +-All/PermissionPromptBubbleViewBrowserTest.InvokeUi_security_key/0 +-All/PermissionPromptBubbleViewBrowserTest.InvokeUi_security_key/1 +-All/PopupBrowserTest.MoveClampedToCurrentDisplay/0 +-All/PopupBrowserTest.MoveClampedToCurrentDisplay/1 -All/RendererEventInjectionTest.TestRootTransform/0 --All/SearchPrefetchServiceEnabledBrowserTest.Back* --All/TabCapturePerformanceTest.Performance* --All/ViewSourceWithSplitCacheEnabledTest.NetworkIsolationKeyReusedForBackNavigation/0 --All/ViewSourceWithSplitCacheTest.Http* --All/WebAppConfirmViewBrowserTest.Invoke* +-All/TabCapturePerformanceTest.Performance/0 +-All/TabCapturePerformanceTest.Performance/1 +-All/TabCapturePerformanceTest.Performance/2 +-All/TabCapturePerformanceTest.Performance/3 -AllForms/FormStructureBrowserTest.DataDrivenHeuristics/153 -AppInfoDialogBrowserTest.InvokeUi_default --AppSessionRestoreTest.Restore* +-AppSessionRestoreTest.RestoreAppMinimized +-AppSessionRestoreTest.RestoreMaximizedApp -AppSettingsAppTest.All --AppWindowApiTest.On* +-AppWindowApiTest.OnMaximizedEvent +-AppWindowApiTest.OnMinimizedEvent -AskGoogleForSuggestionsDialogTest.InvokeUi_default --AuthenticatorDialogTest.Invoke* --AuthenticatorDialogViewTest.Invoke* --AutofillErrorDialogViewNativeViewsBrowserTest.Invoke* +-AuthenticatorDialogTest.InvokeUi_account_select +-AuthenticatorDialogTest.InvokeUi_activate_usb +-AuthenticatorDialogTest.InvokeUi_authenticator_removed +-AuthenticatorDialogTest.InvokeUi_ble_power_on_manual +-AuthenticatorDialogTest.InvokeUi_cable_activate +-AuthenticatorDialogTest.InvokeUi_cable_server_link_activate +-AuthenticatorDialogTest.InvokeUi_cable_v2_activate +-AuthenticatorDialogTest.InvokeUi_cable_v2_pair +-AuthenticatorDialogTest.InvokeUi_default +-AuthenticatorDialogTest.InvokeUi_force_pin_change +-AuthenticatorDialogTest.InvokeUi_force_pin_change_same_as_current +-AuthenticatorDialogTest.InvokeUi_get_pin +-AuthenticatorDialogTest.InvokeUi_get_pin_fallback +-AuthenticatorDialogTest.InvokeUi_get_pin_one_try_remaining +-AuthenticatorDialogTest.InvokeUi_get_pin_two_tries_remaining +-AuthenticatorDialogTest.InvokeUi_hard_block +-AuthenticatorDialogTest.InvokeUi_inline_bio_enrollment +-AuthenticatorDialogTest.InvokeUi_internal_unrecognized_error +-AuthenticatorDialogTest.InvokeUi_key_already_registered +-AuthenticatorDialogTest.InvokeUi_key_not_registered +-AuthenticatorDialogTest.InvokeUi_mechanisms +-AuthenticatorDialogTest.InvokeUi_missing_capability +-AuthenticatorDialogTest.InvokeUi_no_available_transports +-AuthenticatorDialogTest.InvokeUi_request_enterprise_attestation_permission +-AuthenticatorDialogTest.InvokeUi_resident_credential_confirm +-AuthenticatorDialogTest.InvokeUi_retry_uv +-AuthenticatorDialogTest.InvokeUi_retry_uv_one_try_remaining +-AuthenticatorDialogTest.InvokeUi_retry_uv_two_tries_remaining +-AuthenticatorDialogTest.InvokeUi_second_tap +-AuthenticatorDialogTest.InvokeUi_set_pin +-AuthenticatorDialogTest.InvokeUi_soft_block +-AuthenticatorDialogTest.InvokeUi_storage_full +-AuthenticatorDialogViewTest.InvokeUi_default +-AuthenticatorDialogViewTest.InvokeUi_manage_devices +-AutofillErrorDialogViewNativeViewsBrowserTest.InvokeUi_eligibility +-AutofillErrorDialogViewNativeViewsBrowserTest.InvokeUi_permanent +-AutofillErrorDialogViewNativeViewsBrowserTest.InvokeUi_temporary -AutofillPopupBaseViewTest.CorrectBoundsTest -AutofillProgressDialogViewsBrowserTest.InvokeUi -AutomationApiTest.BoundsForRange @@ -66,11 +389,26 @@ -AutomationApiTest.Location2 -AutomationApiTest.SanityCheck -BackForwardCacheSiteDetailsBrowserTest.MemoryDetailsForBackForwardCache --BluetoothApiTest.Device* --BluetoothApiTest.Discovery* --BluetoothApiTest.Get* +-BluetoothApiTest.DeviceEvents +-BluetoothApiTest.DeviceInfo +-BluetoothApiTest.DiscoveryCallback +-BluetoothApiTest.DiscoveryInProgress +-BluetoothApiTest.GetAdapterState +-BluetoothApiTest.GetDevice +-BluetoothApiTest.GetDevices -BluetoothApiTest.OnAdapterStateChanged --BluetoothChooserBrowserTest.Invoke* +-BluetoothChooserBrowserTest.InvokeUi_ConnectedBubble +-BluetoothChooserBrowserTest.InvokeUi_ConnectedModal +-BluetoothChooserBrowserTest.InvokeUi_NoDevicesBubble +-BluetoothChooserBrowserTest.InvokeUi_NoDevicesModal +-BluetoothChooserBrowserTest.InvokeUi_PairedBubble +-BluetoothChooserBrowserTest.InvokeUi_PairedModal +-BluetoothChooserBrowserTest.InvokeUi_ScanningBubble +-BluetoothChooserBrowserTest.InvokeUi_ScanningModal +-BluetoothChooserBrowserTest.InvokeUi_ScanningWithDevicesBubble +-BluetoothChooserBrowserTest.InvokeUi_ScanningWithDevicesModal +-BluetoothChooserBrowserTest.InvokeUi_UnavailableBubble +-BluetoothChooserBrowserTest.InvokeUi_UnavailableModal -BluetoothPrivateApiTest.CancelPairing -BluetoothPrivateApiTest.Connect -BluetoothPrivateApiTest.DisconnectAll @@ -81,7 +419,8 @@ -BluetoothPrivateApiTest.PasskeyPairing -BluetoothPrivateApiTest.PincodePairing -BluetoothPrivateApiTest.SetAdapterState --BookmarkBubbleViewBrowserTest.Invoke* +-BookmarkBubbleViewBrowserTest.InvokeUi_bookmark_details +-BookmarkBubbleViewBrowserTest.InvokeUi_bookmark_details_signed_in -BookmarkEditorViewBrowserTest.InvokeUi_all_tabs -BookmarksListTest.All -BrowserFrameTest.DevToolsHasBoundsOnOpen @@ -91,30 +430,42 @@ -BrowserTest.TestPopupBounds -BrowserViewTest.DevToolsUpdatesBrowserWindow -BrowserViewTest.GetAccessibleTabModalDialogTitle --CacheCounterTest.AfterDoom --CacheCounterTest.Empty --CacheCounterTest.NonEmpty --CacheCounterTest.PeriodChanged --CacheCounterTest.PrefChanged -CardUnmaskAuthenticationSelectionDialogBrowserTest.InvokeUi_CardUnmaskAuthSelectionDialogDisplays -CardUnmaskOtpInputDialogBrowserTest.InvokeUi_CardUnmaskOtpInputDialogDisplays --CardUnmaskPromptViewBrowserTest.Invoke* --CastDialogViewBrowserTest.Invoke* +-CardUnmaskPromptViewBrowserTest.InvokeUi_expired +-CardUnmaskPromptViewBrowserTest.InvokeUi_valid +-CardUnmaskPromptViewBrowserTest.InvokeUi_valid_PermanentError +-CardUnmaskPromptViewBrowserTest.InvokeUi_valid_TemporaryError +-CastDialogViewBrowserTest.InvokeUi_Available +-CastDialogViewBrowserTest.InvokeUi_Connected +-CastDialogViewBrowserTest.InvokeUi_Mixed +-CastDialogViewBrowserTest.InvokeUi_NoSinks +-CastDialogViewBrowserTest.InvokeUi_Unavailable -CastMirroringServiceHostBrowserTest.CaptureTabVideo -CertificateSelectorDialogTest.InvokeUi_default -ChromeAcceptHeaderTest.Check -ChromeBackForwardCacheBrowserTest.DoNotShowSameSiteSubframeInTaskManager --ChromeBackForwardCacheBrowserTest.Show* --ChromeBrowserCloudManagementEnrollmentTest/ChromeBrowserCloudManagementEnrollmentTest.Test* +-ChromeBackForwardCacheBrowserTest.ShowCrossSiteOOPIFInTaskManager +-ChromeBackForwardCacheBrowserTest.ShowMainFrameInTaskManager +-ChromeBrowserCloudManagementEnrollmentTest/ChromeBrowserCloudManagementEnrollmentTest.Test/1 +-ChromeBrowserCloudManagementEnrollmentTest/ChromeBrowserCloudManagementEnrollmentTest.Test/3 -ChromeLabsUiTest.InvokeUi_default -ChromeMimeHandlerViewTest.ActivatePostMessageSupportOnce -ChromeMimeHandlerViewTest.BackgroundPage -ChromeMimeHandlerViewTest.Basic --ChromeMimeHandlerViewTest.Before* +-ChromeMimeHandlerViewTest.BeforeUnloadEnabled_WithUserActivation +-ChromeMimeHandlerViewTest.BeforeUnloadEnabled_WithoutUserActivation +-ChromeMimeHandlerViewTest.BeforeUnload_NoDialog +-ChromeMimeHandlerViewTest.BeforeUnload_ShowDialog -ChromeMimeHandlerViewTest.DataUrl -ChromeMimeHandlerViewTest.DoNotLoadInSandboxedFrame --ChromeMimeHandlerViewTest.Embed* --ChromeMimeHandlerViewTest.Embedded* +-ChromeMimeHandlerViewTest.EmbedWithInitialCrossOriginFrame +-ChromeMimeHandlerViewTest.EmbedWithInitialFrameAcceptBeforeUnloadDialog +-ChromeMimeHandlerViewTest.Embedded +-ChromeMimeHandlerViewTest.EmbeddedDataUrlEmbed +-ChromeMimeHandlerViewTest.EmbeddedDataUrlLong +-ChromeMimeHandlerViewTest.EmbeddedDataUrlObject +-ChromeMimeHandlerViewTest.EmbeddedThenPrint -ChromeMimeHandlerViewTest.EmbedderFrameRemovedNoCrash -ChromeMimeHandlerViewTest.Iframe -ChromeMimeHandlerViewTest.MimeHandlerViewInDisplayNoneFrameForGoogleApps @@ -127,110 +478,239 @@ -ChromeNavigationBrowserTest.CrossSiteRedirectionToPDF -ChromeNavigationBrowserTestWithMobileEmulation.CrossSiteRedirectionToPDFWithMobileEmulation -ChromeNavigationBrowserTestWithMobileEmulation.NavigateToPDFWithMobileEmulation --ChromeNetworkServiceMigrationBrowserTest.MigrateData -ChromePasswordProtectionServiceSyncBrowserTest.GSuitePasswordAlertMode -ChromeSitePerProcessPDFTest.EmbeddedPDFInsideCrossOriginFrame --ChromeSitePerProcessTest.JSPrintDuringSwap -ChromeSitePerProcessTest.PopupWindowFocus --ChromeTracingDelegateBrowserTestFromCommandLine.IgnoreThrottle --ChromeTracingDelegateBrowserTestFromCommandLine.ScenarioFromCommandLine --ChromeURLDataManagerWebUITrustedTypesTest.No* --ClickModifierTest.Href* --ClickModifierTest.Window* --ClientHintsBrowserTest.Switch* +-ChromeURLDataManagerWebUITrustedTypesTest.NoTrustedTypesViolation/chrome___browser_switch +-ChromeURLDataManagerWebUITrustedTypesTest.NoTrustedTypesViolation/chrome___nacl +-ClickModifierTest.HrefBasicClickTest +-ClickModifierTest.HrefControlShiftClickTest +-ClickModifierTest.HrefMiddleClickTest +-ClickModifierTest.HrefShiftClickTest +-ClickModifierTest.HrefShiftMiddleClickTest +-ClickModifierTest.WindowOpenBasicClickTest +-ClickModifierTest.WindowOpenControlClickTest +-ClickModifierTest.WindowOpenControlShiftClickTest +-ClickModifierTest.WindowOpenShiftClickTest +-ClientHintsBrowserTest.SwitchAcceptCHInvalid +-ClientHintsBrowserTest.SwitchAppliesStorage +-ClientHintsBrowserTest.SwitchAppliesStorageOneOrigin +-ClientHintsBrowserTest.SwitchNotJson +-ClientHintsBrowserTest.SwitchOriginNotSecure -CollectedCookiesTest.InvokeUi_default --CommandServiceTest.Get* --CommandServiceTest.Remove* --CommerceHintAddToCartPatternTest.Add* +-CommandServiceTest.GetExtensionActionCommandQueryActive +-CommandServiceTest.GetExtensionActionCommandQueryAll +-CommandServiceTest.GetNamedCommandsQueryAll +-CommandServiceTest.RemoveKeybindingPrefsShouldBePlatformSpecific +-CommandServiceTest.RemoveShortcutSurvivesUpdate +-CommerceHintAddToCartPatternTest.AddToCartByForm +-CommerceHintAddToCartPatternTest.AddToCartByURL -CommerceHintAgentFencedFrameTest.VisitCartInFencedFrame -CommerceHintAgentPortalBrowserTest.VisitCartInPortal --CommerceHintAgentTest.Add* +-CommerceHintAgentTest.AddToCartByForm +-CommerceHintAgentTest.AddToCartByForm_WithLink +-CommerceHintAgentTest.AddToCartByForm_WithWrongLink +-CommerceHintAgentTest.AddToCartByURL +-CommerceHintAgentTest.AddToCartByURL_XHR -CommerceHintAgentTest.ExtractCart -CommerceHintAgentTest.PurchaseByForm --CommerceHintAgentTest.Visit* --CommerceHintCacaoTest.Rejected --CommerceHintCartPatternTest.VisitCart +-CommerceHintAgentTest.VisitCart +-CommerceHintAgentTest.VisitCheckout -CommerceHintCheckoutPatternTest.VisitCheckout -CommerceHintMaxCountTest.ExtractCart +-CommerceHintOptimizeRendererDisabledTest.Rejected -CommerceHintOptimizeRendererTest.CartExtractionSkipped -CommerceHintPurchaseURLPatternTest.PurchaseByURL -CommerceHintSkippAddToCartTest.AddToCartByForm -CommerceHintTimeoutTest.ExtractCart --ConditionalCacheCountingHelperBrowserTest.Count -ConfirmBubbleTest.InvokeUi_default --ContentAnalysisDelegateBlockingSettingBrowserTest.Block* --ContentSettingBubbleDialogTest.Invoke* --ContextMenuBrowserTest.Gif* +-ContentAnalysisDelegateBlockingSettingBrowserTest.BlockLargeFiles/0 +-ContentAnalysisDelegateBlockingSettingBrowserTest.BlockLargeFiles/1 +-ContentAnalysisDelegateBlockingSettingBrowserTest.BlockLargeFiles/2 +-ContentAnalysisDelegateBlockingSettingBrowserTest.BlockLargeFiles/3 +-ContentSettingBubbleDialogTest.InvokeUi_ads +-ContentSettingBubbleDialogTest.InvokeUi_automatic_downloads +-ContentSettingBubbleDialogTest.InvokeUi_cookies +-ContentSettingBubbleDialogTest.InvokeUi_geolocation +-ContentSettingBubbleDialogTest.InvokeUi_javascript +-ContentSettingBubbleDialogTest.InvokeUi_mediastream_camera +-ContentSettingBubbleDialogTest.InvokeUi_mediastream_mic +-ContentSettingBubbleDialogTest.InvokeUi_mediastream_mic_and_camera +-ContentSettingBubbleDialogTest.InvokeUi_midi_sysex +-ContentSettingBubbleDialogTest.InvokeUi_mixed_script +-ContentSettingBubbleDialogTest.InvokeUi_notifications_quiet +-ContentSettingBubbleDialogTest.InvokeUi_notifications_quiet_abusive +-ContentSettingBubbleDialogTest.InvokeUi_notifications_quiet_abusive_content +-ContentSettingBubbleDialogTest.InvokeUi_notifications_quiet_crowd_deny +-ContentSettingBubbleDialogTest.InvokeUi_notifications_quiet_predicted_very_unlikely +-ContentSettingBubbleDialogTest.InvokeUi_popups +-ContentSettingBubbleDialogTest.InvokeUi_protocol_handlers +-ContextMenuBrowserTest.GifImageDownscaleToJpeg +-ContextMenuBrowserTest.GifImageShare -ContextMenuBrowserTest.JpgImageDownscaleToJpg -ContextMenuBrowserTest.MenuContentsVerification_Subframe --ContextMenuBrowserTest.Non* +-ContextMenuBrowserTest.NonLocatedContextMenuOnAnchorElement +-ContextMenuBrowserTest.NonLocatedContextMenuOnLargeImageElement -ContextMenuBrowserTest.OpenProfileNoneReferrer --ContextMenuBrowserTest.Png* +-ContextMenuBrowserTest.PngImageDownscaleToPng +-ContextMenuBrowserTest.PngImageOriginalDownscaleToPng -ContextMenuBrowserTest.RealMenu -ContextMenuBrowserTest.RequestPngForGifImage -ContextMenuBrowserTest.SuggestedFileName --ContinueWhereILeftOffTest.SessionCookies --CookieControlsBubbleViewTest.Invoke* +-CookieControlsBubbleViewTest.InvokeUi_BlockingDisabled +-CookieControlsBubbleViewTest.InvokeUi_NotWorkingClicked -CookiePolicyBrowserTest.NestedFirstPartyIFrameStorageForFrame --CorbAndCorsExtensionBrowserTest.Content* +-CorbAndCorsExtensionBrowserTest.ContentScriptVsHostBlockedByPolicy_AllowedTextResource +-CorbAndCorsExtensionBrowserTest.ContentScriptVsHostBlockedByPolicy_NoSniffXml +-CorbAndCorsExtensionBrowserTest.ContentScript_CorsAllowedByServer_NoPermissionToTarget +-CorbAndCorsExtensionBrowserTest.ContentScript_CorsIgnoredByServer_NoPermissionToTarget -CorbAndCorsExtensionBrowserTest.ExtensionWithNoHttpPermissions --CorbAndCorsExtensionBrowserTest.From* +-CorbAndCorsExtensionBrowserTest.FromProgrammaticContentScript_AllowedAfterSniffing +-CorbAndCorsExtensionBrowserTest.FromProgrammaticContentScript_AllowedTextResource +-CorbAndCorsExtensionBrowserTest.FromProgrammaticContentScript_AllowedTextResource_SubdomainPermissions +-CorbAndCorsExtensionBrowserTest.FromProgrammaticContentScript_UnloadedExtension -CrSettingsPeoplePageTest.All -CrSettingsSecurityPageTest.All -CreateAppShortcutDialogTest.InvokeUi_default --CreativeOriginAdsPageLoadMetricsObserverBrowserTest.Creative* +-CreativeOriginAdsPageLoadMetricsObserverBrowserTest.CreativeOriginStatusCross +-CreativeOriginAdsPageLoadMetricsObserverBrowserTest.CreativeOriginStatusCrossDoubleNested +-CreativeOriginAdsPageLoadMetricsObserverBrowserTest.CreativeOriginStatusCrossNested +-CreativeOriginAdsPageLoadMetricsObserverBrowserTest.CreativeOriginStatusSameNested +-CrossProfileDebuggerApiTest.Attach +-CrossProfileDebuggerApiTest.GetTargets -DIPSTabHelperBrowserTest.InteractionsRecordedInAncestorFrames -DebuggerExtensionApiTest.AttachToPdf -DeepScanningFailureModalDialogTest.InvokeUi_default -DesktopCaptureApiTest.ChooseDesktopMedia -DesktopCaptureApiTest.Delegation --DesktopMediaPickerViewsBrowserTest.Invoke* --DestroyProfileOnBrowserClose/ProfileHelperTestWithDestroyProfile.Delete* --DestroyProfileOnBrowserClose/ProfileManagerBrowserTest.Delete* --DestroyProfileOnBrowserClose/ProfileManagerBrowserTest.Ephemeral* +-DesktopMediaPickerViewsBrowserTest.InvokeUi_default +-DesktopMediaPickerViewsBrowserTest.InvokeUi_tabs +-DestroyProfileOnBrowserClose/ProfileHelperTestWithDestroyProfile.DeleteInactiveProfile/0 +-DestroyProfileOnBrowserClose/ProfileHelperTestWithDestroyProfile.DeleteInactiveProfile/1 +-DestroyProfileOnBrowserClose/ProfileManagerBrowserTest.DeleteAllProfiles/0 +-DestroyProfileOnBrowserClose/ProfileManagerBrowserTest.DeleteAllProfiles/1 +-DestroyProfileOnBrowserClose/ProfileManagerBrowserTest.DeleteInactiveProfile/0 +-DestroyProfileOnBrowserClose/ProfileManagerBrowserTest.DeleteInactiveProfile/1 +-DestroyProfileOnBrowserClose/ProfileManagerBrowserTest.EphemeralProfile/0 +-DestroyProfileOnBrowserClose/ProfileManagerBrowserTest.EphemeralProfile/1 -DevToolsProtocolTest.InputDispatchEventsToCorrectTarget -DiceManageAccountBrowserTest.ClearManagedProfileOnStartup -DiceWebSigninInterceptionBubbleBrowserTest.ProfileKeepAlive --DiskCachesizeExperiment.ScaledCacheSize --DownloadDangerPromptBrowserTest.Invoke* --DownloadExtensionTest.Download* +-DownloadDangerPromptBrowserTest.InvokeUi_AccountCompromise +-DownloadDangerPromptBrowserTest.InvokeUi_AccountCompromiseFromApi +-DownloadDangerPromptBrowserTest.InvokeUi_DangerousFile +-DownloadDangerPromptBrowserTest.InvokeUi_DangerousFileFromApi +-DownloadDangerPromptBrowserTest.InvokeUi_DangerousUrl +-DownloadDangerPromptBrowserTest.InvokeUi_DangerousUrlFromApi +-DownloadDangerPromptBrowserTest.InvokeUi_PotentiallyUnwanted +-DownloadDangerPromptBrowserTest.InvokeUi_PotentiallyUnwantedFromApi +-DownloadDangerPromptBrowserTest.InvokeUi_UncommonContent +-DownloadDangerPromptBrowserTest.InvokeUi_UncommonContentFromApi +-DownloadExtensionTest.DownloadExtensionTest_AcceptDanger +-DownloadExtensionTest.DownloadExtensionTest_Disallowed_Character_In_Filename +-DownloadExtensionTest.DownloadExtensionTest_Download_AuthBasic +-DownloadExtensionTest.DownloadExtensionTest_Download_AuthBasic_Fail +-DownloadExtensionTest.DownloadExtensionTest_Download_DataURL +-DownloadExtensionTest.DownloadExtensionTest_Download_File +-DownloadExtensionTest.DownloadExtensionTest_Download_Headers +-DownloadExtensionTest.DownloadExtensionTest_Download_Headers_Fail +-DownloadExtensionTest.DownloadExtensionTest_Download_InvalidHeaders +-DownloadExtensionTest.DownloadExtensionTest_Download_Post +-DownloadExtensionTest.DownloadExtensionTest_Download_Post_Get +-DownloadExtensionTest.DownloadExtensionTest_Download_Post_NoBody +-DownloadExtensionTest.DownloadExtensionTest_Download_Subdirectory +-DownloadExtensionTest.DownloadExtensionTest_Download_UnsafeHeaders -DownloadTest.DownloadErrorReadonlyFolder --DownloadTest.Save* --DownloadTestSplitCacheEnabled.Save* +-DownloadTest.SaveCanvasImage +-DownloadTest.SaveLinkAsVsCrossOriginResourcePolicy +-DownloadTestSplitCacheEnabled.SaveMainFramePdfFromContextMenu_IsolationInfo +-DownloadTestSplitCacheEnabled.SaveSubframePdfFromContextMenu_IsolationInfo +-DownloadTestSplitCacheEnabled.SaveSubframePdfFromPdfUI_IsolationInfo -EditAddressProfileDialogControllerImplTest.InvokeUi_Edit --EncryptedMediaSupportedTypesClearKeyTest.Video_MP4 --EncryptedMediaSupportedTypesClearKeyTest.Video_WebM -EncryptedMediaSupportedTypesExternalClearKeyTest.EncryptionScheme -EncryptedMediaSupportedTypesExternalClearKeyTest.Robustness -EncryptedMediaSupportedTypesExternalClearKeyTest.SessionType --EnterpriseStartupDialogViewBrowserTest.Invoke* +-EnterpriseStartupDialogViewBrowserTest.InvokeUi_Error +-EnterpriseStartupDialogViewBrowserTest.InvokeUi_Information +-EnterpriseStartupDialogViewBrowserTest.InvokeUi_Switch +-ExtensionApiTabTest.UpdateWindowResize -ExtensionApiTest.ChromeRuntimeGetPlatformInfo --ExtensionApiTest.Font* +-ExtensionApiTest.FontSettings +-ExtensionApiTest.FontSettingsIncognito -ExtensionApiTest.Storage +-ExtensionApiTest.TemporaryAddressSpoof -ExtensionBackForwardCacheBrowserTest.StorageCallbackEvicts --ExtensionBindingsApiTest.Web* +-ExtensionBindingsApiTest.WebUserGestureAfterApiCallback +-ExtensionBindingsApiTest.WebUserGestureAfterMessagingCallback -ExtensionDialogTest.TextInputViaKeyEvent --ExtensionInstallBlockedDialogViewTest.Invoke* --ExtensionInstallDialogViewInteractiveBrowserTest.Invoke* +-ExtensionInstallBlockedDialogViewTest.InvokeUi_WithCustomMessage +-ExtensionInstallBlockedDialogViewTest.InvokeUi_WithLongCustomMessage +-ExtensionInstallBlockedDialogViewTest.InvokeUi_WithoutCustomMessage +-ExtensionInstallDialogViewInteractiveBrowserTest.InvokeUi_AllInfoTypes +-ExtensionInstallDialogViewInteractiveBrowserTest.InvokeUi_DetailedPermission +-ExtensionInstallDialogViewInteractiveBrowserTest.InvokeUi_External +-ExtensionInstallDialogViewInteractiveBrowserTest.InvokeUi_FromWebstore +-ExtensionInstallDialogViewInteractiveBrowserTest.InvokeUi_FromWebstoreWithPermission +-ExtensionInstallDialogViewInteractiveBrowserTest.InvokeUi_ManyPermissions +-ExtensionInstallDialogViewInteractiveBrowserTest.InvokeUi_MultilinePermission +-ExtensionInstallDialogViewInteractiveBrowserTest.InvokeUi_ReEnable +-ExtensionInstallDialogViewInteractiveBrowserTest.InvokeUi_Simple +-ExtensionInstallDialogViewInteractiveBrowserTest.InvokeUi_WithRetainedDevices +-ExtensionInstallDialogViewInteractiveBrowserTest.InvokeUi_WithRetainedFiles +-ExtensionInstallDialogViewInteractiveBrowserTest.InvokeUi_WithWithholdingOption -ExtensionInstallFrictionDialogTest.InvokeUi_default --ExtensionInstalledBubbleViewsBrowserTest.Invoke* --ExtensionUninstallDialogViewInteractiveBrowserTest.Invoke* --ExtensionWebRequestApiTest.Web* +-ExtensionInstalledBubbleViewsBrowserTest.InvokeUi_BrowserAction +-ExtensionInstalledBubbleViewsBrowserTest.InvokeUi_Omnibox +-ExtensionInstalledBubbleViewsBrowserTest.InvokeUi_PageAction +-ExtensionInstalledBubbleViewsBrowserTest.InvokeUi_SignInPromo +-ExtensionInstalledBubbleViewsBrowserTest.InvokeUi_default +-ExtensionTabsTest.InvalidUpdateWindowBounds +-ExtensionTabsTest.InvalidUpdateWindowState +-ExtensionTabsTest.UpdateDevToolsWindow +-ExtensionUninstallDialogViewInteractiveBrowserTest.InvokeUi_ManualUninstall +-ExtensionUninstallDialogViewInteractiveBrowserTest.InvokeUi_ManualUninstallShowReportAbuse +-ExtensionUninstallDialogViewInteractiveBrowserTest.InvokeUi_UninstallByExtension +-ExtensionUninstallDialogViewInteractiveBrowserTest.InvokeUi_UninstallByExtensionShowReportAbuse +-ExtensionWebRequestApiTest.WebRequestNewTab +-ExtensionWebRequestApiTest.WebRequestPacRequestProtection +-ExtensionWebRequestApiTest.WebSocketRequestOnWorker -ExtensionWebstoreGetWebGLStatusTest.Allowed -ExtensionWindowCreateTest.AcceptState +-ExtensionWindowCreateTest.ValidateCreateWindowBounds -ExternalProtocolDialogBrowserTest.InvokeUi_default -ExternalProtocolDialogBrowserTest.TestFocus --FeedbackTest.AnonymousUser --FeedbackTest.ExtraDiagnostics --FeedbackTest.Show* -FencedFrameSiteDetailsBrowserTest.MemoryDetailsForFencedFrame --FileSystemAccessPermissionViewTest.Invoke* +-FileSystemAccessPermissionViewTest.InvokeUi_ExtensionOrigin +-FileSystemAccessPermissionViewTest.InvokeUi_FileOrigin +-FileSystemAccessPermissionViewTest.InvokeUi_FileRead +-FileSystemAccessPermissionViewTest.InvokeUi_FileReadWrite +-FileSystemAccessPermissionViewTest.InvokeUi_Folder +-FileSystemAccessPermissionViewTest.InvokeUi_FolderRead +-FileSystemAccessPermissionViewTest.InvokeUi_FolderReadWrite +-FileSystemAccessPermissionViewTest.InvokeUi_LongFileName +-FileSystemAccessPermissionViewTest.InvokeUi_LongOrigin +-FileSystemAccessPermissionViewTest.InvokeUi_default -FileSystemAccessRestrictedDirectoryDialogViewTest.InvokeUi_default --FileSystemAccessUsageBubbleViewTest.Invoke* +-FileSystemAccessUsageBubbleViewTest.InvokeUi_LongOrigin +-FileSystemAccessUsageBubbleViewTest.InvokeUi_MultipleReadableFiles +-FileSystemAccessUsageBubbleViewTest.InvokeUi_MultipleReadableFolders +-FileSystemAccessUsageBubbleViewTest.InvokeUi_MultipleWritableFolders +-FileSystemAccessUsageBubbleViewTest.InvokeUi_ReadableAndWritableFolders +-FileSystemAccessUsageBubbleViewTest.InvokeUi_ReadableFilesAndFolders +-FileSystemAccessUsageBubbleViewTest.InvokeUi_SingleReadableFile +-FileSystemAccessUsageBubbleViewTest.InvokeUi_SingleReadableFolder +-FileSystemAccessUsageBubbleViewTest.InvokeUi_SingleWritableFolder +-FileSystemAccessUsageBubbleViewTest.InvokeUi_TwoWritableFiles +-FileSystemAccessUsageBubbleViewTest.InvokeUi_WritableFilesAndFolders +-FileSystemAccessUsageBubbleViewTest.InvokeUi_default -FindInPageControllerTest.FindMovesWhenObscuring -FolderUploadConfirmationViewTest.InitiallyFocusesCancel -FolderUploadConfirmationViewTest.InvokeUi_default --GlobalErrorBubbleTest.Invoke* +-FullscreenTabSearchBubbleDialogTest.InvokeUi_default +-GlobalErrorBubbleTest.InvokeUi_ExtensionDisabledGlobalError +-GlobalErrorBubbleTest.InvokeUi_ExtensionDisabledGlobalErrorRemote +-GlobalErrorBubbleTest.InvokeUi_ExternalInstallBubbleAlert +-GlobalErrorBubbleTest.InvokeUi_SigninGlobalError -HelpBubbleFactoryViewsBrowsertest.InvokeUi_default -HistoryManipulationInterventionBrowserTest.PDFDoNotSkipOnBackForwardDueToUserGesture -HistoryManipulationInterventionBrowserTest.PDFSkipOnBackForwardNoUserGesture @@ -240,23 +720,31 @@ -IconModuleTest.All -ImageAnnotationBrowserTest.ImageUrl -ImportLockDialogViewBrowserTest.InvokeUi_default --InMemoryApp/NetworkContextConfigurationDataPacBrowserTest.Data* +-InMemoryApp/NetworkContextConfigurationDataPacBrowserTest.DataPac/0 +-InMemoryApp/NetworkContextConfigurationDataPacBrowserTest.DataPac/1 -InMemoryApp/NetworkContextConfigurationHttpPacBrowserTest.HttpPac/1 --InMemoryApp/NetworkContextConfigurationManagedProxySettingsBrowserTest.Max* --InMemoryApp/NetworkContextConfigurationProxySettingsBrowserTest.Max* +-InMemoryApp/NetworkContextConfigurationManagedProxySettingsBrowserTest.MaxConnectionsPerProxy/0 +-InMemoryApp/NetworkContextConfigurationManagedProxySettingsBrowserTest.MaxConnectionsPerProxy/1 +-InMemoryApp/NetworkContextConfigurationProxySettingsBrowserTest.MaxConnectionsPerProxy/0 +-InMemoryApp/NetworkContextConfigurationProxySettingsBrowserTest.MaxConnectionsPerProxy/1 -InProcess/ChromeNetworkServiceBrowserTest.EncryptedCookies/0 -InProcessBrowserTest.RunsScheduledLayoutOnAnchoredBubbles -IncognitoBrowsingDataBrowserTest.Database -IncognitoBrowsingDataBrowserTest.StorageDoesntWriteToDisk -IncognitoBrowsingDataBrowserTest.WebSqlDeletion -IncognitoClearBrowsingDataDialogBrowserTest.InvokeUi_default --IncognitoProfileMainNetworkContext/NetworkContextConfigurationDataPacBrowserTest.Data* --IncognitoProfileMainNetworkContext/NetworkContextConfigurationHttpPacBrowserTest.Http* +-IncognitoProfileMainNetworkContext/NetworkContextConfigurationDataPacBrowserTest.DataPac/0 +-IncognitoProfileMainNetworkContext/NetworkContextConfigurationDataPacBrowserTest.DataPac/1 +-IncognitoProfileMainNetworkContext/NetworkContextConfigurationHttpPacBrowserTest.HttpPac/0 +-IncognitoProfileMainNetworkContext/NetworkContextConfigurationHttpPacBrowserTest.HttpPac/1 -IncognitoProfileMainNetworkContext/NetworkContextConfigurationManagedProxySettingsBrowserTest.MaxConnectionsPerProxy/1 --IncognitoProfileMainNetworkContext/NetworkContextConfigurationProxySettingsBrowserTest.Max* +-IncognitoProfileMainNetworkContext/NetworkContextConfigurationProxySettingsBrowserTest.MaxConnectionsPerProxy/0 +-IncognitoProfileMainNetworkContext/NetworkContextConfigurationProxySettingsBrowserTest.MaxConnectionsPerProxy/1 -InfoBarUiTest.InvokeUi_multiple_infobars -InlineLoginHelperBrowserTest.InvokeUi_default --InlineLoginHelperBrowserTest.Signin* +-InlineLoginHelperBrowserTest.SigninCreatesSyncStarter1 +-InlineLoginHelperBrowserTest.SigninCreatesSyncStarter2 +-InlineLoginHelperBrowserTest.SigninCreatesSyncStarter4 -InlineLoginHelperBrowserTest.UntrustedSigninDialogCancel -InlineLoginHelperBrowserTest.WithAuthCode -IntentPickerDialogTest.InvokeUi_default @@ -264,29 +752,55 @@ -InterstitialUITest.MalwareInterstitialQuiet -InterstitialUITest.PhishingInterstitialQuiet -InterstitialUITest.UnwantedSoftwareInterstitialQuiet +-IsolatedAppTest.SessionStorage -LargeStickyAdViolationBrowserTest.LargeStickyAd_AdInterventionTriggered -LargeStickyAdViolationBrowserTest.NoLargeStickyAd_AdInterventionNotTriggered -LargeStickyAdViolationBrowserTestWithoutEnforcement.LargeStickyAd_NoAdInterventionTriggered --LoadImageBrowserTest.Load* --LoadingPredictorBrowserTestWithProxy.Prepare* +-LoadImageBrowserTest.LoadImage +-LoadImageBrowserTest.LoadImageWithMap +-LoadingPredictorBrowserTestWithProxy.PrepareForPageLoadWithPrediction +-LoadingPredictorBrowserTestWithProxy.PrepareForPageLoadWithoutPrediction -LocalCardMigrationBrowserTest.AcceptingDialogAddsLocalCardMigrationStrikes -LocalCardMigrationBrowserTest.CardIdentifierString --LocalCardMigrationBrowserTest.Clicking* --LocalCardMigrationBrowserTest.Closed* --LocalCardMigrationBrowserTest.Closing* +-LocalCardMigrationBrowserTest.ClickingCancelClosesDialog +-LocalCardMigrationBrowserTest.ClickingCloseClosesBubble +-LocalCardMigrationBrowserTest.ClickingContinueOpensDialog +-LocalCardMigrationBrowserTest.ClickingOmniboxIconReshowsBubble +-LocalCardMigrationBrowserTest.ClickingSaveClosesDialog +-LocalCardMigrationBrowserTest.ClosedReason_BubbleAccepted +-LocalCardMigrationBrowserTest.ClosedReason_BubbleClosed +-LocalCardMigrationBrowserTest.ClosedReason_BubbleLostFocus +-LocalCardMigrationBrowserTest.ClosedReason_BubbleNotInteracted +-LocalCardMigrationBrowserTest.ClosingBubbleAddsLocalCardMigrationStrikes +-LocalCardMigrationBrowserTest.ClosingBubbleAgainAddsLocalCardMigrationStrikes -LocalCardMigrationBrowserTest.CreditCardIconShownInLocationBar -LocalCardMigrationBrowserTest.DialogContainsAllValidMigratableCard -LocalCardMigrationBrowserTest.IntermediateMigrationOfferDoesNotShowWhenPaymentsDeclines -LocalCardMigrationBrowserTest.RejectingDialogAddsLocalCardMigrationStrikes -LocalCardMigrationBrowserTest.ReshowingBubbleDoesNotAddStrikes --LocalCardMigrationBrowserTest.Reusing* +-LocalCardMigrationBrowserTest.ReusingLocalCardDoesNotShowIntermediateMigrationOffer +-LocalCardMigrationBrowserTest.ReusingLocalCardShowsIntermediateMigrationOffer +-LocalCardMigrationBrowserTest.ReusingServerCardDoesNotShowIntermediateMigrationOffer +-LocalCardMigrationBrowserTest.ReusingServerCardWithMigratableLocalCardShowIntermediateMigrationOffer -LocalCardMigrationBrowserTest.UsingNewCardDoesNotShowIntermediateMigrationOffer -LocalCardMigrationBrowserTestForStatusChip.ActivateFirstInactiveBubbleForAccessibility -LocalCardMigrationBrowserTestForStatusChip.ClickingOmniboxIconReshowsBubble -LocalCardMigrationBrowserTestForStatusChip.CreditCardIconShownInStatusChip -LocalCardMigrationBrowserTestForStatusChip.IconAndBubbleVisibilityAfterTabSwitching -ManifestUpdateManagerAppIdentityBrowserTest.TestUpgradeDuringShutdownForAppIdentity --ManifestUpdateManagerBrowserTest.Check* +-ManifestUpdateManagerBrowserTest.CheckDoesApplyIconURLChangeForDefaultApps +-ManifestUpdateManagerBrowserTest.CheckDoesFindIconUrlChangeForDefaultApps +-ManifestUpdateManagerBrowserTest.CheckDoesNotFindIconContentChange +-ManifestUpdateManagerBrowserTest.CheckDoesNotFindIconUrlChange +-ManifestUpdateManagerBrowserTest.CheckFindsDeletedDisplayOverride +-ManifestUpdateManagerBrowserTest.CheckFindsDisplayChange +-ManifestUpdateManagerBrowserTest.CheckFindsDisplayOverrideChange +-ManifestUpdateManagerBrowserTest.CheckFindsInvalidDisplayOverride +-ManifestUpdateManagerBrowserTest.CheckFindsNewDisplayOverride +-ManifestUpdateManagerBrowserTest.CheckFindsScopeChange +-ManifestUpdateManagerBrowserTest.CheckFindsThemeColorChange +-ManifestUpdateManagerBrowserTest.CheckKeepsSameName +-ManifestUpdateManagerBrowserTest.CheckUpdatedPolicyAppsNotUninstallable -ManifestUpdateManagerCaptureLinksBrowserTest.CheckFindsCaptureLinksChange -ManifestUpdateManagerHandleLinksBrowserTest.CheckFindsHandleLinksChange -ManifestUpdateManagerIconUpdatingBrowserTest.CheckFindsIconUrlChange @@ -296,54 +810,100 @@ -MyIpAddressProxyScriptBrowserTest.Verify -NavigationPredictorBrowserTest.ClickAnchorElement -NavigationPredictorBrowserTest.MultipleNavigations --NavigationPredictorBrowserTest.Page* +-NavigationPredictorBrowserTest.PageWithCrossOriginIframe +-NavigationPredictorBrowserTest.PageWithIframe -NavigationPredictorBrowserTest.Pipeline --NavigationPredictorBrowserTest.Single* +-NavigationPredictorBrowserTest.SingleObserver +-NavigationPredictorBrowserTest.SingleObserverPastViewport -NavigationPredictorBrowserTest.TwoObservers -NavigationPredictorBrowserTest.ViewportOnlyAndUrlIncrementByOne -NavigationPredictorFencedFrameBrowserTest.EnsureFencedFrameDoesNotCreateNavigationPredictor -NavigationPredictorPrerenderBrowserTest.PrerenderingDontCreatePredictor --NetworkQualityEstimatorPrefsBrowserTest.ReadPrefsAtStartupCustomPrefFile --NetworkingPrivateServiceClientApiTest.On* +-NetworkingPrivateServiceClientApiTest.OnNetworkListChangedEvent +-NetworkingPrivateServiceClientApiTest.OnNetworksChangedEventConnect +-NetworkingPrivateServiceClientApiTest.OnNetworksChangedEventDisconnect -NetworkingPrivateServiceClientApiTest.RequestNetworkScan -NewTabPageLogoTest.All -NewTabPageModulesModuleWrapperTest.All --NoSessionRestoreTest.CookiesClearedOnExit --NoSessionRestoreTestWithStartupDeletionDisabled.CookiesClearedOnStartup --NoStatePrefetchBrowserTest.PrefetchCookieCrossDomainSameSiteStrict -OmniboxPopupContentsViewTest.ClickOmnibox -OmniboxPopupContentsViewTest.PopupMatchesLocationBarBackground -OmniboxSuggestionButtonRowBrowserTest.InvokeUi --OnDiskApp/NetworkContextConfigurationBrowserTest.Cache/0 --OnDiskApp/NetworkContextConfigurationBrowserTest.Cookies* +-OnDiskApp/NetworkContextConfigurationBrowserTest.CacheIsolation/1 -OnDiskApp/NetworkContextConfigurationBrowserTest.DiskCache/0 --OnDiskApp/NetworkContextConfigurationDataPacBrowserTest.Data* +-OnDiskApp/NetworkContextConfigurationDataPacBrowserTest.DataPac/0 +-OnDiskApp/NetworkContextConfigurationDataPacBrowserTest.DataPac/1 -OnDiskApp/NetworkContextConfigurationHttpPacBrowserTest.HttpPac/0 --OnDiskApp/NetworkContextConfigurationManagedProxySettingsBrowserTest.Max* --OnDiskApp/NetworkContextConfigurationProxySettingsBrowserTest.Max* --OnDiskApp/NetworkContextConfigurationReportingAndNelBrowserTest.Persist* --OnDiskAppWithIncognitoProfile/NetworkContextConfigurationDataPacBrowserTest.Data* --OnDiskAppWithIncognitoProfile/NetworkContextConfigurationHttpPacBrowserTest.Http* --OnDiskAppWithIncognitoProfile/NetworkContextConfigurationManagedProxySettingsBrowserTest.Max* --OnDiskAppWithIncognitoProfile/NetworkContextConfigurationProxySettingsBrowserTest.Max* +-OnDiskApp/NetworkContextConfigurationManagedProxySettingsBrowserTest.MaxConnectionsPerProxy/0 +-OnDiskApp/NetworkContextConfigurationManagedProxySettingsBrowserTest.MaxConnectionsPerProxy/1 +-OnDiskApp/NetworkContextConfigurationProxySettingsBrowserTest.MaxConnectionsPerProxy/0 +-OnDiskApp/NetworkContextConfigurationProxySettingsBrowserTest.MaxConnectionsPerProxy/1 +-OnDiskAppWithIncognitoProfile/NetworkContextConfigurationDataPacBrowserTest.DataPac/0 +-OnDiskAppWithIncognitoProfile/NetworkContextConfigurationDataPacBrowserTest.DataPac/1 +-OnDiskAppWithIncognitoProfile/NetworkContextConfigurationHttpPacBrowserTest.HttpPac/0 +-OnDiskAppWithIncognitoProfile/NetworkContextConfigurationHttpPacBrowserTest.HttpPac/1 +-OnDiskAppWithIncognitoProfile/NetworkContextConfigurationManagedProxySettingsBrowserTest.MaxConnectionsPerProxy/0 +-OnDiskAppWithIncognitoProfile/NetworkContextConfigurationManagedProxySettingsBrowserTest.MaxConnectionsPerProxy/1 +-OnDiskAppWithIncognitoProfile/NetworkContextConfigurationProxySettingsBrowserTest.MaxConnectionsPerProxy/0 +-OnDiskAppWithIncognitoProfile/NetworkContextConfigurationProxySettingsBrowserTest.MaxConnectionsPerProxy/1 -OutOfMemoryReporterPrerenderBrowserTest.NotReportedOnPrerenderPage -OutOfProcess/ChromeNetworkServiceBrowserTest.EncryptedCookies/0 --OutdatedUpgradeBubbleTest.Invoke* +-OutdatedUpgradeBubbleTest.InvokeUi_NoAutoUpdate +-OutdatedUpgradeBubbleTest.InvokeUi_Outdated -OverlayPopupAdViolationBrowserTest.NoOverlayPopupAd_AdInterventionNotTriggered -OverlayPopupAdViolationBrowserTest.OverlayPopupAd_AdInterventionTriggered -OverlayPopupAdViolationBrowserTestWithoutEnforcement.OverlayPopupAd_NoAdInterventionTriggered --PageInfoBubbleViewAboutThisSiteDialogBrowserTest.Invoke* --PageInfoBubbleViewDialogBrowserTest.Invoke* +-PKIMetadataComponentUpdater/PKIMetadataComponentUpdaterTest.ReloadsPKIMetadataConfigAfterCrash/1 +-PageInfoBubbleViewAboutThisSiteDialogBrowserTest.InvokeUi_AboutThisSite +-PageInfoBubbleViewAboutThisSiteDialogBrowserTest.InvokeUi_AboutThisSiteSubpage +-PageInfoBubbleViewDialogBrowserTest.InvokeUi_AllowAllPermissions +-PageInfoBubbleViewDialogBrowserTest.InvokeUi_BlockAllPermissions +-PageInfoBubbleViewDialogBrowserTest.InvokeUi_Deceptive +-PageInfoBubbleViewDialogBrowserTest.InvokeUi_EnterprisePasswordReuse +-PageInfoBubbleViewDialogBrowserTest.InvokeUi_EvSecure +-PageInfoBubbleViewDialogBrowserTest.InvokeUi_EvSecureSubpage +-PageInfoBubbleViewDialogBrowserTest.InvokeUi_File +-PageInfoBubbleViewDialogBrowserTest.InvokeUi_Insecure +-PageInfoBubbleViewDialogBrowserTest.InvokeUi_Internal +-PageInfoBubbleViewDialogBrowserTest.InvokeUi_InternalExtension +-PageInfoBubbleViewDialogBrowserTest.InvokeUi_InternalViewSource +-PageInfoBubbleViewDialogBrowserTest.InvokeUi_Malware +-PageInfoBubbleViewDialogBrowserTest.InvokeUi_MalwareAndBadCert +-PageInfoBubbleViewDialogBrowserTest.InvokeUi_MixedContent +-PageInfoBubbleViewDialogBrowserTest.InvokeUi_MixedContentForm +-PageInfoBubbleViewDialogBrowserTest.InvokeUi_SavedPasswordReuse +-PageInfoBubbleViewDialogBrowserTest.InvokeUi_Secure +-PageInfoBubbleViewDialogBrowserTest.InvokeUi_SecureSubpage +-PageInfoBubbleViewDialogBrowserTest.InvokeUi_SignInNonSyncPasswordReuse +-PageInfoBubbleViewDialogBrowserTest.InvokeUi_SignInSyncPasswordReuse +-PageInfoBubbleViewDialogBrowserTest.InvokeUi_UnwantedSoftware -PageInfoBubbleViewHistoryDialogBrowserTest.InvokeUi_History --PageInfoBubbleViewPrivacySandboxDialogBrowserTest.Invoke* --PageLoadMetricsBrowserTest.CachedPage --PageLoadMetricsBrowserTest.Input* --PageLoadMetricsBrowserTest.Main* --PageLoadMetricsBrowserTestWithAnimatedLCPFlag.Page* +-PageInfoBubbleViewPrivacySandboxDialogBrowserTest.InvokeUi_PrivacySandboxMain +-PageInfoBubbleViewPrivacySandboxDialogBrowserTest.InvokeUi_PrivacySandboxSubpage +-PageLoadMetricsBrowserTest.InputEventsForClick +-PageLoadMetricsBrowserTest.InputEventsForJavaScriptHref +-PageLoadMetricsBrowserTest.InputEventsForJavaScriptWindowOpen +-PageLoadMetricsBrowserTest.MainFrameIntersectionCrossOrigin +-PageLoadMetricsBrowserTest.MainFrameIntersectionCrossOriginScrolled +-PageLoadMetricsBrowserTest.MainFrameIntersectionSameOrigin +-PageLoadMetricsBrowserTestWithAnimatedLCPFlag.PageLCPAnimatedImage +-PageLoadMetricsBrowserTestWithAnimatedLCPFlag.PageLCPNonAnimatedImage -PageLoadMetricsBrowserTestWithRuntimeAnimatedLCPFlag.PageLCPAnimatedImageOnlyRuntimeFlag -PageTextObserverBrowserTest.OOPIFAMPSubframe --PasswordBubbleBrowserTest.Invoke* --PasswordDialogViewTest.Invoke* +-PaintPreviewCompositorBrowserTest.CompositorCreate +-PaintPreviewCompositorBrowserTest.KillWithActiveCompositors +-PaintPreviewCompositorBrowserTest.MultipleCompositorCreate +-PaintPreviewCompositorBrowserTest.TestInitializationSuccess +-PasswordBubbleBrowserTest.InvokeUi_AutoSignin +-PasswordBubbleBrowserTest.InvokeUi_AutomaticPasswordBubble +-PasswordBubbleBrowserTest.InvokeUi_ManagePasswordBubble +-PasswordBubbleBrowserTest.InvokeUi_MoreToFixState +-PasswordBubbleBrowserTest.InvokeUi_MoveToAccountStoreBubble +-PasswordBubbleBrowserTest.InvokeUi_PendingPasswordBubble +-PasswordDialogViewTest.InvokeUi_AutoSigninFirstRun +-PasswordDialogViewTest.InvokeUi_CredentialLeak +-PasswordDialogViewTest.InvokeUi_PopupAccountChooserWithMultipleCredentialClickSignIn +-PasswordDialogViewTest.InvokeUi_PopupAccountChooserWithSingleCredentialClickSignIn +-PasswordDialogViewTest.InvokeUi_PopupAutoSigninPrompt -PasswordGenerationPopupViewTest.CloseWebContentsWithVisiblePopup -PasswordGenerationPopupViewTest.MouseMovementInEditingPopup -PasswordManagerBrowserTest.DeleteCredentialsUpdateDropdown @@ -355,96 +915,177 @@ -PaymentRequestCvcUnmaskViewControllerVisualTest.InvokeUi_default -PaymentsRequestVisualTest.InvokeUi_NoShipping -PaymentsRequestVisualWithBasicCardDisabledTest.InvokeUi_NoShipping --PersistentBackground/ExtensionApiCaptureTest.Capture* +-PersistentBackground/ExtensionApiCaptureTest.CaptureVisibleDisabled/0 +-PersistentBackground/ExtensionApiCaptureTest.CaptureVisibleFile/0 +-PersistentBackground/ExtensionApiCaptureTest.CaptureVisibleTabJpeg/0 +-PersistentBackground/ExtensionApiCaptureTest.CaptureVisibleTabPng/0 -PersistentBackground/RuntimeApiTest.GetPlatformInfo/0 -PersistentBackground/WebNavigationApiTestWithContextType.RequestOpenTab/0 --PersistentBackground/WebNavigationApiTestWithContextType.Target* +-PersistentBackground/WebNavigationApiTestWithContextType.TargetBlank/0 +-PersistentBackground/WebNavigationApiTestWithContextType.TargetBlankIncognito/0 -PictureInPicturePixelComparisonBrowserTest.PlayAndPauseControls -PictureInPicturePixelComparisonBrowserTest.VideoPlay --PolicyAppParameterizedTest/ManifestUpdateManagerBrowserTest_PolicyAppsCanUpdate.Check* +-PolicyAppParameterizedTest/ManifestUpdateManagerBrowserTest_PolicyAppsCanUpdate.CheckDoesApplyIconURLChangeForPolicyAppsWithFlag/0 +-PolicyAppParameterizedTest/ManifestUpdateManagerBrowserTest_PolicyAppsCanUpdate.CheckDoesApplyIconURLChangeForPolicyAppsWithFlag/1 -PolicyPrefsTestCoverageTest.AllPoliciesHaveATestCase --PolicyTest.DefaultCookiesSetting --PolicyTest.WebsiteCookiesSetting --PolicyTestWindowOpener.CheckWindowOpenerNonNull --PrefetchBrowserTest.Prefetch* -PrerenderSiteDetailsBrowserTest.MemoryDetailsForPrerender -PresentationReceiverWindowViewBrowserTest.LocationBarViewShown -PresentationReceiverWindowViewBrowserTest.ShowPageInfoDialog -PreservedWindowPlacement.Test -PrivacyBudgetFieldtrialConfigTest.LoadsSettingsFromFieldTrialConfig --PrivacySandboxDialogTest.All --PrivateNetworkAccessWithFeatureEnabledBrowserTest.CachedResourcesAllowed +-PrivacySandboxDialogViewBrowserTest.InvokeUi_Notice -PrivateNetworkAccessWithFeatureEnabledBrowserTest.RecordsAddressSpaceFeatureForBlockedRequests --ProcessMemoryMetricsEmitterTest.Fetch* +-ProcessManagementTest.ProcessOverflow +-ProcessMemoryMetricsEmitterTest.FetchAndEmitMetricsWithExtensions +-ProcessMemoryMetricsEmitterTest.FetchDuringTrace -ProcessMemoryMetricsEmitterTest.ForegroundAndBackgroundPages -ProfileCustomizationBubbleBrowserTest.IPH -ProfileCustomizationBubbleBrowserTest.InvokeUi_default -ProfileHelperTest.OpenNewWindowForProfile --ProfileMainNetworkContext/NetworkContextConfigurationBrowserTest.Cache/0 --ProfileMainNetworkContext/NetworkContextConfigurationBrowserTest.Cookies* +-ProfileMainNetworkContext/NetworkContextConfigurationBrowserTest.CacheIsolation/0 +-ProfileMainNetworkContext/NetworkContextConfigurationBrowserTest.CacheIsolation/1 -ProfileMainNetworkContext/NetworkContextConfigurationBrowserTest.DiskCache/0 --ProfileMainNetworkContext/NetworkContextConfigurationDataPacBrowserTest.Data* --ProfileMainNetworkContext/NetworkContextConfigurationHttpPacBrowserTest.Http* --ProfileMainNetworkContext/NetworkContextConfigurationManagedProxySettingsBrowserTest.Max* --ProfileMainNetworkContext/NetworkContextConfigurationProxySettingsBrowserTest.Max* --ProfileMainNetworkContext/NetworkContextConfigurationReportingAndNelBrowserTest.Persist* --ProfileMenuClickTest_WithUnconsentedPrimaryAccount.ProfileMenuClickTest_WithUnconsentedPrimaryAccount/1 +-ProfileMainNetworkContext/NetworkContextConfigurationDataPacBrowserTest.DataPac/0 +-ProfileMainNetworkContext/NetworkContextConfigurationDataPacBrowserTest.DataPac/1 +-ProfileMainNetworkContext/NetworkContextConfigurationHttpPacBrowserTest.HttpPac/0 +-ProfileMainNetworkContext/NetworkContextConfigurationHttpPacBrowserTest.HttpPac/1 +-ProfileMainNetworkContext/NetworkContextConfigurationManagedProxySettingsBrowserTest.MaxConnectionsPerProxy/0 +-ProfileMainNetworkContext/NetworkContextConfigurationManagedProxySettingsBrowserTest.MaxConnectionsPerProxy/1 +-ProfileMainNetworkContext/NetworkContextConfigurationProxySettingsBrowserTest.MaxConnectionsPerProxy/0 +-ProfileMainNetworkContext/NetworkContextConfigurationProxySettingsBrowserTest.MaxConnectionsPerProxy/1 -ProfileMenuViewExtensionsTest.CloseIPH --ProfileNetworkContextServiceBrowsertest.DefaultCacheSize -ProfileNetworkContextServiceDiskCacheBrowsertest.DiskCacheLocation -ProfileWindowBrowserTest.OpenBrowserWindowForProfileWithSigninRequired -PromptForScanningModalDialogTest.InvokeUi_default -ProxyBrowserTest.BasicAuthWSConnect -ProxyBrowserTest.ProxyAuthHTTPS -ProxySettingsApiTest.ProxyEventsParseError --QRCodeGeneratorBubbleBrowserTest.Invoke* +-QRCodeGeneratorBubbleBrowserTest.InvokeUi_bottom_error +-QRCodeGeneratorBubbleBrowserTest.InvokeUi_default +-QRCodeGeneratorBubbleBrowserTest.InvokeUi_top_error -ReadLaterButtonBrowserTest.InvokeUi_default --RecordLanguagesMetricsBrowserTest.Content* --RecordLanguagesMetricsBrowserTest.Iframe* +-RecordLanguagesMetricsBrowserTest.ContentLanguageEmpty +-RecordLanguagesMetricsBrowserTest.ContentLanguageMatchTopMostAcceptLanguage +-RecordLanguagesMetricsBrowserTest.ContentLanguageMatchesAnyAcceptLanguage +-RecordLanguagesMetricsBrowserTest.IframeBothParentAndChildContentLanguageIsEmpty +-RecordLanguagesMetricsBrowserTest.IframeContentLanguageChildDifferFromParent +-RecordLanguagesMetricsBrowserTest.IframeParentAndChildContentLanguageAreStar +-RecordLanguagesMetricsBrowserTest.IframeParentAndChildContentLanguageHasSameValue +-RecordLanguagesMetricsBrowserTest.IframeParentContentLanguageIsEmptyAndChildContentLanguageHasValue +-RecordLanguagesMetricsBrowserTest.IframeParentContentLanuageIsStarAndChildContentLanguageHasValue +-RecordLanguagesMetricsBrowserTest.IframeParentHasConentLanguageAndChildContentLanguageIsEmpty -RedirectTest.ClientCancelled --ReferrerPolicyCapReferrerToOriginOnCrossOriginTest.Honors* +-ReferrerPolicyCapReferrerToOriginOnCrossOriginTest.HonorsMoreRestrictivePolicyOnNavigation +-ReferrerPolicyCapReferrerToOriginOnCrossOriginTest.HonorsMoreRestrictivePolicyOnRedirect -ReferrerPolicyCapReferrerToOriginOnCrossOriginTest.RespectsNoReferrerPref --ReferrerPolicyTest.Context* +-ReferrerPolicyTest.ContextMenuOrigin +-ReferrerPolicyTest.ContextMenuRedirect -ReferrerPolicyTest.History --ReferrerPolicyTest.Http* --ReferrerPolicyTest.Https* --ReferrerPolicyTest.Left* --ReferrerPolicyTest.Middle* +-ReferrerPolicyTest.HttpLeftClickHTTPRedirectToHTTPSameOrigin +-ReferrerPolicyTest.HttpLeftClickHTTPRedirectToHTTPStrictOrigin +-ReferrerPolicyTest.HttpLeftClickHTTPSRedirectToHTTPOriginWhenCrossOrigin +-ReferrerPolicyTest.HttpLeftClickHTTPSRedirectToHTTPStrictOrigin +-ReferrerPolicyTest.HttpLeftClickRedirectToHTTPOriginWhenCrossOrigin +-ReferrerPolicyTest.HttpLeftClickRedirectToHTTPSOriginWhenCrossOrigin +-ReferrerPolicyTest.HttpsContextMenuOrigin +-ReferrerPolicyTest.HttpsContextMenuRedirect +-ReferrerPolicyTest.HttpsLeftClickOrigin +-ReferrerPolicyTest.HttpsLeftClickRedirect +-ReferrerPolicyTest.HttpsMiddleClickOrigin +-ReferrerPolicyTest.HttpsMiddleClickRedirect +-ReferrerPolicyTest.HttpsMiddleClickTargetBlankOrigin +-ReferrerPolicyTest.HttpsMiddleClickTargetBlankRedirect +-ReferrerPolicyTest.HttpsTargetBlankOrigin +-ReferrerPolicyTest.HttpsTargetBlankRedirect +-ReferrerPolicyTest.LeftClickOrigin +-ReferrerPolicyTest.LeftClickRedirect +-ReferrerPolicyTest.MiddleClickOrigin +-ReferrerPolicyTest.MiddleClickRedirect +-ReferrerPolicyTest.MiddleClickTargetBlankOrigin +-ReferrerPolicyTest.MiddleClickTargetBlankRedirect -ReferrerPolicyTest.RequestTabletSite --ReferrerPolicyTest.Target* +-ReferrerPolicyTest.TargetBlankOrigin +-ReferrerPolicyTest.TargetBlankRedirect -RelaunchRecommendedBubbleViewDialogTest.InvokeUi_default -RelaunchRequiredDialogViewDialogTest.InvokeUi_default -RemoteCopyBrowserTest.ImageUrl --RemoteCopyBrowserTest.Text* +-RemoteCopyBrowserTest.Text +-RemoteCopyBrowserTest.TextThenImageUrl -RepostFormWarningTest.InvokeUi_TestRepostWarning --RestartTest.CookiesClearedOnExit --RestartTest.SessionCookies --RestoreOnStartupPolicyTestInstance/RestoreOnStartupPolicyTest.Run* --RssLinksFetcherTest.Fetch* --SafeBrowsingNetworkContext/NetworkContextConfigurationBrowserTest.CookiesEnabled/1 --SafeBrowsingNetworkContext/NetworkContextConfigurationDataPacBrowserTest.Data* --SafeBrowsingNetworkContext/NetworkContextConfigurationHttpPacBrowserTest.Http* --SafeBrowsingNetworkContext/NetworkContextConfigurationManagedProxySettingsBrowserTest.Max* +-RestoreOnStartupPolicyTestInstance/RestoreOnStartupPolicyTest.RunTest/0 +-RestoreOnStartupPolicyTestInstance/RestoreOnStartupPolicyTest.RunTest/2 +-RestoreOnStartupPolicyTestInstance/RestoreOnStartupPolicyTest.RunTest/3 +-RestoreOnStartupPolicyTestInstance/RestoreOnStartupPolicyTest.RunTest/4 +-RssLinksFetcherTest.FetchSuccessfulFromBody +-RssLinksFetcherTest.FetchSuccessfulFromHead +-SafeBrowsingNetworkContext/NetworkContextConfigurationDataPacBrowserTest.DataPac/0 +-SafeBrowsingNetworkContext/NetworkContextConfigurationDataPacBrowserTest.DataPac/1 +-SafeBrowsingNetworkContext/NetworkContextConfigurationHttpPacBrowserTest.HttpPac/0 +-SafeBrowsingNetworkContext/NetworkContextConfigurationHttpPacBrowserTest.HttpPac/1 +-SafeBrowsingNetworkContext/NetworkContextConfigurationManagedProxySettingsBrowserTest.MaxConnectionsPerProxy/0 +-SafeBrowsingNetworkContext/NetworkContextConfigurationManagedProxySettingsBrowserTest.MaxConnectionsPerProxy/1 -SafeBrowsingNetworkContext/NetworkContextConfigurationProxySettingsBrowserTest.MaxConnectionsPerProxy/0 -SafeBrowsingNetworkContext/NetworkContextConfigurationProxySettingsBrowserTest.MaxConnectionsPerProxy/1 --SafetyTipPageInfoBubbleViewDialogTest.Invoke* --SaveCardBubbleControllerImplTest.Invoke* +-SafetyTipPageInfoBubbleViewDialogTest.InvokeUi_BadReputation +-SafetyTipPageInfoBubbleViewDialogTest.InvokeUi_Lookalike +-SaveCardBubbleControllerImplTest.InvokeUi_Failure +-SaveCardBubbleControllerImplTest.InvokeUi_Local +-SaveCardBubbleControllerImplTest.InvokeUi_Manage +-SaveCardBubbleControllerImplTest.InvokeUi_Server +-SaveCardBubbleControllerImplTest.InvokeUi_Server_WithCardExpirationDateDropDownBox +-SaveCardBubbleControllerImplTest.InvokeUi_Server_WithCardholderNameTextfield -SaveCardBubbleViewsFullFormBrowserTest.AlertAccessibleEvent -SaveCardBubbleViewsFullFormBrowserTest.Local_ClickingNoThanksClosesBubble -SaveCardBubbleViewsFullFormBrowserTest.StrikeDatabase_Local_AddStrikeIfBubbleDeclined --SaveCardBubbleViewsFullFormBrowserTestForManageCard.Local* +-SaveCardBubbleViewsFullFormBrowserTestForManageCard.Local_ClickingIconShowsManageCards +-SaveCardBubbleViewsFullFormBrowserTestForManageCard.Local_ClickingSaveClosesBubble +-SaveCardBubbleViewsFullFormBrowserTestForManageCard.Local_ManageCardsDoneButtonClosesBubble -SaveCardBubbleViewsFullFormBrowserTestForStatusChip.ActivateFirstInactiveBubbleForAccessibility -SaveCardBubbleViewsFullFormBrowserTestForStatusChip.ClickingOnCreditCardIconInStatusChipReshowsBubble -SaveCardBubbleViewsFullFormBrowserTestForStatusChip.CreditCardIconShownInStatusChip --SaveCardBubbleViewsFullFormBrowserTestForStatusChip.Feedback* +-SaveCardBubbleViewsFullFormBrowserTestForStatusChip.Feedback_Failure +-SaveCardBubbleViewsFullFormBrowserTestForStatusChip.Feedback_Success -SaveCardBubbleViewsFullFormBrowserTestForStatusChip.IconAndBubbleVisibilityAfterTabSwitching -SaveCardBubbleViewsFullFormBrowserTestSettings.Local_ManageCardsButtonRedirects --SaveCardBubbleViewsFullFormBrowserTestWithAutofillUpstream.Local* --SaveCardBubbleViewsFullFormBrowserTestWithAutofillUpstream.Logic* --SaveCardBubbleViewsFullFormBrowserTestWithAutofillUpstream.Strike* --SaveCardBubbleViewsFullFormBrowserTestWithAutofillUpstream.Upload* +-SaveCardBubbleViewsFullFormBrowserTestWithAutofillUpstream.LocalCardHasNickname +-SaveCardBubbleViewsFullFormBrowserTestWithAutofillUpstream.LocalCardHasNoNickname +-SaveCardBubbleViewsFullFormBrowserTestWithAutofillUpstream.Logic_CanOfferToSaveDynamicForm +-SaveCardBubbleViewsFullFormBrowserTestWithAutofillUpstream.Logic_CanOfferToSaveEvenIfNothingFoundIfPaymentsAccepts +-SaveCardBubbleViewsFullFormBrowserTestWithAutofillUpstream.Logic_ShouldAttemptToOfferToSaveIfAddressNotFound +-SaveCardBubbleViewsFullFormBrowserTestWithAutofillUpstream.Logic_ShouldAttemptToOfferToSaveIfCvcNotFound +-SaveCardBubbleViewsFullFormBrowserTestWithAutofillUpstream.Logic_ShouldAttemptToOfferToSaveIfInvalidCvcFound +-SaveCardBubbleViewsFullFormBrowserTestWithAutofillUpstream.Logic_ShouldAttemptToOfferToSaveIfNameNotFound +-SaveCardBubbleViewsFullFormBrowserTestWithAutofillUpstream.Logic_ShouldAttemptToOfferToSaveIfNamesConflict +-SaveCardBubbleViewsFullFormBrowserTestWithAutofillUpstream.Logic_ShouldNotOfferToSaveIfNothingFoundAndPaymentsDeclines +-SaveCardBubbleViewsFullFormBrowserTestWithAutofillUpstream.Logic_ShouldOfferLocalSaveIfPaymentsDeclines +-SaveCardBubbleViewsFullFormBrowserTestWithAutofillUpstream.Logic_ShouldOfferLocalSaveIfPaymentsFails +-SaveCardBubbleViewsFullFormBrowserTestWithAutofillUpstream.StrikeDatabase_Upload_AddStrikeIfBubbleDeclined +-SaveCardBubbleViewsFullFormBrowserTestWithAutofillUpstream.StrikeDatabase_Upload_FullFlowTest +-SaveCardBubbleViewsFullFormBrowserTestWithAutofillUpstream.Upload_CardholderNameRequested_SubmittingChangedValueLogsEditedMetric +-SaveCardBubbleViewsFullFormBrowserTestWithAutofillUpstream.Upload_CardholderNameRequested_SubmittingPrefilledValueLogsUneditedMetric +-SaveCardBubbleViewsFullFormBrowserTestWithAutofillUpstream.Upload_ClickingCloseClosesBubble +-SaveCardBubbleViewsFullFormBrowserTestWithAutofillUpstream.Upload_ClickingNoThanksClosesBubble +-SaveCardBubbleViewsFullFormBrowserTestWithAutofillUpstream.Upload_ClickingSaveClosesBubble +-SaveCardBubbleViewsFullFormBrowserTestWithAutofillUpstream.Upload_DecliningUploadDoesNotLogUserAcceptedCardOriginUMA +-SaveCardBubbleViewsFullFormBrowserTestWithAutofillUpstream.Upload_EnteringCardholderNameAndClickingSaveClosesBubbleIfCardholderNameRequested +-SaveCardBubbleViewsFullFormBrowserTestWithAutofillUpstream.Upload_NotTransportMode_InfoTextIconDoesNotExist +-SaveCardBubbleViewsFullFormBrowserTestWithAutofillUpstream.Upload_RequestedCardholderNameTextfieldIsNotPrefilledWithFocusNameIfMissing +-SaveCardBubbleViewsFullFormBrowserTestWithAutofillUpstream.Upload_RequestedCardholderNameTextfieldIsPrefilledWithFocusName +-SaveCardBubbleViewsFullFormBrowserTestWithAutofillUpstream.Upload_SaveButtonIsDisabledIfExpiredExpirationDateAndExpirationDateRequested +-SaveCardBubbleViewsFullFormBrowserTestWithAutofillUpstream.Upload_SaveButtonIsDisabledIfNoCardholderNameAndCardholderNameRequested +-SaveCardBubbleViewsFullFormBrowserTestWithAutofillUpstream.Upload_ShouldNotRequestCardholderNameInHappyPath +-SaveCardBubbleViewsFullFormBrowserTestWithAutofillUpstream.Upload_ShouldNotRequestExpirationDateInHappyPath +-SaveCardBubbleViewsFullFormBrowserTestWithAutofillUpstream.Upload_SubmittingFormWithExpirationDateMonthAndCurrentYear +-SaveCardBubbleViewsFullFormBrowserTestWithAutofillUpstream.Upload_SubmittingFormWithExpirationDateMonthAndWithYearIsOutOfRange +-SaveCardBubbleViewsFullFormBrowserTestWithAutofillUpstream.Upload_SubmittingFormWithExpiredExpirationDateRequestsExpirationDate +-SaveCardBubbleViewsFullFormBrowserTestWithAutofillUpstream.Upload_SubmittingFormWithMissingExpirationDateMonthAndWithValidYear +-SaveCardBubbleViewsFullFormBrowserTestWithAutofillUpstream.Upload_SubmittingFormWithMissingExpirationDateRequestsExpirationDate +-SaveCardBubbleViewsFullFormBrowserTestWithAutofillUpstream.Upload_SubmittingFormWithMissingExpirationDateYearAndWithMonth +-SaveCardBubbleViewsFullFormBrowserTestWithAutofillUpstream.Upload_SubmittingFormWithMissingNamesRequestsCardholderNameIfExpOn -SaveCardBubbleViewsSyncTransportFullFormBrowserTest.Local_TransportMode_InfoTextIconDoesNotExist --SaveCardBubbleViewsSyncTransportFullFormBrowserTest.Upload* +-SaveCardBubbleViewsSyncTransportFullFormBrowserTest.Upload_TransportMode_ClickingSaveClosesBubble +-SaveCardBubbleViewsSyncTransportFullFormBrowserTest.Upload_TransportMode_InfoTextIconExists +-SaveCardBubbleViewsSyncTransportFullFormBrowserTest.Upload_TransportMode_RequestedCardholderNameTextfieldIsPrefilledWithFocusName -SavePackageDeepScanningBrowserTest.Allowed -SavePackageDeepScanningBrowserTest.Blocked -SavePackageDeepScanningBrowserTest.DiscardAfterWarning @@ -452,40 +1093,105 @@ -SavePackageDeepScanningBrowserTest.OpenNow -SaveUPIBubbleControllerImplTest.InvokeUi -SaveUpdateAddressProfileBubbleControllerImplTest.CloseTabWhileBubbleIsOpen --SaveUpdateAddressProfileBubbleControllerImplTest.Invoke* +-SaveUpdateAddressProfileBubbleControllerImplTest.InvokeUi_Save +-SaveUpdateAddressProfileBubbleControllerImplTest.InvokeUi_SaveCloseThenReopen +-SaveUpdateAddressProfileBubbleControllerImplTest.InvokeUi_Update -ScriptingAPITest.NestedWebContents -SearchByImageBrowserTest.ImageSearchWithValidImage -SearchByImageBrowserTest.LensImageSearchWithValidImage -SecurePaymentConfirmationDialogViewTest.InvokeUi_default -SendTabToSelfBubbleTest.InvokeUi_default --ServiceWorker/ExtensionApiCaptureTest.Capture* +-ServiceWorker/ExtensionApiCaptureTest.CaptureVisibleDisabled/0 +-ServiceWorker/ExtensionApiCaptureTest.CaptureVisibleFile/0 +-ServiceWorker/ExtensionApiCaptureTest.CaptureVisibleTabJpeg/0 +-ServiceWorker/ExtensionApiCaptureTest.CaptureVisibleTabPng/0 -ServiceWorker/RuntimeApiTest.GetPlatformInfo/0 -ServiceWorker/WebNavigationApiTestWithContextType.RequestOpenTab/0 --ServiceWorker/WebNavigationApiTestWithContextType.Target* +-ServiceWorker/WebNavigationApiTestWithContextType.TargetBlank/0 +-ServiceWorker/WebNavigationApiTestWithContextType.TargetBlankIncognito/0 -ServiceWorkerBasedBackgroundTest.WindowsBasic -ServiceWorkerTest.MimeHandlerView --SessionCrashedBubbleViewTest.Invoke* +-SessionCrashedBubbleViewTest.InvokeUi_SessionCrashedBubble +-SessionCrashedBubbleViewTest.InvokeUi_SessionCrashedBubbleOfferUma -SessionRestoreTest.NormalAndPopup -SessionRestoreTest.RestoreAfterClosingTabbedBrowserWithAppAndLaunching --SettingsA11yEditDictionaryV3.Edit* --SettingsOverriddenDialogViewBrowserTest.Invoke* --SharedClipboardBrowserTest.Context* +-SettingsA11yEditDictionaryV3.EditDictionary_accesskeys +-SettingsA11yEditDictionaryV3.EditDictionary_area_alt +-SettingsA11yEditDictionaryV3.EditDictionary_aria_allowed_attr +-SettingsA11yEditDictionaryV3.EditDictionary_aria_hidden_body +-SettingsA11yEditDictionaryV3.EditDictionary_aria_required_attr +-SettingsA11yEditDictionaryV3.EditDictionary_aria_required_children +-SettingsA11yEditDictionaryV3.EditDictionary_aria_roles +-SettingsA11yEditDictionaryV3.EditDictionary_aria_valid_attr +-SettingsA11yEditDictionaryV3.EditDictionary_aria_valid_attr_value +-SettingsA11yEditDictionaryV3.EditDictionary_blink +-SettingsA11yEditDictionaryV3.EditDictionary_button_name +-SettingsA11yEditDictionaryV3.EditDictionary_bypass +-SettingsA11yEditDictionaryV3.EditDictionary_checkboxgroup +-SettingsA11yEditDictionaryV3.EditDictionary_definition_list +-SettingsA11yEditDictionaryV3.EditDictionary_dlitem +-SettingsA11yEditDictionaryV3.EditDictionary_document_title +-SettingsA11yEditDictionaryV3.EditDictionary_duplicate_id +-SettingsA11yEditDictionaryV3.EditDictionary_empty_heading +-SettingsA11yEditDictionaryV3.EditDictionary_frame_title +-SettingsA11yEditDictionaryV3.EditDictionary_frame_title_unique +-SettingsA11yEditDictionaryV3.EditDictionary_heading_order +-SettingsA11yEditDictionaryV3.EditDictionary_hidden_content +-SettingsA11yEditDictionaryV3.EditDictionary_html_lang_valid +-SettingsA11yEditDictionaryV3.EditDictionary_image_alt +-SettingsA11yEditDictionaryV3.EditDictionary_image_redundant_alt +-SettingsA11yEditDictionaryV3.EditDictionary_input_image_alt +-SettingsA11yEditDictionaryV3.EditDictionary_label +-SettingsA11yEditDictionaryV3.EditDictionary_label_title_only +-SettingsA11yEditDictionaryV3.EditDictionary_layout_table +-SettingsA11yEditDictionaryV3.EditDictionary_link_name +-SettingsA11yEditDictionaryV3.EditDictionary_listitem +-SettingsA11yEditDictionaryV3.EditDictionary_marquee +-SettingsA11yEditDictionaryV3.EditDictionary_meta_refresh +-SettingsA11yEditDictionaryV3.EditDictionary_meta_viewport +-SettingsA11yEditDictionaryV3.EditDictionary_meta_viewport_large +-SettingsA11yEditDictionaryV3.EditDictionary_object_alt +-SettingsA11yEditDictionaryV3.EditDictionary_p_as_heading +-SettingsA11yEditDictionaryV3.EditDictionary_radiogroup +-SettingsA11yEditDictionaryV3.EditDictionary_scope_attr_valid +-SettingsA11yEditDictionaryV3.EditDictionary_server_side_image_map +-SettingsA11yEditDictionaryV3.EditDictionary_tabindex +-SettingsA11yEditDictionaryV3.EditDictionary_table_duplicate_name +-SettingsA11yEditDictionaryV3.EditDictionary_td_has_header +-SettingsA11yEditDictionaryV3.EditDictionary_td_headers_attr +-SettingsA11yEditDictionaryV3.EditDictionary_th_has_data_cells +-SettingsA11yEditDictionaryV3.EditDictionary_valid_lang +-SettingsA11yEditDictionaryV3.EditDictionary_video_caption +-SettingsA11yEditDictionaryV3.EditDictionary_video_description +-SettingsOverriddenDialogViewBrowserTest.InvokeUi_NtpOverriddenDialog_BackToDefault +-SettingsOverriddenDialogViewBrowserTest.InvokeUi_NtpOverriddenDialog_Generic +-SettingsOverriddenDialogViewBrowserTest.InvokeUi_SimpleDialogWithIcon +-SharedClipboardBrowserTest.ContextMenu_MultipleDevices +-SharedClipboardBrowserTest.ContextMenu_SingleDevice -SharedClipboardUIFeatureDisabledBrowserTest.ContextMenu_UIFeatureDisabled --SigninInterceptFirstRunExperienceDialogBrowserTest.Accept* --SigninInterceptFirstRunExperienceDialogBrowserTest.Forced* +-SigninInterceptFirstRunExperienceDialogBrowserTest.AcceptSync +-SigninInterceptFirstRunExperienceDialogBrowserTest.AcceptSync_ExtensionTheme +-SigninInterceptFirstRunExperienceDialogBrowserTest.AcceptSync_SyncPassphrase +-SigninInterceptFirstRunExperienceDialogBrowserTest.ForcedIntercept +-SigninInterceptFirstRunExperienceDialogBrowserTest.ForcedIntercept_ProfileColorPolicy -SigninInterceptFirstRunExperienceDialogBrowserTest.ProfileColorPolicy --SigninInterceptFirstRunExperienceDialogBrowserTest.Sync* +-SigninInterceptFirstRunExperienceDialogBrowserTest.SyncDisabled +-SigninInterceptFirstRunExperienceDialogBrowserTest.SyncSettings -SigninViewControllerDelegateViewsBrowserTest.InvokeUi_SyncConfirmation --SigninViewControllerDelegateViewsBrowserTest.Resize* +-SigninViewControllerDelegateViewsBrowserTest.ResizeAfterDisplay +-SigninViewControllerDelegateViewsBrowserTest.ResizeBeforeDisplay -SpellcheckServiceBrowserTest.DeleteCorruptedBDICT -StartupMetricsTest.ReportsValues -SubAppsServiceImplBrowserTest.EndToEndAdd -SyncAwareCounterTest.AutofillCounter -SyncAwareCounterTest.HistoryCounter -SyncAwareCounterTest.PasswordCounter --SystemNetworkContext/NetworkContextConfigurationDataPacBrowserTest.Data* --SystemNetworkContext/NetworkContextConfigurationHttpPacBrowserTest.Http* --SystemNetworkContext/NetworkContextConfigurationManagedProxySettingsBrowserTest.Max* +-SystemNetworkContext/NetworkContextConfigurationDataPacBrowserTest.DataPac/0 +-SystemNetworkContext/NetworkContextConfigurationDataPacBrowserTest.DataPac/1 +-SystemNetworkContext/NetworkContextConfigurationHttpPacBrowserTest.HttpPac/0 +-SystemNetworkContext/NetworkContextConfigurationHttpPacBrowserTest.HttpPac/1 +-SystemNetworkContext/NetworkContextConfigurationManagedProxySettingsBrowserTest.MaxConnectionsPerProxy/0 +-SystemNetworkContext/NetworkContextConfigurationManagedProxySettingsBrowserTest.MaxConnectionsPerProxy/1 -SystemNetworkContext/NetworkContextConfigurationProxySettingsBrowserTest.MaxConnectionsPerProxy/0 -TabCaptureApiTest.ActiveTabPermission -TabCaptureApiTest.ApiTests @@ -495,70 +1201,114 @@ -TabCaptureApiTest.TabIndicator -TabGroupEditorBubbleViewDialogBrowserTest.InvokeUi_default -TabHoverCardBubbleViewBrowserTest.InvokeUi_tab_hover_card --TabHoverCardBubbleViewBrowserTest.Widget* +-TabHoverCardBubbleViewBrowserTest.WidgetVisibleOnKeyPressAfterTabFocus +-TabHoverCardBubbleViewBrowserTest.WidgetVisibleOnTabCloseButtonFocusAfterTabFocus +-TabHoverCardBubbleViewBrowserTest.WidgetVisibleOnTabFocus +-TabHoverCardBubbleViewBrowserTest.WidgetVisibleOnTabFocusFromKeyboardAccelerator -TabSearchButtonBrowserUITest.InvokeUi_default -TabStatsTrackerBrowserTest.TabStatsObserverBasics -TaskManagerBrowserTest.IdleWakeups -TaskManagerViewTest.RestoreBounds --ThirdPartyMetricsObserverBrowserTest.OneThirdPartyFrame_OneTimingRecorded -ThirdPartyMetricsObserverBrowserTest.ThreeThirdPartyFrames_ThreeTimingsRecorded -TipMarqueeViewBrowserTest.TipStartsExpanded --TranslateBubbleVisualTest.Invoke* --TrustSafetySentimentServiceBrowserTest.Page* +-TranslateBubbleVisualTest.InvokeUi_advanced +-TranslateBubbleVisualTest.InvokeUi_error +-TrustSafetySentimentServiceBrowserTest.PageInfoTriggersSurvey_Interaction +-TrustSafetySentimentServiceBrowserTest.PageInfoTriggersSurvey_NoInteraction -UkmBrowserTest.ConsentAddedButNoSyncCheck -UkmBrowserTest.HistoryDeleteCheck -UkmBrowserTest.IncognitoPlusRegularCheck -UkmBrowserTest.LogProtoData --UkmBrowserTest.Metrics* --UkmBrowserTest.Multi* +-UkmBrowserTest.MetricsConsentCheck +-UkmBrowserTest.MetricsReportingCheck +-UkmBrowserTest.MultiDisableExtensionsSyncCheck +-UkmBrowserTest.MultiSyncSignoutCheck -UkmBrowserTest.NetworkProviderPopulatesSystemProfile -UkmBrowserTest.OpenNonSyncCheck --UkmBrowserTest.Regular* +-UkmBrowserTest.RegularPlusGuestCheck +-UkmBrowserTest.RegularPlusIncognitoCheck -UkmBrowserTest.ServiceListenerInitFailedCheck -UkmBrowserTest.SingleDisableExtensionsSyncCheck -UkmBrowserTestWithSyncTransport.NotEnabledForSecondaryAccountSync --UkmConsentParamBrowserTests/UkmConsentParamBrowserTest.Group* +-UkmConsentParamBrowserTests/UkmConsentParamBrowserTest.GroupPolicyConsentCheck/0 +-UkmConsentParamBrowserTests/UkmConsentParamBrowserTest.GroupPolicyConsentCheck/1 -UnloadTest.BrowserCloseTabWhenOtherTabHasListener -UpdateRecommendedDialogTest.InvokeUi_default --UsbChooserBrowserTest.Invoke* +-UsbChooserBrowserTest.InvokeUi_NoDevicesBubble +-UsbChooserBrowserTest.InvokeUi_NoDevicesModal +-UsbChooserBrowserTest.InvokeUi_WithDevicesBubble +-UsbChooserBrowserTest.InvokeUi_WithDevicesModal -UsbInternalsTest.WebUIValueRenderTest -VariationsSafeModeEndToEndBrowserTest.ExtendedSafeModeEndToEnd -VideoPictureInPictureWindowControllerBrowserTest.ControlsVisibility --ViewSourceTest.HttpPostInMainframe -VirtualCardSelectionDialogBrowserTest.InvokeUi_OneCard -WebAppBrowserTest.InScopePWAPopupsHaveCorrectSize -WebAppBrowserTest.OffScopePWAPopupsHaveCorrectSize -WebAppBrowserTest.PWASizeIsCorrectlyRestored -WebAppDeclarativeLinkCapturingBrowserTest.InAppScopeNavigationIgnored -WebAppFileHandlingBrowserTest_FeatureSwitchesOn.OsIntegrationIsAdded --WebAppFrameToolbarBrowserTest_WindowControlsOverlay.DraggableRegionNotResetByFencedFrameNavigation --WebAppFrameToolbarBrowserTest_WindowControlsOverlay.PopupFromWcoAppToItself --WebAppIdentityUpdateConfirmationViewBrowserTest.CloseAppIdUpdateDialogOnUninstall --WebAppIdentityUpdateConfirmationViewBrowserTest.InvokeUi_default --WebAppIntegrationBrowserTest.Launch* --WebAppIntegrationBrowserTest.Manifest* --WebAppIntegrationBrowserTest.OpenInChrome --WebAppIntegrationBrowserTest.Web* --WebAppProtocolHandlerIntentPickerDialogInteractiveBrowserTest.InvokeUi_CloseDialog -WebAppUninstallDialogViewInteractiveBrowserTest.InvokeUi_ManualUninstall --WebAudioBrowserTest.VerifyDynamicsCompressorFingerprint --WebViewAccessibilityTest.FocusAccessibility --WebViewDPITest.Shim* --WebViewScrollBubbling/WebViewGuestScrollTest.Scroll* --WebViewScrollBubbling/WebViewGuestScrollTest.TestGuestWheelScrollsBubble/0 --WebViewScrollBubbling/WebViewGuestScrollTouchTest.Test* --WebViewSizeTest.AutoSize --WebViewSizeTest.Shim* --WebViewTest.AudibilityStatePropagates --WebViewTest.AudioStateJavascriptAPI --WebViewTest.DownloadCookieIsolation_CrossSession --WebViewTest.Geolocation* --WebViewTest.NoPrerenderer --WebViewTest.Permissions* --WebViewTest.ReloadAfterCrash --WebViewTest.TouchpadPinchSyntheticWheelEvents --WebViewWithZoomForDSFTest.Shim* --WebauthnDialogBrowserTest.Invoke* +-WebViewScrollBubbling/WebViewGuestScrollTest.ScrollLatchingPreservedInGuests/SiteIsolationForGuestsDisabled_ScrollDisabled +-WebViewScrollBubbling/WebViewGuestScrollTest.ScrollLatchingPreservedInGuests/SiteIsolationForGuestsDisabled_ScrollEnabled +-WebViewScrollBubbling/WebViewGuestScrollTest.ScrollLatchingPreservedInGuests/SiteIsolationForGuestsEnabled_ScrollDisabled +-WebViewScrollBubbling/WebViewGuestScrollTest.ScrollLatchingPreservedInGuests/SiteIsolationForGuestsEnabled_ScrollEnabled +-WebViewScrollBubbling/WebViewGuestScrollTest.TestGuestWheelScrollsBubble/SiteIsolationForGuestsDisabled_ScrollDisabled +-WebViewScrollBubbling/WebViewGuestScrollTest.TestGuestWheelScrollsBubble/SiteIsolationForGuestsEnabled_ScrollDisabled +-WebViewScrollBubbling/WebViewGuestScrollTest.TestGuestWheelScrollsBubble/SiteIsolationForGuestsEnabled_ScrollEnabled +-WebViewScrollBubbling/WebViewGuestScrollTouchTest.TestGuestGestureScrollsBubble/SiteIsolationForGuestsDisabled_ScrollDisabled +-WebViewScrollBubbling/WebViewGuestScrollTouchTest.TestGuestGestureScrollsBubble/SiteIsolationForGuestsDisabled_ScrollEnabled +-WebViewScrollBubbling/WebViewGuestScrollTouchTest.TestGuestGestureScrollsBubble/SiteIsolationForGuestsEnabled_ScrollEnabled +-WebViewTests/WebViewAccessibilityTest.FocusAccessibility/SiteIsolationForGuestsDisabled +-WebViewTests/WebViewAccessibilityTest.FocusAccessibility/SiteIsolationForGuestsEnabled +-WebViewTests/WebViewDPITest.Shim_TestAutosizeBeforeNavigation/SiteIsolationForGuestsDisabled +-WebViewTests/WebViewDPITest.Shim_TestAutosizeBeforeNavigation/SiteIsolationForGuestsEnabled +-WebViewTests/WebViewDPITest.Shim_TestAutosizeHeight/SiteIsolationForGuestsDisabled +-WebViewTests/WebViewDPITest.Shim_TestAutosizeHeight/SiteIsolationForGuestsEnabled +-WebViewTests/WebViewDPITest.Shim_TestAutosizeRemoveAttributes/SiteIsolationForGuestsDisabled +-WebViewTests/WebViewDPITest.Shim_TestAutosizeRemoveAttributes/SiteIsolationForGuestsEnabled +-WebViewTests/WebViewSizeTest.AutoSize/SiteIsolationForGuestsDisabled +-WebViewTests/WebViewSizeTest.AutoSize/SiteIsolationForGuestsEnabled +-WebViewTests/WebViewSizeTest.Shim_TestAutosizeAfterNavigation/SiteIsolationForGuestsDisabled +-WebViewTests/WebViewSizeTest.Shim_TestAutosizeAfterNavigation/SiteIsolationForGuestsEnabled +-WebViewTests/WebViewSizeTest.Shim_TestAutosizeBeforeNavigation/SiteIsolationForGuestsDisabled +-WebViewTests/WebViewSizeTest.Shim_TestAutosizeBeforeNavigation/SiteIsolationForGuestsEnabled +-WebViewTests/WebViewSizeTest.Shim_TestAutosizeHeight/SiteIsolationForGuestsDisabled +-WebViewTests/WebViewSizeTest.Shim_TestAutosizeRemoveAttributes/SiteIsolationForGuestsDisabled +-WebViewTests/WebViewSizeTest.Shim_TestAutosizeRemoveAttributes/SiteIsolationForGuestsEnabled +-WebViewTests/WebViewSizeTest.Shim_TestResizeEvents/SiteIsolationForGuestsDisabled +-WebViewTests/WebViewSizeTest.Shim_TestResizeEvents/SiteIsolationForGuestsEnabled +-WebViewTests/WebViewSizeTest.Shim_TestResizeWebviewResizesContent/SiteIsolationForGuestsDisabled +-WebViewTests/WebViewSizeTest.Shim_TestResizeWebviewResizesContent/SiteIsolationForGuestsEnabled +-WebViewTests/WebViewSizeTest.Shim_TestResizeWebviewWithDisplayNoneResizesContent/SiteIsolationForGuestsDisabled +-WebViewTests/WebViewTest.AudibilityStatePropagates/SiteIsolationForGuestsDisabled +-WebViewTests/WebViewTest.AudibilityStatePropagates/SiteIsolationForGuestsEnabled +-WebViewTests/WebViewTest.AudioStateJavascriptAPI/SiteIsolationForGuestsDisabled +-WebViewTests/WebViewTest.AudioStateJavascriptAPI/SiteIsolationForGuestsEnabled +-WebViewTests/WebViewTest.DownloadCookieIsolation_CrossSession/SiteIsolationForGuestsDisabled +-WebViewTests/WebViewTest.DownloadCookieIsolation_CrossSession/SiteIsolationForGuestsEnabled +-WebViewTests/WebViewTest.GeolocationAPIEmbedderHasAccessAllow/SiteIsolationForGuestsDisabled +-WebViewTests/WebViewTest.GeolocationAPIEmbedderHasAccessAllow/SiteIsolationForGuestsEnabled +-WebViewTests/WebViewTest.GeolocationAPIEmbedderHasAccessDeny/SiteIsolationForGuestsDisabled +-WebViewTests/WebViewTest.GeolocationAPIEmbedderHasAccessDeny/SiteIsolationForGuestsEnabled +-WebViewTests/WebViewTest.GeolocationAPIEmbedderHasAccessMultipleBridgeIdAllow/SiteIsolationForGuestsDisabled +-WebViewTests/WebViewTest.GeolocationAPIEmbedderHasAccessMultipleBridgeIdAllow/SiteIsolationForGuestsEnabled +-WebViewTests/WebViewTest.GeolocationAPIEmbedderHasNoAccessAllow/SiteIsolationForGuestsDisabled +-WebViewTests/WebViewTest.GeolocationAPIEmbedderHasNoAccessDeny/SiteIsolationForGuestsDisabled +-WebViewTests/WebViewTest.NoPrerenderer/SiteIsolationForGuestsEnabled +-WebViewTests/WebViewTest.PermissionsAPIEmbedderHasAccessAllowGeolocation/SiteIsolationForGuestsDisabled +-WebViewTests/WebViewTest.PermissionsAPIEmbedderHasAccessAllowGeolocation/SiteIsolationForGuestsEnabled +-WebViewTests/WebViewTest.PermissionsAPIEmbedderHasAccessDenyGeolocation/SiteIsolationForGuestsDisabled +-WebViewTests/WebViewTest.PermissionsAPIEmbedderHasAccessDenyGeolocation/SiteIsolationForGuestsEnabled +-WebViewTests/WebViewTest.PermissionsAPIEmbedderHasNoAccessAllowGeolocation/SiteIsolationForGuestsDisabled +-WebViewTests/WebViewTest.PermissionsAPIEmbedderHasNoAccessAllowGeolocation/SiteIsolationForGuestsEnabled +-WebViewTests/WebViewTest.PermissionsAPIEmbedderHasNoAccessDenyGeolocation/SiteIsolationForGuestsDisabled +-WebViewTests/WebViewTest.PermissionsAPIEmbedderHasNoAccessDenyGeolocation/SiteIsolationForGuestsEnabled +-WebViewTests/WebViewTest.ReloadAfterCrash/SiteIsolationForGuestsDisabled +-WebViewTests/WebViewTest.ReloadAfterCrash/SiteIsolationForGuestsEnabled +-WebViewTests/WebViewTest.TouchpadPinchSyntheticWheelEvents/SiteIsolationForGuestsDisabled +-WebViewTests/WebViewTest.TouchpadPinchSyntheticWheelEvents/SiteIsolationForGuestsEnabled +-WebauthnDialogBrowserTest.InvokeUi_Offer +-WebauthnDialogBrowserTest.InvokeUi_Verify -WindowOpenApiTest.WindowOpenSized -WorkerDevToolsTest.PauseInSharedWorkerInitialization -ZoomBubbleDialogTest.InvokeUi_default @@ -573,13 +1323,18 @@ -PdfPluginContextMenuBrowserTest.FullPagePdfHasPageItems -PdfPluginContextMenuBrowserTest.IframedPdfHasNoPageItems -PdfPluginContextMenuBrowserTest.Rotate --PdfToPwgRasterBrowserTest.Test* +-PdfToPwgRasterBrowserTest.TestSuccessColor +-PdfToPwgRasterBrowserTest.TestSuccessLongDuplex +-PdfToPwgRasterBrowserTest.TestSuccessMono -PortalBrowserTest.PdfViewerLoadsInPortal --PrintBackendPrintBrowserTestService.Start* +-PrintBackendPrintBrowserTestService.StartPrinting +-PrintBackendPrintBrowserTestService.StartPrintingAccessDenied +-PrintBackendPrintBrowserTestService.StartPrintingRepeatedAccessDenied -PrintBrowserTest.LazyLoadedIframeFetched -PrintBrowserTest.LazyLoadedImagesFetched -PrintBrowserTest.LegacyLayoutEngineFallback -PrintBrowserTest.MultipagePrint +-PrintBrowserTest.NoScrolling -PrintBrowserTest.NoScrollingVerticalRl -PrintBrowserTest.PDFPluginNotKeyboardFocusable -PrintBrowserTest.PrintNup @@ -590,9 +1345,14 @@ -PrintPreviewDestinationDialogTest.PrinterList -PrintPreviewDestinationDialogTest.UserAccounts -SitePerProcessPrintBrowserTest.BasicPrint +-SitePerProcessPrintBrowserTest.MultipagePrint -SitePerProcessPrintBrowserTest.PrintNup -SitePerProcessPrintBrowserTest.SubframeUnavailableBeforePrint -SitePerProcessPrintBrowserTest.SubframeUnavailableDuringPrint -SitePerProcessPrintExtensionBrowserTest.PrintOptionPage --WebViewPdfTest.ContextMenuNavigationInMimeHandlerView --WebViewPdfTest.Shim_TestDialogInPdf +-WebViewTests/WebViewPdfTest.ContextMenuNavigationInMimeHandlerView/SiteIsolationForGuestsDisabled +-WebViewTests/WebViewPdfTest.ContextMenuNavigationInMimeHandlerView/SiteIsolationForGuestsEnabled +-WebViewTests/WebViewPdfTest.NestedGuestContainerBounds/SiteIsolationForGuestsDisabled +-WebViewTests/WebViewPdfTest.NestedGuestContainerBounds/SiteIsolationForGuestsEnabled +-WebViewTests/WebViewPdfTest.Shim_TestDialogInPdf/SiteIsolationForGuestsDisabled +-WebViewTests/WebViewPdfTest.Shim_TestDialogInPdf/SiteIsolationForGuestsEnabled
diff --git a/testing/buildbot/filters/fuchsia.content_browsertests.filter b/testing/buildbot/filters/fuchsia.content_browsertests.filter index efba574..7db43d99 100644 --- a/testing/buildbot/filters/fuchsia.content_browsertests.filter +++ b/testing/buildbot/filters/fuchsia.content_browsertests.filter
@@ -14,16 +14,6 @@ -DohHttpsProtocolUpgradeBrowserTest.HttpsProtocolUpgrade -DohHttpsProtocolUpgradeBrowserTest.NoProtocolUpgrade -MojoSandboxTest.NotIsProcessSandboxed --NetworkServiceDataMigrationBrowserTest.LegacyDataDir --NetworkServiceDataMigrationBrowserTest.MigrateThenNoMigrate --NetworkServiceDataMigrationBrowserTest.MigratedPreviouslyAndMigrateAgain --NetworkServiceDataMigrationBrowserTest.NewDataDirWithMigrationTest --NetworkServiceDataMigrationBrowserTest.NewDataDirWithNoMigrationTest --OutOfProcess/NetworkServiceDataMigrationBrowserTestWithFailures.MigrateDataTest/0 --OutOfProcess/NetworkServiceDataMigrationBrowserTestWithFailures.MigrateDataTest/1 --OutOfProcess/NetworkServiceDataMigrationBrowserTestWithFailures.MigrateDataTest/2 --OutOfProcess/NetworkServiceDataMigrationBrowserTestWithFailures.MigrateDataTest/3 --OutOfProcess/NetworkServiceDataMigrationBrowserTestWithFailures.MigrateDataTest/4 -PrerenderBrowserTest.AbandonIfRendererProcessCrashes -SitePerProcessDelegatedInkBrowserTest.MetadataAndPointGoThroughOOPIF -SnapshotBrowserTest.AsyncMultiWindowTest
diff --git a/testing/buildbot/test_suites.pyl b/testing/buildbot/test_suites.pyl index ce07072..5857405 100644 --- a/testing/buildbot/test_suites.pyl +++ b/testing/buildbot/test_suites.pyl
@@ -2728,6 +2728,7 @@ 'webgpu_cts': { 'args': [ '--extra-browser-args=--force_high_performance_gpu', + '--retry-limit=3', ], 'linux_args': [ '--extra-browser-args=--enable-features=UseSkiaRenderer,Vulkan', @@ -2750,6 +2751,7 @@ '--extra-browser-args=--force_high_performance_gpu', '--is-backend-validation', '--override-timeout=30', + '--retry-limit=3', ], 'linux_args': [ '--extra-browser-args=--enable-features=UseSkiaRenderer,Vulkan', @@ -2773,6 +2775,7 @@ '--extra-browser-args=--force_high_performance_gpu', '--is-backend-validation', '--override-timeout=30', + '--retry-limit=3', ], 'linux_args': [ '--extra-browser-args=--enable-features=UseSkiaRenderer,Vulkan',
diff --git a/testing/variations/fieldtrial_testing_config.json b/testing/variations/fieldtrial_testing_config.json index 9fc9a0af..77077f2 100644 --- a/testing/variations/fieldtrial_testing_config.json +++ b/testing/variations/fieldtrial_testing_config.json
@@ -4986,6 +4986,50 @@ ] } ], + "PageEntitiesModelBypassFilters": [ + { + "platforms": [ + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled_20220330", + "enable_features": [ + "PageEntitiesModelBypassFilters" + ] + } + ] + }, + { + "platforms": [ + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "PageContentAnnotationsWithVisibility_JourneysWithOmniboxAction_20211202", + "params": { + "annotate_title_instead_of_page_content": "true", + "bag_of_words_entities": "false", + "content_clustering_enabled": "false", + "extract_related_searches": "true", + "min_page_topics_model_version_for_visibility": "2110051800", + "models_to_execute_v2": "OPTIMIZATION_TARGET_PAGE_TOPICS:en", + "write_to_history_service": "true" + }, + "enable_features": [ + "PageContentAnnotations", + "PageEntitiesPageContentAnnotations" + ] + } + ] + } + ], "PageInfoAboutThisSite": [ { "platforms": [
diff --git a/third_party/blink/common/web_preferences/web_preferences.cc b/third_party/blink/common/web_preferences/web_preferences.cc index effc186..a422f507 100644 --- a/third_party/blink/common/web_preferences/web_preferences.cc +++ b/third_party/blink/common/web_preferences/web_preferences.cc
@@ -69,9 +69,6 @@ webgl1_enabled(true), webgl2_enabled(true), pepper_3d_enabled(false), - flash_3d_enabled(true), - flash_stage3d_enabled(false), - flash_stage3d_baseline_enabled(false), privileged_webgl_extensions_enabled(false), webgl_errors_to_console_enabled(true), hide_scrollbars(false),
diff --git a/third_party/blink/common/web_preferences/web_preferences_mojom_traits.cc b/third_party/blink/common/web_preferences/web_preferences_mojom_traits.cc index a62792e..e37be09 100644 --- a/third_party/blink/common/web_preferences/web_preferences_mojom_traits.cc +++ b/third_party/blink/common/web_preferences/web_preferences_mojom_traits.cc
@@ -86,9 +86,6 @@ out->webgl1_enabled = data.webgl1_enabled(); out->webgl2_enabled = data.webgl2_enabled(); out->pepper_3d_enabled = data.pepper_3d_enabled(); - out->flash_3d_enabled = data.flash_3d_enabled(); - out->flash_stage3d_enabled = data.flash_stage3d_enabled(); - out->flash_stage3d_baseline_enabled = data.flash_stage3d_baseline_enabled(); out->privileged_webgl_extensions_enabled = data.privileged_webgl_extensions_enabled(); out->webgl_errors_to_console_enabled = data.webgl_errors_to_console_enabled();
diff --git a/third_party/blink/public/common/interest_group/interest_group.h b/third_party/blink/public/common/interest_group/interest_group.h index a87883a..049470b 100644 --- a/third_party/blink/public/common/interest_group/interest_group.h +++ b/third_party/blink/public/common/interest_group/interest_group.h
@@ -90,6 +90,32 @@ absl::optional<std::vector<std::string>> trusted_bidding_signals_keys; absl::optional<std::string> user_bidding_signals; absl::optional<std::vector<InterestGroup::Ad>> ads, ad_components; + + static_assert(__LINE__ == 94, R"( +If modifying InterestGroup fields, make sure to also modify: + +* IsValid(), EstimateSize(), and IsEqualForTesting() in this class +* auction_ad_interest_group.idl +* navigator_auction.cc +* interest_group_types.mojom +* validate_blink_interest_group.cc +* validate_blink_interest_group_test.cc +* interest_group_mojom_traits[.h/.cc/.test]. +* bidder_worklet.cc (to pass the InterestGroup to generateBid()). + +In interest_group_storage.cc, add the new field and any respective indices, +and also add a new database version and migration, and migration test. + +If the new field is to be updatable via dailyUpdateUrl, also update *all* of +these: + +* InterestGroupStorage::DoStoreInterestGroupUpdate() +* ParseUpdateJson in interest_group_update_manager.cc +* Update AdAuctionServiceImplTest.UpdateAllUpdatableFields + +See crrev.com/c/3517534 for an example (adding the priority field), and also +remember to update bidder_worklet.cc too. +)"); }; } // namespace blink
diff --git a/third_party/blink/public/common/web_preferences/web_preferences.h b/third_party/blink/public/common/web_preferences/web_preferences.h index 27d0bcc0..d682f3b 100644 --- a/third_party/blink/public/common/web_preferences/web_preferences.h +++ b/third_party/blink/public/common/web_preferences/web_preferences.h
@@ -88,9 +88,6 @@ bool webgl1_enabled; bool webgl2_enabled; bool pepper_3d_enabled; - bool flash_3d_enabled; - bool flash_stage3d_enabled; - bool flash_stage3d_baseline_enabled; bool privileged_webgl_extensions_enabled; bool webgl_errors_to_console_enabled; bool hide_scrollbars;
diff --git a/third_party/blink/public/common/web_preferences/web_preferences_mojom_traits.h b/third_party/blink/public/common/web_preferences/web_preferences_mojom_traits.h index 0f5ed102..d09fed37 100644 --- a/third_party/blink/public/common/web_preferences/web_preferences_mojom_traits.h +++ b/third_party/blink/public/common/web_preferences/web_preferences_mojom_traits.h
@@ -186,19 +186,6 @@ return r.pepper_3d_enabled; } - static bool flash_3d_enabled(const blink::web_pref::WebPreferences& r) { - return r.flash_3d_enabled; - } - - static bool flash_stage3d_enabled(const blink::web_pref::WebPreferences& r) { - return r.flash_stage3d_enabled; - } - - static bool flash_stage3d_baseline_enabled( - const blink::web_pref::WebPreferences& r) { - return r.flash_stage3d_baseline_enabled; - } - static bool privileged_webgl_extensions_enabled( const blink::web_pref::WebPreferences& r) { return r.privileged_webgl_extensions_enabled;
diff --git a/third_party/blink/public/mojom/webpreferences/web_preferences.mojom b/third_party/blink/public/mojom/webpreferences/web_preferences.mojom index 4feef40..90b34813 100644 --- a/third_party/blink/public/mojom/webpreferences/web_preferences.mojom +++ b/third_party/blink/public/mojom/webpreferences/web_preferences.mojom
@@ -144,9 +144,6 @@ bool webgl1_enabled; bool webgl2_enabled; bool pepper_3d_enabled; - bool flash_3d_enabled; - bool flash_stage3d_enabled; - bool flash_stage3d_baseline_enabled; bool privileged_webgl_extensions_enabled; bool webgl_errors_to_console_enabled; bool hide_scrollbars;
diff --git a/third_party/blink/renderer/bindings/idl_in_modules.gni b/third_party/blink/renderer/bindings/idl_in_modules.gni index 4520eb7..514ed887 100644 --- a/third_party/blink/renderer/bindings/idl_in_modules.gni +++ b/third_party/blink/renderer/bindings/idl_in_modules.gni
@@ -91,6 +91,7 @@ "//third_party/blink/renderer/modules/canvas/canvas2d/canvas_filter_dictionary.idl", "//third_party/blink/renderer/modules/canvas/canvas2d/canvas_formatted_text.idl", "//third_party/blink/renderer/modules/canvas/canvas2d/canvas_formatted_text_run.idl", + "//third_party/blink/renderer/modules/canvas/canvas2d/canvas_formatted_text_style.idl", "//third_party/blink/renderer/modules/canvas/canvas2d/canvas_gradient.idl", "//third_party/blink/renderer/modules/canvas/canvas2d/canvas_path.idl", "//third_party/blink/renderer/modules/canvas/canvas2d/canvas_pattern.idl",
diff --git a/third_party/blink/renderer/build/scripts/core/css/css_properties.py b/third_party/blink/renderer/build/scripts/core/css/css_properties.py index ca94084..afdf0e5 100755 --- a/third_party/blink/renderer/build/scripts/core/css/css_properties.py +++ b/third_party/blink/renderer/build/scripts/core/css/css_properties.py
@@ -57,6 +57,10 @@ ][0] assert subprop['supports_incremental_style'], \ '%s must be incrementally applicable when its shorthand %s is' % (subprop_name, name) + assert not prop['valid_for_canvas_formatted_text'] or prop['is_longhand'], \ + 'Only longhands can be valid_for_canvas_formatted_text [%s]' % name + assert not prop['valid_for_canvas_formatted_text_run'] or prop['is_longhand'], \ + 'Only longhands can be valid_for_canvas_formatted_text_run [%s]' % name def validate_alias(alias):
diff --git a/third_party/blink/renderer/build/scripts/core/css/properties/templates/css_properties.h.tmpl b/third_party/blink/renderer/build/scripts/core/css/properties/templates/css_properties.h.tmpl index 982e6257..15033a9 100644 --- a/third_party/blink/renderer/build/scripts/core/css/properties/templates/css_properties.h.tmpl +++ b/third_party/blink/renderer/build/scripts/core/css/properties/templates/css_properties.h.tmpl
@@ -47,6 +47,8 @@ (property.valid_for_first_line and 'kValidForFirstLine' or ''), (property.valid_for_cue and 'kValidForCue' or ''), (property.valid_for_marker and 'kValidForMarker' or ''), + (property.valid_for_canvas_formatted_text and 'kValidForCanvasFormattedText' or ''), + (property.valid_for_canvas_formatted_text_run and 'kValidForCanvasFormattedTextRun' or ''), (is_surrogate and 'kSurrogate' or ''), (property.font and 'kAffectsFont' or ''), (property.is_background and 'kBackground' or ''),
diff --git a/third_party/blink/renderer/core/css/css_properties.json5 b/third_party/blink/renderer/core/css/css_properties.json5 index 05604b8..5709944 100644 --- a/third_party/blink/renderer/core/css/css_properties.json5 +++ b/third_party/blink/renderer/core/css/css_properties.json5
@@ -582,7 +582,27 @@ idempotent: { default: true, valid_type: "bool", - } + }, + + // - valid_for_canvas_formatted_text: true + // + // Whether the property can be used to style the top-level container + // (similar to display:block, but supporting fewer properties), in the + // experimental API to bring multiline text rendering to HTML canvas. + // https://github.com/WICG/canvas-formatted-text/ + valid_for_canvas_formatted_text: { + default: false, + valid_type: "bool", + }, + + // - valid_for_canvas_formatted_text_run: true + // + // Whether the property can be used to style individual text runs, in the + // experimental API to bring multiline text rendering to HTML canvas. + valid_for_canvas_formatted_text_run: { + default: false, + valid_type: "bool", + }, }, // Members in the data objects should appear in the same order as in the @@ -817,6 +837,8 @@ valid_for_cue: true, valid_for_marker: true, valid_for_highlight: true, + valid_for_canvas_formatted_text: true, + valid_for_canvas_formatted_text_run: true, is_highlight_colors: true, }, { @@ -833,6 +855,8 @@ style_builder_custom_functions: ["value"], priority: "High", valid_for_marker: true, + valid_for_canvas_formatted_text: true, + valid_for_canvas_formatted_text_run: true, }, { name: "font-family", @@ -850,6 +874,8 @@ valid_for_cue: true, valid_for_marker: true, tree_scoped_value: true, + valid_for_canvas_formatted_text: true, + valid_for_canvas_formatted_text_run: true, }, { name: "font-kerning", @@ -864,6 +890,8 @@ valid_for_first_letter: true, valid_for_first_line: true, valid_for_marker: true, + valid_for_canvas_formatted_text: true, + valid_for_canvas_formatted_text_run: true, }, { name: "font-optical-sizing", @@ -910,6 +938,8 @@ valid_for_first_line: true, valid_for_cue: true, valid_for_marker: true, + valid_for_canvas_formatted_text: true, + valid_for_canvas_formatted_text_run: true, }, { name: "font-size-adjust", @@ -946,6 +976,8 @@ valid_for_first_line: true, valid_for_cue: true, valid_for_marker: true, + valid_for_canvas_formatted_text: true, + valid_for_canvas_formatted_text_run: true, }, { name: "font-style", @@ -962,6 +994,8 @@ valid_for_first_line: true, valid_for_cue: true, valid_for_marker: true, + valid_for_canvas_formatted_text: true, + valid_for_canvas_formatted_text_run: true, }, { name: "font-variant-ligatures", @@ -982,6 +1016,8 @@ valid_for_first_letter: true, valid_for_first_line: true, valid_for_marker: true, + valid_for_canvas_formatted_text: true, + valid_for_canvas_formatted_text_run: true, }, { name: "font-variant-caps", @@ -999,6 +1035,8 @@ valid_for_first_letter: true, valid_for_first_line: true, valid_for_marker: true, + valid_for_canvas_formatted_text: true, + valid_for_canvas_formatted_text_run: true, }, { name: "font-variant-east-asian", @@ -1016,6 +1054,8 @@ valid_for_first_letter: true, valid_for_first_line: true, valid_for_marker: true, + valid_for_canvas_formatted_text: true, + valid_for_canvas_formatted_text_run: true, }, { name: "font-variant-numeric", @@ -1034,6 +1074,8 @@ valid_for_first_letter: true, valid_for_first_line: true, valid_for_marker: true, + valid_for_canvas_formatted_text: true, + valid_for_canvas_formatted_text_run: true, }, { name: "font-weight", @@ -1051,6 +1093,8 @@ valid_for_first_line: true, valid_for_cue: true, valid_for_marker: true, + valid_for_canvas_formatted_text: true, + valid_for_canvas_formatted_text_run: true, }, { name: "font-synthesis-weight", @@ -1112,6 +1156,8 @@ valid_for_first_line: true, valid_for_marker: true, computable: false, + valid_for_canvas_formatted_text: true, + valid_for_canvas_formatted_text_run: true, }, { name: "font-variation-settings", @@ -1129,6 +1175,8 @@ valid_for_cue: true, valid_for_marker: true, computable: false, + valid_for_canvas_formatted_text: true, + valid_for_canvas_formatted_text_run: true, }, { name: "-webkit-font-smoothing", @@ -1187,6 +1235,7 @@ style_builder_custom_functions: ["initial", "inherit", "value"], priority: "High", computable: false, + valid_for_canvas_formatted_text: true, }, { name: "-webkit-text-orientation", @@ -1209,6 +1258,7 @@ type_name: "WritingMode", style_builder_custom_functions: ["initial", "inherit", "value"], priority: "High", + valid_for_canvas_formatted_text: true, }, { name: "-webkit-writing-mode", @@ -2681,6 +2731,7 @@ resolver: "vertical", }, supports_incremental_style: true, + valid_for_canvas_formatted_text: true, }, { name: "hyphens", @@ -4281,6 +4332,7 @@ default_value: "start", getter: "GetTextAlign", style_builder_custom_functions: ["value"], + valid_for_canvas_formatted_text: true, }, { name: "text-align-last", @@ -4314,6 +4366,7 @@ name_for_methods: "TextCombine", valid_for_marker: true, computable: false, + valid_for_canvas_formatted_text: true, }, { name: "text-decoration-color", @@ -4334,6 +4387,8 @@ valid_for_cue: true, valid_for_highlight: true, supports_incremental_style: true, + valid_for_canvas_formatted_text: true, + valid_for_canvas_formatted_text_run: true, }, { name: "text-decoration-line", @@ -4349,6 +4404,8 @@ valid_for_first_line: true, valid_for_cue: true, valid_for_highlight: true, + valid_for_canvas_formatted_text: true, + valid_for_canvas_formatted_text_run: true, }, { name: "text-decoration-skip-ink", @@ -4364,6 +4421,8 @@ valid_for_cue: true, valid_for_marker: true, valid_for_highlight: true, + valid_for_canvas_formatted_text: true, + valid_for_canvas_formatted_text_run: true, }, { name: "text-decoration-style", @@ -4377,6 +4436,8 @@ valid_for_first_line: true, valid_for_cue: true, valid_for_highlight: true, + valid_for_canvas_formatted_text: true, + valid_for_canvas_formatted_text_run: true, }, { name: "text-decoration-thickness", @@ -4395,6 +4456,8 @@ valid_for_first_line: true, valid_for_highlight: true, computable: false, + valid_for_canvas_formatted_text: true, + valid_for_canvas_formatted_text_run: true, }, { name: "text-indent", @@ -4422,6 +4485,7 @@ typedom_types: ["Keyword"], valid_for_first_letter: true, valid_for_first_line: true, + valid_for_canvas_formatted_text: true, }, { name: "text-overflow", @@ -4431,6 +4495,7 @@ keywords: ["clip", "ellipsis"], typedom_types: ["Keyword"], default_value: "clip", + valid_for_canvas_formatted_text: true, }, { name: "text-shadow", @@ -4451,6 +4516,8 @@ valid_for_cue: true, valid_for_marker: true, valid_for_highlight: true, + valid_for_canvas_formatted_text: true, + valid_for_canvas_formatted_text_run: true, }, { name: "text-size-adjust", @@ -4479,6 +4546,8 @@ valid_for_first_letter: true, valid_for_first_line: true, valid_for_marker: true, + valid_for_canvas_formatted_text: true, + valid_for_canvas_formatted_text_run: true, }, { name: "text-underline-offset", @@ -4495,6 +4564,8 @@ valid_for_first_letter: true, valid_for_first_line: true, computable: false, + valid_for_canvas_formatted_text: true, + valid_for_canvas_formatted_text_run: true, }, { name: "text-underline-position", @@ -4511,6 +4582,8 @@ typedom_types: ["Keyword"], valid_for_first_letter: true, valid_for_first_line: true, + valid_for_canvas_formatted_text: true, + valid_for_canvas_formatted_text_run: true, }, { name: "top", @@ -4979,6 +5052,7 @@ keywords: ["auto", "loose", "normal", "strict", "after-white-space", "anywhere"], default_value: "auto", type_name: "LineBreak", + valid_for_canvas_formatted_text: true, }, { name: "line-break", @@ -4988,6 +5062,7 @@ keywords: ["auto", "loose", "normal", "strict", "anywhere"], typedom_types: ["Keyword"], valid_for_marker: true, + valid_for_canvas_formatted_text: true, }, // An Apple extension. { @@ -5370,6 +5445,7 @@ resolver: "horizontal", }, supports_incremental_style: true, + valid_for_canvas_formatted_text: true, }, { name: "will-change",
diff --git a/third_party/blink/renderer/core/css/properties/css_property.h b/third_party/blink/renderer/core/css/properties/css_property.h index 660bd3e..656266e4 100644 --- a/third_party/blink/renderer/core/css/properties/css_property.h +++ b/third_party/blink/renderer/core/css/properties/css_property.h
@@ -64,6 +64,12 @@ bool IsValidForCue() const { return flags_ & kValidForCue; } bool IsValidForMarker() const { return flags_ & kValidForMarker; } bool IsValidForHighlight() const { return flags_ & kValidForHighlight; } + bool IsValidForCanvasFormattedText() const { + return flags_ & kValidForCanvasFormattedText; + } + bool IsValidForCanvasFormattedTextRun() const { + return flags_ & kValidForCanvasFormattedTextRun; + } bool IsSurrogate() const { return flags_ & kSurrogate; } bool AffectsFont() const { return flags_ & kAffectsFont; } bool IsBackground() const { return flags_ & kBackground; } @@ -170,6 +176,11 @@ kSupportsIncrementalStyle = 1 << 23, // See idempotent in css_properties.json5. kIdempotent = 1 << 24, + // Set if the css property can apply to the experiemental canvas + // formatted text API to render multiline text in canvas. + // https://github.com/WICG/canvas-formatted-text + kValidForCanvasFormattedText = 1 << 25, + kValidForCanvasFormattedTextRun = 1 << 26, }; constexpr CSSProperty(CSSPropertyID property_id,
diff --git a/third_party/blink/renderer/core/css/resolver/style_resolver.cc b/third_party/blink/renderer/core/css/resolver/style_resolver.cc index 1d9d8eb6..97aeb07 100644 --- a/third_party/blink/renderer/core/css/resolver/style_resolver.cc +++ b/third_party/blink/renderer/core/css/resolver/style_resolver.cc
@@ -2070,6 +2070,7 @@ visitor->Trace(selector_filter_); visitor->Trace(document_); visitor->Trace(tracker_); + visitor->Trace(canvas_formatted_text_element_); } bool StyleResolver::IsForcedColorsModeEnabled() const { @@ -2357,4 +2358,68 @@ #undef PROPAGATE_VALUE #undef PROPAGATE_FROM +scoped_refptr<const ComputedStyle> StyleResolver::StyleForCanvasFormattedText( + bool is_text_run, + const FontDescription& default_font, + const CSSPropertyValueSet* css_property_value_set) { + return StyleForCanvasFormattedText(is_text_run, &default_font, + /*parent_style*/ nullptr, + css_property_value_set); +} + +scoped_refptr<const ComputedStyle> StyleResolver::StyleForCanvasFormattedText( + bool is_text_run, + const ComputedStyle& parent_style, + const CSSPropertyValueSet* css_property_value_set) { + return StyleForCanvasFormattedText(is_text_run, /*default_font*/ nullptr, + &parent_style, css_property_value_set); +} + +scoped_refptr<const ComputedStyle> StyleResolver::StyleForCanvasFormattedText( + bool is_text_run, + const FontDescription* default_font, + const ComputedStyle* parent_style, + const CSSPropertyValueSet* css_property_value_set) { + DCHECK_NE(!!parent_style, !!default_font) + << "only one of `default_font` or `parent_style` should be specified"; + + // Set up our initial style properties based on either the `default_font` or + // `parent_style`. + scoped_refptr<ComputedStyle> style = CreateComputedStyle(); + if (default_font) + style->SetFontDescription(*default_font); + else // parent_style + style->InheritFrom(*parent_style); + style->SetDisplay(is_text_run ? EDisplay::kInline : EDisplay::kBlock); + + // Apply any properties in the `css_property_value_set`. + if (css_property_value_set) { + // Use a dummy/disconnected element when resolving the styles so that we + // don't inherit anything from existing elements. + StyleResolverState state( + GetDocument(), EnsureElementForCanvasFormattedText(), + StyleRecalcContext{}, + StyleRequest{parent_style ? parent_style : &InitialStyle()}); + state.SetStyle(style); + + // Use StyleCascade to apply inheritance in the correct order. + STACK_UNINITIALIZED StyleCascade cascade(state); + cascade.MutableMatchResult().AddMatchedProperties( + css_property_value_set, + AddMatchedPropertiesOptions::Builder().SetIsInlineStyle(true).Build()); + cascade.Apply(); + + StyleAdjuster::AdjustComputedStyle(state, nullptr); + } + + return style; +} + +Element& StyleResolver::EnsureElementForCanvasFormattedText() { + if (!canvas_formatted_text_element_) + canvas_formatted_text_element_ = + MakeGarbageCollected<Element>(html_names::kSpanTag, &GetDocument()); + return *canvas_formatted_text_element_; +} + } // namespace blink
diff --git a/third_party/blink/renderer/core/css/resolver/style_resolver.h b/third_party/blink/renderer/core/css/resolver/style_resolver.h index 8a89bab..8e0670c 100644 --- a/third_party/blink/renderer/core/css/resolver/style_resolver.h +++ b/third_party/blink/renderer/core/css/resolver/style_resolver.h
@@ -96,6 +96,14 @@ const AtomicString& page_name); scoped_refptr<const ComputedStyle> StyleForText(Text*); scoped_refptr<ComputedStyle> StyleForViewport(); + scoped_refptr<const ComputedStyle> StyleForCanvasFormattedText( + bool is_text_run, + const ComputedStyle& parent_style, + const CSSPropertyValueSet* css_property_value_set); + scoped_refptr<const ComputedStyle> StyleForCanvasFormattedText( + bool is_text_run, + const FontDescription& default_font, + const CSSPropertyValueSet* css_property_value_set); // Propagate computed values from the root or body element to the viewport // when specified to do so. @@ -306,12 +314,23 @@ Member<StyleRuleUsageTracker> tracker_; + // This is a dummy/disconnected element that we use for CanvasFormattedText + // style computations; see `EnsureElementForCanvasFormattedText`. + Member<Element> canvas_formatted_text_element_; + bool print_media_type_ = false; bool was_viewport_resized_ = false; FRIEND_TEST_ALL_PREFIXES(ComputedStyleTest, ApplyInternalLightDarkColor); friend class StyleResolverTest; FRIEND_TEST_ALL_PREFIXES(StyleResolverTest, TreeScopedReferences); + + Element& EnsureElementForCanvasFormattedText(); + scoped_refptr<const ComputedStyle> StyleForCanvasFormattedText( + bool is_text_run, + const FontDescription* default_font, + const ComputedStyle* parent_style, + const CSSPropertyValueSet* css_property_value_set); }; } // namespace blink
diff --git a/third_party/blink/renderer/core/css/style_property_serializer.h b/third_party/blink/renderer/core/css/style_property_serializer.h index f494e6e..36c6f67 100644 --- a/third_party/blink/renderer/core/css/style_property_serializer.h +++ b/third_party/blink/renderer/core/css/style_property_serializer.h
@@ -34,7 +34,7 @@ class CSSPropertyValueSet; class StylePropertyShorthand; -class StylePropertySerializer { +class CORE_EXPORT StylePropertySerializer { STACK_ALLOCATED(); public:
diff --git a/third_party/blink/renderer/core/display_lock/display_lock_utilities.cc b/third_party/blink/renderer/core/display_lock/display_lock_utilities.cc index 028f6d7..98ebbe0 100644 --- a/third_party/blink/renderer/core/display_lock/display_lock_utilities.cc +++ b/third_party/blink/renderer/core/display_lock/display_lock_utilities.cc
@@ -817,7 +817,7 @@ // elements to open and then open them all. HeapVector<Member<HTMLElement>> elements_to_reveal; - for (Node& parent : FlatTreeTraversal::AncestorsOf(node)) { + for (Node& parent : FlatTreeTraversal::InclusiveAncestorsOf(node)) { if (HTMLElement* element = DynamicTo<HTMLElement>(parent)) { if (EqualIgnoringASCIICase( element->FastGetAttribute(html_names::kHiddenAttr),
diff --git a/third_party/blink/renderer/core/fragment_directive/text_fragment_anchor.cc b/third_party/blink/renderer/core/fragment_directive/text_fragment_anchor.cc index 6ac6dcb..93b32a8 100644 --- a/third_party/blink/renderer/core/fragment_directive/text_fragment_anchor.cc +++ b/third_party/blink/renderer/core/fragment_directive/text_fragment_anchor.cc
@@ -350,7 +350,7 @@ DCHECK(enclosing_block); frame_->GetDocument()->EnqueueAnimationFrameTask( WTF::Bind(&TextFragmentAnchor::FireBeforeMatchEvent, - WrapPersistent(this), WrapWeakPersistent(enclosing_block))); + WrapPersistent(this), WrapPersistent(&range))); beforematch_state_ = kEventQueued; return; } @@ -360,53 +360,15 @@ // the beforematch event here and write tests for it once we decide on a // behavior here: https://github.com/WICG/display-locking/issues/150 - bool needs_style_and_layout = false; - // Apply :target to the first match if (!did_find_match_) { ApplyTargetToCommonAncestor(range.ToEphemeralRange()); - needs_style_and_layout = true; - } - - // TODO(crbug.com/1252872): Only |first_node| is considered for the below - // ancestor expanding code, but we should be considering the entire |range| - // for ancestor unlocking as well. - Node& first_node = *range.ToEphemeralRange().Nodes().begin(); - - // Activate any find-in-page activatable display-locks in the ancestor - // chain. - if (DisplayLockUtilities::ActivateFindInPageMatchRangeIfNeeded( - range.ToEphemeralRange())) { - // Since activating a lock dirties layout, we need to make sure it's clean - // before computing the text rect below. - needs_style_and_layout = true; - // TODO(crbug.com/1041942): It is possible and likely that activation - // signal causes script to resize something on the page. This code here - // should really yield until the next frame to give script an opportunity - // to run. - } - - // If the active match is hidden inside a <details> element, then we should - // expand it so we can scroll to it. - if (RuntimeEnabledFeatures::AutoExpandDetailsElementEnabled() && - HTMLDetailsElement::ExpandDetailsAncestors(first_node)) { - needs_style_and_layout = true; - UseCounter::Count(first_node.GetDocument(), - WebFeature::kAutoExpandedDetailsForScrollToTextFragment); - } - - // If the active match is hidden inside a hidden=until-found element, then we - // should reveal it so we can scroll to it. - needs_style_and_layout |= - RuntimeEnabledFeatures::BeforeMatchEventEnabled( - first_node.GetExecutionContext()) && - DisplayLockUtilities::RevealHiddenUntilFoundAncestors(first_node); - - if (needs_style_and_layout) { frame_->GetDocument()->UpdateStyleAndLayout( DocumentUpdateReason::kFindInPage); } + Node& first_node = *range.ToEphemeralRange().Nodes().begin(); + metrics_->DidFindMatch(match_metrics); did_find_match_ = true; @@ -522,12 +484,31 @@ } } -void TextFragmentAnchor::FireBeforeMatchEvent(Element* element) { - if (RuntimeEnabledFeatures::BeforeMatchEventEnabled( - frame_->GetDocument()->GetExecutionContext())) { - element->DispatchEvent( - *Event::CreateBubble(event_type_names::kBeforematch)); +void TextFragmentAnchor::FireBeforeMatchEvent(const RangeInFlatTree* range) { + // TODO(crbug.com/1252872): Only |first_node| is considered for the below + // ancestor expanding code, but we should be considering the entire range + // of selected text for ancestor unlocking as well. + Node& first_node = *range->ToEphemeralRange().Nodes().begin(); + + // Activate content-visibility:auto subtrees if needed. + DisplayLockUtilities::ActivateFindInPageMatchRangeIfNeeded( + range->ToEphemeralRange()); + + // If the active match is hidden inside a <details> element, then we should + // expand it so we can scroll to it. + if (RuntimeEnabledFeatures::AutoExpandDetailsElementEnabled() && + HTMLDetailsElement::ExpandDetailsAncestors(first_node)) { + UseCounter::Count(first_node.GetDocument(), + WebFeature::kAutoExpandedDetailsForScrollToTextFragment); } + + // If the active match is hidden inside a hidden=until-found element, then we + // should reveal it so we can scroll to it. + if (RuntimeEnabledFeatures::BeforeMatchEventEnabled( + first_node.GetExecutionContext())) { + DisplayLockUtilities::RevealHiddenUntilFoundAncestors(first_node); + } + beforematch_state_ = kFiredEvent; }
diff --git a/third_party/blink/renderer/core/fragment_directive/text_fragment_anchor.h b/third_party/blink/renderer/core/fragment_directive/text_fragment_anchor.h index bfbd732..8c6dd2c 100644 --- a/third_party/blink/renderer/core/fragment_directive/text_fragment_anchor.h +++ b/third_party/blink/renderer/core/fragment_directive/text_fragment_anchor.h
@@ -91,7 +91,7 @@ void ApplyTargetToCommonAncestor(const EphemeralRangeInFlatTree& range); - void FireBeforeMatchEvent(Element* element); + void FireBeforeMatchEvent(const RangeInFlatTree* range); bool HasSearchEngineSource();
diff --git a/third_party/blink/renderer/core/frame/history.cc b/third_party/blink/renderer/core/frame/history.cc index 2964a26..1af8a4e 100644 --- a/third_party/blink/renderer/core/frame/history.cc +++ b/third_party/blink/renderer/core/frame/history.cc
@@ -310,10 +310,11 @@ } if (auto* navigation_api = NavigationApi::navigation(*DomWindow())) { - if (navigation_api->DispatchNavigateEvent( - full_url, nullptr, NavigateEventType::kHistoryApi, type, - UserNavigationInvolvement::kNone, data.get(), - nullptr) != NavigationApi::DispatchResult::kContinue) { + NavigationApi::DispatchParams params(full_url, + NavigateEventType::kHistoryApi, type); + params.state_object = data.get(); + if (navigation_api->DispatchNavigateEvent(params) != + NavigationApi::DispatchResult::kContinue) { return; } }
diff --git a/third_party/blink/renderer/core/html/html_anchor_element.cc b/third_party/blink/renderer/core/html/html_anchor_element.cc index 3160ae98..f550a04 100644 --- a/third_party/blink/renderer/core/html/html_anchor_element.cc +++ b/third_party/blink/renderer/core/html/html_anchor_element.cc
@@ -464,14 +464,14 @@ } if (auto* navigation_api = NavigationApi::navigation(*window)) { - UserNavigationInvolvement involvement = - event.isTrusted() ? UserNavigationInvolvement::kActivation - : UserNavigationInvolvement::kNone; - if (navigation_api->DispatchNavigateEvent( - completed_url, nullptr, NavigateEventType::kCrossDocument, - WebFrameLoadType::kStandard, involvement, nullptr, nullptr, false, - true, - download_attr) != NavigationApi::DispatchResult::kContinue) { + NavigationApi::DispatchParams params(completed_url, + NavigateEventType::kCrossDocument, + WebFrameLoadType::kStandard); + if (event.isTrusted()) + params.involvement = UserNavigationInvolvement::kActivation; + params.download_filename = download_attr; + if (navigation_api->DispatchNavigateEvent(params) != + NavigationApi::DispatchResult::kContinue) { return; } // A download will never notify blink about its completion. Tell the
diff --git a/third_party/blink/renderer/core/layout/layout_text.cc b/third_party/blink/renderer/core/layout/layout_text.cc index 7093dbc..8955a54a 100644 --- a/third_party/blink/renderer/core/layout/layout_text.cc +++ b/third_party/blink/renderer/core/layout/layout_text.cc
@@ -212,7 +212,7 @@ return text; } -LayoutText* LayoutText::CreateAnonymous( +LayoutText* LayoutText::CreateAnonymousForFormattedText( Document& doc, scoped_refptr<const ComputedStyle> style, scoped_refptr<StringImpl> text, @@ -220,7 +220,7 @@ LayoutText* layout_text = LayoutObjectFactory::CreateText(nullptr, std::move(text), legacy); layout_text->SetDocumentForAnonymous(&doc); - layout_text->SetStyle(std::move(style)); + layout_text->SetStyleInternal(std::move(style)); return layout_text; }
diff --git a/third_party/blink/renderer/core/layout/layout_text.h b/third_party/blink/renderer/core/layout/layout_text.h index 7a3fca2..0f4ee0a 100644 --- a/third_party/blink/renderer/core/layout/layout_text.h +++ b/third_party/blink/renderer/core/layout/layout_text.h
@@ -90,10 +90,11 @@ scoped_refptr<const ComputedStyle>, LegacyLayout); - static LayoutText* CreateAnonymous(Document&, - scoped_refptr<const ComputedStyle>, - scoped_refptr<StringImpl>, - LegacyLayout legacy); + static LayoutText* CreateAnonymousForFormattedText( + Document&, + scoped_refptr<const ComputedStyle>, + scoped_refptr<StringImpl>, + LegacyLayout legacy); const char* GetName() const override { NOT_DESTROYED();
diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_party/blink/renderer/core/loader/document_loader.cc index 3a32313..86852fd 100644 --- a/third_party/blink/renderer/core/loader/document_loader.cc +++ b/third_party/blink/renderer/core/loader/document_loader.cc
@@ -1339,17 +1339,19 @@ mojom::blink::SameDocumentNavigationType same_document_navigation_type = mojom::blink::SameDocumentNavigationType::kFragment; if (auto* navigation_api = NavigationApi::navigation(*frame_->DomWindow())) { - UserNavigationInvolvement involvement = UserNavigationInvolvement::kNone; + NavigationApi::DispatchParams params(url, NavigateEventType::kFragment, + frame_load_type); if (is_browser_initiated) { - involvement = UserNavigationInvolvement::kBrowserUI; + params.involvement = UserNavigationInvolvement::kBrowserUI; } else if (triggering_event_info == mojom::blink::TriggeringEventInfo::kFromTrustedEvent) { - involvement = UserNavigationInvolvement::kActivation; + params.involvement = UserNavigationInvolvement::kActivation; } - auto dispatch_result = navigation_api->DispatchNavigateEvent( - url, nullptr, NavigateEventType::kFragment, frame_load_type, - involvement, nullptr, history_item, is_browser_initiated, - is_synchronously_committed); + params.destination_item = history_item; + params.is_browser_initiated = is_browser_initiated; + params.is_synchronously_committed_same_document = + is_synchronously_committed; + auto dispatch_result = navigation_api->DispatchNavigateEvent(params); if (dispatch_result == NavigationApi::DispatchResult::kAbort) return mojom::blink::CommitResult::Aborted; if (dispatch_result == NavigationApi::DispatchResult::kTransitionWhile)
diff --git a/third_party/blink/renderer/core/loader/frame_loader.cc b/third_party/blink/renderer/core/loader/frame_loader.cc index 13f0e20..1e7bb6c 100644 --- a/third_party/blink/renderer/core/loader/frame_loader.cc +++ b/third_party/blink/renderer/core/loader/frame_loader.cc
@@ -775,14 +775,15 @@ if (request.GetNavigationPolicy() == kNavigationPolicyCurrentTab && (!origin_window || origin_window->GetSecurityOrigin()->CanAccess( frame_->DomWindow()->GetSecurityOrigin()))) { - if (navigation_api->DispatchNavigateEvent( - url, request.Form(), NavigateEventType::kCrossDocument, - frame_load_type, - request.GetTriggeringEventInfo() == - mojom::blink::TriggeringEventInfo::kFromTrustedEvent - ? UserNavigationInvolvement::kActivation - : UserNavigationInvolvement::kNone, - nullptr, nullptr) != NavigationApi::DispatchResult::kContinue) { + NavigationApi::DispatchParams params( + url, NavigateEventType::kCrossDocument, frame_load_type); + params.form = request.Form(); + if (request.GetTriggeringEventInfo() == + mojom::blink::TriggeringEventInfo::kFromTrustedEvent) { + params.involvement = UserNavigationInvolvement::kActivation; + } + if (navigation_api->DispatchNavigateEvent(params) != + NavigationApi::DispatchResult::kContinue) { return; } } @@ -1018,13 +1019,13 @@ if (auto* navigation_api = NavigationApi::navigation(*frame_->DomWindow())) { if (navigation_params->frame_load_type == WebFrameLoadType::kBackForward) { - auto result = navigation_api->DispatchNavigateEvent( - navigation_params->url, nullptr, NavigateEventType::kCrossDocument, - WebFrameLoadType::kBackForward, - navigation_params->is_browser_initiated - ? UserNavigationInvolvement::kBrowserUI - : UserNavigationInvolvement::kNone, - nullptr, navigation_params->history_item); + NavigationApi::DispatchParams params(navigation_params->url, + NavigateEventType::kCrossDocument, + WebFrameLoadType::kBackForward); + if (navigation_params->is_browser_initiated) + params.involvement = UserNavigationInvolvement::kBrowserUI; + params.destination_item = navigation_params->history_item; + auto result = navigation_api->DispatchNavigateEvent(params); DCHECK_EQ(result, NavigationApi::DispatchResult::kContinue); if (!document_loader_) return;
diff --git a/third_party/blink/renderer/core/navigation_api/navigation_api.cc b/third_party/blink/renderer/core/navigation_api/navigation_api.cc index 47f8ee2..9e8a598 100644 --- a/third_party/blink/renderer/core/navigation_api/navigation_api.cc +++ b/third_party/blink/renderer/core/navigation_api/navigation_api.cc
@@ -682,16 +682,7 @@ } NavigationApi::DispatchResult NavigationApi::DispatchNavigateEvent( - const KURL& url, - HTMLFormElement* form, - NavigateEventType event_type, - WebFrameLoadType type, - UserNavigationInvolvement involvement, - SerializedScriptValue* state_object, - HistoryItem* destination_item, - bool is_browser_initiated, - bool is_synchronously_committed, - const String& download_filename) { + const DispatchParams& params) { // TODO(japhet): The draft spec says to cancel any ongoing navigate event // before invoking DispatchNavigateEvent(), because not all navigations will // fire a navigate event, but all should abort an ongoing navigate event. @@ -700,8 +691,9 @@ InformAboutCanceledNavigation(); const KURL& current_url = GetSupplementable()->Url(); - const String& key = - destination_item ? destination_item->GetNavigationApiKey() : String(); + const String& key = params.destination_item + ? params.destination_item->GetNavigationApiKey() + : String(); PromoteUpcomingNavigationToOngoing(key); if (HasEntriesAndEventsDisabled()) { @@ -718,8 +710,8 @@ ToScriptStateForMainWorld(GetSupplementable()->GetFrame()); ScriptState::Scope scope(script_state); - if (type == WebFrameLoadType::kBackForward && - event_type == NavigateEventType::kFragment && + if (params.frame_load_type == WebFrameLoadType::kBackForward && + params.event_type == NavigateEventType::kFragment && !keys_to_indices_.Contains(key)) { // This same document history traversal was preempted by another navigation // that removed this entry from the back/forward list. Proceeding will leave @@ -729,48 +721,50 @@ } auto* init = NavigateEventInit::Create(); - const String& navigation_type = DetermineNavigationType(type); + const String& navigation_type = + DetermineNavigationType(params.frame_load_type); init->setNavigationType(navigation_type); SerializedScriptValue* destination_state = nullptr; - if (destination_item) - destination_state = destination_item->GetNavigationApiState(); + if (params.destination_item) + destination_state = params.destination_item->GetNavigationApiState(); else if (ongoing_navigation_) destination_state = ongoing_navigation_->GetSerializedState(); NavigationDestination* destination = MakeGarbageCollected<NavigationDestination>( - url, event_type != NavigateEventType::kCrossDocument, + params.url, params.event_type != NavigateEventType::kCrossDocument, destination_state); - if (type == WebFrameLoadType::kBackForward) { + if (params.frame_load_type == WebFrameLoadType::kBackForward) { auto iter = keys_to_indices_.find(key); int index = iter == keys_to_indices_.end() ? 0 : iter->value; destination->SetTraverseProperties( - key, destination_item->GetNavigationApiId(), index); + key, params.destination_item->GetNavigationApiId(), index); } init->setDestination(destination); - init->setCancelable(type != WebFrameLoadType::kBackForward); + init->setCancelable(params.frame_load_type != WebFrameLoadType::kBackForward); init->setCanTransition( - CanChangeToUrlForHistoryApi(url, GetSupplementable()->GetSecurityOrigin(), - current_url) && - (event_type != NavigateEventType::kCrossDocument || - type != WebFrameLoadType::kBackForward)); - init->setHashChange(event_type == NavigateEventType::kFragment && - url != current_url && - EqualIgnoringFragmentIdentifier(url, current_url)); + CanChangeToUrlForHistoryApi( + params.url, GetSupplementable()->GetSecurityOrigin(), current_url) && + (params.event_type != NavigateEventType::kCrossDocument || + params.frame_load_type != WebFrameLoadType::kBackForward)); + init->setHashChange(params.event_type == NavigateEventType::kFragment && + params.url != current_url && + EqualIgnoringFragmentIdentifier(params.url, current_url)); - init->setUserInitiated(involvement != UserNavigationInvolvement::kNone); - if (form && form->Method() == FormSubmission::kPostMethod) { - init->setFormData(FormData::Create(form, ASSERT_NO_EXCEPTION)); + init->setUserInitiated(params.involvement != + UserNavigationInvolvement::kNone); + if (params.form && params.form->Method() == FormSubmission::kPostMethod) { + init->setFormData(FormData::Create(params.form, ASSERT_NO_EXCEPTION)); } if (ongoing_navigation_) init->setInfo(ongoing_navigation_->GetInfo()); init->setSignal(MakeGarbageCollected<AbortSignal>(GetSupplementable())); - init->setDownloadRequest(download_filename); + init->setDownloadRequest(params.download_filename); auto* navigate_event = NavigateEvent::Create( GetSupplementable(), event_type_names::kNavigate, init); - navigate_event->SetUrl(url); - navigate_event->SaveStateFromDestinationItem(destination_item); + navigate_event->SetUrl(params.url); + navigate_event->SaveStateFromDestinationItem(params.destination_item); DCHECK(!ongoing_navigate_event_); DCHECK(!ongoing_navigation_signal_); @@ -795,13 +789,15 @@ // |type| being a reload type makes it do none of the spec-relevant // steps. Instead it does stuff like the loading spinner and use counters. GetSupplementable()->document()->Loader()->RunURLAndHistoryUpdateSteps( - url, destination_item, + params.url, params.destination_item, mojom::blink::SameDocumentNavigationType::kNavigationApiTransitionWhile, - state_object, type, is_browser_initiated, is_synchronously_committed); + params.state_object, params.frame_load_type, + params.is_browser_initiated, + params.is_synchronously_committed_same_document); } if (!promise_list.IsEmpty() || - event_type != NavigateEventType::kCrossDocument) { + params.event_type != NavigateEventType::kCrossDocument) { NavigateReaction::ReactType react_type = promise_list.IsEmpty() ? NavigateReaction::ReactType::kImmediate : NavigateReaction::ReactType::kTransitionWhile;
diff --git a/third_party/blink/renderer/core/navigation_api/navigation_api.h b/third_party/blink/renderer/core/navigation_api/navigation_api.h index 2e8b2f1..bece4458 100644 --- a/third_party/blink/renderer/core/navigation_api/navigation_api.h +++ b/third_party/blink/renderer/core/navigation_api/navigation_api.h
@@ -111,17 +111,29 @@ DEFINE_ATTRIBUTE_EVENT_LISTENER(currententrychange, kCurrententrychange) enum class DispatchResult { kContinue, kAbort, kTransitionWhile }; - DispatchResult DispatchNavigateEvent( - const KURL& url, - HTMLFormElement* form, - NavigateEventType, - WebFrameLoadType, - UserNavigationInvolvement, - SerializedScriptValue*, - HistoryItem* destination_item, - bool is_browser_initiated = false, - bool is_synchronously_committed = true, - const String& download_filename = String()); + struct DispatchParams { + STACK_ALLOCATED(); + + public: + DispatchParams(const KURL& url_in, + NavigateEventType event_type_in, + WebFrameLoadType frame_load_type_in) + : url(url_in), + event_type(event_type_in), + frame_load_type(frame_load_type_in) {} + + const KURL url; + const NavigateEventType event_type; + const WebFrameLoadType frame_load_type; + UserNavigationInvolvement involvement = UserNavigationInvolvement::kNone; + HTMLFormElement* form = nullptr; + SerializedScriptValue* state_object = nullptr; + HistoryItem* destination_item = nullptr; + bool is_browser_initiated = false; + bool is_synchronously_committed_same_document = true; + String download_filename; + }; + DispatchResult DispatchNavigateEvent(const DispatchParams&); // In the spec, we are only informed about canceled navigations. But in the // implementation we need to handle other cases:
diff --git a/third_party/blink/renderer/core/page/drag_image.cc b/third_party/blink/renderer/core/page/drag_image.cc index d8d40b6..a03a0c9 100644 --- a/third_party/blink/renderer/core/page/drag_image.cc +++ b/third_party/blink/renderer/core/page/drag_image.cc
@@ -115,7 +115,8 @@ SkBitmap bm; paint_image = Image::ResizeAndOrientImage( - paint_image, orientation, image_scale, opacity, interpolation_quality); + paint_image, orientation, image_scale, opacity, interpolation_quality, + SkColorSpace::MakeSRGB()); if (!paint_image || !paint_image.GetSwSkImage()->asLegacyBitmap(&bm)) return nullptr;
diff --git a/third_party/blink/renderer/core/page/scrolling/element_fragment_anchor.cc b/third_party/blink/renderer/core/page/scrolling/element_fragment_anchor.cc index 25a2865..a5bacdb 100644 --- a/third_party/blink/renderer/core/page/scrolling/element_fragment_anchor.cc +++ b/third_party/blink/renderer/core/page/scrolling/element_fragment_anchor.cc
@@ -7,13 +7,14 @@ #include "third_party/blink/renderer/bindings/core/v8/v8_scroll_into_view_options.h" #include "third_party/blink/renderer/core/accessibility/ax_object_cache.h" #include "third_party/blink/renderer/core/display_lock/display_lock_context.h" +#include "third_party/blink/renderer/core/display_lock/display_lock_utilities.h" #include "third_party/blink/renderer/core/dom/document.h" #include "third_party/blink/renderer/core/dom/element.h" -#include "third_party/blink/renderer/core/dom/events/event.h" #include "third_party/blink/renderer/core/dom/node.h" #include "third_party/blink/renderer/core/editing/frame_selection.h" #include "third_party/blink/renderer/core/execution_context/execution_context.h" #include "third_party/blink/renderer/core/frame/local_frame.h" +#include "third_party/blink/renderer/core/html/html_details_element.h" #include "third_party/blink/renderer/core/svg/svg_svg_element.h" #include "third_party/blink/renderer/platform/bindings/script_forbidden_scope.h" #include "third_party/blink/renderer/platform/weborigin/kurl.h" @@ -77,10 +78,13 @@ if (!should_scroll) return nullptr; + if (RuntimeEnabledFeatures::AutoExpandDetailsElementEnabled()) { + HTMLDetailsElement::ExpandDetailsAncestors(*anchor_node); + } + if (RuntimeEnabledFeatures::BeforeMatchEventEnabled( frame.GetDocument()->GetExecutionContext())) { - anchor_node->DispatchEvent( - *Event::CreateBubble(event_type_names::kBeforematch)); + DisplayLockUtilities::RevealHiddenUntilFoundAncestors(*anchor_node); } return MakeGarbageCollected<ElementFragmentAnchor>(*anchor_node, frame);
diff --git a/third_party/blink/renderer/core/page/scrolling/fragment_anchor.cc b/third_party/blink/renderer/core/page/scrolling/fragment_anchor.cc index beed6ae7..abf2b1e 100644 --- a/third_party/blink/renderer/core/page/scrolling/fragment_anchor.cc +++ b/third_party/blink/renderer/core/page/scrolling/fragment_anchor.cc
@@ -6,16 +6,15 @@ #include "base/metrics/histogram_macros.h" #include "third_party/blink/public/common/features.h" -#include "third_party/blink/renderer/core/display_lock/display_lock_utilities.h" #include "third_party/blink/renderer/core/dom/node_computed_style.h" #include "third_party/blink/renderer/core/fragment_directive/css_selector_fragment_anchor.h" #include "third_party/blink/renderer/core/fragment_directive/text_fragment_anchor.h" #include "third_party/blink/renderer/core/frame/local_dom_window.h" #include "third_party/blink/renderer/core/frame/local_frame.h" #include "third_party/blink/renderer/core/frame/web_feature.h" -#include "third_party/blink/renderer/core/html/html_details_element.h" #include "third_party/blink/renderer/core/html/html_document.h" #include "third_party/blink/renderer/core/page/scrolling/element_fragment_anchor.h" +#include "third_party/blink/renderer/core/scroll/scroll_alignment.h" #include "third_party/blink/renderer/platform/runtime_enabled_features.h" namespace blink { @@ -65,27 +64,6 @@ void FragmentAnchor::ScrollElementIntoViewWithOptions( Element* element_to_scroll, ScrollIntoViewOptions* options) { - // Expand <details> elements so we can make |element_to_scroll| visible. - bool needs_style_and_layout = - RuntimeEnabledFeatures::AutoExpandDetailsElementEnabled() && - HTMLDetailsElement::ExpandDetailsAncestors(*element_to_scroll); - - // Reveal hidden=until-found ancestors so we can make |element_to_scroll| - // visible. - needs_style_and_layout |= - RuntimeEnabledFeatures::BeforeMatchEventEnabled( - element_to_scroll->GetExecutionContext()) && - DisplayLockUtilities::RevealHiddenUntilFoundAncestors(*element_to_scroll); - - if (needs_style_and_layout) { - // If we opened any details elements, we need to update style and layout - // to account for the new content to render inside the now-expanded - // details element before we scroll to it. The added open attribute may - // also affect style. - frame_->GetDocument()->UpdateStyleAndLayoutForNode( - element_to_scroll, DocumentUpdateReason::kFindInPage); - } - if (element_to_scroll->GetLayoutObject()) { DCHECK(element_to_scroll->GetComputedStyle()); mojom::blink::ScrollIntoViewParamsPtr params =
diff --git a/third_party/blink/renderer/modules/canvas/BUILD.gn b/third_party/blink/renderer/modules/canvas/BUILD.gn index ca6c394c..d66aaafe 100644 --- a/third_party/blink/renderer/modules/canvas/BUILD.gn +++ b/third_party/blink/renderer/modules/canvas/BUILD.gn
@@ -17,6 +17,8 @@ "canvas2d/canvas_formatted_text.h", "canvas2d/canvas_formatted_text_run.cc", "canvas2d/canvas_formatted_text_run.h", + "canvas2d/canvas_formatted_text_style.cc", + "canvas2d/canvas_formatted_text_style.h", "canvas2d/canvas_gradient.cc", "canvas2d/canvas_gradient.h", "canvas2d/canvas_image_source_util.cc",
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_formatted_text.cc b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_formatted_text.cc index b4469b5..bb48b39 100644 --- a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_formatted_text.cc +++ b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_formatted_text.cc
@@ -24,6 +24,7 @@ visitor->Trace(text_runs_); visitor->Trace(block_); ScriptWrappable::Trace(visitor); + CanvasFormattedTextStyle::Trace(visitor); } CanvasFormattedText* CanvasFormattedText::Create( @@ -38,7 +39,8 @@ return canvas_formatted_text; } -CanvasFormattedText::CanvasFormattedText(ExecutionContext* execution_context) { +CanvasFormattedText::CanvasFormattedText(ExecutionContext* execution_context) + : CanvasFormattedTextStyle(/* is_text_run */ false) { // Refrain from extending the use of document, apart from creating layout // block flow. In the future we should handle execution_context's from worker // threads that do not have a document. @@ -63,15 +65,23 @@ block_->Destroy(); } -LayoutBlockFlow* CanvasFormattedText::GetLayoutBlock( +void CanvasFormattedText::SetNeedsStyleRecalc() { + needs_style_recalc_ = true; +} + +void CanvasFormattedText::UpdateComputedStylesIfNeeded( Document& document, const FontDescription& defaultFont) { - scoped_refptr<ComputedStyle> style = - document.GetStyleResolver().CreateComputedStyle(); - style->SetDisplay(EDisplay::kBlock); - style->SetFontDescription(defaultFont); - block_->SetStyle(style); - return block_; + if (needs_style_recalc_ || current_default_font_ != defaultFont) { + auto style = document.GetStyleResolver().StyleForCanvasFormattedText( + /*is_text_run*/ false, defaultFont, GetCssPropertySet()); + block_->SetStyle(style, LayoutObject::ApplyStyleChanges::kNo); + block_->SetHorizontalWritingMode(style->IsHorizontalWritingMode()); + for (auto& text_run : text_runs_) + text_run->UpdateStyle(document, /*parent_style*/ *style); + needs_style_recalc_ = false; + current_default_font_ = defaultFont; + } } CanvasFormattedTextRun* CanvasFormattedText::appendRun( @@ -81,6 +91,8 @@ return nullptr; text_runs_.push_back(run); block_->AddChild(run->GetLayoutObject()); + run->SetParent(this); + SetNeedsStyleRecalc(); return run; } @@ -91,10 +103,13 @@ if (!CheckRunsIndexBound(index, &exception_state) || !CheckRunIsNotParented(run, &exception_state)) return nullptr; + run->SetParent(this); block_->AddChild(run->GetLayoutObject(), text_runs_[index]->GetLayoutObject()); + text_runs_[index]->SetParent(nullptr); block_->RemoveChild(text_runs_[index]->GetLayoutObject()); text_runs_[index] = run; + SetNeedsStyleRecalc(); return text_runs_[index]; } @@ -111,6 +126,8 @@ block_->AddChild(run->GetLayoutObject(), text_runs_[index]->GetLayoutObject()); text_runs_.insert(index, run); + run->SetParent(this); + SetNeedsStyleRecalc(); return text_runs_[index]; } @@ -130,6 +147,7 @@ } for (wtf_size_t i = index; i < index + length; i++) { + text_runs_[i]->SetParent(nullptr); block_->RemoveChild(text_runs_[i]->GetLayoutObject()); } block_->SetNeedsLayoutAndIntrinsicWidthsRecalcAndFullPaintInvalidation( @@ -144,26 +162,26 @@ double x, double y, double wrap_width, + double wrap_height, gfx::RectF& bounds) { - LayoutBlockFlow* block = GetLayoutBlock(document, font); - NGBlockNode block_node(block); - NGInlineNode node(block); + UpdateComputedStylesIfNeeded(document, font); + NGBlockNode block_node(block_); - // TODO(sushraja) Once we add support for writing mode on the canvas formatted - // text, fix this to be not hardcoded horizontal top to bottom. NGConstraintSpaceBuilder builder( WritingMode::kHorizontalTb, - {WritingMode::kHorizontalTb, TextDirection::kLtr}, + {block_->StyleRef().GetWritingMode(), block_->StyleRef().Direction()}, /* is_new_fc */ true); - LayoutUnit available_logical_width(wrap_width); - LogicalSize available_size = {available_logical_width, kIndefiniteSize}; + LayoutUnit available_logical_width(std::max(wrap_width, 0.0)); + LayoutUnit available_logical_height(std::max(wrap_height, 0.0)); + LogicalSize available_size = {available_logical_width, + available_logical_height}; builder.SetAvailableSize(available_size); NGConstraintSpace space = builder.ToConstraintSpace(); const NGLayoutResult* block_results = block_node.Layout(space, nullptr); const auto& fragment = To<NGPhysicalBoxFragment>(block_results->PhysicalFragment()); - block->RecalcFragmentsVisualOverflow(); - bounds = gfx::RectF(block->PhysicalVisualOverflowRect()); + block_->RecalcFragmentsVisualOverflow(); + bounds = gfx::RectF{block_->PhysicalVisualOverflowRect()}; auto* paint_record_builder = MakeGarbageCollected<PaintRecordBuilder>(); PaintInfo paint_info(paint_record_builder->Context(), CullRect::Infinite(), PaintPhase::kForeground);
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_formatted_text.h b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_formatted_text.h index 41acc43..6ca067d 100644 --- a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_formatted_text.h +++ b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_formatted_text.h
@@ -25,7 +25,9 @@ class FontDescription; class LayoutBlockFlow; -class MODULES_EXPORT CanvasFormattedText final : public ScriptWrappable { +class MODULES_EXPORT CanvasFormattedText final + : public ScriptWrappable, + public CanvasFormattedTextStyle { DEFINE_WRAPPERTYPEINFO(); USING_PRE_FINALIZER(CanvasFormattedText, Dispose); @@ -108,21 +110,27 @@ unsigned length, ExceptionState& exception_state); - LayoutBlockFlow* GetLayoutBlock(Document& document, - const FontDescription& defaultFont); - sk_sp<PaintRecord> PaintFormattedText(Document& document, const FontDescription& font, double x, double y, double wrap_width, + double wrap_height, gfx::RectF& bounds); void Dispose(); + void SetNeedsStyleRecalc() override; + + private: + void UpdateComputedStylesIfNeeded(Document& document, + const FontDescription& defaultFont); + private: HeapVector<Member<CanvasFormattedTextRun>> text_runs_; Member<LayoutBlockFlow> block_; + FontDescription current_default_font_; + bool needs_style_recalc_ = true; }; } // namespace blink
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_formatted_text.idl b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_formatted_text.idl index 0e3b846..a53d44d3 100644 --- a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_formatted_text.idl +++ b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_formatted_text.idl
@@ -21,4 +21,6 @@ [RaisesException] void deleteRun(unsigned long index, unsigned long length); readonly attribute unsigned long length; -}; \ No newline at end of file +}; + +CanvasFormattedText includes CanvasFormattedTextStyle; \ No newline at end of file
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_formatted_text_run.cc b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_formatted_text_run.cc index c3b8bc1..8cd79b4 100644 --- a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_formatted_text_run.cc +++ b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_formatted_text_run.cc
@@ -3,15 +3,15 @@ // found in the LICENSE file. #include "third_party/blink/renderer/modules/canvas/canvas2d/canvas_formatted_text_run.h" - #include "third_party/blink/renderer/core/css/resolver/style_resolver.h" +#include "third_party/blink/renderer/modules/canvas/canvas2d/canvas_formatted_text.h" namespace blink { CanvasFormattedTextRun::CanvasFormattedTextRun( ExecutionContext* execution_context, const String text) - : text_(text) { + : CanvasFormattedTextStyle(/* is_text_run */ true), text_(text) { // Refrain from extending the use of document, apart from creating layout // text. In the future we should handle execution_context's from worker // threads that do not have a document. @@ -19,11 +19,18 @@ scoped_refptr<ComputedStyle> style = document->GetStyleResolver().CreateComputedStyle(); style->SetDisplay(EDisplay::kInline); - layout_text_ = LayoutText::CreateAnonymous(*document, std::move(style), - text.Impl(), LegacyLayout::kAuto); + layout_text_ = LayoutText::CreateAnonymousForFormattedText( + *document, std::move(style), text.Impl(), LegacyLayout::kAuto); layout_text_->SetIsLayoutNGObjectForCanvasFormattedText(true); } +void CanvasFormattedTextRun::UpdateStyle(Document& document, + const ComputedStyle& parent_style) { + auto style = document.GetStyleResolver().StyleForCanvasFormattedText( + /*is_text_run*/ true, parent_style, GetCssPropertySet()); + layout_text_->SetStyle(style, LayoutObject::ApplyStyleChanges::kNo); +} + void CanvasFormattedTextRun::Dispose() { AllowDestroyingLayoutObjectInFinalizerScope scope; if (layout_text_) @@ -32,7 +39,14 @@ void CanvasFormattedTextRun::Trace(Visitor* visitor) const { visitor->Trace(layout_text_); + visitor->Trace(parent_); ScriptWrappable::Trace(visitor); + CanvasFormattedTextStyle::Trace(visitor); +} + +void CanvasFormattedTextRun::SetNeedsStyleRecalc() { + if (parent_ != nullptr) + parent_->SetNeedsStyleRecalc(); } } // namespace blink
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_formatted_text_run.h b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_formatted_text_run.h index ea294f87..20abb958 100644 --- a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_formatted_text_run.h +++ b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_formatted_text_run.h
@@ -7,6 +7,7 @@ #include "third_party/blink/renderer/core/frame/local_dom_window.h" #include "third_party/blink/renderer/core/layout/layout_text.h" +#include "third_party/blink/renderer/modules/canvas/canvas2d/canvas_formatted_text_style.h" #include "third_party/blink/renderer/modules/modules_export.h" #include "third_party/blink/renderer/platform/bindings/script_wrappable.h" #include "third_party/blink/renderer/platform/heap/prefinalizer.h" @@ -14,7 +15,11 @@ namespace blink { -class MODULES_EXPORT CanvasFormattedTextRun final : public ScriptWrappable { +class CanvasFormattedText; + +class MODULES_EXPORT CanvasFormattedTextRun final + : public ScriptWrappable, + public CanvasFormattedTextStyle { DEFINE_WRAPPERTYPEINFO(); USING_PRE_FINALIZER(CanvasFormattedTextRun, Dispose); @@ -35,14 +40,25 @@ unsigned length() const { return text_.length(); } LayoutText* GetLayoutObject() { return layout_text_; } + void UpdateStyle(Document& document, const ComputedStyle& parent_style); + + void SetParent(CanvasFormattedText* canvas_formatted_text) { + parent_ = canvas_formatted_text; + } void Trace(Visitor* visitor) const override; void Dispose(); + // Style dirtiness is tracked only at the level of a canvas formatted text + // and all run styles are recomputed when a canvas formatted text has its + // style recomputed. This can be improved by adding additional granularity + // of dirtiness tracking. + void SetNeedsStyleRecalc() override; + private: String text_; - + WeakMember<CanvasFormattedText> parent_; Member<LayoutText> layout_text_; };
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_formatted_text_run.idl b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_formatted_text_run.idl index 7e1ea4f..d8d1932 100644 --- a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_formatted_text_run.idl +++ b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_formatted_text_run.idl
@@ -9,4 +9,6 @@ [CallWith = ExecutionContext] constructor(DOMString text); attribute DOMString text; -}; \ No newline at end of file +}; + +CanvasFormattedTextRun includes CanvasFormattedTextStyle; \ No newline at end of file
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_formatted_text_style.cc b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_formatted_text_style.cc new file mode 100644 index 0000000..5c982100 --- /dev/null +++ b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_formatted_text_style.cc
@@ -0,0 +1,125 @@ +// Copyright 2022 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "third_party/blink/renderer/modules/canvas/canvas2d/canvas_formatted_text_style.h" +#include "third_party/blink/renderer/core/css/css_font_selector.h" +#include "third_party/blink/renderer/core/css/css_identifier_value.h" +#include "third_party/blink/renderer/core/css/css_value_list.h" +#include "third_party/blink/renderer/core/css/properties/longhand.h" +#include "third_party/blink/renderer/core/css/resolver/font_style_resolver.h" +#include "third_party/blink/renderer/core/css/resolver/style_adjuster.h" +#include "third_party/blink/renderer/core/css/resolver/style_resolver.h" +#include "third_party/blink/renderer/core/css/resolver/style_resolver_state.h" +#include "third_party/blink/renderer/core/css/style_engine.h" +#include "third_party/blink/renderer/core/css/style_property_serializer.h" +#include "third_party/blink/renderer/core/html/html_element.h" +#include "third_party/blink/renderer/core/style/computed_style.h" +#include "third_party/blink/renderer/core/style/computed_style_base_constants.h" + +namespace blink { + +StylePropertyMap* CanvasFormattedTextStyle::styleMap() { + if (!style_map_) { + style_map_ = MakeGarbageCollected<CanvasFormattedTextStylePropertyMap>( + is_text_run_, this); + } + return style_map_.Get(); +} + +const CSSPropertyValueSet* CanvasFormattedTextStyle::GetCssPropertySet() const { + return style_map_ ? style_map_->GetCssPropertySet() : nullptr; +} + +void CanvasFormattedTextStyle::Trace(Visitor* visitor) const { + visitor->Trace(style_map_); +} + +CanvasFormattedTextStylePropertyMap::CanvasFormattedTextStylePropertyMap( + bool is_text_run, + CanvasFormattedTextStyle* canvas_formatted_text_style) + : is_text_run_(is_text_run) { + css_property_value_set_ = + MakeGarbageCollected<MutableCSSPropertyValueSet>(kHTMLStandardMode); + canvas_formatted_text_style_ = canvas_formatted_text_style; +} + +const CSSValue* CanvasFormattedTextStylePropertyMap::GetProperty( + CSSPropertyID property_id) const { + return css_property_value_set_->GetPropertyCSSValue(property_id); +} + +const CSSValue* CanvasFormattedTextStylePropertyMap::GetCustomProperty( + const AtomicString& property_name) const { + // Custom properties or CSS variables are not supported for + // CanvasFormattedText at this point. + NOTREACHED(); + return nullptr; +} + +void CanvasFormattedTextStylePropertyMap::ForEachProperty( + const IterationCallback& callback) { + for (unsigned i = 0; i < css_property_value_set_->PropertyCount(); i++) { + const auto& property_reference = css_property_value_set_->PropertyAt(i); + callback(property_reference.Name(), property_reference.Value()); + } +} + +void CanvasFormattedTextStylePropertyMap::SetProperty( + CSSPropertyID unresolved_property, + const CSSValue& value) { + const CSSProperty& prop = CSSProperty::Get(unresolved_property); + if ((prop.IsValidForCanvasFormattedText() && !is_text_run_) || + (prop.IsValidForCanvasFormattedTextRun() && is_text_run_)) { + css_property_value_set_->SetProperty(unresolved_property, value); + if (canvas_formatted_text_style_) + canvas_formatted_text_style_->SetNeedsStyleRecalc(); + } +} + +bool CanvasFormattedTextStylePropertyMap::SetShorthandProperty( + CSSPropertyID unresolved_property, + const String& string, + SecureContextMode secure_context) { + MutableCSSPropertyValueSet::SetResult result = + css_property_value_set_->SetProperty(unresolved_property, string, false, + secure_context); + if (canvas_formatted_text_style_ && + result != MutableCSSPropertyValueSet::kParseError) + canvas_formatted_text_style_->SetNeedsStyleRecalc(); + return result != MutableCSSPropertyValueSet::kParseError; +} + +void CanvasFormattedTextStylePropertyMap::SetCustomProperty(const AtomicString&, + const CSSValue&) { + // Custom properties are not supported on CanvasFormattedText + NOTREACHED(); +} + +void CanvasFormattedTextStylePropertyMap::RemoveProperty( + CSSPropertyID property_id) { + bool did_change = css_property_value_set_->RemoveProperty(property_id); + if (did_change) { + canvas_formatted_text_style_->SetNeedsStyleRecalc(); + } +} + +void CanvasFormattedTextStylePropertyMap::RemoveCustomProperty( + const AtomicString&) { + // Custom properties are not supported on CanvasFormattedText + NOTREACHED(); +} + +void CanvasFormattedTextStylePropertyMap::RemoveAllProperties() { + css_property_value_set_->Clear(); + canvas_formatted_text_style_->SetNeedsStyleRecalc(); +} + +String CanvasFormattedTextStylePropertyMap::SerializationForShorthand( + const CSSProperty& property) const { + DCHECK(property.IsShorthand()); + return StylePropertySerializer(*css_property_value_set_) + .SerializeShorthand(property.PropertyID()); +} + +} // namespace blink
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_formatted_text_style.h b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_formatted_text_style.h new file mode 100644 index 0000000..87df308 --- /dev/null +++ b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_formatted_text_style.h
@@ -0,0 +1,80 @@ +// Copyright 2022 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_CANVAS_CANVAS2D_CANVAS_FORMATTED_TEXT_STYLE_H_ +#define THIRD_PARTY_BLINK_RENDERER_MODULES_CANVAS_CANVAS2D_CANVAS_FORMATTED_TEXT_STYLE_H_ + +#include "third_party/blink/renderer/core/css/css_property_value_set.h" +#include "third_party/blink/renderer/core/css/cssom/style_property_map.h" + +namespace blink { + +class CanvasFormattedTextStylePropertyMap; +class FontDescription; + +class CanvasFormattedTextStyle : public GarbageCollectedMixin { + DISALLOW_NEW(); + + public: + explicit CanvasFormattedTextStyle(bool is_text_run) + : is_text_run_(is_text_run) {} + StylePropertyMap* styleMap(); + + virtual void SetNeedsStyleRecalc() = 0; + const CSSPropertyValueSet* GetCssPropertySet() const; + + void Trace(Visitor* visitor) const override; + + private: + bool is_text_run_; + Member<CanvasFormattedTextStylePropertyMap> style_map_; +}; + +class CanvasFormattedTextStylePropertyMap final : public StylePropertyMap { + public: + explicit CanvasFormattedTextStylePropertyMap(bool is_text_run, + CanvasFormattedTextStyle*); + CanvasFormattedTextStylePropertyMap( + const CanvasFormattedTextStylePropertyMap&) = delete; + CanvasFormattedTextStylePropertyMap& operator=( + const CanvasFormattedTextStylePropertyMap&) = delete; + + void Trace(Visitor* visitor) const override { + visitor->Trace(css_property_value_set_); + visitor->Trace(canvas_formatted_text_style_); + StylePropertyMap::Trace(visitor); + } + + unsigned int size() const final { + return css_property_value_set_->PropertyCount(); + } + + const CSSPropertyValueSet* GetCssPropertySet() const { + return css_property_value_set_; + } + + protected: + const CSSValue* GetProperty(CSSPropertyID) const override; + const CSSValue* GetCustomProperty(const AtomicString&) const override; + void ForEachProperty(const IterationCallback&) override; + void SetProperty(CSSPropertyID, const CSSValue&) override; + bool SetShorthandProperty(CSSPropertyID, + const String&, + SecureContextMode) override; + void SetCustomProperty(const AtomicString&, const CSSValue&) override; + void RemoveProperty(CSSPropertyID) override; + void RemoveCustomProperty(const AtomicString&) override; + void RemoveAllProperties() final; + + String SerializationForShorthand(const CSSProperty&) const final; + + private: + Member<MutableCSSPropertyValueSet> css_property_value_set_; + WeakMember<CanvasFormattedTextStyle> canvas_formatted_text_style_; + bool is_text_run_; +}; + +} // namespace blink + +#endif // THIRD_PARTY_BLINK_RENDERER_MODULES_CANVAS_CANVAS2D_CANVAS_FORMATTED_TEXT_STYLE_H_
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_formatted_text_style.idl b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_formatted_text_style.idl new file mode 100644 index 0000000..8b2f6f55 --- /dev/null +++ b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_formatted_text_style.idl
@@ -0,0 +1,6 @@ +// Copyright 2022 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. +interface mixin CanvasFormattedTextStyle{ + [SameObject] readonly attribute StylePropertyMap styleMap; +}; \ No newline at end of file
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 cc3cbb7..8b1bfba3 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
@@ -925,7 +925,8 @@ CanvasFormattedText* formatted_text, double x, double y, - double wrap_width) { + double wrap_width, + double height) { if (!formatted_text) return; // TODO(crbug.com/1234113): Instrument new canvas APIs. @@ -937,7 +938,7 @@ gfx::RectF bounds; sk_sp<PaintRecord> recording = formatted_text->PaintFormattedText( canvas()->GetDocument(), GetState().GetFontDescription(), x, y, - wrap_width, bounds); + wrap_width, height, bounds); Draw<OverdrawOp::kNone>( [recording](cc::PaintCanvas* c, const cc::PaintFlags* flags) // draw lambda
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.h b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.h index 6ae2ce4..89d3eb07 100644 --- a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.h +++ b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.h
@@ -139,7 +139,8 @@ void fillFormattedText(CanvasFormattedText* formatted_text, double x, double y, - double wrap_width); + double wrap_width, + double height = kIndefiniteSize); void drawFocusIfNeeded(Element*); void drawFocusIfNeeded(Path2D*, Element*);
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.idl b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.idl index 3e96a86..34e7bba 100644 --- a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.idl +++ b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.idl
@@ -123,7 +123,7 @@ TextMetrics measureText(DOMString text); // Render entire CanvasFormattedText with line wrapping (one-shot) - [RuntimeEnabled=CanvasFormattedText] void fillFormattedText(CanvasFormattedText formattedText, double x, double y, double wrapWidth); + [RuntimeEnabled=CanvasFormattedText] void fillFormattedText(CanvasFormattedText formattedText, double x, double y, double wrapWidth, optional double height); // drawing images [RaisesException] void drawImage(CanvasImageSource image, unrestricted double x, unrestricted double y);
diff --git a/third_party/blink/renderer/platform/graphics/image.cc b/third_party/blink/renderer/platform/graphics/image.cc index de65afdf..87b6e7e 100644 --- a/third_party/blink/renderer/platform/graphics/image.cc +++ b/third_party/blink/renderer/platform/graphics/image.cc
@@ -116,7 +116,8 @@ ImageOrientation orientation, gfx::Vector2dF image_scale, float opacity, - InterpolationQuality interpolation_quality) { + InterpolationQuality interpolation_quality, + sk_sp<SkColorSpace> color_space) { gfx::Size size(image.width(), image.height()); size = gfx::ScaleToFlooredSize(size, image_scale.x(), image_scale.y()); AffineTransform transform; @@ -130,17 +131,24 @@ if (size.IsEmpty()) return PaintImage(); - if (transform.IsIdentity() && opacity == 1) { + const auto image_color_space = image.GetSkImageInfo().colorSpace() + ? image.GetSkImageInfo().refColorSpace() + : SkColorSpace::MakeSRGB(); + const auto surface_color_space = + color_space ? color_space : image_color_space; + const bool needs_color_conversion = + !SkColorSpace::Equals(image_color_space.get(), surface_color_space.get()); + + if (transform.IsIdentity() && opacity == 1 && !needs_color_conversion) { // Nothing to adjust, just use the original. DCHECK_EQ(image.width(), size.width()); DCHECK_EQ(image.height(), size.height()); return image; } - const SkImageInfo info = - SkImageInfo::MakeN32(size.width(), size.height(), kPremul_SkAlphaType, - SkColorSpace::MakeSRGB()); - sk_sp<SkSurface> surface = SkSurface::MakeRaster(info); + const SkImageInfo surface_info = SkImageInfo::MakeN32( + size.width(), size.height(), kPremul_SkAlphaType, surface_color_space); + sk_sp<SkSurface> surface = SkSurface::MakeRaster(surface_info); if (!surface) return PaintImage();
diff --git a/third_party/blink/renderer/platform/graphics/image.h b/third_party/blink/renderer/platform/graphics/image.h index b3e7b599..7056534 100644 --- a/third_party/blink/renderer/platform/graphics/image.h +++ b/third_party/blink/renderer/platform/graphics/image.h
@@ -83,12 +83,18 @@ int resource_id, ui::ResourceScaleFactor scale_factor = ui::k100Percent); + // Resize and reorient the specified PaintImage. The resulting image will have + // color type kN32_SkColorType. The resulting image will have the same color + // space as the input PaintImage, unless a non-nullptr SkColorSpace is + // specified, in which case the resulting image will have the specified color + // space. static PaintImage ResizeAndOrientImage( const PaintImage&, ImageOrientation, gfx::Vector2dF image_scale = gfx::Vector2dF(1, 1), float opacity = 1.0, - InterpolationQuality = kInterpolationNone); + InterpolationQuality = kInterpolationNone, + sk_sp<SkColorSpace> color_space = nullptr); virtual bool IsSVGImage() const { return false; } virtual bool IsSVGImageForContainer() const { return false; }
diff --git a/third_party/blink/renderer/platform/peerconnection/rtc_video_encoder_factory.cc b/third_party/blink/renderer/platform/peerconnection/rtc_video_encoder_factory.cc index 57e3a5a..38f0edd 100644 --- a/third_party/blink/renderer/platform/peerconnection/rtc_video_encoder_factory.cc +++ b/third_party/blink/renderer/platform/peerconnection/rtc_video_encoder_factory.cc
@@ -175,8 +175,7 @@ supported_formats.sdp_formats.push_back(std::move(*format)); #if BUILDFLAG(IS_WIN) - if (base::FeatureList::IsEnabled( - media::kMediaFoundationH264CbpEncoding) && + if (media::IsMediaFoundationH264CbpEncodingEnabled() && profile.profile == media::VideoCodecProfile::H264PROFILE_BASELINE) { supported_formats.profiles.push_back(profile.profile); supported_formats.scalability_modes.push_back(
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 index e77c1ad..47b308dc 100644 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
@@ -358,6 +358,7 @@ }, { name: "CanvasFormattedText", + depends_on: ["LayoutNG"], status: "experimental", }, {
diff --git a/third_party/blink/web_tests/FlagExpectations/disable-layout-ng b/third_party/blink/web_tests/FlagExpectations/disable-layout-ng index 1b05c41..ecf43e7 100644 --- a/third_party/blink/web_tests/FlagExpectations/disable-layout-ng +++ b/third_party/blink/web_tests/FlagExpectations/disable-layout-ng
@@ -1529,6 +1529,8 @@ # CanvasFormattedText is supported only through layout NG crbug.com/1176933 fast/canvas/canvas-formattedtext-1.html [ Skip ] crbug.com/1176933 fast/canvas/canvas-formattedtext-2.html [ Skip ] +crbug.com/1176933 fast/canvas-api/canvas-formattedtext.html [ Skip ] +crbug.com/1176933 wpt_internal/canvas/canvas-formattedtext-style.html [ Skip ] crbug.com/1176933 virtual/gpu/fast/canvas/canvas-formattedtext-1.html [ Skip ] crbug.com/1176933 virtual/gpu/fast/canvas/canvas-formattedtext-2.html [ Skip ] @@ -1550,7 +1552,6 @@ crbug.com/591099 external/wpt/css/css-writing-modes/alt-display-vertical-001-manual.html [ Failure ] crbug.com/591099 external/wpt/css/css-writing-modes/tooltip-display-vertical-001-manual.html [ Failure ] crbug.com/591099 external/wpt/html/editing/dnd/platform/close-drag-005-manual.html [ Failure ] -crbug.com/591099 fast/canvas-api/canvas-formattedtext.html [ Crash ] crbug.com/591099 http/tests/devtools/elements/highlight/highlight-css-flex-item.js [ Failure ] # Failures accumulated until 2021-5-11
diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/web_tests/TestExpectations index e5421802..65d5a3c 100644 --- a/third_party/blink/web_tests/TestExpectations +++ b/third_party/blink/web_tests/TestExpectations
@@ -1298,50 +1298,7 @@ crbug.com/591099 external/wpt/css/css-ui/text-overflow-015.html [ Failure ] # Various issues related to the 'appearance' property: crbug.com/1284269 external/wpt/css/css-ui/compute-kind-widget-fallback-props-revert-001.html [ Failure ] -crbug.com/1284251 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-background-color-001.html [ Failure ] -crbug.com/1284251 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-background-position-001.html [ Failure ] -crbug.com/1284251 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-block-start-color-001.html [ Failure ] -crbug.com/1284251 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-bottom-left-radius-001.html [ Failure ] -crbug.com/1284251 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-bottom-width-001.html [ Failure ] crbug.com/1284251 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-end-start-radius-001.html [ Failure ] -crbug.com/1284251 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-image-source-001.html [ Failure ] -crbug.com/1284251 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-inline-end-width-001.html [ Failure ] -crbug.com/1284251 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-inline-start-style-001.html [ Failure ] -crbug.com/1284251 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-left-style-001.html [ Failure ] -crbug.com/1284251 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-top-right-radius-001.html [ Failure ] -crbug.com/1284251 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-top-style-001.html [ Failure ] -crbug.com/1284251 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-top-width-001.html [ Failure ] -crbug.com/1284251 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-background-attachment-001.html [ Failure ] -crbug.com/1284251 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-background-clip-001.html [ Failure ] -crbug.com/1284251 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-background-image-001.html [ Failure ] -crbug.com/1284251 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-background-origin-001.html [ Failure ] -crbug.com/1284251 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-background-size-001.html [ Failure ] -crbug.com/1284251 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-block-end-color-001.html [ Failure ] -crbug.com/1284251 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-block-end-style-001.html [ Failure ] -crbug.com/1284251 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-block-end-width-001.html [ Failure ] -crbug.com/1284251 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-block-start-style-001.html [ Failure ] -crbug.com/1284251 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-block-start-width-001.html [ Failure ] -crbug.com/1284251 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-bottom-color-001.html [ Failure ] -crbug.com/1284251 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-bottom-right-radius-001.html [ Failure ] -crbug.com/1284251 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-bottom-style-001.html [ Failure ] -crbug.com/1284251 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-end-end-radius-001.html [ Failure ] -crbug.com/1284251 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-image-outset-001.html [ Failure ] -crbug.com/1284251 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-image-repeat-001.html [ Failure ] -crbug.com/1284251 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-image-slice-001.html [ Crash Failure ] -crbug.com/1284251 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-image-width-001.html [ Failure ] -crbug.com/1284251 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-inline-end-color-001.html [ Failure ] -crbug.com/1284251 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-inline-end-style-001.html [ Failure ] -crbug.com/1284251 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-inline-start-color-001.html [ Failure ] -crbug.com/1284251 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-inline-start-width-001.html [ Failure ] -crbug.com/1284251 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-left-color-001.html [ Failure ] -crbug.com/1284251 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-left-width-001.html [ Failure ] -crbug.com/1284251 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-right-color-001.html [ Failure ] -crbug.com/1284251 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-right-style-001.html [ Failure ] -crbug.com/1284251 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-right-width-001.html [ Failure ] -crbug.com/1284251 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-start-end-radius-001.html [ Failure ] -crbug.com/1284251 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-start-start-radius-001.html [ Failure Timeout ] -crbug.com/1284251 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-top-color-001.html [ Failure ] -crbug.com/1284251 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-top-left-radius-001.html [ Failure ] crbug.com/1284270 [ Fuchsia ] external/wpt/css/css-ui/compute-kind-widget-no-fallback-props-001.html [ Failure ] crbug.com/1284270 [ Linux ] external/wpt/css/css-ui/compute-kind-widget-no-fallback-props-001.html [ Failure ] crbug.com/1284270 [ Mac10.12 ] external/wpt/css/css-ui/compute-kind-widget-no-fallback-props-001.html [ Failure Timeout ] @@ -3378,6 +3335,62 @@ 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 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-background-attachment-001.html [ Failure ] +crbug.com/626703 [ Linux ] external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-background-clip-001.html [ Failure ] +crbug.com/626703 [ Mac10.12 ] external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-background-clip-001.html [ Failure ] +crbug.com/626703 [ Mac10.14 ] external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-background-clip-001.html [ Failure ] +crbug.com/626703 [ Mac10.15 ] external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-background-clip-001.html [ Failure ] +crbug.com/626703 [ Mac11 ] external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-background-clip-001.html [ Failure ] +crbug.com/626703 [ Mac11-arm64 ] external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-background-clip-001.html [ Failure ] +crbug.com/626703 [ Win ] external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-background-clip-001.html [ Failure ] +crbug.com/626703 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-background-color-001.html [ Failure ] +crbug.com/626703 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-background-image-001.html [ Failure ] +crbug.com/626703 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-background-origin-001.html [ Failure ] +crbug.com/626703 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-background-position-001.html [ Failure ] +crbug.com/626703 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-background-size-001.html [ Failure ] +crbug.com/626703 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-block-end-color-001.html [ Failure ] +crbug.com/626703 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-block-end-style-001.html [ Failure ] +crbug.com/626703 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-block-end-width-001.html [ Failure ] +crbug.com/626703 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-block-start-color-001.html [ Failure ] +crbug.com/626703 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-block-start-style-001.html [ Failure ] +crbug.com/626703 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-block-start-width-001.html [ Failure ] +crbug.com/626703 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-bottom-color-001.html [ Failure ] +crbug.com/626703 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-bottom-left-radius-001.html [ Failure ] +crbug.com/626703 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-bottom-right-radius-001.html [ Failure ] +crbug.com/626703 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-bottom-style-001.html [ Failure ] +crbug.com/626703 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-bottom-width-001.html [ Failure ] +crbug.com/626703 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-end-end-radius-001.html [ Failure ] +crbug.com/626703 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-end-start-radius-001.html [ Failure ] +crbug.com/626703 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-image-outset-001.html [ Failure ] +crbug.com/626703 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-image-repeat-001.html [ Failure ] +crbug.com/626703 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-image-slice-001.html [ Failure ] +crbug.com/626703 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-image-source-001.html [ Failure ] +crbug.com/626703 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-image-width-001.html [ Failure ] +crbug.com/626703 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-inline-end-color-001.html [ Failure ] +crbug.com/626703 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-inline-end-style-001.html [ Failure ] +crbug.com/626703 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-inline-end-width-001.html [ Failure ] +crbug.com/626703 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-inline-start-color-001.html [ Failure ] +crbug.com/626703 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-inline-start-style-001.html [ Failure ] +crbug.com/626703 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-inline-start-width-001.html [ Failure ] +crbug.com/626703 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-left-color-001.html [ Failure ] +crbug.com/626703 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-left-style-001.html [ Failure ] +crbug.com/626703 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-left-width-001.html [ Failure ] +crbug.com/626703 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-right-color-001.html [ Failure ] +crbug.com/626703 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-right-style-001.html [ Failure ] +crbug.com/626703 [ Linux ] external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-right-width-001.html [ Failure ] +crbug.com/626703 [ Mac10.12 ] external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-right-width-001.html [ Failure ] +crbug.com/626703 [ Mac10.14 ] external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-right-width-001.html [ Failure ] +crbug.com/626703 [ Mac10.15 ] external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-right-width-001.html [ Failure ] +crbug.com/626703 [ Mac11 ] external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-right-width-001.html [ Failure ] +crbug.com/626703 [ Mac11-arm64 ] external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-right-width-001.html [ Failure ] +crbug.com/626703 [ Win ] external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-right-width-001.html [ Failure ] +crbug.com/626703 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-start-end-radius-001.html [ Failure ] +crbug.com/626703 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-start-start-radius-001.html [ Failure ] +crbug.com/626703 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-top-color-001.html [ Failure ] +crbug.com/626703 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-top-left-radius-001.html [ Failure ] +crbug.com/626703 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-top-right-radius-001.html [ Failure ] +crbug.com/626703 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-top-style-001.html [ Failure ] +crbug.com/626703 external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-top-width-001.html [ Failure ] crbug.com/626703 [ Mac11-arm64 ] external/wpt/fetch/api/basic/request-upload.h2.any.worker.html [ Timeout ] crbug.com/626703 [ Mac11-arm64 ] external/wpt/loading/early-hints/coep-early-hints-none-final-require-corp.h2.window.html [ Timeout ] crbug.com/626703 [ Mac11-arm64 ] external/wpt/websockets/Close-1000-reason.any.html?wpt_flags=h2 [ Failure Timeout ] @@ -4471,7 +4484,7 @@ crbug.com/764235 external/wpt/css/css-grid/alignment/grid-baseline-justify-001.html [ Failure ] # [css-subgrid] -crbug.com/618969 external/wpt/css/css-grid/subgrid/abs-pos-002.html [ Failure Crash Timeout ] +crbug.com/618969 external/wpt/css/css-grid/subgrid/abs-pos-002.html [ Crash Failure Timeout ] crbug.com/618969 external/wpt/css/css-grid/subgrid/abs-pos-003.html [ Failure ] crbug.com/618969 external/wpt/css/css-grid/subgrid/abs-pos-004.html [ Failure ] crbug.com/618969 external/wpt/css/css-grid/subgrid/auto-track-sizing-001.html [ Failure ] @@ -4515,9 +4528,9 @@ crbug.com/618969 external/wpt/css/css-grid/subgrid/repeat-auto-fill-007.html [ Failure ] crbug.com/618969 external/wpt/css/css-grid/subgrid/repeat-auto-fill-008.html [ Failure ] crbug.com/618969 external/wpt/css/css-grid/subgrid/subgrid-item-block-size-001.html [ Failure ] -crbug.com/618969 external/wpt/css/css-grid/subgrid/subgrid-mbp-overflow-001.html [ Failure Crash Timeout ] -crbug.com/618969 external/wpt/css/css-grid/subgrid/subgrid-mbp-overflow-002.html [ Failure Crash Timeout ] -crbug.com/618969 external/wpt/css/css-grid/subgrid/subgrid-mbp-overflow-003.html [ Failure Crash Timeout ] +crbug.com/618969 external/wpt/css/css-grid/subgrid/subgrid-mbp-overflow-001.html [ Crash Failure Timeout ] +crbug.com/618969 external/wpt/css/css-grid/subgrid/subgrid-mbp-overflow-002.html [ Crash Failure Timeout ] +crbug.com/618969 external/wpt/css/css-grid/subgrid/subgrid-mbp-overflow-003.html [ Crash Failure Timeout ] crbug.com/618969 external/wpt/css/css-grid/subgrid/subgrid-mbp-overflow-004.html [ Failure ] crbug.com/618969 external/wpt/css/css-grid/subgrid/subgrid-stretch.html [ Failure ] @@ -7635,10 +7648,10 @@ # Anonymous iframe > CacheStorage: # From two same-origin-different-partition context, the second `cache.put` # request hangs indefinitely. -crbug.com/1285275 external/wpt/html/anonymous-iframe/cache-storage.tentative.https.window.html [ Timeout Pass ] -crbug.com/1285275 virtual/fenced-frame-mparch/external/wpt/html/anonymous-iframe/cache-storage.tentative.https.window.html [ Timeout Pass ] -crbug.com/1285275 virtual/fenced-frame-shadow-dom/external/wpt/html/anonymous-iframe/cache-storage.tentative.https.window.html [ Timeout Pass ] -crbug.com/1285275 virtual/partitioned-cookies/external/wpt/html/anonymous-iframe/cache-storage.tentative.https.window.html [ Timeout Pass ] +crbug.com/1285275 external/wpt/html/anonymous-iframe/cache-storage.tentative.https.window.html [ Pass Timeout ] +crbug.com/1285275 virtual/fenced-frame-mparch/external/wpt/html/anonymous-iframe/cache-storage.tentative.https.window.html [ Pass Timeout ] +crbug.com/1285275 virtual/fenced-frame-shadow-dom/external/wpt/html/anonymous-iframe/cache-storage.tentative.https.window.html [ Pass Timeout ] +crbug.com/1285275 virtual/partitioned-cookies/external/wpt/html/anonymous-iframe/cache-storage.tentative.https.window.html [ Pass Timeout ] # Sheriff 2022-03-10 crbug.com/1304956 storage/indexeddb/dont-wedge.html [ Failure Pass ]
diff --git a/third_party/blink/web_tests/external/Version b/third_party/blink/web_tests/external/Version index 6e3bc55b..1c0cc90 100644 --- a/third_party/blink/web_tests/external/Version +++ b/third_party/blink/web_tests/external/Version
@@ -1 +1 @@ -Version: 1201e135a4caf5eb65dbb4dfc2763b959a45970a +Version: 8678fd4c89c2efe2440f82a0a172dcafff462ff6
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 3d886d7..d2e8ecd 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
@@ -697,6 +697,13 @@ {} ] ], + "force-sibling-style-crash.html": [ + "093a01b809d97b00f797c3be14706cbb4d742ede", + [ + null, + {} + ] + ], "grid-in-columns-000-crash.html": [ "56cf6cfdbbcc43c1403692895cec7c0071f6eea8", [ @@ -1340,6 +1347,13 @@ ] ], "crashtests": { + "chrome-counter-in-multicol-details-crash.html": [ + "d992f0a1d96ec24d044c6b03894f4621994cbf88", + [ + null, + {} + ] + ], "chrome-legacy-propagation-crash.html": [ "8ec14ce09053946f78a016f1f37190814527e82d", [ @@ -3839,6 +3853,13 @@ {} ] ], + "slot-dir-attach-child-crash.html": [ + "3da70e3e1408b67d68f024ce97757801ad1cd550", + [ + null, + {} + ] + ], "user-agent-shadow-root-crash.html": [ "bd90b04f290f87eac420eb98457b58701eb31320", [ @@ -146018,6 +146039,19 @@ {} ] ], + "position-sticky-overflow-clip-container.html": [ + "63356349afecd3f2b25e080186ba509eb3980cab", + [ + null, + [ + [ + "/css/css-position/sticky/position-sticky-overflow-clip-container-ref.html", + "==" + ] + ], + {} + ] + ], "position-sticky-rendering.html": [ "a4e03c59d8faba77884e4a290dd188044dcb23a6", [ @@ -190612,572 +190646,10296 @@ ] ], "compute-kind-widget-generated": { - "kind-of-widget-fallback-background-attachment-001.html": [ - "dfdb30764a05ff43a90c456ee7370a4b44915057", + "kind-of-widget-fallback-button-background-attachment-001.html": [ + "065fc6dca601b2cf889d51b658e79658317afcf1", [ null, [ [ - "/css/css-ui/compute-kind-widget-fallback-ref.html", + "/css/css-ui/compute-kind-widget-fallback-button-ref.html", "==" ] ], {} ] ], - "kind-of-widget-fallback-background-clip-001.html": [ - "cf6862fa69a0d73a879376d67404436b30b591ac", + "kind-of-widget-fallback-button-background-clip-001.html": [ + "7059583860fc37cae719f2bf3d3052c7fb71526c", [ null, [ [ - "/css/css-ui/compute-kind-widget-fallback-ref.html", + "/css/css-ui/compute-kind-widget-fallback-button-ref.html", "==" ] ], {} ] ], - "kind-of-widget-fallback-background-color-001.html": [ - "f080bae232ab9bbf8361f3771bf3050be8dc76c8", + "kind-of-widget-fallback-button-background-color-001.html": [ + "bcef8dcd985a1967dffc06769e0a18cb36e559c7", [ null, [ [ - "/css/css-ui/compute-kind-widget-fallback-ref.html", + "/css/css-ui/compute-kind-widget-fallback-button-ref.html", "==" ] ], {} ] ], - "kind-of-widget-fallback-background-image-001.html": [ - "b5b5231eb165faf451a83e2cd383206b703f55b0", + "kind-of-widget-fallback-button-background-image-001.html": [ + "c2ff3ad6df24d1c04b48439f0d864606c5c56496", [ null, [ [ - "/css/css-ui/compute-kind-widget-fallback-ref.html", + "/css/css-ui/compute-kind-widget-fallback-button-ref.html", "==" ] ], {} ] ], - "kind-of-widget-fallback-background-origin-001.html": [ - "d826c0b1669196c8ad3f1ecd5f3ca634ee6efb14", + "kind-of-widget-fallback-button-background-origin-001.html": [ + "3e6a287e3fa1367cc9b8ec1d1f1b973ee06bae7f", [ null, [ [ - "/css/css-ui/compute-kind-widget-fallback-ref.html", + "/css/css-ui/compute-kind-widget-fallback-button-ref.html", "==" ] ], {} ] ], - "kind-of-widget-fallback-background-position-001.html": [ - "290d12356f87551e2f946b51ba1686750f9df806", + "kind-of-widget-fallback-button-background-position-001.html": [ + "8c35eb79fb30074997ea103b562f9ed8ffdaedcd", [ null, [ [ - "/css/css-ui/compute-kind-widget-fallback-ref.html", + "/css/css-ui/compute-kind-widget-fallback-button-ref.html", "==" ] ], {} ] ], - "kind-of-widget-fallback-background-size-001.html": [ - "105a439aa9ff61ec553d29a61dad30ff6c030a16", + "kind-of-widget-fallback-button-background-size-001.html": [ + "a177d5c50b698b00d868885a5f2dc81ebfac6fa3", [ null, [ [ - "/css/css-ui/compute-kind-widget-fallback-ref.html", + "/css/css-ui/compute-kind-widget-fallback-button-ref.html", "==" ] ], {} ] ], - "kind-of-widget-fallback-border-block-end-color-001.html": [ - "480a2926cba9f70fa4065f17bbc1fe02195fa0b8", + "kind-of-widget-fallback-button-border-block-end-color-001.html": [ + "bc1220b5662cb858065661dd28e1b67f98e4b286", [ null, [ [ - "/css/css-ui/compute-kind-widget-fallback-ref.html", + "/css/css-ui/compute-kind-widget-fallback-button-ref.html", "==" ] ], {} ] ], - "kind-of-widget-fallback-border-block-end-style-001.html": [ - "a6fac1a09821f852cb3ad8abc77eb93efcce43f2", + "kind-of-widget-fallback-button-border-block-end-style-001.html": [ + "326ccec4469709ea4ab8a4070240999b02596b19", [ null, [ [ - "/css/css-ui/compute-kind-widget-fallback-ref.html", + "/css/css-ui/compute-kind-widget-fallback-button-ref.html", "==" ] ], {} ] ], - "kind-of-widget-fallback-border-block-end-width-001.html": [ - "a73d5b52d3905f49f2d6c09195b350dc03227a59", + "kind-of-widget-fallback-button-border-block-end-width-001.html": [ + "6d88e2a8e42d309e4650435af0f534259c4c795b", [ null, [ [ - "/css/css-ui/compute-kind-widget-fallback-ref.html", + "/css/css-ui/compute-kind-widget-fallback-button-ref.html", "==" ] ], {} ] ], - "kind-of-widget-fallback-border-block-start-color-001.html": [ - "c7be4f45cb06c8790906a54470e731ee0411f41d", + "kind-of-widget-fallback-button-border-block-start-color-001.html": [ + "30f3867c5eec5ebe4da4f56c2d8c70163601586a", [ null, [ [ - "/css/css-ui/compute-kind-widget-fallback-ref.html", + "/css/css-ui/compute-kind-widget-fallback-button-ref.html", "==" ] ], {} ] ], - "kind-of-widget-fallback-border-block-start-style-001.html": [ - "6670cb671bebd9f4307b66d84fc3f319fc818de2", + "kind-of-widget-fallback-button-border-block-start-style-001.html": [ + "69f21ffab2f4a1d701f747022a5b3299a8de2874", [ null, [ [ - "/css/css-ui/compute-kind-widget-fallback-ref.html", + "/css/css-ui/compute-kind-widget-fallback-button-ref.html", "==" ] ], {} ] ], - "kind-of-widget-fallback-border-block-start-width-001.html": [ - "13b932a84855521f5bf6e3de4d5a934e923ef23e", + "kind-of-widget-fallback-button-border-block-start-width-001.html": [ + "05b17053bee2b29f9e64b4a7bf86f33330e29d9d", [ null, [ [ - "/css/css-ui/compute-kind-widget-fallback-ref.html", + "/css/css-ui/compute-kind-widget-fallback-button-ref.html", "==" ] ], {} ] ], - "kind-of-widget-fallback-border-bottom-color-001.html": [ - "8cb1ed7a985719498f5b7e6aeefa9e1d8752d0c6", + "kind-of-widget-fallback-button-border-bottom-color-001.html": [ + "d18b6a1173877cd38f8e8e339670e5f02c6eda1c", [ null, [ [ - "/css/css-ui/compute-kind-widget-fallback-ref.html", + "/css/css-ui/compute-kind-widget-fallback-button-ref.html", "==" ] ], {} ] ], - "kind-of-widget-fallback-border-bottom-left-radius-001.html": [ - "6f9af43c4710ab3d2e69b20e3b345abd8ada3c9c", + "kind-of-widget-fallback-button-border-bottom-left-radius-001.html": [ + "1da373a781aa8423277aa4abcd304ac41fe4d4b2", [ null, [ [ - "/css/css-ui/compute-kind-widget-fallback-ref.html", + "/css/css-ui/compute-kind-widget-fallback-button-ref.html", "==" ] ], {} ] ], - "kind-of-widget-fallback-border-bottom-right-radius-001.html": [ - "356457f3b06de0a51644af7aad6fb1743b9441a3", + "kind-of-widget-fallback-button-border-bottom-right-radius-001.html": [ + "cd2ccf665f563ad7918cfd510cc732cf5505e283", [ null, [ [ - "/css/css-ui/compute-kind-widget-fallback-ref.html", + "/css/css-ui/compute-kind-widget-fallback-button-ref.html", "==" ] ], {} ] ], - "kind-of-widget-fallback-border-bottom-style-001.html": [ - "0173f0209103e274bdd1379b71eb5e247e35ef31", + "kind-of-widget-fallback-button-border-bottom-style-001.html": [ + "b7aad05558eb07026fae67502a37b615e6f8ece7", [ null, [ [ - "/css/css-ui/compute-kind-widget-fallback-ref.html", + "/css/css-ui/compute-kind-widget-fallback-button-ref.html", "==" ] ], {} ] ], - "kind-of-widget-fallback-border-bottom-width-001.html": [ - "f8d2f84ff614645f3e41d64399f8df89b060ecec", + "kind-of-widget-fallback-button-border-bottom-width-001.html": [ + "ecdf09ac0d01d6added655eef499384f1f7bf79f", [ null, [ [ - "/css/css-ui/compute-kind-widget-fallback-ref.html", + "/css/css-ui/compute-kind-widget-fallback-button-ref.html", "==" ] ], {} ] ], - "kind-of-widget-fallback-border-end-end-radius-001.html": [ - "9fa13b481eb12871bf4bf8527ff32446e199df42", + "kind-of-widget-fallback-button-border-end-end-radius-001.html": [ + "b7a4342845b385e5f658e37e891e9dfe58db2f85", [ null, [ [ - "/css/css-ui/compute-kind-widget-fallback-ref.html", + "/css/css-ui/compute-kind-widget-fallback-button-ref.html", "==" ] ], {} ] ], - "kind-of-widget-fallback-border-end-start-radius-001.html": [ - "7f3667e2852651cf27828e09faafd3ac6aca3c7c", + "kind-of-widget-fallback-button-border-end-start-radius-001.html": [ + "3756b2a201969c7bc98a6b50a5edfdb395a9f651", [ null, [ [ - "/css/css-ui/compute-kind-widget-fallback-ref.html", + "/css/css-ui/compute-kind-widget-fallback-button-ref.html", "==" ] ], {} ] ], - "kind-of-widget-fallback-border-image-outset-001.html": [ - "dc3c8722400a1da35f0153714d18f298822fd758", + "kind-of-widget-fallback-button-border-image-outset-001.html": [ + "8ad71780de83c9b1c59884bdc50163174ad705de", [ null, [ [ - "/css/css-ui/compute-kind-widget-fallback-ref.html", + "/css/css-ui/compute-kind-widget-fallback-button-ref.html", "==" ] ], {} ] ], - "kind-of-widget-fallback-border-image-repeat-001.html": [ - "388ad9acd3ff54d591d70ab8f7ff8b4a83a84cbf", + "kind-of-widget-fallback-button-border-image-repeat-001.html": [ + "a212ee7ef39e5c026253a91f231939153c02f045", [ null, [ [ - "/css/css-ui/compute-kind-widget-fallback-ref.html", + "/css/css-ui/compute-kind-widget-fallback-button-ref.html", "==" ] ], {} ] ], - "kind-of-widget-fallback-border-image-slice-001.html": [ - "971239c7d75d3c92b8f14bdac781630c2ed56286", + "kind-of-widget-fallback-button-border-image-slice-001.html": [ + "d3f87ebe5ab2e9c08889962b0ec190bd165dba08", [ null, [ [ - "/css/css-ui/compute-kind-widget-fallback-ref.html", + "/css/css-ui/compute-kind-widget-fallback-button-ref.html", "==" ] ], {} ] ], - "kind-of-widget-fallback-border-image-source-001.html": [ - "96795ed435b86b611d82a5b4456e771586991dc1", + "kind-of-widget-fallback-button-border-image-source-001.html": [ + "86ec41a3ff35ca23ff8b8a19c7650db471068a00", [ null, [ [ - "/css/css-ui/compute-kind-widget-fallback-ref.html", + "/css/css-ui/compute-kind-widget-fallback-button-ref.html", "==" ] ], {} ] ], - "kind-of-widget-fallback-border-image-width-001.html": [ - "ca57002d6ee186cb51c768579935d11d2fcb5c35", + "kind-of-widget-fallback-button-border-image-width-001.html": [ + "53df9ea152664e6d91fbe577aed8c9ebde157118", [ null, [ [ - "/css/css-ui/compute-kind-widget-fallback-ref.html", + "/css/css-ui/compute-kind-widget-fallback-button-ref.html", "==" ] ], {} ] ], - "kind-of-widget-fallback-border-inline-end-color-001.html": [ - "9ecfdfbeb3b51640a8383e87ba2335c867195505", + "kind-of-widget-fallback-button-border-inline-end-color-001.html": [ + "85079f5c41fecef2379894d4d295d78e783d934c", [ null, [ [ - "/css/css-ui/compute-kind-widget-fallback-ref.html", + "/css/css-ui/compute-kind-widget-fallback-button-ref.html", "==" ] ], {} ] ], - "kind-of-widget-fallback-border-inline-end-style-001.html": [ - "2a5496ecd5a6d076b81c74ff4f3b5407936a5d03", + "kind-of-widget-fallback-button-border-inline-end-style-001.html": [ + "ce94d07364dfc7806e28be972369d076a6458d16", [ null, [ [ - "/css/css-ui/compute-kind-widget-fallback-ref.html", + "/css/css-ui/compute-kind-widget-fallback-button-ref.html", "==" ] ], {} ] ], - "kind-of-widget-fallback-border-inline-end-width-001.html": [ - "62694106e484d2cf375cc3d435ebcb997bffb5f3", + "kind-of-widget-fallback-button-border-inline-end-width-001.html": [ + "ea361edbabd44ee389f95129e82402919421c831", [ null, [ [ - "/css/css-ui/compute-kind-widget-fallback-ref.html", + "/css/css-ui/compute-kind-widget-fallback-button-ref.html", "==" ] ], {} ] ], - "kind-of-widget-fallback-border-inline-start-color-001.html": [ - "eee53b109c907a2bf13d4972f218889971e742ef", + "kind-of-widget-fallback-button-border-inline-start-color-001.html": [ + "7bbbbf97a0c55c1fa1708b442b8818bb9f397da4", [ null, [ [ - "/css/css-ui/compute-kind-widget-fallback-ref.html", + "/css/css-ui/compute-kind-widget-fallback-button-ref.html", "==" ] ], {} ] ], - "kind-of-widget-fallback-border-inline-start-style-001.html": [ - "b8e980eb18b63ba03e219e3768d00de91c766f66", + "kind-of-widget-fallback-button-border-inline-start-style-001.html": [ + "0ab244c5344de7a851c121f3e3a5623b950c8ca0", [ null, [ [ - "/css/css-ui/compute-kind-widget-fallback-ref.html", + "/css/css-ui/compute-kind-widget-fallback-button-ref.html", "==" ] ], {} ] ], - "kind-of-widget-fallback-border-inline-start-width-001.html": [ - "999028eecd45bd8763c337e04e354441479ccbd3", + "kind-of-widget-fallback-button-border-inline-start-width-001.html": [ + "a2fe2f5a70a57495e7efcc26bdb6b818fc1e4bf8", [ null, [ [ - "/css/css-ui/compute-kind-widget-fallback-ref.html", + "/css/css-ui/compute-kind-widget-fallback-button-ref.html", "==" ] ], {} ] ], - "kind-of-widget-fallback-border-left-color-001.html": [ - "9d35d5a67d5342dca7f7e60f9f8165e53895bc4f", + "kind-of-widget-fallback-button-border-left-color-001.html": [ + "ca8e684b4ef22d18543605098c9f3687df542fb3", [ null, [ [ - "/css/css-ui/compute-kind-widget-fallback-ref.html", + "/css/css-ui/compute-kind-widget-fallback-button-ref.html", "==" ] ], {} ] ], - "kind-of-widget-fallback-border-left-style-001.html": [ - "0c3834ae80a0bdf4a5eef34cadf742006d07d3cf", + "kind-of-widget-fallback-button-border-left-style-001.html": [ + "e44cf3a2b6208c75ff09ac896e9cb810b3a7a11d", [ null, [ [ - "/css/css-ui/compute-kind-widget-fallback-ref.html", + "/css/css-ui/compute-kind-widget-fallback-button-ref.html", "==" ] ], {} ] ], - "kind-of-widget-fallback-border-left-width-001.html": [ - "b9db35da822b8e7cfe9f3f51d986b5308d4b4107", + "kind-of-widget-fallback-button-border-left-width-001.html": [ + "561c51de03eef78c0099a4c4c0ce962ff2bee2cf", [ null, [ [ - "/css/css-ui/compute-kind-widget-fallback-ref.html", + "/css/css-ui/compute-kind-widget-fallback-button-ref.html", "==" ] ], {} ] ], - "kind-of-widget-fallback-border-right-color-001.html": [ - "4be6ac5969c5eadd4f119ec01ada771dcfd9e769", + "kind-of-widget-fallback-button-border-right-color-001.html": [ + "1edc31d98db454f0fcdb7a7907125d4b16676cd0", [ null, [ [ - "/css/css-ui/compute-kind-widget-fallback-ref.html", + "/css/css-ui/compute-kind-widget-fallback-button-ref.html", "==" ] ], {} ] ], - "kind-of-widget-fallback-border-right-style-001.html": [ - "0bb296c65cf93a10fb69d59642870112cd00c988", + "kind-of-widget-fallback-button-border-right-style-001.html": [ + "79a59df4cb4d4242f4c7788ba0be39902248857f", [ null, [ [ - "/css/css-ui/compute-kind-widget-fallback-ref.html", + "/css/css-ui/compute-kind-widget-fallback-button-ref.html", "==" ] ], {} ] ], - "kind-of-widget-fallback-border-right-width-001.html": [ - "8a0436d2638df615cdfe21b43f73c18fb87c7efe", + "kind-of-widget-fallback-button-border-right-width-001.html": [ + "5125890ff0a58880b5b4c06e2a1c3d5df2ec44a9", [ null, [ [ - "/css/css-ui/compute-kind-widget-fallback-ref.html", + "/css/css-ui/compute-kind-widget-fallback-button-ref.html", "==" ] ], {} ] ], - "kind-of-widget-fallback-border-start-end-radius-001.html": [ - "27c8a5e33ba516246f800c4d1cbec5b910d0895d", + "kind-of-widget-fallback-button-border-start-end-radius-001.html": [ + "39972ab69e349bb37094fb28b57dba6623f43a29", [ null, [ [ - "/css/css-ui/compute-kind-widget-fallback-ref.html", + "/css/css-ui/compute-kind-widget-fallback-button-ref.html", "==" ] ], {} ] ], - "kind-of-widget-fallback-border-start-start-radius-001.html": [ - "8f1369d505c5bb9baf7f828943d22e8a840febc1", + "kind-of-widget-fallback-button-border-start-start-radius-001.html": [ + "47e454e4caa4aec5775dcd0565727db8a673f956", [ null, [ [ - "/css/css-ui/compute-kind-widget-fallback-ref.html", + "/css/css-ui/compute-kind-widget-fallback-button-ref.html", "==" ] ], {} ] ], - "kind-of-widget-fallback-border-top-color-001.html": [ - "b967850562c50a0c69dd7359f32d1d8766f58421", + "kind-of-widget-fallback-button-border-top-color-001.html": [ + "6a331379ae4c6e19bc05634024c91bfc7cc4e60e", [ null, [ [ - "/css/css-ui/compute-kind-widget-fallback-ref.html", + "/css/css-ui/compute-kind-widget-fallback-button-ref.html", "==" ] ], {} ] ], - "kind-of-widget-fallback-border-top-left-radius-001.html": [ - "937cb0226ad4a3149f1cd10feed24d9f4b5480d9", + "kind-of-widget-fallback-button-border-top-left-radius-001.html": [ + "83d5437b2cda27dc809a1aa82b74a30c065c7338", [ null, [ [ - "/css/css-ui/compute-kind-widget-fallback-ref.html", + "/css/css-ui/compute-kind-widget-fallback-button-ref.html", "==" ] ], {} ] ], - "kind-of-widget-fallback-border-top-right-radius-001.html": [ - "f2abad91c9d64536d035656020d7df9995647e4f", + "kind-of-widget-fallback-button-border-top-right-radius-001.html": [ + "ad7801693c0fc7c265a84a535191b4384f2b4be3", [ null, [ [ - "/css/css-ui/compute-kind-widget-fallback-ref.html", + "/css/css-ui/compute-kind-widget-fallback-button-ref.html", "==" ] ], {} ] ], - "kind-of-widget-fallback-border-top-style-001.html": [ - "921933c283e974e46f56076d531b9a236e66180e", + "kind-of-widget-fallback-button-border-top-style-001.html": [ + "41b55bdc10801b2599f254c41ef2862b079446db", [ null, [ [ - "/css/css-ui/compute-kind-widget-fallback-ref.html", + "/css/css-ui/compute-kind-widget-fallback-button-ref.html", "==" ] ], {} ] ], - "kind-of-widget-fallback-border-top-width-001.html": [ - "ff0fecf6983ae742f5bcb7b71916dec2ec68c9c2", + "kind-of-widget-fallback-button-border-top-width-001.html": [ + "ec22310531282bb0d0c8cd573e7425823fecbceb", [ null, [ [ - "/css/css-ui/compute-kind-widget-fallback-ref.html", + "/css/css-ui/compute-kind-widget-fallback-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-checkbox-input-background-attachment-001.html": [ + "854146dbeda53e3f3b05a27ccd33fd8d0a1d4670", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-checkbox-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-checkbox-input-background-clip-001.html": [ + "c58d84534dea9a3c19dc734a261a0f63d97a36ed", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-checkbox-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-checkbox-input-background-color-001.html": [ + "e1d5e7379a7c408da6975f957fb8c37542753e57", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-checkbox-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-checkbox-input-background-image-001.html": [ + "c37517e78f130dbdb787d79e607c68876722f896", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-checkbox-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-checkbox-input-background-origin-001.html": [ + "8a7f9502b0f48afab11a63be7d46502019916d55", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-checkbox-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-checkbox-input-background-position-001.html": [ + "3edc2785edf8f8dbc747ce9c9adfbdb049e069fa", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-checkbox-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-checkbox-input-background-size-001.html": [ + "94816e45ae5979ae3aac889f256aef418db54a4f", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-checkbox-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-checkbox-input-border-block-end-color-001.html": [ + "fe6e5c970e1f055de756bfcfc9fdf272d44e8685", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-checkbox-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-checkbox-input-border-block-end-style-001.html": [ + "489c662119bab7b8b58920e84cd1875f50621c83", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-checkbox-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-checkbox-input-border-block-end-width-001.html": [ + "f257590b5fd576d8bc5e5bfb9da7124ce6f72750", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-checkbox-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-checkbox-input-border-block-start-color-001.html": [ + "d1b1c63bb208f10733aaa01b80e01e713ab1dc7f", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-checkbox-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-checkbox-input-border-block-start-style-001.html": [ + "6da6d53162bd50300207042bf505304308056a56", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-checkbox-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-checkbox-input-border-block-start-width-001.html": [ + "c18824f102127f6af6cd1fd61432ab429d29a1c0", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-checkbox-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-checkbox-input-border-bottom-color-001.html": [ + "d8dde9fa7746e32ed9ae16fb399c6726c5a69274", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-checkbox-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-checkbox-input-border-bottom-left-radius-001.html": [ + "ea8b93a771e6bac9616752d34d74728e66a3f3b2", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-checkbox-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-checkbox-input-border-bottom-right-radius-001.html": [ + "4778156079e44f51cccde49f20454c8b129e086e", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-checkbox-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-checkbox-input-border-bottom-style-001.html": [ + "f4ccb3ee9cf08efd79f940203fd1a1482cd16942", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-checkbox-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-checkbox-input-border-bottom-width-001.html": [ + "dcc9e39f3301070cbe6a4248ab6362ea62e0a6a1", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-checkbox-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-checkbox-input-border-end-end-radius-001.html": [ + "9f220014103e32a73dc6d9fa8b67e9c008fcb16d", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-checkbox-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-checkbox-input-border-end-start-radius-001.html": [ + "453d687a8fd5b880a9878358406c9d88de329969", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-checkbox-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-checkbox-input-border-image-outset-001.html": [ + "1102fce1527c84309ae69dbb1f6f8083c8754281", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-checkbox-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-checkbox-input-border-image-repeat-001.html": [ + "7b821272c79a7a89758ec5d995aa0d1ca0fabb59", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-checkbox-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-checkbox-input-border-image-slice-001.html": [ + "d7694d677807f8fba0e1f5f1b0fa048e5096bcdf", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-checkbox-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-checkbox-input-border-image-source-001.html": [ + "0e274628f31923f8e24160a78f7a86f97160ef30", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-checkbox-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-checkbox-input-border-image-width-001.html": [ + "c485feab751c31ba4ffaeb9b107162f1fb84e6af", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-checkbox-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-checkbox-input-border-inline-end-color-001.html": [ + "0220ac227cbf87c079a39895468868e4b82dc4f3", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-checkbox-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-checkbox-input-border-inline-end-style-001.html": [ + "83f0ee6dc7037b3394e7f5073db410866cb6a392", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-checkbox-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-checkbox-input-border-inline-end-width-001.html": [ + "aca82890edcea255b2d9248ebcaaee194d63ba30", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-checkbox-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-checkbox-input-border-inline-start-color-001.html": [ + "7c3ea0e32cf202a24015df3da7796827cf82bbcd", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-checkbox-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-checkbox-input-border-inline-start-style-001.html": [ + "329b717ca08b1bdaadcf29edd7d0f4c0fbd41b43", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-checkbox-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-checkbox-input-border-inline-start-width-001.html": [ + "9d5ca5f95a73de492b29d25a54f26c649abc2d65", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-checkbox-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-checkbox-input-border-left-color-001.html": [ + "00397b9cd30e95d30f8096573dcc512a9d59fe41", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-checkbox-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-checkbox-input-border-left-style-001.html": [ + "415c45d8ae04061a00b8f2686cdaa4f197948bd0", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-checkbox-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-checkbox-input-border-left-width-001.html": [ + "0653e960926eacc8bb69c26b948343a89b03464b", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-checkbox-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-checkbox-input-border-right-color-001.html": [ + "f17035b651bc5574f16ddf477ba37da958717c64", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-checkbox-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-checkbox-input-border-right-style-001.html": [ + "fd96b80bfaee4caedced7f3351b0f289a9c39c93", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-checkbox-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-checkbox-input-border-right-width-001.html": [ + "9eb0bfd483538b7822cdbba6ad1f04e4a27d1151", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-checkbox-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-checkbox-input-border-start-end-radius-001.html": [ + "c6f7b9c70fba036a3bae2b66dfc333848fae4d0d", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-checkbox-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-checkbox-input-border-start-start-radius-001.html": [ + "c3473dff4351a8f364eff18b13741d8cc20b6432", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-checkbox-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-checkbox-input-border-top-color-001.html": [ + "40671ee01ede3f5c41bf87114b283bad92c6c688", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-checkbox-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-checkbox-input-border-top-left-radius-001.html": [ + "bf8cb7150a8e79f098e9a5fea4ea4c95c6ea34a9", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-checkbox-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-checkbox-input-border-top-right-radius-001.html": [ + "bbaed9a39120e200ab58f26dfaa43f1315d029ea", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-checkbox-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-checkbox-input-border-top-style-001.html": [ + "bb9b393d5d6656444a704643ef21cb70a45d9432", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-checkbox-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-checkbox-input-border-top-width-001.html": [ + "3260a9b13d4435613d6c017a71593db192ef03e1", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-checkbox-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-color-input-background-attachment-001.html": [ + "a62ebcba168ba2b9175357b85663cf076e891e39", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-color-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-color-input-background-clip-001.html": [ + "0da878e3c8341053c8646552e3c129595f01fbb8", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-color-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-color-input-background-color-001.html": [ + "3adca19760a87dade5ee34fefe7cca05df958431", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-color-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-color-input-background-image-001.html": [ + "79d16f7a5fead178794431da825e5435086397a8", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-color-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-color-input-background-origin-001.html": [ + "30be831c55c7a8ceac6427b11831f8047b55a785", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-color-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-color-input-background-position-001.html": [ + "a72860779ad46f1fb444824faeb1cd70b74aa258", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-color-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-color-input-background-size-001.html": [ + "68f34df7686145eecf1bcfbe491ee243b60c2e07", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-color-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-color-input-border-block-end-color-001.html": [ + "7ab8c50eda66dd80ff7b73c3aab6b665acfd2a65", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-color-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-color-input-border-block-end-style-001.html": [ + "5fef1705ddeeae2b3d6888e6ded78b61de663c47", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-color-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-color-input-border-block-end-width-001.html": [ + "de753d9cf571989fe3d350a9f76b9363470277cf", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-color-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-color-input-border-block-start-color-001.html": [ + "639e53697bba722878ff982a299e90352ca88574", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-color-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-color-input-border-block-start-style-001.html": [ + "66138c595469cd2ca99039e4a2b5a7f0211ae7dc", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-color-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-color-input-border-block-start-width-001.html": [ + "7e338d3d27ec262def712d75c100f75110238177", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-color-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-color-input-border-bottom-color-001.html": [ + "33e55cc3b7c7660ce5e205d311b43126602aed42", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-color-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-color-input-border-bottom-left-radius-001.html": [ + "70eec00b9ac1ac94d5e6fa756d6819cd9322661d", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-color-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-color-input-border-bottom-right-radius-001.html": [ + "196edd37f019c7bdbc0e6e344346b9d6b63c3d8a", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-color-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-color-input-border-bottom-style-001.html": [ + "483a2008f2b16943a499f62d6cb5e8e120ba33ad", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-color-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-color-input-border-bottom-width-001.html": [ + "0f6a26e54763f5aab75ef45a8697e1ecc77335fb", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-color-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-color-input-border-end-end-radius-001.html": [ + "877568e595fc8d71779c7ca9630af696699bb5e1", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-color-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-color-input-border-end-start-radius-001.html": [ + "3b553d16644f24f62865b1a94a28b37a1562286e", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-color-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-color-input-border-image-outset-001.html": [ + "9aca0eb08ca5198a6874f2a59cd1c54fd2285d0e", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-color-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-color-input-border-image-repeat-001.html": [ + "2195aa4d09f218f8a921a5181a6a3059c5e1c272", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-color-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-color-input-border-image-slice-001.html": [ + "b2d5a707106cae389b053147fd66ba35e19fd54c", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-color-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-color-input-border-image-source-001.html": [ + "5a4f6f54edaca989cde064d62ef2037afb8ed4bf", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-color-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-color-input-border-image-width-001.html": [ + "394163c402e4e7f7a4e8743646c3a4c7e0f748f1", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-color-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-color-input-border-inline-end-color-001.html": [ + "c8beca67c4f3487c824b8ae8ca835d039f3c9a4c", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-color-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-color-input-border-inline-end-style-001.html": [ + "2cca2308d3eff236c339b9f508155bddeb4e6821", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-color-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-color-input-border-inline-end-width-001.html": [ + "1e78d303b33f86eb6900738d161ecdfeac7d9871", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-color-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-color-input-border-inline-start-color-001.html": [ + "dc78893a4e072168398646b13b3a899f1bbd3d8d", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-color-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-color-input-border-inline-start-style-001.html": [ + "69fc22e3b63a9444f00968de1cbdc6a20accd3cc", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-color-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-color-input-border-inline-start-width-001.html": [ + "e726ac45a1069a8d558eb69f46855aea6e606de1", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-color-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-color-input-border-left-color-001.html": [ + "06123f7d3fe02e8d1256c8652e64239367bf12a8", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-color-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-color-input-border-left-style-001.html": [ + "8a467f2f02fbfa5ea965849df1d5fdcd90917ad9", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-color-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-color-input-border-left-width-001.html": [ + "1631967fb4d41c8719872e36834da7e13f2eb1dc", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-color-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-color-input-border-right-color-001.html": [ + "3f80a29957c92cc91fabe902be8c3aa2ce688c05", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-color-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-color-input-border-right-style-001.html": [ + "47b974b4a9c34ccfe870a586b989bb68b705eda9", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-color-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-color-input-border-right-width-001.html": [ + "7a640d231d5a1f63478de5fd1007bf25c1a1c807", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-color-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-color-input-border-start-end-radius-001.html": [ + "836685bc1abb60a6603e5462b7f56b185f256de0", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-color-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-color-input-border-start-start-radius-001.html": [ + "1b8d113fbe29d525ee878fe575d716f9fcde662f", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-color-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-color-input-border-top-color-001.html": [ + "3ca939ab7202c5284c141897eff04958722e3ca6", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-color-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-color-input-border-top-left-radius-001.html": [ + "6e789f088f4c0d8ea7611af4446199ffc873840f", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-color-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-color-input-border-top-right-radius-001.html": [ + "7f4b9195f84687113022b3fc84bce32a116a3fef", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-color-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-color-input-border-top-style-001.html": [ + "840f69afcc72af732e4675eea15dbe397d4a8b9a", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-color-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-color-input-border-top-width-001.html": [ + "886996b710b021243fb57d6dc28f9da622dc8da9", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-color-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-button-background-attachment-001.html": [ + "7b112f084adcb290c8b2b7df5c53ae716f4ce8bd", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-button-background-clip-001.html": [ + "53f79ab38cd82f210cc095be85bcac010f3cab4a", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-button-background-color-001.html": [ + "2209bae6c014c480b60509102f5068fcd1cf875f", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-button-background-image-001.html": [ + "e385afe4aff6dd3168aef6a73a421312a409cd19", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-button-background-origin-001.html": [ + "9d3386711fbc4405404e2b40fa170262f6dad1a9", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-button-background-position-001.html": [ + "6d70a3f546a439fef25a8f384ba184c356ce95eb", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-button-background-size-001.html": [ + "fabd5b383cc5fe02e583c7b9931a7d1dbf36bd3c", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-button-border-block-end-color-001.html": [ + "16b07513a561fb97c7a667ccd1ec4033e9eb5b61", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-button-border-block-end-style-001.html": [ + "c5941567e186cd309326c32516dfdd2585a74ed5", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-button-border-block-end-width-001.html": [ + "c189260b1b18f036ccaa01d8824ffad3e3931b93", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-button-border-block-start-color-001.html": [ + "f04c3729b766267c7b36238ee3f688a1cc272fe5", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-button-border-block-start-style-001.html": [ + "41ba3b7c27f65de339e4e783a1cd917e186cfddb", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-button-border-block-start-width-001.html": [ + "9738cd8528542ddb6bb0c63d160dee3d5d598a4a", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-button-border-bottom-color-001.html": [ + "f8d784aeb1bdd23ce279c2997f3318c6e0c4ddba", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-button-border-bottom-left-radius-001.html": [ + "cac8afec0a3abac88906da8e4db22925a221cb13", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-button-border-bottom-right-radius-001.html": [ + "3f64f28497aa4f50ac68532510065289eb9ac383", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-button-border-bottom-style-001.html": [ + "1d45f056611e0ace290e46472a01e6f633f8c0de", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-button-border-bottom-width-001.html": [ + "04065781f73564feb587f4c693fbc1019fa4d1de", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-button-border-end-end-radius-001.html": [ + "8ce8dc3962f8b68f2bb8f50d721d5c255d692d70", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-button-border-end-start-radius-001.html": [ + "8f1acf3c9f84c9cbaeeb1766561232cd2f3a5fd7", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-button-border-image-outset-001.html": [ + "7bef87079407928ad61cf892cfe3ed61616d8c20", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-button-border-image-repeat-001.html": [ + "fc3ebd45dd97f47d1d67f9905a812aac896e165e", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-button-border-image-slice-001.html": [ + "b6c908f422a34865d267144e3268d408fdaf1eb2", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-button-border-image-source-001.html": [ + "44a4fbaa8c1783c4f4ddd3a549031a710101cd7a", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-button-border-image-width-001.html": [ + "39d018507ced1337580f52d5b98c61600f32adf1", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-button-border-inline-end-color-001.html": [ + "313eab3d7b97776794ce861e386ec1164bc8c1f8", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-button-border-inline-end-style-001.html": [ + "ce6cb72d03084e19067e4de90f4f08f905996b48", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-button-border-inline-end-width-001.html": [ + "31e49065313b2b8a9b20bb294b1ac2f8ca90e4a7", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-button-border-inline-start-color-001.html": [ + "60f8eeb08d1b7b6a491cf182085bb3710dc75ddb", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-button-border-inline-start-style-001.html": [ + "927f0695ff914d3dd1e33656e35155b2b865d29a", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-button-border-inline-start-width-001.html": [ + "ebb88b67c5534d11b8bca24c15d490aa37c559da", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-button-border-left-color-001.html": [ + "eaeeddc8bb68a8a6867d0a1a7cc06209b5018c73", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-button-border-left-style-001.html": [ + "171638f60954bf02dd924b1a218702ddb5767f79", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-button-border-left-width-001.html": [ + "07b4ba5cf3e9028a3a1b532dacb0c0f79a943851", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-button-border-right-color-001.html": [ + "ee08a5960471d36b3bc3e028c8a5514f0c8d6e34", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-button-border-right-style-001.html": [ + "622da69d72c25ea8728062196f150ad3f2b636cf", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-button-border-right-width-001.html": [ + "cb0368dd053e15ddcb3effbf8e74b61e3d4c0df9", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-button-border-start-end-radius-001.html": [ + "ae98634e8cd3000c91a89fe6469f7221a971feb9", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-button-border-start-start-radius-001.html": [ + "45f7debe9db62dceb5d2bfdbcbd5aaeee2fa3dfb", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-button-border-top-color-001.html": [ + "985b3d528e51345bef902b5c5064befae70b434b", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-button-border-top-left-radius-001.html": [ + "5b5636609ccc2031108c6cb0fc17e1895f29c70c", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-button-border-top-right-radius-001.html": [ + "f0b7989c73612a6e99ca6da1fda81ab97142ac0d", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-button-border-top-style-001.html": [ + "b58218e3daeff693db06e13222c22d43791fd419", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-button-border-top-width-001.html": [ + "e20e258e8ad71982b2ff51b693f80c855bde6166", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-reset-background-attachment-001.html": [ + "a7845bc7dcfba779f600dd457f33777d9554c255", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-reset-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-reset-background-clip-001.html": [ + "5bb8e7d5d2a39048d0c2592fcb4f3dcee46b9916", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-reset-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-reset-background-color-001.html": [ + "1780d56a417cae4e47232909092db89907be4a16", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-reset-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-reset-background-image-001.html": [ + "07527ae7db3d39d8ddc8f50dfd5cfde324028fb0", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-reset-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-reset-background-origin-001.html": [ + "4e5b6c68ceb80bf5c56a00bea56191fb9e268110", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-reset-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-reset-background-position-001.html": [ + "199e6465eb7c4af7ed58cf23d17db8ed9a5c2e33", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-reset-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-reset-background-size-001.html": [ + "82d54e0c105212067be9dc6ea1a04b30b5dbf4c8", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-reset-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-reset-border-block-end-color-001.html": [ + "41038d2512405f88a46db59959d0e52958299403", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-reset-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-reset-border-block-end-style-001.html": [ + "9c326f1e4a919150701908d08c764938daed74f9", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-reset-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-reset-border-block-end-width-001.html": [ + "3f2611f0e8e0c79d0c1bdaf3c70f4f80d275bf50", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-reset-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-reset-border-block-start-color-001.html": [ + "a3252e39e6ac609ae7a4c2cb83125da41fe44d4f", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-reset-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-reset-border-block-start-style-001.html": [ + "6f737814138c85d391f3ad05e98d0539c826d1c0", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-reset-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-reset-border-block-start-width-001.html": [ + "1a671be3218db8a17c72c602e68ca2a5e0a5cb4e", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-reset-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-reset-border-bottom-color-001.html": [ + "5ac0db7d1edb929b78b9d1e676448d2439f57fca", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-reset-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-reset-border-bottom-left-radius-001.html": [ + "df3608a14ad4b0d3afa7a60c5ed1225854c6d2c5", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-reset-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-reset-border-bottom-right-radius-001.html": [ + "3cc95934b42d322edb781d2dfff0fa05e8ca7054", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-reset-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-reset-border-bottom-style-001.html": [ + "b146476a505438d1c1c3c1ec15f36f9c94811468", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-reset-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-reset-border-bottom-width-001.html": [ + "00dfbddbe691670e8b2b4709d52db3c01ffe9136", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-reset-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-reset-border-end-end-radius-001.html": [ + "34eaf07fd72499245a4955b52b8caf2dc4aa58e2", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-reset-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-reset-border-end-start-radius-001.html": [ + "42aa29cada2141d67257a2e14c922fbb3b0d22fb", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-reset-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-reset-border-image-outset-001.html": [ + "368bb3a7c7f157e2ec09df68516d1d234f4519d9", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-reset-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-reset-border-image-repeat-001.html": [ + "5f0ba37f9dcc2a0d73c820c697872d80cf910f99", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-reset-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-reset-border-image-slice-001.html": [ + "c611ad59b73578b46376d6635403502f12cafb47", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-reset-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-reset-border-image-source-001.html": [ + "f84fcfc0fcda5107f62fdc4014a4239485aa7b11", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-reset-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-reset-border-image-width-001.html": [ + "1936517741f984b45b327216936a2d5871e5c41c", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-reset-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-reset-border-inline-end-color-001.html": [ + "db6e2d64c2a177d4d2d005447b63efb0d2400a57", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-reset-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-reset-border-inline-end-style-001.html": [ + "13502447a90a12ce760b956b157e0eb95f3be160", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-reset-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-reset-border-inline-end-width-001.html": [ + "25121c822a9b81ba5e789650dc2ce48a11b9d450", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-reset-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-reset-border-inline-start-color-001.html": [ + "f01b339b37ce3a323b5ad549c045f8a672a94644", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-reset-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-reset-border-inline-start-style-001.html": [ + "3ac0e472600ab261df6baca0adf0d21ad68a3aea", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-reset-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-reset-border-inline-start-width-001.html": [ + "7e0c23adc7e5dc94d2bd3ccb91146f735432d72d", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-reset-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-reset-border-left-color-001.html": [ + "6309f000f33e1fc6b1d8d66dec2092101ac13757", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-reset-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-reset-border-left-style-001.html": [ + "c502e833a6a9f5fc23e5b379b1b9b5e1231ea901", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-reset-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-reset-border-left-width-001.html": [ + "7c8e95dbeae8c5978e680ec73ef66343ce117ed2", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-reset-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-reset-border-right-color-001.html": [ + "2bbbcf3584a35d9737f76a27b6bd446ea51f09f7", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-reset-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-reset-border-right-style-001.html": [ + "4b1ea450882185fd3ca86af77b249a2611eed7c9", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-reset-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-reset-border-right-width-001.html": [ + "02b93b0b7bc59f5e19af25884d624fbeb87b1f5a", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-reset-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-reset-border-start-end-radius-001.html": [ + "4beeb88981cddb6ce698a0e9200af24e6a2974c9", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-reset-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-reset-border-start-start-radius-001.html": [ + "019b6a52e5a95fba90eb36345ade7e4b7b3382ed", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-reset-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-reset-border-top-color-001.html": [ + "6facf31f9928abba8f5a93f2de85331e78fb5ec8", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-reset-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-reset-border-top-left-radius-001.html": [ + "2ba3e038dd41854060a5f86b65ff82772f294fe4", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-reset-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-reset-border-top-right-radius-001.html": [ + "d15f23413b7cf38fa2240e3ac80a1520ce696f8f", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-reset-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-reset-border-top-style-001.html": [ + "d5bebef7a34c89fd55bb56c6ce7973e96938cf0b", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-reset-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-reset-border-top-width-001.html": [ + "e705cd422d1f210da479a48749a868c168a0b3f5", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-reset-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-background-attachment-001.html": [ + "cd69159ee9a9c950b013aac5aff1a205f1930263", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-background-clip-001.html": [ + "1343ebcf0c870237e71d8a384836c5455e5bc152", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-background-color-001.html": [ + "882ca799985d9d4e52c7ecaadd146a3a2ab28600", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-background-image-001.html": [ + "769cf45b9f38ba2cae57a43ede2643a727c45aa7", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-background-origin-001.html": [ + "035cfdf25c3d055353482eb0ba8cb7a6d968a489", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-background-position-001.html": [ + "5267fd2c78c2be45c897ccf3c04f93eeccc33e89", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-background-size-001.html": [ + "73aca9954a553ce1c18433f09cbdf179d5f07674", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-border-block-end-color-001.html": [ + "9d954d5714a36c43ef49c8923bdd97c35deae497", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-border-block-end-style-001.html": [ + "81761e4671e2c62efad8442c2c898373f7f7d98f", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-border-block-end-width-001.html": [ + "e6b37c9b78db1dad1945ed2ef1adce58df63b138", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-border-block-start-color-001.html": [ + "7bed3fc399e051e16701edb364d45198a7e39a41", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-border-block-start-style-001.html": [ + "854d6fb98e89fb7298457d2941050afa496e5191", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-border-block-start-width-001.html": [ + "9ad91b7ba44cb5ccf66a91c988bf6349c43b320f", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-border-bottom-color-001.html": [ + "093c18c70356d8c2e2bdeed85f4302c8989a13ec", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-border-bottom-left-radius-001.html": [ + "a33640e2a85fe2f73bc3972d96fdc9b5712f8248", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-border-bottom-right-radius-001.html": [ + "21ec7d1f872025b36bd1fb8dc29671c62970661b", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-border-bottom-style-001.html": [ + "26b31f93312c2dc903978e304a1a0eead9fdd7ad", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-border-bottom-width-001.html": [ + "677a04ef161f7ae7ec79b2d22511b4af296f16bd", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-border-end-end-radius-001.html": [ + "426b75464e1eecde3e997b59a0010a268d43f240", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-border-end-start-radius-001.html": [ + "58f7487c99d1bc6e529b331bd8e71b0ec19547ea", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-border-image-outset-001.html": [ + "fe1d1f0cc2d4d45c8f6ff352f5fb9936574815e8", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-border-image-repeat-001.html": [ + "611aaadce8674ad86a80ba35552112fa8a681141", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-border-image-slice-001.html": [ + "fbd35beef90e63fefec3c194ab0d9834b7ca107b", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-border-image-source-001.html": [ + "73b90e28b0273b9c2987b87f1ffaacc2f9d90194", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-border-image-width-001.html": [ + "53be3f24e18abc5bc97a0eb947bbc8416aa117f4", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-border-inline-end-color-001.html": [ + "5cef20ff8b0d39f92ed2d8370e6f3257ac804a0c", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-border-inline-end-style-001.html": [ + "01c62b512081cfe8c8c3b9111e703f125ace1b48", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-border-inline-end-width-001.html": [ + "279ea4bd9d377a3ca9c5643220fc62d28018b416", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-border-inline-start-color-001.html": [ + "b4e93e5fb00a4d454f79a71975d603ee573de3b2", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-border-inline-start-style-001.html": [ + "279a809043f8775b54e58f67a2a0e40bc255bac0", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-border-inline-start-width-001.html": [ + "99694bc67b9b054565aa1930605c953dc8706a8f", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-border-left-color-001.html": [ + "608d5d2664e0a97e485bcc258af4af09afb9aa42", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-border-left-style-001.html": [ + "af85417326c9c1ab9940f646e360e608c6986f1f", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-border-left-width-001.html": [ + "c1dcc4fb9ede5b5ba0587e20beff2af53746b6b3", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-border-right-color-001.html": [ + "b2c2200537dbe4d59740a87dcb1a385c8dbd8d3d", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-border-right-style-001.html": [ + "890770c8721e9b17e43b7b2c8e4e1f073596804e", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-border-right-width-001.html": [ + "8128bb539fbbf02416dfb5e05a5884f53cd18a76", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-border-start-end-radius-001.html": [ + "c9dc8fc0344decc5674a84d03193f9468f140031", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-border-start-start-radius-001.html": [ + "fe0f50c862c2c3edff5c39c00daccf023ce52c3b", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-border-top-color-001.html": [ + "8e191355485fd7d2870cdd16522125c382c4876e", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-border-top-left-radius-001.html": [ + "00706e8e186474b0b1a0a0bd202b95a1bd3a4e00", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-border-top-right-radius-001.html": [ + "d9eff0a7edec55b0a6cb797a2a11e0913e035553", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-border-top-style-001.html": [ + "687a15637427f70672ff1119fc936979e6177ec7", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-border-top-width-001.html": [ + "8d21da1745b9ca098ca922661fa77df04842e4f7", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-text-background-attachment-001.html": [ + "d686b71ecbe9c535d676d606f09bc0d99c1843d1", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-text-background-clip-001.html": [ + "5e5bb98b734ff1976ca0ebf381f08dd2ec47c584", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-text-background-color-001.html": [ + "a9a4f9ce475d7d89cde325598d30df1a43074696", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-text-background-image-001.html": [ + "67ce5d447a7fdcb28a1416469fe6246ae72be69b", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-text-background-origin-001.html": [ + "d64ea1c55c2fa6e38c81231cf01ceac2c9b2fda6", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-text-background-position-001.html": [ + "47328fa5506aaafde28eaac9b1c52da4a7aae1ad", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-text-background-size-001.html": [ + "801451bc4ae6ece5b07747377ed62aa1cf12fecf", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-text-border-block-end-color-001.html": [ + "35c2b259aa3f2048cc48b94dc0c3cb3cf2e6021e", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-text-border-block-end-style-001.html": [ + "02418ca51adbabffb8a353fc9ecce1c88b42f69c", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-text-border-block-end-width-001.html": [ + "76ba5d545b57fec12a06f18248bd9de59f7a4248", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-text-border-block-start-color-001.html": [ + "5aa72d0032b152a53030bf1952650e35f3dd4e72", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-text-border-block-start-style-001.html": [ + "5d6f0deb6401a3c62e5b12f2587b98f28d741bee", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-text-border-block-start-width-001.html": [ + "e1a0fe22c26c0fc6c644173c070c333d5a631d76", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-text-border-bottom-color-001.html": [ + "0429d4cf7b04c69cbfe9d647b629c625db7fd274", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-text-border-bottom-left-radius-001.html": [ + "1ff1f9cf1c5a4a8eae838f2de1488fab7c8378eb", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-text-border-bottom-right-radius-001.html": [ + "1a7b7521fd445acc3e5348067577999ee72045ef", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-text-border-bottom-style-001.html": [ + "f33d4b54243cbf77dbfbd440f03e61c1d854f942", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-text-border-bottom-width-001.html": [ + "f60665b61a310801081307ab07f9820613373cf5", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-text-border-end-end-radius-001.html": [ + "54109922601cdf3a510aa2ab6ba688312aeb5472", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-text-border-end-start-radius-001.html": [ + "207216e61c15931e06ba04c369526d13fea0c456", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-text-border-image-outset-001.html": [ + "e54d46aeb2020db5eb92581d61ba48057f9a69fa", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-text-border-image-repeat-001.html": [ + "c58d2436fdfeb324f9616bde56ad2b7274fb0a20", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-text-border-image-slice-001.html": [ + "3d69aace321e50c8f12f3fbafbf165ce8aede4fb", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-text-border-image-source-001.html": [ + "0300383427fa9b160866b47f392343c14d638aaf", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-text-border-image-width-001.html": [ + "51b084ec8b949bff1d6f9cea2557eb8bca8160da", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-text-border-inline-end-color-001.html": [ + "b002409c935c2eaa21654c57ec09216b3b9af895", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-text-border-inline-end-style-001.html": [ + "6ecfaaeeafd251dab950c93aa30f9af1f29d35a4", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-text-border-inline-end-width-001.html": [ + "33d53e4cb524023c6280246a6f190e4878b8657f", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-text-border-inline-start-color-001.html": [ + "8a936bb270ca867c7d754e976fd67e1a519c6932", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-text-border-inline-start-style-001.html": [ + "5d43ac916bdc6d57097951861c99bdcfba756130", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-text-border-inline-start-width-001.html": [ + "a086c597625ff4f2d8b799406e89e91f003bc8ed", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-text-border-left-color-001.html": [ + "647d0c1daaf79a7666dd2f0367d487bb24960e92", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-text-border-left-style-001.html": [ + "8cd58bc9428e975e9dd57c3c91975836597948a7", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-text-border-left-width-001.html": [ + "a70ed497c89a07e2f5fc1c486182ae1bf8fc576d", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-text-border-right-color-001.html": [ + "9b286548ef8df75bd4a1d5c1407348cf3b61f451", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-text-border-right-style-001.html": [ + "69bc1fae3b936e4ecc37356a0c630e904fae346e", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-text-border-right-width-001.html": [ + "6a918db51d575fdb9b0b26e879792b38569e9bcd", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-text-border-start-end-radius-001.html": [ + "84cc06a594e171e7bcd18788d112b28d4cdba12e", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-text-border-start-start-radius-001.html": [ + "1481a5fcc304ac061c448af63429baedd4b9d3d8", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-text-border-top-color-001.html": [ + "d5f2c6781775e04ac22b4d09f47b34be510a20ba", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-text-border-top-left-radius-001.html": [ + "6de4bb323f5bcf6d94801edc7fbf4d79f7d2ed8f", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-text-border-top-right-radius-001.html": [ + "6a3055cc095aa5cebee6fd54c2cbfeb4c77ab074", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-text-border-top-style-001.html": [ + "80099b9cef5a32d33db7b685af2fd5162e906760", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-search-text-border-top-width-001.html": [ + "152a473d57aef6689be8019e594ab315bd43f86d", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-search-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-submit-background-attachment-001.html": [ + "b36f8cf5efad246e0cce0dc9f75e24018375d53e", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-submit-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-submit-background-clip-001.html": [ + "88f96485a4b21152362961d650ee64e0a8af2885", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-submit-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-submit-background-color-001.html": [ + "c5ebc0feae67d7425ace71a72afb6a0583f0f6cd", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-submit-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-submit-background-image-001.html": [ + "2bee179324998148f504e812ef606b9654609cd7", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-submit-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-submit-background-origin-001.html": [ + "f000839d1b052d15b31ba16cd19cbee39cee498c", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-submit-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-submit-background-position-001.html": [ + "1aea7465d56403c816f5f839da50c9235913b44a", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-submit-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-submit-background-size-001.html": [ + "0a92b03012ca8f08c0b0a6f69cb29348e69826cc", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-submit-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-submit-border-block-end-color-001.html": [ + "10c583ff72ddc15d5a62b85e9698835109f462e0", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-submit-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-submit-border-block-end-style-001.html": [ + "009e62337e8861040fff9a38f1e6220d24d57c56", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-submit-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-submit-border-block-end-width-001.html": [ + "5d4c3e04c23b1a56c2e581369966fb87f1b07124", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-submit-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-submit-border-block-start-color-001.html": [ + "7b85ed264fb5b00f16a4d6ae280682a27a5d8ad2", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-submit-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-submit-border-block-start-style-001.html": [ + "db23cc0010c844de478ebe121eca33aaf97232a5", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-submit-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-submit-border-block-start-width-001.html": [ + "ea8943575a2a94de4c207f81b569a4fd03a837ad", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-submit-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-submit-border-bottom-color-001.html": [ + "a0c6aeabd1d647a5e149cb74bed0c86026c712e9", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-submit-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-submit-border-bottom-left-radius-001.html": [ + "27368813f99f07b7efe3042093da14ca8956fdc8", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-submit-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-submit-border-bottom-right-radius-001.html": [ + "d876112e060b09e5fc18fbfe226069ae5adfaccb", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-submit-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-submit-border-bottom-style-001.html": [ + "c08eacfb62e7bf2018ce1049aec22c3225fb5ac9", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-submit-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-submit-border-bottom-width-001.html": [ + "0f98fb5e43c221c5371c7dadb263143fe5f5b771", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-submit-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-submit-border-end-end-radius-001.html": [ + "b7212ef44c7ea38522cd5d6cf55513e53e5bbb80", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-submit-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-submit-border-end-start-radius-001.html": [ + "ca29a8126049b6c6e8ed6b37433029a7211d137b", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-submit-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-submit-border-image-outset-001.html": [ + "8505655ea41c7c782045ab5c9080337679f039ee", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-submit-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-submit-border-image-repeat-001.html": [ + "42084e7d8b6dc7d4f8ce42a2fe11eb84088699db", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-submit-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-submit-border-image-slice-001.html": [ + "03721a19fd6a7c315453d22a4f161ebcb71ccef3", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-submit-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-submit-border-image-source-001.html": [ + "b768500ae8500387bba2b99af279d7fef487ebaa", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-submit-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-submit-border-image-width-001.html": [ + "cd28c59c28f4b7b613cb5184d90c05dbdad2e409", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-submit-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-submit-border-inline-end-color-001.html": [ + "7b1109ed257e24740d0de086d991404ab68cd490", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-submit-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-submit-border-inline-end-style-001.html": [ + "47c7d1f49f3907cb82b20e4df78865d0b95d08fe", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-submit-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-submit-border-inline-end-width-001.html": [ + "2fde013d5bcb9b1db4932812678f24854a1cfcd3", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-submit-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-submit-border-inline-start-color-001.html": [ + "debb7792402847289feda971e6aac248789a4edf", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-submit-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-submit-border-inline-start-style-001.html": [ + "4e260effb7fb382442dc974c527c1e439f9991ab", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-submit-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-submit-border-inline-start-width-001.html": [ + "9caca2822fe3b1be83b3e10f82efac9da597e581", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-submit-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-submit-border-left-color-001.html": [ + "7c5118375b0e549971a146d42d0f85621d4f9c55", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-submit-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-submit-border-left-style-001.html": [ + "8981d27e6104e87ed3ffd7cf502d08147135164a", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-submit-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-submit-border-left-width-001.html": [ + "5b93b5bc3d64354105f499d0951d93cfbfb75a75", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-submit-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-submit-border-right-color-001.html": [ + "243341d21216ee6c8cec6d8c10e0244b5a93c389", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-submit-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-submit-border-right-style-001.html": [ + "be67b5327d1828536ef98bbda470e2f1eb6bed77", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-submit-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-submit-border-right-width-001.html": [ + "bffb7dc6ac343c1d62048e503cf697e988eec9bf", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-submit-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-submit-border-start-end-radius-001.html": [ + "ab96454e0b32b65649e965e964c06789e71143ca", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-submit-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-submit-border-start-start-radius-001.html": [ + "0af363c8945b389f32a2665dc034cd6a76083775", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-submit-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-submit-border-top-color-001.html": [ + "9b62a7c5fcaf23672d0d5f7e20600497182b9567", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-submit-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-submit-border-top-left-radius-001.html": [ + "b6a1cd3476019de5f2d0d4cf688f47d05358d2c4", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-submit-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-submit-border-top-right-radius-001.html": [ + "48c4a8cbc7ef39618602b650dff67454cff4672d", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-submit-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-submit-border-top-style-001.html": [ + "de7b61f4a0d25c4967eab994bea664b195c7f79b", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-submit-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-submit-border-top-width-001.html": [ + "df2deefd7f31073233c8d9834be1fa0ba2958759", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-submit-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-text-background-attachment-001.html": [ + "9aa99504877179ac93d1fd9d3c5d6b13e01e2075", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-text-background-clip-001.html": [ + "e90ad46d577354107694b182d19616573c7ed075", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-text-background-color-001.html": [ + "10e5bfcc11d443557eac5d0a323d0ccd0b152dcb", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-text-background-image-001.html": [ + "ab612a371371d8adf95c91a9cde2d4896b4f1d74", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-text-background-origin-001.html": [ + "8b447fc78be29f73c553170a4bc018bf2abc482a", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-text-background-position-001.html": [ + "e75ae6369c8413bb1f42bbc17b8a9138933a234f", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-text-background-size-001.html": [ + "6e182151efcd6b3eb5a88fa13a119dca67ef2c48", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-text-border-block-end-color-001.html": [ + "00536269b176ce3b8dd3fab9f7f21395612c55e1", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-text-border-block-end-style-001.html": [ + "460aab47c63a0d4c3c0bc42f338dbb2882f93bc9", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-text-border-block-end-width-001.html": [ + "bfe0590c9eb25fe9c30850cc05e98c48db344062", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-text-border-block-start-color-001.html": [ + "a99decb693786062dd76d5e429271a8d9ee74e2f", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-text-border-block-start-style-001.html": [ + "fc3ac1a2fc0c5e43385ef3ea2b9f3d069f65c8de", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-text-border-block-start-width-001.html": [ + "9fa513af7aab47dea158885e5e72634da35d8427", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-text-border-bottom-color-001.html": [ + "2eb97b2d9c7c9a70029200826e91d2e301ee25a0", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-text-border-bottom-left-radius-001.html": [ + "34ffa2d2b37f26699450f1fe548eb91aa19d9ff2", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-text-border-bottom-right-radius-001.html": [ + "e889656af8f7879527edb6d7af3b8b0306e5e4a0", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-text-border-bottom-style-001.html": [ + "1afdb4b4862970da32eda70a536103a3d989978d", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-text-border-bottom-width-001.html": [ + "6540d05fa618e4793d7fedf7c136f73bded5b222", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-text-border-end-end-radius-001.html": [ + "98735e9c01f3741a9ceb21cc9d70dd21524915e1", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-text-border-end-start-radius-001.html": [ + "6dd419e22d96b01107c95398baec2bcd6eb1d24a", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-text-border-image-outset-001.html": [ + "fc46ace6cdeb1b7e4aebe714fa4a3f55362758f7", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-text-border-image-repeat-001.html": [ + "709485ffc30cef571fca21c9b7e6e6eae1a637c8", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-text-border-image-slice-001.html": [ + "1b391cceec48cccb3ef4be00a60883f19e200db4", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-text-border-image-source-001.html": [ + "2523a8261c6c4a601692534accddc4be907d54e8", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-text-border-image-width-001.html": [ + "3f22013eee67b2403fee6d344465e80798f40674", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-text-border-inline-end-color-001.html": [ + "294cc707d02d65ceabcf5a0118595c11ce8f6a43", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-text-border-inline-end-style-001.html": [ + "97a9a5dcfc4b586ab51067ce0594cc8cb9ea7b06", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-text-border-inline-end-width-001.html": [ + "e0035f2d79af8fefaa3cecacd5902fc92410759c", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-text-border-inline-start-color-001.html": [ + "f4b3974ab4714a29716a07e918b8b9d6cd7c5dfa", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-text-border-inline-start-style-001.html": [ + "e2b1ca7c7a177333042593e4ab6dadbe126b9282", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-text-border-inline-start-width-001.html": [ + "dc07a0ed82e4b0ff561006674651f5bfaec42006", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-text-border-left-color-001.html": [ + "65fd37f7e0fac66a653151433766b08df5670408", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-text-border-left-style-001.html": [ + "0c5fd539b612deca857fefe648cc0810bcb4df1a", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-text-border-left-width-001.html": [ + "5e8e54ef9e4d1e4ed182c7df8412bbe257140c70", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-text-border-right-color-001.html": [ + "91385eb589cd7aad3a05b34271978a4f66e2d02b", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-text-border-right-style-001.html": [ + "8fe090fc33a51d3de1ab5c098445da4f0c1aad81", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-text-border-right-width-001.html": [ + "cb3470e00072a56e83989370a24cc4e79c39a953", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-text-border-start-end-radius-001.html": [ + "d8ca285dfc1455cc0feb227b97bc6b6c30487876", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-text-border-start-start-radius-001.html": [ + "b3c94b3388beaeb4c09ffc06fa17dd988ebd2976", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-text-border-top-color-001.html": [ + "e57dba8c03f48f43210c024f7106fe2924755114", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-text-border-top-left-radius-001.html": [ + "d408d75db398decccdab6d14e2262d1f7fe433fc", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-text-border-top-right-radius-001.html": [ + "a39e8fff1fa172fb4a12bd447298b61a08de5a16", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-text-border-top-style-001.html": [ + "cd4fcc4b103801dd0639b2c4c606f5ab80d7fb18", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-input-text-border-top-width-001.html": [ + "21185f98908cad16c45a83563039181137f0be93", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-input-text-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-link-background-attachment-001.html": [ + "b68f8ee1cce1b3fd52f49f90dce14e38498bccde", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-link-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-link-background-clip-001.html": [ + "417f7154144c1372ea4f6236afaa4a3bae109761", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-link-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-link-background-color-001.html": [ + "52e07c3f0361cf97ee1c7a77f7898355e9af2882", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-link-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-link-background-image-001.html": [ + "27c6a2668fbe431aaa725a454c9afbbe8e07ec39", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-link-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-link-background-origin-001.html": [ + "06963ba20d8225f7099106c65b72ee44c59e32fa", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-link-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-link-background-position-001.html": [ + "e6e1c180bef7141e47ea0faeb9d64cb29a462ac5", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-link-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-link-background-size-001.html": [ + "0fec1738a7a5307e8458f1b4a1b808ab12a28b40", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-link-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-link-border-block-end-color-001.html": [ + "a35424ba40ab8e64886e0b55e328078d2176656a", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-link-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-link-border-block-end-style-001.html": [ + "471287ca74590de9163763031bcb1d82277d02a3", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-link-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-link-border-block-end-width-001.html": [ + "7010081f1b2f1109dd3b912a5b9e8c2203592bd9", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-link-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-link-border-block-start-color-001.html": [ + "c8861b4a7652bac6f65567fdf79d5997264bd031", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-link-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-link-border-block-start-style-001.html": [ + "510214f2eeb19e289649b6e14fe209940d6ba628", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-link-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-link-border-block-start-width-001.html": [ + "c9ebdbebccd7585e839ccbb42d600d35031286c2", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-link-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-link-border-bottom-color-001.html": [ + "8db0902fff0117195bd4ac898faa8fb9df51cd83", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-link-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-link-border-bottom-left-radius-001.html": [ + "8bee975ead6f50c048816bb8ea1729e087800c8b", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-link-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-link-border-bottom-right-radius-001.html": [ + "00ac753675b96b87278b88626c09e2211040a75e", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-link-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-link-border-bottom-style-001.html": [ + "ac19679451f5fbd599edcb6d5473f5db4c312f6b", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-link-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-link-border-bottom-width-001.html": [ + "c18b4dcf0aa5169351ff50950aa18639a76154b4", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-link-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-link-border-end-end-radius-001.html": [ + "bb8fa354bb08cde9bdc3aa5f1135f0c16f144756", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-link-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-link-border-end-start-radius-001.html": [ + "1263823068520e972a2096ccdcbe3ba6aaec95fe", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-link-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-link-border-image-outset-001.html": [ + "ab9b973ffa24da539de64bd730990e6e9e43e554", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-link-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-link-border-image-repeat-001.html": [ + "32eb2a38ffca6be90e8b55df790ee8f83144f967", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-link-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-link-border-image-slice-001.html": [ + "1a6486e9d14174e195f52ea5746d40b00060336d", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-link-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-link-border-image-source-001.html": [ + "2ae8d4d475131e6a56b2c9820055409ef4a242cf", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-link-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-link-border-image-width-001.html": [ + "f22d5bfa5f8b571291ecc6f2871a516ee9465b03", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-link-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-link-border-inline-end-color-001.html": [ + "86c142554b8af9c794d5f6bc04d9a39da286b162", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-link-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-link-border-inline-end-style-001.html": [ + "dd0df7f55b26a7aa995f94d475b6f64b92fc8059", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-link-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-link-border-inline-end-width-001.html": [ + "31ef531d5a74196c986a1cd770da24f5a5e903e3", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-link-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-link-border-inline-start-color-001.html": [ + "b721fb521193f233d5cd5db9aabd613df4344f6f", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-link-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-link-border-inline-start-style-001.html": [ + "a521fa1a91b0bee2bf58c7dadf36f596da3f4fae", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-link-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-link-border-inline-start-width-001.html": [ + "d8ad23661ee16e08b001791a0ee0e790980a807c", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-link-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-link-border-left-color-001.html": [ + "c2ec8d32693dffd5cc790fa91eac6905f6d48980", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-link-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-link-border-left-style-001.html": [ + "33c793aed53473ec9439f9824e98a05f30d9a32b", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-link-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-link-border-left-width-001.html": [ + "f8d2311a08dbe736b47bf9541f3741c7bcff675f", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-link-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-link-border-right-color-001.html": [ + "6affa83d96046482a115fb40209439de4f08547d", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-link-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-link-border-right-style-001.html": [ + "4d508dbb30a37468d41edbe28ead3eb25805abbb", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-link-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-link-border-right-width-001.html": [ + "c32ba83dbf34eb3013f57eb5243712e12834e477", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-link-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-link-border-start-end-radius-001.html": [ + "62be943c758efc4c6779e2225463ec49bed0f7ed", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-link-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-link-border-start-start-radius-001.html": [ + "84362f3e8d833750ab12cf021d5032cb456d11eb", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-link-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-link-border-top-color-001.html": [ + "f41ae3c623465f9244df328e9882c2b94396e8d5", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-link-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-link-border-top-left-radius-001.html": [ + "ec8ed2996cb8297bdb1397a46287b43803232558", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-link-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-link-border-top-right-radius-001.html": [ + "9c29f074f8006952f79023ce74ad85aec8059421", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-link-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-link-border-top-style-001.html": [ + "34c6b54a1d8bbb224a4bb07ec3714e3f2ef4fbb7", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-link-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-link-border-top-width-001.html": [ + "73b8261ae651ca302d4258c1e0b179eb726f26da", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-link-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-meter-background-attachment-001.html": [ + "f9760122e9ff3860070f96871efee320feaa2190", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-meter-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-meter-background-clip-001.html": [ + "dd353eb00ace915322be9c9777276457b8ea4a63", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-meter-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-meter-background-color-001.html": [ + "2d6f903a06beb6d6f0801b0aed0b73306c39d763", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-meter-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-meter-background-image-001.html": [ + "2217eba40951989dfd6b55fd8508dd7a1b2cb61e", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-meter-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-meter-background-origin-001.html": [ + "8c2321227deafd074f7117e7cacb158bf244de26", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-meter-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-meter-background-position-001.html": [ + "b82a49811950f914a59a64903dca8090474beefa", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-meter-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-meter-background-size-001.html": [ + "2e3fa56313c55e405538f30fbd39c29a529f33f5", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-meter-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-meter-border-block-end-color-001.html": [ + "2b0742dec12596fa1a17fecda264a56b8186dfac", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-meter-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-meter-border-block-end-style-001.html": [ + "cf733efffa1751ecd7c9b42c7be97a3b5ebd2c0b", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-meter-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-meter-border-block-end-width-001.html": [ + "44bcd7d59015f149b9423cb689f364a868c827ca", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-meter-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-meter-border-block-start-color-001.html": [ + "c03b5eb012415e6dffc2a587bf5fddf2d651af68", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-meter-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-meter-border-block-start-style-001.html": [ + "5ed90d368425814f98b88cdcee3be5a9330a64a7", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-meter-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-meter-border-block-start-width-001.html": [ + "0dae7defc1926ee711e9dea34963206ea61055f9", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-meter-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-meter-border-bottom-color-001.html": [ + "bc3d1bb8e7e63c77c4bd56a218f5e92eaeda9455", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-meter-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-meter-border-bottom-left-radius-001.html": [ + "aad197d19232297036fc5e54a7d08858043f928a", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-meter-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-meter-border-bottom-right-radius-001.html": [ + "2ea501c5ce3725bbaf488afde7b2cbbe47c25a90", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-meter-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-meter-border-bottom-style-001.html": [ + "887fe56ec67639f92d71721a7527ae6ddb8cde45", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-meter-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-meter-border-bottom-width-001.html": [ + "5af8fffb41782ed227d6bf98d01bf6fe9e084628", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-meter-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-meter-border-end-end-radius-001.html": [ + "bacfb1d979b11f3770636352e87339aa529989e0", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-meter-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-meter-border-end-start-radius-001.html": [ + "0a4d9bcd32721fe4d2f9c401c6f758b93092f53e", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-meter-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-meter-border-image-outset-001.html": [ + "f89f6c8c105fd712e87e948da3a46fd59b2fc3d7", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-meter-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-meter-border-image-repeat-001.html": [ + "c87a7194a782c0fa7c5cd480e098c8f45d49d960", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-meter-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-meter-border-image-slice-001.html": [ + "ebb7d24679894575d8a906069fea1f5f40d84cf6", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-meter-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-meter-border-image-source-001.html": [ + "a823e2281c30e47f49d7e736554beec3392b0b4b", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-meter-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-meter-border-image-width-001.html": [ + "c0d4f43d6a6420254c58c869cd50605b8d4ebdf0", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-meter-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-meter-border-inline-end-color-001.html": [ + "624c594d416af86a1d6f93ae62107284d86c3fdb", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-meter-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-meter-border-inline-end-style-001.html": [ + "233c4f2811f45feb672fd11eefe7b1088b7f4dfd", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-meter-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-meter-border-inline-end-width-001.html": [ + "4d25da679a9c0571356f8d01747598ff73953084", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-meter-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-meter-border-inline-start-color-001.html": [ + "49d0c1d9f7b6dfbbe0d01e506d9f82078b5b84ba", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-meter-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-meter-border-inline-start-style-001.html": [ + "0a48844deebddff9e843d76ec46774a878c66d3a", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-meter-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-meter-border-inline-start-width-001.html": [ + "ae7382c574ae135acbf594e1f047adb92e37ec58", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-meter-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-meter-border-left-color-001.html": [ + "f5cde670ff111e9337686257db95bc290c416ee1", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-meter-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-meter-border-left-style-001.html": [ + "48c1740146860da910e74aed0e6e9d64f96952ed", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-meter-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-meter-border-left-width-001.html": [ + "0aca1fbaa7c37308c1cea7ac3caed332de8d33a1", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-meter-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-meter-border-right-color-001.html": [ + "b7b2360792b739e6dc7cc1ada3d20bb10d3e4cf1", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-meter-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-meter-border-right-style-001.html": [ + "24d4b2eecaaff8cb35720dd395acfdefbca9dcb0", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-meter-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-meter-border-right-width-001.html": [ + "a3659d56629da9f5bfb52034b746ab87efccaef8", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-meter-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-meter-border-start-end-radius-001.html": [ + "ac4ec661e0c3b3c0348c84a6d100434cf07f46c0", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-meter-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-meter-border-start-start-radius-001.html": [ + "62d5d57d2b838344bc3663ccf86854e48a6a12f9", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-meter-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-meter-border-top-color-001.html": [ + "28210d6f675777046dad6c30df249952788bd1b5", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-meter-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-meter-border-top-left-radius-001.html": [ + "cf25cc48944706320f856838ec3bc06333e4335b", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-meter-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-meter-border-top-right-radius-001.html": [ + "24f15a54b8175618e5be853e68ecae116f42e74f", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-meter-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-meter-border-top-style-001.html": [ + "37ba183f77016192bd600a70106ff7b938f20dc3", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-meter-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-meter-border-top-width-001.html": [ + "c10fce34f4625e71a9332290c7c5fdd5f93120d3", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-meter-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-progress-background-attachment-001.html": [ + "b85186c680ebb0cdf48884b2dc6d021edb548dd7", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-progress-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-progress-background-clip-001.html": [ + "e3df1f06a2bcd37d3dd77b2d6078ff59a1110de0", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-progress-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-progress-background-color-001.html": [ + "8e935212c7545ac3c86b58c6c6b17d32acb445af", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-progress-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-progress-background-image-001.html": [ + "87e895e0439cece23fb7ae0b1a29c406b055e3eb", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-progress-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-progress-background-origin-001.html": [ + "a4958abd2405389c9cde2c55384858a359584347", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-progress-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-progress-background-position-001.html": [ + "ed117a9d97789a8870a61008749901ae600f50b0", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-progress-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-progress-background-size-001.html": [ + "3047ef8414f3ff018f4422098cdb5f0496b4ed87", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-progress-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-progress-border-block-end-color-001.html": [ + "3f0846230fd6ee8dd528727f7da0d8602c9e38e3", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-progress-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-progress-border-block-end-style-001.html": [ + "1cddf916cc4d734aeca2518c6cfafdb63eb510b9", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-progress-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-progress-border-block-end-width-001.html": [ + "fe21ae809faade94dccaf8d0199d631a24c08878", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-progress-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-progress-border-block-start-color-001.html": [ + "67b5b8330e2a188c2fafbfc76eda446d207ff658", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-progress-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-progress-border-block-start-style-001.html": [ + "5359a78b25dd16ec306b869b022ff147548c4cf4", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-progress-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-progress-border-block-start-width-001.html": [ + "1019a98b3e737bd0d45fd8966a72b4d8361576e0", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-progress-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-progress-border-bottom-color-001.html": [ + "366236c704411975a052dc1ac3c70efce6414991", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-progress-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-progress-border-bottom-left-radius-001.html": [ + "6dce72a618dc7b512930ff84cb62bfd17ad93556", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-progress-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-progress-border-bottom-right-radius-001.html": [ + "86eb1e7e762e9fae7a82066add54a273285073e0", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-progress-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-progress-border-bottom-style-001.html": [ + "900c7961bacc5f2530d6d6631d491774ae9155d7", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-progress-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-progress-border-bottom-width-001.html": [ + "67e97920d2467a0165a973c57dfac397887f9797", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-progress-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-progress-border-end-end-radius-001.html": [ + "0f78fb7c169d13ced707de7f16e4d9b8880f5336", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-progress-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-progress-border-end-start-radius-001.html": [ + "9f74da94cb2788adceb9433777a33b304bccabf4", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-progress-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-progress-border-image-outset-001.html": [ + "306c1611a0aa098d002a5ad9680d7597fb8abe03", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-progress-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-progress-border-image-repeat-001.html": [ + "2ba0e04b0df209274f58eb6b3a0ee354c2ca1f96", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-progress-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-progress-border-image-slice-001.html": [ + "42d6560f9c4fe4f92471e214231fa1144562c664", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-progress-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-progress-border-image-source-001.html": [ + "80e6fdcc2b5d3033b77ed758a8c8aa3c43c68773", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-progress-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-progress-border-image-width-001.html": [ + "5086cbae9217e3444de9bc451a36cd0e544bf52a", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-progress-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-progress-border-inline-end-color-001.html": [ + "88427b7892af28b38ddeeb8fe164b9a66e4a8dff", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-progress-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-progress-border-inline-end-style-001.html": [ + "e16bb5a9488717e95466dbb9d935dcd9e7e63b9c", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-progress-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-progress-border-inline-end-width-001.html": [ + "88f5615387b5e063f05964f0f5a38b295fde3b8c", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-progress-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-progress-border-inline-start-color-001.html": [ + "a94c23d7170209026320f82ee784d2c200f667ad", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-progress-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-progress-border-inline-start-style-001.html": [ + "479a0faa2d32e09c1755d6652695255e5abbda3f", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-progress-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-progress-border-inline-start-width-001.html": [ + "480fbc72079e412bba9b962deb30f9a79e2c0143", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-progress-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-progress-border-left-color-001.html": [ + "0f6a3c6fcba9f49fc7cda56b087a691d858387db", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-progress-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-progress-border-left-style-001.html": [ + "aab0719b9b6a6a4db1b1e8a2e31be0e262c20e40", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-progress-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-progress-border-left-width-001.html": [ + "6c24d4e733706194630df51f7b7699ab424c8dc0", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-progress-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-progress-border-right-color-001.html": [ + "2f0aa1351cd1c61688678c856ea23f4e3f6aca21", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-progress-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-progress-border-right-style-001.html": [ + "02dfe722a0e405d30dcc4ee81d325724ff8c1039", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-progress-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-progress-border-right-width-001.html": [ + "4f438b53209b044dbe7c7f48074ebde0801e4546", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-progress-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-progress-border-start-end-radius-001.html": [ + "bdab3fd0ec33dbd91fc5b5a92a3b7b93472e6057", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-progress-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-progress-border-start-start-radius-001.html": [ + "5c5f06890fbb38ad0bf702188da4cc41782be6d8", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-progress-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-progress-border-top-color-001.html": [ + "62c0d5f2b9f74bd2e7a99011fbe6e67baf1d0fd0", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-progress-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-progress-border-top-left-radius-001.html": [ + "7c6b62f8269aec603a7c429a432f0879564408d4", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-progress-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-progress-border-top-right-radius-001.html": [ + "f412a90350b96f4e10ddc42140f56e90e4266bf7", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-progress-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-progress-border-top-style-001.html": [ + "c8601df503c5526dc56824c1070a69a0f38fcbe9", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-progress-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-progress-border-top-width-001.html": [ + "ea5c5c49faa8ef00e60f21106803a73bb4e6c9db", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-progress-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-radio-input-background-attachment-001.html": [ + "8c7e8ea16ea0204b9204d8775c075ff7925a9fe5", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-radio-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-radio-input-background-clip-001.html": [ + "cbb6a7ec1010a82a1cab2997536c2b8b88132959", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-radio-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-radio-input-background-color-001.html": [ + "ce5b79bbe2758db1efdeac9f5981ca09a00d7ed4", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-radio-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-radio-input-background-image-001.html": [ + "e15e9e4c1583dbfebe4df677dcf32bf645da6400", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-radio-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-radio-input-background-origin-001.html": [ + "0e81e6fe384e29eee639191425f0d18b52149694", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-radio-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-radio-input-background-position-001.html": [ + "4fa8e7af26eec614544bbc6edff17f7da50ce058", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-radio-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-radio-input-background-size-001.html": [ + "1a989ed6dffc2b3f6b4ee402ada23acdaa871883", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-radio-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-radio-input-border-block-end-color-001.html": [ + "d7708ce4cc21c22799fe49bda50d222192b2c922", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-radio-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-radio-input-border-block-end-style-001.html": [ + "4707f09aa945472cc1f3fce21f846daf47998e6b", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-radio-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-radio-input-border-block-end-width-001.html": [ + "a0098cc0ecc48386dbebcf3edaca18040e1529a4", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-radio-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-radio-input-border-block-start-color-001.html": [ + "0375cd802f35f8e01b8e82f7b77d62597ec35b7c", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-radio-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-radio-input-border-block-start-style-001.html": [ + "ec17b48c6bd3b26e65408124cbb397c64df41c8c", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-radio-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-radio-input-border-block-start-width-001.html": [ + "2e3d9443cd26597ae08e982618ec66041493f8dc", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-radio-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-radio-input-border-bottom-color-001.html": [ + "1cbebba1d7209099fcc82b5ddc3a324fee4838a3", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-radio-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-radio-input-border-bottom-left-radius-001.html": [ + "f9c253da89d83754a00a3197a7623ff6cfd2e2cb", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-radio-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-radio-input-border-bottom-right-radius-001.html": [ + "5f1458598c3a4c1475f299d53700d00a785b63cf", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-radio-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-radio-input-border-bottom-style-001.html": [ + "96c893220104d7bf74e616864e0d36d49146546b", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-radio-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-radio-input-border-bottom-width-001.html": [ + "be80a5af60b32a66ca1a8eba0102a59d7e2b4bd2", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-radio-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-radio-input-border-end-end-radius-001.html": [ + "f03b3ffdc2fc94aefd1515e92925a8ef14855b81", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-radio-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-radio-input-border-end-start-radius-001.html": [ + "954a4ff433e698bb03a5c370033ef96bd8c4a829", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-radio-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-radio-input-border-image-outset-001.html": [ + "896530685676c2a68919493fc222d599c0476b79", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-radio-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-radio-input-border-image-repeat-001.html": [ + "662f9ca648b11ec8823a7b468bd869e395618394", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-radio-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-radio-input-border-image-slice-001.html": [ + "f15ebe31a75d837343b69dae704ad32da0d9447d", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-radio-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-radio-input-border-image-source-001.html": [ + "539ebb7b5d52d476556c99f59e8d6eb9b131988f", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-radio-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-radio-input-border-image-width-001.html": [ + "a17d8475dd6623e6267104d61b219bb507af3294", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-radio-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-radio-input-border-inline-end-color-001.html": [ + "87720700681f656ded2cc2d76ec5f5b7000c2ada", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-radio-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-radio-input-border-inline-end-style-001.html": [ + "271f4e37fd71297c5deb883b9c7d2deb87c3d282", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-radio-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-radio-input-border-inline-end-width-001.html": [ + "7f61c6fb5932de52e9a7f7582e2c13504375c2a2", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-radio-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-radio-input-border-inline-start-color-001.html": [ + "6c25f25d174268dba7f7f2c81e4037175ba4ffa2", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-radio-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-radio-input-border-inline-start-style-001.html": [ + "5ced60d4bab9c593f8e59380414767dc930a1d37", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-radio-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-radio-input-border-inline-start-width-001.html": [ + "f39286a771fb1fe525bffeb989236ce456d807a3", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-radio-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-radio-input-border-left-color-001.html": [ + "b19deb2c662053202642b1f375815a3b9605ebd0", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-radio-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-radio-input-border-left-style-001.html": [ + "56e7d9ef187e157d96e5a63294c6add509d0097a", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-radio-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-radio-input-border-left-width-001.html": [ + "2ee2531b681a427f7b31bca6bcd0292073de3a38", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-radio-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-radio-input-border-right-color-001.html": [ + "8fbb9f4115f0ca1b0e4829b5b06faee8c4769bf1", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-radio-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-radio-input-border-right-style-001.html": [ + "df88bff3fc9ed8714407150c77ddb9acd77f3513", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-radio-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-radio-input-border-right-width-001.html": [ + "22ce6e076fba56ab380bc31872b5c3c0233daaae", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-radio-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-radio-input-border-start-end-radius-001.html": [ + "360b827151ab0b47b419116f53ec2d6368d38d44", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-radio-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-radio-input-border-start-start-radius-001.html": [ + "6a6904d0137bb2662c874f04c50fbf77fcfc5a8a", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-radio-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-radio-input-border-top-color-001.html": [ + "08086865d66f4e71a577a54722d40494c78c2dd2", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-radio-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-radio-input-border-top-left-radius-001.html": [ + "426cae160ec59a56f8ccbd848d978dc80a6a1b8b", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-radio-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-radio-input-border-top-right-radius-001.html": [ + "b95427553ea3eb7a833395cc827cbaf00792f812", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-radio-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-radio-input-border-top-style-001.html": [ + "ead7b86ce6f3f77cb9d63556def82bb1c6749a69", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-radio-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-radio-input-border-top-width-001.html": [ + "c2a867421b6c93336d09a67574bf7736d08fa968", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-radio-input-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-range-background-attachment-001.html": [ + "72c767a514b70c0b33c4524e5cec917de4bd793e", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-range-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-range-background-clip-001.html": [ + "790641dd9da6dea91ad1eb1e979ad7153a9ae7be", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-range-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-range-background-color-001.html": [ + "b3e18adffa8246663ebffd57ceef44323e833fa5", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-range-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-range-background-image-001.html": [ + "4043b25fe9acd49a82b79a3708044030136ff770", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-range-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-range-background-origin-001.html": [ + "a80b97b2a12bec061583636df49262559ce0a22e", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-range-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-range-background-position-001.html": [ + "895faa00848db94c97ffd902ce47e42e0acc0bd9", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-range-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-range-background-size-001.html": [ + "a3513799ae14bdaf508024217a03a4ba0e9a50c9", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-range-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-range-border-block-end-color-001.html": [ + "557070fe80da61008ec1448aad899a625607ab4b", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-range-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-range-border-block-end-style-001.html": [ + "b0748f3f5bc7fa8ff58dcc8101d9621aa44d8e5b", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-range-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-range-border-block-end-width-001.html": [ + "f5b075ac170702fe302dda9e8b74de471ac39003", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-range-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-range-border-block-start-color-001.html": [ + "28a37eae6a66ebd4dcf3ea5c2525fc724efcc971", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-range-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-range-border-block-start-style-001.html": [ + "3ff761c72119cad75adc46cfacd9f02025d38d37", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-range-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-range-border-block-start-width-001.html": [ + "78458b66081973bd09e842ed0f94077596879f70", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-range-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-range-border-bottom-color-001.html": [ + "fabdf0a492c43367f8d38607c693fbc66618ffaf", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-range-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-range-border-bottom-left-radius-001.html": [ + "4f4b4c6d919d2db15ed2f0a19c8b65eeefa8dfd3", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-range-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-range-border-bottom-right-radius-001.html": [ + "5a0bdd2902a4d6ad9017ff96dc2ccc971b16bc45", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-range-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-range-border-bottom-style-001.html": [ + "2478e65d1fd9128321dc501875bdebf825b41b76", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-range-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-range-border-bottom-width-001.html": [ + "924356441be4e222f199e7bda7cd9fad82aacab9", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-range-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-range-border-end-end-radius-001.html": [ + "96b8ee95c23dafa5c53f91a1d46bad13661e1f14", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-range-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-range-border-end-start-radius-001.html": [ + "2c2e4ed67a0cefc802dfb90d84f0d507cf0d1ca7", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-range-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-range-border-image-outset-001.html": [ + "9890eae400c798cd691317786b663eef139087b3", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-range-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-range-border-image-repeat-001.html": [ + "a3602ef173399818752b952b66e3b308cd014c2c", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-range-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-range-border-image-slice-001.html": [ + "0c8ffa168b4fa1105b785d13ec5b8e028ab04789", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-range-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-range-border-image-source-001.html": [ + "60fcd035a1dbf3b42cbb5fcfe4d4438fda095c3e", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-range-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-range-border-image-width-001.html": [ + "59098eec896ecaa33784d47632236491ec2ef5fa", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-range-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-range-border-inline-end-color-001.html": [ + "16e2c1bd4738468a6a7d8d1f3caddc92ca5afd60", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-range-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-range-border-inline-end-style-001.html": [ + "7e664810f31c38dbcfe138b4944cfa5aef77d503", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-range-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-range-border-inline-end-width-001.html": [ + "eaff4997e6e61043d70261b73bfd61e65edb7e00", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-range-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-range-border-inline-start-color-001.html": [ + "163694169afde092e6b4f0b788f3b29837fdbac9", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-range-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-range-border-inline-start-style-001.html": [ + "a5b216d1fa4032bb1ad85e76110bf27ebbf08f9b", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-range-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-range-border-inline-start-width-001.html": [ + "0eb1f6ec6ff361735b21e0975212e1e2541a3efc", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-range-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-range-border-left-color-001.html": [ + "02135eae2d34afd6fdd84576e8cded488846ad5c", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-range-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-range-border-left-style-001.html": [ + "edef1998be498313121ed43dd2724a5971c42041", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-range-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-range-border-left-width-001.html": [ + "e9d2804bcd58801fe5d8f1cda7a274e8383a8b74", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-range-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-range-border-right-color-001.html": [ + "fb20afa6e6ca307b738cd02c542e6a43b7675985", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-range-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-range-border-right-style-001.html": [ + "6f4bfe40689b25aa42200a79e005cfdcb266622b", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-range-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-range-border-right-width-001.html": [ + "03422cd5f3ffb57744bd417d14e2e4409d2e13e8", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-range-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-range-border-start-end-radius-001.html": [ + "c5d4621893b9293914b46ac54e9adcfa0d32af50", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-range-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-range-border-start-start-radius-001.html": [ + "5c4a81f0643b0535e0cc7c1858e79ceb4c91f231", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-range-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-range-border-top-color-001.html": [ + "a8b12f51b0b80d6c6cbc7c3fc83fefa105057e6b", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-range-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-range-border-top-left-radius-001.html": [ + "0eefc064b21990feb4d96f0eaf32f70c8d2b32ae", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-range-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-range-border-top-right-radius-001.html": [ + "d43e98ee52ffba5a469994e26c3281acbad2f39d", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-range-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-range-border-top-style-001.html": [ + "1e8dec3e85c478cf606d973ab8aebfd93dceaa5e", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-range-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-range-border-top-width-001.html": [ + "a45f6b142780623addab8d4fda6947288add8f4f", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-range-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-dropdown-box-background-attachment-001.html": [ + "9ba894427444c72a89500f7eb02e13314e763765", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-dropdown-box-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-dropdown-box-background-clip-001.html": [ + "719bec28ed4048a2c972e28ad55b996c83a181ec", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-dropdown-box-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-dropdown-box-background-color-001.html": [ + "9092c41bd91cb8890b43daa048b98ef652e525f0", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-dropdown-box-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-dropdown-box-background-image-001.html": [ + "972c343dc845f3f15e69ca98a99fa53204862681", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-dropdown-box-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-dropdown-box-background-origin-001.html": [ + "abc9acfc41f5d24ec707989910735535573d7448", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-dropdown-box-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-dropdown-box-background-position-001.html": [ + "999fff4211225d8154766f5e1b33e5bff8723dcd", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-dropdown-box-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-dropdown-box-background-size-001.html": [ + "977bc0e835434990d24e804d9f133cd67fe6734c", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-dropdown-box-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-dropdown-box-border-block-end-color-001.html": [ + "46bdb5b0e4c04bfdf0afc95509e452a86906ec64", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-dropdown-box-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-dropdown-box-border-block-end-style-001.html": [ + "aa3788595a35a1db157349111910fba3a3c04097", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-dropdown-box-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-dropdown-box-border-block-end-width-001.html": [ + "cebe998f89983d8dbddf62544634a2bec4e13a58", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-dropdown-box-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-dropdown-box-border-block-start-color-001.html": [ + "9c238d576090fe0c36fa311795aef7f7f90cdd8b", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-dropdown-box-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-dropdown-box-border-block-start-style-001.html": [ + "7061a367ba0281f3ad2df9efd72d66c7d82352ce", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-dropdown-box-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-dropdown-box-border-block-start-width-001.html": [ + "34578a4782c5a33be78b38864181072f572f7e69", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-dropdown-box-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-dropdown-box-border-bottom-color-001.html": [ + "d1a7a01295b8053d7a18783d955aef9aa135868d", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-dropdown-box-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-dropdown-box-border-bottom-left-radius-001.html": [ + "1c70cd361c7ec50caff095424f1eb506a8aa1592", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-dropdown-box-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-dropdown-box-border-bottom-right-radius-001.html": [ + "5185032c233e9b2dbc3de6fb8c08858baa1171be", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-dropdown-box-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-dropdown-box-border-bottom-style-001.html": [ + "ceda4319545515b535e5a5395795f352f22d0d4d", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-dropdown-box-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-dropdown-box-border-bottom-width-001.html": [ + "3c43f47e59499d93377c04ca49c6cd553c467d44", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-dropdown-box-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-dropdown-box-border-end-end-radius-001.html": [ + "182c527cc53030f6fe5ccdb2a2641508e6649c90", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-dropdown-box-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-dropdown-box-border-end-start-radius-001.html": [ + "efbd14d7de4eb47b6f3a8c8a8551eb97ef23ca8e", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-dropdown-box-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-dropdown-box-border-image-outset-001.html": [ + "5a0eb9beab1260e913bc3bf5c2b4199e360198d7", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-dropdown-box-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-dropdown-box-border-image-repeat-001.html": [ + "5ad2b2c0f838106495a38e35a4bbf7522e1b1416", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-dropdown-box-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-dropdown-box-border-image-slice-001.html": [ + "3993331322e5499dbfdeea3bcdfe1504af47485b", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-dropdown-box-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-dropdown-box-border-image-source-001.html": [ + "9c9da2935a6473301c78faf359665db66d6d5448", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-dropdown-box-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-dropdown-box-border-image-width-001.html": [ + "d03492c583fc2d83351ee53551c7696a5a923d37", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-dropdown-box-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-dropdown-box-border-inline-end-color-001.html": [ + "b8498148b64d076332f8b58b46235c0fe7aff78f", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-dropdown-box-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-dropdown-box-border-inline-end-style-001.html": [ + "13a75cc5cd60e91e35d5fb04f25da614935a2a40", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-dropdown-box-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-dropdown-box-border-inline-end-width-001.html": [ + "40d13678cca02a582cabc06d9bb3478a7714676c", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-dropdown-box-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-dropdown-box-border-inline-start-color-001.html": [ + "de4241fdf990ef3eb4dde0c13202b66ca73efc11", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-dropdown-box-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-dropdown-box-border-inline-start-style-001.html": [ + "9ea8f4dfe54907b818920d06a836ad0576cf033c", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-dropdown-box-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-dropdown-box-border-inline-start-width-001.html": [ + "dedfa6d40e83dfa987078cd399337237aabd5022", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-dropdown-box-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-dropdown-box-border-left-color-001.html": [ + "5f88004404fd61f33c3188d88d1da85cba889d4d", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-dropdown-box-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-dropdown-box-border-left-style-001.html": [ + "d574ac685053c4969fcf3143331dc21bea1ffe4a", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-dropdown-box-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-dropdown-box-border-left-width-001.html": [ + "0c466b38ea428c898c5aa7cc2b7b30a922b39464", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-dropdown-box-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-dropdown-box-border-right-color-001.html": [ + "ac2c9b29cf0650585af363adf0419ac37adda254", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-dropdown-box-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-dropdown-box-border-right-style-001.html": [ + "671dd6fcccd8a2138d0325ef2b784a52989d7d6a", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-dropdown-box-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-dropdown-box-border-right-width-001.html": [ + "2c7baec75288e976d505c070107c2f8d87caea75", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-dropdown-box-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-dropdown-box-border-start-end-radius-001.html": [ + "43c1b27a7e88dcc01815bde35227067e159227d8", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-dropdown-box-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-dropdown-box-border-start-start-radius-001.html": [ + "f902a43179494c4ac0769b5e30c6afa6dfc31c6c", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-dropdown-box-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-dropdown-box-border-top-color-001.html": [ + "b030e5cd21995f2836dc9eb5203b28c6574e9ea1", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-dropdown-box-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-dropdown-box-border-top-left-radius-001.html": [ + "35d83e296eef2678bea2a7f84f44d1d3506d5bda", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-dropdown-box-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-dropdown-box-border-top-right-radius-001.html": [ + "922a101bec949dfb98f7648202abb75e544e8dda", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-dropdown-box-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-dropdown-box-border-top-style-001.html": [ + "dfddc274ebb80a9c5cddc03ec7db195238a0410d", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-dropdown-box-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-dropdown-box-border-top-width-001.html": [ + "30019434dbb24a71514b6de46ea62f60c3f8902c", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-dropdown-box-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-listbox-background-attachment-001.html": [ + "b6f4087456d6517c52c374d758eda3b086702801", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-listbox-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-listbox-background-clip-001.html": [ + "43f87212d185adeda107350933e81efa13c75b35", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-listbox-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-listbox-background-color-001.html": [ + "b349902c1bec04fd6738423c17f352ad6e5ddd16", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-listbox-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-listbox-background-image-001.html": [ + "bf8b706bf15f407a4507fd85416b54e532e9cfe6", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-listbox-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-listbox-background-origin-001.html": [ + "dfd1a934a8706b4470ac2b295c75a7c10558f99d", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-listbox-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-listbox-background-position-001.html": [ + "41b6a7b81b0c5aca4f9e8ae2600da05f241cc5b9", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-listbox-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-listbox-background-size-001.html": [ + "64fe9a0c892fbaea3529aa130079793f4811f465", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-listbox-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-listbox-border-block-end-color-001.html": [ + "17a010be36197dac8a226fcc6ba6d14cf08e289b", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-listbox-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-listbox-border-block-end-style-001.html": [ + "f079e82abceb3a4659c3daf45137a94d19e7f92d", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-listbox-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-listbox-border-block-end-width-001.html": [ + "8f741e2136aa2da3b6d4b43c97c2339d288d4323", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-listbox-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-listbox-border-block-start-color-001.html": [ + "28ff9ee6ae25cf69cf01d09598fb14df2de792b7", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-listbox-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-listbox-border-block-start-style-001.html": [ + "dc7bcd09520b7d5d6b7fc1a663348fff5f0a1ed5", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-listbox-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-listbox-border-block-start-width-001.html": [ + "0509dde5fb4cd5c9e853468b10f2d09134d70c9b", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-listbox-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-listbox-border-bottom-color-001.html": [ + "af7704d0dd87e1644b7a00da0d98e5230e3a517b", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-listbox-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-listbox-border-bottom-left-radius-001.html": [ + "b38b443531a59ab8a135aaf135e6959e7bf7b5cf", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-listbox-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-listbox-border-bottom-right-radius-001.html": [ + "f797e078f85215bc5f6cb73fb07b64a10939c280", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-listbox-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-listbox-border-bottom-style-001.html": [ + "6d895bce48c03b5d0c1c7a4b887347d9fcdd6f13", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-listbox-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-listbox-border-bottom-width-001.html": [ + "14ea0153c5e3d71859aacde49ae91d12df64d88c", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-listbox-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-listbox-border-end-end-radius-001.html": [ + "d10504774786007547afa72446723ed9f9ceb869", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-listbox-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-listbox-border-end-start-radius-001.html": [ + "0ca58e5d0410872be10550c2a2d4325783f0ddff", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-listbox-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-listbox-border-image-outset-001.html": [ + "367d1f64e19ae61d8dcfcaaed8ad187a8d839820", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-listbox-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-listbox-border-image-repeat-001.html": [ + "558ab52000e48ea0574e5f831de271f39ef55172", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-listbox-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-listbox-border-image-slice-001.html": [ + "736ffd422d1413e700b3b8da844d630e20ddfec6", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-listbox-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-listbox-border-image-source-001.html": [ + "987ed46626247c5ef7e76fd5be07858abf65de23", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-listbox-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-listbox-border-image-width-001.html": [ + "e6d824e21bc9d777f4cddcc1f205d97ba70b06fd", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-listbox-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-listbox-border-inline-end-color-001.html": [ + "269805c299c15dde58ff986b57da5a6c308fea07", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-listbox-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-listbox-border-inline-end-style-001.html": [ + "74f67947104b47863e42383afa3e2f47080c632e", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-listbox-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-listbox-border-inline-end-width-001.html": [ + "bfb561c4b15469783b0f6c801df508428ff7ba02", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-listbox-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-listbox-border-inline-start-color-001.html": [ + "7403def5f488413d1bcaaaeab2cc61dd1487f01c", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-listbox-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-listbox-border-inline-start-style-001.html": [ + "235436bb4ac61f7fe8a1011dfcd30d656c42838a", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-listbox-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-listbox-border-inline-start-width-001.html": [ + "24f6eb28a96d3d645015952ec443429fc7af9034", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-listbox-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-listbox-border-left-color-001.html": [ + "107eeec6a20d5e53787647929de653ecb9ae6865", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-listbox-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-listbox-border-left-style-001.html": [ + "a97d90c5cb8b3dfd6fe142a559b07d7661287dca", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-listbox-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-listbox-border-left-width-001.html": [ + "894276bb89f328c4d7bb697c618a438c554d6a6e", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-listbox-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-listbox-border-right-color-001.html": [ + "6ebb3df1977411e535b181e7108d73c2c45b8528", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-listbox-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-listbox-border-right-style-001.html": [ + "4cc83727db01163ec5e7b9de9b02cd56f15c195f", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-listbox-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-listbox-border-right-width-001.html": [ + "029c608827714be344aa39571bf31d6f4ebd4bd9", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-listbox-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-listbox-border-start-end-radius-001.html": [ + "464d7dfd1bbe2a7ea6b2747ff4caf59cf7cc4937", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-listbox-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-listbox-border-start-start-radius-001.html": [ + "81c7892743bf1621cfb5b8bda1d6280fa7816f01", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-listbox-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-listbox-border-top-color-001.html": [ + "d7c68ac98d9cb44bad1d3ba962953801f872d622", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-listbox-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-listbox-border-top-left-radius-001.html": [ + "3b306bb7eb125d2658fc1a3e2f2e624da18c407c", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-listbox-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-listbox-border-top-right-radius-001.html": [ + "ae8091382ba1283b9dfe8e35aff04681411d1f89", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-listbox-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-listbox-border-top-style-001.html": [ + "8fbbb91e2ed90f265a593e341980c6159b039f2b", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-listbox-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-listbox-border-top-width-001.html": [ + "b80972a50eaa4a95ad283e46f1cf29ae160b343b", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-listbox-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-menulist-button-background-attachment-001.html": [ + "4378b659c2c1c344c8c5f5964e6983d8b2e47c28", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-menulist-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-menulist-button-background-clip-001.html": [ + "d62a086486f15e73886593d0e3a1a48e581c547b", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-menulist-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-menulist-button-background-color-001.html": [ + "bbf309938c8885399f5f79dd10230e3271e7c93a", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-menulist-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-menulist-button-background-image-001.html": [ + "12c9fd5c4acf0e237fc8b903fbded5394beec441", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-menulist-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-menulist-button-background-origin-001.html": [ + "336fc8623c043468edcfec3b39cef99c07bdc209", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-menulist-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-menulist-button-background-position-001.html": [ + "7f4013654ff13db983f53d287dcbd12924926268", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-menulist-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-menulist-button-background-size-001.html": [ + "bb420ccf7352081807a94e9e9e7bb51894ecd356", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-menulist-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-menulist-button-border-block-end-color-001.html": [ + "1a476acc4658edc4d4926b052a5b39c253c6a988", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-menulist-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-menulist-button-border-block-end-style-001.html": [ + "db784585734fa9fe7600af31fcba2e2e142d6a19", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-menulist-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-menulist-button-border-block-end-width-001.html": [ + "f21984e12c3c19ddf454ca5c39ea1afd104617da", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-menulist-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-menulist-button-border-block-start-color-001.html": [ + "95308ab790f75940e47da85cba4baf19ef51fe43", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-menulist-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-menulist-button-border-block-start-style-001.html": [ + "1fa80c7ecacf4d3ae8d365ec205fa4a969ff3b76", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-menulist-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-menulist-button-border-block-start-width-001.html": [ + "57553cd3065db713f17c5144a842662765e246fb", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-menulist-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-menulist-button-border-bottom-color-001.html": [ + "4666747e225a74d6c272672dfcbc6541b9f34f23", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-menulist-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-menulist-button-border-bottom-left-radius-001.html": [ + "c58d57f7096b21f3f34b0f4bc8485f7517717764", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-menulist-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-menulist-button-border-bottom-right-radius-001.html": [ + "e302b17d5460577c681b447e5c982fa8f4b30a99", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-menulist-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-menulist-button-border-bottom-style-001.html": [ + "c0154d1e8316ac24c29c32099b8e0fe8ff2e7c4f", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-menulist-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-menulist-button-border-bottom-width-001.html": [ + "1dc70272c26a80f6fc2aa66d238e6c577d9aaba7", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-menulist-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-menulist-button-border-end-end-radius-001.html": [ + "ebedeacd9cd2ccbb4eb3a7c176bf028057c370cb", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-menulist-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-menulist-button-border-end-start-radius-001.html": [ + "4a023992368de242b99a4f1b4aef8049ed611ed5", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-menulist-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-menulist-button-border-image-outset-001.html": [ + "015737dca3cef99942639ac27135a7acc3b5fa68", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-menulist-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-menulist-button-border-image-repeat-001.html": [ + "cb03b812f03b62d3047a88c404e50775dc53f2e7", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-menulist-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-menulist-button-border-image-slice-001.html": [ + "799010070b8e894a09259a3c4b6cc74ceadc751f", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-menulist-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-menulist-button-border-image-source-001.html": [ + "1b3838ebb4793cd3615a6b0755424d7a6ccda1fc", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-menulist-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-menulist-button-border-image-width-001.html": [ + "d78b9d9f384d7ca604b51d205edecdfa0833b372", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-menulist-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-menulist-button-border-inline-end-color-001.html": [ + "20c896d910984257c628ce76f998e32d991d910e", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-menulist-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-menulist-button-border-inline-end-style-001.html": [ + "15048d4353f1e5e00a7dfcaf46002a40114c71de", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-menulist-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-menulist-button-border-inline-end-width-001.html": [ + "ad7b00ede88de39cef9ac714e95a361452bea6d3", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-menulist-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-menulist-button-border-inline-start-color-001.html": [ + "4641bb3e77233bc3becee87c5a29b9d2c9a74973", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-menulist-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-menulist-button-border-inline-start-style-001.html": [ + "ab06492b23181c40060c44629690f0b5861853d1", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-menulist-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-menulist-button-border-inline-start-width-001.html": [ + "0e3fcac797a1ba7816a57a085d1277b9f3aba292", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-menulist-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-menulist-button-border-left-color-001.html": [ + "9fa4d380cf3a68305162eecf2cc655400ee41217", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-menulist-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-menulist-button-border-left-style-001.html": [ + "d1351ee725d0684ec507a82786296761a213b10b", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-menulist-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-menulist-button-border-left-width-001.html": [ + "bfcb9e17847817aed94627f6948fb7b5b6de99e0", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-menulist-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-menulist-button-border-right-color-001.html": [ + "71d6758b80e4616624951ef9f12f9915f396d9d2", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-menulist-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-menulist-button-border-right-style-001.html": [ + "0927300e74b2b46a5cfd9d3380cbb107835ab5fb", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-menulist-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-menulist-button-border-right-width-001.html": [ + "01928ca8b808e7a15a2ce5835c717bc9bc84f4b5", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-menulist-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-menulist-button-border-start-end-radius-001.html": [ + "7fb7bcf7f94c7554ca09ba00f2da583a80af3759", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-menulist-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-menulist-button-border-start-start-radius-001.html": [ + "35fef879cc3ed282fbe15ec88a852fb45017725a", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-menulist-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-menulist-button-border-top-color-001.html": [ + "cf1d4f82601ec1cea1e8d58d4394f31e6944faf9", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-menulist-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-menulist-button-border-top-left-radius-001.html": [ + "8b0eda3d788251b3252562e6d69743547d981bcc", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-menulist-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-menulist-button-border-top-right-radius-001.html": [ + "d2ec819ac667c8af71877de77878b5a58e7ccb27", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-menulist-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-menulist-button-border-top-style-001.html": [ + "5625d4f13216f18a823b1f5556b81d5a3d44265c", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-menulist-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-select-menulist-button-border-top-width-001.html": [ + "536a7ac8f21451578633eeeb9c503e4338b4e04c", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-select-menulist-button-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-textarea-background-attachment-001.html": [ + "ab67317a2088d5de217cc86f5465d088c414db26", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-textarea-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-textarea-background-clip-001.html": [ + "821cdda2774642696e696b47bc56cfa41b3b06ed", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-textarea-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-textarea-background-color-001.html": [ + "999bf80ab42945e3f7f80e61afba2172c9ad41d5", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-textarea-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-textarea-background-image-001.html": [ + "30171213b4b496bea19ed66a45abc543cf65890e", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-textarea-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-textarea-background-origin-001.html": [ + "9eaaeabc5054054980677b0783f9e8f4f826d8c5", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-textarea-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-textarea-background-position-001.html": [ + "42c4f0ad61dd9576fbf6917751b1409cb1725b72", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-textarea-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-textarea-background-size-001.html": [ + "00d57199ada8413d63aa4b34225828ac3ece2a72", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-textarea-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-textarea-border-block-end-color-001.html": [ + "c44d7d585eb510f7537039f862c1a912ccbedb0d", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-textarea-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-textarea-border-block-end-style-001.html": [ + "61f2f20b7ba265f4a5e16123d4a535bc40f8de92", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-textarea-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-textarea-border-block-end-width-001.html": [ + "c18998c5d5f8c9d9289cba1a211c6322421463fb", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-textarea-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-textarea-border-block-start-color-001.html": [ + "4952f5a7ecc012a3ff2770d4841d3f25e5a845f8", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-textarea-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-textarea-border-block-start-style-001.html": [ + "757ace5132d152f45389b9ad505c5b55e4e13837", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-textarea-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-textarea-border-block-start-width-001.html": [ + "c32109de554dac638b0471f6880e525675599b5a", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-textarea-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-textarea-border-bottom-color-001.html": [ + "6bbcadcc80d88daacda98d620b65ee80fca6a709", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-textarea-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-textarea-border-bottom-left-radius-001.html": [ + "8d1e7c4ba865d8414b52fb80c0d0e476080e5837", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-textarea-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-textarea-border-bottom-right-radius-001.html": [ + "d7efd39f0f741183ace6fe34b989d7f2f0f2ddd1", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-textarea-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-textarea-border-bottom-style-001.html": [ + "82c24b5f46085930980861fa7eb84f5cf752b857", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-textarea-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-textarea-border-bottom-width-001.html": [ + "f26aa76e6ab1c42dffc1ccf092be006321d66035", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-textarea-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-textarea-border-end-end-radius-001.html": [ + "6f75cec2d2e6a9d7d6c5dffd9248f456ff890d93", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-textarea-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-textarea-border-end-start-radius-001.html": [ + "6820c01f1084a1ced4748c6b9726d3a6c271c0bf", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-textarea-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-textarea-border-image-outset-001.html": [ + "eceb94c0b6ad525d3a4b216785f66d73cc406245", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-textarea-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-textarea-border-image-repeat-001.html": [ + "c5861b08bd8906921c4414afedd1c4f432108c94", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-textarea-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-textarea-border-image-slice-001.html": [ + "ffe49fda1077b7579692f63531a65a03927d7706", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-textarea-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-textarea-border-image-source-001.html": [ + "e8c66dd3b0f338a68ff4428913ba7b5da3e0cc00", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-textarea-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-textarea-border-image-width-001.html": [ + "62848f6c7d31ad3b3a17cd53a37c9b1a771e6a48", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-textarea-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-textarea-border-inline-end-color-001.html": [ + "96dfb2cb6e5f1d7538878b673c4d7e6391d11664", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-textarea-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-textarea-border-inline-end-style-001.html": [ + "854bb92df6c5a086419a9c02c0fefa209d513ccf", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-textarea-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-textarea-border-inline-end-width-001.html": [ + "146a6725d9a7f9f1123c39d7ca5ab1df5c79b1ac", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-textarea-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-textarea-border-inline-start-color-001.html": [ + "21250ce8bf050209339e2d79d352f1691ea491eb", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-textarea-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-textarea-border-inline-start-style-001.html": [ + "95fae5cfcd7291e9be379ea4d1f047f465ac07ab", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-textarea-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-textarea-border-inline-start-width-001.html": [ + "fa70544fdbd766c2dce773cb06e82a5d917daa1e", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-textarea-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-textarea-border-left-color-001.html": [ + "add41f7ecf6876cc96630dad621a4d8a826909ba", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-textarea-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-textarea-border-left-style-001.html": [ + "1a5cb56922ef4c5cd7b65f18f35cdb0e17abbcfd", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-textarea-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-textarea-border-left-width-001.html": [ + "9b76bcef4740f53bf55c1191db5514177fd9e5aa", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-textarea-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-textarea-border-right-color-001.html": [ + "e5436513b27a8912e1cb24b52c5953c4ad5c3788", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-textarea-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-textarea-border-right-style-001.html": [ + "d01355a9093ae1d25d16ed6b4bfc3c393747df6c", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-textarea-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-textarea-border-right-width-001.html": [ + "de1fefbaf3d0f0e2ae56f9d2285d67549dec0c9c", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-textarea-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-textarea-border-start-end-radius-001.html": [ + "2d5d8dcd7520040aeac51343a8661f80f24d6ca9", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-textarea-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-textarea-border-start-start-radius-001.html": [ + "3c79c908e1131183e43edcc29059a54b2aaa1867", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-textarea-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-textarea-border-top-color-001.html": [ + "5f79c624f6545226700e1acc0fc91833f513aa7e", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-textarea-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-textarea-border-top-left-radius-001.html": [ + "a0651111933c0b3d1c4c51d1f05662b994de2c8e", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-textarea-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-textarea-border-top-right-radius-001.html": [ + "786f486e740bc0ce43a75e399f896ba61ca1abb7", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-textarea-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-textarea-border-top-style-001.html": [ + "92e3f96b65a4837d0b781970219045a51cddaf66", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-textarea-ref.html", + "==" + ] + ], + {} + ] + ], + "kind-of-widget-fallback-textarea-border-top-width-001.html": [ + "13632609968e21be4c406e322d2da64cd02361c7", + [ + null, + [ + [ + "/css/css-ui/compute-kind-widget-fallback-textarea-ref.html", "==" ] ], @@ -262654,7 +272412,7 @@ ] }, "grid-layout-properties-expected.txt": [ - "b40da75903ec12198399a8f04f2a72f066360645", + "5bf8ac7dfdd6866889d0d958700a887e74a675bc", [] ], "grid-model": { @@ -262941,6 +272699,14 @@ "grid-columns-rows-get-set-multiple-expected.txt": [ "512bd0d2222370b0c0e1e9fc675213bc03179962", [] + ], + "grid-shorthand-valid-expected.txt": [ + "0e5f5abad97e786b7eea5f6379195e54fb1357f5", + [] + ], + "grid-template-shorthand-valid-expected.txt": [ + "db160d9fb4793c50af8d16e029c0dca0d5ff26f1", + [] ] }, "reference": { @@ -267656,6 +277422,10 @@ "36fabc384514f3e2f2d7a8d7c60bb00044d24f2f", [] ], + "position-sticky-overflow-clip-container-ref.html": [ + "2a29b435a7ee5e53b5294bac40314847aec903ca", + [] + ], "position-sticky-rendering-ref.html": [ "b4411c3bed42e864e12ac4c333625693cf1625a6", [] @@ -277279,8 +287049,76 @@ "b5ea559b9e7c158e254f2a7e047b56487ad8f281", [] ], - "compute-kind-widget-fallback-ref.html": [ - "cc6d1029b51033e8d983cc9c9bb520792b8285c1", + "compute-kind-widget-fallback-button-ref.html": [ + "9007ecb7fb9376a3a61cdeed18190e565c47b677", + [] + ], + "compute-kind-widget-fallback-checkbox-input-ref.html": [ + "d969a759a09c308d8db1ab36fe702f9b26251d2d", + [] + ], + "compute-kind-widget-fallback-color-input-ref.html": [ + "cd6380bc1fb739a2ae91f57eb3165b41d307d5b7", + [] + ], + "compute-kind-widget-fallback-input-button-ref.html": [ + "02380ae7edf8ca1b7afdb23723a4c041755c0b20", + [] + ], + "compute-kind-widget-fallback-input-reset-ref.html": [ + "6899e7102cfd334a897736fe75f4553d328483f6", + [] + ], + "compute-kind-widget-fallback-input-search-ref.html": [ + "5d49037288bb83917e75f229a0cd211b2ce8f49c", + [] + ], + "compute-kind-widget-fallback-input-search-text-ref.html": [ + "5918616f5de47deaea543760607d937ad04c90d2", + [] + ], + "compute-kind-widget-fallback-input-submit-ref.html": [ + "3ceb54959eb74172d3312675567e4f40d25129f3", + [] + ], + "compute-kind-widget-fallback-input-text-ref.html": [ + "ad8dcc2289e9d23170426de7473efed2f7819340", + [] + ], + "compute-kind-widget-fallback-link-ref.html": [ + "6d36dfdce4d05bdcd94eb454e35aa007a727f125", + [] + ], + "compute-kind-widget-fallback-meter-ref.html": [ + "43b5825547e801b19fd0df5dcce3b0200d8a62f5", + [] + ], + "compute-kind-widget-fallback-progress-ref.html": [ + "20bf38150d696671c3cc37c15e2cef224e3f733f", + [] + ], + "compute-kind-widget-fallback-radio-input-ref.html": [ + "3654e6b72f36b978ef470effb156e3fbc7fdf886", + [] + ], + "compute-kind-widget-fallback-range-ref.html": [ + "ea8f2a02793a4790597da5a686e7bbf8fff13577", + [] + ], + "compute-kind-widget-fallback-select-dropdown-box-ref.html": [ + "bb038c8c3da05238009406d263af64b482246ad3", + [] + ], + "compute-kind-widget-fallback-select-listbox-ref.html": [ + "46feae487f3ed087aae49d0f2e4c24500a2877ac", + [] + ], + "compute-kind-widget-fallback-select-menulist-button-ref.html": [ + "6f3ca4f5a1b98c3a8c6944cf256ec6cef31ff698", + [] + ], + "compute-kind-widget-fallback-textarea-ref.html": [ + "863e58a6690c5d41424b168ab59214a2139c49ed", [] ], "compute-kind-widget-no-fallback-ref.html": [ @@ -278479,7 +288317,7 @@ [] ], "build-compute-kind-widget-fallback-props.py": [ - "a768e4e23aad18eb515acf0fc353fbcc95bd496e", + "baede8ee54811924f6300a85fa80f101d164ca93", [] ] }, @@ -284145,14 +293983,6 @@ "direct-sockets-disabled-by-permissions-policy.https.sub.html.headers": [ "ba6f09f55b393880aadf79a41d9220313ed294c8", [] - ], - "open-without-user-gesture.https.html.headers": [ - "63b60e490f47f4db77d33d7a4ca2f5b9a4181de8", - [] - ], - "remotePort-required.https.html.headers": [ - "63b60e490f47f4db77d33d7a4ca2f5b9a4181de8", - [] ] }, "docs": { @@ -284245,7 +294075,7 @@ ] }, "commands.json": [ - "9482d8fb971d8b77262a151085f88937a946c54f", + "b908485c43a84e9783f95f6af1cb4441926a10f5", [] ], "conf.py": [ @@ -301514,34 +311344,6 @@ }, "the-meta-element": { "color-scheme": { - "meta-color-scheme-attribute-changes-expected.txt": [ - "21f3d42e2593dfce6c3e5a6e431dd83d4884652d", - [] - ], - "meta-color-scheme-first-valid-applies-expected.txt": [ - "b767ac82badd5e9339d60e5e72910982396ccf61", - [] - ], - "meta-color-scheme-insert-expected.txt": [ - "592bce59f4332db8a50f4b2b7cf58904706b77fb", - [] - ], - "meta-color-scheme-remove-expected.txt": [ - "86717e76f004f36cb701d9babac8b973f11d86c0", - [] - ], - "meta-color-scheme-remove-head-expected.txt": [ - "210a78eaae58e241af05d22a56bac7f1b376904e", - [] - ], - "meta-color-scheme-single-value-in-body-expected.txt": [ - "6f38f15e1c86925179d710b33737d747f6409066", - [] - ], - "meta-color-scheme-single-value-in-head-expected.txt": [ - "b87195f5ce086f7eda33ad37b64ba58e25590044", - [] - ], "support": { "compute-root-color-scheme.js": [ "74cbf895ced3d9b7f4783be993d5da274ca081f3", @@ -302496,7 +312298,7 @@ [] ], "stash.py": [ - "231eeb492fcfdd7f4c4ba8ed8a91924bf780b1b6", + "240438088100ba20f3e5244984649ccc95d2b8a6", [] ], "support": { @@ -303750,26 +313552,14 @@ "310b14e48a1e6e2b92c83b309f60a633e849c506", [] ], - "popup-initiallyopen-2.tentative-expected.txt": [ - "47b1fd98bdfe2eaa3ead7e0f3134cf288cd94022", - [] - ], "popup-initiallyopen-display-ref.tentative.html": [ "db1a3f2b044d174781a6c5ba961b7b43c21611ce", [] ], - "popup-initiallyopen.tentative-expected.txt": [ - "aab559f388cd7ada82a4f5082967150bb591276c", - [] - ], "popup-inside-display-none-ref.tentative.html": [ "e7cb73c2b08ddcf80ca867f6ced9403436f649a7", [] ], - "popup-invoking-attribute.tentative-expected.txt": [ - "7e58f9f8e7c24b6f8d3389f30e5fd5956382dbad", - [] - ], "popup-light-dismiss-on-scroll.tentative-expected.txt": [ "5dce35393f343fdef82a963a37ca7b9e396c22d2", [] @@ -303786,10 +313576,6 @@ "bc52cf5455590016bfc09c070dfc83ea6d708ff7", [] ], - "popup-removal-2.tentative-expected.txt": [ - "2bb6ee362888d4d5f31383cf03369165cec89a50", - [] - ], "popup-shadow-dom.tentative-expected.txt": [ "1a87c075fa1feaccdf21a0158ac959e22e80413a", [] @@ -309309,7 +319095,7 @@ [] ], "sub-apps.tentative.idl": [ - "b1130022e96bdf58bc244faf53423fe6d809c375", + "39dcd97a500a7829696e070c1afe46722184516a", [] ], "svg-animations.idl": [ @@ -310878,7 +320664,7 @@ [] ], "operator-dictionary.xsl": [ - "d00097555a4663f5cecc14fc7183600eedf96bf9", + "8c75317672ee32905429e007aa79ec9c94e8eb29", [] ], "percentscaledown.py": [ @@ -314401,7 +324187,7 @@ [] ], "preload-time-to-fetch.https-expected.txt": [ - "e0e3da535cf45326e0cc9f8b16f33750342a1a74", + "496668fb8e85712054e94e4a0c22ae98f4495482", [] ], "preload-with-type-expected.txt": [ @@ -316906,7 +326692,7 @@ [] ], "mock-subapps.js": [ - "209539004234f63118c3418b0f8a1cb250521b8b", + "dd6899a597b154b487fd50304a60a2469dfb7ba5", [] ], "mock-textdetection.js": [ @@ -326680,10 +336466,6 @@ "33cbf4a933bd37553a8595e0692f9717e145ecc9", [] ], - "RTCTrackEvent-constructor-expected.txt": [ - "12377b8e2c64f8c2f26a3fd23d090ca072ba9ed9", - [] - ], "RTCTrackEvent-fire-expected.txt": [ "cb23952f507e98502144fda6b281bbbc55503746", [] @@ -366317,7 +376099,7 @@ ] ], "at-container-serialization.html": [ - "758a7c3b2d35b4e39baffe88e5fbfb6a78934f18", + "ef31473c8122aacc742aab929f060cc01e03a1ea", [ null, {} @@ -373389,6 +383171,13 @@ {} ] ], + "grid-shorthand-serialization.html": [ + "ebc4ad801f2eb5535f1d6fbc7a70836b13ff7f18", + [ + null, + {} + ] + ], "grid-shorthand-valid.html": [ "8d546a8212ed6b45fbe9c6b7ca9741f799154267", [ @@ -373544,7 +383333,7 @@ ] ], "grid-template-shorthand-valid.html": [ - "49bf4a895bdc99cdc97d373192ae0e005ad66c22", + "d5ae75e74e504c47ac7fe2dca707a1a1ab269644", [ null, {} @@ -393883,7 +403672,7 @@ }, "direct-sockets": { "direct-sockets-disabled-by-permissions-policy.https.sub.html": [ - "03760e795027cc2c63257ca56f3256c31c74d637", + "5d5533613c96ccd659f62dc9edc0a6596cb49414", [ null, { @@ -393892,27 +403681,11 @@ ] ], "open-securecontext.http.html": [ - "ae403b6b5849eed23431a834ae7e7d0c609676f9", + "c3a2a42a25bf186534b3addbc19cdae96ed7f956", [ null, {} ] - ], - "open-without-user-gesture.https.html": [ - "ed9a9e0d2c63428d39d7c2ebbde8fd1d58d9b02b", - [ - null, - {} - ] - ], - "remotePort-required.https.html": [ - "6d738da845ae09b265d1ce4ad93d3ec6528b46b3", - [ - null, - { - "testdriver": true - } - ] ] }, "document-policy": { @@ -426608,6 +436381,36 @@ } ] ], + "cache-storage.tentative.https.window.js": [ + "8ce6410290a63bd234f3c8a2dd8a0e19c36c3300", + [ + "html/anonymous-iframe/cache-storage.tentative.https.window.html", + { + "script_metadata": [ + [ + "script", + "/common/get-host-info.sub.js" + ], + [ + "script", + "/common/utils.js" + ], + [ + "script", + "/common/dispatcher/dispatcher.js" + ], + [ + "script", + "/html/cross-origin-embedder-policy/credentialless/resources/common.js" + ], + [ + "script", + "./resources/common.js" + ] + ] + } + ] + ], "cookie-store.tentative.https.window.js": [ "5338c8551f01e1e8d7f472609fb958ad79864b23", [ @@ -453437,6 +463240,13 @@ {} ] ], + "invalid-render-blocking-preload-link.html": [ + "a640f72e6feaf0288440a15a4ffb42ee50fdf59e", + [ + null, + {} + ] + ], "parser-blocking-script.tentative.html": [ "8d391144b26b04a2c74ba1fdaf1f6ce675a79a76", [ @@ -456270,6 +466080,13 @@ {} ] ], + "meta-color-scheme-normal-descendant-change.html": [ + "136f4c371b778836698fe4ee52c95a58193f5a4c", + [ + null, + {} + ] + ], "meta-color-scheme-remove-head.html": [ "587e2fa596cf802acd46bbb7d50946e5f563f2f4", [ @@ -463534,7 +473351,7 @@ ] ], "popup-focus.tentative.html": [ - "bb8d679a35b3f1b04e7d0e5648548137b1ff5403", + "172414e704892a6a04d246780faa1811d8ac467c", [ null, {} @@ -463554,15 +473371,6 @@ {} ] ], - "popup-invoking-attribute.tentative.html": [ - "1ff60fd7f9b3ad3d17fa0ef1741a9faeeef4ca27", - [ - null, - { - "testdriver": true - } - ] - ], "popup-light-dismiss-on-scroll.tentative.html": [ "4f14dd7ae774b38e3677019d9bdea4c28a3d34e8", [ @@ -463571,7 +473379,7 @@ ] ], "popup-light-dismiss.tentative.html": [ - "2b37c2d64510efd1e9dcb5bb7c0d877fd450fe36", + "50dfe3693fafe96114a5ef3f2aaf1c45b4d179bf", [ null, { @@ -463841,7 +473649,7 @@ ] ], "popup-attribute-basic.tentative.html": [ - "3eb16fe9c3a108d6ebd6338975674be7a859289c", + "30df4e5530d25e3a97fff7a4b3a35c5bbd75d2cb", [ null, {} @@ -463869,7 +473677,7 @@ ] ], "popup-invoking-attribute.tentative.html": [ - "e5d1f4be496b8f8a22251352672399872a0828fe", + "0eaf2f9f50b2ffc89c1d9b257ebfce840bf7fa41", [ null, { @@ -480256,7 +490064,7 @@ ] ], "constructor.tentative.https.html": [ - "9fdf78ddb3dea4de72e48d1ae5288c0a9f161d68", + "cab7b10236210a179a98763866724311eb4716b0", [ null, {} @@ -488569,7 +498377,7 @@ }, "payment-method-id": { "payment-request-ctor-pmi-handling.https.sub.html": [ - "a615838f8bcef9837f216ee3467edbc7c9dc4d15", + "d6a1be23947f400de750fd5f2a51fa99400692c2", [ null, {} @@ -488707,7 +498515,7 @@ ] ], "payment-request-ctor-pmi-handling.https.sub.html": [ - "a615838f8bcef9837f216ee3467edbc7c9dc4d15", + "d6a1be23947f400de750fd5f2a51fa99400692c2", [ null, {} @@ -491967,10 +501775,12 @@ ] ], "preload-time-to-fetch.https.html": [ - "f546682e26406dafa87bfe6fbaec0aeef3438fa9", + "774501ef3e6c3ff55966a67a0acde3452d90d756", [ null, - {} + { + "timeout": "long" + } ] ], "preload-with-type.html": [ @@ -519066,6 +528876,20 @@ null, {} ] + ], + "remove-error.tentative.https.html": [ + "6bba4773c726c24bb193500463b2c8fdcf37bb63", + [ + null, + {} + ] + ], + "remove-success.tentative.https.html": [ + "a4148fd869c43d1168da738dfceb76484b20912c", + [ + null, + {} + ] ] }, "subresource-integrity": {
diff --git a/third_party/blink/web_tests/external/wpt/css/css-contain/container-queries/at-container-serialization.html b/third_party/blink/web_tests/external/wpt/css/css-contain/container-queries/at-container-serialization.html index 758a7c3..ef31473 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-contain/container-queries/at-container-serialization.html +++ b/third_party/blink/web_tests/external/wpt/css/css-contain/container-queries/at-container-serialization.html
@@ -12,6 +12,18 @@ } #id { color: green } } + @container ( wiDTh ) { } + @container (width:100px) { } + @container (min-width: 100px) { } + @container ( MAX-WIDTH:100px ) { } + @container (width > 100px) { } + @container (width < 100px) { } + @container (widTH >= 100px) { } + @container (width <= 100px) { } + @container (10px < width < 100px) { } + @container (10px <= width <= 100px) { } + @container (100px>WIDTH>10px) { } + @container ( 100px >= width >= 10px ) { } </style> <script> setup(() => assert_implements_container_queries()); @@ -19,7 +31,7 @@ let rules = testSheet.sheet.cssRules; test(() => { - assert_equals(rules.length, 1); + assert_equals(rules.length, 13); assert_equals(rules[0].cssRules.length, 2); assert_equals(rules[0].conditionText, "(width = 100px)"); @@ -34,4 +46,24 @@ assert_equals(rules[0].cssText, "@container (width = 100px) {\n @container \\!-name (inline-size > 200px) {\n #id { color: lime; }\n}\n #id { color: green; }\n}"); }, "Serialization of nested @container rule"); + test(() => { + assert_equals(rules[1].conditionText, "(width)"); + }, "Serialization of boolean condition syntax"); + + test(() => { + assert_equals(rules[2].conditionText, "(width: 100px)"); + assert_equals(rules[3].conditionText, "(min-width: 100px)"); + assert_equals(rules[4].conditionText, "(max-width: 100px)"); + }, "Serialization of colon condition syntax"); + + test(() => { + assert_equals(rules[5].conditionText, "(width > 100px)"); + assert_equals(rules[6].conditionText, "(width < 100px)"); + assert_equals(rules[7].conditionText, "(width >= 100px)"); + assert_equals(rules[8].conditionText, "(width <= 100px)"); + assert_equals(rules[9].conditionText, "(10px < width < 100px)"); + assert_equals(rules[10].conditionText, "(10px <= width <= 100px)"); + assert_equals(rules[11].conditionText, "(100px > width > 10px)"); + assert_equals(rules[12].conditionText, "(100px >= width >= 10px)"); + }, "Serialization of range condition syntax"); </script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-position/sticky/position-sticky-overflow-clip-container-ref.html b/third_party/blink/web_tests/external/wpt/css/css-position/sticky/position-sticky-overflow-clip-container-ref.html new file mode 100644 index 0000000..2a29b435 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-position/sticky/position-sticky-overflow-clip-container-ref.html
@@ -0,0 +1,38 @@ +<!DOCTYPE html> +<html> +<title>Sticky elements should not consider overflow: clip containers as possible scroll ancestor</title> +<style> +body { + margin: 0; + overflow: hidden; /* hide scrollbars */ +} + +#container { + height: 300px; + overflow-y: scroll; +} + +#overflowClipContainer { + overflow: visible; + height: 600px; +} + +#sticky { + position: sticky; + top: 0; + height: 50px; + background-color: yellow; +} +</style> +<script> +function doTest() +{ + container.scrollTo(0, 50); +} +window.addEventListener('load', doTest, false); +</script> +<div id="container"> + <div id="overflowClipContainer"> + <div id="sticky"></div> + </div> +</div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-position/sticky/position-sticky-overflow-clip-container.html b/third_party/blink/web_tests/external/wpt/css/css-position/sticky/position-sticky-overflow-clip-container.html new file mode 100644 index 0000000..6335634 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-position/sticky/position-sticky-overflow-clip-container.html
@@ -0,0 +1,41 @@ +<!DOCTYPE html> +<html> +<title>Sticky elements should not consider overflow: clip containers as possible scroll ancestor</title> +<link rel="match" href="position-sticky-overflow-clip-container-ref.html" /> +<link rel="help" href="https://www.w3.org/TR/css-position-3/#sticky-pos" /> +<meta name="assert" content="This test checks that sticky elements do not consider overflow:clip containers as possible scroll ancestor"/> +<style> +body { + margin: 0; + overflow: hidden; /* hide scrollbars */ +} + +#container { + height: 300px; + overflow: auto; +} + +#overflowClipContainer { + overflow: clip; + height: 600px; +} + +#sticky { + position: sticky; + top: 0; + height: 50px; + background-color: yellow; +} +</style> +<script> +function doTest() +{ + container.scrollTo(0, 50); +} +window.addEventListener('load', doTest, false); +</script> +<div id="container"> + <div id="overflowClipContainer"> + <div id="sticky"></div> + </div> +</div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-fallback-button-ref.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-fallback-button-ref.html new file mode 100644 index 0000000..9007ecb --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-fallback-button-ref.html
@@ -0,0 +1,12 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>Reference: Compute kind of widget - fallback - button</title> +<style> + #container { width: 500px; } + button { + appearance: none; + } +</style> +<div id="container"> + <button>button</button> +</div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-fallback-checkbox-input-ref.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-fallback-checkbox-input-ref.html new file mode 100644 index 0000000..d969a75 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-fallback-checkbox-input-ref.html
@@ -0,0 +1,9 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>Reference: Compute kind of widget - fallback - checkbox-input</title> +<style> + #container { width: 500px; } +</style> +<div id="container"> + <input type="checkbox"> +</div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-fallback-color-input-ref.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-fallback-color-input-ref.html new file mode 100644 index 0000000..cd6380bc --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-fallback-color-input-ref.html
@@ -0,0 +1,12 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>Reference: Compute kind of widget - fallback - color-input</title> +<style> + #container { width: 500px; } + input[type=color] { + appearance: none; + } +</style> +<div id="container"> + <input type="color"> +</div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-fallback-input-button-ref.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-fallback-input-button-ref.html new file mode 100644 index 0000000..02380ae7 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-fallback-input-button-ref.html
@@ -0,0 +1,12 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>Reference: Compute kind of widget - fallback - input-button</title> +<style> + #container { width: 500px; } + input[type=button] { + appearance: none; + } +</style> +<div id="container"> + <input type="button" value="input-button"> +</div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-fallback-input-reset-ref.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-fallback-input-reset-ref.html new file mode 100644 index 0000000..6899e71 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-fallback-input-reset-ref.html
@@ -0,0 +1,12 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>Reference: Compute kind of widget - fallback - input-reset</title> +<style> + #container { width: 500px; } + input[type=reset] { + appearance: none; + } +</style> +<div id="container"> + <input type="reset" value="input-reset"> +</div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-fallback-input-search-ref.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-fallback-input-search-ref.html new file mode 100644 index 0000000..5d49037 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-fallback-input-search-ref.html
@@ -0,0 +1,12 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>Reference: Compute kind of widget - fallback - input-search</title> +<style> + #container { width: 500px; } + input[type=search] { + appearance: none; + } +</style> +<div id="container"> + <input type="search" value="input-search"> +</div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-fallback-input-search-text-ref.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-fallback-input-search-text-ref.html new file mode 100644 index 0000000..5918616 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-fallback-input-search-text-ref.html
@@ -0,0 +1,12 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>Reference: Compute kind of widget - fallback - input-search-text</title> +<style> + #container { width: 500px; } + input[type=search] { + appearance: none; + } +</style> +<div id="container"> + <input id="search-text-input" type="search" value="input-search-text"> +</div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-fallback-input-submit-ref.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-fallback-input-submit-ref.html new file mode 100644 index 0000000..3ceb5495 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-fallback-input-submit-ref.html
@@ -0,0 +1,12 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>Reference: Compute kind of widget - fallback - input-submit</title> +<style> + #container { width: 500px; } + input[type=submit] { + appearance: none; + } +</style> +<div id="container"> + <input type="submit" value="input-submit"> +</div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-fallback-input-text-ref.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-fallback-input-text-ref.html new file mode 100644 index 0000000..ad8dcc2 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-fallback-input-text-ref.html
@@ -0,0 +1,12 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>Reference: Compute kind of widget - fallback - input-text</title> +<style> + #container { width: 500px; } + input[type=text] { + appearance: none; + } +</style> +<div id="container"> + <input type="text" value="input-text"> +</div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-fallback-link-ref.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-fallback-link-ref.html new file mode 100644 index 0000000..6d36dfdc --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-fallback-link-ref.html
@@ -0,0 +1,9 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>Reference: Compute kind of widget - fallback - link</title> +<style> + #container { width: 500px; } +</style> +<div id="container"> + <a>a</a> +</div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-fallback-meter-ref.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-fallback-meter-ref.html new file mode 100644 index 0000000..43b58255 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-fallback-meter-ref.html
@@ -0,0 +1,12 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>Reference: Compute kind of widget - fallback - meter</title> +<style> + #container { width: 500px; } + meter { + appearance: none; + } +</style> +<div id="container"> + <meter value=0.5></meter> +</div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-fallback-progress-ref.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-fallback-progress-ref.html new file mode 100644 index 0000000..20bf381 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-fallback-progress-ref.html
@@ -0,0 +1,12 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>Reference: Compute kind of widget - fallback</title> +<style> + #container { width: 500px; } + progress { + appearance: none; + } +</style> +<div id="container"> + <progress value=0.5></progress> +</div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-fallback-radio-input-ref.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-fallback-radio-input-ref.html new file mode 100644 index 0000000..3654e6b --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-fallback-radio-input-ref.html
@@ -0,0 +1,9 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>Reference: Compute kind of widget - fallback - radio-input</title> +<style> + #container { width: 500px; } +</style> +<div id="container"> + <input type="radio"> +</div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-fallback-range-ref.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-fallback-range-ref.html new file mode 100644 index 0000000..ea8f2a0 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-fallback-range-ref.html
@@ -0,0 +1,9 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>Reference: Compute kind of widget - fallback - range</title> +<style> + #container { width: 500px; } +</style> +<div id="container"> + <input type="range"> +</div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-fallback-ref.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-fallback-ref.html deleted file mode 100644 index cc6d102..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-fallback-ref.html +++ /dev/null
@@ -1,44 +0,0 @@ -<!DOCTYPE html> -<meta charset="utf-8"> -<title>Reference: Compute kind of widget - fallback</title> -<style> - #container { width: 500px; } - button, - input[type=button], - input[type=submit], - input[type=reset], - input[type=text], - input[type=search], - textarea, - input[type=color], - #select-listbox, - meter, - progress { - appearance: none; - } - #select-dropdown-box, - #select-menulist-button { appearance: none; appearance: menulist-button; } -</style> -<div id="container"> - <a>a</a> - <button>button</button> - <input type="button" value="input-button"> - <input type="submit" value="input-submit"> - <input type="reset" value="input-reset"> - - <input type="text" value="input-text"> - <input id="search-text-input" type="search" value="input-search-text"> - <input type="search" value="input-search"> - - <input type="range"> - <input type="checkbox"> - <input type="radio"> - <input type="color"> - - <textarea>textarea</textarea> - <select multiple id="select-listbox"><option>select-listbox</option></select> - <select id="select-dropdown-box"><option>select-dropdown-box</option></select> - <select id="select-menulist-button"><option>select-menulist-button</option></select> - <meter value=0.5></meter> - <progress value=0.5></progress> -</div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-fallback-select-dropdown-box-ref.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-fallback-select-dropdown-box-ref.html new file mode 100644 index 0000000..bb038c8 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-fallback-select-dropdown-box-ref.html
@@ -0,0 +1,10 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>Reference: Compute kind of widget - fallback - select-dropdown-box</title> +<style> + #container { width: 500px; } + #select-dropdown-box { appearance: none; appearance: menulist-button; } +</style> +<div id="container"> + <select id="select-dropdown-box"><option>select-dropdown-box</option></select> +</div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-fallback-select-listbox-ref.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-fallback-select-listbox-ref.html new file mode 100644 index 0000000..46feae48 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-fallback-select-listbox-ref.html
@@ -0,0 +1,12 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>Reference: Compute kind of widget - fallback - select-listbox</title> +<style> + #container { width: 500px; } + #select-listbox { + appearance: none; + } +</style> +<div id="container"> + <select multiple id="select-listbox"><option>select-listbox</option></select> +</div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-fallback-select-menulist-button-ref.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-fallback-select-menulist-button-ref.html new file mode 100644 index 0000000..6f3ca4f --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-fallback-select-menulist-button-ref.html
@@ -0,0 +1,10 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>Reference: Compute kind of widget - fallback - select-menulist-button</title> +<style> + #container { width: 500px; } + #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> +<div id="container"> + <select id="select-menulist-button"><option>select-menulist-button</option></select> +</div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-fallback-textarea-ref.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-fallback-textarea-ref.html new file mode 100644 index 0000000..863e58a --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-fallback-textarea-ref.html
@@ -0,0 +1,12 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>Reference: Compute kind of widget - fallback - textarea</title> +<style> + #container { width: 500px; } + textarea { + appearance: none; + } +</style> +<div id="container"> + <textarea>textarea</textarea> +</div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-background-attachment-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-background-attachment-001.html deleted file mode 100644 index dfdb3076..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-background-attachment-001.html +++ /dev/null
@@ -1,47 +0,0 @@ -<!-- DO NOT EDIT. This file has been generated. Source: - ./tools/build-compute-kind-widget-fallback-props.py ---> -<!DOCTYPE html> -<meta charset="utf-8"> -<title>CSS Basic User Interface Test: Compute kind of widget: background-attachment disables native appearance for widgets</title> -<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> -<meta name="assert" content="appropriate widget is returned when authorProps includes background-attachment."> -<link rel="match" href="../compute-kind-widget-fallback-ref.html"> -<style> - #container { width: 500px; } - #container > #search-text-input { appearance: textfield; } - #container > #select-menulist-button { appearance: none; appearance: menulist-button; } -</style> - -<div id="container"> - <a>a</a> - <button id="button">button</button> - <input id="button-input" type="button" value="input-button"> - <input id="submit-input" type="submit" value="input-submit"> - <input id="reset-input" type="reset" value="input-reset"> - - <input id="text-input" type="text" value="input-text"> - <input id="search-text-input" type="search" value="input-search-text"> - <input id="search-input" type="search" value="input-search"> - - <input id="range-input" type="range"> - <input id="checkbox-input" type="checkbox"> - <input id="radio-input" type="radio"> - <input id="color-input" type="color"> - - <textarea id="textarea">textarea</textarea> - <select multiple id="select-listbox"><option>select-listbox</option></select> - <select id="select-dropdown-box"><option>select-dropdown-box</option></select> - <select id="select-menulist-button"><option>select-menulist-button</option></select> - <meter id="meter" value=0.5></meter> - <progress id="progress" value=0.5></progress> -</div> - -<script> -// Set author-level CSS that matches UA style, but don't use the 'revert' value. -const elements = document.querySelectorAll('#container > *'); -const prop = "background-attachment"; -for (const el of elements) { - el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); -} -</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-background-clip-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-background-clip-001.html deleted file mode 100644 index cf6862f..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-background-clip-001.html +++ /dev/null
@@ -1,47 +0,0 @@ -<!-- DO NOT EDIT. This file has been generated. Source: - ./tools/build-compute-kind-widget-fallback-props.py ---> -<!DOCTYPE html> -<meta charset="utf-8"> -<title>CSS Basic User Interface Test: Compute kind of widget: background-clip disables native appearance for widgets</title> -<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> -<meta name="assert" content="appropriate widget is returned when authorProps includes background-clip."> -<link rel="match" href="../compute-kind-widget-fallback-ref.html"> -<style> - #container { width: 500px; } - #container > #search-text-input { appearance: textfield; } - #container > #select-menulist-button { appearance: none; appearance: menulist-button; } -</style> - -<div id="container"> - <a>a</a> - <button id="button">button</button> - <input id="button-input" type="button" value="input-button"> - <input id="submit-input" type="submit" value="input-submit"> - <input id="reset-input" type="reset" value="input-reset"> - - <input id="text-input" type="text" value="input-text"> - <input id="search-text-input" type="search" value="input-search-text"> - <input id="search-input" type="search" value="input-search"> - - <input id="range-input" type="range"> - <input id="checkbox-input" type="checkbox"> - <input id="radio-input" type="radio"> - <input id="color-input" type="color"> - - <textarea id="textarea">textarea</textarea> - <select multiple id="select-listbox"><option>select-listbox</option></select> - <select id="select-dropdown-box"><option>select-dropdown-box</option></select> - <select id="select-menulist-button"><option>select-menulist-button</option></select> - <meter id="meter" value=0.5></meter> - <progress id="progress" value=0.5></progress> -</div> - -<script> -// Set author-level CSS that matches UA style, but don't use the 'revert' value. -const elements = document.querySelectorAll('#container > *'); -const prop = "background-clip"; -for (const el of elements) { - el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); -} -</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-background-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-background-color-001.html deleted file mode 100644 index f080bae2..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-background-color-001.html +++ /dev/null
@@ -1,47 +0,0 @@ -<!-- DO NOT EDIT. This file has been generated. Source: - ./tools/build-compute-kind-widget-fallback-props.py ---> -<!DOCTYPE html> -<meta charset="utf-8"> -<title>CSS Basic User Interface Test: Compute kind of widget: background-color disables native appearance for widgets</title> -<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> -<meta name="assert" content="appropriate widget is returned when authorProps includes background-color."> -<link rel="match" href="../compute-kind-widget-fallback-ref.html"> -<style> - #container { width: 500px; } - #container > #search-text-input { appearance: textfield; } - #container > #select-menulist-button { appearance: none; appearance: menulist-button; } -</style> - -<div id="container"> - <a>a</a> - <button id="button">button</button> - <input id="button-input" type="button" value="input-button"> - <input id="submit-input" type="submit" value="input-submit"> - <input id="reset-input" type="reset" value="input-reset"> - - <input id="text-input" type="text" value="input-text"> - <input id="search-text-input" type="search" value="input-search-text"> - <input id="search-input" type="search" value="input-search"> - - <input id="range-input" type="range"> - <input id="checkbox-input" type="checkbox"> - <input id="radio-input" type="radio"> - <input id="color-input" type="color"> - - <textarea id="textarea">textarea</textarea> - <select multiple id="select-listbox"><option>select-listbox</option></select> - <select id="select-dropdown-box"><option>select-dropdown-box</option></select> - <select id="select-menulist-button"><option>select-menulist-button</option></select> - <meter id="meter" value=0.5></meter> - <progress id="progress" value=0.5></progress> -</div> - -<script> -// Set author-level CSS that matches UA style, but don't use the 'revert' value. -const elements = document.querySelectorAll('#container > *'); -const prop = "background-color"; -for (const el of elements) { - el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); -} -</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-background-image-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-background-image-001.html deleted file mode 100644 index b5b5231..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-background-image-001.html +++ /dev/null
@@ -1,47 +0,0 @@ -<!-- DO NOT EDIT. This file has been generated. Source: - ./tools/build-compute-kind-widget-fallback-props.py ---> -<!DOCTYPE html> -<meta charset="utf-8"> -<title>CSS Basic User Interface Test: Compute kind of widget: background-image disables native appearance for widgets</title> -<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> -<meta name="assert" content="appropriate widget is returned when authorProps includes background-image."> -<link rel="match" href="../compute-kind-widget-fallback-ref.html"> -<style> - #container { width: 500px; } - #container > #search-text-input { appearance: textfield; } - #container > #select-menulist-button { appearance: none; appearance: menulist-button; } -</style> - -<div id="container"> - <a>a</a> - <button id="button">button</button> - <input id="button-input" type="button" value="input-button"> - <input id="submit-input" type="submit" value="input-submit"> - <input id="reset-input" type="reset" value="input-reset"> - - <input id="text-input" type="text" value="input-text"> - <input id="search-text-input" type="search" value="input-search-text"> - <input id="search-input" type="search" value="input-search"> - - <input id="range-input" type="range"> - <input id="checkbox-input" type="checkbox"> - <input id="radio-input" type="radio"> - <input id="color-input" type="color"> - - <textarea id="textarea">textarea</textarea> - <select multiple id="select-listbox"><option>select-listbox</option></select> - <select id="select-dropdown-box"><option>select-dropdown-box</option></select> - <select id="select-menulist-button"><option>select-menulist-button</option></select> - <meter id="meter" value=0.5></meter> - <progress id="progress" value=0.5></progress> -</div> - -<script> -// Set author-level CSS that matches UA style, but don't use the 'revert' value. -const elements = document.querySelectorAll('#container > *'); -const prop = "background-image"; -for (const el of elements) { - el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); -} -</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-background-origin-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-background-origin-001.html deleted file mode 100644 index d826c0b..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-background-origin-001.html +++ /dev/null
@@ -1,47 +0,0 @@ -<!-- DO NOT EDIT. This file has been generated. Source: - ./tools/build-compute-kind-widget-fallback-props.py ---> -<!DOCTYPE html> -<meta charset="utf-8"> -<title>CSS Basic User Interface Test: Compute kind of widget: background-origin disables native appearance for widgets</title> -<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> -<meta name="assert" content="appropriate widget is returned when authorProps includes background-origin."> -<link rel="match" href="../compute-kind-widget-fallback-ref.html"> -<style> - #container { width: 500px; } - #container > #search-text-input { appearance: textfield; } - #container > #select-menulist-button { appearance: none; appearance: menulist-button; } -</style> - -<div id="container"> - <a>a</a> - <button id="button">button</button> - <input id="button-input" type="button" value="input-button"> - <input id="submit-input" type="submit" value="input-submit"> - <input id="reset-input" type="reset" value="input-reset"> - - <input id="text-input" type="text" value="input-text"> - <input id="search-text-input" type="search" value="input-search-text"> - <input id="search-input" type="search" value="input-search"> - - <input id="range-input" type="range"> - <input id="checkbox-input" type="checkbox"> - <input id="radio-input" type="radio"> - <input id="color-input" type="color"> - - <textarea id="textarea">textarea</textarea> - <select multiple id="select-listbox"><option>select-listbox</option></select> - <select id="select-dropdown-box"><option>select-dropdown-box</option></select> - <select id="select-menulist-button"><option>select-menulist-button</option></select> - <meter id="meter" value=0.5></meter> - <progress id="progress" value=0.5></progress> -</div> - -<script> -// Set author-level CSS that matches UA style, but don't use the 'revert' value. -const elements = document.querySelectorAll('#container > *'); -const prop = "background-origin"; -for (const el of elements) { - el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); -} -</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-background-position-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-background-position-001.html deleted file mode 100644 index 290d12356..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-background-position-001.html +++ /dev/null
@@ -1,47 +0,0 @@ -<!-- DO NOT EDIT. This file has been generated. Source: - ./tools/build-compute-kind-widget-fallback-props.py ---> -<!DOCTYPE html> -<meta charset="utf-8"> -<title>CSS Basic User Interface Test: Compute kind of widget: background-position disables native appearance for widgets</title> -<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> -<meta name="assert" content="appropriate widget is returned when authorProps includes background-position."> -<link rel="match" href="../compute-kind-widget-fallback-ref.html"> -<style> - #container { width: 500px; } - #container > #search-text-input { appearance: textfield; } - #container > #select-menulist-button { appearance: none; appearance: menulist-button; } -</style> - -<div id="container"> - <a>a</a> - <button id="button">button</button> - <input id="button-input" type="button" value="input-button"> - <input id="submit-input" type="submit" value="input-submit"> - <input id="reset-input" type="reset" value="input-reset"> - - <input id="text-input" type="text" value="input-text"> - <input id="search-text-input" type="search" value="input-search-text"> - <input id="search-input" type="search" value="input-search"> - - <input id="range-input" type="range"> - <input id="checkbox-input" type="checkbox"> - <input id="radio-input" type="radio"> - <input id="color-input" type="color"> - - <textarea id="textarea">textarea</textarea> - <select multiple id="select-listbox"><option>select-listbox</option></select> - <select id="select-dropdown-box"><option>select-dropdown-box</option></select> - <select id="select-menulist-button"><option>select-menulist-button</option></select> - <meter id="meter" value=0.5></meter> - <progress id="progress" value=0.5></progress> -</div> - -<script> -// Set author-level CSS that matches UA style, but don't use the 'revert' value. -const elements = document.querySelectorAll('#container > *'); -const prop = "background-position"; -for (const el of elements) { - el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); -} -</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-background-size-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-background-size-001.html deleted file mode 100644 index 105a439..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-background-size-001.html +++ /dev/null
@@ -1,47 +0,0 @@ -<!-- DO NOT EDIT. This file has been generated. Source: - ./tools/build-compute-kind-widget-fallback-props.py ---> -<!DOCTYPE html> -<meta charset="utf-8"> -<title>CSS Basic User Interface Test: Compute kind of widget: background-size disables native appearance for widgets</title> -<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> -<meta name="assert" content="appropriate widget is returned when authorProps includes background-size."> -<link rel="match" href="../compute-kind-widget-fallback-ref.html"> -<style> - #container { width: 500px; } - #container > #search-text-input { appearance: textfield; } - #container > #select-menulist-button { appearance: none; appearance: menulist-button; } -</style> - -<div id="container"> - <a>a</a> - <button id="button">button</button> - <input id="button-input" type="button" value="input-button"> - <input id="submit-input" type="submit" value="input-submit"> - <input id="reset-input" type="reset" value="input-reset"> - - <input id="text-input" type="text" value="input-text"> - <input id="search-text-input" type="search" value="input-search-text"> - <input id="search-input" type="search" value="input-search"> - - <input id="range-input" type="range"> - <input id="checkbox-input" type="checkbox"> - <input id="radio-input" type="radio"> - <input id="color-input" type="color"> - - <textarea id="textarea">textarea</textarea> - <select multiple id="select-listbox"><option>select-listbox</option></select> - <select id="select-dropdown-box"><option>select-dropdown-box</option></select> - <select id="select-menulist-button"><option>select-menulist-button</option></select> - <meter id="meter" value=0.5></meter> - <progress id="progress" value=0.5></progress> -</div> - -<script> -// Set author-level CSS that matches UA style, but don't use the 'revert' value. -const elements = document.querySelectorAll('#container > *'); -const prop = "background-size"; -for (const el of elements) { - el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); -} -</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-block-end-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-block-end-color-001.html deleted file mode 100644 index 480a292..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-block-end-color-001.html +++ /dev/null
@@ -1,47 +0,0 @@ -<!-- DO NOT EDIT. This file has been generated. Source: - ./tools/build-compute-kind-widget-fallback-props.py ---> -<!DOCTYPE html> -<meta charset="utf-8"> -<title>CSS Basic User Interface Test: Compute kind of widget: border-block-end-color disables native appearance for widgets</title> -<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> -<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-end-color."> -<link rel="match" href="../compute-kind-widget-fallback-ref.html"> -<style> - #container { width: 500px; } - #container > #search-text-input { appearance: textfield; } - #container > #select-menulist-button { appearance: none; appearance: menulist-button; } -</style> - -<div id="container"> - <a>a</a> - <button id="button">button</button> - <input id="button-input" type="button" value="input-button"> - <input id="submit-input" type="submit" value="input-submit"> - <input id="reset-input" type="reset" value="input-reset"> - - <input id="text-input" type="text" value="input-text"> - <input id="search-text-input" type="search" value="input-search-text"> - <input id="search-input" type="search" value="input-search"> - - <input id="range-input" type="range"> - <input id="checkbox-input" type="checkbox"> - <input id="radio-input" type="radio"> - <input id="color-input" type="color"> - - <textarea id="textarea">textarea</textarea> - <select multiple id="select-listbox"><option>select-listbox</option></select> - <select id="select-dropdown-box"><option>select-dropdown-box</option></select> - <select id="select-menulist-button"><option>select-menulist-button</option></select> - <meter id="meter" value=0.5></meter> - <progress id="progress" value=0.5></progress> -</div> - -<script> -// Set author-level CSS that matches UA style, but don't use the 'revert' value. -const elements = document.querySelectorAll('#container > *'); -const prop = "border-block-end-color"; -for (const el of elements) { - el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); -} -</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-block-end-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-block-end-style-001.html deleted file mode 100644 index a6fac1a0..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-block-end-style-001.html +++ /dev/null
@@ -1,47 +0,0 @@ -<!-- DO NOT EDIT. This file has been generated. Source: - ./tools/build-compute-kind-widget-fallback-props.py ---> -<!DOCTYPE html> -<meta charset="utf-8"> -<title>CSS Basic User Interface Test: Compute kind of widget: border-block-end-style disables native appearance for widgets</title> -<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> -<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-end-style."> -<link rel="match" href="../compute-kind-widget-fallback-ref.html"> -<style> - #container { width: 500px; } - #container > #search-text-input { appearance: textfield; } - #container > #select-menulist-button { appearance: none; appearance: menulist-button; } -</style> - -<div id="container"> - <a>a</a> - <button id="button">button</button> - <input id="button-input" type="button" value="input-button"> - <input id="submit-input" type="submit" value="input-submit"> - <input id="reset-input" type="reset" value="input-reset"> - - <input id="text-input" type="text" value="input-text"> - <input id="search-text-input" type="search" value="input-search-text"> - <input id="search-input" type="search" value="input-search"> - - <input id="range-input" type="range"> - <input id="checkbox-input" type="checkbox"> - <input id="radio-input" type="radio"> - <input id="color-input" type="color"> - - <textarea id="textarea">textarea</textarea> - <select multiple id="select-listbox"><option>select-listbox</option></select> - <select id="select-dropdown-box"><option>select-dropdown-box</option></select> - <select id="select-menulist-button"><option>select-menulist-button</option></select> - <meter id="meter" value=0.5></meter> - <progress id="progress" value=0.5></progress> -</div> - -<script> -// Set author-level CSS that matches UA style, but don't use the 'revert' value. -const elements = document.querySelectorAll('#container > *'); -const prop = "border-block-end-style"; -for (const el of elements) { - el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); -} -</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-block-end-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-block-end-width-001.html deleted file mode 100644 index a73d5b5..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-block-end-width-001.html +++ /dev/null
@@ -1,47 +0,0 @@ -<!-- DO NOT EDIT. This file has been generated. Source: - ./tools/build-compute-kind-widget-fallback-props.py ---> -<!DOCTYPE html> -<meta charset="utf-8"> -<title>CSS Basic User Interface Test: Compute kind of widget: border-block-end-width disables native appearance for widgets</title> -<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> -<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-end-width."> -<link rel="match" href="../compute-kind-widget-fallback-ref.html"> -<style> - #container { width: 500px; } - #container > #search-text-input { appearance: textfield; } - #container > #select-menulist-button { appearance: none; appearance: menulist-button; } -</style> - -<div id="container"> - <a>a</a> - <button id="button">button</button> - <input id="button-input" type="button" value="input-button"> - <input id="submit-input" type="submit" value="input-submit"> - <input id="reset-input" type="reset" value="input-reset"> - - <input id="text-input" type="text" value="input-text"> - <input id="search-text-input" type="search" value="input-search-text"> - <input id="search-input" type="search" value="input-search"> - - <input id="range-input" type="range"> - <input id="checkbox-input" type="checkbox"> - <input id="radio-input" type="radio"> - <input id="color-input" type="color"> - - <textarea id="textarea">textarea</textarea> - <select multiple id="select-listbox"><option>select-listbox</option></select> - <select id="select-dropdown-box"><option>select-dropdown-box</option></select> - <select id="select-menulist-button"><option>select-menulist-button</option></select> - <meter id="meter" value=0.5></meter> - <progress id="progress" value=0.5></progress> -</div> - -<script> -// Set author-level CSS that matches UA style, but don't use the 'revert' value. -const elements = document.querySelectorAll('#container > *'); -const prop = "border-block-end-width"; -for (const el of elements) { - el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); -} -</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-block-start-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-block-start-color-001.html deleted file mode 100644 index c7be4f45..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-block-start-color-001.html +++ /dev/null
@@ -1,47 +0,0 @@ -<!-- DO NOT EDIT. This file has been generated. Source: - ./tools/build-compute-kind-widget-fallback-props.py ---> -<!DOCTYPE html> -<meta charset="utf-8"> -<title>CSS Basic User Interface Test: Compute kind of widget: border-block-start-color disables native appearance for widgets</title> -<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> -<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-start-color."> -<link rel="match" href="../compute-kind-widget-fallback-ref.html"> -<style> - #container { width: 500px; } - #container > #search-text-input { appearance: textfield; } - #container > #select-menulist-button { appearance: none; appearance: menulist-button; } -</style> - -<div id="container"> - <a>a</a> - <button id="button">button</button> - <input id="button-input" type="button" value="input-button"> - <input id="submit-input" type="submit" value="input-submit"> - <input id="reset-input" type="reset" value="input-reset"> - - <input id="text-input" type="text" value="input-text"> - <input id="search-text-input" type="search" value="input-search-text"> - <input id="search-input" type="search" value="input-search"> - - <input id="range-input" type="range"> - <input id="checkbox-input" type="checkbox"> - <input id="radio-input" type="radio"> - <input id="color-input" type="color"> - - <textarea id="textarea">textarea</textarea> - <select multiple id="select-listbox"><option>select-listbox</option></select> - <select id="select-dropdown-box"><option>select-dropdown-box</option></select> - <select id="select-menulist-button"><option>select-menulist-button</option></select> - <meter id="meter" value=0.5></meter> - <progress id="progress" value=0.5></progress> -</div> - -<script> -// Set author-level CSS that matches UA style, but don't use the 'revert' value. -const elements = document.querySelectorAll('#container > *'); -const prop = "border-block-start-color"; -for (const el of elements) { - el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); -} -</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-block-start-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-block-start-style-001.html deleted file mode 100644 index 6670cb6..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-block-start-style-001.html +++ /dev/null
@@ -1,47 +0,0 @@ -<!-- DO NOT EDIT. This file has been generated. Source: - ./tools/build-compute-kind-widget-fallback-props.py ---> -<!DOCTYPE html> -<meta charset="utf-8"> -<title>CSS Basic User Interface Test: Compute kind of widget: border-block-start-style disables native appearance for widgets</title> -<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> -<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-start-style."> -<link rel="match" href="../compute-kind-widget-fallback-ref.html"> -<style> - #container { width: 500px; } - #container > #search-text-input { appearance: textfield; } - #container > #select-menulist-button { appearance: none; appearance: menulist-button; } -</style> - -<div id="container"> - <a>a</a> - <button id="button">button</button> - <input id="button-input" type="button" value="input-button"> - <input id="submit-input" type="submit" value="input-submit"> - <input id="reset-input" type="reset" value="input-reset"> - - <input id="text-input" type="text" value="input-text"> - <input id="search-text-input" type="search" value="input-search-text"> - <input id="search-input" type="search" value="input-search"> - - <input id="range-input" type="range"> - <input id="checkbox-input" type="checkbox"> - <input id="radio-input" type="radio"> - <input id="color-input" type="color"> - - <textarea id="textarea">textarea</textarea> - <select multiple id="select-listbox"><option>select-listbox</option></select> - <select id="select-dropdown-box"><option>select-dropdown-box</option></select> - <select id="select-menulist-button"><option>select-menulist-button</option></select> - <meter id="meter" value=0.5></meter> - <progress id="progress" value=0.5></progress> -</div> - -<script> -// Set author-level CSS that matches UA style, but don't use the 'revert' value. -const elements = document.querySelectorAll('#container > *'); -const prop = "border-block-start-style"; -for (const el of elements) { - el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); -} -</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-block-start-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-block-start-width-001.html deleted file mode 100644 index 13b932a..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-block-start-width-001.html +++ /dev/null
@@ -1,47 +0,0 @@ -<!-- DO NOT EDIT. This file has been generated. Source: - ./tools/build-compute-kind-widget-fallback-props.py ---> -<!DOCTYPE html> -<meta charset="utf-8"> -<title>CSS Basic User Interface Test: Compute kind of widget: border-block-start-width disables native appearance for widgets</title> -<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> -<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-start-width."> -<link rel="match" href="../compute-kind-widget-fallback-ref.html"> -<style> - #container { width: 500px; } - #container > #search-text-input { appearance: textfield; } - #container > #select-menulist-button { appearance: none; appearance: menulist-button; } -</style> - -<div id="container"> - <a>a</a> - <button id="button">button</button> - <input id="button-input" type="button" value="input-button"> - <input id="submit-input" type="submit" value="input-submit"> - <input id="reset-input" type="reset" value="input-reset"> - - <input id="text-input" type="text" value="input-text"> - <input id="search-text-input" type="search" value="input-search-text"> - <input id="search-input" type="search" value="input-search"> - - <input id="range-input" type="range"> - <input id="checkbox-input" type="checkbox"> - <input id="radio-input" type="radio"> - <input id="color-input" type="color"> - - <textarea id="textarea">textarea</textarea> - <select multiple id="select-listbox"><option>select-listbox</option></select> - <select id="select-dropdown-box"><option>select-dropdown-box</option></select> - <select id="select-menulist-button"><option>select-menulist-button</option></select> - <meter id="meter" value=0.5></meter> - <progress id="progress" value=0.5></progress> -</div> - -<script> -// Set author-level CSS that matches UA style, but don't use the 'revert' value. -const elements = document.querySelectorAll('#container > *'); -const prop = "border-block-start-width"; -for (const el of elements) { - el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); -} -</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-bottom-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-bottom-color-001.html deleted file mode 100644 index 8cb1ed7a..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-bottom-color-001.html +++ /dev/null
@@ -1,47 +0,0 @@ -<!-- DO NOT EDIT. This file has been generated. Source: - ./tools/build-compute-kind-widget-fallback-props.py ---> -<!DOCTYPE html> -<meta charset="utf-8"> -<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-color disables native appearance for widgets</title> -<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> -<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-color."> -<link rel="match" href="../compute-kind-widget-fallback-ref.html"> -<style> - #container { width: 500px; } - #container > #search-text-input { appearance: textfield; } - #container > #select-menulist-button { appearance: none; appearance: menulist-button; } -</style> - -<div id="container"> - <a>a</a> - <button id="button">button</button> - <input id="button-input" type="button" value="input-button"> - <input id="submit-input" type="submit" value="input-submit"> - <input id="reset-input" type="reset" value="input-reset"> - - <input id="text-input" type="text" value="input-text"> - <input id="search-text-input" type="search" value="input-search-text"> - <input id="search-input" type="search" value="input-search"> - - <input id="range-input" type="range"> - <input id="checkbox-input" type="checkbox"> - <input id="radio-input" type="radio"> - <input id="color-input" type="color"> - - <textarea id="textarea">textarea</textarea> - <select multiple id="select-listbox"><option>select-listbox</option></select> - <select id="select-dropdown-box"><option>select-dropdown-box</option></select> - <select id="select-menulist-button"><option>select-menulist-button</option></select> - <meter id="meter" value=0.5></meter> - <progress id="progress" value=0.5></progress> -</div> - -<script> -// Set author-level CSS that matches UA style, but don't use the 'revert' value. -const elements = document.querySelectorAll('#container > *'); -const prop = "border-bottom-color"; -for (const el of elements) { - el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); -} -</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-bottom-left-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-bottom-left-radius-001.html deleted file mode 100644 index 6f9af43..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-bottom-left-radius-001.html +++ /dev/null
@@ -1,47 +0,0 @@ -<!-- DO NOT EDIT. This file has been generated. Source: - ./tools/build-compute-kind-widget-fallback-props.py ---> -<!DOCTYPE html> -<meta charset="utf-8"> -<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-left-radius disables native appearance for widgets</title> -<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> -<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-left-radius."> -<link rel="match" href="../compute-kind-widget-fallback-ref.html"> -<style> - #container { width: 500px; } - #container > #search-text-input { appearance: textfield; } - #container > #select-menulist-button { appearance: none; appearance: menulist-button; } -</style> - -<div id="container"> - <a>a</a> - <button id="button">button</button> - <input id="button-input" type="button" value="input-button"> - <input id="submit-input" type="submit" value="input-submit"> - <input id="reset-input" type="reset" value="input-reset"> - - <input id="text-input" type="text" value="input-text"> - <input id="search-text-input" type="search" value="input-search-text"> - <input id="search-input" type="search" value="input-search"> - - <input id="range-input" type="range"> - <input id="checkbox-input" type="checkbox"> - <input id="radio-input" type="radio"> - <input id="color-input" type="color"> - - <textarea id="textarea">textarea</textarea> - <select multiple id="select-listbox"><option>select-listbox</option></select> - <select id="select-dropdown-box"><option>select-dropdown-box</option></select> - <select id="select-menulist-button"><option>select-menulist-button</option></select> - <meter id="meter" value=0.5></meter> - <progress id="progress" value=0.5></progress> -</div> - -<script> -// Set author-level CSS that matches UA style, but don't use the 'revert' value. -const elements = document.querySelectorAll('#container > *'); -const prop = "border-bottom-left-radius"; -for (const el of elements) { - el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); -} -</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-bottom-right-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-bottom-right-radius-001.html deleted file mode 100644 index 356457f..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-bottom-right-radius-001.html +++ /dev/null
@@ -1,47 +0,0 @@ -<!-- DO NOT EDIT. This file has been generated. Source: - ./tools/build-compute-kind-widget-fallback-props.py ---> -<!DOCTYPE html> -<meta charset="utf-8"> -<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-right-radius disables native appearance for widgets</title> -<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> -<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-right-radius."> -<link rel="match" href="../compute-kind-widget-fallback-ref.html"> -<style> - #container { width: 500px; } - #container > #search-text-input { appearance: textfield; } - #container > #select-menulist-button { appearance: none; appearance: menulist-button; } -</style> - -<div id="container"> - <a>a</a> - <button id="button">button</button> - <input id="button-input" type="button" value="input-button"> - <input id="submit-input" type="submit" value="input-submit"> - <input id="reset-input" type="reset" value="input-reset"> - - <input id="text-input" type="text" value="input-text"> - <input id="search-text-input" type="search" value="input-search-text"> - <input id="search-input" type="search" value="input-search"> - - <input id="range-input" type="range"> - <input id="checkbox-input" type="checkbox"> - <input id="radio-input" type="radio"> - <input id="color-input" type="color"> - - <textarea id="textarea">textarea</textarea> - <select multiple id="select-listbox"><option>select-listbox</option></select> - <select id="select-dropdown-box"><option>select-dropdown-box</option></select> - <select id="select-menulist-button"><option>select-menulist-button</option></select> - <meter id="meter" value=0.5></meter> - <progress id="progress" value=0.5></progress> -</div> - -<script> -// Set author-level CSS that matches UA style, but don't use the 'revert' value. -const elements = document.querySelectorAll('#container > *'); -const prop = "border-bottom-right-radius"; -for (const el of elements) { - el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); -} -</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-bottom-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-bottom-style-001.html deleted file mode 100644 index 0173f020..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-bottom-style-001.html +++ /dev/null
@@ -1,47 +0,0 @@ -<!-- DO NOT EDIT. This file has been generated. Source: - ./tools/build-compute-kind-widget-fallback-props.py ---> -<!DOCTYPE html> -<meta charset="utf-8"> -<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-style disables native appearance for widgets</title> -<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> -<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-style."> -<link rel="match" href="../compute-kind-widget-fallback-ref.html"> -<style> - #container { width: 500px; } - #container > #search-text-input { appearance: textfield; } - #container > #select-menulist-button { appearance: none; appearance: menulist-button; } -</style> - -<div id="container"> - <a>a</a> - <button id="button">button</button> - <input id="button-input" type="button" value="input-button"> - <input id="submit-input" type="submit" value="input-submit"> - <input id="reset-input" type="reset" value="input-reset"> - - <input id="text-input" type="text" value="input-text"> - <input id="search-text-input" type="search" value="input-search-text"> - <input id="search-input" type="search" value="input-search"> - - <input id="range-input" type="range"> - <input id="checkbox-input" type="checkbox"> - <input id="radio-input" type="radio"> - <input id="color-input" type="color"> - - <textarea id="textarea">textarea</textarea> - <select multiple id="select-listbox"><option>select-listbox</option></select> - <select id="select-dropdown-box"><option>select-dropdown-box</option></select> - <select id="select-menulist-button"><option>select-menulist-button</option></select> - <meter id="meter" value=0.5></meter> - <progress id="progress" value=0.5></progress> -</div> - -<script> -// Set author-level CSS that matches UA style, but don't use the 'revert' value. -const elements = document.querySelectorAll('#container > *'); -const prop = "border-bottom-style"; -for (const el of elements) { - el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); -} -</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-bottom-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-bottom-width-001.html deleted file mode 100644 index f8d2f84..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-bottom-width-001.html +++ /dev/null
@@ -1,47 +0,0 @@ -<!-- DO NOT EDIT. This file has been generated. Source: - ./tools/build-compute-kind-widget-fallback-props.py ---> -<!DOCTYPE html> -<meta charset="utf-8"> -<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-width disables native appearance for widgets</title> -<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> -<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-width."> -<link rel="match" href="../compute-kind-widget-fallback-ref.html"> -<style> - #container { width: 500px; } - #container > #search-text-input { appearance: textfield; } - #container > #select-menulist-button { appearance: none; appearance: menulist-button; } -</style> - -<div id="container"> - <a>a</a> - <button id="button">button</button> - <input id="button-input" type="button" value="input-button"> - <input id="submit-input" type="submit" value="input-submit"> - <input id="reset-input" type="reset" value="input-reset"> - - <input id="text-input" type="text" value="input-text"> - <input id="search-text-input" type="search" value="input-search-text"> - <input id="search-input" type="search" value="input-search"> - - <input id="range-input" type="range"> - <input id="checkbox-input" type="checkbox"> - <input id="radio-input" type="radio"> - <input id="color-input" type="color"> - - <textarea id="textarea">textarea</textarea> - <select multiple id="select-listbox"><option>select-listbox</option></select> - <select id="select-dropdown-box"><option>select-dropdown-box</option></select> - <select id="select-menulist-button"><option>select-menulist-button</option></select> - <meter id="meter" value=0.5></meter> - <progress id="progress" value=0.5></progress> -</div> - -<script> -// Set author-level CSS that matches UA style, but don't use the 'revert' value. -const elements = document.querySelectorAll('#container > *'); -const prop = "border-bottom-width"; -for (const el of elements) { - el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); -} -</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-end-end-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-end-end-radius-001.html deleted file mode 100644 index 9fa13b4..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-end-end-radius-001.html +++ /dev/null
@@ -1,47 +0,0 @@ -<!-- DO NOT EDIT. This file has been generated. Source: - ./tools/build-compute-kind-widget-fallback-props.py ---> -<!DOCTYPE html> -<meta charset="utf-8"> -<title>CSS Basic User Interface Test: Compute kind of widget: border-end-end-radius disables native appearance for widgets</title> -<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> -<meta name="assert" content="appropriate widget is returned when authorProps includes border-end-end-radius."> -<link rel="match" href="../compute-kind-widget-fallback-ref.html"> -<style> - #container { width: 500px; } - #container > #search-text-input { appearance: textfield; } - #container > #select-menulist-button { appearance: none; appearance: menulist-button; } -</style> - -<div id="container"> - <a>a</a> - <button id="button">button</button> - <input id="button-input" type="button" value="input-button"> - <input id="submit-input" type="submit" value="input-submit"> - <input id="reset-input" type="reset" value="input-reset"> - - <input id="text-input" type="text" value="input-text"> - <input id="search-text-input" type="search" value="input-search-text"> - <input id="search-input" type="search" value="input-search"> - - <input id="range-input" type="range"> - <input id="checkbox-input" type="checkbox"> - <input id="radio-input" type="radio"> - <input id="color-input" type="color"> - - <textarea id="textarea">textarea</textarea> - <select multiple id="select-listbox"><option>select-listbox</option></select> - <select id="select-dropdown-box"><option>select-dropdown-box</option></select> - <select id="select-menulist-button"><option>select-menulist-button</option></select> - <meter id="meter" value=0.5></meter> - <progress id="progress" value=0.5></progress> -</div> - -<script> -// Set author-level CSS that matches UA style, but don't use the 'revert' value. -const elements = document.querySelectorAll('#container > *'); -const prop = "border-end-end-radius"; -for (const el of elements) { - el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); -} -</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-end-start-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-end-start-radius-001.html deleted file mode 100644 index 7f3667e2..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-end-start-radius-001.html +++ /dev/null
@@ -1,47 +0,0 @@ -<!-- DO NOT EDIT. This file has been generated. Source: - ./tools/build-compute-kind-widget-fallback-props.py ---> -<!DOCTYPE html> -<meta charset="utf-8"> -<title>CSS Basic User Interface Test: Compute kind of widget: border-end-start-radius disables native appearance for widgets</title> -<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> -<meta name="assert" content="appropriate widget is returned when authorProps includes border-end-start-radius."> -<link rel="match" href="../compute-kind-widget-fallback-ref.html"> -<style> - #container { width: 500px; } - #container > #search-text-input { appearance: textfield; } - #container > #select-menulist-button { appearance: none; appearance: menulist-button; } -</style> - -<div id="container"> - <a>a</a> - <button id="button">button</button> - <input id="button-input" type="button" value="input-button"> - <input id="submit-input" type="submit" value="input-submit"> - <input id="reset-input" type="reset" value="input-reset"> - - <input id="text-input" type="text" value="input-text"> - <input id="search-text-input" type="search" value="input-search-text"> - <input id="search-input" type="search" value="input-search"> - - <input id="range-input" type="range"> - <input id="checkbox-input" type="checkbox"> - <input id="radio-input" type="radio"> - <input id="color-input" type="color"> - - <textarea id="textarea">textarea</textarea> - <select multiple id="select-listbox"><option>select-listbox</option></select> - <select id="select-dropdown-box"><option>select-dropdown-box</option></select> - <select id="select-menulist-button"><option>select-menulist-button</option></select> - <meter id="meter" value=0.5></meter> - <progress id="progress" value=0.5></progress> -</div> - -<script> -// Set author-level CSS that matches UA style, but don't use the 'revert' value. -const elements = document.querySelectorAll('#container > *'); -const prop = "border-end-start-radius"; -for (const el of elements) { - el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); -} -</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-image-outset-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-image-outset-001.html deleted file mode 100644 index dc3c872..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-image-outset-001.html +++ /dev/null
@@ -1,47 +0,0 @@ -<!-- DO NOT EDIT. This file has been generated. Source: - ./tools/build-compute-kind-widget-fallback-props.py ---> -<!DOCTYPE html> -<meta charset="utf-8"> -<title>CSS Basic User Interface Test: Compute kind of widget: border-image-outset disables native appearance for widgets</title> -<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> -<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-outset."> -<link rel="match" href="../compute-kind-widget-fallback-ref.html"> -<style> - #container { width: 500px; } - #container > #search-text-input { appearance: textfield; } - #container > #select-menulist-button { appearance: none; appearance: menulist-button; } -</style> - -<div id="container"> - <a>a</a> - <button id="button">button</button> - <input id="button-input" type="button" value="input-button"> - <input id="submit-input" type="submit" value="input-submit"> - <input id="reset-input" type="reset" value="input-reset"> - - <input id="text-input" type="text" value="input-text"> - <input id="search-text-input" type="search" value="input-search-text"> - <input id="search-input" type="search" value="input-search"> - - <input id="range-input" type="range"> - <input id="checkbox-input" type="checkbox"> - <input id="radio-input" type="radio"> - <input id="color-input" type="color"> - - <textarea id="textarea">textarea</textarea> - <select multiple id="select-listbox"><option>select-listbox</option></select> - <select id="select-dropdown-box"><option>select-dropdown-box</option></select> - <select id="select-menulist-button"><option>select-menulist-button</option></select> - <meter id="meter" value=0.5></meter> - <progress id="progress" value=0.5></progress> -</div> - -<script> -// Set author-level CSS that matches UA style, but don't use the 'revert' value. -const elements = document.querySelectorAll('#container > *'); -const prop = "border-image-outset"; -for (const el of elements) { - el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); -} -</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-image-repeat-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-image-repeat-001.html deleted file mode 100644 index 388ad9a..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-image-repeat-001.html +++ /dev/null
@@ -1,47 +0,0 @@ -<!-- DO NOT EDIT. This file has been generated. Source: - ./tools/build-compute-kind-widget-fallback-props.py ---> -<!DOCTYPE html> -<meta charset="utf-8"> -<title>CSS Basic User Interface Test: Compute kind of widget: border-image-repeat disables native appearance for widgets</title> -<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> -<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-repeat."> -<link rel="match" href="../compute-kind-widget-fallback-ref.html"> -<style> - #container { width: 500px; } - #container > #search-text-input { appearance: textfield; } - #container > #select-menulist-button { appearance: none; appearance: menulist-button; } -</style> - -<div id="container"> - <a>a</a> - <button id="button">button</button> - <input id="button-input" type="button" value="input-button"> - <input id="submit-input" type="submit" value="input-submit"> - <input id="reset-input" type="reset" value="input-reset"> - - <input id="text-input" type="text" value="input-text"> - <input id="search-text-input" type="search" value="input-search-text"> - <input id="search-input" type="search" value="input-search"> - - <input id="range-input" type="range"> - <input id="checkbox-input" type="checkbox"> - <input id="radio-input" type="radio"> - <input id="color-input" type="color"> - - <textarea id="textarea">textarea</textarea> - <select multiple id="select-listbox"><option>select-listbox</option></select> - <select id="select-dropdown-box"><option>select-dropdown-box</option></select> - <select id="select-menulist-button"><option>select-menulist-button</option></select> - <meter id="meter" value=0.5></meter> - <progress id="progress" value=0.5></progress> -</div> - -<script> -// Set author-level CSS that matches UA style, but don't use the 'revert' value. -const elements = document.querySelectorAll('#container > *'); -const prop = "border-image-repeat"; -for (const el of elements) { - el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); -} -</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-image-slice-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-image-slice-001.html deleted file mode 100644 index 971239c..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-image-slice-001.html +++ /dev/null
@@ -1,47 +0,0 @@ -<!-- DO NOT EDIT. This file has been generated. Source: - ./tools/build-compute-kind-widget-fallback-props.py ---> -<!DOCTYPE html> -<meta charset="utf-8"> -<title>CSS Basic User Interface Test: Compute kind of widget: border-image-slice disables native appearance for widgets</title> -<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> -<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-slice."> -<link rel="match" href="../compute-kind-widget-fallback-ref.html"> -<style> - #container { width: 500px; } - #container > #search-text-input { appearance: textfield; } - #container > #select-menulist-button { appearance: none; appearance: menulist-button; } -</style> - -<div id="container"> - <a>a</a> - <button id="button">button</button> - <input id="button-input" type="button" value="input-button"> - <input id="submit-input" type="submit" value="input-submit"> - <input id="reset-input" type="reset" value="input-reset"> - - <input id="text-input" type="text" value="input-text"> - <input id="search-text-input" type="search" value="input-search-text"> - <input id="search-input" type="search" value="input-search"> - - <input id="range-input" type="range"> - <input id="checkbox-input" type="checkbox"> - <input id="radio-input" type="radio"> - <input id="color-input" type="color"> - - <textarea id="textarea">textarea</textarea> - <select multiple id="select-listbox"><option>select-listbox</option></select> - <select id="select-dropdown-box"><option>select-dropdown-box</option></select> - <select id="select-menulist-button"><option>select-menulist-button</option></select> - <meter id="meter" value=0.5></meter> - <progress id="progress" value=0.5></progress> -</div> - -<script> -// Set author-level CSS that matches UA style, but don't use the 'revert' value. -const elements = document.querySelectorAll('#container > *'); -const prop = "border-image-slice"; -for (const el of elements) { - el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); -} -</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-image-source-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-image-source-001.html deleted file mode 100644 index 96795ed..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-image-source-001.html +++ /dev/null
@@ -1,47 +0,0 @@ -<!-- DO NOT EDIT. This file has been generated. Source: - ./tools/build-compute-kind-widget-fallback-props.py ---> -<!DOCTYPE html> -<meta charset="utf-8"> -<title>CSS Basic User Interface Test: Compute kind of widget: border-image-source disables native appearance for widgets</title> -<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> -<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-source."> -<link rel="match" href="../compute-kind-widget-fallback-ref.html"> -<style> - #container { width: 500px; } - #container > #search-text-input { appearance: textfield; } - #container > #select-menulist-button { appearance: none; appearance: menulist-button; } -</style> - -<div id="container"> - <a>a</a> - <button id="button">button</button> - <input id="button-input" type="button" value="input-button"> - <input id="submit-input" type="submit" value="input-submit"> - <input id="reset-input" type="reset" value="input-reset"> - - <input id="text-input" type="text" value="input-text"> - <input id="search-text-input" type="search" value="input-search-text"> - <input id="search-input" type="search" value="input-search"> - - <input id="range-input" type="range"> - <input id="checkbox-input" type="checkbox"> - <input id="radio-input" type="radio"> - <input id="color-input" type="color"> - - <textarea id="textarea">textarea</textarea> - <select multiple id="select-listbox"><option>select-listbox</option></select> - <select id="select-dropdown-box"><option>select-dropdown-box</option></select> - <select id="select-menulist-button"><option>select-menulist-button</option></select> - <meter id="meter" value=0.5></meter> - <progress id="progress" value=0.5></progress> -</div> - -<script> -// Set author-level CSS that matches UA style, but don't use the 'revert' value. -const elements = document.querySelectorAll('#container > *'); -const prop = "border-image-source"; -for (const el of elements) { - el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); -} -</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-image-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-image-width-001.html deleted file mode 100644 index ca57002..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-image-width-001.html +++ /dev/null
@@ -1,47 +0,0 @@ -<!-- DO NOT EDIT. This file has been generated. Source: - ./tools/build-compute-kind-widget-fallback-props.py ---> -<!DOCTYPE html> -<meta charset="utf-8"> -<title>CSS Basic User Interface Test: Compute kind of widget: border-image-width disables native appearance for widgets</title> -<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> -<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-width."> -<link rel="match" href="../compute-kind-widget-fallback-ref.html"> -<style> - #container { width: 500px; } - #container > #search-text-input { appearance: textfield; } - #container > #select-menulist-button { appearance: none; appearance: menulist-button; } -</style> - -<div id="container"> - <a>a</a> - <button id="button">button</button> - <input id="button-input" type="button" value="input-button"> - <input id="submit-input" type="submit" value="input-submit"> - <input id="reset-input" type="reset" value="input-reset"> - - <input id="text-input" type="text" value="input-text"> - <input id="search-text-input" type="search" value="input-search-text"> - <input id="search-input" type="search" value="input-search"> - - <input id="range-input" type="range"> - <input id="checkbox-input" type="checkbox"> - <input id="radio-input" type="radio"> - <input id="color-input" type="color"> - - <textarea id="textarea">textarea</textarea> - <select multiple id="select-listbox"><option>select-listbox</option></select> - <select id="select-dropdown-box"><option>select-dropdown-box</option></select> - <select id="select-menulist-button"><option>select-menulist-button</option></select> - <meter id="meter" value=0.5></meter> - <progress id="progress" value=0.5></progress> -</div> - -<script> -// Set author-level CSS that matches UA style, but don't use the 'revert' value. -const elements = document.querySelectorAll('#container > *'); -const prop = "border-image-width"; -for (const el of elements) { - el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); -} -</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-inline-end-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-inline-end-color-001.html deleted file mode 100644 index 9ecfdfbe..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-inline-end-color-001.html +++ /dev/null
@@ -1,47 +0,0 @@ -<!-- DO NOT EDIT. This file has been generated. Source: - ./tools/build-compute-kind-widget-fallback-props.py ---> -<!DOCTYPE html> -<meta charset="utf-8"> -<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-end-color disables native appearance for widgets</title> -<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> -<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-end-color."> -<link rel="match" href="../compute-kind-widget-fallback-ref.html"> -<style> - #container { width: 500px; } - #container > #search-text-input { appearance: textfield; } - #container > #select-menulist-button { appearance: none; appearance: menulist-button; } -</style> - -<div id="container"> - <a>a</a> - <button id="button">button</button> - <input id="button-input" type="button" value="input-button"> - <input id="submit-input" type="submit" value="input-submit"> - <input id="reset-input" type="reset" value="input-reset"> - - <input id="text-input" type="text" value="input-text"> - <input id="search-text-input" type="search" value="input-search-text"> - <input id="search-input" type="search" value="input-search"> - - <input id="range-input" type="range"> - <input id="checkbox-input" type="checkbox"> - <input id="radio-input" type="radio"> - <input id="color-input" type="color"> - - <textarea id="textarea">textarea</textarea> - <select multiple id="select-listbox"><option>select-listbox</option></select> - <select id="select-dropdown-box"><option>select-dropdown-box</option></select> - <select id="select-menulist-button"><option>select-menulist-button</option></select> - <meter id="meter" value=0.5></meter> - <progress id="progress" value=0.5></progress> -</div> - -<script> -// Set author-level CSS that matches UA style, but don't use the 'revert' value. -const elements = document.querySelectorAll('#container > *'); -const prop = "border-inline-end-color"; -for (const el of elements) { - el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); -} -</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-inline-end-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-inline-end-style-001.html deleted file mode 100644 index 2a5496e..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-inline-end-style-001.html +++ /dev/null
@@ -1,47 +0,0 @@ -<!-- DO NOT EDIT. This file has been generated. Source: - ./tools/build-compute-kind-widget-fallback-props.py ---> -<!DOCTYPE html> -<meta charset="utf-8"> -<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-end-style disables native appearance for widgets</title> -<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> -<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-end-style."> -<link rel="match" href="../compute-kind-widget-fallback-ref.html"> -<style> - #container { width: 500px; } - #container > #search-text-input { appearance: textfield; } - #container > #select-menulist-button { appearance: none; appearance: menulist-button; } -</style> - -<div id="container"> - <a>a</a> - <button id="button">button</button> - <input id="button-input" type="button" value="input-button"> - <input id="submit-input" type="submit" value="input-submit"> - <input id="reset-input" type="reset" value="input-reset"> - - <input id="text-input" type="text" value="input-text"> - <input id="search-text-input" type="search" value="input-search-text"> - <input id="search-input" type="search" value="input-search"> - - <input id="range-input" type="range"> - <input id="checkbox-input" type="checkbox"> - <input id="radio-input" type="radio"> - <input id="color-input" type="color"> - - <textarea id="textarea">textarea</textarea> - <select multiple id="select-listbox"><option>select-listbox</option></select> - <select id="select-dropdown-box"><option>select-dropdown-box</option></select> - <select id="select-menulist-button"><option>select-menulist-button</option></select> - <meter id="meter" value=0.5></meter> - <progress id="progress" value=0.5></progress> -</div> - -<script> -// Set author-level CSS that matches UA style, but don't use the 'revert' value. -const elements = document.querySelectorAll('#container > *'); -const prop = "border-inline-end-style"; -for (const el of elements) { - el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); -} -</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-inline-end-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-inline-end-width-001.html deleted file mode 100644 index 6269410..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-inline-end-width-001.html +++ /dev/null
@@ -1,47 +0,0 @@ -<!-- DO NOT EDIT. This file has been generated. Source: - ./tools/build-compute-kind-widget-fallback-props.py ---> -<!DOCTYPE html> -<meta charset="utf-8"> -<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-end-width disables native appearance for widgets</title> -<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> -<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-end-width."> -<link rel="match" href="../compute-kind-widget-fallback-ref.html"> -<style> - #container { width: 500px; } - #container > #search-text-input { appearance: textfield; } - #container > #select-menulist-button { appearance: none; appearance: menulist-button; } -</style> - -<div id="container"> - <a>a</a> - <button id="button">button</button> - <input id="button-input" type="button" value="input-button"> - <input id="submit-input" type="submit" value="input-submit"> - <input id="reset-input" type="reset" value="input-reset"> - - <input id="text-input" type="text" value="input-text"> - <input id="search-text-input" type="search" value="input-search-text"> - <input id="search-input" type="search" value="input-search"> - - <input id="range-input" type="range"> - <input id="checkbox-input" type="checkbox"> - <input id="radio-input" type="radio"> - <input id="color-input" type="color"> - - <textarea id="textarea">textarea</textarea> - <select multiple id="select-listbox"><option>select-listbox</option></select> - <select id="select-dropdown-box"><option>select-dropdown-box</option></select> - <select id="select-menulist-button"><option>select-menulist-button</option></select> - <meter id="meter" value=0.5></meter> - <progress id="progress" value=0.5></progress> -</div> - -<script> -// Set author-level CSS that matches UA style, but don't use the 'revert' value. -const elements = document.querySelectorAll('#container > *'); -const prop = "border-inline-end-width"; -for (const el of elements) { - el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); -} -</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-inline-start-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-inline-start-color-001.html deleted file mode 100644 index eee53b1..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-inline-start-color-001.html +++ /dev/null
@@ -1,47 +0,0 @@ -<!-- DO NOT EDIT. This file has been generated. Source: - ./tools/build-compute-kind-widget-fallback-props.py ---> -<!DOCTYPE html> -<meta charset="utf-8"> -<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-start-color disables native appearance for widgets</title> -<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> -<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-start-color."> -<link rel="match" href="../compute-kind-widget-fallback-ref.html"> -<style> - #container { width: 500px; } - #container > #search-text-input { appearance: textfield; } - #container > #select-menulist-button { appearance: none; appearance: menulist-button; } -</style> - -<div id="container"> - <a>a</a> - <button id="button">button</button> - <input id="button-input" type="button" value="input-button"> - <input id="submit-input" type="submit" value="input-submit"> - <input id="reset-input" type="reset" value="input-reset"> - - <input id="text-input" type="text" value="input-text"> - <input id="search-text-input" type="search" value="input-search-text"> - <input id="search-input" type="search" value="input-search"> - - <input id="range-input" type="range"> - <input id="checkbox-input" type="checkbox"> - <input id="radio-input" type="radio"> - <input id="color-input" type="color"> - - <textarea id="textarea">textarea</textarea> - <select multiple id="select-listbox"><option>select-listbox</option></select> - <select id="select-dropdown-box"><option>select-dropdown-box</option></select> - <select id="select-menulist-button"><option>select-menulist-button</option></select> - <meter id="meter" value=0.5></meter> - <progress id="progress" value=0.5></progress> -</div> - -<script> -// Set author-level CSS that matches UA style, but don't use the 'revert' value. -const elements = document.querySelectorAll('#container > *'); -const prop = "border-inline-start-color"; -for (const el of elements) { - el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); -} -</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-inline-start-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-inline-start-style-001.html deleted file mode 100644 index b8e980e..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-inline-start-style-001.html +++ /dev/null
@@ -1,47 +0,0 @@ -<!-- DO NOT EDIT. This file has been generated. Source: - ./tools/build-compute-kind-widget-fallback-props.py ---> -<!DOCTYPE html> -<meta charset="utf-8"> -<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-start-style disables native appearance for widgets</title> -<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> -<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-start-style."> -<link rel="match" href="../compute-kind-widget-fallback-ref.html"> -<style> - #container { width: 500px; } - #container > #search-text-input { appearance: textfield; } - #container > #select-menulist-button { appearance: none; appearance: menulist-button; } -</style> - -<div id="container"> - <a>a</a> - <button id="button">button</button> - <input id="button-input" type="button" value="input-button"> - <input id="submit-input" type="submit" value="input-submit"> - <input id="reset-input" type="reset" value="input-reset"> - - <input id="text-input" type="text" value="input-text"> - <input id="search-text-input" type="search" value="input-search-text"> - <input id="search-input" type="search" value="input-search"> - - <input id="range-input" type="range"> - <input id="checkbox-input" type="checkbox"> - <input id="radio-input" type="radio"> - <input id="color-input" type="color"> - - <textarea id="textarea">textarea</textarea> - <select multiple id="select-listbox"><option>select-listbox</option></select> - <select id="select-dropdown-box"><option>select-dropdown-box</option></select> - <select id="select-menulist-button"><option>select-menulist-button</option></select> - <meter id="meter" value=0.5></meter> - <progress id="progress" value=0.5></progress> -</div> - -<script> -// Set author-level CSS that matches UA style, but don't use the 'revert' value. -const elements = document.querySelectorAll('#container > *'); -const prop = "border-inline-start-style"; -for (const el of elements) { - el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); -} -</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-inline-start-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-inline-start-width-001.html deleted file mode 100644 index 999028e..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-inline-start-width-001.html +++ /dev/null
@@ -1,47 +0,0 @@ -<!-- DO NOT EDIT. This file has been generated. Source: - ./tools/build-compute-kind-widget-fallback-props.py ---> -<!DOCTYPE html> -<meta charset="utf-8"> -<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-start-width disables native appearance for widgets</title> -<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> -<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-start-width."> -<link rel="match" href="../compute-kind-widget-fallback-ref.html"> -<style> - #container { width: 500px; } - #container > #search-text-input { appearance: textfield; } - #container > #select-menulist-button { appearance: none; appearance: menulist-button; } -</style> - -<div id="container"> - <a>a</a> - <button id="button">button</button> - <input id="button-input" type="button" value="input-button"> - <input id="submit-input" type="submit" value="input-submit"> - <input id="reset-input" type="reset" value="input-reset"> - - <input id="text-input" type="text" value="input-text"> - <input id="search-text-input" type="search" value="input-search-text"> - <input id="search-input" type="search" value="input-search"> - - <input id="range-input" type="range"> - <input id="checkbox-input" type="checkbox"> - <input id="radio-input" type="radio"> - <input id="color-input" type="color"> - - <textarea id="textarea">textarea</textarea> - <select multiple id="select-listbox"><option>select-listbox</option></select> - <select id="select-dropdown-box"><option>select-dropdown-box</option></select> - <select id="select-menulist-button"><option>select-menulist-button</option></select> - <meter id="meter" value=0.5></meter> - <progress id="progress" value=0.5></progress> -</div> - -<script> -// Set author-level CSS that matches UA style, but don't use the 'revert' value. -const elements = document.querySelectorAll('#container > *'); -const prop = "border-inline-start-width"; -for (const el of elements) { - el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); -} -</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-left-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-left-color-001.html deleted file mode 100644 index 9d35d5a..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-left-color-001.html +++ /dev/null
@@ -1,47 +0,0 @@ -<!-- DO NOT EDIT. This file has been generated. Source: - ./tools/build-compute-kind-widget-fallback-props.py ---> -<!DOCTYPE html> -<meta charset="utf-8"> -<title>CSS Basic User Interface Test: Compute kind of widget: border-left-color disables native appearance for widgets</title> -<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> -<meta name="assert" content="appropriate widget is returned when authorProps includes border-left-color."> -<link rel="match" href="../compute-kind-widget-fallback-ref.html"> -<style> - #container { width: 500px; } - #container > #search-text-input { appearance: textfield; } - #container > #select-menulist-button { appearance: none; appearance: menulist-button; } -</style> - -<div id="container"> - <a>a</a> - <button id="button">button</button> - <input id="button-input" type="button" value="input-button"> - <input id="submit-input" type="submit" value="input-submit"> - <input id="reset-input" type="reset" value="input-reset"> - - <input id="text-input" type="text" value="input-text"> - <input id="search-text-input" type="search" value="input-search-text"> - <input id="search-input" type="search" value="input-search"> - - <input id="range-input" type="range"> - <input id="checkbox-input" type="checkbox"> - <input id="radio-input" type="radio"> - <input id="color-input" type="color"> - - <textarea id="textarea">textarea</textarea> - <select multiple id="select-listbox"><option>select-listbox</option></select> - <select id="select-dropdown-box"><option>select-dropdown-box</option></select> - <select id="select-menulist-button"><option>select-menulist-button</option></select> - <meter id="meter" value=0.5></meter> - <progress id="progress" value=0.5></progress> -</div> - -<script> -// Set author-level CSS that matches UA style, but don't use the 'revert' value. -const elements = document.querySelectorAll('#container > *'); -const prop = "border-left-color"; -for (const el of elements) { - el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); -} -</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-left-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-left-style-001.html deleted file mode 100644 index 0c3834a..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-left-style-001.html +++ /dev/null
@@ -1,47 +0,0 @@ -<!-- DO NOT EDIT. This file has been generated. Source: - ./tools/build-compute-kind-widget-fallback-props.py ---> -<!DOCTYPE html> -<meta charset="utf-8"> -<title>CSS Basic User Interface Test: Compute kind of widget: border-left-style disables native appearance for widgets</title> -<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> -<meta name="assert" content="appropriate widget is returned when authorProps includes border-left-style."> -<link rel="match" href="../compute-kind-widget-fallback-ref.html"> -<style> - #container { width: 500px; } - #container > #search-text-input { appearance: textfield; } - #container > #select-menulist-button { appearance: none; appearance: menulist-button; } -</style> - -<div id="container"> - <a>a</a> - <button id="button">button</button> - <input id="button-input" type="button" value="input-button"> - <input id="submit-input" type="submit" value="input-submit"> - <input id="reset-input" type="reset" value="input-reset"> - - <input id="text-input" type="text" value="input-text"> - <input id="search-text-input" type="search" value="input-search-text"> - <input id="search-input" type="search" value="input-search"> - - <input id="range-input" type="range"> - <input id="checkbox-input" type="checkbox"> - <input id="radio-input" type="radio"> - <input id="color-input" type="color"> - - <textarea id="textarea">textarea</textarea> - <select multiple id="select-listbox"><option>select-listbox</option></select> - <select id="select-dropdown-box"><option>select-dropdown-box</option></select> - <select id="select-menulist-button"><option>select-menulist-button</option></select> - <meter id="meter" value=0.5></meter> - <progress id="progress" value=0.5></progress> -</div> - -<script> -// Set author-level CSS that matches UA style, but don't use the 'revert' value. -const elements = document.querySelectorAll('#container > *'); -const prop = "border-left-style"; -for (const el of elements) { - el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); -} -</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-left-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-left-width-001.html deleted file mode 100644 index b9db35d..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-left-width-001.html +++ /dev/null
@@ -1,47 +0,0 @@ -<!-- DO NOT EDIT. This file has been generated. Source: - ./tools/build-compute-kind-widget-fallback-props.py ---> -<!DOCTYPE html> -<meta charset="utf-8"> -<title>CSS Basic User Interface Test: Compute kind of widget: border-left-width disables native appearance for widgets</title> -<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> -<meta name="assert" content="appropriate widget is returned when authorProps includes border-left-width."> -<link rel="match" href="../compute-kind-widget-fallback-ref.html"> -<style> - #container { width: 500px; } - #container > #search-text-input { appearance: textfield; } - #container > #select-menulist-button { appearance: none; appearance: menulist-button; } -</style> - -<div id="container"> - <a>a</a> - <button id="button">button</button> - <input id="button-input" type="button" value="input-button"> - <input id="submit-input" type="submit" value="input-submit"> - <input id="reset-input" type="reset" value="input-reset"> - - <input id="text-input" type="text" value="input-text"> - <input id="search-text-input" type="search" value="input-search-text"> - <input id="search-input" type="search" value="input-search"> - - <input id="range-input" type="range"> - <input id="checkbox-input" type="checkbox"> - <input id="radio-input" type="radio"> - <input id="color-input" type="color"> - - <textarea id="textarea">textarea</textarea> - <select multiple id="select-listbox"><option>select-listbox</option></select> - <select id="select-dropdown-box"><option>select-dropdown-box</option></select> - <select id="select-menulist-button"><option>select-menulist-button</option></select> - <meter id="meter" value=0.5></meter> - <progress id="progress" value=0.5></progress> -</div> - -<script> -// Set author-level CSS that matches UA style, but don't use the 'revert' value. -const elements = document.querySelectorAll('#container > *'); -const prop = "border-left-width"; -for (const el of elements) { - el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); -} -</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-right-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-right-color-001.html deleted file mode 100644 index 4be6ac5..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-right-color-001.html +++ /dev/null
@@ -1,47 +0,0 @@ -<!-- DO NOT EDIT. This file has been generated. Source: - ./tools/build-compute-kind-widget-fallback-props.py ---> -<!DOCTYPE html> -<meta charset="utf-8"> -<title>CSS Basic User Interface Test: Compute kind of widget: border-right-color disables native appearance for widgets</title> -<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> -<meta name="assert" content="appropriate widget is returned when authorProps includes border-right-color."> -<link rel="match" href="../compute-kind-widget-fallback-ref.html"> -<style> - #container { width: 500px; } - #container > #search-text-input { appearance: textfield; } - #container > #select-menulist-button { appearance: none; appearance: menulist-button; } -</style> - -<div id="container"> - <a>a</a> - <button id="button">button</button> - <input id="button-input" type="button" value="input-button"> - <input id="submit-input" type="submit" value="input-submit"> - <input id="reset-input" type="reset" value="input-reset"> - - <input id="text-input" type="text" value="input-text"> - <input id="search-text-input" type="search" value="input-search-text"> - <input id="search-input" type="search" value="input-search"> - - <input id="range-input" type="range"> - <input id="checkbox-input" type="checkbox"> - <input id="radio-input" type="radio"> - <input id="color-input" type="color"> - - <textarea id="textarea">textarea</textarea> - <select multiple id="select-listbox"><option>select-listbox</option></select> - <select id="select-dropdown-box"><option>select-dropdown-box</option></select> - <select id="select-menulist-button"><option>select-menulist-button</option></select> - <meter id="meter" value=0.5></meter> - <progress id="progress" value=0.5></progress> -</div> - -<script> -// Set author-level CSS that matches UA style, but don't use the 'revert' value. -const elements = document.querySelectorAll('#container > *'); -const prop = "border-right-color"; -for (const el of elements) { - el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); -} -</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-right-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-right-style-001.html deleted file mode 100644 index 0bb296c..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-right-style-001.html +++ /dev/null
@@ -1,47 +0,0 @@ -<!-- DO NOT EDIT. This file has been generated. Source: - ./tools/build-compute-kind-widget-fallback-props.py ---> -<!DOCTYPE html> -<meta charset="utf-8"> -<title>CSS Basic User Interface Test: Compute kind of widget: border-right-style disables native appearance for widgets</title> -<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> -<meta name="assert" content="appropriate widget is returned when authorProps includes border-right-style."> -<link rel="match" href="../compute-kind-widget-fallback-ref.html"> -<style> - #container { width: 500px; } - #container > #search-text-input { appearance: textfield; } - #container > #select-menulist-button { appearance: none; appearance: menulist-button; } -</style> - -<div id="container"> - <a>a</a> - <button id="button">button</button> - <input id="button-input" type="button" value="input-button"> - <input id="submit-input" type="submit" value="input-submit"> - <input id="reset-input" type="reset" value="input-reset"> - - <input id="text-input" type="text" value="input-text"> - <input id="search-text-input" type="search" value="input-search-text"> - <input id="search-input" type="search" value="input-search"> - - <input id="range-input" type="range"> - <input id="checkbox-input" type="checkbox"> - <input id="radio-input" type="radio"> - <input id="color-input" type="color"> - - <textarea id="textarea">textarea</textarea> - <select multiple id="select-listbox"><option>select-listbox</option></select> - <select id="select-dropdown-box"><option>select-dropdown-box</option></select> - <select id="select-menulist-button"><option>select-menulist-button</option></select> - <meter id="meter" value=0.5></meter> - <progress id="progress" value=0.5></progress> -</div> - -<script> -// Set author-level CSS that matches UA style, but don't use the 'revert' value. -const elements = document.querySelectorAll('#container > *'); -const prop = "border-right-style"; -for (const el of elements) { - el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); -} -</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-right-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-right-width-001.html deleted file mode 100644 index 8a0436d2..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-right-width-001.html +++ /dev/null
@@ -1,47 +0,0 @@ -<!-- DO NOT EDIT. This file has been generated. Source: - ./tools/build-compute-kind-widget-fallback-props.py ---> -<!DOCTYPE html> -<meta charset="utf-8"> -<title>CSS Basic User Interface Test: Compute kind of widget: border-right-width disables native appearance for widgets</title> -<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> -<meta name="assert" content="appropriate widget is returned when authorProps includes border-right-width."> -<link rel="match" href="../compute-kind-widget-fallback-ref.html"> -<style> - #container { width: 500px; } - #container > #search-text-input { appearance: textfield; } - #container > #select-menulist-button { appearance: none; appearance: menulist-button; } -</style> - -<div id="container"> - <a>a</a> - <button id="button">button</button> - <input id="button-input" type="button" value="input-button"> - <input id="submit-input" type="submit" value="input-submit"> - <input id="reset-input" type="reset" value="input-reset"> - - <input id="text-input" type="text" value="input-text"> - <input id="search-text-input" type="search" value="input-search-text"> - <input id="search-input" type="search" value="input-search"> - - <input id="range-input" type="range"> - <input id="checkbox-input" type="checkbox"> - <input id="radio-input" type="radio"> - <input id="color-input" type="color"> - - <textarea id="textarea">textarea</textarea> - <select multiple id="select-listbox"><option>select-listbox</option></select> - <select id="select-dropdown-box"><option>select-dropdown-box</option></select> - <select id="select-menulist-button"><option>select-menulist-button</option></select> - <meter id="meter" value=0.5></meter> - <progress id="progress" value=0.5></progress> -</div> - -<script> -// Set author-level CSS that matches UA style, but don't use the 'revert' value. -const elements = document.querySelectorAll('#container > *'); -const prop = "border-right-width"; -for (const el of elements) { - el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); -} -</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-start-end-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-start-end-radius-001.html deleted file mode 100644 index 27c8a5e3..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-start-end-radius-001.html +++ /dev/null
@@ -1,47 +0,0 @@ -<!-- DO NOT EDIT. This file has been generated. Source: - ./tools/build-compute-kind-widget-fallback-props.py ---> -<!DOCTYPE html> -<meta charset="utf-8"> -<title>CSS Basic User Interface Test: Compute kind of widget: border-start-end-radius disables native appearance for widgets</title> -<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> -<meta name="assert" content="appropriate widget is returned when authorProps includes border-start-end-radius."> -<link rel="match" href="../compute-kind-widget-fallback-ref.html"> -<style> - #container { width: 500px; } - #container > #search-text-input { appearance: textfield; } - #container > #select-menulist-button { appearance: none; appearance: menulist-button; } -</style> - -<div id="container"> - <a>a</a> - <button id="button">button</button> - <input id="button-input" type="button" value="input-button"> - <input id="submit-input" type="submit" value="input-submit"> - <input id="reset-input" type="reset" value="input-reset"> - - <input id="text-input" type="text" value="input-text"> - <input id="search-text-input" type="search" value="input-search-text"> - <input id="search-input" type="search" value="input-search"> - - <input id="range-input" type="range"> - <input id="checkbox-input" type="checkbox"> - <input id="radio-input" type="radio"> - <input id="color-input" type="color"> - - <textarea id="textarea">textarea</textarea> - <select multiple id="select-listbox"><option>select-listbox</option></select> - <select id="select-dropdown-box"><option>select-dropdown-box</option></select> - <select id="select-menulist-button"><option>select-menulist-button</option></select> - <meter id="meter" value=0.5></meter> - <progress id="progress" value=0.5></progress> -</div> - -<script> -// Set author-level CSS that matches UA style, but don't use the 'revert' value. -const elements = document.querySelectorAll('#container > *'); -const prop = "border-start-end-radius"; -for (const el of elements) { - el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); -} -</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-start-start-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-start-start-radius-001.html deleted file mode 100644 index 8f1369d..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-start-start-radius-001.html +++ /dev/null
@@ -1,47 +0,0 @@ -<!-- DO NOT EDIT. This file has been generated. Source: - ./tools/build-compute-kind-widget-fallback-props.py ---> -<!DOCTYPE html> -<meta charset="utf-8"> -<title>CSS Basic User Interface Test: Compute kind of widget: border-start-start-radius disables native appearance for widgets</title> -<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> -<meta name="assert" content="appropriate widget is returned when authorProps includes border-start-start-radius."> -<link rel="match" href="../compute-kind-widget-fallback-ref.html"> -<style> - #container { width: 500px; } - #container > #search-text-input { appearance: textfield; } - #container > #select-menulist-button { appearance: none; appearance: menulist-button; } -</style> - -<div id="container"> - <a>a</a> - <button id="button">button</button> - <input id="button-input" type="button" value="input-button"> - <input id="submit-input" type="submit" value="input-submit"> - <input id="reset-input" type="reset" value="input-reset"> - - <input id="text-input" type="text" value="input-text"> - <input id="search-text-input" type="search" value="input-search-text"> - <input id="search-input" type="search" value="input-search"> - - <input id="range-input" type="range"> - <input id="checkbox-input" type="checkbox"> - <input id="radio-input" type="radio"> - <input id="color-input" type="color"> - - <textarea id="textarea">textarea</textarea> - <select multiple id="select-listbox"><option>select-listbox</option></select> - <select id="select-dropdown-box"><option>select-dropdown-box</option></select> - <select id="select-menulist-button"><option>select-menulist-button</option></select> - <meter id="meter" value=0.5></meter> - <progress id="progress" value=0.5></progress> -</div> - -<script> -// Set author-level CSS that matches UA style, but don't use the 'revert' value. -const elements = document.querySelectorAll('#container > *'); -const prop = "border-start-start-radius"; -for (const el of elements) { - el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); -} -</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-top-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-top-color-001.html deleted file mode 100644 index b967850..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-top-color-001.html +++ /dev/null
@@ -1,47 +0,0 @@ -<!-- DO NOT EDIT. This file has been generated. Source: - ./tools/build-compute-kind-widget-fallback-props.py ---> -<!DOCTYPE html> -<meta charset="utf-8"> -<title>CSS Basic User Interface Test: Compute kind of widget: border-top-color disables native appearance for widgets</title> -<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> -<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-color."> -<link rel="match" href="../compute-kind-widget-fallback-ref.html"> -<style> - #container { width: 500px; } - #container > #search-text-input { appearance: textfield; } - #container > #select-menulist-button { appearance: none; appearance: menulist-button; } -</style> - -<div id="container"> - <a>a</a> - <button id="button">button</button> - <input id="button-input" type="button" value="input-button"> - <input id="submit-input" type="submit" value="input-submit"> - <input id="reset-input" type="reset" value="input-reset"> - - <input id="text-input" type="text" value="input-text"> - <input id="search-text-input" type="search" value="input-search-text"> - <input id="search-input" type="search" value="input-search"> - - <input id="range-input" type="range"> - <input id="checkbox-input" type="checkbox"> - <input id="radio-input" type="radio"> - <input id="color-input" type="color"> - - <textarea id="textarea">textarea</textarea> - <select multiple id="select-listbox"><option>select-listbox</option></select> - <select id="select-dropdown-box"><option>select-dropdown-box</option></select> - <select id="select-menulist-button"><option>select-menulist-button</option></select> - <meter id="meter" value=0.5></meter> - <progress id="progress" value=0.5></progress> -</div> - -<script> -// Set author-level CSS that matches UA style, but don't use the 'revert' value. -const elements = document.querySelectorAll('#container > *'); -const prop = "border-top-color"; -for (const el of elements) { - el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); -} -</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-top-left-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-top-left-radius-001.html deleted file mode 100644 index 937cb02..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-top-left-radius-001.html +++ /dev/null
@@ -1,47 +0,0 @@ -<!-- DO NOT EDIT. This file has been generated. Source: - ./tools/build-compute-kind-widget-fallback-props.py ---> -<!DOCTYPE html> -<meta charset="utf-8"> -<title>CSS Basic User Interface Test: Compute kind of widget: border-top-left-radius disables native appearance for widgets</title> -<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> -<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-left-radius."> -<link rel="match" href="../compute-kind-widget-fallback-ref.html"> -<style> - #container { width: 500px; } - #container > #search-text-input { appearance: textfield; } - #container > #select-menulist-button { appearance: none; appearance: menulist-button; } -</style> - -<div id="container"> - <a>a</a> - <button id="button">button</button> - <input id="button-input" type="button" value="input-button"> - <input id="submit-input" type="submit" value="input-submit"> - <input id="reset-input" type="reset" value="input-reset"> - - <input id="text-input" type="text" value="input-text"> - <input id="search-text-input" type="search" value="input-search-text"> - <input id="search-input" type="search" value="input-search"> - - <input id="range-input" type="range"> - <input id="checkbox-input" type="checkbox"> - <input id="radio-input" type="radio"> - <input id="color-input" type="color"> - - <textarea id="textarea">textarea</textarea> - <select multiple id="select-listbox"><option>select-listbox</option></select> - <select id="select-dropdown-box"><option>select-dropdown-box</option></select> - <select id="select-menulist-button"><option>select-menulist-button</option></select> - <meter id="meter" value=0.5></meter> - <progress id="progress" value=0.5></progress> -</div> - -<script> -// Set author-level CSS that matches UA style, but don't use the 'revert' value. -const elements = document.querySelectorAll('#container > *'); -const prop = "border-top-left-radius"; -for (const el of elements) { - el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); -} -</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-top-right-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-top-right-radius-001.html deleted file mode 100644 index f2abad9..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-top-right-radius-001.html +++ /dev/null
@@ -1,47 +0,0 @@ -<!-- DO NOT EDIT. This file has been generated. Source: - ./tools/build-compute-kind-widget-fallback-props.py ---> -<!DOCTYPE html> -<meta charset="utf-8"> -<title>CSS Basic User Interface Test: Compute kind of widget: border-top-right-radius disables native appearance for widgets</title> -<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> -<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-right-radius."> -<link rel="match" href="../compute-kind-widget-fallback-ref.html"> -<style> - #container { width: 500px; } - #container > #search-text-input { appearance: textfield; } - #container > #select-menulist-button { appearance: none; appearance: menulist-button; } -</style> - -<div id="container"> - <a>a</a> - <button id="button">button</button> - <input id="button-input" type="button" value="input-button"> - <input id="submit-input" type="submit" value="input-submit"> - <input id="reset-input" type="reset" value="input-reset"> - - <input id="text-input" type="text" value="input-text"> - <input id="search-text-input" type="search" value="input-search-text"> - <input id="search-input" type="search" value="input-search"> - - <input id="range-input" type="range"> - <input id="checkbox-input" type="checkbox"> - <input id="radio-input" type="radio"> - <input id="color-input" type="color"> - - <textarea id="textarea">textarea</textarea> - <select multiple id="select-listbox"><option>select-listbox</option></select> - <select id="select-dropdown-box"><option>select-dropdown-box</option></select> - <select id="select-menulist-button"><option>select-menulist-button</option></select> - <meter id="meter" value=0.5></meter> - <progress id="progress" value=0.5></progress> -</div> - -<script> -// Set author-level CSS that matches UA style, but don't use the 'revert' value. -const elements = document.querySelectorAll('#container > *'); -const prop = "border-top-right-radius"; -for (const el of elements) { - el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); -} -</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-top-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-top-style-001.html deleted file mode 100644 index 921933c28..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-top-style-001.html +++ /dev/null
@@ -1,47 +0,0 @@ -<!-- DO NOT EDIT. This file has been generated. Source: - ./tools/build-compute-kind-widget-fallback-props.py ---> -<!DOCTYPE html> -<meta charset="utf-8"> -<title>CSS Basic User Interface Test: Compute kind of widget: border-top-style disables native appearance for widgets</title> -<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> -<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-style."> -<link rel="match" href="../compute-kind-widget-fallback-ref.html"> -<style> - #container { width: 500px; } - #container > #search-text-input { appearance: textfield; } - #container > #select-menulist-button { appearance: none; appearance: menulist-button; } -</style> - -<div id="container"> - <a>a</a> - <button id="button">button</button> - <input id="button-input" type="button" value="input-button"> - <input id="submit-input" type="submit" value="input-submit"> - <input id="reset-input" type="reset" value="input-reset"> - - <input id="text-input" type="text" value="input-text"> - <input id="search-text-input" type="search" value="input-search-text"> - <input id="search-input" type="search" value="input-search"> - - <input id="range-input" type="range"> - <input id="checkbox-input" type="checkbox"> - <input id="radio-input" type="radio"> - <input id="color-input" type="color"> - - <textarea id="textarea">textarea</textarea> - <select multiple id="select-listbox"><option>select-listbox</option></select> - <select id="select-dropdown-box"><option>select-dropdown-box</option></select> - <select id="select-menulist-button"><option>select-menulist-button</option></select> - <meter id="meter" value=0.5></meter> - <progress id="progress" value=0.5></progress> -</div> - -<script> -// Set author-level CSS that matches UA style, but don't use the 'revert' value. -const elements = document.querySelectorAll('#container > *'); -const prop = "border-top-style"; -for (const el of elements) { - el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); -} -</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-top-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-top-width-001.html deleted file mode 100644 index ff0fecf..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-border-top-width-001.html +++ /dev/null
@@ -1,47 +0,0 @@ -<!-- DO NOT EDIT. This file has been generated. Source: - ./tools/build-compute-kind-widget-fallback-props.py ---> -<!DOCTYPE html> -<meta charset="utf-8"> -<title>CSS Basic User Interface Test: Compute kind of widget: border-top-width disables native appearance for widgets</title> -<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> -<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-width."> -<link rel="match" href="../compute-kind-widget-fallback-ref.html"> -<style> - #container { width: 500px; } - #container > #search-text-input { appearance: textfield; } - #container > #select-menulist-button { appearance: none; appearance: menulist-button; } -</style> - -<div id="container"> - <a>a</a> - <button id="button">button</button> - <input id="button-input" type="button" value="input-button"> - <input id="submit-input" type="submit" value="input-submit"> - <input id="reset-input" type="reset" value="input-reset"> - - <input id="text-input" type="text" value="input-text"> - <input id="search-text-input" type="search" value="input-search-text"> - <input id="search-input" type="search" value="input-search"> - - <input id="range-input" type="range"> - <input id="checkbox-input" type="checkbox"> - <input id="radio-input" type="radio"> - <input id="color-input" type="color"> - - <textarea id="textarea">textarea</textarea> - <select multiple id="select-listbox"><option>select-listbox</option></select> - <select id="select-dropdown-box"><option>select-dropdown-box</option></select> - <select id="select-menulist-button"><option>select-menulist-button</option></select> - <meter id="meter" value=0.5></meter> - <progress id="progress" value=0.5></progress> -</div> - -<script> -// Set author-level CSS that matches UA style, but don't use the 'revert' value. -const elements = document.querySelectorAll('#container > *'); -const prop = "border-top-width"; -for (const el of elements) { - el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); -} -</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-background-attachment-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-background-attachment-001.html new file mode 100644 index 0000000..065fc6dc --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-background-attachment-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-attachment disables native appearance for button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-attachment."> +<link rel="match" href="../compute-kind-widget-fallback-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <button id="button">button</button> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-attachment"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-background-clip-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-background-clip-001.html new file mode 100644 index 0000000..70595838 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-background-clip-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-clip disables native appearance for button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-clip."> +<link rel="match" href="../compute-kind-widget-fallback-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <button id="button">button</button> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-clip"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-background-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-background-color-001.html new file mode 100644 index 0000000..bcef8dcd --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-background-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-color disables native appearance for button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-color."> +<link rel="match" href="../compute-kind-widget-fallback-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <button id="button">button</button> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-background-image-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-background-image-001.html new file mode 100644 index 0000000..c2ff3ad6 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-background-image-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-image disables native appearance for button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-image."> +<link rel="match" href="../compute-kind-widget-fallback-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <button id="button">button</button> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-image"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-background-origin-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-background-origin-001.html new file mode 100644 index 0000000..3e6a287 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-background-origin-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-origin disables native appearance for button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-origin."> +<link rel="match" href="../compute-kind-widget-fallback-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <button id="button">button</button> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-origin"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-background-position-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-background-position-001.html new file mode 100644 index 0000000..8c35eb7 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-background-position-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-position disables native appearance for button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-position."> +<link rel="match" href="../compute-kind-widget-fallback-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <button id="button">button</button> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-position"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-background-size-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-background-size-001.html new file mode 100644 index 0000000..a177d5c --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-background-size-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-size disables native appearance for button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-size."> +<link rel="match" href="../compute-kind-widget-fallback-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <button id="button">button</button> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-size"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-block-end-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-block-end-color-001.html new file mode 100644 index 0000000..bc1220b --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-block-end-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-end-color disables native appearance for button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-end-color."> +<link rel="match" href="../compute-kind-widget-fallback-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <button id="button">button</button> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-end-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-block-end-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-block-end-style-001.html new file mode 100644 index 0000000..326ccec4 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-block-end-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-end-style disables native appearance for button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-end-style."> +<link rel="match" href="../compute-kind-widget-fallback-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <button id="button">button</button> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-end-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-block-end-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-block-end-width-001.html new file mode 100644 index 0000000..6d88e2a --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-block-end-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-end-width disables native appearance for button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-end-width."> +<link rel="match" href="../compute-kind-widget-fallback-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <button id="button">button</button> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-end-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-block-start-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-block-start-color-001.html new file mode 100644 index 0000000..30f3867 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-block-start-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-start-color disables native appearance for button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-start-color."> +<link rel="match" href="../compute-kind-widget-fallback-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <button id="button">button</button> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-start-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-block-start-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-block-start-style-001.html new file mode 100644 index 0000000..69f21ff --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-block-start-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-start-style disables native appearance for button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-start-style."> +<link rel="match" href="../compute-kind-widget-fallback-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <button id="button">button</button> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-start-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-block-start-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-block-start-width-001.html new file mode 100644 index 0000000..05b17053 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-block-start-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-start-width disables native appearance for button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-start-width."> +<link rel="match" href="../compute-kind-widget-fallback-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <button id="button">button</button> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-start-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-bottom-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-bottom-color-001.html new file mode 100644 index 0000000..d18b6a11 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-bottom-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-color disables native appearance for button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-color."> +<link rel="match" href="../compute-kind-widget-fallback-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <button id="button">button</button> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-bottom-left-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-bottom-left-radius-001.html new file mode 100644 index 0000000..1da373a7 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-bottom-left-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-left-radius disables native appearance for button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-left-radius."> +<link rel="match" href="../compute-kind-widget-fallback-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <button id="button">button</button> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-left-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-bottom-right-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-bottom-right-radius-001.html new file mode 100644 index 0000000..cd2ccf66 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-bottom-right-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-right-radius disables native appearance for button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-right-radius."> +<link rel="match" href="../compute-kind-widget-fallback-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <button id="button">button</button> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-right-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-bottom-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-bottom-style-001.html new file mode 100644 index 0000000..b7aad05 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-bottom-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-style disables native appearance for button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-style."> +<link rel="match" href="../compute-kind-widget-fallback-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <button id="button">button</button> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-bottom-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-bottom-width-001.html new file mode 100644 index 0000000..ecdf09a --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-bottom-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-width disables native appearance for button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-width."> +<link rel="match" href="../compute-kind-widget-fallback-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <button id="button">button</button> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-end-end-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-end-end-radius-001.html new file mode 100644 index 0000000..b7a43428 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-end-end-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-end-end-radius disables native appearance for button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-end-end-radius."> +<link rel="match" href="../compute-kind-widget-fallback-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <button id="button">button</button> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-end-end-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-end-start-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-end-start-radius-001.html new file mode 100644 index 0000000..3756b2a2 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-end-start-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-end-start-radius disables native appearance for button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-end-start-radius."> +<link rel="match" href="../compute-kind-widget-fallback-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <button id="button">button</button> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-end-start-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-image-outset-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-image-outset-001.html new file mode 100644 index 0000000..8ad7178 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-image-outset-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-outset disables native appearance for button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-outset."> +<link rel="match" href="../compute-kind-widget-fallback-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <button id="button">button</button> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-outset"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-image-repeat-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-image-repeat-001.html new file mode 100644 index 0000000..a212ee7e --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-image-repeat-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-repeat disables native appearance for button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-repeat."> +<link rel="match" href="../compute-kind-widget-fallback-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <button id="button">button</button> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-repeat"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-image-slice-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-image-slice-001.html new file mode 100644 index 0000000..d3f87eb --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-image-slice-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-slice disables native appearance for button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-slice."> +<link rel="match" href="../compute-kind-widget-fallback-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <button id="button">button</button> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-slice"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-image-source-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-image-source-001.html new file mode 100644 index 0000000..86ec41a --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-image-source-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-source disables native appearance for button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-source."> +<link rel="match" href="../compute-kind-widget-fallback-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <button id="button">button</button> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-source"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-image-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-image-width-001.html new file mode 100644 index 0000000..53df9ea --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-image-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-width disables native appearance for button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-width."> +<link rel="match" href="../compute-kind-widget-fallback-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <button id="button">button</button> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-inline-end-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-inline-end-color-001.html new file mode 100644 index 0000000..85079f5c --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-inline-end-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-end-color disables native appearance for button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-end-color."> +<link rel="match" href="../compute-kind-widget-fallback-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <button id="button">button</button> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-end-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-inline-end-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-inline-end-style-001.html new file mode 100644 index 0000000..ce94d07 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-inline-end-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-end-style disables native appearance for button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-end-style."> +<link rel="match" href="../compute-kind-widget-fallback-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <button id="button">button</button> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-end-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-inline-end-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-inline-end-width-001.html new file mode 100644 index 0000000..ea361ed --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-inline-end-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-end-width disables native appearance for button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-end-width."> +<link rel="match" href="../compute-kind-widget-fallback-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <button id="button">button</button> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-end-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-inline-start-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-inline-start-color-001.html new file mode 100644 index 0000000..7bbbbf9 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-inline-start-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-start-color disables native appearance for button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-start-color."> +<link rel="match" href="../compute-kind-widget-fallback-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <button id="button">button</button> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-start-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-inline-start-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-inline-start-style-001.html new file mode 100644 index 0000000..0ab244c --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-inline-start-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-start-style disables native appearance for button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-start-style."> +<link rel="match" href="../compute-kind-widget-fallback-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <button id="button">button</button> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-start-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-inline-start-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-inline-start-width-001.html new file mode 100644 index 0000000..a2fe2f5a --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-inline-start-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-start-width disables native appearance for button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-start-width."> +<link rel="match" href="../compute-kind-widget-fallback-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <button id="button">button</button> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-start-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-left-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-left-color-001.html new file mode 100644 index 0000000..ca8e684 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-left-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-left-color disables native appearance for button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-left-color."> +<link rel="match" href="../compute-kind-widget-fallback-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <button id="button">button</button> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-left-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-left-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-left-style-001.html new file mode 100644 index 0000000..e44cf3a --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-left-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-left-style disables native appearance for button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-left-style."> +<link rel="match" href="../compute-kind-widget-fallback-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <button id="button">button</button> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-left-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-left-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-left-width-001.html new file mode 100644 index 0000000..561c51de --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-left-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-left-width disables native appearance for button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-left-width."> +<link rel="match" href="../compute-kind-widget-fallback-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <button id="button">button</button> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-left-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-right-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-right-color-001.html new file mode 100644 index 0000000..1edc31d --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-right-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-right-color disables native appearance for button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-right-color."> +<link rel="match" href="../compute-kind-widget-fallback-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <button id="button">button</button> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-right-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-right-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-right-style-001.html new file mode 100644 index 0000000..79a59df --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-right-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-right-style disables native appearance for button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-right-style."> +<link rel="match" href="../compute-kind-widget-fallback-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <button id="button">button</button> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-right-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-right-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-right-width-001.html new file mode 100644 index 0000000..5125890 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-right-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-right-width disables native appearance for button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-right-width."> +<link rel="match" href="../compute-kind-widget-fallback-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <button id="button">button</button> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-right-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-start-end-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-start-end-radius-001.html new file mode 100644 index 0000000..39972ab6 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-start-end-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-start-end-radius disables native appearance for button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-start-end-radius."> +<link rel="match" href="../compute-kind-widget-fallback-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <button id="button">button</button> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-start-end-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-start-start-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-start-start-radius-001.html new file mode 100644 index 0000000..47e454e4 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-start-start-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-start-start-radius disables native appearance for button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-start-start-radius."> +<link rel="match" href="../compute-kind-widget-fallback-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <button id="button">button</button> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-start-start-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-top-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-top-color-001.html new file mode 100644 index 0000000..6a33137 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-top-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-color disables native appearance for button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-color."> +<link rel="match" href="../compute-kind-widget-fallback-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <button id="button">button</button> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-top-left-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-top-left-radius-001.html new file mode 100644 index 0000000..83d5437 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-top-left-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-left-radius disables native appearance for button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-left-radius."> +<link rel="match" href="../compute-kind-widget-fallback-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <button id="button">button</button> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-left-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-top-right-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-top-right-radius-001.html new file mode 100644 index 0000000..ad780169 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-top-right-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-right-radius disables native appearance for button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-right-radius."> +<link rel="match" href="../compute-kind-widget-fallback-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <button id="button">button</button> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-right-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-top-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-top-style-001.html new file mode 100644 index 0000000..41b55bd --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-top-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-style disables native appearance for button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-style."> +<link rel="match" href="../compute-kind-widget-fallback-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <button id="button">button</button> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-top-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-top-width-001.html new file mode 100644 index 0000000..ec22310 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-top-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-width disables native appearance for button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-width."> +<link rel="match" href="../compute-kind-widget-fallback-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <button id="button">button</button> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-background-attachment-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-background-attachment-001.html new file mode 100644 index 0000000..854146d --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-background-attachment-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-attachment disables native appearance for checkbox-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-attachment."> +<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="checkbox-input" type="checkbox"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-attachment"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-background-clip-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-background-clip-001.html new file mode 100644 index 0000000..c58d8453 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-background-clip-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-clip disables native appearance for checkbox-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-clip."> +<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="checkbox-input" type="checkbox"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-clip"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-background-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-background-color-001.html new file mode 100644 index 0000000..e1d5e737 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-background-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-color disables native appearance for checkbox-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-color."> +<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="checkbox-input" type="checkbox"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-background-image-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-background-image-001.html new file mode 100644 index 0000000..c37517e7 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-background-image-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-image disables native appearance for checkbox-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-image."> +<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="checkbox-input" type="checkbox"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-image"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-background-origin-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-background-origin-001.html new file mode 100644 index 0000000..8a7f950 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-background-origin-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-origin disables native appearance for checkbox-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-origin."> +<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="checkbox-input" type="checkbox"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-origin"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-background-position-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-background-position-001.html new file mode 100644 index 0000000..3edc278 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-background-position-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-position disables native appearance for checkbox-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-position."> +<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="checkbox-input" type="checkbox"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-position"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-background-size-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-background-size-001.html new file mode 100644 index 0000000..94816e45 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-background-size-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-size disables native appearance for checkbox-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-size."> +<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="checkbox-input" type="checkbox"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-size"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-block-end-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-block-end-color-001.html new file mode 100644 index 0000000..fe6e5c97 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-block-end-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-end-color disables native appearance for checkbox-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-end-color."> +<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="checkbox-input" type="checkbox"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-end-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-block-end-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-block-end-style-001.html new file mode 100644 index 0000000..489c662 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-block-end-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-end-style disables native appearance for checkbox-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-end-style."> +<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="checkbox-input" type="checkbox"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-end-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-block-end-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-block-end-width-001.html new file mode 100644 index 0000000..f257590b5 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-block-end-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-end-width disables native appearance for checkbox-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-end-width."> +<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="checkbox-input" type="checkbox"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-end-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-block-start-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-block-start-color-001.html new file mode 100644 index 0000000..d1b1c63 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-block-start-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-start-color disables native appearance for checkbox-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-start-color."> +<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="checkbox-input" type="checkbox"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-start-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-block-start-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-block-start-style-001.html new file mode 100644 index 0000000..6da6d53 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-block-start-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-start-style disables native appearance for checkbox-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-start-style."> +<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="checkbox-input" type="checkbox"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-start-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-block-start-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-block-start-width-001.html new file mode 100644 index 0000000..c18824f --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-block-start-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-start-width disables native appearance for checkbox-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-start-width."> +<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="checkbox-input" type="checkbox"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-start-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-bottom-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-bottom-color-001.html new file mode 100644 index 0000000..d8dde9fa --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-bottom-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-color disables native appearance for checkbox-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-color."> +<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="checkbox-input" type="checkbox"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-bottom-left-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-bottom-left-radius-001.html new file mode 100644 index 0000000..ea8b93a --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-bottom-left-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-left-radius disables native appearance for checkbox-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-left-radius."> +<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="checkbox-input" type="checkbox"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-left-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-bottom-right-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-bottom-right-radius-001.html new file mode 100644 index 0000000..47781560 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-bottom-right-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-right-radius disables native appearance for checkbox-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-right-radius."> +<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="checkbox-input" type="checkbox"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-right-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-bottom-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-bottom-style-001.html new file mode 100644 index 0000000..f4ccb3e --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-bottom-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-style disables native appearance for checkbox-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-style."> +<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="checkbox-input" type="checkbox"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-bottom-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-bottom-width-001.html new file mode 100644 index 0000000..dcc9e39 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-bottom-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-width disables native appearance for checkbox-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-width."> +<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="checkbox-input" type="checkbox"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-end-end-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-end-end-radius-001.html new file mode 100644 index 0000000..9f22001 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-end-end-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-end-end-radius disables native appearance for checkbox-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-end-end-radius."> +<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="checkbox-input" type="checkbox"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-end-end-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-end-start-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-end-start-radius-001.html new file mode 100644 index 0000000..453d687a --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-end-start-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-end-start-radius disables native appearance for checkbox-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-end-start-radius."> +<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="checkbox-input" type="checkbox"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-end-start-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-image-outset-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-image-outset-001.html new file mode 100644 index 0000000..1102fce --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-image-outset-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-outset disables native appearance for checkbox-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-outset."> +<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="checkbox-input" type="checkbox"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-outset"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-image-repeat-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-image-repeat-001.html new file mode 100644 index 0000000..7b82127 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-image-repeat-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-repeat disables native appearance for checkbox-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-repeat."> +<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="checkbox-input" type="checkbox"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-repeat"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-image-slice-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-image-slice-001.html new file mode 100644 index 0000000..d7694d67 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-image-slice-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-slice disables native appearance for checkbox-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-slice."> +<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="checkbox-input" type="checkbox"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-slice"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-image-source-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-image-source-001.html new file mode 100644 index 0000000..0e27462 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-image-source-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-source disables native appearance for checkbox-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-source."> +<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="checkbox-input" type="checkbox"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-source"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-image-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-image-width-001.html new file mode 100644 index 0000000..c485fea --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-image-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-width disables native appearance for checkbox-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-width."> +<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="checkbox-input" type="checkbox"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-inline-end-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-inline-end-color-001.html new file mode 100644 index 0000000..0220ac2 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-inline-end-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-end-color disables native appearance for checkbox-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-end-color."> +<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="checkbox-input" type="checkbox"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-end-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-inline-end-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-inline-end-style-001.html new file mode 100644 index 0000000..83f0ee6 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-inline-end-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-end-style disables native appearance for checkbox-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-end-style."> +<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="checkbox-input" type="checkbox"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-end-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-inline-end-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-inline-end-width-001.html new file mode 100644 index 0000000..aca8289 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-inline-end-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-end-width disables native appearance for checkbox-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-end-width."> +<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="checkbox-input" type="checkbox"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-end-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-inline-start-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-inline-start-color-001.html new file mode 100644 index 0000000..7c3ea0e3 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-inline-start-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-start-color disables native appearance for checkbox-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-start-color."> +<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="checkbox-input" type="checkbox"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-start-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-inline-start-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-inline-start-style-001.html new file mode 100644 index 0000000..329b717 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-inline-start-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-start-style disables native appearance for checkbox-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-start-style."> +<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="checkbox-input" type="checkbox"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-start-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-inline-start-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-inline-start-width-001.html new file mode 100644 index 0000000..9d5ca5f --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-inline-start-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-start-width disables native appearance for checkbox-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-start-width."> +<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="checkbox-input" type="checkbox"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-start-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-left-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-left-color-001.html new file mode 100644 index 0000000..00397b9 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-left-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-left-color disables native appearance for checkbox-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-left-color."> +<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="checkbox-input" type="checkbox"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-left-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-left-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-left-style-001.html new file mode 100644 index 0000000..415c45d --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-left-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-left-style disables native appearance for checkbox-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-left-style."> +<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="checkbox-input" type="checkbox"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-left-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-left-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-left-width-001.html new file mode 100644 index 0000000..0653e96 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-left-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-left-width disables native appearance for checkbox-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-left-width."> +<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="checkbox-input" type="checkbox"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-left-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-right-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-right-color-001.html new file mode 100644 index 0000000..f17035b --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-right-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-right-color disables native appearance for checkbox-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-right-color."> +<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="checkbox-input" type="checkbox"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-right-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-right-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-right-style-001.html new file mode 100644 index 0000000..fd96b80b --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-right-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-right-style disables native appearance for checkbox-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-right-style."> +<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="checkbox-input" type="checkbox"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-right-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-right-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-right-width-001.html new file mode 100644 index 0000000..9eb0bfd --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-right-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-right-width disables native appearance for checkbox-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-right-width."> +<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="checkbox-input" type="checkbox"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-right-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-start-end-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-start-end-radius-001.html new file mode 100644 index 0000000..c6f7b9c7 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-start-end-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-start-end-radius disables native appearance for checkbox-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-start-end-radius."> +<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="checkbox-input" type="checkbox"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-start-end-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-start-start-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-start-start-radius-001.html new file mode 100644 index 0000000..c3473dff --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-start-start-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-start-start-radius disables native appearance for checkbox-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-start-start-radius."> +<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="checkbox-input" type="checkbox"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-start-start-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-top-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-top-color-001.html new file mode 100644 index 0000000..40671ee0 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-top-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-color disables native appearance for checkbox-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-color."> +<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="checkbox-input" type="checkbox"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-top-left-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-top-left-radius-001.html new file mode 100644 index 0000000..bf8cb71 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-top-left-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-left-radius disables native appearance for checkbox-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-left-radius."> +<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="checkbox-input" type="checkbox"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-left-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-top-right-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-top-right-radius-001.html new file mode 100644 index 0000000..bbaed9a3 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-top-right-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-right-radius disables native appearance for checkbox-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-right-radius."> +<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="checkbox-input" type="checkbox"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-right-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-top-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-top-style-001.html new file mode 100644 index 0000000..bb9b393 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-top-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-style disables native appearance for checkbox-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-style."> +<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="checkbox-input" type="checkbox"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-top-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-top-width-001.html new file mode 100644 index 0000000..3260a9b --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-top-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-width disables native appearance for checkbox-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-width."> +<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="checkbox-input" type="checkbox"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-background-attachment-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-background-attachment-001.html new file mode 100644 index 0000000..a62ebcb --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-background-attachment-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-attachment disables native appearance for color-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-attachment."> +<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="color-input" type="color"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-attachment"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-background-clip-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-background-clip-001.html new file mode 100644 index 0000000..0da878e --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-background-clip-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-clip disables native appearance for color-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-clip."> +<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="color-input" type="color"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-clip"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-background-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-background-color-001.html new file mode 100644 index 0000000..3adca197 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-background-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-color disables native appearance for color-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-color."> +<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="color-input" type="color"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-background-image-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-background-image-001.html new file mode 100644 index 0000000..79d16f7 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-background-image-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-image disables native appearance for color-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-image."> +<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="color-input" type="color"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-image"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-background-origin-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-background-origin-001.html new file mode 100644 index 0000000..30be831c --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-background-origin-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-origin disables native appearance for color-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-origin."> +<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="color-input" type="color"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-origin"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-background-position-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-background-position-001.html new file mode 100644 index 0000000..a72860779 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-background-position-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-position disables native appearance for color-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-position."> +<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="color-input" type="color"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-position"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-background-size-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-background-size-001.html new file mode 100644 index 0000000..68f34df --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-background-size-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-size disables native appearance for color-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-size."> +<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="color-input" type="color"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-size"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-block-end-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-block-end-color-001.html new file mode 100644 index 0000000..7ab8c50 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-block-end-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-end-color disables native appearance for color-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-end-color."> +<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="color-input" type="color"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-end-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-block-end-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-block-end-style-001.html new file mode 100644 index 0000000..5fef1705 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-block-end-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-end-style disables native appearance for color-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-end-style."> +<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="color-input" type="color"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-end-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-block-end-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-block-end-width-001.html new file mode 100644 index 0000000..de753d9 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-block-end-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-end-width disables native appearance for color-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-end-width."> +<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="color-input" type="color"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-end-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-block-start-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-block-start-color-001.html new file mode 100644 index 0000000..639e536 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-block-start-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-start-color disables native appearance for color-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-start-color."> +<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="color-input" type="color"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-start-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-block-start-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-block-start-style-001.html new file mode 100644 index 0000000..66138c5 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-block-start-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-start-style disables native appearance for color-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-start-style."> +<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="color-input" type="color"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-start-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-block-start-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-block-start-width-001.html new file mode 100644 index 0000000..7e338d3 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-block-start-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-start-width disables native appearance for color-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-start-width."> +<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="color-input" type="color"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-start-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-bottom-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-bottom-color-001.html new file mode 100644 index 0000000..33e55cc --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-bottom-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-color disables native appearance for color-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-color."> +<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="color-input" type="color"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-bottom-left-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-bottom-left-radius-001.html new file mode 100644 index 0000000..70eec00 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-bottom-left-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-left-radius disables native appearance for color-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-left-radius."> +<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="color-input" type="color"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-left-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-bottom-right-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-bottom-right-radius-001.html new file mode 100644 index 0000000..196edd3 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-bottom-right-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-right-radius disables native appearance for color-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-right-radius."> +<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="color-input" type="color"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-right-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-bottom-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-bottom-style-001.html new file mode 100644 index 0000000..483a200 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-bottom-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-style disables native appearance for color-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-style."> +<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="color-input" type="color"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-bottom-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-bottom-width-001.html new file mode 100644 index 0000000..0f6a26e5 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-bottom-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-width disables native appearance for color-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-width."> +<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="color-input" type="color"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-end-end-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-end-end-radius-001.html new file mode 100644 index 0000000..877568e --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-end-end-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-end-end-radius disables native appearance for color-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-end-end-radius."> +<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="color-input" type="color"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-end-end-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-end-start-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-end-start-radius-001.html new file mode 100644 index 0000000..3b553d1 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-end-start-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-end-start-radius disables native appearance for color-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-end-start-radius."> +<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="color-input" type="color"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-end-start-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-image-outset-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-image-outset-001.html new file mode 100644 index 0000000..9aca0eb --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-image-outset-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-outset disables native appearance for color-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-outset."> +<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="color-input" type="color"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-outset"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-image-repeat-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-image-repeat-001.html new file mode 100644 index 0000000..2195aa4 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-image-repeat-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-repeat disables native appearance for color-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-repeat."> +<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="color-input" type="color"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-repeat"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-image-slice-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-image-slice-001.html new file mode 100644 index 0000000..b2d5a707 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-image-slice-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-slice disables native appearance for color-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-slice."> +<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="color-input" type="color"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-slice"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-image-source-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-image-source-001.html new file mode 100644 index 0000000..5a4f6f5 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-image-source-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-source disables native appearance for color-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-source."> +<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="color-input" type="color"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-source"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-image-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-image-width-001.html new file mode 100644 index 0000000..394163c --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-image-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-width disables native appearance for color-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-width."> +<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="color-input" type="color"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-inline-end-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-inline-end-color-001.html new file mode 100644 index 0000000..c8beca6 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-inline-end-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-end-color disables native appearance for color-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-end-color."> +<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="color-input" type="color"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-end-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-inline-end-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-inline-end-style-001.html new file mode 100644 index 0000000..2cca230 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-inline-end-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-end-style disables native appearance for color-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-end-style."> +<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="color-input" type="color"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-end-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-inline-end-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-inline-end-width-001.html new file mode 100644 index 0000000..1e78d303 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-inline-end-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-end-width disables native appearance for color-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-end-width."> +<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="color-input" type="color"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-end-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-inline-start-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-inline-start-color-001.html new file mode 100644 index 0000000..dc78893 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-inline-start-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-start-color disables native appearance for color-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-start-color."> +<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="color-input" type="color"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-start-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-inline-start-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-inline-start-style-001.html new file mode 100644 index 0000000..69fc22e --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-inline-start-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-start-style disables native appearance for color-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-start-style."> +<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="color-input" type="color"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-start-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-inline-start-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-inline-start-width-001.html new file mode 100644 index 0000000..e726ac4 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-inline-start-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-start-width disables native appearance for color-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-start-width."> +<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="color-input" type="color"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-start-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-left-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-left-color-001.html new file mode 100644 index 0000000..06123f7 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-left-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-left-color disables native appearance for color-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-left-color."> +<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="color-input" type="color"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-left-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-left-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-left-style-001.html new file mode 100644 index 0000000..8a467f2 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-left-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-left-style disables native appearance for color-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-left-style."> +<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="color-input" type="color"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-left-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-left-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-left-width-001.html new file mode 100644 index 0000000..1631967 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-left-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-left-width disables native appearance for color-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-left-width."> +<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="color-input" type="color"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-left-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-right-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-right-color-001.html new file mode 100644 index 0000000..3f80a299 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-right-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-right-color disables native appearance for color-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-right-color."> +<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="color-input" type="color"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-right-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-right-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-right-style-001.html new file mode 100644 index 0000000..47b974b --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-right-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-right-style disables native appearance for color-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-right-style."> +<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="color-input" type="color"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-right-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-right-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-right-width-001.html new file mode 100644 index 0000000..7a640d2 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-right-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-right-width disables native appearance for color-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-right-width."> +<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="color-input" type="color"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-right-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-start-end-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-start-end-radius-001.html new file mode 100644 index 0000000..836685b --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-start-end-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-start-end-radius disables native appearance for color-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-start-end-radius."> +<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="color-input" type="color"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-start-end-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-start-start-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-start-start-radius-001.html new file mode 100644 index 0000000..1b8d113 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-start-start-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-start-start-radius disables native appearance for color-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-start-start-radius."> +<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="color-input" type="color"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-start-start-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-top-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-top-color-001.html new file mode 100644 index 0000000..3ca939ab --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-top-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-color disables native appearance for color-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-color."> +<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="color-input" type="color"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-top-left-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-top-left-radius-001.html new file mode 100644 index 0000000..6e789f0 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-top-left-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-left-radius disables native appearance for color-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-left-radius."> +<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="color-input" type="color"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-left-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-top-right-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-top-right-radius-001.html new file mode 100644 index 0000000..7f4b919 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-top-right-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-right-radius disables native appearance for color-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-right-radius."> +<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="color-input" type="color"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-right-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-top-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-top-style-001.html new file mode 100644 index 0000000..840f69af --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-top-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-style disables native appearance for color-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-style."> +<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="color-input" type="color"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-top-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-top-width-001.html new file mode 100644 index 0000000..886996b --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-top-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-width disables native appearance for color-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-width."> +<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="color-input" type="color"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-background-attachment-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-background-attachment-001.html new file mode 100644 index 0000000..7b112f08 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-background-attachment-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-attachment disables native appearance for input-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-attachment."> +<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="button-input" type="button" value="input-button"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-attachment"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-background-clip-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-background-clip-001.html new file mode 100644 index 0000000..53f79ab --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-background-clip-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-clip disables native appearance for input-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-clip."> +<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="button-input" type="button" value="input-button"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-clip"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-background-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-background-color-001.html new file mode 100644 index 0000000..2209bae --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-background-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-color disables native appearance for input-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-color."> +<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="button-input" type="button" value="input-button"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-background-image-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-background-image-001.html new file mode 100644 index 0000000..e385afe --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-background-image-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-image disables native appearance for input-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-image."> +<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="button-input" type="button" value="input-button"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-image"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-background-origin-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-background-origin-001.html new file mode 100644 index 0000000..9d33867 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-background-origin-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-origin disables native appearance for input-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-origin."> +<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="button-input" type="button" value="input-button"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-origin"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-background-position-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-background-position-001.html new file mode 100644 index 0000000..6d70a3f5 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-background-position-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-position disables native appearance for input-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-position."> +<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="button-input" type="button" value="input-button"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-position"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-background-size-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-background-size-001.html new file mode 100644 index 0000000..fabd5b3 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-background-size-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-size disables native appearance for input-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-size."> +<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="button-input" type="button" value="input-button"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-size"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-block-end-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-block-end-color-001.html new file mode 100644 index 0000000..16b0751 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-block-end-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-end-color disables native appearance for input-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-end-color."> +<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="button-input" type="button" value="input-button"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-end-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-block-end-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-block-end-style-001.html new file mode 100644 index 0000000..c594156 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-block-end-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-end-style disables native appearance for input-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-end-style."> +<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="button-input" type="button" value="input-button"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-end-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-block-end-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-block-end-width-001.html new file mode 100644 index 0000000..c189260 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-block-end-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-end-width disables native appearance for input-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-end-width."> +<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="button-input" type="button" value="input-button"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-end-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-block-start-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-block-start-color-001.html new file mode 100644 index 0000000..f04c372 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-block-start-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-start-color disables native appearance for input-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-start-color."> +<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="button-input" type="button" value="input-button"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-start-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-block-start-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-block-start-style-001.html new file mode 100644 index 0000000..41ba3b7 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-block-start-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-start-style disables native appearance for input-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-start-style."> +<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="button-input" type="button" value="input-button"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-start-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-block-start-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-block-start-width-001.html new file mode 100644 index 0000000..9738cd8 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-block-start-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-start-width disables native appearance for input-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-start-width."> +<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="button-input" type="button" value="input-button"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-start-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-bottom-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-bottom-color-001.html new file mode 100644 index 0000000..f8d784ae --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-bottom-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-color disables native appearance for input-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-color."> +<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="button-input" type="button" value="input-button"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-bottom-left-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-bottom-left-radius-001.html new file mode 100644 index 0000000..cac8afe --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-bottom-left-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-left-radius disables native appearance for input-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-left-radius."> +<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="button-input" type="button" value="input-button"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-left-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-bottom-right-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-bottom-right-radius-001.html new file mode 100644 index 0000000..3f64f284 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-bottom-right-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-right-radius disables native appearance for input-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-right-radius."> +<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="button-input" type="button" value="input-button"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-right-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-bottom-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-bottom-style-001.html new file mode 100644 index 0000000..1d45f05 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-bottom-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-style disables native appearance for input-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-style."> +<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="button-input" type="button" value="input-button"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-bottom-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-bottom-width-001.html new file mode 100644 index 0000000..04065781 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-bottom-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-width disables native appearance for input-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-width."> +<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="button-input" type="button" value="input-button"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-end-end-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-end-end-radius-001.html new file mode 100644 index 0000000..8ce8dc3 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-end-end-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-end-end-radius disables native appearance for input-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-end-end-radius."> +<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="button-input" type="button" value="input-button"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-end-end-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-end-start-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-end-start-radius-001.html new file mode 100644 index 0000000..8f1acf3 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-end-start-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-end-start-radius disables native appearance for input-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-end-start-radius."> +<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="button-input" type="button" value="input-button"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-end-start-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-image-outset-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-image-outset-001.html new file mode 100644 index 0000000..7bef870 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-image-outset-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-outset disables native appearance for input-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-outset."> +<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="button-input" type="button" value="input-button"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-outset"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-image-repeat-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-image-repeat-001.html new file mode 100644 index 0000000..fc3ebd45 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-image-repeat-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-repeat disables native appearance for input-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-repeat."> +<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="button-input" type="button" value="input-button"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-repeat"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-image-slice-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-image-slice-001.html new file mode 100644 index 0000000..b6c908f --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-image-slice-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-slice disables native appearance for input-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-slice."> +<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="button-input" type="button" value="input-button"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-slice"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-image-source-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-image-source-001.html new file mode 100644 index 0000000..44a4fba --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-image-source-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-source disables native appearance for input-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-source."> +<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="button-input" type="button" value="input-button"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-source"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-image-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-image-width-001.html new file mode 100644 index 0000000..39d0185 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-image-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-width disables native appearance for input-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-width."> +<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="button-input" type="button" value="input-button"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-inline-end-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-inline-end-color-001.html new file mode 100644 index 0000000..313eab3 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-inline-end-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-end-color disables native appearance for input-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-end-color."> +<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="button-input" type="button" value="input-button"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-end-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-inline-end-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-inline-end-style-001.html new file mode 100644 index 0000000..ce6cb72 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-inline-end-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-end-style disables native appearance for input-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-end-style."> +<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="button-input" type="button" value="input-button"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-end-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-inline-end-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-inline-end-width-001.html new file mode 100644 index 0000000..31e4906 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-inline-end-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-end-width disables native appearance for input-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-end-width."> +<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="button-input" type="button" value="input-button"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-end-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-inline-start-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-inline-start-color-001.html new file mode 100644 index 0000000..60f8eeb --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-inline-start-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-start-color disables native appearance for input-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-start-color."> +<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="button-input" type="button" value="input-button"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-start-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-inline-start-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-inline-start-style-001.html new file mode 100644 index 0000000..927f069 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-inline-start-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-start-style disables native appearance for input-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-start-style."> +<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="button-input" type="button" value="input-button"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-start-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-inline-start-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-inline-start-width-001.html new file mode 100644 index 0000000..ebb88b6 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-inline-start-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-start-width disables native appearance for input-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-start-width."> +<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="button-input" type="button" value="input-button"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-start-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-left-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-left-color-001.html new file mode 100644 index 0000000..eaeeddc8 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-left-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-left-color disables native appearance for input-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-left-color."> +<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="button-input" type="button" value="input-button"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-left-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-left-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-left-style-001.html new file mode 100644 index 0000000..171638f6 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-left-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-left-style disables native appearance for input-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-left-style."> +<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="button-input" type="button" value="input-button"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-left-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-left-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-left-width-001.html new file mode 100644 index 0000000..07b4ba5 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-left-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-left-width disables native appearance for input-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-left-width."> +<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="button-input" type="button" value="input-button"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-left-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-right-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-right-color-001.html new file mode 100644 index 0000000..ee08a59 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-right-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-right-color disables native appearance for input-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-right-color."> +<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="button-input" type="button" value="input-button"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-right-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-right-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-right-style-001.html new file mode 100644 index 0000000..622da69 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-right-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-right-style disables native appearance for input-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-right-style."> +<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="button-input" type="button" value="input-button"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-right-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-right-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-right-width-001.html new file mode 100644 index 0000000..cb0368d --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-right-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-right-width disables native appearance for input-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-right-width."> +<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="button-input" type="button" value="input-button"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-right-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-start-end-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-start-end-radius-001.html new file mode 100644 index 0000000..ae98634e --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-start-end-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-start-end-radius disables native appearance for input-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-start-end-radius."> +<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="button-input" type="button" value="input-button"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-start-end-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-start-start-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-start-start-radius-001.html new file mode 100644 index 0000000..45f7debe9 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-start-start-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-start-start-radius disables native appearance for input-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-start-start-radius."> +<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="button-input" type="button" value="input-button"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-start-start-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-top-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-top-color-001.html new file mode 100644 index 0000000..985b3d5 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-top-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-color disables native appearance for input-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-color."> +<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="button-input" type="button" value="input-button"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-top-left-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-top-left-radius-001.html new file mode 100644 index 0000000..5b56366 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-top-left-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-left-radius disables native appearance for input-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-left-radius."> +<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="button-input" type="button" value="input-button"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-left-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-top-right-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-top-right-radius-001.html new file mode 100644 index 0000000..f0b7989 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-top-right-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-right-radius disables native appearance for input-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-right-radius."> +<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="button-input" type="button" value="input-button"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-right-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-top-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-top-style-001.html new file mode 100644 index 0000000..b58218e3 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-top-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-style disables native appearance for input-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-style."> +<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="button-input" type="button" value="input-button"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-top-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-top-width-001.html new file mode 100644 index 0000000..e20e258e --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-top-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-width disables native appearance for input-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-width."> +<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="button-input" type="button" value="input-button"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-background-attachment-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-background-attachment-001.html new file mode 100644 index 0000000..a7845bc --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-background-attachment-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-attachment disables native appearance for input-reset</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-attachment."> +<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="reset-input" type="reset" value="input-reset"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-attachment"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-background-clip-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-background-clip-001.html new file mode 100644 index 0000000..5bb8e7d5 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-background-clip-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-clip disables native appearance for input-reset</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-clip."> +<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="reset-input" type="reset" value="input-reset"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-clip"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-background-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-background-color-001.html new file mode 100644 index 0000000..1780d56a --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-background-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-color disables native appearance for input-reset</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-color."> +<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="reset-input" type="reset" value="input-reset"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-background-image-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-background-image-001.html new file mode 100644 index 0000000..07527ae --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-background-image-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-image disables native appearance for input-reset</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-image."> +<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="reset-input" type="reset" value="input-reset"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-image"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-background-origin-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-background-origin-001.html new file mode 100644 index 0000000..4e5b6c6 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-background-origin-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-origin disables native appearance for input-reset</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-origin."> +<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="reset-input" type="reset" value="input-reset"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-origin"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-background-position-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-background-position-001.html new file mode 100644 index 0000000..199e646 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-background-position-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-position disables native appearance for input-reset</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-position."> +<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="reset-input" type="reset" value="input-reset"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-position"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-background-size-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-background-size-001.html new file mode 100644 index 0000000..82d54e0 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-background-size-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-size disables native appearance for input-reset</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-size."> +<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="reset-input" type="reset" value="input-reset"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-size"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-block-end-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-block-end-color-001.html new file mode 100644 index 0000000..41038d2 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-block-end-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-end-color disables native appearance for input-reset</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-end-color."> +<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="reset-input" type="reset" value="input-reset"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-end-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-block-end-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-block-end-style-001.html new file mode 100644 index 0000000..9c326f1 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-block-end-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-end-style disables native appearance for input-reset</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-end-style."> +<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="reset-input" type="reset" value="input-reset"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-end-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-block-end-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-block-end-width-001.html new file mode 100644 index 0000000..3f2611f --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-block-end-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-end-width disables native appearance for input-reset</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-end-width."> +<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="reset-input" type="reset" value="input-reset"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-end-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-block-start-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-block-start-color-001.html new file mode 100644 index 0000000..a3252e3 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-block-start-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-start-color disables native appearance for input-reset</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-start-color."> +<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="reset-input" type="reset" value="input-reset"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-start-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-block-start-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-block-start-style-001.html new file mode 100644 index 0000000..6f73781 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-block-start-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-start-style disables native appearance for input-reset</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-start-style."> +<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="reset-input" type="reset" value="input-reset"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-start-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-block-start-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-block-start-width-001.html new file mode 100644 index 0000000..1a671be --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-block-start-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-start-width disables native appearance for input-reset</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-start-width."> +<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="reset-input" type="reset" value="input-reset"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-start-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-bottom-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-bottom-color-001.html new file mode 100644 index 0000000..5ac0db7 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-bottom-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-color disables native appearance for input-reset</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-color."> +<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="reset-input" type="reset" value="input-reset"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-bottom-left-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-bottom-left-radius-001.html new file mode 100644 index 0000000..df3608a --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-bottom-left-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-left-radius disables native appearance for input-reset</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-left-radius."> +<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="reset-input" type="reset" value="input-reset"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-left-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-bottom-right-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-bottom-right-radius-001.html new file mode 100644 index 0000000..3cc9593 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-bottom-right-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-right-radius disables native appearance for input-reset</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-right-radius."> +<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="reset-input" type="reset" value="input-reset"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-right-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-bottom-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-bottom-style-001.html new file mode 100644 index 0000000..b146476 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-bottom-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-style disables native appearance for input-reset</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-style."> +<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="reset-input" type="reset" value="input-reset"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-bottom-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-bottom-width-001.html new file mode 100644 index 0000000..00dfbddb --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-bottom-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-width disables native appearance for input-reset</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-width."> +<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="reset-input" type="reset" value="input-reset"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-end-end-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-end-end-radius-001.html new file mode 100644 index 0000000..34eaf07f --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-end-end-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-end-end-radius disables native appearance for input-reset</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-end-end-radius."> +<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="reset-input" type="reset" value="input-reset"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-end-end-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-end-start-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-end-start-radius-001.html new file mode 100644 index 0000000..42aa29c --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-end-start-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-end-start-radius disables native appearance for input-reset</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-end-start-radius."> +<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="reset-input" type="reset" value="input-reset"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-end-start-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-image-outset-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-image-outset-001.html new file mode 100644 index 0000000..368bb3a --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-image-outset-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-outset disables native appearance for input-reset</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-outset."> +<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="reset-input" type="reset" value="input-reset"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-outset"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-image-repeat-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-image-repeat-001.html new file mode 100644 index 0000000..5f0ba37f --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-image-repeat-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-repeat disables native appearance for input-reset</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-repeat."> +<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="reset-input" type="reset" value="input-reset"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-repeat"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-image-slice-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-image-slice-001.html new file mode 100644 index 0000000..c611ad59 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-image-slice-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-slice disables native appearance for input-reset</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-slice."> +<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="reset-input" type="reset" value="input-reset"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-slice"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-image-source-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-image-source-001.html new file mode 100644 index 0000000..f84fcfc --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-image-source-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-source disables native appearance for input-reset</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-source."> +<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="reset-input" type="reset" value="input-reset"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-source"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-image-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-image-width-001.html new file mode 100644 index 0000000..19365177 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-image-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-width disables native appearance for input-reset</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-width."> +<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="reset-input" type="reset" value="input-reset"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-inline-end-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-inline-end-color-001.html new file mode 100644 index 0000000..db6e2d6 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-inline-end-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-end-color disables native appearance for input-reset</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-end-color."> +<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="reset-input" type="reset" value="input-reset"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-end-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-inline-end-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-inline-end-style-001.html new file mode 100644 index 0000000..1350244 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-inline-end-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-end-style disables native appearance for input-reset</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-end-style."> +<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="reset-input" type="reset" value="input-reset"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-end-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-inline-end-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-inline-end-width-001.html new file mode 100644 index 0000000..25121c8 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-inline-end-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-end-width disables native appearance for input-reset</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-end-width."> +<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="reset-input" type="reset" value="input-reset"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-end-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-inline-start-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-inline-start-color-001.html new file mode 100644 index 0000000..f01b339 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-inline-start-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-start-color disables native appearance for input-reset</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-start-color."> +<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="reset-input" type="reset" value="input-reset"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-start-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-inline-start-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-inline-start-style-001.html new file mode 100644 index 0000000..3ac0e47 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-inline-start-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-start-style disables native appearance for input-reset</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-start-style."> +<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="reset-input" type="reset" value="input-reset"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-start-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-inline-start-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-inline-start-width-001.html new file mode 100644 index 0000000..7e0c23ad --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-inline-start-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-start-width disables native appearance for input-reset</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-start-width."> +<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="reset-input" type="reset" value="input-reset"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-start-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-left-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-left-color-001.html new file mode 100644 index 0000000..6309f000 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-left-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-left-color disables native appearance for input-reset</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-left-color."> +<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="reset-input" type="reset" value="input-reset"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-left-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-left-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-left-style-001.html new file mode 100644 index 0000000..c502e833 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-left-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-left-style disables native appearance for input-reset</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-left-style."> +<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="reset-input" type="reset" value="input-reset"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-left-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-left-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-left-width-001.html new file mode 100644 index 0000000..7c8e95d --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-left-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-left-width disables native appearance for input-reset</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-left-width."> +<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="reset-input" type="reset" value="input-reset"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-left-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-right-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-right-color-001.html new file mode 100644 index 0000000..2bbbcf3 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-right-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-right-color disables native appearance for input-reset</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-right-color."> +<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="reset-input" type="reset" value="input-reset"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-right-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-right-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-right-style-001.html new file mode 100644 index 0000000..4b1ea45 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-right-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-right-style disables native appearance for input-reset</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-right-style."> +<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="reset-input" type="reset" value="input-reset"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-right-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-right-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-right-width-001.html new file mode 100644 index 0000000..02b93b0 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-right-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-right-width disables native appearance for input-reset</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-right-width."> +<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="reset-input" type="reset" value="input-reset"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-right-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-start-end-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-start-end-radius-001.html new file mode 100644 index 0000000..4beeb88 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-start-end-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-start-end-radius disables native appearance for input-reset</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-start-end-radius."> +<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="reset-input" type="reset" value="input-reset"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-start-end-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-start-start-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-start-start-radius-001.html new file mode 100644 index 0000000..019b6a5 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-start-start-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-start-start-radius disables native appearance for input-reset</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-start-start-radius."> +<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="reset-input" type="reset" value="input-reset"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-start-start-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-top-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-top-color-001.html new file mode 100644 index 0000000..6facf31 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-top-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-color disables native appearance for input-reset</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-color."> +<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="reset-input" type="reset" value="input-reset"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-top-left-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-top-left-radius-001.html new file mode 100644 index 0000000..2ba3e03 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-top-left-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-left-radius disables native appearance for input-reset</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-left-radius."> +<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="reset-input" type="reset" value="input-reset"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-left-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-top-right-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-top-right-radius-001.html new file mode 100644 index 0000000..d15f2341 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-top-right-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-right-radius disables native appearance for input-reset</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-right-radius."> +<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="reset-input" type="reset" value="input-reset"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-right-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-top-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-top-style-001.html new file mode 100644 index 0000000..d5bebef7 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-top-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-style disables native appearance for input-reset</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-style."> +<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="reset-input" type="reset" value="input-reset"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-top-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-top-width-001.html new file mode 100644 index 0000000..e705cd4 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-top-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-width disables native appearance for input-reset</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-width."> +<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="reset-input" type="reset" value="input-reset"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-background-attachment-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-background-attachment-001.html new file mode 100644 index 0000000..cd69159e --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-background-attachment-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-attachment disables native appearance for input-search</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-attachment."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-input" type="search" value="input-search"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-attachment"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-background-clip-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-background-clip-001.html new file mode 100644 index 0000000..1343ebc --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-background-clip-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-clip disables native appearance for input-search</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-clip."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-input" type="search" value="input-search"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-clip"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-background-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-background-color-001.html new file mode 100644 index 0000000..882ca79 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-background-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-color disables native appearance for input-search</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-color."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-input" type="search" value="input-search"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-background-image-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-background-image-001.html new file mode 100644 index 0000000..769cf45 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-background-image-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-image disables native appearance for input-search</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-image."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-input" type="search" value="input-search"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-image"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
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 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 new file mode 100644 index 0000000..035cfdf2 --- /dev/null +++ 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
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-origin disables native appearance for input-search</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-origin."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-input" type="search" value="input-search"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-origin"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-background-position-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-background-position-001.html new file mode 100644 index 0000000..5267fd2 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-background-position-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-position disables native appearance for input-search</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-position."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-input" type="search" value="input-search"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-position"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-background-size-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-background-size-001.html new file mode 100644 index 0000000..73aca99 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-background-size-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-size disables native appearance for input-search</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-size."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-input" type="search" value="input-search"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-size"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
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-end-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-block-end-color-001.html new file mode 100644 index 0000000..9d954d5 --- /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-end-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-end-color disables native appearance for input-search</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-end-color."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-input" type="search" value="input-search"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-end-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
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-end-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-block-end-style-001.html new file mode 100644 index 0000000..81761e46 --- /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-end-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-end-style disables native appearance for input-search</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-end-style."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-input" type="search" value="input-search"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-end-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
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-end-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-block-end-width-001.html new file mode 100644 index 0000000..e6b37c9 --- /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-end-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-end-width disables native appearance for input-search</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-end-width."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-input" type="search" value="input-search"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-end-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
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-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-block-start-color-001.html new file mode 100644 index 0000000..7bed3fc --- /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-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-start-color disables native appearance for input-search</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-start-color."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-input" type="search" value="input-search"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-start-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
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 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 new file mode 100644 index 0000000..854d6fb --- /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
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-start-style disables native appearance for input-search</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-start-style."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-input" type="search" value="input-search"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-start-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
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-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-block-start-width-001.html new file mode 100644 index 0000000..9ad91b7 --- /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-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-start-width disables native appearance for input-search</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-start-width."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-input" type="search" value="input-search"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-start-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-bottom-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-bottom-color-001.html new file mode 100644 index 0000000..093c18c --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-bottom-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-color disables native appearance for input-search</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-color."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-input" type="search" value="input-search"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-bottom-left-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-bottom-left-radius-001.html new file mode 100644 index 0000000..a33640e --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-bottom-left-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-left-radius disables native appearance for input-search</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-left-radius."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-input" type="search" value="input-search"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-left-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-bottom-right-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-bottom-right-radius-001.html new file mode 100644 index 0000000..21ec7d1 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-bottom-right-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-right-radius disables native appearance for input-search</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-right-radius."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-input" type="search" value="input-search"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-right-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-bottom-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-bottom-style-001.html new file mode 100644 index 0000000..26b31f9 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-bottom-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-style disables native appearance for input-search</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-style."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-input" type="search" value="input-search"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-bottom-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-bottom-width-001.html new file mode 100644 index 0000000..677a04e --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-bottom-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-width disables native appearance for input-search</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-width."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-input" type="search" value="input-search"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-end-end-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-end-end-radius-001.html new file mode 100644 index 0000000..426b754 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-end-end-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-end-end-radius disables native appearance for input-search</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-end-end-radius."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-input" type="search" value="input-search"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-end-end-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-end-start-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-end-start-radius-001.html new file mode 100644 index 0000000..58f7487 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-end-start-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-end-start-radius disables native appearance for input-search</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-end-start-radius."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-input" type="search" value="input-search"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-end-start-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-image-outset-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-image-outset-001.html new file mode 100644 index 0000000..fe1d1f0 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-image-outset-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-outset disables native appearance for input-search</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-outset."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-input" type="search" value="input-search"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-outset"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-image-repeat-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-image-repeat-001.html new file mode 100644 index 0000000..611aaad --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-image-repeat-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-repeat disables native appearance for input-search</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-repeat."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-input" type="search" value="input-search"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-repeat"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-image-slice-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-image-slice-001.html new file mode 100644 index 0000000..fbd35bee --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-image-slice-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-slice disables native appearance for input-search</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-slice."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-input" type="search" value="input-search"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-slice"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-image-source-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-image-source-001.html new file mode 100644 index 0000000..73b90e2 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-image-source-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-source disables native appearance for input-search</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-source."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-input" type="search" value="input-search"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-source"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-image-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-image-width-001.html new file mode 100644 index 0000000..53be3f24 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-image-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-width disables native appearance for input-search</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-width."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-input" type="search" value="input-search"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-inline-end-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-inline-end-color-001.html new file mode 100644 index 0000000..5cef20ff8 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-inline-end-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-end-color disables native appearance for input-search</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-end-color."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-input" type="search" value="input-search"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-end-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-inline-end-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-inline-end-style-001.html new file mode 100644 index 0000000..01c62b5 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-inline-end-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-end-style disables native appearance for input-search</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-end-style."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-input" type="search" value="input-search"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-end-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-inline-end-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-inline-end-width-001.html new file mode 100644 index 0000000..279ea4b --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-inline-end-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-end-width disables native appearance for input-search</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-end-width."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-input" type="search" value="input-search"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-end-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-inline-start-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-inline-start-color-001.html new file mode 100644 index 0000000..b4e93e5 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-inline-start-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-start-color disables native appearance for input-search</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-start-color."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-input" type="search" value="input-search"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-start-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-inline-start-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-inline-start-style-001.html new file mode 100644 index 0000000..279a809 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-inline-start-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-start-style disables native appearance for input-search</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-start-style."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-input" type="search" value="input-search"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-start-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-inline-start-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-inline-start-width-001.html new file mode 100644 index 0000000..99694bc --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-inline-start-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-start-width disables native appearance for input-search</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-start-width."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-input" type="search" value="input-search"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-start-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-left-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-left-color-001.html new file mode 100644 index 0000000..608d5d2 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-left-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-left-color disables native appearance for input-search</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-left-color."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-input" type="search" value="input-search"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-left-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-left-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-left-style-001.html new file mode 100644 index 0000000..af85417 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-left-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-left-style disables native appearance for input-search</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-left-style."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-input" type="search" value="input-search"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-left-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-left-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-left-width-001.html new file mode 100644 index 0000000..c1dcc4fb --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-left-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-left-width disables native appearance for input-search</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-left-width."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-input" type="search" value="input-search"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-left-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-right-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-right-color-001.html new file mode 100644 index 0000000..b2c22005 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-right-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-right-color disables native appearance for input-search</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-right-color."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-input" type="search" value="input-search"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-right-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-right-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-right-style-001.html new file mode 100644 index 0000000..890770c --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-right-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-right-style disables native appearance for input-search</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-right-style."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-input" type="search" value="input-search"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-right-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-right-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-right-width-001.html new file mode 100644 index 0000000..8128bb53 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-right-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-right-width disables native appearance for input-search</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-right-width."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-input" type="search" value="input-search"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-right-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-start-end-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-start-end-radius-001.html new file mode 100644 index 0000000..c9dc8fc --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-start-end-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-start-end-radius disables native appearance for input-search</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-start-end-radius."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-input" type="search" value="input-search"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-start-end-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-start-start-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-start-start-radius-001.html new file mode 100644 index 0000000..fe0f50c --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-start-start-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-start-start-radius disables native appearance for input-search</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-start-start-radius."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-input" type="search" value="input-search"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-start-start-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-top-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-top-color-001.html new file mode 100644 index 0000000..8e19135 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-top-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-color disables native appearance for input-search</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-color."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-input" type="search" value="input-search"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-top-left-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-top-left-radius-001.html new file mode 100644 index 0000000..00706e8e --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-top-left-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-left-radius disables native appearance for input-search</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-left-radius."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-input" type="search" value="input-search"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-left-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-top-right-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-top-right-radius-001.html new file mode 100644 index 0000000..d9eff0a --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-top-right-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-right-radius disables native appearance for input-search</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-right-radius."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-input" type="search" value="input-search"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-right-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-top-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-top-style-001.html new file mode 100644 index 0000000..687a156 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-top-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-style disables native appearance for input-search</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-style."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-input" type="search" value="input-search"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-top-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-top-width-001.html new file mode 100644 index 0000000..8d21da1 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-top-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-width disables native appearance for input-search</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-width."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-input" type="search" value="input-search"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-background-attachment-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-background-attachment-001.html new file mode 100644 index 0000000..d686b71 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-background-attachment-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-attachment disables native appearance for input-search-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-attachment."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-text-input" type="search" value="input-search-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-attachment"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-background-clip-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-background-clip-001.html new file mode 100644 index 0000000..5e5bb98b --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-background-clip-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-clip disables native appearance for input-search-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-clip."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-text-input" type="search" value="input-search-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-clip"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-background-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-background-color-001.html new file mode 100644 index 0000000..a9a4f9ce --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-background-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-color disables native appearance for input-search-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-color."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-text-input" type="search" value="input-search-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-background-image-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-background-image-001.html new file mode 100644 index 0000000..67ce5d44 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-background-image-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-image disables native appearance for input-search-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-image."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-text-input" type="search" value="input-search-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-image"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-background-origin-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-background-origin-001.html new file mode 100644 index 0000000..d64ea1c5 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-background-origin-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-origin disables native appearance for input-search-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-origin."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-text-input" type="search" value="input-search-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-origin"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-background-position-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-background-position-001.html new file mode 100644 index 0000000..47328fa --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-background-position-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-position disables native appearance for input-search-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-position."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-text-input" type="search" value="input-search-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-position"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-background-size-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-background-size-001.html new file mode 100644 index 0000000..801451b --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-background-size-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-size disables native appearance for input-search-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-size."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-text-input" type="search" value="input-search-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-size"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-block-end-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-block-end-color-001.html new file mode 100644 index 0000000..35c2b259 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-block-end-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-end-color disables native appearance for input-search-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-end-color."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-text-input" type="search" value="input-search-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-end-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-block-end-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-block-end-style-001.html new file mode 100644 index 0000000..02418ca5 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-block-end-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-end-style disables native appearance for input-search-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-end-style."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-text-input" type="search" value="input-search-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-end-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-block-end-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-block-end-width-001.html new file mode 100644 index 0000000..76ba5d5 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-block-end-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-end-width disables native appearance for input-search-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-end-width."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-text-input" type="search" value="input-search-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-end-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-block-start-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-block-start-color-001.html new file mode 100644 index 0000000..5aa72d00 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-block-start-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-start-color disables native appearance for input-search-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-start-color."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-text-input" type="search" value="input-search-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-start-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-block-start-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-block-start-style-001.html new file mode 100644 index 0000000..5d6f0de --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-block-start-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-start-style disables native appearance for input-search-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-start-style."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-text-input" type="search" value="input-search-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-start-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-block-start-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-block-start-width-001.html new file mode 100644 index 0000000..e1a0fe2 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-block-start-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-start-width disables native appearance for input-search-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-start-width."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-text-input" type="search" value="input-search-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-start-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-bottom-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-bottom-color-001.html new file mode 100644 index 0000000..0429d4c --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-bottom-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-color disables native appearance for input-search-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-color."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-text-input" type="search" value="input-search-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-bottom-left-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-bottom-left-radius-001.html new file mode 100644 index 0000000..1ff1f9c --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-bottom-left-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-left-radius disables native appearance for input-search-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-left-radius."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-text-input" type="search" value="input-search-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-left-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-bottom-right-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-bottom-right-radius-001.html new file mode 100644 index 0000000..1a7b7521 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-bottom-right-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-right-radius disables native appearance for input-search-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-right-radius."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-text-input" type="search" value="input-search-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-right-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-bottom-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-bottom-style-001.html new file mode 100644 index 0000000..f33d4b5 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-bottom-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-style disables native appearance for input-search-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-style."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-text-input" type="search" value="input-search-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-bottom-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-bottom-width-001.html new file mode 100644 index 0000000..f60665b61 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-bottom-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-width disables native appearance for input-search-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-width."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-text-input" type="search" value="input-search-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-end-end-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-end-end-radius-001.html new file mode 100644 index 0000000..5410992 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-end-end-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-end-end-radius disables native appearance for input-search-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-end-end-radius."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-text-input" type="search" value="input-search-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-end-end-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-end-start-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-end-start-radius-001.html new file mode 100644 index 0000000..207216e --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-end-start-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-end-start-radius disables native appearance for input-search-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-end-start-radius."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-text-input" type="search" value="input-search-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-end-start-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-image-outset-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-image-outset-001.html new file mode 100644 index 0000000..e54d46ae --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-image-outset-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-outset disables native appearance for input-search-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-outset."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-text-input" type="search" value="input-search-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-outset"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-image-repeat-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-image-repeat-001.html new file mode 100644 index 0000000..c58d243 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-image-repeat-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-repeat disables native appearance for input-search-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-repeat."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-text-input" type="search" value="input-search-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-repeat"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-image-slice-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-image-slice-001.html new file mode 100644 index 0000000..3d69aace --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-image-slice-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-slice disables native appearance for input-search-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-slice."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-text-input" type="search" value="input-search-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-slice"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-image-source-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-image-source-001.html new file mode 100644 index 0000000..0300383 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-image-source-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-source disables native appearance for input-search-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-source."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-text-input" type="search" value="input-search-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-source"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-image-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-image-width-001.html new file mode 100644 index 0000000..51b084e --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-image-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-width disables native appearance for input-search-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-width."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-text-input" type="search" value="input-search-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-inline-end-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-inline-end-color-001.html new file mode 100644 index 0000000..b002409 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-inline-end-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-end-color disables native appearance for input-search-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-end-color."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-text-input" type="search" value="input-search-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-end-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-inline-end-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-inline-end-style-001.html new file mode 100644 index 0000000..6ecfaaee --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-inline-end-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-end-style disables native appearance for input-search-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-end-style."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-text-input" type="search" value="input-search-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-end-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-inline-end-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-inline-end-width-001.html new file mode 100644 index 0000000..33d53e4 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-inline-end-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-end-width disables native appearance for input-search-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-end-width."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-text-input" type="search" value="input-search-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-end-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-inline-start-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-inline-start-color-001.html new file mode 100644 index 0000000..8a936bb --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-inline-start-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-start-color disables native appearance for input-search-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-start-color."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-text-input" type="search" value="input-search-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-start-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-inline-start-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-inline-start-style-001.html new file mode 100644 index 0000000..5d43ac9 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-inline-start-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-start-style disables native appearance for input-search-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-start-style."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-text-input" type="search" value="input-search-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-start-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-inline-start-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-inline-start-width-001.html new file mode 100644 index 0000000..a086c59 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-inline-start-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-start-width disables native appearance for input-search-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-start-width."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-text-input" type="search" value="input-search-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-start-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-left-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-left-color-001.html new file mode 100644 index 0000000..647d0c1d --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-left-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-left-color disables native appearance for input-search-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-left-color."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-text-input" type="search" value="input-search-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-left-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-left-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-left-style-001.html new file mode 100644 index 0000000..8cd58bc --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-left-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-left-style disables native appearance for input-search-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-left-style."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-text-input" type="search" value="input-search-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-left-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-left-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-left-width-001.html new file mode 100644 index 0000000..a70ed49 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-left-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-left-width disables native appearance for input-search-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-left-width."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-text-input" type="search" value="input-search-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-left-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-right-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-right-color-001.html new file mode 100644 index 0000000..9b28654 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-right-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-right-color disables native appearance for input-search-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-right-color."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-text-input" type="search" value="input-search-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-right-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-right-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-right-style-001.html new file mode 100644 index 0000000..69bc1fa --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-right-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-right-style disables native appearance for input-search-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-right-style."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-text-input" type="search" value="input-search-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-right-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-right-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-right-width-001.html new file mode 100644 index 0000000..6a918db --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-right-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-right-width disables native appearance for input-search-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-right-width."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-text-input" type="search" value="input-search-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-right-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-start-end-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-start-end-radius-001.html new file mode 100644 index 0000000..84cc06a5 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-start-end-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-start-end-radius disables native appearance for input-search-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-start-end-radius."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-text-input" type="search" value="input-search-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-start-end-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-start-start-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-start-start-radius-001.html new file mode 100644 index 0000000..1481a5f --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-start-start-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-start-start-radius disables native appearance for input-search-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-start-start-radius."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-text-input" type="search" value="input-search-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-start-start-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-top-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-top-color-001.html new file mode 100644 index 0000000..d5f2c67 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-top-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-color disables native appearance for input-search-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-color."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-text-input" type="search" value="input-search-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-top-left-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-top-left-radius-001.html new file mode 100644 index 0000000..6de4bb3 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-top-left-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-left-radius disables native appearance for input-search-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-left-radius."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-text-input" type="search" value="input-search-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-left-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-top-right-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-top-right-radius-001.html new file mode 100644 index 0000000..6a3055cc0 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-top-right-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-right-radius disables native appearance for input-search-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-right-radius."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-text-input" type="search" value="input-search-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-right-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-top-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-top-style-001.html new file mode 100644 index 0000000..80099b9c --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-top-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-style disables native appearance for input-search-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-style."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-text-input" type="search" value="input-search-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-top-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-top-width-001.html new file mode 100644 index 0000000..152a473 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-top-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-width disables native appearance for input-search-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-width."> +<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="search-text-input" type="search" value="input-search-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-background-attachment-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-background-attachment-001.html new file mode 100644 index 0000000..b36f8cf --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-background-attachment-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-attachment disables native appearance for input-submit</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-attachment."> +<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="submit-input" type="submit" value="input-submit"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-attachment"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-background-clip-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-background-clip-001.html new file mode 100644 index 0000000..88f9648 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-background-clip-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-clip disables native appearance for input-submit</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-clip."> +<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="submit-input" type="submit" value="input-submit"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-clip"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-background-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-background-color-001.html new file mode 100644 index 0000000..c5ebc0f --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-background-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-color disables native appearance for input-submit</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-color."> +<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="submit-input" type="submit" value="input-submit"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-background-image-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-background-image-001.html new file mode 100644 index 0000000..2bee1793 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-background-image-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-image disables native appearance for input-submit</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-image."> +<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="submit-input" type="submit" value="input-submit"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-image"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-background-origin-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-background-origin-001.html new file mode 100644 index 0000000..f000839 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-background-origin-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-origin disables native appearance for input-submit</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-origin."> +<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="submit-input" type="submit" value="input-submit"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-origin"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-background-position-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-background-position-001.html new file mode 100644 index 0000000..1aea7465 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-background-position-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-position disables native appearance for input-submit</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-position."> +<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="submit-input" type="submit" value="input-submit"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-position"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-background-size-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-background-size-001.html new file mode 100644 index 0000000..0a92b03 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-background-size-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-size disables native appearance for input-submit</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-size."> +<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="submit-input" type="submit" value="input-submit"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-size"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-block-end-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-block-end-color-001.html new file mode 100644 index 0000000..10c583f --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-block-end-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-end-color disables native appearance for input-submit</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-end-color."> +<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="submit-input" type="submit" value="input-submit"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-end-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-block-end-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-block-end-style-001.html new file mode 100644 index 0000000..009e623 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-block-end-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-end-style disables native appearance for input-submit</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-end-style."> +<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="submit-input" type="submit" value="input-submit"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-end-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-block-end-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-block-end-width-001.html new file mode 100644 index 0000000..5d4c3e0 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-block-end-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-end-width disables native appearance for input-submit</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-end-width."> +<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="submit-input" type="submit" value="input-submit"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-end-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-block-start-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-block-start-color-001.html new file mode 100644 index 0000000..7b85ed2 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-block-start-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-start-color disables native appearance for input-submit</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-start-color."> +<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="submit-input" type="submit" value="input-submit"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-start-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-block-start-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-block-start-style-001.html new file mode 100644 index 0000000..db23cc0 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-block-start-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-start-style disables native appearance for input-submit</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-start-style."> +<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="submit-input" type="submit" value="input-submit"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-start-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-block-start-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-block-start-width-001.html new file mode 100644 index 0000000..ea89435 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-block-start-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-start-width disables native appearance for input-submit</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-start-width."> +<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="submit-input" type="submit" value="input-submit"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-start-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-bottom-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-bottom-color-001.html new file mode 100644 index 0000000..a0c6aeab --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-bottom-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-color disables native appearance for input-submit</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-color."> +<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="submit-input" type="submit" value="input-submit"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-bottom-left-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-bottom-left-radius-001.html new file mode 100644 index 0000000..27368813 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-bottom-left-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-left-radius disables native appearance for input-submit</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-left-radius."> +<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="submit-input" type="submit" value="input-submit"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-left-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-bottom-right-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-bottom-right-radius-001.html new file mode 100644 index 0000000..d876112 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-bottom-right-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-right-radius disables native appearance for input-submit</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-right-radius."> +<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="submit-input" type="submit" value="input-submit"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-right-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-bottom-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-bottom-style-001.html new file mode 100644 index 0000000..c08eacf --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-bottom-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-style disables native appearance for input-submit</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-style."> +<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="submit-input" type="submit" value="input-submit"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-bottom-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-bottom-width-001.html new file mode 100644 index 0000000..0f98fb5 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-bottom-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-width disables native appearance for input-submit</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-width."> +<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="submit-input" type="submit" value="input-submit"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-end-end-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-end-end-radius-001.html new file mode 100644 index 0000000..b7212ef --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-end-end-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-end-end-radius disables native appearance for input-submit</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-end-end-radius."> +<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="submit-input" type="submit" value="input-submit"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-end-end-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-end-start-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-end-start-radius-001.html new file mode 100644 index 0000000..ca29a81 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-end-start-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-end-start-radius disables native appearance for input-submit</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-end-start-radius."> +<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="submit-input" type="submit" value="input-submit"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-end-start-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-image-outset-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-image-outset-001.html new file mode 100644 index 0000000..8505655 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-image-outset-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-outset disables native appearance for input-submit</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-outset."> +<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="submit-input" type="submit" value="input-submit"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-outset"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-image-repeat-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-image-repeat-001.html new file mode 100644 index 0000000..42084e7d --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-image-repeat-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-repeat disables native appearance for input-submit</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-repeat."> +<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="submit-input" type="submit" value="input-submit"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-repeat"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-image-slice-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-image-slice-001.html new file mode 100644 index 0000000..03721a1 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-image-slice-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-slice disables native appearance for input-submit</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-slice."> +<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="submit-input" type="submit" value="input-submit"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-slice"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-image-source-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-image-source-001.html new file mode 100644 index 0000000..b768500 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-image-source-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-source disables native appearance for input-submit</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-source."> +<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="submit-input" type="submit" value="input-submit"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-source"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-image-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-image-width-001.html new file mode 100644 index 0000000..cd28c59c --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-image-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-width disables native appearance for input-submit</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-width."> +<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="submit-input" type="submit" value="input-submit"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-inline-end-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-inline-end-color-001.html new file mode 100644 index 0000000..7b1109e --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-inline-end-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-end-color disables native appearance for input-submit</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-end-color."> +<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="submit-input" type="submit" value="input-submit"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-end-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-inline-end-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-inline-end-style-001.html new file mode 100644 index 0000000..47c7d1f --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-inline-end-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-end-style disables native appearance for input-submit</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-end-style."> +<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="submit-input" type="submit" value="input-submit"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-end-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-inline-end-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-inline-end-width-001.html new file mode 100644 index 0000000..2fde013 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-inline-end-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-end-width disables native appearance for input-submit</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-end-width."> +<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="submit-input" type="submit" value="input-submit"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-end-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-inline-start-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-inline-start-color-001.html new file mode 100644 index 0000000..debb779 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-inline-start-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-start-color disables native appearance for input-submit</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-start-color."> +<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="submit-input" type="submit" value="input-submit"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-start-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-inline-start-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-inline-start-style-001.html new file mode 100644 index 0000000..4e260ef --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-inline-start-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-start-style disables native appearance for input-submit</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-start-style."> +<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="submit-input" type="submit" value="input-submit"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-start-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-inline-start-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-inline-start-width-001.html new file mode 100644 index 0000000..9caca28 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-inline-start-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-start-width disables native appearance for input-submit</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-start-width."> +<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="submit-input" type="submit" value="input-submit"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-start-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-left-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-left-color-001.html new file mode 100644 index 0000000..7c51183 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-left-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-left-color disables native appearance for input-submit</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-left-color."> +<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="submit-input" type="submit" value="input-submit"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-left-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-left-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-left-style-001.html new file mode 100644 index 0000000..8981d27 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-left-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-left-style disables native appearance for input-submit</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-left-style."> +<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="submit-input" type="submit" value="input-submit"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-left-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-left-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-left-width-001.html new file mode 100644 index 0000000..5b93b5bc --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-left-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-left-width disables native appearance for input-submit</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-left-width."> +<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="submit-input" type="submit" value="input-submit"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-left-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-right-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-right-color-001.html new file mode 100644 index 0000000..243341d --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-right-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-right-color disables native appearance for input-submit</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-right-color."> +<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="submit-input" type="submit" value="input-submit"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-right-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-right-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-right-style-001.html new file mode 100644 index 0000000..be67b53 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-right-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-right-style disables native appearance for input-submit</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-right-style."> +<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="submit-input" type="submit" value="input-submit"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-right-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-right-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-right-width-001.html new file mode 100644 index 0000000..bffb7dc --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-right-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-right-width disables native appearance for input-submit</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-right-width."> +<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="submit-input" type="submit" value="input-submit"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-right-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-start-end-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-start-end-radius-001.html new file mode 100644 index 0000000..ab96454 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-start-end-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-start-end-radius disables native appearance for input-submit</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-start-end-radius."> +<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="submit-input" type="submit" value="input-submit"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-start-end-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-start-start-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-start-start-radius-001.html new file mode 100644 index 0000000..0af363c --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-start-start-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-start-start-radius disables native appearance for input-submit</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-start-start-radius."> +<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="submit-input" type="submit" value="input-submit"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-start-start-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-top-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-top-color-001.html new file mode 100644 index 0000000..9b62a7c --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-top-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-color disables native appearance for input-submit</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-color."> +<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="submit-input" type="submit" value="input-submit"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-top-left-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-top-left-radius-001.html new file mode 100644 index 0000000..b6a1cd3 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-top-left-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-left-radius disables native appearance for input-submit</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-left-radius."> +<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="submit-input" type="submit" value="input-submit"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-left-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-top-right-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-top-right-radius-001.html new file mode 100644 index 0000000..48c4a8c --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-top-right-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-right-radius disables native appearance for input-submit</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-right-radius."> +<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="submit-input" type="submit" value="input-submit"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-right-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-top-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-top-style-001.html new file mode 100644 index 0000000..de7b61f4 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-top-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-style disables native appearance for input-submit</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-style."> +<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="submit-input" type="submit" value="input-submit"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-top-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-top-width-001.html new file mode 100644 index 0000000..df2deef --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-top-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-width disables native appearance for input-submit</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-width."> +<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="submit-input" type="submit" value="input-submit"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-background-attachment-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-background-attachment-001.html new file mode 100644 index 0000000..9aa99504 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-background-attachment-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-attachment disables native appearance for input-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-attachment."> +<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="text-input" type="text" value="input-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-attachment"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-background-clip-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-background-clip-001.html new file mode 100644 index 0000000..e90ad46d --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-background-clip-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-clip disables native appearance for input-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-clip."> +<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="text-input" type="text" value="input-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-clip"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-background-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-background-color-001.html new file mode 100644 index 0000000..10e5bfcc --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-background-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-color disables native appearance for input-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-color."> +<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="text-input" type="text" value="input-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-background-image-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-background-image-001.html new file mode 100644 index 0000000..ab612a371 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-background-image-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-image disables native appearance for input-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-image."> +<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="text-input" type="text" value="input-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-image"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-background-origin-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-background-origin-001.html new file mode 100644 index 0000000..8b447fc --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-background-origin-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-origin disables native appearance for input-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-origin."> +<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="text-input" type="text" value="input-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-origin"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-background-position-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-background-position-001.html new file mode 100644 index 0000000..e75ae63 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-background-position-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-position disables native appearance for input-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-position."> +<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="text-input" type="text" value="input-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-position"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-background-size-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-background-size-001.html new file mode 100644 index 0000000..6e18215 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-background-size-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-size disables native appearance for input-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-size."> +<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="text-input" type="text" value="input-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-size"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-block-end-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-block-end-color-001.html new file mode 100644 index 0000000..00536269 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-block-end-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-end-color disables native appearance for input-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-end-color."> +<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="text-input" type="text" value="input-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-end-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-block-end-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-block-end-style-001.html new file mode 100644 index 0000000..460aab4 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-block-end-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-end-style disables native appearance for input-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-end-style."> +<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="text-input" type="text" value="input-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-end-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-block-end-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-block-end-width-001.html new file mode 100644 index 0000000..bfe0590 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-block-end-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-end-width disables native appearance for input-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-end-width."> +<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="text-input" type="text" value="input-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-end-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-block-start-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-block-start-color-001.html new file mode 100644 index 0000000..a99decb --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-block-start-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-start-color disables native appearance for input-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-start-color."> +<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="text-input" type="text" value="input-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-start-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-block-start-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-block-start-style-001.html new file mode 100644 index 0000000..fc3ac1a2 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-block-start-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-start-style disables native appearance for input-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-start-style."> +<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="text-input" type="text" value="input-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-start-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-block-start-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-block-start-width-001.html new file mode 100644 index 0000000..9fa513af --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-block-start-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-start-width disables native appearance for input-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-start-width."> +<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="text-input" type="text" value="input-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-start-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-bottom-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-bottom-color-001.html new file mode 100644 index 0000000..2eb97b2d --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-bottom-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-color disables native appearance for input-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-color."> +<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="text-input" type="text" value="input-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-bottom-left-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-bottom-left-radius-001.html new file mode 100644 index 0000000..34ffa2d --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-bottom-left-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-left-radius disables native appearance for input-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-left-radius."> +<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="text-input" type="text" value="input-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-left-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-bottom-right-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-bottom-right-radius-001.html new file mode 100644 index 0000000..e889656a --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-bottom-right-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-right-radius disables native appearance for input-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-right-radius."> +<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="text-input" type="text" value="input-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-right-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-bottom-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-bottom-style-001.html new file mode 100644 index 0000000..1afdb4b --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-bottom-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-style disables native appearance for input-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-style."> +<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="text-input" type="text" value="input-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-bottom-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-bottom-width-001.html new file mode 100644 index 0000000..6540d05 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-bottom-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-width disables native appearance for input-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-width."> +<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="text-input" type="text" value="input-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-end-end-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-end-end-radius-001.html new file mode 100644 index 0000000..98735e9 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-end-end-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-end-end-radius disables native appearance for input-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-end-end-radius."> +<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="text-input" type="text" value="input-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-end-end-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-end-start-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-end-start-radius-001.html new file mode 100644 index 0000000..6dd419e --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-end-start-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-end-start-radius disables native appearance for input-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-end-start-radius."> +<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="text-input" type="text" value="input-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-end-start-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-image-outset-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-image-outset-001.html new file mode 100644 index 0000000..fc46ace6 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-image-outset-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-outset disables native appearance for input-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-outset."> +<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="text-input" type="text" value="input-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-outset"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-image-repeat-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-image-repeat-001.html new file mode 100644 index 0000000..709485f --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-image-repeat-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-repeat disables native appearance for input-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-repeat."> +<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="text-input" type="text" value="input-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-repeat"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-image-slice-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-image-slice-001.html new file mode 100644 index 0000000..1b391cce --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-image-slice-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-slice disables native appearance for input-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-slice."> +<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="text-input" type="text" value="input-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-slice"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-image-source-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-image-source-001.html new file mode 100644 index 0000000..2523a826 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-image-source-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-source disables native appearance for input-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-source."> +<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="text-input" type="text" value="input-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-source"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-image-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-image-width-001.html new file mode 100644 index 0000000..3f22013 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-image-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-width disables native appearance for input-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-width."> +<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="text-input" type="text" value="input-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-inline-end-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-inline-end-color-001.html new file mode 100644 index 0000000..294cc70 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-inline-end-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-end-color disables native appearance for input-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-end-color."> +<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="text-input" type="text" value="input-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-end-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-inline-end-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-inline-end-style-001.html new file mode 100644 index 0000000..97a9a5dc --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-inline-end-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-end-style disables native appearance for input-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-end-style."> +<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="text-input" type="text" value="input-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-end-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-inline-end-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-inline-end-width-001.html new file mode 100644 index 0000000..e0035f2 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-inline-end-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-end-width disables native appearance for input-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-end-width."> +<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="text-input" type="text" value="input-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-end-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-inline-start-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-inline-start-color-001.html new file mode 100644 index 0000000..f4b3974a --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-inline-start-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-start-color disables native appearance for input-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-start-color."> +<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="text-input" type="text" value="input-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-start-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-inline-start-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-inline-start-style-001.html new file mode 100644 index 0000000..e2b1ca7 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-inline-start-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-start-style disables native appearance for input-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-start-style."> +<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="text-input" type="text" value="input-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-start-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-inline-start-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-inline-start-width-001.html new file mode 100644 index 0000000..dc07a0e --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-inline-start-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-start-width disables native appearance for input-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-start-width."> +<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="text-input" type="text" value="input-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-start-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-left-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-left-color-001.html new file mode 100644 index 0000000..65fd37f7 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-left-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-left-color disables native appearance for input-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-left-color."> +<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="text-input" type="text" value="input-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-left-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-left-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-left-style-001.html new file mode 100644 index 0000000..0c5fd539 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-left-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-left-style disables native appearance for input-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-left-style."> +<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="text-input" type="text" value="input-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-left-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-left-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-left-width-001.html new file mode 100644 index 0000000..5e8e54ef --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-left-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-left-width disables native appearance for input-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-left-width."> +<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="text-input" type="text" value="input-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-left-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-right-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-right-color-001.html new file mode 100644 index 0000000..91385eb58 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-right-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-right-color disables native appearance for input-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-right-color."> +<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="text-input" type="text" value="input-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-right-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-right-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-right-style-001.html new file mode 100644 index 0000000..8fe090fc --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-right-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-right-style disables native appearance for input-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-right-style."> +<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="text-input" type="text" value="input-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-right-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-right-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-right-width-001.html new file mode 100644 index 0000000..cb3470e0 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-right-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-right-width disables native appearance for input-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-right-width."> +<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="text-input" type="text" value="input-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-right-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-start-end-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-start-end-radius-001.html new file mode 100644 index 0000000..d8ca285 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-start-end-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-start-end-radius disables native appearance for input-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-start-end-radius."> +<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="text-input" type="text" value="input-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-start-end-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-start-start-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-start-start-radius-001.html new file mode 100644 index 0000000..b3c94b3 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-start-start-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-start-start-radius disables native appearance for input-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-start-start-radius."> +<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="text-input" type="text" value="input-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-start-start-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-top-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-top-color-001.html new file mode 100644 index 0000000..e57dba8 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-top-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-color disables native appearance for input-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-color."> +<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="text-input" type="text" value="input-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-top-left-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-top-left-radius-001.html new file mode 100644 index 0000000..d408d75 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-top-left-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-left-radius disables native appearance for input-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-left-radius."> +<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="text-input" type="text" value="input-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-left-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-top-right-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-top-right-radius-001.html new file mode 100644 index 0000000..a39e8ff --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-top-right-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-right-radius disables native appearance for input-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-right-radius."> +<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="text-input" type="text" value="input-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-right-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-top-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-top-style-001.html new file mode 100644 index 0000000..cd4fcc4 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-top-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-style disables native appearance for input-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-style."> +<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="text-input" type="text" value="input-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-top-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-top-width-001.html new file mode 100644 index 0000000..21185f9 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-top-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-width disables native appearance for input-text</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-width."> +<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="text-input" type="text" value="input-text"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-background-attachment-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-background-attachment-001.html new file mode 100644 index 0000000..b68f8ee --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-background-attachment-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-attachment disables native appearance for link</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-attachment."> +<link rel="match" href="../compute-kind-widget-fallback-link-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <a id="link">a</a> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-attachment"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-background-clip-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-background-clip-001.html new file mode 100644 index 0000000..417f715 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-background-clip-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-clip disables native appearance for link</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-clip."> +<link rel="match" href="../compute-kind-widget-fallback-link-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <a id="link">a</a> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-clip"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-background-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-background-color-001.html new file mode 100644 index 0000000..52e07c3 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-background-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-color disables native appearance for link</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-color."> +<link rel="match" href="../compute-kind-widget-fallback-link-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <a id="link">a</a> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-background-image-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-background-image-001.html new file mode 100644 index 0000000..27c6a26 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-background-image-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-image disables native appearance for link</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-image."> +<link rel="match" href="../compute-kind-widget-fallback-link-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <a id="link">a</a> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-image"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-background-origin-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-background-origin-001.html new file mode 100644 index 0000000..06963ba --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-background-origin-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-origin disables native appearance for link</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-origin."> +<link rel="match" href="../compute-kind-widget-fallback-link-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <a id="link">a</a> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-origin"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-background-position-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-background-position-001.html new file mode 100644 index 0000000..e6e1c18 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-background-position-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-position disables native appearance for link</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-position."> +<link rel="match" href="../compute-kind-widget-fallback-link-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <a id="link">a</a> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-position"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-background-size-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-background-size-001.html new file mode 100644 index 0000000..0fec1738 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-background-size-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-size disables native appearance for link</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-size."> +<link rel="match" href="../compute-kind-widget-fallback-link-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <a id="link">a</a> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-size"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-block-end-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-block-end-color-001.html new file mode 100644 index 0000000..a35424ba --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-block-end-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-end-color disables native appearance for link</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-end-color."> +<link rel="match" href="../compute-kind-widget-fallback-link-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <a id="link">a</a> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-end-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-block-end-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-block-end-style-001.html new file mode 100644 index 0000000..471287ca --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-block-end-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-end-style disables native appearance for link</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-end-style."> +<link rel="match" href="../compute-kind-widget-fallback-link-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <a id="link">a</a> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-end-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-block-end-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-block-end-width-001.html new file mode 100644 index 0000000..7010081 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-block-end-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-end-width disables native appearance for link</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-end-width."> +<link rel="match" href="../compute-kind-widget-fallback-link-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <a id="link">a</a> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-end-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-block-start-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-block-start-color-001.html new file mode 100644 index 0000000..c8861b4 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-block-start-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-start-color disables native appearance for link</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-start-color."> +<link rel="match" href="../compute-kind-widget-fallback-link-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <a id="link">a</a> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-start-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-block-start-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-block-start-style-001.html new file mode 100644 index 0000000..510214f2 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-block-start-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-start-style disables native appearance for link</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-start-style."> +<link rel="match" href="../compute-kind-widget-fallback-link-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <a id="link">a</a> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-start-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-block-start-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-block-start-width-001.html new file mode 100644 index 0000000..c9ebdbe --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-block-start-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-start-width disables native appearance for link</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-start-width."> +<link rel="match" href="../compute-kind-widget-fallback-link-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <a id="link">a</a> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-start-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-bottom-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-bottom-color-001.html new file mode 100644 index 0000000..8db0902 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-bottom-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-color disables native appearance for link</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-color."> +<link rel="match" href="../compute-kind-widget-fallback-link-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <a id="link">a</a> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-bottom-left-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-bottom-left-radius-001.html new file mode 100644 index 0000000..8bee975 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-bottom-left-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-left-radius disables native appearance for link</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-left-radius."> +<link rel="match" href="../compute-kind-widget-fallback-link-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <a id="link">a</a> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-left-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-bottom-right-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-bottom-right-radius-001.html new file mode 100644 index 0000000..00ac753 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-bottom-right-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-right-radius disables native appearance for link</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-right-radius."> +<link rel="match" href="../compute-kind-widget-fallback-link-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <a id="link">a</a> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-right-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-bottom-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-bottom-style-001.html new file mode 100644 index 0000000..ac19679 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-bottom-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-style disables native appearance for link</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-style."> +<link rel="match" href="../compute-kind-widget-fallback-link-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <a id="link">a</a> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-bottom-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-bottom-width-001.html new file mode 100644 index 0000000..c18b4dcf --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-bottom-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-width disables native appearance for link</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-width."> +<link rel="match" href="../compute-kind-widget-fallback-link-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <a id="link">a</a> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-end-end-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-end-end-radius-001.html new file mode 100644 index 0000000..bb8fa354 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-end-end-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-end-end-radius disables native appearance for link</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-end-end-radius."> +<link rel="match" href="../compute-kind-widget-fallback-link-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <a id="link">a</a> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-end-end-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-end-start-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-end-start-radius-001.html new file mode 100644 index 0000000..12638230 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-end-start-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-end-start-radius disables native appearance for link</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-end-start-radius."> +<link rel="match" href="../compute-kind-widget-fallback-link-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <a id="link">a</a> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-end-start-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-image-outset-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-image-outset-001.html new file mode 100644 index 0000000..ab9b973f --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-image-outset-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-outset disables native appearance for link</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-outset."> +<link rel="match" href="../compute-kind-widget-fallback-link-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <a id="link">a</a> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-outset"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-image-repeat-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-image-repeat-001.html new file mode 100644 index 0000000..32eb2a38 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-image-repeat-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-repeat disables native appearance for link</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-repeat."> +<link rel="match" href="../compute-kind-widget-fallback-link-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <a id="link">a</a> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-repeat"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-image-slice-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-image-slice-001.html new file mode 100644 index 0000000..1a6486e --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-image-slice-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-slice disables native appearance for link</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-slice."> +<link rel="match" href="../compute-kind-widget-fallback-link-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <a id="link">a</a> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-slice"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-image-source-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-image-source-001.html new file mode 100644 index 0000000..2ae8d4d --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-image-source-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-source disables native appearance for link</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-source."> +<link rel="match" href="../compute-kind-widget-fallback-link-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <a id="link">a</a> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-source"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-image-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-image-width-001.html new file mode 100644 index 0000000..f22d5bf --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-image-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-width disables native appearance for link</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-width."> +<link rel="match" href="../compute-kind-widget-fallback-link-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <a id="link">a</a> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-inline-end-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-inline-end-color-001.html new file mode 100644 index 0000000..86c1425 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-inline-end-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-end-color disables native appearance for link</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-end-color."> +<link rel="match" href="../compute-kind-widget-fallback-link-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <a id="link">a</a> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-end-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-inline-end-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-inline-end-style-001.html new file mode 100644 index 0000000..dd0df7f5 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-inline-end-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-end-style disables native appearance for link</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-end-style."> +<link rel="match" href="../compute-kind-widget-fallback-link-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <a id="link">a</a> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-end-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-inline-end-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-inline-end-width-001.html new file mode 100644 index 0000000..31ef531 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-inline-end-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-end-width disables native appearance for link</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-end-width."> +<link rel="match" href="../compute-kind-widget-fallback-link-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <a id="link">a</a> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-end-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-inline-start-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-inline-start-color-001.html new file mode 100644 index 0000000..b721fb52 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-inline-start-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-start-color disables native appearance for link</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-start-color."> +<link rel="match" href="../compute-kind-widget-fallback-link-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <a id="link">a</a> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-start-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-inline-start-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-inline-start-style-001.html new file mode 100644 index 0000000..a521fa1a --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-inline-start-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-start-style disables native appearance for link</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-start-style."> +<link rel="match" href="../compute-kind-widget-fallback-link-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <a id="link">a</a> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-start-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-inline-start-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-inline-start-width-001.html new file mode 100644 index 0000000..d8ad236 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-inline-start-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-start-width disables native appearance for link</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-start-width."> +<link rel="match" href="../compute-kind-widget-fallback-link-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <a id="link">a</a> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-start-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-left-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-left-color-001.html new file mode 100644 index 0000000..c2ec8d32 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-left-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-left-color disables native appearance for link</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-left-color."> +<link rel="match" href="../compute-kind-widget-fallback-link-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <a id="link">a</a> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-left-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-left-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-left-style-001.html new file mode 100644 index 0000000..33c793a --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-left-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-left-style disables native appearance for link</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-left-style."> +<link rel="match" href="../compute-kind-widget-fallback-link-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <a id="link">a</a> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-left-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-left-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-left-width-001.html new file mode 100644 index 0000000..f8d2311a --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-left-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-left-width disables native appearance for link</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-left-width."> +<link rel="match" href="../compute-kind-widget-fallback-link-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <a id="link">a</a> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-left-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-right-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-right-color-001.html new file mode 100644 index 0000000..6affa83d --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-right-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-right-color disables native appearance for link</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-right-color."> +<link rel="match" href="../compute-kind-widget-fallback-link-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <a id="link">a</a> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-right-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-right-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-right-style-001.html new file mode 100644 index 0000000..4d508db --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-right-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-right-style disables native appearance for link</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-right-style."> +<link rel="match" href="../compute-kind-widget-fallback-link-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <a id="link">a</a> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-right-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-right-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-right-width-001.html new file mode 100644 index 0000000..c32ba83d --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-right-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-right-width disables native appearance for link</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-right-width."> +<link rel="match" href="../compute-kind-widget-fallback-link-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <a id="link">a</a> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-right-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-start-end-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-start-end-radius-001.html new file mode 100644 index 0000000..62be943 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-start-end-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-start-end-radius disables native appearance for link</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-start-end-radius."> +<link rel="match" href="../compute-kind-widget-fallback-link-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <a id="link">a</a> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-start-end-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-start-start-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-start-start-radius-001.html new file mode 100644 index 0000000..84362f3 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-start-start-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-start-start-radius disables native appearance for link</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-start-start-radius."> +<link rel="match" href="../compute-kind-widget-fallback-link-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <a id="link">a</a> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-start-start-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-top-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-top-color-001.html new file mode 100644 index 0000000..f41ae3c --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-top-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-color disables native appearance for link</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-color."> +<link rel="match" href="../compute-kind-widget-fallback-link-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <a id="link">a</a> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-top-left-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-top-left-radius-001.html new file mode 100644 index 0000000..ec8ed299 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-top-left-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-left-radius disables native appearance for link</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-left-radius."> +<link rel="match" href="../compute-kind-widget-fallback-link-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <a id="link">a</a> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-left-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-top-right-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-top-right-radius-001.html new file mode 100644 index 0000000..9c29f07 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-top-right-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-right-radius disables native appearance for link</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-right-radius."> +<link rel="match" href="../compute-kind-widget-fallback-link-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <a id="link">a</a> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-right-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-top-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-top-style-001.html new file mode 100644 index 0000000..34c6b54 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-top-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-style disables native appearance for link</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-style."> +<link rel="match" href="../compute-kind-widget-fallback-link-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <a id="link">a</a> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-top-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-top-width-001.html new file mode 100644 index 0000000..73b8261 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-top-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-width disables native appearance for link</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-width."> +<link rel="match" href="../compute-kind-widget-fallback-link-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <a id="link">a</a> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-background-attachment-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-background-attachment-001.html new file mode 100644 index 0000000..f9760122 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-background-attachment-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-attachment disables native appearance for meter</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-attachment."> +<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <meter id="meter" value=0.5></meter> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-attachment"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-background-clip-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-background-clip-001.html new file mode 100644 index 0000000..dd353eb --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-background-clip-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-clip disables native appearance for meter</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-clip."> +<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <meter id="meter" value=0.5></meter> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-clip"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-background-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-background-color-001.html new file mode 100644 index 0000000..2d6f903a --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-background-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-color disables native appearance for meter</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-color."> +<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <meter id="meter" value=0.5></meter> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-background-image-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-background-image-001.html new file mode 100644 index 0000000..2217eba4 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-background-image-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-image disables native appearance for meter</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-image."> +<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <meter id="meter" value=0.5></meter> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-image"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-background-origin-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-background-origin-001.html new file mode 100644 index 0000000..8c232122 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-background-origin-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-origin disables native appearance for meter</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-origin."> +<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <meter id="meter" value=0.5></meter> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-origin"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-background-position-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-background-position-001.html new file mode 100644 index 0000000..b82a498 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-background-position-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-position disables native appearance for meter</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-position."> +<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <meter id="meter" value=0.5></meter> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-position"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-background-size-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-background-size-001.html new file mode 100644 index 0000000..2e3fa563 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-background-size-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-size disables native appearance for meter</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-size."> +<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <meter id="meter" value=0.5></meter> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-size"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-block-end-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-block-end-color-001.html new file mode 100644 index 0000000..2b0742d --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-block-end-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-end-color disables native appearance for meter</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-end-color."> +<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <meter id="meter" value=0.5></meter> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-end-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-block-end-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-block-end-style-001.html new file mode 100644 index 0000000..cf733ef --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-block-end-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-end-style disables native appearance for meter</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-end-style."> +<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <meter id="meter" value=0.5></meter> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-end-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-block-end-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-block-end-width-001.html new file mode 100644 index 0000000..44bcd7d5 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-block-end-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-end-width disables native appearance for meter</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-end-width."> +<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <meter id="meter" value=0.5></meter> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-end-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-block-start-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-block-start-color-001.html new file mode 100644 index 0000000..c03b5eb --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-block-start-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-start-color disables native appearance for meter</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-start-color."> +<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <meter id="meter" value=0.5></meter> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-start-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-block-start-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-block-start-style-001.html new file mode 100644 index 0000000..5ed90d3 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-block-start-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-start-style disables native appearance for meter</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-start-style."> +<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <meter id="meter" value=0.5></meter> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-start-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-block-start-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-block-start-width-001.html new file mode 100644 index 0000000..0dae7defc --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-block-start-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-start-width disables native appearance for meter</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-start-width."> +<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <meter id="meter" value=0.5></meter> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-start-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-bottom-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-bottom-color-001.html new file mode 100644 index 0000000..bc3d1bb --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-bottom-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-color disables native appearance for meter</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-color."> +<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <meter id="meter" value=0.5></meter> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-bottom-left-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-bottom-left-radius-001.html new file mode 100644 index 0000000..aad197d1 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-bottom-left-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-left-radius disables native appearance for meter</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-left-radius."> +<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <meter id="meter" value=0.5></meter> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-left-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-bottom-right-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-bottom-right-radius-001.html new file mode 100644 index 0000000..2ea501c5 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-bottom-right-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-right-radius disables native appearance for meter</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-right-radius."> +<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <meter id="meter" value=0.5></meter> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-right-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-bottom-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-bottom-style-001.html new file mode 100644 index 0000000..887fe56 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-bottom-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-style disables native appearance for meter</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-style."> +<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <meter id="meter" value=0.5></meter> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-bottom-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-bottom-width-001.html new file mode 100644 index 0000000..5af8fffb --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-bottom-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-width disables native appearance for meter</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-width."> +<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <meter id="meter" value=0.5></meter> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-end-end-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-end-end-radius-001.html new file mode 100644 index 0000000..bacfb1d --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-end-end-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-end-end-radius disables native appearance for meter</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-end-end-radius."> +<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <meter id="meter" value=0.5></meter> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-end-end-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-end-start-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-end-start-radius-001.html new file mode 100644 index 0000000..0a4d9bcd --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-end-start-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-end-start-radius disables native appearance for meter</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-end-start-radius."> +<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <meter id="meter" value=0.5></meter> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-end-start-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-image-outset-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-image-outset-001.html new file mode 100644 index 0000000..f89f6c8 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-image-outset-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-outset disables native appearance for meter</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-outset."> +<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <meter id="meter" value=0.5></meter> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-outset"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-image-repeat-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-image-repeat-001.html new file mode 100644 index 0000000..c87a7194 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-image-repeat-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-repeat disables native appearance for meter</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-repeat."> +<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <meter id="meter" value=0.5></meter> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-repeat"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-image-slice-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-image-slice-001.html new file mode 100644 index 0000000..ebb7d24 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-image-slice-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-slice disables native appearance for meter</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-slice."> +<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <meter id="meter" value=0.5></meter> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-slice"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-image-source-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-image-source-001.html new file mode 100644 index 0000000..a823e22 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-image-source-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-source disables native appearance for meter</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-source."> +<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <meter id="meter" value=0.5></meter> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-source"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-image-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-image-width-001.html new file mode 100644 index 0000000..c0d4f43 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-image-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-width disables native appearance for meter</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-width."> +<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <meter id="meter" value=0.5></meter> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-inline-end-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-inline-end-color-001.html new file mode 100644 index 0000000..624c594 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-inline-end-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-end-color disables native appearance for meter</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-end-color."> +<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <meter id="meter" value=0.5></meter> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-end-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-inline-end-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-inline-end-style-001.html new file mode 100644 index 0000000..233c4f2 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-inline-end-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-end-style disables native appearance for meter</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-end-style."> +<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <meter id="meter" value=0.5></meter> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-end-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-inline-end-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-inline-end-width-001.html new file mode 100644 index 0000000..4d25da6 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-inline-end-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-end-width disables native appearance for meter</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-end-width."> +<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <meter id="meter" value=0.5></meter> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-end-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-inline-start-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-inline-start-color-001.html new file mode 100644 index 0000000..49d0c1d --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-inline-start-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-start-color disables native appearance for meter</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-start-color."> +<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <meter id="meter" value=0.5></meter> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-start-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-inline-start-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-inline-start-style-001.html new file mode 100644 index 0000000..0a48844 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-inline-start-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-start-style disables native appearance for meter</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-start-style."> +<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <meter id="meter" value=0.5></meter> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-start-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-inline-start-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-inline-start-width-001.html new file mode 100644 index 0000000..ae7382c --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-inline-start-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-start-width disables native appearance for meter</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-start-width."> +<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <meter id="meter" value=0.5></meter> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-start-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-left-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-left-color-001.html new file mode 100644 index 0000000..f5cde67 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-left-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-left-color disables native appearance for meter</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-left-color."> +<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <meter id="meter" value=0.5></meter> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-left-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-left-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-left-style-001.html new file mode 100644 index 0000000..48c17401 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-left-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-left-style disables native appearance for meter</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-left-style."> +<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <meter id="meter" value=0.5></meter> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-left-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-left-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-left-width-001.html new file mode 100644 index 0000000..0aca1fba --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-left-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-left-width disables native appearance for meter</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-left-width."> +<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <meter id="meter" value=0.5></meter> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-left-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-right-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-right-color-001.html new file mode 100644 index 0000000..b7b2360 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-right-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-right-color disables native appearance for meter</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-right-color."> +<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <meter id="meter" value=0.5></meter> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-right-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-right-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-right-style-001.html new file mode 100644 index 0000000..24d4b2e --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-right-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-right-style disables native appearance for meter</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-right-style."> +<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <meter id="meter" value=0.5></meter> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-right-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-right-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-right-width-001.html new file mode 100644 index 0000000..a3659d5 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-right-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-right-width disables native appearance for meter</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-right-width."> +<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <meter id="meter" value=0.5></meter> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-right-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-start-end-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-start-end-radius-001.html new file mode 100644 index 0000000..ac4ec66 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-start-end-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-start-end-radius disables native appearance for meter</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-start-end-radius."> +<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <meter id="meter" value=0.5></meter> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-start-end-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-start-start-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-start-start-radius-001.html new file mode 100644 index 0000000..62d5d57 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-start-start-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-start-start-radius disables native appearance for meter</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-start-start-radius."> +<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <meter id="meter" value=0.5></meter> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-start-start-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-top-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-top-color-001.html new file mode 100644 index 0000000..28210d6 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-top-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-color disables native appearance for meter</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-color."> +<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <meter id="meter" value=0.5></meter> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-top-left-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-top-left-radius-001.html new file mode 100644 index 0000000..cf25cc4 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-top-left-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-left-radius disables native appearance for meter</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-left-radius."> +<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <meter id="meter" value=0.5></meter> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-left-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-top-right-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-top-right-radius-001.html new file mode 100644 index 0000000..24f15a5 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-top-right-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-right-radius disables native appearance for meter</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-right-radius."> +<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <meter id="meter" value=0.5></meter> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-right-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-top-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-top-style-001.html new file mode 100644 index 0000000..37ba183 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-top-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-style disables native appearance for meter</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-style."> +<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <meter id="meter" value=0.5></meter> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-top-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-top-width-001.html new file mode 100644 index 0000000..c10fce34 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-top-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-width disables native appearance for meter</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-width."> +<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <meter id="meter" value=0.5></meter> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-background-attachment-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-background-attachment-001.html new file mode 100644 index 0000000..b85186c --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-background-attachment-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-attachment disables native appearance for progress</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-attachment."> +<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <progress id="progress" value=0.5></progress> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-attachment"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-background-clip-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-background-clip-001.html new file mode 100644 index 0000000..e3df1f06 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-background-clip-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-clip disables native appearance for progress</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-clip."> +<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <progress id="progress" value=0.5></progress> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-clip"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-background-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-background-color-001.html new file mode 100644 index 0000000..8e93521 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-background-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-color disables native appearance for progress</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-color."> +<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <progress id="progress" value=0.5></progress> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-background-image-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-background-image-001.html new file mode 100644 index 0000000..87e895e --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-background-image-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-image disables native appearance for progress</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-image."> +<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <progress id="progress" value=0.5></progress> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-image"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-background-origin-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-background-origin-001.html new file mode 100644 index 0000000..a4958abd --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-background-origin-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-origin disables native appearance for progress</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-origin."> +<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <progress id="progress" value=0.5></progress> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-origin"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-background-position-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-background-position-001.html new file mode 100644 index 0000000..ed117a9 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-background-position-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-position disables native appearance for progress</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-position."> +<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <progress id="progress" value=0.5></progress> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-position"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-background-size-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-background-size-001.html new file mode 100644 index 0000000..3047ef8 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-background-size-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-size disables native appearance for progress</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-size."> +<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <progress id="progress" value=0.5></progress> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-size"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-block-end-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-block-end-color-001.html new file mode 100644 index 0000000..3f084623 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-block-end-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-end-color disables native appearance for progress</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-end-color."> +<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <progress id="progress" value=0.5></progress> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-end-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-block-end-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-block-end-style-001.html new file mode 100644 index 0000000..1cddf91 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-block-end-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-end-style disables native appearance for progress</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-end-style."> +<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <progress id="progress" value=0.5></progress> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-end-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-block-end-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-block-end-width-001.html new file mode 100644 index 0000000..fe21ae8 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-block-end-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-end-width disables native appearance for progress</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-end-width."> +<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <progress id="progress" value=0.5></progress> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-end-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-block-start-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-block-start-color-001.html new file mode 100644 index 0000000..67b5b83 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-block-start-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-start-color disables native appearance for progress</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-start-color."> +<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <progress id="progress" value=0.5></progress> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-start-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-block-start-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-block-start-style-001.html new file mode 100644 index 0000000..5359a78 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-block-start-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-start-style disables native appearance for progress</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-start-style."> +<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <progress id="progress" value=0.5></progress> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-start-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-block-start-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-block-start-width-001.html new file mode 100644 index 0000000..1019a98b --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-block-start-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-start-width disables native appearance for progress</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-start-width."> +<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <progress id="progress" value=0.5></progress> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-start-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-bottom-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-bottom-color-001.html new file mode 100644 index 0000000..366236c --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-bottom-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-color disables native appearance for progress</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-color."> +<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <progress id="progress" value=0.5></progress> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-bottom-left-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-bottom-left-radius-001.html new file mode 100644 index 0000000..6dce72a --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-bottom-left-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-left-radius disables native appearance for progress</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-left-radius."> +<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <progress id="progress" value=0.5></progress> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-left-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-bottom-right-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-bottom-right-radius-001.html new file mode 100644 index 0000000..86eb1e7e --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-bottom-right-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-right-radius disables native appearance for progress</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-right-radius."> +<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <progress id="progress" value=0.5></progress> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-right-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-bottom-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-bottom-style-001.html new file mode 100644 index 0000000..900c796 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-bottom-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-style disables native appearance for progress</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-style."> +<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <progress id="progress" value=0.5></progress> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-bottom-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-bottom-width-001.html new file mode 100644 index 0000000..67e9792 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-bottom-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-width disables native appearance for progress</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-width."> +<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <progress id="progress" value=0.5></progress> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-end-end-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-end-end-radius-001.html new file mode 100644 index 0000000..0f78fb7c --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-end-end-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-end-end-radius disables native appearance for progress</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-end-end-radius."> +<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <progress id="progress" value=0.5></progress> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-end-end-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-end-start-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-end-start-radius-001.html new file mode 100644 index 0000000..9f74da94 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-end-start-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-end-start-radius disables native appearance for progress</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-end-start-radius."> +<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <progress id="progress" value=0.5></progress> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-end-start-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-image-outset-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-image-outset-001.html new file mode 100644 index 0000000..306c161 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-image-outset-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-outset disables native appearance for progress</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-outset."> +<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <progress id="progress" value=0.5></progress> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-outset"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-image-repeat-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-image-repeat-001.html new file mode 100644 index 0000000..2ba0e04 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-image-repeat-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-repeat disables native appearance for progress</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-repeat."> +<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <progress id="progress" value=0.5></progress> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-repeat"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-image-slice-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-image-slice-001.html new file mode 100644 index 0000000..42d6560 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-image-slice-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-slice disables native appearance for progress</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-slice."> +<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <progress id="progress" value=0.5></progress> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-slice"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-image-source-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-image-source-001.html new file mode 100644 index 0000000..80e6fdc --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-image-source-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-source disables native appearance for progress</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-source."> +<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <progress id="progress" value=0.5></progress> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-source"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-image-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-image-width-001.html new file mode 100644 index 0000000..5086cba --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-image-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-width disables native appearance for progress</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-width."> +<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <progress id="progress" value=0.5></progress> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-inline-end-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-inline-end-color-001.html new file mode 100644 index 0000000..88427b78 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-inline-end-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-end-color disables native appearance for progress</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-end-color."> +<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <progress id="progress" value=0.5></progress> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-end-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-inline-end-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-inline-end-style-001.html new file mode 100644 index 0000000..e16bb5a --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-inline-end-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-end-style disables native appearance for progress</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-end-style."> +<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <progress id="progress" value=0.5></progress> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-end-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-inline-end-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-inline-end-width-001.html new file mode 100644 index 0000000..88f56153 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-inline-end-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-end-width disables native appearance for progress</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-end-width."> +<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <progress id="progress" value=0.5></progress> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-end-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-inline-start-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-inline-start-color-001.html new file mode 100644 index 0000000..a94c23d --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-inline-start-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-start-color disables native appearance for progress</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-start-color."> +<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <progress id="progress" value=0.5></progress> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-start-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-inline-start-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-inline-start-style-001.html new file mode 100644 index 0000000..479a0faa --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-inline-start-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-start-style disables native appearance for progress</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-start-style."> +<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <progress id="progress" value=0.5></progress> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-start-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-inline-start-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-inline-start-width-001.html new file mode 100644 index 0000000..480fbc7 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-inline-start-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-start-width disables native appearance for progress</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-start-width."> +<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <progress id="progress" value=0.5></progress> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-start-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-left-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-left-color-001.html new file mode 100644 index 0000000..0f6a3c6 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-left-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-left-color disables native appearance for progress</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-left-color."> +<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <progress id="progress" value=0.5></progress> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-left-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-left-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-left-style-001.html new file mode 100644 index 0000000..aab0719b --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-left-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-left-style disables native appearance for progress</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-left-style."> +<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <progress id="progress" value=0.5></progress> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-left-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-left-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-left-width-001.html new file mode 100644 index 0000000..6c24d4e7 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-left-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-left-width disables native appearance for progress</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-left-width."> +<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <progress id="progress" value=0.5></progress> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-left-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-right-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-right-color-001.html new file mode 100644 index 0000000..2f0aa135 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-right-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-right-color disables native appearance for progress</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-right-color."> +<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <progress id="progress" value=0.5></progress> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-right-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-right-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-right-style-001.html new file mode 100644 index 0000000..02dfe72 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-right-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-right-style disables native appearance for progress</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-right-style."> +<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <progress id="progress" value=0.5></progress> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-right-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-right-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-right-width-001.html new file mode 100644 index 0000000..4f438b5320 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-right-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-right-width disables native appearance for progress</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-right-width."> +<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <progress id="progress" value=0.5></progress> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-right-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-start-end-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-start-end-radius-001.html new file mode 100644 index 0000000..bdab3fd --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-start-end-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-start-end-radius disables native appearance for progress</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-start-end-radius."> +<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <progress id="progress" value=0.5></progress> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-start-end-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-start-start-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-start-start-radius-001.html new file mode 100644 index 0000000..5c5f068 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-start-start-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-start-start-radius disables native appearance for progress</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-start-start-radius."> +<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <progress id="progress" value=0.5></progress> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-start-start-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-top-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-top-color-001.html new file mode 100644 index 0000000..62c0d5f --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-top-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-color disables native appearance for progress</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-color."> +<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <progress id="progress" value=0.5></progress> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-top-left-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-top-left-radius-001.html new file mode 100644 index 0000000..7c6b62f --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-top-left-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-left-radius disables native appearance for progress</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-left-radius."> +<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <progress id="progress" value=0.5></progress> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-left-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-top-right-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-top-right-radius-001.html new file mode 100644 index 0000000..f412a90 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-top-right-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-right-radius disables native appearance for progress</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-right-radius."> +<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <progress id="progress" value=0.5></progress> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-right-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-top-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-top-style-001.html new file mode 100644 index 0000000..c8601df --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-top-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-style disables native appearance for progress</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-style."> +<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <progress id="progress" value=0.5></progress> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-top-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-top-width-001.html new file mode 100644 index 0000000..ea5c5c4 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-top-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-width disables native appearance for progress</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-width."> +<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <progress id="progress" value=0.5></progress> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-background-attachment-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-background-attachment-001.html new file mode 100644 index 0000000..8c7e8ea --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-background-attachment-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-attachment disables native appearance for radio-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-attachment."> +<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="radio-input" type="radio"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-attachment"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-background-clip-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-background-clip-001.html new file mode 100644 index 0000000..cbb6a7e --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-background-clip-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-clip disables native appearance for radio-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-clip."> +<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="radio-input" type="radio"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-clip"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-background-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-background-color-001.html new file mode 100644 index 0000000..ce5b79bb --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-background-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-color disables native appearance for radio-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-color."> +<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="radio-input" type="radio"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-background-image-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-background-image-001.html new file mode 100644 index 0000000..e15e9e4 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-background-image-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-image disables native appearance for radio-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-image."> +<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="radio-input" type="radio"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-image"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-background-origin-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-background-origin-001.html new file mode 100644 index 0000000..0e81e6f --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-background-origin-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-origin disables native appearance for radio-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-origin."> +<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="radio-input" type="radio"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-origin"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-background-position-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-background-position-001.html new file mode 100644 index 0000000..4fa8e7a --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-background-position-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-position disables native appearance for radio-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-position."> +<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="radio-input" type="radio"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-position"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-background-size-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-background-size-001.html new file mode 100644 index 0000000..1a989ed6 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-background-size-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-size disables native appearance for radio-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-size."> +<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="radio-input" type="radio"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-size"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-block-end-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-block-end-color-001.html new file mode 100644 index 0000000..d7708ce4c --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-block-end-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-end-color disables native appearance for radio-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-end-color."> +<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="radio-input" type="radio"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-end-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-block-end-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-block-end-style-001.html new file mode 100644 index 0000000..4707f09 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-block-end-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-end-style disables native appearance for radio-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-end-style."> +<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="radio-input" type="radio"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-end-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-block-end-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-block-end-width-001.html new file mode 100644 index 0000000..a0098cc --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-block-end-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-end-width disables native appearance for radio-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-end-width."> +<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="radio-input" type="radio"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-end-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-block-start-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-block-start-color-001.html new file mode 100644 index 0000000..0375cd8 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-block-start-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-start-color disables native appearance for radio-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-start-color."> +<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="radio-input" type="radio"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-start-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-block-start-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-block-start-style-001.html new file mode 100644 index 0000000..ec17b48 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-block-start-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-start-style disables native appearance for radio-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-start-style."> +<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="radio-input" type="radio"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-start-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-block-start-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-block-start-width-001.html new file mode 100644 index 0000000..2e3d944 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-block-start-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-start-width disables native appearance for radio-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-start-width."> +<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="radio-input" type="radio"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-start-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-bottom-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-bottom-color-001.html new file mode 100644 index 0000000..1cbebba --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-bottom-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-color disables native appearance for radio-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-color."> +<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="radio-input" type="radio"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-bottom-left-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-bottom-left-radius-001.html new file mode 100644 index 0000000..f9c253da8 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-bottom-left-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-left-radius disables native appearance for radio-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-left-radius."> +<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="radio-input" type="radio"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-left-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-bottom-right-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-bottom-right-radius-001.html new file mode 100644 index 0000000..5f14585 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-bottom-right-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-right-radius disables native appearance for radio-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-right-radius."> +<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="radio-input" type="radio"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-right-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-bottom-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-bottom-style-001.html new file mode 100644 index 0000000..96c8932 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-bottom-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-style disables native appearance for radio-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-style."> +<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="radio-input" type="radio"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-bottom-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-bottom-width-001.html new file mode 100644 index 0000000..be80a5af --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-bottom-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-width disables native appearance for radio-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-width."> +<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="radio-input" type="radio"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-end-end-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-end-end-radius-001.html new file mode 100644 index 0000000..f03b3ff --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-end-end-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-end-end-radius disables native appearance for radio-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-end-end-radius."> +<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="radio-input" type="radio"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-end-end-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-end-start-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-end-start-radius-001.html new file mode 100644 index 0000000..954a4ff --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-end-start-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-end-start-radius disables native appearance for radio-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-end-start-radius."> +<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="radio-input" type="radio"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-end-start-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-image-outset-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-image-outset-001.html new file mode 100644 index 0000000..89653068 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-image-outset-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-outset disables native appearance for radio-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-outset."> +<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="radio-input" type="radio"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-outset"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-image-repeat-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-image-repeat-001.html new file mode 100644 index 0000000..662f9ca6 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-image-repeat-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-repeat disables native appearance for radio-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-repeat."> +<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="radio-input" type="radio"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-repeat"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-image-slice-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-image-slice-001.html new file mode 100644 index 0000000..f15ebe3 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-image-slice-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-slice disables native appearance for radio-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-slice."> +<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="radio-input" type="radio"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-slice"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-image-source-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-image-source-001.html new file mode 100644 index 0000000..539ebb7b --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-image-source-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-source disables native appearance for radio-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-source."> +<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="radio-input" type="radio"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-source"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-image-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-image-width-001.html new file mode 100644 index 0000000..a17d8475 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-image-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-width disables native appearance for radio-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-width."> +<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="radio-input" type="radio"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-inline-end-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-inline-end-color-001.html new file mode 100644 index 0000000..877207006 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-inline-end-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-end-color disables native appearance for radio-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-end-color."> +<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="radio-input" type="radio"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-end-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-inline-end-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-inline-end-style-001.html new file mode 100644 index 0000000..271f4e3 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-inline-end-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-end-style disables native appearance for radio-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-end-style."> +<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="radio-input" type="radio"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-end-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-inline-end-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-inline-end-width-001.html new file mode 100644 index 0000000..7f61c6f --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-inline-end-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-end-width disables native appearance for radio-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-end-width."> +<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="radio-input" type="radio"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-end-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-inline-start-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-inline-start-color-001.html new file mode 100644 index 0000000..6c25f25 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-inline-start-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-start-color disables native appearance for radio-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-start-color."> +<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="radio-input" type="radio"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-start-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-inline-start-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-inline-start-style-001.html new file mode 100644 index 0000000..5ced60d --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-inline-start-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-start-style disables native appearance for radio-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-start-style."> +<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="radio-input" type="radio"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-start-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-inline-start-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-inline-start-width-001.html new file mode 100644 index 0000000..f39286a7 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-inline-start-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-start-width disables native appearance for radio-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-start-width."> +<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="radio-input" type="radio"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-start-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-left-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-left-color-001.html new file mode 100644 index 0000000..b19deb2 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-left-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-left-color disables native appearance for radio-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-left-color."> +<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="radio-input" type="radio"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-left-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-left-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-left-style-001.html new file mode 100644 index 0000000..56e7d9e --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-left-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-left-style disables native appearance for radio-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-left-style."> +<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="radio-input" type="radio"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-left-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-left-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-left-width-001.html new file mode 100644 index 0000000..2ee2531b --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-left-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-left-width disables native appearance for radio-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-left-width."> +<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="radio-input" type="radio"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-left-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-right-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-right-color-001.html new file mode 100644 index 0000000..8fbb9f4 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-right-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-right-color disables native appearance for radio-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-right-color."> +<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="radio-input" type="radio"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-right-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-right-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-right-style-001.html new file mode 100644 index 0000000..df88bff3 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-right-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-right-style disables native appearance for radio-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-right-style."> +<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="radio-input" type="radio"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-right-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-right-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-right-width-001.html new file mode 100644 index 0000000..22ce6e0 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-right-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-right-width disables native appearance for radio-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-right-width."> +<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="radio-input" type="radio"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-right-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-start-end-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-start-end-radius-001.html new file mode 100644 index 0000000..360b827 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-start-end-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-start-end-radius disables native appearance for radio-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-start-end-radius."> +<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="radio-input" type="radio"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-start-end-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-start-start-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-start-start-radius-001.html new file mode 100644 index 0000000..6a6904d --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-start-start-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-start-start-radius disables native appearance for radio-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-start-start-radius."> +<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="radio-input" type="radio"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-start-start-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-top-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-top-color-001.html new file mode 100644 index 0000000..0808686 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-top-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-color disables native appearance for radio-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-color."> +<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="radio-input" type="radio"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-top-left-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-top-left-radius-001.html new file mode 100644 index 0000000..426cae1 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-top-left-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-left-radius disables native appearance for radio-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-left-radius."> +<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="radio-input" type="radio"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-left-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-top-right-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-top-right-radius-001.html new file mode 100644 index 0000000..b954275 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-top-right-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-right-radius disables native appearance for radio-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-right-radius."> +<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="radio-input" type="radio"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-right-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-top-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-top-style-001.html new file mode 100644 index 0000000..ead7b86c --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-top-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-style disables native appearance for radio-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-style."> +<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="radio-input" type="radio"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-top-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-top-width-001.html new file mode 100644 index 0000000..c2a8674 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-top-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-width disables native appearance for radio-input</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-width."> +<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="radio-input" type="radio"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-background-attachment-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-background-attachment-001.html new file mode 100644 index 0000000..72c767a --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-background-attachment-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-attachment disables native appearance for range</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-attachment."> +<link rel="match" href="../compute-kind-widget-fallback-range-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="range-input" type="range"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-attachment"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-background-clip-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-background-clip-001.html new file mode 100644 index 0000000..790641d --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-background-clip-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-clip disables native appearance for range</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-clip."> +<link rel="match" href="../compute-kind-widget-fallback-range-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="range-input" type="range"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-clip"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-background-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-background-color-001.html new file mode 100644 index 0000000..b3e18ad --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-background-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-color disables native appearance for range</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-color."> +<link rel="match" href="../compute-kind-widget-fallback-range-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="range-input" type="range"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-background-image-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-background-image-001.html new file mode 100644 index 0000000..4043b25f --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-background-image-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-image disables native appearance for range</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-image."> +<link rel="match" href="../compute-kind-widget-fallback-range-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="range-input" type="range"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-image"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-background-origin-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-background-origin-001.html new file mode 100644 index 0000000..a80b97b2 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-background-origin-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-origin disables native appearance for range</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-origin."> +<link rel="match" href="../compute-kind-widget-fallback-range-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="range-input" type="range"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-origin"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-background-position-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-background-position-001.html new file mode 100644 index 0000000..895faa0 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-background-position-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-position disables native appearance for range</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-position."> +<link rel="match" href="../compute-kind-widget-fallback-range-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="range-input" type="range"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-position"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-background-size-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-background-size-001.html new file mode 100644 index 0000000..a351379 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-background-size-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-size disables native appearance for range</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-size."> +<link rel="match" href="../compute-kind-widget-fallback-range-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="range-input" type="range"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-size"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-block-end-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-block-end-color-001.html new file mode 100644 index 0000000..557070fe --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-block-end-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-end-color disables native appearance for range</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-end-color."> +<link rel="match" href="../compute-kind-widget-fallback-range-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="range-input" type="range"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-end-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-block-end-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-block-end-style-001.html new file mode 100644 index 0000000..b0748f3 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-block-end-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-end-style disables native appearance for range</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-end-style."> +<link rel="match" href="../compute-kind-widget-fallback-range-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="range-input" type="range"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-end-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-block-end-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-block-end-width-001.html new file mode 100644 index 0000000..f5b075a --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-block-end-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-end-width disables native appearance for range</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-end-width."> +<link rel="match" href="../compute-kind-widget-fallback-range-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="range-input" type="range"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-end-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-block-start-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-block-start-color-001.html new file mode 100644 index 0000000..28a37ea --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-block-start-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-start-color disables native appearance for range</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-start-color."> +<link rel="match" href="../compute-kind-widget-fallback-range-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="range-input" type="range"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-start-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-block-start-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-block-start-style-001.html new file mode 100644 index 0000000..3ff761c --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-block-start-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-start-style disables native appearance for range</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-start-style."> +<link rel="match" href="../compute-kind-widget-fallback-range-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="range-input" type="range"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-start-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-block-start-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-block-start-width-001.html new file mode 100644 index 0000000..78458b66 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-block-start-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-start-width disables native appearance for range</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-start-width."> +<link rel="match" href="../compute-kind-widget-fallback-range-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="range-input" type="range"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-start-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-bottom-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-bottom-color-001.html new file mode 100644 index 0000000..fabdf0a --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-bottom-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-color disables native appearance for range</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-color."> +<link rel="match" href="../compute-kind-widget-fallback-range-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="range-input" type="range"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-bottom-left-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-bottom-left-radius-001.html new file mode 100644 index 0000000..4f4b4c6 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-bottom-left-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-left-radius disables native appearance for range</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-left-radius."> +<link rel="match" href="../compute-kind-widget-fallback-range-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="range-input" type="range"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-left-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-bottom-right-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-bottom-right-radius-001.html new file mode 100644 index 0000000..5a0bdd29 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-bottom-right-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-right-radius disables native appearance for range</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-right-radius."> +<link rel="match" href="../compute-kind-widget-fallback-range-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="range-input" type="range"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-right-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-bottom-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-bottom-style-001.html new file mode 100644 index 0000000..2478e65 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-bottom-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-style disables native appearance for range</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-style."> +<link rel="match" href="../compute-kind-widget-fallback-range-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="range-input" type="range"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-bottom-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-bottom-width-001.html new file mode 100644 index 0000000..9243564 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-bottom-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-width disables native appearance for range</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-width."> +<link rel="match" href="../compute-kind-widget-fallback-range-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="range-input" type="range"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-end-end-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-end-end-radius-001.html new file mode 100644 index 0000000..96b8ee9 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-end-end-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-end-end-radius disables native appearance for range</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-end-end-radius."> +<link rel="match" href="../compute-kind-widget-fallback-range-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="range-input" type="range"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-end-end-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-end-start-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-end-start-radius-001.html new file mode 100644 index 0000000..2c2e4ed6 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-end-start-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-end-start-radius disables native appearance for range</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-end-start-radius."> +<link rel="match" href="../compute-kind-widget-fallback-range-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="range-input" type="range"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-end-start-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-image-outset-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-image-outset-001.html new file mode 100644 index 0000000..9890eae --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-image-outset-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-outset disables native appearance for range</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-outset."> +<link rel="match" href="../compute-kind-widget-fallback-range-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="range-input" type="range"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-outset"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-image-repeat-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-image-repeat-001.html new file mode 100644 index 0000000..a3602ef --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-image-repeat-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-repeat disables native appearance for range</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-repeat."> +<link rel="match" href="../compute-kind-widget-fallback-range-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="range-input" type="range"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-repeat"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-image-slice-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-image-slice-001.html new file mode 100644 index 0000000..0c8ffa1 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-image-slice-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-slice disables native appearance for range</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-slice."> +<link rel="match" href="../compute-kind-widget-fallback-range-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="range-input" type="range"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-slice"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-image-source-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-image-source-001.html new file mode 100644 index 0000000..60fcd03 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-image-source-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-source disables native appearance for range</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-source."> +<link rel="match" href="../compute-kind-widget-fallback-range-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="range-input" type="range"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-source"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-image-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-image-width-001.html new file mode 100644 index 0000000..59098ee --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-image-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-width disables native appearance for range</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-width."> +<link rel="match" href="../compute-kind-widget-fallback-range-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="range-input" type="range"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-inline-end-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-inline-end-color-001.html new file mode 100644 index 0000000..16e2c1b --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-inline-end-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-end-color disables native appearance for range</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-end-color."> +<link rel="match" href="../compute-kind-widget-fallback-range-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="range-input" type="range"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-end-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-inline-end-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-inline-end-style-001.html new file mode 100644 index 0000000..7e664810 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-inline-end-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-end-style disables native appearance for range</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-end-style."> +<link rel="match" href="../compute-kind-widget-fallback-range-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="range-input" type="range"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-end-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-inline-end-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-inline-end-width-001.html new file mode 100644 index 0000000..eaff4997 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-inline-end-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-end-width disables native appearance for range</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-end-width."> +<link rel="match" href="../compute-kind-widget-fallback-range-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="range-input" type="range"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-end-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-inline-start-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-inline-start-color-001.html new file mode 100644 index 0000000..1636941 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-inline-start-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-start-color disables native appearance for range</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-start-color."> +<link rel="match" href="../compute-kind-widget-fallback-range-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="range-input" type="range"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-start-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-inline-start-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-inline-start-style-001.html new file mode 100644 index 0000000..a5b216d --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-inline-start-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-start-style disables native appearance for range</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-start-style."> +<link rel="match" href="../compute-kind-widget-fallback-range-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="range-input" type="range"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-start-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-inline-start-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-inline-start-width-001.html new file mode 100644 index 0000000..0eb1f6e --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-inline-start-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-start-width disables native appearance for range</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-start-width."> +<link rel="match" href="../compute-kind-widget-fallback-range-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="range-input" type="range"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-start-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-left-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-left-color-001.html new file mode 100644 index 0000000..02135ea --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-left-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-left-color disables native appearance for range</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-left-color."> +<link rel="match" href="../compute-kind-widget-fallback-range-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="range-input" type="range"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-left-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-left-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-left-style-001.html new file mode 100644 index 0000000..edef1998 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-left-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-left-style disables native appearance for range</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-left-style."> +<link rel="match" href="../compute-kind-widget-fallback-range-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="range-input" type="range"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-left-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-left-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-left-width-001.html new file mode 100644 index 0000000..e9d2804b --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-left-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-left-width disables native appearance for range</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-left-width."> +<link rel="match" href="../compute-kind-widget-fallback-range-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="range-input" type="range"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-left-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-right-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-right-color-001.html new file mode 100644 index 0000000..fb20afa --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-right-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-right-color disables native appearance for range</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-right-color."> +<link rel="match" href="../compute-kind-widget-fallback-range-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="range-input" type="range"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-right-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-right-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-right-style-001.html new file mode 100644 index 0000000..6f4bfe4 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-right-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-right-style disables native appearance for range</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-right-style."> +<link rel="match" href="../compute-kind-widget-fallback-range-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="range-input" type="range"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-right-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-right-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-right-width-001.html new file mode 100644 index 0000000..03422cd5 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-right-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-right-width disables native appearance for range</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-right-width."> +<link rel="match" href="../compute-kind-widget-fallback-range-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="range-input" type="range"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-right-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-start-end-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-start-end-radius-001.html new file mode 100644 index 0000000..c5d4621 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-start-end-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-start-end-radius disables native appearance for range</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-start-end-radius."> +<link rel="match" href="../compute-kind-widget-fallback-range-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="range-input" type="range"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-start-end-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-start-start-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-start-start-radius-001.html new file mode 100644 index 0000000..5c4a81f0 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-start-start-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-start-start-radius disables native appearance for range</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-start-start-radius."> +<link rel="match" href="../compute-kind-widget-fallback-range-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="range-input" type="range"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-start-start-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-top-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-top-color-001.html new file mode 100644 index 0000000..a8b12f5 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-top-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-color disables native appearance for range</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-color."> +<link rel="match" href="../compute-kind-widget-fallback-range-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="range-input" type="range"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-top-left-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-top-left-radius-001.html new file mode 100644 index 0000000..0eefc06 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-top-left-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-left-radius disables native appearance for range</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-left-radius."> +<link rel="match" href="../compute-kind-widget-fallback-range-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="range-input" type="range"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-left-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-top-right-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-top-right-radius-001.html new file mode 100644 index 0000000..d43e98ee --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-top-right-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-right-radius disables native appearance for range</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-right-radius."> +<link rel="match" href="../compute-kind-widget-fallback-range-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="range-input" type="range"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-right-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-top-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-top-style-001.html new file mode 100644 index 0000000..1e8dec3 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-top-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-style disables native appearance for range</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-style."> +<link rel="match" href="../compute-kind-widget-fallback-range-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="range-input" type="range"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-top-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-top-width-001.html new file mode 100644 index 0000000..a45f6b1 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-top-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-width disables native appearance for range</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-width."> +<link rel="match" href="../compute-kind-widget-fallback-range-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <input id="range-input" type="range"> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-background-attachment-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-background-attachment-001.html new file mode 100644 index 0000000..9ba8944 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-background-attachment-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-attachment disables native appearance for select-dropdown-box</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-attachment."> +<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-dropdown-box"><option>select-dropdown-box</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-attachment"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-background-clip-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-background-clip-001.html new file mode 100644 index 0000000..719bec2 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-background-clip-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-clip disables native appearance for select-dropdown-box</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-clip."> +<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-dropdown-box"><option>select-dropdown-box</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-clip"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-background-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-background-color-001.html new file mode 100644 index 0000000..9092c41 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-background-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-color disables native appearance for select-dropdown-box</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-color."> +<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-dropdown-box"><option>select-dropdown-box</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-background-image-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-background-image-001.html new file mode 100644 index 0000000..972c343 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-background-image-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-image disables native appearance for select-dropdown-box</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-image."> +<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-dropdown-box"><option>select-dropdown-box</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-image"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-background-origin-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-background-origin-001.html new file mode 100644 index 0000000..abc9acfc --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-background-origin-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-origin disables native appearance for select-dropdown-box</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-origin."> +<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-dropdown-box"><option>select-dropdown-box</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-origin"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-background-position-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-background-position-001.html new file mode 100644 index 0000000..999fff421 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-background-position-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-position disables native appearance for select-dropdown-box</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-position."> +<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-dropdown-box"><option>select-dropdown-box</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-position"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-background-size-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-background-size-001.html new file mode 100644 index 0000000..977bc0e --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-background-size-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-size disables native appearance for select-dropdown-box</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-size."> +<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-dropdown-box"><option>select-dropdown-box</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-size"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-block-end-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-block-end-color-001.html new file mode 100644 index 0000000..46bdb5b --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-block-end-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-end-color disables native appearance for select-dropdown-box</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-end-color."> +<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-dropdown-box"><option>select-dropdown-box</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-end-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-block-end-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-block-end-style-001.html new file mode 100644 index 0000000..aa37885 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-block-end-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-end-style disables native appearance for select-dropdown-box</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-end-style."> +<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-dropdown-box"><option>select-dropdown-box</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-end-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-block-end-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-block-end-width-001.html new file mode 100644 index 0000000..cebe998f --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-block-end-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-end-width disables native appearance for select-dropdown-box</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-end-width."> +<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-dropdown-box"><option>select-dropdown-box</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-end-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-block-start-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-block-start-color-001.html new file mode 100644 index 0000000..9c238d5 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-block-start-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-start-color disables native appearance for select-dropdown-box</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-start-color."> +<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-dropdown-box"><option>select-dropdown-box</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-start-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-block-start-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-block-start-style-001.html new file mode 100644 index 0000000..7061a367 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-block-start-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-start-style disables native appearance for select-dropdown-box</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-start-style."> +<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-dropdown-box"><option>select-dropdown-box</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-start-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-block-start-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-block-start-width-001.html new file mode 100644 index 0000000..34578a4 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-block-start-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-start-width disables native appearance for select-dropdown-box</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-start-width."> +<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-dropdown-box"><option>select-dropdown-box</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-start-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-bottom-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-bottom-color-001.html new file mode 100644 index 0000000..d1a7a01 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-bottom-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-color disables native appearance for select-dropdown-box</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-color."> +<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-dropdown-box"><option>select-dropdown-box</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-bottom-left-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-bottom-left-radius-001.html new file mode 100644 index 0000000..1c70cd361 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-bottom-left-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-left-radius disables native appearance for select-dropdown-box</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-left-radius."> +<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-dropdown-box"><option>select-dropdown-box</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-left-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-bottom-right-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-bottom-right-radius-001.html new file mode 100644 index 0000000..5185032 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-bottom-right-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-right-radius disables native appearance for select-dropdown-box</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-right-radius."> +<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-dropdown-box"><option>select-dropdown-box</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-right-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-bottom-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-bottom-style-001.html new file mode 100644 index 0000000..ceda4319 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-bottom-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-style disables native appearance for select-dropdown-box</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-style."> +<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-dropdown-box"><option>select-dropdown-box</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-bottom-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-bottom-width-001.html new file mode 100644 index 0000000..3c43f47 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-bottom-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-width disables native appearance for select-dropdown-box</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-width."> +<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-dropdown-box"><option>select-dropdown-box</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-end-end-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-end-end-radius-001.html new file mode 100644 index 0000000..182c527c --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-end-end-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-end-end-radius disables native appearance for select-dropdown-box</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-end-end-radius."> +<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-dropdown-box"><option>select-dropdown-box</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-end-end-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-end-start-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-end-start-radius-001.html new file mode 100644 index 0000000..efbd14d --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-end-start-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-end-start-radius disables native appearance for select-dropdown-box</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-end-start-radius."> +<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-dropdown-box"><option>select-dropdown-box</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-end-start-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-image-outset-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-image-outset-001.html new file mode 100644 index 0000000..5a0eb9be --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-image-outset-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-outset disables native appearance for select-dropdown-box</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-outset."> +<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-dropdown-box"><option>select-dropdown-box</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-outset"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-image-repeat-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-image-repeat-001.html new file mode 100644 index 0000000..5ad2b2c --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-image-repeat-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-repeat disables native appearance for select-dropdown-box</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-repeat."> +<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-dropdown-box"><option>select-dropdown-box</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-repeat"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-image-slice-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-image-slice-001.html new file mode 100644 index 0000000..3993331 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-image-slice-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-slice disables native appearance for select-dropdown-box</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-slice."> +<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-dropdown-box"><option>select-dropdown-box</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-slice"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-image-source-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-image-source-001.html new file mode 100644 index 0000000..9c9da293 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-image-source-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-source disables native appearance for select-dropdown-box</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-source."> +<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-dropdown-box"><option>select-dropdown-box</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-source"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-image-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-image-width-001.html new file mode 100644 index 0000000..d03492c --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-image-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-width disables native appearance for select-dropdown-box</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-width."> +<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-dropdown-box"><option>select-dropdown-box</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-inline-end-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-inline-end-color-001.html new file mode 100644 index 0000000..b849814 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-inline-end-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-end-color disables native appearance for select-dropdown-box</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-end-color."> +<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-dropdown-box"><option>select-dropdown-box</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-end-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-inline-end-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-inline-end-style-001.html new file mode 100644 index 0000000..13a75cc --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-inline-end-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-end-style disables native appearance for select-dropdown-box</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-end-style."> +<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-dropdown-box"><option>select-dropdown-box</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-end-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-inline-end-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-inline-end-width-001.html new file mode 100644 index 0000000..40d13678 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-inline-end-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-end-width disables native appearance for select-dropdown-box</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-end-width."> +<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-dropdown-box"><option>select-dropdown-box</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-end-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-inline-start-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-inline-start-color-001.html new file mode 100644 index 0000000..de4241f --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-inline-start-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-start-color disables native appearance for select-dropdown-box</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-start-color."> +<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-dropdown-box"><option>select-dropdown-box</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-start-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-inline-start-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-inline-start-style-001.html new file mode 100644 index 0000000..9ea8f4df --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-inline-start-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-start-style disables native appearance for select-dropdown-box</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-start-style."> +<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-dropdown-box"><option>select-dropdown-box</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-start-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-inline-start-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-inline-start-width-001.html new file mode 100644 index 0000000..dedfa6d4 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-inline-start-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-start-width disables native appearance for select-dropdown-box</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-start-width."> +<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-dropdown-box"><option>select-dropdown-box</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-start-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-left-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-left-color-001.html new file mode 100644 index 0000000..5f88004 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-left-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-left-color disables native appearance for select-dropdown-box</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-left-color."> +<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-dropdown-box"><option>select-dropdown-box</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-left-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-left-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-left-style-001.html new file mode 100644 index 0000000..d574ac6 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-left-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-left-style disables native appearance for select-dropdown-box</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-left-style."> +<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-dropdown-box"><option>select-dropdown-box</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-left-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-left-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-left-width-001.html new file mode 100644 index 0000000..0c466b3 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-left-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-left-width disables native appearance for select-dropdown-box</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-left-width."> +<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-dropdown-box"><option>select-dropdown-box</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-left-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-right-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-right-color-001.html new file mode 100644 index 0000000..ac2c9b2 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-right-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-right-color disables native appearance for select-dropdown-box</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-right-color."> +<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-dropdown-box"><option>select-dropdown-box</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-right-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-right-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-right-style-001.html new file mode 100644 index 0000000..671dd6fc --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-right-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-right-style disables native appearance for select-dropdown-box</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-right-style."> +<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-dropdown-box"><option>select-dropdown-box</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-right-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-right-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-right-width-001.html new file mode 100644 index 0000000..2c7baec --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-right-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-right-width disables native appearance for select-dropdown-box</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-right-width."> +<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-dropdown-box"><option>select-dropdown-box</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-right-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-start-end-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-start-end-radius-001.html new file mode 100644 index 0000000..43c1b27 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-start-end-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-start-end-radius disables native appearance for select-dropdown-box</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-start-end-radius."> +<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-dropdown-box"><option>select-dropdown-box</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-start-end-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-start-start-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-start-start-radius-001.html new file mode 100644 index 0000000..f902a43 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-start-start-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-start-start-radius disables native appearance for select-dropdown-box</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-start-start-radius."> +<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-dropdown-box"><option>select-dropdown-box</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-start-start-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-top-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-top-color-001.html new file mode 100644 index 0000000..b030e5c --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-top-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-color disables native appearance for select-dropdown-box</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-color."> +<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-dropdown-box"><option>select-dropdown-box</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-top-left-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-top-left-radius-001.html new file mode 100644 index 0000000..35d83e29 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-top-left-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-left-radius disables native appearance for select-dropdown-box</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-left-radius."> +<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-dropdown-box"><option>select-dropdown-box</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-left-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-top-right-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-top-right-radius-001.html new file mode 100644 index 0000000..922a101b --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-top-right-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-right-radius disables native appearance for select-dropdown-box</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-right-radius."> +<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-dropdown-box"><option>select-dropdown-box</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-right-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-top-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-top-style-001.html new file mode 100644 index 0000000..dfddc274 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-top-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-style disables native appearance for select-dropdown-box</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-style."> +<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-dropdown-box"><option>select-dropdown-box</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-top-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-top-width-001.html new file mode 100644 index 0000000..3001943 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-top-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-width disables native appearance for select-dropdown-box</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-width."> +<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-dropdown-box"><option>select-dropdown-box</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-background-attachment-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-background-attachment-001.html new file mode 100644 index 0000000..b6f4087 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-background-attachment-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-attachment disables native appearance for select-listbox</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-attachment."> +<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select multiple id="select-listbox"><option>select-listbox</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-attachment"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-background-clip-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-background-clip-001.html new file mode 100644 index 0000000..43f8721 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-background-clip-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-clip disables native appearance for select-listbox</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-clip."> +<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select multiple id="select-listbox"><option>select-listbox</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-clip"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-background-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-background-color-001.html new file mode 100644 index 0000000..b349902 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-background-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-color disables native appearance for select-listbox</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-color."> +<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select multiple id="select-listbox"><option>select-listbox</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-background-image-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-background-image-001.html new file mode 100644 index 0000000..bf8b706 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-background-image-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-image disables native appearance for select-listbox</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-image."> +<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select multiple id="select-listbox"><option>select-listbox</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-image"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-background-origin-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-background-origin-001.html new file mode 100644 index 0000000..dfd1a93 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-background-origin-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-origin disables native appearance for select-listbox</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-origin."> +<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select multiple id="select-listbox"><option>select-listbox</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-origin"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-background-position-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-background-position-001.html new file mode 100644 index 0000000..41b6a7b --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-background-position-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-position disables native appearance for select-listbox</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-position."> +<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select multiple id="select-listbox"><option>select-listbox</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-position"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-background-size-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-background-size-001.html new file mode 100644 index 0000000..64fe9a0c --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-background-size-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-size disables native appearance for select-listbox</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-size."> +<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select multiple id="select-listbox"><option>select-listbox</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-size"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-block-end-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-block-end-color-001.html new file mode 100644 index 0000000..17a010b --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-block-end-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-end-color disables native appearance for select-listbox</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-end-color."> +<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select multiple id="select-listbox"><option>select-listbox</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-end-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-block-end-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-block-end-style-001.html new file mode 100644 index 0000000..f079e82 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-block-end-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-end-style disables native appearance for select-listbox</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-end-style."> +<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select multiple id="select-listbox"><option>select-listbox</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-end-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-block-end-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-block-end-width-001.html new file mode 100644 index 0000000..8f741e2 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-block-end-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-end-width disables native appearance for select-listbox</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-end-width."> +<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select multiple id="select-listbox"><option>select-listbox</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-end-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-block-start-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-block-start-color-001.html new file mode 100644 index 0000000..28ff9ee --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-block-start-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-start-color disables native appearance for select-listbox</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-start-color."> +<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select multiple id="select-listbox"><option>select-listbox</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-start-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-block-start-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-block-start-style-001.html new file mode 100644 index 0000000..dc7bcd0 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-block-start-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-start-style disables native appearance for select-listbox</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-start-style."> +<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select multiple id="select-listbox"><option>select-listbox</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-start-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-block-start-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-block-start-width-001.html new file mode 100644 index 0000000..0509dde --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-block-start-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-start-width disables native appearance for select-listbox</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-start-width."> +<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select multiple id="select-listbox"><option>select-listbox</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-start-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-bottom-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-bottom-color-001.html new file mode 100644 index 0000000..af7704d --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-bottom-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-color disables native appearance for select-listbox</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-color."> +<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select multiple id="select-listbox"><option>select-listbox</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-bottom-left-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-bottom-left-radius-001.html new file mode 100644 index 0000000..b38b4435 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-bottom-left-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-left-radius disables native appearance for select-listbox</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-left-radius."> +<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select multiple id="select-listbox"><option>select-listbox</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-left-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-bottom-right-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-bottom-right-radius-001.html new file mode 100644 index 0000000..f797e07 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-bottom-right-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-right-radius disables native appearance for select-listbox</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-right-radius."> +<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select multiple id="select-listbox"><option>select-listbox</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-right-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-bottom-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-bottom-style-001.html new file mode 100644 index 0000000..6d895bc --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-bottom-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-style disables native appearance for select-listbox</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-style."> +<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select multiple id="select-listbox"><option>select-listbox</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-bottom-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-bottom-width-001.html new file mode 100644 index 0000000..14ea015 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-bottom-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-width disables native appearance for select-listbox</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-width."> +<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select multiple id="select-listbox"><option>select-listbox</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-end-end-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-end-end-radius-001.html new file mode 100644 index 0000000..d105047 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-end-end-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-end-end-radius disables native appearance for select-listbox</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-end-end-radius."> +<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select multiple id="select-listbox"><option>select-listbox</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-end-end-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-end-start-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-end-start-radius-001.html new file mode 100644 index 0000000..0ca58e5 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-end-start-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-end-start-radius disables native appearance for select-listbox</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-end-start-radius."> +<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select multiple id="select-listbox"><option>select-listbox</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-end-start-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-image-outset-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-image-outset-001.html new file mode 100644 index 0000000..367d1f6 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-image-outset-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-outset disables native appearance for select-listbox</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-outset."> +<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select multiple id="select-listbox"><option>select-listbox</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-outset"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-image-repeat-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-image-repeat-001.html new file mode 100644 index 0000000..558ab52 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-image-repeat-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-repeat disables native appearance for select-listbox</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-repeat."> +<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select multiple id="select-listbox"><option>select-listbox</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-repeat"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-image-slice-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-image-slice-001.html new file mode 100644 index 0000000..736ffd42 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-image-slice-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-slice disables native appearance for select-listbox</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-slice."> +<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select multiple id="select-listbox"><option>select-listbox</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-slice"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-image-source-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-image-source-001.html new file mode 100644 index 0000000..987ed46 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-image-source-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-source disables native appearance for select-listbox</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-source."> +<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select multiple id="select-listbox"><option>select-listbox</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-source"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-image-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-image-width-001.html new file mode 100644 index 0000000..e6d824e --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-image-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-width disables native appearance for select-listbox</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-width."> +<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select multiple id="select-listbox"><option>select-listbox</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-inline-end-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-inline-end-color-001.html new file mode 100644 index 0000000..269805c2 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-inline-end-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-end-color disables native appearance for select-listbox</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-end-color."> +<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select multiple id="select-listbox"><option>select-listbox</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-end-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-inline-end-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-inline-end-style-001.html new file mode 100644 index 0000000..74f6794 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-inline-end-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-end-style disables native appearance for select-listbox</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-end-style."> +<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select multiple id="select-listbox"><option>select-listbox</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-end-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-inline-end-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-inline-end-width-001.html new file mode 100644 index 0000000..bfb561c4 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-inline-end-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-end-width disables native appearance for select-listbox</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-end-width."> +<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select multiple id="select-listbox"><option>select-listbox</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-end-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-inline-start-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-inline-start-color-001.html new file mode 100644 index 0000000..7403def --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-inline-start-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-start-color disables native appearance for select-listbox</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-start-color."> +<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select multiple id="select-listbox"><option>select-listbox</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-start-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-inline-start-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-inline-start-style-001.html new file mode 100644 index 0000000..235436b --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-inline-start-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-start-style disables native appearance for select-listbox</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-start-style."> +<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select multiple id="select-listbox"><option>select-listbox</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-start-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-inline-start-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-inline-start-width-001.html new file mode 100644 index 0000000..24f6eb28 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-inline-start-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-start-width disables native appearance for select-listbox</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-start-width."> +<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select multiple id="select-listbox"><option>select-listbox</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-start-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-left-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-left-color-001.html new file mode 100644 index 0000000..107eeec6 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-left-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-left-color disables native appearance for select-listbox</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-left-color."> +<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select multiple id="select-listbox"><option>select-listbox</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-left-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-left-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-left-style-001.html new file mode 100644 index 0000000..a97d90c --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-left-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-left-style disables native appearance for select-listbox</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-left-style."> +<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select multiple id="select-listbox"><option>select-listbox</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-left-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-left-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-left-width-001.html new file mode 100644 index 0000000..894276b --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-left-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-left-width disables native appearance for select-listbox</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-left-width."> +<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select multiple id="select-listbox"><option>select-listbox</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-left-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-right-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-right-color-001.html new file mode 100644 index 0000000..6ebb3df --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-right-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-right-color disables native appearance for select-listbox</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-right-color."> +<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select multiple id="select-listbox"><option>select-listbox</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-right-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-right-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-right-style-001.html new file mode 100644 index 0000000..4cc8372 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-right-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-right-style disables native appearance for select-listbox</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-right-style."> +<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select multiple id="select-listbox"><option>select-listbox</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-right-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-right-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-right-width-001.html new file mode 100644 index 0000000..029c608 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-right-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-right-width disables native appearance for select-listbox</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-right-width."> +<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select multiple id="select-listbox"><option>select-listbox</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-right-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-start-end-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-start-end-radius-001.html new file mode 100644 index 0000000..464d7dfd --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-start-end-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-start-end-radius disables native appearance for select-listbox</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-start-end-radius."> +<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select multiple id="select-listbox"><option>select-listbox</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-start-end-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-start-start-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-start-start-radius-001.html new file mode 100644 index 0000000..81c7892 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-start-start-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-start-start-radius disables native appearance for select-listbox</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-start-start-radius."> +<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select multiple id="select-listbox"><option>select-listbox</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-start-start-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-top-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-top-color-001.html new file mode 100644 index 0000000..d7c68ac --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-top-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-color disables native appearance for select-listbox</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-color."> +<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select multiple id="select-listbox"><option>select-listbox</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-top-left-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-top-left-radius-001.html new file mode 100644 index 0000000..3b306bb7 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-top-left-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-left-radius disables native appearance for select-listbox</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-left-radius."> +<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select multiple id="select-listbox"><option>select-listbox</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-left-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-top-right-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-top-right-radius-001.html new file mode 100644 index 0000000..ae809138 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-top-right-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-right-radius disables native appearance for select-listbox</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-right-radius."> +<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select multiple id="select-listbox"><option>select-listbox</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-right-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-top-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-top-style-001.html new file mode 100644 index 0000000..8fbbb91 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-top-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-style disables native appearance for select-listbox</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-style."> +<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select multiple id="select-listbox"><option>select-listbox</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-top-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-top-width-001.html new file mode 100644 index 0000000..b80972a5 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-top-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-width disables native appearance for select-listbox</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-width."> +<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select multiple id="select-listbox"><option>select-listbox</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-background-attachment-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-background-attachment-001.html new file mode 100644 index 0000000..4378b65 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-background-attachment-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-attachment disables native appearance for select-menulist-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-attachment."> +<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-menulist-button"><option>select-menulist-button</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-attachment"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-background-clip-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-background-clip-001.html new file mode 100644 index 0000000..d62a086 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-background-clip-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-clip disables native appearance for select-menulist-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-clip."> +<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-menulist-button"><option>select-menulist-button</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-clip"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-background-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-background-color-001.html new file mode 100644 index 0000000..bbf30993 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-background-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-color disables native appearance for select-menulist-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-color."> +<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-menulist-button"><option>select-menulist-button</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-background-image-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-background-image-001.html new file mode 100644 index 0000000..12c9fd5 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-background-image-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-image disables native appearance for select-menulist-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-image."> +<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-menulist-button"><option>select-menulist-button</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-image"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-background-origin-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-background-origin-001.html new file mode 100644 index 0000000..336fc86 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-background-origin-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-origin disables native appearance for select-menulist-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-origin."> +<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-menulist-button"><option>select-menulist-button</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-origin"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-background-position-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-background-position-001.html new file mode 100644 index 0000000..7f40136 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-background-position-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-position disables native appearance for select-menulist-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-position."> +<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-menulist-button"><option>select-menulist-button</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-position"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-background-size-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-background-size-001.html new file mode 100644 index 0000000..bb420cc --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-background-size-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-size disables native appearance for select-menulist-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-size."> +<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-menulist-button"><option>select-menulist-button</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-size"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-block-end-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-block-end-color-001.html new file mode 100644 index 0000000..1a476ac --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-block-end-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-end-color disables native appearance for select-menulist-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-end-color."> +<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-menulist-button"><option>select-menulist-button</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-end-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-block-end-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-block-end-style-001.html new file mode 100644 index 0000000..db78458 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-block-end-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-end-style disables native appearance for select-menulist-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-end-style."> +<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-menulist-button"><option>select-menulist-button</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-end-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-block-end-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-block-end-width-001.html new file mode 100644 index 0000000..f21984e --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-block-end-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-end-width disables native appearance for select-menulist-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-end-width."> +<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-menulist-button"><option>select-menulist-button</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-end-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-block-start-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-block-start-color-001.html new file mode 100644 index 0000000..95308ab --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-block-start-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-start-color disables native appearance for select-menulist-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-start-color."> +<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-menulist-button"><option>select-menulist-button</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-start-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-block-start-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-block-start-style-001.html new file mode 100644 index 0000000..1fa80c7 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-block-start-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-start-style disables native appearance for select-menulist-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-start-style."> +<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-menulist-button"><option>select-menulist-button</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-start-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-block-start-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-block-start-width-001.html new file mode 100644 index 0000000..57553cd3 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-block-start-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-start-width disables native appearance for select-menulist-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-start-width."> +<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-menulist-button"><option>select-menulist-button</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-start-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-bottom-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-bottom-color-001.html new file mode 100644 index 0000000..4666747 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-bottom-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-color disables native appearance for select-menulist-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-color."> +<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-menulist-button"><option>select-menulist-button</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-bottom-left-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-bottom-left-radius-001.html new file mode 100644 index 0000000..c58d57f7 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-bottom-left-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-left-radius disables native appearance for select-menulist-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-left-radius."> +<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-menulist-button"><option>select-menulist-button</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-left-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-bottom-right-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-bottom-right-radius-001.html new file mode 100644 index 0000000..e302b17d --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-bottom-right-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-right-radius disables native appearance for select-menulist-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-right-radius."> +<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-menulist-button"><option>select-menulist-button</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-right-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-bottom-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-bottom-style-001.html new file mode 100644 index 0000000..c0154d1 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-bottom-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-style disables native appearance for select-menulist-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-style."> +<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-menulist-button"><option>select-menulist-button</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-bottom-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-bottom-width-001.html new file mode 100644 index 0000000..1dc7027 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-bottom-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-width disables native appearance for select-menulist-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-width."> +<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-menulist-button"><option>select-menulist-button</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-end-end-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-end-end-radius-001.html new file mode 100644 index 0000000..ebedeac --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-end-end-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-end-end-radius disables native appearance for select-menulist-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-end-end-radius."> +<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-menulist-button"><option>select-menulist-button</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-end-end-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-end-start-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-end-start-radius-001.html new file mode 100644 index 0000000..4a02399 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-end-start-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-end-start-radius disables native appearance for select-menulist-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-end-start-radius."> +<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-menulist-button"><option>select-menulist-button</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-end-start-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-image-outset-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-image-outset-001.html new file mode 100644 index 0000000..015737dc --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-image-outset-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-outset disables native appearance for select-menulist-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-outset."> +<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-menulist-button"><option>select-menulist-button</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-outset"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-image-repeat-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-image-repeat-001.html new file mode 100644 index 0000000..cb03b81 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-image-repeat-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-repeat disables native appearance for select-menulist-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-repeat."> +<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-menulist-button"><option>select-menulist-button</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-repeat"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-image-slice-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-image-slice-001.html new file mode 100644 index 0000000..79901007 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-image-slice-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-slice disables native appearance for select-menulist-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-slice."> +<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-menulist-button"><option>select-menulist-button</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-slice"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-image-source-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-image-source-001.html new file mode 100644 index 0000000..1b3838e --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-image-source-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-source disables native appearance for select-menulist-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-source."> +<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-menulist-button"><option>select-menulist-button</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-source"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-image-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-image-width-001.html new file mode 100644 index 0000000..d78b9d9 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-image-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-width disables native appearance for select-menulist-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-width."> +<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-menulist-button"><option>select-menulist-button</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-inline-end-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-inline-end-color-001.html new file mode 100644 index 0000000..20c896d --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-inline-end-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-end-color disables native appearance for select-menulist-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-end-color."> +<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-menulist-button"><option>select-menulist-button</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-end-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-inline-end-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-inline-end-style-001.html new file mode 100644 index 0000000..15048d43 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-inline-end-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-end-style disables native appearance for select-menulist-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-end-style."> +<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-menulist-button"><option>select-menulist-button</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-end-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-inline-end-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-inline-end-width-001.html new file mode 100644 index 0000000..ad7b00e --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-inline-end-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-end-width disables native appearance for select-menulist-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-end-width."> +<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-menulist-button"><option>select-menulist-button</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-end-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-inline-start-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-inline-start-color-001.html new file mode 100644 index 0000000..4641bb3e --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-inline-start-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-start-color disables native appearance for select-menulist-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-start-color."> +<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-menulist-button"><option>select-menulist-button</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-start-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-inline-start-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-inline-start-style-001.html new file mode 100644 index 0000000..ab06492 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-inline-start-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-start-style disables native appearance for select-menulist-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-start-style."> +<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-menulist-button"><option>select-menulist-button</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-start-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-inline-start-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-inline-start-width-001.html new file mode 100644 index 0000000..0e3fcac --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-inline-start-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-start-width disables native appearance for select-menulist-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-start-width."> +<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-menulist-button"><option>select-menulist-button</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-start-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-left-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-left-color-001.html new file mode 100644 index 0000000..9fa4d380 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-left-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-left-color disables native appearance for select-menulist-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-left-color."> +<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-menulist-button"><option>select-menulist-button</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-left-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-left-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-left-style-001.html new file mode 100644 index 0000000..d1351ee --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-left-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-left-style disables native appearance for select-menulist-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-left-style."> +<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-menulist-button"><option>select-menulist-button</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-left-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-left-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-left-width-001.html new file mode 100644 index 0000000..bfcb9e1 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-left-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-left-width disables native appearance for select-menulist-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-left-width."> +<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-menulist-button"><option>select-menulist-button</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-left-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-right-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-right-color-001.html new file mode 100644 index 0000000..71d6758b --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-right-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-right-color disables native appearance for select-menulist-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-right-color."> +<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-menulist-button"><option>select-menulist-button</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-right-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-right-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-right-style-001.html new file mode 100644 index 0000000..0927300e --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-right-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-right-style disables native appearance for select-menulist-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-right-style."> +<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-menulist-button"><option>select-menulist-button</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-right-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-right-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-right-width-001.html new file mode 100644 index 0000000..01928ca --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-right-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-right-width disables native appearance for select-menulist-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-right-width."> +<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-menulist-button"><option>select-menulist-button</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-right-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-start-end-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-start-end-radius-001.html new file mode 100644 index 0000000..7fb7bcf --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-start-end-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-start-end-radius disables native appearance for select-menulist-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-start-end-radius."> +<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-menulist-button"><option>select-menulist-button</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-start-end-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-start-start-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-start-start-radius-001.html new file mode 100644 index 0000000..35fef87 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-start-start-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-start-start-radius disables native appearance for select-menulist-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-start-start-radius."> +<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-menulist-button"><option>select-menulist-button</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-start-start-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-top-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-top-color-001.html new file mode 100644 index 0000000..cf1d4f8 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-top-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-color disables native appearance for select-menulist-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-color."> +<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-menulist-button"><option>select-menulist-button</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-top-left-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-top-left-radius-001.html new file mode 100644 index 0000000..8b0eda3 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-top-left-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-left-radius disables native appearance for select-menulist-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-left-radius."> +<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-menulist-button"><option>select-menulist-button</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-left-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-top-right-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-top-right-radius-001.html new file mode 100644 index 0000000..d2ec819 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-top-right-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-right-radius disables native appearance for select-menulist-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-right-radius."> +<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-menulist-button"><option>select-menulist-button</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-right-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-top-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-top-style-001.html new file mode 100644 index 0000000..5625d4f --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-top-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-style disables native appearance for select-menulist-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-style."> +<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-menulist-button"><option>select-menulist-button</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-top-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-top-width-001.html new file mode 100644 index 0000000..536a7ac --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-top-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-width disables native appearance for select-menulist-button</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-width."> +<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <select id="select-menulist-button"><option>select-menulist-button</option></select> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-background-attachment-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-background-attachment-001.html new file mode 100644 index 0000000..ab67317a --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-background-attachment-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-attachment disables native appearance for textarea</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-attachment."> +<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <textarea id="textarea">textarea</textarea> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-attachment"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-background-clip-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-background-clip-001.html new file mode 100644 index 0000000..821cdda --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-background-clip-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-clip disables native appearance for textarea</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-clip."> +<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <textarea id="textarea">textarea</textarea> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-clip"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-background-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-background-color-001.html new file mode 100644 index 0000000..999bf80a --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-background-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-color disables native appearance for textarea</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-color."> +<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <textarea id="textarea">textarea</textarea> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-background-image-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-background-image-001.html new file mode 100644 index 0000000..3017121 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-background-image-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-image disables native appearance for textarea</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-image."> +<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <textarea id="textarea">textarea</textarea> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-image"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-background-origin-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-background-origin-001.html new file mode 100644 index 0000000..9eaaeabc --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-background-origin-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-origin disables native appearance for textarea</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-origin."> +<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <textarea id="textarea">textarea</textarea> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-origin"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-background-position-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-background-position-001.html new file mode 100644 index 0000000..42c4f0a --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-background-position-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-position disables native appearance for textarea</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-position."> +<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <textarea id="textarea">textarea</textarea> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-position"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-background-size-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-background-size-001.html new file mode 100644 index 0000000..00d5719 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-background-size-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: background-size disables native appearance for textarea</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes background-size."> +<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <textarea id="textarea">textarea</textarea> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "background-size"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-block-end-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-block-end-color-001.html new file mode 100644 index 0000000..c44d7d58 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-block-end-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-end-color disables native appearance for textarea</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-end-color."> +<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <textarea id="textarea">textarea</textarea> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-end-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-block-end-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-block-end-style-001.html new file mode 100644 index 0000000..61f2f20 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-block-end-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-end-style disables native appearance for textarea</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-end-style."> +<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <textarea id="textarea">textarea</textarea> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-end-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-block-end-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-block-end-width-001.html new file mode 100644 index 0000000..c18998c --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-block-end-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-end-width disables native appearance for textarea</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-end-width."> +<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <textarea id="textarea">textarea</textarea> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-end-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-block-start-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-block-start-color-001.html new file mode 100644 index 0000000..4952f5a7 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-block-start-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-start-color disables native appearance for textarea</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-start-color."> +<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <textarea id="textarea">textarea</textarea> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-start-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-block-start-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-block-start-style-001.html new file mode 100644 index 0000000..757ace51 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-block-start-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-start-style disables native appearance for textarea</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-start-style."> +<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <textarea id="textarea">textarea</textarea> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-start-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-block-start-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-block-start-width-001.html new file mode 100644 index 0000000..c32109d --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-block-start-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-block-start-width disables native appearance for textarea</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-block-start-width."> +<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <textarea id="textarea">textarea</textarea> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-block-start-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-bottom-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-bottom-color-001.html new file mode 100644 index 0000000..6bbcadcc --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-bottom-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-color disables native appearance for textarea</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-color."> +<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <textarea id="textarea">textarea</textarea> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-bottom-left-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-bottom-left-radius-001.html new file mode 100644 index 0000000..8d1e7c4b --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-bottom-left-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-left-radius disables native appearance for textarea</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-left-radius."> +<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <textarea id="textarea">textarea</textarea> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-left-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-bottom-right-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-bottom-right-radius-001.html new file mode 100644 index 0000000..d7efd39f --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-bottom-right-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-right-radius disables native appearance for textarea</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-right-radius."> +<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <textarea id="textarea">textarea</textarea> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-right-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-bottom-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-bottom-style-001.html new file mode 100644 index 0000000..82c24b5 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-bottom-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-style disables native appearance for textarea</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-style."> +<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <textarea id="textarea">textarea</textarea> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-bottom-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-bottom-width-001.html new file mode 100644 index 0000000..f26aa76 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-bottom-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-bottom-width disables native appearance for textarea</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-bottom-width."> +<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <textarea id="textarea">textarea</textarea> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-bottom-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-end-end-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-end-end-radius-001.html new file mode 100644 index 0000000..6f75cec --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-end-end-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-end-end-radius disables native appearance for textarea</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-end-end-radius."> +<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <textarea id="textarea">textarea</textarea> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-end-end-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-end-start-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-end-start-radius-001.html new file mode 100644 index 0000000..6820c01 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-end-start-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-end-start-radius disables native appearance for textarea</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-end-start-radius."> +<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <textarea id="textarea">textarea</textarea> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-end-start-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-image-outset-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-image-outset-001.html new file mode 100644 index 0000000..eceb94c0 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-image-outset-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-outset disables native appearance for textarea</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-outset."> +<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <textarea id="textarea">textarea</textarea> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-outset"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-image-repeat-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-image-repeat-001.html new file mode 100644 index 0000000..c5861b0 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-image-repeat-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-repeat disables native appearance for textarea</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-repeat."> +<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <textarea id="textarea">textarea</textarea> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-repeat"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-image-slice-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-image-slice-001.html new file mode 100644 index 0000000..ffe49fd --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-image-slice-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-slice disables native appearance for textarea</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-slice."> +<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <textarea id="textarea">textarea</textarea> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-slice"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-image-source-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-image-source-001.html new file mode 100644 index 0000000..e8c66dd --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-image-source-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-source disables native appearance for textarea</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-source."> +<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <textarea id="textarea">textarea</textarea> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-source"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-image-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-image-width-001.html new file mode 100644 index 0000000..62848f6c --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-image-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-image-width disables native appearance for textarea</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-image-width."> +<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <textarea id="textarea">textarea</textarea> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-image-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-inline-end-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-inline-end-color-001.html new file mode 100644 index 0000000..96dfb2c --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-inline-end-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-end-color disables native appearance for textarea</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-end-color."> +<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <textarea id="textarea">textarea</textarea> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-end-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-inline-end-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-inline-end-style-001.html new file mode 100644 index 0000000..854bb92 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-inline-end-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-end-style disables native appearance for textarea</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-end-style."> +<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <textarea id="textarea">textarea</textarea> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-end-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-inline-end-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-inline-end-width-001.html new file mode 100644 index 0000000..146a672 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-inline-end-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-end-width disables native appearance for textarea</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-end-width."> +<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <textarea id="textarea">textarea</textarea> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-end-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-inline-start-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-inline-start-color-001.html new file mode 100644 index 0000000..21250ce --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-inline-start-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-start-color disables native appearance for textarea</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-start-color."> +<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <textarea id="textarea">textarea</textarea> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-start-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-inline-start-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-inline-start-style-001.html new file mode 100644 index 0000000..95fae5cf --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-inline-start-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-start-style disables native appearance for textarea</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-start-style."> +<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <textarea id="textarea">textarea</textarea> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-start-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-inline-start-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-inline-start-width-001.html new file mode 100644 index 0000000..fa70544 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-inline-start-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-inline-start-width disables native appearance for textarea</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-inline-start-width."> +<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <textarea id="textarea">textarea</textarea> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-inline-start-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-left-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-left-color-001.html new file mode 100644 index 0000000..add41f7 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-left-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-left-color disables native appearance for textarea</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-left-color."> +<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <textarea id="textarea">textarea</textarea> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-left-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-left-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-left-style-001.html new file mode 100644 index 0000000..1a5cb569 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-left-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-left-style disables native appearance for textarea</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-left-style."> +<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <textarea id="textarea">textarea</textarea> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-left-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-left-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-left-width-001.html new file mode 100644 index 0000000..9b76bce --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-left-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-left-width disables native appearance for textarea</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-left-width."> +<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <textarea id="textarea">textarea</textarea> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-left-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-right-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-right-color-001.html new file mode 100644 index 0000000..e5436513 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-right-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-right-color disables native appearance for textarea</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-right-color."> +<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <textarea id="textarea">textarea</textarea> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-right-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-right-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-right-style-001.html new file mode 100644 index 0000000..d01355a --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-right-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-right-style disables native appearance for textarea</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-right-style."> +<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <textarea id="textarea">textarea</textarea> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-right-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-right-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-right-width-001.html new file mode 100644 index 0000000..de1fefb --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-right-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-right-width disables native appearance for textarea</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-right-width."> +<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <textarea id="textarea">textarea</textarea> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-right-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-start-end-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-start-end-radius-001.html new file mode 100644 index 0000000..2d5d8dcd --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-start-end-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-start-end-radius disables native appearance for textarea</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-start-end-radius."> +<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <textarea id="textarea">textarea</textarea> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-start-end-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-start-start-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-start-start-radius-001.html new file mode 100644 index 0000000..3c79c908 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-start-start-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-start-start-radius disables native appearance for textarea</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-start-start-radius."> +<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <textarea id="textarea">textarea</textarea> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-start-start-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-top-color-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-top-color-001.html new file mode 100644 index 0000000..5f79c624 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-top-color-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-color disables native appearance for textarea</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-color."> +<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <textarea id="textarea">textarea</textarea> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-color"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-top-left-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-top-left-radius-001.html new file mode 100644 index 0000000..a065111 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-top-left-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-left-radius disables native appearance for textarea</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-left-radius."> +<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <textarea id="textarea">textarea</textarea> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-left-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-top-right-radius-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-top-right-radius-001.html new file mode 100644 index 0000000..786f486e --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-top-right-radius-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-right-radius disables native appearance for textarea</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-right-radius."> +<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <textarea id="textarea">textarea</textarea> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-right-radius"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-top-style-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-top-style-001.html new file mode 100644 index 0000000..92e3f96 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-top-style-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-style disables native appearance for textarea</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-style."> +<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <textarea id="textarea">textarea</textarea> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-style"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-top-width-001.html b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-top-width-001.html new file mode 100644 index 0000000..1363260 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-top-width-001.html
@@ -0,0 +1,27 @@ +<!-- DO NOT EDIT. This file has been generated. Source: + ./tools/build-compute-kind-widget-fallback-props.py +--> +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Basic User Interface Test: Compute kind of widget: border-top-width disables native appearance for textarea</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> +<meta name="assert" content="appropriate widget is returned when authorProps includes border-top-width."> +<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html"> +<style> + #container { width: 500px; } + #container > #search-text-input { appearance: textfield; } + #container > #select-menulist-button { appearance: none; appearance: menulist-button; } +</style> + +<div id="container"> + <textarea id="textarea">textarea</textarea> +</div> + +<script> +// Set author-level CSS that matches UA style, but don't use the 'revert' value. +const elements = document.querySelectorAll('#container > *'); +const prop = "border-top-width"; +for (const el of elements) { + el.style.setProperty(prop, getComputedStyle(el).getPropertyValue(prop)); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/tools/build-compute-kind-widget-fallback-props.py b/third_party/blink/web_tests/external/wpt/css/css-ui/tools/build-compute-kind-widget-fallback-props.py index a768e4e2..baede8e 100755 --- a/third_party/blink/web_tests/external/wpt/css/css-ui/tools/build-compute-kind-widget-fallback-props.py +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/tools/build-compute-kind-widget-fallback-props.py
@@ -50,15 +50,36 @@ u"border-end-end-radius", ] +els = [ + [u'link', u'<a id="link">a</a>'], + [u'button', u'<button id="button">button</button>'], + [u'input-button', u'<input id="button-input" type="button" value="input-button">'], + [u'input-submit', u'<input id="submit-input" type="submit" value="input-submit">'], + [u'input-reset', u'<input id="reset-input" type="reset" value="input-reset">'], + [u'input-text', u'<input id="text-input" type="text" value="input-text">'], + [u'input-search-text', u'<input id="search-text-input" type="search" value="input-search-text">'], + [u'input-search', u'<input id="search-input" type="search" value="input-search">'], + [u'range', u'<input id="range-input" type="range">'], + [u'checkbox-input', u'<input id="checkbox-input" type="checkbox">'], + [u'radio-input', u'<input id="radio-input" type="radio">'], + [u'color-input', u'<input id="color-input" type="color">'], + [u'textarea', u'<textarea id="textarea">textarea</textarea>'], + [u'select-listbox', u'<select multiple id="select-listbox"><option>select-listbox</option></select>'], + [u'select-dropdown-box', u'<select id="select-dropdown-box"><option>select-dropdown-box</option></select>'], + [u'select-menulist-button', u'<select id="select-menulist-button"><option>select-menulist-button</option></select>'], + [u'meter', u'<meter id="meter" value=0.5></meter>'], + [u'progress', u'<progress id="progress" value=0.5></progress>'], +] + template = u"""<!-- DO NOT EDIT. This file has been generated. Source: ./tools/build-compute-kind-widget-fallback-props.py --> <!DOCTYPE html> <meta charset="utf-8"> -<title>CSS Basic User Interface Test: Compute kind of widget: {prop} disables native appearance for widgets</title> +<title>CSS Basic User Interface Test: Compute kind of widget: {prop} disables native appearance for {el_id}</title> <link rel="help" href="https://drafts.csswg.org/css-ui-4/#computing-kind-widget"> <meta name="assert" content="appropriate widget is returned when authorProps includes {prop}."> -<link rel="match" href="../compute-kind-widget-fallback-ref.html"> +<link rel="match" href="../compute-kind-widget-fallback-{el_id}-ref.html"> <style> #container {{ width: 500px; }} #container > #search-text-input {{ appearance: textfield; }} @@ -66,27 +87,7 @@ </style> <div id="container"> - <a>a</a> - <button id="button">button</button> - <input id="button-input" type="button" value="input-button"> - <input id="submit-input" type="submit" value="input-submit"> - <input id="reset-input" type="reset" value="input-reset"> - - <input id="text-input" type="text" value="input-text"> - <input id="search-text-input" type="search" value="input-search-text"> - <input id="search-input" type="search" value="input-search"> - - <input id="range-input" type="range"> - <input id="checkbox-input" type="checkbox"> - <input id="radio-input" type="radio"> - <input id="color-input" type="color"> - - <textarea id="textarea">textarea</textarea> - <select multiple id="select-listbox"><option>select-listbox</option></select> - <select id="select-dropdown-box"><option>select-dropdown-box</option></select> - <select id="select-menulist-button"><option>select-menulist-button</option></select> - <meter id="meter" value=0.5></meter> - <progress id="progress" value=0.5></progress> + {el_markup} </div> <script> @@ -112,9 +113,10 @@ file.write(content) file.close() -def generate_tests(prop): - test = template.format(prop=prop) - write_file(f"kind-of-widget-fallback-{prop}-001.html", test) +def generate_tests(prop, el_id, el_markup): + test = template.format(prop=prop, el_id=el_id, el_markup=el_markup) + write_file(f"kind-of-widget-fallback-{el_id}-{prop}-001.html", test) for prop in props: - generate_tests(prop) + for el_id, el_markup in els: + generate_tests(prop, el_id, el_markup)
diff --git a/third_party/blink/web_tests/external/wpt/docs/commands.json b/third_party/blink/web_tests/external/wpt/docs/commands.json index 9482d8f..b908485c 100644 --- a/third_party/blink/web_tests/external/wpt/docs/commands.json +++ b/third_party/blink/web_tests/external/wpt/docs/commands.json
@@ -6,7 +6,7 @@ "help": "Build documentation", "virtualenv": true, "requirements": [ - "./requirements.txt" + "requirements.txt" ] } }
diff --git a/third_party/blink/web_tests/external/wpt/html/editing/the-hidden-attribute/beforematch-element-fragment-navigation.html b/third_party/blink/web_tests/external/wpt/html/editing/the-hidden-attribute/beforematch-element-fragment-navigation.html new file mode 100644 index 0000000..812a55f3 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/html/editing/the-hidden-attribute/beforematch-element-fragment-navigation.html
@@ -0,0 +1,200 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<link rel="author" title="Joey Arhar" href="mailto:jarhar@chromium.org"> +<link rel="help" href="https://github.com/WICG/display-locking"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> + +<div id=parentid> + <div id=hiddenid> + <div id=childid>hello</div> + </div> +</div> + +<div id=spacer style="height:4000px">spacer</div> + +<script> +test(() => { + window.location.hash = ''; + hiddenid.hidden = 'until-found'; + window.location.hash = '#hiddenid'; + assert_false(hiddenid.hasAttribute('hidden')); +}, 'Verifies that fragment navigation reveals hidden=until-found elements.'); + +test(() => { + window.location.hash = ''; + parentid.hidden = 'until-found'; + hiddenid.hidden = 'until-found'; + childid.hidden = 'until-found'; + window.location.hash = 'childid'; + assert_false(parentid.hasAttribute('hidden'), 'parentid should not have the hidden attribute.'); + assert_false(hiddenid.hasAttribute('hidden'), 'hiddenid should not have the hidden attribute.'); + assert_false(childid.hasAttribute('hidden'), 'childid should not have the hidden attribute.'); +}, 'Verifies that fragment navigation reveals all parent hidden=until-found elements.'); + +test(() => { + window.location.hash = ''; + hiddenid.hidden = 'until-found'; + let beforematchFiredOnParent = false; + let beforematchFiredOnHidden = false; + let beforematchFiredOnChild = false; + parentid.onbeforematch = () => beforematchFiredOnParent = true; + hiddenid.onbeforematch = () => beforematchFiredOnHidden = true; + childid.onbeforematch = () => beforematchFiredOnChild = true; + + window.location.hash = '#childid'; + assert_true(beforematchFiredOnParent, 'beforematch should have been fired on parentid.'); + assert_true(beforematchFiredOnHidden, 'beforematch should have been fired on hiddenid.'); + assert_false(beforematchFiredOnChild, 'beforematch should not have been fired on childid.'); +}, 'Verifies that the beforematch event is fired synchronously and bubbles after fragment navigation.'); + +test(t => { + window.location.hash = ''; + window.scrollTo(0, 0); + assert_true(window.pageYOffset === 0, 'Scroll should reset at the beginning of the test.'); + + const target = document.createElement('div'); + target.textContent = 'target'; + target.id = 'target'; + target.hidden = 'until-found'; + document.body.appendChild(target); + const spacer = document.createElement('div'); + spacer.style.height = '4000px'; + t.add_cleanup(() => { + target.remove(); + spacer.remove(); + }); + + let beforematchCalled = false; + target.onbeforematch = () => { + assert_equals(window.pageYOffset, 0, 'scrolling should happen after beforematch is fired.'); + beforematchCalled = true; + // Move the target down the page. + document.body.appendChild(spacer); + target.remove(); + document.body.appendChild(target); + }; + + window.location.hash = '#target'; + assert_true(beforematchCalled, 'The beforematch event should have been fired.'); + + const offsetAfterMatch = window.pageYOffset; + assert_not_equals(offsetAfterMatch, 0, 'Fragment navigation should have scrolled down the page to the target element.'); + target.scrollIntoView(); + assert_equals(offsetAfterMatch, window.pageYOffset, `The scroll after beforematch should be the same as scrolling directly to the element's final destination.`); +}, 'Verifies that when a beforematch event handler moves a matching element, we scroll to its final location.'); + +test(t => { + window.location.hash = ''; + const foo = document.createElement('div'); + foo.textContent = 'foo'; + foo.id = 'foo'; + foo.hidden = 'until-found'; + document.body.appendChild(foo); + + const bar = document.createElement('div'); + bar.textContent = 'bar'; + bar.id = 'bar'; + bar.hidden = 'until-found'; + document.body.appendChild(bar); + + t.add_cleanup(() => { + foo.remove(); + bar.remove(); + }); + + let beforematchFiredOnFoo = false; + foo.onbeforematch = () => beforematchFiredOnFoo = true; + let beforematchFiredOnBar = false; + bar.onbeforematch = () => beforematchFiredOnBar = true; + + window.location.hash = '#bar'; + + assert_false(beforematchFiredOnFoo, 'foo was not navigated to, so it should not get the beforematch event.'); + assert_true(beforematchFiredOnBar, 'bar was navigated to, so it should get the beforematch event.'); + assert_true(window.pageYOffset > 0, 'the page should be scrolled down to bar.'); +}, 'Verifies that the beforematch event is fired on the right element when there are multiple hidden=until-found elements.'); + +test(t => { + window.location.hash = ''; + window.scrollTo(0, 0); + assert_true(window.pageYOffset === 0, 'Scroll should reset at the beginning of the test.'); + + const div = document.createElement('div'); + div.textContent = 'detach'; + div.id = 'detach'; + div.hidden = 'until-found'; + document.body.appendChild(div); + t.add_cleanup(() => div.remove()); + + let beforematchCalled = false; + div.onbeforematch = () => { + div.remove(); + beforematchCalled = true; + }; + + window.location.hash = '#detach'; + + assert_true(beforematchCalled, 'beforematch should be called when window.location.hash is set to #detach.'); + assert_true(window.pageYOffset === 0, 'The page should not be scrolled down to where #detach used to be.'); +}, 'Verifies that no scrolling occurs when an element selected by the fragment identifier is detached by the beforematch event handler.'); + +test(t => { + window.location.hash = ''; + window.scrollTo(0, 0); + assert_true(window.pageYOffset === 0, 'Scroll should reset at the beginning of the test.'); + + const div = document.createElement('div'); + div.textContent = 'displaynone'; + div.id = 'displaynone'; + div.hidden = 'until-found'; + document.body.appendChild(div); + t.add_cleanup(() => div.remove()); + + let beforematchCalled = false; + div.addEventListener('beforematch', () => { + div.style = 'display: none'; + beforematchCalled = true; + }); + + window.location.hash = '#displaynone'; + + assert_true(beforematchCalled, 'beforematch should be called when window.location.hash is set to #displaynone.'); + assert_true(window.pageYOffset === 0, 'The page should not be scrolled down to where #displaynone used to be.'); +}, `No scrolling should occur when the beforematch event handler sets the target element's style to display: none.`); + +test(t => { + window.location.hash = ''; + window.scrollTo(0, 0); + assert_true(window.pageYOffset === 0, 'Scroll should reset at the beginning of the test.'); + + const div = document.createElement('div'); + div.textContent = 'visibilityhidden'; + div.id = 'visibilityhidden'; + div.hidden = 'until-found'; + document.body.appendChild(div); + t.add_cleanup(() => div.remove()); + + let beforematchCalled = false; + div.addEventListener('beforematch', () => { + div.style = 'visibility: hidden'; + beforematchCalled = true; + }); + + window.location.hash = '#visibilityhidden'; + + assert_true(beforematchCalled, 'beforematch should be called when window.location.hash is set to #visibilityhidden.'); + assert_true(window.pageYOffset !== 0, 'The page should be scrolled down to where #visibilityhidden is.'); +}, `Scrolling should still occur when beforematch sets visiblity:hidden on the target element.`); + +test(t => { + window.location.hash = ''; + const div = document.createElement('div'); + div.id = 'target'; + div.textContent = 'target'; + document.body.appendChild(div); + t.add_cleanup(() => div.remove()); + div.addEventListener('beforematch', t.unreached_func('beforematch should not be fired without hidden=until-found.')); + window.location.hash = '#target'; +}, 'Verifies that the beforematch event is not fired on elements without hidden=until-found.'); +</script>
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-iframe-element/stash.py b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-iframe-element/stash.py index 231eeb4..2404380 100644 --- a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-iframe-element/stash.py +++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-iframe-element/stash.py
@@ -1,8 +1,3 @@ -# This Source Code Form is subject to the terms of the Mozilla Public -# License, v. 2.0. If a copy of the MPL was not distributed with this -# file, You can obtain one at http://mozilla.org/MPL/2.0/. - - def main(request, response): if request.method == u'POST': request.server.stash.put(request.GET[b"id"], request.body)
diff --git a/third_party/blink/web_tests/external/wpt/mathml/tools/operator-dictionary.xsl b/third_party/blink/web_tests/external/wpt/mathml/tools/operator-dictionary.xsl index d0009755..8c753176 100644 --- a/third_party/blink/web_tests/external/wpt/mathml/tools/operator-dictionary.xsl +++ b/third_party/blink/web_tests/external/wpt/mathml/tools/operator-dictionary.xsl
@@ -1,7 +1,4 @@ <!-- -*- Mode: nXML; tab-width: 2; indent-tabs-mode: nil; -*- --> -<!-- This Source Code Form is subject to the terms of the Mozilla Public - - License, v. 2.0. If a copy of the MPL was not distributed with this - - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:strip-space elements="*"/>
diff --git a/third_party/blink/web_tests/external/wpt/preload/preload-time-to-fetch.https-expected.txt b/third_party/blink/web_tests/external/wpt/preload/preload-time-to-fetch.https-expected.txt index e0e3da53..496668fb 100644 --- a/third_party/blink/web_tests/external/wpt/preload/preload-time-to-fetch.https-expected.txt +++ b/third_party/blink/web_tests/external/wpt/preload/preload-time-to-fetch.https-expected.txt
@@ -2,7 +2,12 @@ PASS Changing a preload href should trigger a fetch PASS Changing a preload "as" from a previously non-matching destination should trigger a fetch PASS Changing a preload "type" (non-matching->matching) should trigger a fetch +PASS Removing a preload non-matching "type" should trigger a fetch +FAIL Removing a preload matching "type" should not trigger a fetch assert_array_equals: expected property 1 to be "timeout" but got "load" (expected array ["load", "timeout"] got ["load", "load"]) PASS Changing a preload media attribute (non matching->matching) should trigger a fetch +PASS Changing a preload media attribute (non matching->non matching) should not trigger a fetch FAIL Changing a preload media attribute (matching->matching) should not trigger a new fetch assert_array_equals: expected property 1 to be "timeout" but got "load" (expected array ["load", "timeout"] got ["load", "load"]) +FAIL Removing a matching preload media attribute should not trigger a new fetch assert_array_equals: expected property 1 to be "timeout" but got "load" (expected array ["load", "timeout"] got ["load", "load"]) +PASS Removing a non-matching preload media attribute should trigger a new fetch Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/preload/preload-time-to-fetch.https.html b/third_party/blink/web_tests/external/wpt/preload/preload-time-to-fetch.https.html index f546682..774501e 100644 --- a/third_party/blink/web_tests/external/wpt/preload/preload-time-to-fetch.https.html +++ b/third_party/blink/web_tests/external/wpt/preload/preload-time-to-fetch.https.html
@@ -1,4 +1,5 @@ <!doctype html> +<meta name="timeout" content="long"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="/common/utils.js"></script> @@ -21,11 +22,14 @@ link.setAttribute(attr, before[attr]); document.head.appendChild(link); const result1 = await loadErrorOrTimeout(); - for (const attr in after) - link.setAttribute(attr, after[attr]); + for (const attr in after) { + if (attr in before && after[attr] === null) + link.removeAttribute(attr); + else + link.setAttribute(attr, after[attr]); + } const result2 = await loadErrorOrTimeout(); assert_array_equals([result1, result2], expected); - assert_equals(result2, 'load'); }, label); } @@ -48,15 +52,48 @@ 'Changing a preload "type" (non-matching->matching) should trigger a fetch'); test_preload_change( + {href: '/common/square.png?4', type: 'text/plain', as: 'image'}, + {type: null}, + ['timeout', 'load'], + 'Removing a preload non-matching "type" should trigger a fetch'); + + +test_preload_change( + {href: '/common/square.png?4', type: 'image/png', as: 'image'}, + {type: null}, + ['load', 'timeout'], + 'Removing a preload matching "type" should not trigger a fetch'); + +test_preload_change( {href: '/common/square.png?5', as: 'image', media: 'screen and (max-width: 10px)'}, {media: 'screen and (max-width: 20000px)'}, ['timeout', 'load'], 'Changing a preload media attribute (non matching->matching) should trigger a fetch'); test_preload_change( - {href: '/common/square.png?5', as: 'image', media: 'screen and (max-width: 100000px)'}, + {href: '/common/square.png?6', as: 'image', media: 'screen and (max-width: 10px)'}, + {media: 'screen and (max-width: 20px)'}, + ['timeout', 'timeout'], + 'Changing a preload media attribute (non matching->non matching) should not trigger a fetch'); + +test_preload_change( + {href: '/common/square.png?7', as: 'image', media: 'screen and (max-width: 100000px)'}, {media: 'screen and (max-width: 20000px)'}, ['load', 'timeout'], 'Changing a preload media attribute (matching->matching) should not trigger a new fetch'); + +test_preload_change( + {href: '/common/square.png?8', as: 'image', media: 'screen and (max-width: 100000px)'}, + {media: null}, + ['load', 'timeout'], + 'Removing a matching preload media attribute should not trigger a new fetch'); + + +test_preload_change( + {href: '/common/square.png?9', as: 'image', media: 'screen and (max-width: 10px)'}, + {media: null}, + ['timeout', 'load'], + 'Removing a non-matching preload media attribute should trigger a new fetch'); + </script> </body> \ No newline at end of file
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/external/wpt/preload/preload-time-to-fetch.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.12/external/wpt/preload/preload-time-to-fetch.https-expected.txt new file mode 100644 index 0000000..496668fb --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac10.12/external/wpt/preload/preload-time-to-fetch.https-expected.txt
@@ -0,0 +1,13 @@ +This is a testharness.js-based test. +PASS Changing a preload href should trigger a fetch +PASS Changing a preload "as" from a previously non-matching destination should trigger a fetch +PASS Changing a preload "type" (non-matching->matching) should trigger a fetch +PASS Removing a preload non-matching "type" should trigger a fetch +FAIL Removing a preload matching "type" should not trigger a fetch assert_array_equals: expected property 1 to be "timeout" but got "load" (expected array ["load", "timeout"] got ["load", "load"]) +PASS Changing a preload media attribute (non matching->matching) should trigger a fetch +PASS Changing a preload media attribute (non matching->non matching) should not trigger a fetch +FAIL Changing a preload media attribute (matching->matching) should not trigger a new fetch assert_array_equals: expected property 1 to be "timeout" but got "load" (expected array ["load", "timeout"] got ["load", "load"]) +FAIL Removing a matching preload media attribute should not trigger a new fetch assert_array_equals: expected property 1 to be "timeout" but got "load" (expected array ["load", "timeout"] got ["load", "load"]) +PASS Removing a non-matching preload media attribute should trigger a new fetch +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac10.13/external/wpt/preload/preload-time-to-fetch.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.13/external/wpt/preload/preload-time-to-fetch.https-expected.txt new file mode 100644 index 0000000..e0e3da53 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac10.13/external/wpt/preload/preload-time-to-fetch.https-expected.txt
@@ -0,0 +1,8 @@ +This is a testharness.js-based test. +PASS Changing a preload href should trigger a fetch +PASS Changing a preload "as" from a previously non-matching destination should trigger a fetch +PASS Changing a preload "type" (non-matching->matching) should trigger a fetch +PASS Changing a preload media attribute (non matching->matching) should trigger a fetch +FAIL Changing a preload media attribute (matching->matching) should not trigger a new fetch assert_array_equals: expected property 1 to be "timeout" but got "load" (expected array ["load", "timeout"] got ["load", "load"]) +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/webexposed/global-interface-listing-expected.txt b/third_party/blink/web_tests/webexposed/global-interface-listing-expected.txt index 381dd32..be8fde7 100644 --- a/third_party/blink/web_tests/webexposed/global-interface-listing-expected.txt +++ b/third_party/blink/web_tests/webexposed/global-interface-listing-expected.txt
@@ -1048,6 +1048,7 @@ interface CanvasFormattedText attribute @@toStringTag getter length + getter styleMap method @@iterator method appendRun method constructor @@ -1057,6 +1058,7 @@ method setRun interface CanvasFormattedTextRun attribute @@toStringTag + getter styleMap getter text method constructor setter text
diff --git a/third_party/blink/web_tests/wpt_internal/canvas/canvas-formattedtext-style.html b/third_party/blink/web_tests/wpt_internal/canvas/canvas-formattedtext-style.html new file mode 100644 index 0000000..8123d89 --- /dev/null +++ b/third_party/blink/web_tests/wpt_internal/canvas/canvas-formattedtext-style.html
@@ -0,0 +1,164 @@ +<!DOCTYPE html> +<link rel="match" href="references/canvas-formattedtext-style-expected.html"> +<!-- Mac/GPU tests will have slightly different underline/strikethrough rendering --> +<meta name=fuzzy content="maxDifference=255;totalPixels=12"> +<html> +<head> + <style> + h3 { + margin: 0px; + } + canvas { + border: 1px solid black; + display: block; + margin-bottom: 2px; + } + </style> +</head> +<body> + <script> + function makeContext(id) { + var canvas = document.getElementById(id); + var context = canvas.getContext("2d", { alpha: true }); + context.fillStyle = "#000000"; + context.clearRect(0, 0, canvas.width, canvas.height); + context.fillStyle = "#FFFFFF"; + context.fillRect(0, 0, canvas.width, canvas.height); + context.font = "20px Arial"; + return context; + } + function makeRun(text, prop, value) { + text.appendRun(new CanvasFormattedTextRun(" ")); + var textRun = new CanvasFormattedTextRun(prop + ":" + value); + textRun.styleMap.set(prop, value); + text.appendRun(textRun); + } + </script> + <h3>Test Font Related Styles</h3> + <canvas width=500 height=100 id="target1"></canvas> + <script> + function testFontRelatedStyles() { + var context = makeContext("target1"); + var text = new CanvasFormattedText(); + text.appendRun(new CanvasFormattedTextRun('Hello World !')); + makeRun(text, 'color', 'blue') + makeRun(text, 'text-decoration', 'underline') + makeRun(text, 'text-decoration', 'line-through') + makeRun(text, 'font-family', 'Times New Roman') + makeRun(text, 'font-kerning', 'none') + makeRun(text, 'font-kerning', 'normal') + makeRun(text, 'font-size', '10px') + + // Test font-size-dependant lengths + text.appendRun(new CanvasFormattedTextRun(" ")); + var textRun = new CanvasFormattedTextRun("1em"); + textRun.styleMap.set('text-decoration', 'underline'); + textRun.styleMap.set('text-decoration-thickness', '1em'); + textRun.styleMap.set('text-underline-offset', '-12px'); + textRun.styleMap.set('font-size', '25px'); + text.appendRun(textRun); + + context.fillFormattedText(text, 0, 0, 500); + }; + testFontRelatedStyles(); + </script> + <canvas width=500 height=30 id="target7"></canvas> + <script> + function testFontRelatedStyles2() { + var context = makeContext("target7"); + var text = new CanvasFormattedText(); + makeRun(text, 'font-weight', 'bold') + context.fillFormattedText(text, 0, 0, 500); + }; + testFontRelatedStyles2(); + </script> + <canvas width=500 height=30 id="target8"></canvas> + <script> + function testFontRelatedStyles3() { + var context = makeContext("target8"); + var text = new CanvasFormattedText(); + makeRun(text, 'font-stretch', 'condensed') + makeRun(text, 'font-variant-caps', 'small-caps'); + context.fillFormattedText(text, 0, 0, 500); + }; + testFontRelatedStyles3(); + </script> + <canvas width=500 height=30 id="target9"></canvas> + <script> + function testFontRelatedStyles3() { + var context = makeContext("target9"); + var text = new CanvasFormattedText(); + makeRun(text, 'font-style', 'italic') + context.fillFormattedText(text, 0, 0, 500); + }; + testFontRelatedStyles3(); + </script> + + <h3>Test RTL</h3> + <canvas width=500 height=30 id="target2"></canvas> + <script> + { + var context = makeContext("target2"); + var text = new CanvasFormattedText(); + var textRun = new CanvasFormattedTextRun('Hello World !'); + text.appendRun(textRun); + text.styleMap.set('direction', 'rtl'); + text.styleMap.set('width', '500px'); + context.fillFormattedText(text, 0, 0, 500); + } + </script> + + <h3>Test align</h3> + <canvas width=500 height=50 id="target3"></canvas> + <script> + { + var context = makeContext("target3"); + var text = new CanvasFormattedText(); + var textRun = new CanvasFormattedTextRun('Hello World ! Hello World ! Hello World ! Hello World ! Hello World !'); + text.appendRun(textRun); + text.styleMap.set('text-align', 'center'); + text.styleMap.set('width', '500px'); + context.fillFormattedText(text, 0, 0, 500); + } + </script> + + <h3>Test Writing-Mode</h3> + <canvas width=100 height=70 id="target4" style="border:1px solid black; display:inline-block;"></canvas> + <script> + { + var context = makeContext("target4"); + var text = new CanvasFormattedText(); + var textRun = new CanvasFormattedTextRun('ABC DEF GHI JKL MNO PQR'); + text.appendRun(textRun); + text.styleMap.set('width', '100px'); + text.styleMap.set('writing-mode', 'vertical-lr'); + context.fillFormattedText(text, 0, 0, 100, 70); + } + </script> + <canvas width=100 height=70 id="target5" style="border:1px solid black; display:inline-block;"></canvas> + <script> + { + var context = makeContext("target5"); + var text = new CanvasFormattedText(); + var textRun = new CanvasFormattedTextRun('ABC DEF GHI JKL MNO PQR'); + text.appendRun(textRun); + text.styleMap.set('width', '100px'); + text.styleMap.set('writing-mode', 'vertical-rl'); + context.fillFormattedText(text, 0, 0, 100, 70); + } + </script> + <canvas width=100 height=70 id="target6" style="border:1px solid black; display:inline-block;"></canvas> + <script> + { + var context = makeContext("target6"); + var text = new CanvasFormattedText(); + var textRun = new CanvasFormattedTextRun('ABC DEF GHI JKL MNO PQR'); + text.appendRun(textRun); + text.styleMap.set('width', '100px'); + text.styleMap.set('writing-mode', 'vertical-rl'); + text.styleMap.set('text-orientation', 'upright'); + context.fillFormattedText(text, 0, 0, 100, 70); + } + </script> +</body> +</html> \ No newline at end of file
diff --git a/third_party/blink/web_tests/wpt_internal/canvas/references/canvas-formattedtext-style-expected.html b/third_party/blink/web_tests/wpt_internal/canvas/references/canvas-formattedtext-style-expected.html new file mode 100644 index 0000000..d9b49423 --- /dev/null +++ b/third_party/blink/web_tests/wpt_internal/canvas/references/canvas-formattedtext-style-expected.html
@@ -0,0 +1,101 @@ +<!DOCTYPE html> +<html> +<head> + <style> + h3 { + margin: 0px; + } + div { + width: 500px; + height: 100px; + border: 1px solid black; + font: 20px Arial; + vertical-align: top; + margin-bottom: 2px; + } + + span { + vertical-align: top; + } + + .ib { + width: 100px; + height: 70px; + display: inline-block; + overflow: hidden; + } + </style> +</head> +<body> + <h3>Test Font Related Styles</h3> + <div id="target1"> + <span>Hello World !</span> + </div> + <script> + function makeRun(id, prop, value) { + document.getElementById(id).innerHTML += " <span style='" + prop + ":" + + value + "' >" + prop + ":" + value + "</span>"; + } + function testFontRelatedStyles() { + makeRun("target1", 'color', 'blue') + makeRun("target1", 'text-decoration', 'underline') + makeRun("target1", 'text-decoration', 'line-through') + makeRun("target1", 'font-family', 'Times New Roman') + makeRun("target1", 'font-kerning', 'none') + makeRun("target1", 'font-kerning', 'normal') + makeRun("target1", 'font-size', '10px') + document.getElementById("target1").innerHTML += " <span style='text-decoration:underline; text-decoration-thickness:1em; text-underline-offset:-12px; font-size:25px;'>1em</span>" + }; + testFontRelatedStyles(); + </script> + + <div id="target7" style="height:30px;"> + </div> + <script> + function testFontRelatedStyles2() { + makeRun("target7", 'font-weight', 'bold') + }; + testFontRelatedStyles2(); + </script> + + <div id="target8" style="height:30px;"> + </div> + <script> + function testFontRelatedStyles3() { + makeRun("target8", 'font-stretch', 'condensed') + makeRun("target8", 'font-variant-caps', 'small-caps'); + }; + testFontRelatedStyles3(); + </script> + + <div id="target9" style="height:30px;"> + </div> + <script> + function testFontRelatedStyles4() { + makeRun("target9", 'font-style', 'italic') + }; + testFontRelatedStyles4(); + </script> + + <h3>Test RTL</h3> + <DIV style="direction:rtl; height:30px;"><span>Hello World !</span></DIV> + + <h3>Test align</h3> + <DIV style="text-align:center; height:50px;"> + <span> + Hello World ! Hello World ! Hello World ! Hello World ! Hello World ! + </span> + </DIV> + + <h3>Test Writing-Mode</h3> + <DIV class="ib" style="writing-mode:vertical-lr"> + ABC DEF GHI JKL MNO PQR + </DIV> + <DIV class="ib" style="writing-mode:vertical-rl"> + ABC DEF GHI JKL MNO PQR + </DIV> + <DIV class="ib" style="writing-mode:vertical-rl; text-orientation: upright;"> + ABC DEF GHI JKL MNO PQR + </DIV> +</body> +</html> \ No newline at end of file
diff --git a/third_party/blink/web_tests/wpt_internal/display-lock/beforematch/beforematch-fragment-bubble.html b/third_party/blink/web_tests/wpt_internal/display-lock/beforematch/beforematch-fragment-bubble.html deleted file mode 100644 index cfa8150..0000000 --- a/third_party/blink/web_tests/wpt_internal/display-lock/beforematch/beforematch-fragment-bubble.html +++ /dev/null
@@ -1,17 +0,0 @@ -<!DOCTYPE html> -<meta charset="utf-8"> -<link rel="author" title="Joey Arhar" href="mailto:jarhar@chromium.org"> -<link rel="help" href="https://github.com/WICG/display-locking"> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> - -<div id=parentid> - <div id=childid>hello</div> -</div> - -<script> -async_test(t => { - parentid.addEventListener('beforematch', t.step_func_done(() => {})); - window.location.hash = '#childid'; -}, 'Tests that the beforematch event bubbles'); -</script>
diff --git a/third_party/blink/web_tests/wpt_internal/display-lock/beforematch/beforematch-fragment-id-modify-target.html b/third_party/blink/web_tests/wpt_internal/display-lock/beforematch/beforematch-fragment-id-modify-target.html deleted file mode 100644 index 6f71b3ac..0000000 --- a/third_party/blink/web_tests/wpt_internal/display-lock/beforematch/beforematch-fragment-id-modify-target.html +++ /dev/null
@@ -1,105 +0,0 @@ -<!DOCTYPE html> -<meta charset="utf-8"> -<link rel="author" title="Joey Arhar" href="mailto:jarhar@chromium.org"> -<link rel="help" href="https://github.com/WICG/display-locking"> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> -<body> - <div style="height: 2000px;">spacer</div> - - <script> - - test(() => { - window.scrollTo(0, 0); - assert_true(window.pageYOffset === 0, 'Scroll should reset at the beginning of the test.'); - - const div = document.createElement('div'); - div.textContent = 'move'; - div.id = 'move'; - document.body.appendChild(div); - - let beforematchCalled = false; - div.addEventListener('beforematc', () => { - // Move the matched element 2000px down the page. - const spacer = document.createElement('div'); - spacer.style.height = '2000px'; - document.body.appendChild(spacer); - div.remove(); - document.body.appendChild(div); - beforematchCalled = true; - }); - - window.location.hash = '#move'; - - const offsetAfterMatch = window.pageYOffset; - div.scrollIntoView(); - assert_equals(offsetAfterMatch, window.pageYOffset, `The scroll after beforematch should be the same as scrolling directly to the element's final destination.`); - }, 'Verifies that when a beforematch event handler moves a matching element, we scroll to its final location.'); - - test(() => { - window.scrollTo(0, 0); - assert_true(window.pageYOffset === 0, 'Scroll should reset at the beginning of the test.'); - - const div = document.createElement('div'); - div.textContent = 'detach'; - div.id = 'detach'; - document.body.appendChild(div); - - let beforematchCalled = false; - div.addEventListener('beforematch', () => { - div.remove(); - beforematchCalled = true; - }); - - window.location.hash = '#detach'; - - assert_true(beforematchCalled, 'beforematch should be called when window.location.hash is set to #detach.'); - assert_true(window.pageYOffset === 0, 'The page should not be scrolled down to where #detach used to be.'); - }, 'Verifies that no scrolling occurs when an element selected by the fragment identifier is detached by the beforematch event handler.'); - - test(() => { - window.scrollTo(0, 0); - assert_true(window.pageYOffset === 0, 'Scroll should reset at the beginning of the test.'); - - const div = document.createElement('div'); - div.textContent = 'displaynone'; - div.id = 'displaynone'; - document.body.appendChild(div); - - let beforematchCalled = false; - div.addEventListener('beforematch', () => { - div.style = 'display: none'; - beforematchCalled = true; - }); - - window.location.hash = '#displaynone'; - - assert_true(beforematchCalled, 'beforematch should be called when window.location.hash is set to #displaynone.'); - assert_true(window.pageYOffset === 0, 'The page should not be scrolled down to where #displaynone used to be.'); - }, `No scrolling should occur when the beforematch event handler sets the target element's style to display: none.`); - - test(() => { - window.scrollTo(0, 0); - assert_true(window.pageYOffset === 0, 'Scroll should reset at the beginning of the test.'); - - const div = document.createElement('div'); - div.textContent = 'visibilityhidden'; - div.id = 'visibilityhidden'; - document.body.appendChild(div); - - let beforematchCalled = false; - div.addEventListener('beforematch', () => { - div.style = 'visibility: hidden'; - beforematchCalled = true; - }); - - window.location.hash = '#visibilityhidden'; - - assert_true(beforematchCalled, 'beforematch should be called when window.location.hash is set to #visibilityhidden.'); - assert_true(window.pageYOffset !== 0, 'The page should be scrolled down to where #visibilityhidden is.'); - }, `Scrolling should still occur when beforematch sets visiblity: none on the target element.`); - - // TODO(jarhar): Write more tests here once we decide on a behavior here: https://github.com/WICG/display-locking/issues/150 - - </script> -</body>
diff --git a/third_party/blink/web_tests/wpt_internal/display-lock/beforematch/beforematch-fragment-id-reparent.html b/third_party/blink/web_tests/wpt_internal/display-lock/beforematch/beforematch-fragment-id-reparent.html deleted file mode 100644 index 355eff1..0000000 --- a/third_party/blink/web_tests/wpt_internal/display-lock/beforematch/beforematch-fragment-id-reparent.html +++ /dev/null
@@ -1,34 +0,0 @@ -<!DOCTYPE html> -<meta charset="utf-8"> -<link rel="author" title="Joey Arhar" href="mailto:jarhar@chromium.org"> -<link rel="help" href="https://github.com/WICG/display-locking"> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> - -<body> - <div style="height: 2000px;">spacer</div> - <script> - async_test(t => { - window.onload = t.step_func_done(() => { - const foo = document.createElement('div'); - foo.textContent = 'foo'; - foo.id = 'foo'; - document.body.appendChild(foo); - foo.addEventListener('beforematch', () => { - // Move the matched element 2000px down the page. - const spacer = document.createElement('div'); - spacer.style.height = '2000px'; - document.body.appendChild(spacer); - foo.remove(); - document.body.appendChild(foo); - }); - - window.location.hash = '#foo'; - - const offsetAfterMatch = window.pageYOffset; - foo.scrollIntoView(); - assert_equals(offsetAfterMatch, window.pageYOffset, `The scroll after beforematch should be the same as scrolling directly to the element's final destination.`); - }); - }, 'Verifies that when a beforematch event handler moves a matching element, we scroll to its final location.'); - </script> -</body>
diff --git a/third_party/blink/web_tests/wpt_internal/display-lock/beforematch/beforematch-fragment-id.html b/third_party/blink/web_tests/wpt_internal/display-lock/beforematch/beforematch-fragment-id.html deleted file mode 100644 index 297effd..0000000 --- a/third_party/blink/web_tests/wpt_internal/display-lock/beforematch/beforematch-fragment-id.html +++ /dev/null
@@ -1,41 +0,0 @@ -<!DOCTYPE html> -<meta charset="utf-8"> -<link rel="author" title="Joey Arhar" href="mailto:jarhar@chromium.org"> -<link rel="help" href="https://github.com/WICG/display-locking"> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> - -<body> - <div style="height: 2000px;">spacer</div> - <script> - async_test(t => { - window.onload = t.step_func_done(() => { - const foo = document.createElement('div'); - foo.textContent = 'foo'; - foo.id = 'foo'; - document.body.appendChild(foo); - window.beforematchFiredOnFoo = false; - foo.addEventListener('beforematch', () => { - window.beforematchFiredOnFoo = true; - }); - - const bar = document.createElement('div'); - bar.textContent = 'bar'; - bar.id = 'bar'; - document.body.appendChild(bar); - window.beforematchFiredOnBar = false; - bar.addEventListener('beforematch', t.step_func(() => { - assert_false(window.beforematchFiredOnBar); - window.beforematchFiredOnBar = true; - assert_equals(window.pageYOffset, 0, 'scrolling should happen after beforematch is fired.'); - })); - - window.location.hash = '#bar'; - - assert_false(window.beforematchFiredOnFoo, 'foo was not searched for, so it should not get the beforematch event.'); - assert_true(window.beforematchFiredOnBar, 'bar was searched for, so it should get the beforematch event.'); - assert_true(window.pageYOffset > 0, 'the page should be scrolled down to bar.'); - }); - }, 'Verifies that the beforematch event on an element selected by the fragment identifier.'); - </script> -</body>
diff --git a/third_party/blink/web_tests/wpt_internal/display-lock/beforematch/hidden-until-found-fragment-navigation-nested.html b/third_party/blink/web_tests/wpt_internal/display-lock/beforematch/hidden-until-found-fragment-navigation-nested.html deleted file mode 100644 index 23fd165..0000000 --- a/third_party/blink/web_tests/wpt_internal/display-lock/beforematch/hidden-until-found-fragment-navigation-nested.html +++ /dev/null
@@ -1,28 +0,0 @@ -<!DOCTYPE html> -<link rel=author href="mailto:jarhar@chromium.org"> -<link rel=help href="https://github.com/whatwg/html/issues/6040"> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> - -<div style="height:2000px">spacer</div> - -<div id=wrapper hidden=until-found> - <div id=target hidden=until-found>target</div> -</div> - -<script> -async_test(t => { - assert_equals(wrapper.getAttribute('hidden'), 'until-found'); - assert_equals(window.pageYOffset, 0, - `The page should be scrolled to the top at the start of the test.`); - - window.location.hash = '#target'; - - requestAnimationFrame(t.step_func_done(() => { - assert_false(wrapper.hasAttribute('hidden'), - `Fragment navigation should remove the hidden attribute for hidden=until-found.`); - assert_not_equals(window.pageYOffset, 0, - `The page should be scrolled down to the target element.`); - })); -}, `hidden=until-found content should be revealed in response to fragment navigation with multiple nested hidden=until-found elements.`); -</script>
diff --git a/third_party/blink/web_tests/wpt_internal/display-lock/beforematch/hidden-until-found-fragment-navigation.html b/third_party/blink/web_tests/wpt_internal/display-lock/beforematch/hidden-until-found-fragment-navigation.html deleted file mode 100644 index 0090f8a..0000000 --- a/third_party/blink/web_tests/wpt_internal/display-lock/beforematch/hidden-until-found-fragment-navigation.html +++ /dev/null
@@ -1,28 +0,0 @@ -<!DOCTYPE html> -<link rel=author href="mailto:jarhar@chromium.org"> -<link rel=help href="https://github.com/whatwg/html/issues/6040"> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> - -<div style="height:2000px">spacer</div> - -<div id=wrapper hidden=until-found> - <div id=target>target</div> -</div> - -<script> -async_test(t => { - assert_equals(wrapper.getAttribute('hidden'), 'until-found'); - assert_equals(window.pageYOffset, 0, - `The page should be scrolled to the top at the start of the test.`); - - window.location.hash = '#target'; - - requestAnimationFrame(t.step_func_done(() => { - assert_false(wrapper.hasAttribute('hidden'), - `Fragment navigation should remove the hidden attribute for hidden=until-found.`); - assert_not_equals(window.pageYOffset, 0, - `The page should be scrolled down to the target element.`); - })); -}, `hidden=until-found content should be revealed in response to fragment navigation.`); -</script>
diff --git a/third_party/blink/web_tests/wpt_internal/display-lock/beforematch/resources/beforematch-scroll-to-text-fragment-basic.html b/third_party/blink/web_tests/wpt_internal/display-lock/beforematch/resources/beforematch-scroll-to-text-fragment-basic.html index 3060120..884e9a6 100644 --- a/third_party/blink/web_tests/wpt_internal/display-lock/beforematch/resources/beforematch-scroll-to-text-fragment-basic.html +++ b/third_party/blink/web_tests/wpt_internal/display-lock/beforematch/resources/beforematch-scroll-to-text-fragment-basic.html
@@ -10,6 +10,7 @@ const foo = document.createElement('div'); foo.textContent = 'foo'; + foo.hidden = 'until-found'; document.body.appendChild(foo); window.beforematchFiredOnFoo = false; foo.addEventListener('beforematch', () => {
diff --git a/third_party/blink/web_tests/wpt_internal/display-lock/beforematch/resources/beforematch-scroll-to-text-fragment-bubble.html b/third_party/blink/web_tests/wpt_internal/display-lock/beforematch/resources/beforematch-scroll-to-text-fragment-bubble.html index b7fa2e6..abfe8ddd 100644 --- a/third_party/blink/web_tests/wpt_internal/display-lock/beforematch/resources/beforematch-scroll-to-text-fragment-bubble.html +++ b/third_party/blink/web_tests/wpt_internal/display-lock/beforematch/resources/beforematch-scroll-to-text-fragment-bubble.html
@@ -4,7 +4,7 @@ <!-- This test is navigated to with the fragment #:~:text=foo --> <div id=parentid> - <div id=childid>foo</div> + <div id=childid hidden=until-found>foo</div> </div> <script>
diff --git a/third_party/blink/web_tests/wpt_internal/display-lock/beforematch/resources/beforematch-scroll-to-text-fragment-with-anchor.html b/third_party/blink/web_tests/wpt_internal/display-lock/beforematch/resources/beforematch-scroll-to-text-fragment-with-anchor.html index edc3544b..3506c6e 100644 --- a/third_party/blink/web_tests/wpt_internal/display-lock/beforematch/resources/beforematch-scroll-to-text-fragment-with-anchor.html +++ b/third_party/blink/web_tests/wpt_internal/display-lock/beforematch/resources/beforematch-scroll-to-text-fragment-with-anchor.html
@@ -4,8 +4,8 @@ <!-- This test is navigated to with the fragment #bar:~:text=foo --> <body> - <div id=foo>foo</div> - <div id=bar>bar</div> + <div id=foo hidden=until-found>foo</div> + <div id=bar hidden=until-found>bar</div> <script> window.beforematchFiredOnFoo = false; foo.addEventListener('beforematch', () => {
diff --git a/third_party/libaom/README.chromium b/third_party/libaom/README.chromium index 8a71ebb..cf3c20ca 100644 --- a/third_party/libaom/README.chromium +++ b/third_party/libaom/README.chromium
@@ -3,9 +3,9 @@ URL: https://aomedia.googlesource.com/aom/ Version: 3.1.2 CPEPrefix: cpe:/a:aomedia:aomedia:3.1.2 -Date: Tuesday March 29 2022 +Date: Wednesday March 30 2022 Branch: main -Commit: 46e8b1da9e10663ef1bb9868ee20fd24cb175448 +Commit: cc31d8c4b722cf7ecd68ac351bf3d288de07bc68 License: BSD License File: source/libaom/LICENSE Security Critical: yes
diff --git a/third_party/libaom/libaom_srcs.gni b/third_party/libaom/libaom_srcs.gni index 446bb368..913654d7 100644 --- a/third_party/libaom/libaom_srcs.gni +++ b/third_party/libaom/libaom_srcs.gni
@@ -1,9 +1,9 @@ # This file is generated. DO NOT EDIT. aom_av1_common_intrin_avx2 = [ - "//third_party/libaom/source/libaom/av1/common/cdef_block_avx2.c", "//third_party/libaom/source/libaom/av1/common/x86/av1_inv_txfm_avx2.c", "//third_party/libaom/source/libaom/av1/common/x86/av1_inv_txfm_avx2.h", + "//third_party/libaom/source/libaom/av1/common/x86/cdef_block_avx2.c", "//third_party/libaom/source/libaom/av1/common/x86/cfl_avx2.c", "//third_party/libaom/source/libaom/av1/common/x86/convolve_2d_avx2.c", "//third_party/libaom/source/libaom/av1/common/x86/convolve_avx2.c", @@ -14,39 +14,39 @@ ] aom_av1_common_intrin_neon = [ + "//third_party/libaom/source/libaom/av1/common/arm/av1_inv_txfm_neon.c", + "//third_party/libaom/source/libaom/av1/common/arm/av1_inv_txfm_neon.h", "//third_party/libaom/source/libaom/av1/common/arm/av1_txfm_neon.c", + "//third_party/libaom/source/libaom/av1/common/arm/blend_a64_hmask_neon.c", + "//third_party/libaom/source/libaom/av1/common/arm/blend_a64_vmask_neon.c", + "//third_party/libaom/source/libaom/av1/common/arm/cdef_block_neon.c", "//third_party/libaom/source/libaom/av1/common/arm/cfl_neon.c", "//third_party/libaom/source/libaom/av1/common/arm/convolve_neon.c", "//third_party/libaom/source/libaom/av1/common/arm/convolve_neon.h", + "//third_party/libaom/source/libaom/av1/common/arm/highbd_inv_txfm_neon.c", "//third_party/libaom/source/libaom/av1/common/arm/jnt_convolve_neon.c", - "//third_party/libaom/source/libaom/av1/common/arm/blend_a64_hmask_neon.c", - "//third_party/libaom/source/libaom/av1/common/arm/blend_a64_vmask_neon.c", "//third_party/libaom/source/libaom/av1/common/arm/reconinter_neon.c", "//third_party/libaom/source/libaom/av1/common/arm/reconintra_neon.c", "//third_party/libaom/source/libaom/av1/common/arm/resize_neon.c", "//third_party/libaom/source/libaom/av1/common/arm/wiener_convolve_neon.c", - "//third_party/libaom/source/libaom/av1/common/arm/av1_inv_txfm_neon.c", - "//third_party/libaom/source/libaom/av1/common/arm/av1_inv_txfm_neon.h", - "//third_party/libaom/source/libaom/av1/common/arm/highbd_inv_txfm_neon.c", - "//third_party/libaom/source/libaom/av1/common/cdef_block_neon.c", ] aom_av1_common_intrin_sse2 = [ - "//third_party/libaom/source/libaom/av1/common/cdef_block_sse2.c", + "//third_party/libaom/source/libaom/av1/common/x86/av1_txfm_sse2.h", + "//third_party/libaom/source/libaom/av1/common/x86/cdef_block_sse2.c", "//third_party/libaom/source/libaom/av1/common/x86/cfl_sse2.c", "//third_party/libaom/source/libaom/av1/common/x86/convolve_2d_sse2.c", "//third_party/libaom/source/libaom/av1/common/x86/convolve_sse2.c", "//third_party/libaom/source/libaom/av1/common/x86/jnt_convolve_sse2.c", "//third_party/libaom/source/libaom/av1/common/x86/wiener_convolve_sse2.c", - "//third_party/libaom/source/libaom/av1/common/x86/av1_txfm_sse2.h", ] aom_av1_common_intrin_sse4_1 = [ - "//third_party/libaom/source/libaom/av1/common/cdef_block_sse4.c", "//third_party/libaom/source/libaom/av1/common/x86/av1_convolve_horiz_rs_sse4.c", "//third_party/libaom/source/libaom/av1/common/x86/av1_convolve_scale_sse4.c", "//third_party/libaom/source/libaom/av1/common/x86/av1_txfm_sse4.c", "//third_party/libaom/source/libaom/av1/common/x86/av1_txfm_sse4.h", + "//third_party/libaom/source/libaom/av1/common/x86/cdef_block_sse4.c", "//third_party/libaom/source/libaom/av1/common/x86/filterintra_sse4.c", "//third_party/libaom/source/libaom/av1/common/x86/highbd_inv_txfm_sse4.c", "//third_party/libaom/source/libaom/av1/common/x86/intra_edge_sse4.c", @@ -54,9 +54,9 @@ ] aom_av1_common_intrin_ssse3 = [ - "//third_party/libaom/source/libaom/av1/common/cdef_block_ssse3.c", "//third_party/libaom/source/libaom/av1/common/x86/av1_inv_txfm_ssse3.c", "//third_party/libaom/source/libaom/av1/common/x86/av1_inv_txfm_ssse3.h", + "//third_party/libaom/source/libaom/av1/common/x86/cdef_block_ssse3.c", "//third_party/libaom/source/libaom/av1/common/x86/cfl_ssse3.c", "//third_party/libaom/source/libaom/av1/common/x86/jnt_convolve_ssse3.c", "//third_party/libaom/source/libaom/av1/common/x86/resize_ssse3.c",
diff --git a/third_party/libaom/source/config/config/aom_version.h b/third_party/libaom/source/config/config/aom_version.h index 5e27081..5a793341 100644 --- a/third_party/libaom/source/config/config/aom_version.h +++ b/third_party/libaom/source/config/config/aom_version.h
@@ -12,8 +12,8 @@ #define VERSION_MAJOR 3 #define VERSION_MINOR 3 #define VERSION_PATCH 0 -#define VERSION_EXTRA "414-g46e8b1da9" +#define VERSION_EXTRA "417-gcc31d8c4b" #define VERSION_PACKED \ ((VERSION_MAJOR << 16) | (VERSION_MINOR << 8) | (VERSION_PATCH)) -#define VERSION_STRING_NOSP "3.3.0-414-g46e8b1da9" -#define VERSION_STRING " 3.3.0-414-g46e8b1da9" +#define VERSION_STRING_NOSP "3.3.0-417-gcc31d8c4b" +#define VERSION_STRING " 3.3.0-417-gcc31d8c4b"
diff --git a/third_party/zlib/contrib/optimizations/inffast_chunk.c b/third_party/zlib/contrib/optimizations/inffast_chunk.c index 4bacbc46..8d62920 100644 --- a/third_party/zlib/contrib/optimizations/inffast_chunk.c +++ b/third_party/zlib/contrib/optimizations/inffast_chunk.c
@@ -95,7 +95,7 @@ code const FAR *dcode; /* local strm->distcode */ unsigned lmask; /* mask for first level of length codes */ unsigned dmask; /* mask for first level of distance codes */ - code here; /* retrieved table entry */ + code const *here; /* retrieved table entry */ unsigned op; /* code bits, operation, extra bits, or */ /* window position, window bytes to copy */ unsigned len; /* match length, unused bytes */ @@ -139,20 +139,20 @@ bits += 8; #endif } - here = lcode[hold & lmask]; + here = lcode + (hold & lmask); dolen: - op = (unsigned)(here.bits); + op = (unsigned)(here->bits); hold >>= op; bits -= op; - op = (unsigned)(here.op); + op = (unsigned)(here->op); if (op == 0) { /* literal */ - Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ? + Tracevv((stderr, here->val >= 0x20 && here->val < 0x7f ? "inflate: literal '%c'\n" : - "inflate: literal 0x%02x\n", here.val)); - *out++ = (unsigned char)(here.val); + "inflate: literal 0x%02x\n", here->val)); + *out++ = (unsigned char)(here->val); } else if (op & 16) { /* length base */ - len = (unsigned)(here.val); + len = (unsigned)(here->val); op &= 15; /* number of extra bits */ if (op) { if (bits < op) { @@ -182,14 +182,14 @@ bits += 8; #endif } - here = dcode[hold & dmask]; + here = dcode + (hold & dmask); dodist: - op = (unsigned)(here.bits); + op = (unsigned)(here->bits); hold >>= op; bits -= op; - op = (unsigned)(here.op); + op = (unsigned)(here->op); if (op & 16) { /* distance base */ - dist = (unsigned)(here.val); + dist = (unsigned)(here->val); op &= 15; /* number of extra bits */ if (bits < op) { #ifdef INFLATE_CHUNK_READ_64LE @@ -295,7 +295,7 @@ } } else if ((op & 64) == 0) { /* 2nd level distance code */ - here = dcode[here.val + (hold & ((1U << op) - 1))]; + here = dcode + here->val + (hold & ((1U << op) - 1)); goto dodist; } else { @@ -305,7 +305,7 @@ } } else if ((op & 64) == 0) { /* 2nd level length code */ - here = lcode[here.val + (hold & ((1U << op) - 1))]; + here = lcode + here->val + (hold & ((1U << op) - 1)); goto dolen; } else if (op & 32) { /* end-of-block */
diff --git a/third_party/zlib/inffast.c b/third_party/zlib/inffast.c index 2797e8a0..d89ad5cc 100644 --- a/third_party/zlib/inffast.c +++ b/third_party/zlib/inffast.c
@@ -74,7 +74,7 @@ code const FAR *dcode; /* local strm->distcode */ unsigned lmask; /* mask for first level of length codes */ unsigned dmask; /* mask for first level of distance codes */ - code here; /* retrieved table entry */ + code const *here; /* retrieved table entry */ unsigned op; /* code bits, operation, extra bits, or */ /* window position, window bytes to copy */ unsigned len; /* match length, unused bytes */ @@ -111,20 +111,20 @@ hold += (unsigned long)(*in++) << bits; bits += 8; } - here = lcode[hold & lmask]; + here = lcode + (hold & lmask); dolen: - op = (unsigned)(here.bits); + op = (unsigned)(here->bits); hold >>= op; bits -= op; - op = (unsigned)(here.op); + op = (unsigned)(here->op); if (op == 0) { /* literal */ - Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ? + Tracevv((stderr, here->val >= 0x20 && here->val < 0x7f ? "inflate: literal '%c'\n" : - "inflate: literal 0x%02x\n", here.val)); - *out++ = (unsigned char)(here.val); + "inflate: literal 0x%02x\n", here->val)); + *out++ = (unsigned char)(here->val); } else if (op & 16) { /* length base */ - len = (unsigned)(here.val); + len = (unsigned)(here->val); op &= 15; /* number of extra bits */ if (op) { if (bits < op) { @@ -142,14 +142,14 @@ hold += (unsigned long)(*in++) << bits; bits += 8; } - here = dcode[hold & dmask]; + here = dcode + (hold & dmask); dodist: - op = (unsigned)(here.bits); + op = (unsigned)(here->bits); hold >>= op; bits -= op; - op = (unsigned)(here.op); + op = (unsigned)(here->op); if (op & 16) { /* distance base */ - dist = (unsigned)(here.val); + dist = (unsigned)(here->val); op &= 15; /* number of extra bits */ if (bits < op) { hold += (unsigned long)(*in++) << bits; @@ -268,7 +268,7 @@ } } else if ((op & 64) == 0) { /* 2nd level distance code */ - here = dcode[here.val + (hold & ((1U << op) - 1))]; + here = dcode + here->val + (hold & ((1U << op) - 1)); goto dodist; } else { @@ -278,7 +278,7 @@ } } else if ((op & 64) == 0) { /* 2nd level length code */ - here = lcode[here.val + (hold & ((1U << op) - 1))]; + here = lcode + here->val + (hold & ((1U << op) - 1)); goto dolen; } else if (op & 32) { /* end-of-block */
diff --git a/tools/cast3p/cast_core.version b/tools/cast3p/cast_core.version new file mode 100644 index 0000000..bd6fb6b --- /dev/null +++ b/tools/cast3p/cast_core.version
@@ -0,0 +1 @@ +cast_20220318_0600_RC00 \ No newline at end of file
diff --git a/tools/cast3p/runtime.version b/tools/cast3p/runtime.version index 3f82e17..9959994 100644 --- a/tools/cast3p/runtime.version +++ b/tools/cast3p/runtime.version
@@ -1 +1 @@ -273826 \ No newline at end of file +297714 \ No newline at end of file
diff --git a/tools/cast3p/update_binaries.py b/tools/cast3p/update_binaries.py new file mode 100755 index 0000000..9435283 --- /dev/null +++ b/tools/cast3p/update_binaries.py
@@ -0,0 +1,77 @@ +#!/usr/bin/env python3 +# Copyright 2021 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +import logging +import os +import subprocess +import shutil +import sys +import tempfile + +from zipfile import ZipFile + +DIR_SOURCE_ROOT = os.path.abspath( + os.path.join(os.path.dirname(__file__), os.pardir, os.pardir)) + +sys.path.append(os.path.join(DIR_SOURCE_ROOT, 'build')) +import find_depot_tools + +CAST_CORE_ROOT = os.path.abspath( + os.path.join(DIR_SOURCE_ROOT, 'third_party', 'cast_core', 'prebuilts')) +CAST_CORE_ZIP_PATH_TEMPLATE = ( + 'gs://castlite-release-artifacts/{version}/third_party/castlite' \ + '/cast_core_qa_sdk_runtime_vizio_castos_armv7a' \ + '/sdk_runtime_vizio_castos_armv7a.tgz') +SIGNATURE_FILE = '.version' +RUNTIME_ROOT = os.path.abspath( + os.path.join(DIR_SOURCE_ROOT, 'third_party', 'cast_web_runtime')) +RUNTIME_ZIP_PATH_TEMPLATE = ( + 'gs://gtv-eureka/internal/1.56core/core_runtime-eng/{version}' \ + '/core_runtime_package.zip') + + +def DownloadFromCloudStorage(url, output_dir): + """Fetches a file from GCS and put it in |output_dir|.""" + cmd = [ + os.path.join(find_depot_tools.DEPOT_TOOLS_PATH, 'gsutil.py'), 'cp', url, + output_dir + ] + task = subprocess.check_call(cmd, + stdout=subprocess.DEVNULL, + stderr=subprocess.DEVNULL) + + +def MakeCleanDirectory(directory_name): + if os.path.exists(directory_name): + shutil.rmtree(directory_name) + os.mkdir(directory_name) + + +def UpdateBinaryIfNecessary(name, version_file, output_dir, gcs_path_template): + """Update the binary at |output_dir| if necessary by comparing versions.""" + version = open(os.path.join(os.path.dirname(__file__), + version_file)).read().strip() + signature_file_path = os.path.join(output_dir, SIGNATURE_FILE) + current_signature = (open(signature_file_path, 'r').read().strip() + if os.path.exists(signature_file_path) else '') + if current_signature != version: + logging.info('Downloading {} version {}...'.format(name, version)) + MakeCleanDirectory(output_dir) + DownloadFromCloudStorage(gcs_path_template.format(version=version), + output_dir) + with open(signature_file_path, 'w') as f: + f.write(version) + + +def main(): + UpdateBinaryIfNecessary('Cast Core', 'cast_core.version', CAST_CORE_ROOT, + CAST_CORE_ZIP_PATH_TEMPLATE) + UpdateBinaryIfNecessary('Cast Web Runtime', 'runtime.version', RUNTIME_ROOT, + RUNTIME_ZIP_PATH_TEMPLATE) + return 0 + + +if __name__ == '__main__': + sys.exit(main())
diff --git a/tools/cast3p/update_runtime.py b/tools/cast3p/update_runtime.py deleted file mode 100755 index 1624be1..0000000 --- a/tools/cast3p/update_runtime.py +++ /dev/null
@@ -1,69 +0,0 @@ -#!/usr/bin/env python3 -# Copyright 2021 The Chromium Authors. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -import logging -import os -import subprocess -import shutil -import sys -import tempfile - -from zipfile import ZipFile - -DIR_SOURCE_ROOT = os.path.abspath( - os.path.join(os.path.dirname(__file__), os.pardir, os.pardir)) - -sys.path.append(os.path.join(DIR_SOURCE_ROOT, 'build')) -import find_depot_tools - -RUNTIME_SIGNATURE_FILE = '.version' -WEB_RUNTIME_ROOT = os.path.abspath( - os.path.join(DIR_SOURCE_ROOT, 'third_party', 'cast_web_runtime')) -ZIP_PATH_TEMPLATE = ( - 'gs://gtv-eureka/internal/master/core_runtime-eng/{version}' \ - '/core_runtime_package.zip') - - -# Fetches a .zip file from GCS and uncompresses it to |output_dir|. -def DownloadAndUnpackFromCloudStorage(url, output_dir): - with tempfile.TemporaryDirectory() as tmpdir: - temp_zip_file = os.path.join(tmpdir, 'web_runtime.zip') - cmd = [ - os.path.join(find_depot_tools.DEPOT_TOOLS_PATH, 'gsutil.py'), 'cp', url, - temp_zip_file - ] - task = subprocess.check_call(cmd, - stdout=subprocess.DEVNULL, - stderr=subprocess.DEVNULL) - with ZipFile(temp_zip_file, 'r') as zip_ref: - zip_ref.extractall(output_dir) - - -def MakeCleanDirectory(directory_name): - if os.path.exists(directory_name): - shutil.rmtree(directory_name) - os.mkdir(directory_name) - - -def main(): - runtime_version = open( - os.path.join(os.path.dirname(__file__), - 'runtime.version')).read().strip() - signature_file_path = os.path.join(WEB_RUNTIME_ROOT, RUNTIME_SIGNATURE_FILE) - current_signature = (open(signature_file_path, 'r').read().strip() - if os.path.exists(signature_file_path) else '') - if current_signature != runtime_version: - logging.info( - 'Downloading Cast Web Runtime version {}...'.format(runtime_version)) - MakeCleanDirectory(WEB_RUNTIME_ROOT) - DownloadAndUnpackFromCloudStorage( - ZIP_PATH_TEMPLATE.format(version=runtime_version), WEB_RUNTIME_ROOT) - with open(signature_file_path, 'w') as f: - f.write(runtime_version) - return 0 - - -if __name__ == '__main__': - sys.exit(main())
diff --git a/tools/mb/mb_config.pyl b/tools/mb/mb_config.pyl index 7edec1c8..313245e 100644 --- a/tools/mb/mb_config.pyl +++ b/tools/mb/mb_config.pyl
@@ -233,7 +233,7 @@ 'Dawn Win10 x86 DEPS Builder': 'dawn_tests_release_bot_dcheck_always_on_x86', 'Dawn Win10 x64 DEPS Builder': 'dawn_tests_release_bot_dcheck_always_on_reclient', - 'Dawn Win10 x64 ASAN Release': 'dawn_tests_asan_release_bot_dcheck_always_on', + 'Dawn Win10 x64 ASAN Release': 'dawn_tests_asan_release_bot_dcheck_always_on_reclient', }, 'chromium.devtools-frontend': { @@ -2247,8 +2247,8 @@ 'codesearch', ], - 'dawn_tests_asan_release_bot_dcheck_always_on': [ - 'dawn_tests', 'asan', 'release_trybot_minimal_symbols', + 'dawn_tests_asan_release_bot_dcheck_always_on_reclient': [ + 'dawn_tests', 'asan', 'release_trybot_minimal_symbols_reclient', ], 'dawn_tests_asan_release_trybot': [
diff --git a/tools/mb/mb_config_expectations/chromium.dawn.json b/tools/mb/mb_config_expectations/chromium.dawn.json index bb5f54c..8ec3fbd 100644 --- a/tools/mb/mb_config_expectations/chromium.dawn.json +++ b/tools/mb/mb_config_expectations/chromium.dawn.json
@@ -63,7 +63,8 @@ "is_debug": false, "symbol_level": 1, "use_dawn": true, - "use_goma": true + "use_rbe": true, + "use_remoteexec": true } }, "Dawn Win10 x64 Builder": {
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml index 2345ddd..53760dcf 100644 --- a/tools/metrics/histograms/enums.xml +++ b/tools/metrics/histograms/enums.xml
@@ -9066,6 +9066,28 @@ <int value="7" label="Unsupported Device"/> </enum> +<enum name="BluetoothDeviceConnectToServiceFailureReason"> + <int value="0" label="Connection already connected"/> + <int value="1" label="Page timeout"/> + <int value="2" label="Profile unavailable"/> + <int value="3" label="SDP search"/> + <int value="4" label="Create socket"/> + <int value="5" label="Invalid argument"/> + <int value="6" label="Adapter not powered"/> + <int value="7" label="Not supported"/> + <int value="8" label="Bad socket"/> + <int value="9" label="Memory allocation"/> + <int value="10" label="Busy"/> + <int value="11" label="Concurrent connection limit"/> + <int value="12" label="Timeout"/> + <int value="13" label="Refused"/> + <int value="14" label="Aborted by remote"/> + <int value="15" label="Aborted by local"/> + <int value="16" label="LMP protocol error"/> + <int value="17" label="Canceled"/> + <int value="18" label="Unknown"/> +</enum> + <enum name="BluetoothDeviceType"> <int value="0" label="Unknown"/> <int value="1" label="Computer"/> @@ -52455,6 +52477,7 @@ <int value="-1664290318" label="ComputePressure:enabled"/> <int value="-1663410466" label="top-document-isolation"/> <int value="-1663125441" label="OptInImeMenu:enabled"/> + <int value="-1662763888" label="SidePanelJourneys:disabled"/> <int value="-1662646099" label="NTPOfflinePageSuggestions:enabled"/> <int value="-1662447331" label="wake-on-packets"/> <int value="-1661282561" label="SharingHubDesktopOmnibox:enabled"/> @@ -53464,6 +53487,7 @@ <int value="-1009111883" label="NearbyShareVisibilityReminder:enabled"/> <int value="-1008511612" label="EnableCustomMacPaperSizes:disabled"/> <int value="-1008130438" label="PageEntitiesPageContentAnnotations:enabled"/> + <int value="-1007985511" label="SidePanelJourneys:enabled"/> <int value="-1007961880" label="PrivacySandboxSettings:enabled"/> <int value="-1007856269" label="CssSelectorFragmentAnchor:disabled"/> <int value="-1007267652" @@ -53522,6 +53546,8 @@ <int value="-974882918" label="WebXRIncubations:disabled"/> <int value="-974461595" label="OmniboxPreserveLongerShortcutsText:enabled"/> <int value="-974378602" label="WebAuthenticationCable:disabled"/> + <int value="-973714709" + label="EnableMachineLearningModelLoaderWebPlatformApi:enabled"/> <int value="-973509424" label="NewTabPageIcons:disabled"/> <int value="-972945109" label="NtpRealbox:disabled"/> <int value="-972737445" label="ArcUseAuthEndpoint:disabled"/> @@ -53572,6 +53598,8 @@ <int value="-939676447" label="CrostiniResetLxdDb:enabled"/> <int value="-938178614" label="enable-suggestions-with-substring-match"/> <int value="-937430451" label="IntensiveWakeUpThrottling:disabled"/> + <int value="-936652950" + label="AutofillEnableManualFallbackForVirtualCards:disabled"/> <int value="-934163513" label="EcheSWA:enabled"/> <int value="-933377608" label="OmniboxUIExperimentHideSteadyStateUrlScheme:enabled"/> @@ -54711,6 +54739,8 @@ <int value="-131257916" label="OmniboxCompactSuggestions:disabled"/> <int value="-130318058" label="ExoGamepadVibration:enabled"/> <int value="-129823932" label="HardwareSecureDecryptionFallback:disabled"/> + <int value="-129061954" + label="AutofillEnableManualFallbackForVirtualCards:enabled"/> <int value="-128687277" label="OmniboxUIExperimentHideSteadyStateUrlPathQueryAndRef:disabled"/> <int value="-127666141" label="TabGroups:disabled"/> @@ -57857,6 +57887,8 @@ label="AutofillEnableInfoBarAccountIndicationFooterForSyncUsers:disabled"/> <int value="2027492085" label="SuppressToolbarCaptures:disabled"/> <int value="2027793952" label="EditPasswordsInSettings:disabled"/> + <int value="2030086360" + label="EnableMachineLearningModelLoaderWebPlatformApi:disabled"/> <int value="2032558514" label="RemoveUsageOfDeprecatedGaiaSigninEndpoint:enabled"/> <int value="2032880973" label="U2FSecurityKeyAPI:disabled"/> @@ -67800,6 +67832,39 @@ </int> </enum> +<enum name="OptimizationGuideModelDeliveryEvent"> + <int value="0" label="Unknown"/> + <int value="1" label="ModelDeliveredAtRegistration"> + The model was delivered immediately at registration. + </int> + <int value="2" label="ModelDelivered"> + The model was delivered after loading from store or downloading from server. + </int> + <int value="3" label="GetModelsRequest"> + GetModelsRequest was sent to the optimization guide server. + </int> + <int value="4" label="DownloadServiceRequest"> + Model was requested to be downloaded using download service. + </int> + <int value="5" label="ModelDownloadStarted"> + Download service started the model download. + </int> + <int value="6" label="ModelDownloaded"> + Model got downloaded from the download service. + </int> + <int value="7" label="DownloadServiceUnavailable"> + Download service was unavailable. + </int> + <int value="8" label="GetModelsResponseFailure"> + GetModelsResponse failed. + </int> + <int value="9" label="DownloadURLInvalid">Download URL invalid.</int> + <int value="10" label="ModelDownloadFailure"> + Model download failed due to download service or verifying the downloaded + model. + </int> +</enum> + <enum name="OptimizationGuideNavigationHostCoveredStatus"> <obsolete> Removed as of 04/2020.
diff --git a/tools/metrics/histograms/metadata/android/histograms.xml b/tools/metrics/histograms/metadata/android/histograms.xml index 2daac742..af06af2 100644 --- a/tools/metrics/histograms/metadata/android/histograms.xml +++ b/tools/metrics/histograms/metadata/android/histograms.xml
@@ -109,6 +109,40 @@ <variant name=".NTPSnippets" summary="NTP snippets"/> </variants> +<histogram name="Android.ActivityStop.NumberOfTabsUsed" units="%" + expires_after="2022-07-31"> + <owner>gauravjj@google.com</owner> + <owner>skavuluru@google.com</owner> + <owner>clank-large-form-factors@google.com</owner> + <summary> + Captures the number of regular and incognito tabs used. Used tabs are + calculated by identifying the number of tabs that were selected between + ChromeTabbedActivity onResumeWithNative() and onStopWithNative(). This is + recorded when onStopWithNative() is called by backgrounding the app or by + opening another activity like SettingsActivity. If multiple instances are + running, each instance will only track and record usage of tabs that it + contains. + </summary> +</histogram> + +<histogram name="Android.ActivityStop.PercentageOfTabsUsed" units="%" + expires_after="2022-07-31"> + <owner>gauravjj@google.com</owner> + <owner>skavuluru@google.com</owner> + <owner>clank-large-form-factors@google.com</owner> + <summary> + Captures the percentage of regular and incognito tabs used. This is + calculated by finding the ratio of the number of tabs used to the total + number of tabs available between ChromeTabbedActivity onResumedWithNative + and onStopWithNative. Total number of tabs available is the sum of the tab + count when CTA is resumed and any new tabs that are opened before CTA is + stopped. This is recorded when ChromeTabbedActivity#onStopWithNative() is + called by backgrounding the app or by opening another activity like + SettingsActivity. If multiple instances are running, each instance will only + track and record usage of tabs that it contains. + </summary> +</histogram> + <histogram name="Android.AdaptiveToolbarButton.Clicked" enum="AdaptiveToolbarButtonVariant" expires_after="2022-08-21"> <owner>bttk@chromium.org</owner> @@ -4004,6 +4038,12 @@ <histogram name="Android.WebView.ShouldInterceptRequest.InterceptionType" enum="InterceptionType" expires_after="2022-05-10"> + <obsolete> + Deprecated in M102. This histogram had a bug which caused it to under-count + when the request was not intercepted. This has been fixed in the + "Android.WebView.ShouldInterceptRequest.InterceptionType2" + histogram. + </obsolete> <owner>ntfschr@chromium.org</owner> <owner>src/android_webview/OWNERS</owner> <summary> @@ -4013,6 +4053,25 @@ </summary> </histogram> +<histogram name="Android.WebView.ShouldInterceptRequest.InterceptionType2" + enum="InterceptionType" expires_after="2023-03-29"> + <owner>ntfschr@chromium.org</owner> + <owner>src/android_webview/OWNERS</owner> + <summary> + Whether the network request was intercepted by the embedder of Android + WebView, and if so which URL scheme was used for the request. Intercepted + requests are requests for which the shouldInterceptRequest() callback + returned a non-null response. This is logged each the + shouldInterceptRequest() callback API is invoked by WebView, which + corresponds to every network request. + + This histogram was added in M102. Prior milestones logged + "Android.WebView.ShouldInterceptRequest.InterceptionType", however + that histogram had a bug which caused the "Not intercepted" bucket + to be under-reported and for all other buckets to be over-reported. + </summary> +</histogram> + <histogram name="Android.WebView.SingleOrMultiProcess" enum="AndroidWebViewSingleOrMultiProcess" expires_after="2022-07-22"> <owner>alexmitra@chromium.org</owner>
diff --git a/tools/metrics/histograms/metadata/bluetooth/histograms.xml b/tools/metrics/histograms/metadata/bluetooth/histograms.xml index cb32d59c..3b904b2 100644 --- a/tools/metrics/histograms/metadata/bluetooth/histograms.xml +++ b/tools/metrics/histograms/metadata/bluetooth/histograms.xml
@@ -1136,6 +1136,29 @@ </summary> </histogram> +<histogram name="Bluetooth.Linux.ConnectToService.Bonded.FailureReason" + enum="BluetoothDeviceConnectToServiceFailureReason" + expires_after="2023-02-23"> + <owner>hansenmichael@google.com</owner> + <owner>nearby-share-chromeos-eng@google.com</owner> + <summary> + Records a specific scenario in which we fail to establish a Bluetooth + Classic connection with a remote device that is considered to be bonded. + Emitted when the function completes. + </summary> +</histogram> + +<histogram name="Bluetooth.Linux.ConnectToService.FailureReason" + enum="BluetoothDeviceConnectToServiceFailureReason" + expires_after="2023-02-23"> + <owner>hansenmichael@google.com</owner> + <owner>nearby-share-chromeos-eng@google.com</owner> + <summary> + Failure reason when attempting to initiate an outgoing Bluetooth Classic + connection. Emitted when function completes. + </summary> +</histogram> + <histogram name="Bluetooth.Linux.ConnectToServiceInsecurelyResult" enum="BluetoothAdapterConnectToServiceInsecurelyResult" expires_after="2023-02-23">
diff --git a/tools/metrics/histograms/metadata/optimization/histograms.xml b/tools/metrics/histograms/metadata/optimization/histograms.xml index 442f0d4..6e82a60 100644 --- a/tools/metrics/histograms/metadata/optimization/histograms.xml +++ b/tools/metrics/histograms/metadata/optimization/histograms.xml
@@ -850,6 +850,20 @@ </histogram> <histogram + name="OptimizationGuide.PredictionManager.ModelDeliveryEvents.{OptimizationTarget}" + enum="OptimizationGuideModelDeliveryEvent" expires_after="M106"> + <owner>rajendrant@chromium.org</owner> + <owner>chrome-intelligence-core@google.com</owner> + <summary> + Records the different events of prediction model delivery lifecycle for + {OptimizationTarget}, such as fetching model metadata, downloading model + file, verification, unzipping, etc. Recorded whenever lifecycle state + changes. + </summary> + <token key="OptimizationTarget" variants="OptimizationTarget"/> +</histogram> + +<histogram name="OptimizationGuide.PredictionManager.ModelTypeChanged.{OptimizationTarget}" units="BooleanChanged" expires_after="2022-03-07"> <obsolete>
diff --git a/tools/metrics/ukm/ukm.xml b/tools/metrics/ukm/ukm.xml index d8c56ae..e8ff40b 100644 --- a/tools/metrics/ukm/ukm.xml +++ b/tools/metrics/ukm/ukm.xml
@@ -15979,6 +15979,9 @@ Metrics related to the privacy-preserving prefetch proxy. </summary> <metric name="count_css_js_loaded_cache_before_fcp"> + <obsolete> + Deprecated March 2022. + </obsolete> <summary> The number of CSS or JS files that were loaded from the cache before first contentful paint, with a maximum of 10. Always set when this event is @@ -15986,6 +15989,9 @@ </summary> </metric> <metric name="count_css_js_loaded_network_before_fcp"> + <obsolete> + Deprecated March 2022. + </obsolete> <summary> The number of CSS or JS files that were loaded from the network before FCP, with a maximum of 10. Always set when this event is recorded. @@ -16012,6 +16018,9 @@ </summary> </metric> <metric name="ordered_eligible_pages_bitmask"> + <obsolete> + Deprecated March 2022. + </obsolete> <summary> Which links on the Google Search Page were eligible to be prefetched where the Nth-LSB is set if the Nth page is eligible.
diff --git a/tools/perf/chrome-health-presets.yaml b/tools/perf/chrome-health-presets.yaml index a53317b..36592e0 100644 --- a/tools/perf/chrome-health-presets.yaml +++ b/tools/perf/chrome-health-presets.yaml
@@ -7,9 +7,37 @@ presets: chrome_health: telemetry_batch_experiment: + - benchmark: loading.desktop + configs: + - mac-laptop_low_end-perf + - mac-m1_mini_2020-perf + - linux-perf + - win-10-perf + stories: + - AirBnB_cold + - AirBnB_cold + - AirBnB_cold + - AirBnB_cold + - AllRecipes_cold + - AllRecipes_cold + - AllRecipes_cold + - AllRecipes_cold + - benchmark: loading.mobile + configs: + - android-pixel2-perf + - android-pixel4-perf + stories: + - Amazon + - Amazon + - Amazon + - Amazon + - Dailymotion + - Dailymotion + - Dailymotion + - Dailymotion - benchmark: speedometer2-chrome-health configs: - - mac-10_12_laptop_low_end-perf + - mac-laptop_low_end-perf - mac-m1_mini_2020-perf - linux-perf - win-10-perf @@ -22,7 +50,7 @@ - Speedometer2 - benchmark: rendering.desktop configs: - - mac-10_12_laptop_low_end-perf + - mac-laptop_low_end-perf - mac-m1_mini_2020-perf - linux-perf - win-10-perf @@ -108,7 +136,7 @@ telemetry_batch_experiment: - benchmark: speedometer2-chrome-health configs: - - mac-10_12_laptop_low_end-perf + - mac-laptop_low_end-perf - mac-m1_mini_2020-perf - linux-perf - win-10-perf
diff --git a/tools/perf/core/perfetto_binary_roller/binary_deps.json b/tools/perf/core/perfetto_binary_roller/binary_deps.json index 3713548..ac967bb0 100644 --- a/tools/perf/core/perfetto_binary_roller/binary_deps.json +++ b/tools/perf/core/perfetto_binary_roller/binary_deps.json
@@ -13,8 +13,8 @@ "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/linux_arm/49b4b5dcbc312d8d2c3751cf29238b8efeb4e494/trace_processor_shell" }, "mac": { - "hash": "6be7a443c110d001b68c8f81594c116e86133726", - "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/mac/557f2048d57b272fdbdb27405940136b15036873/trace_processor_shell" + "hash": "064824789fcdab74f8ec188949c9cd362f204669", + "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/mac/be7e3b9ba78503da04d08f06502aa8f86e9b0ac4/trace_processor_shell" }, "mac_arm64": { "hash": "c0397e87456ad6c6a7aa0133e5b81c97adbab4ab",
diff --git a/ui/accessibility/BUILD.gn b/ui/accessibility/BUILD.gn index 364db17..b29ab9f 100644 --- a/ui/accessibility/BUILD.gn +++ b/ui/accessibility/BUILD.gn
@@ -61,6 +61,7 @@ "ax_mode.h", "ax_node_data.cc", "ax_node_data.h", + "ax_node_id_forward.h", "ax_relative_bounds.cc", "ax_relative_bounds.h", "ax_role_properties.cc",
diff --git a/ui/accessibility/accessibility_features.cc b/ui/accessibility/accessibility_features.cc index edfd419..069cd92c 100644 --- a/ui/accessibility/accessibility_features.cc +++ b/ui/accessibility/accessibility_features.cc
@@ -109,7 +109,7 @@ } const base::Feature kDockedMagnifierResizing{"DockedMagnifierResizing", - base::FEATURE_DISABLED_BY_DEFAULT}; + base::FEATURE_ENABLED_BY_DEFAULT}; bool IsDockedMagnifierResizingEnabled() { return base::FeatureList::IsEnabled(::features::kDockedMagnifierResizing);
diff --git a/ui/accessibility/ax_node_data.h b/ui/accessibility/ax_node_data.h index 75e6edb..75b8da0 100644 --- a/ui/accessibility/ax_node_data.h +++ b/ui/accessibility/ax_node_data.h
@@ -16,6 +16,7 @@ #include "base/strings/string_split.h" #include "ui/accessibility/ax_base_export.h" #include "ui/accessibility/ax_enums.mojom-forward.h" +#include "ui/accessibility/ax_node_id_forward.h" #include "ui/accessibility/ax_relative_bounds.h" #include "ui/accessibility/ax_text_attributes.h" #include "ui/gfx/geometry/rect_f.h" @@ -24,9 +25,6 @@ class AXTreeID; -// Defines the type used for AXNode IDs. -using AXNodeID = int32_t; - // If a node is not yet or no longer valid, its ID should have a value of // kInvalidAXNodeID. static constexpr AXNodeID kInvalidAXNodeID = 0;
diff --git a/ui/accessibility/ax_node_id_forward.h b/ui/accessibility/ax_node_id_forward.h new file mode 100644 index 0000000..5cdaec4 --- /dev/null +++ b/ui/accessibility/ax_node_id_forward.h
@@ -0,0 +1,17 @@ +// Copyright 2022 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef UI_ACCESSIBILITY_AX_NODE_ID_FORWARD_H_ +#define UI_ACCESSIBILITY_AX_NODE_ID_FORWARD_H_ + +#include <stdint.h> + +namespace ui { + +// Defines the type used for AXNode IDs. +using AXNodeID = int32_t; + +} // namespace ui + +#endif // UI_ACCESSIBILITY_AX_NODE_ID_FORWARD_H_
diff --git a/ui/accessibility/extensions/chromevoxclassic/BUILD.gn b/ui/accessibility/extensions/chromevoxclassic/BUILD.gn index 1bb1de2..0a1549998 100644 --- a/ui/accessibility/extensions/chromevoxclassic/BUILD.gn +++ b/ui/accessibility/extensions/chromevoxclassic/BUILD.gn
@@ -4,9 +4,9 @@ import("//build/config/features.gni") import( - "//chrome/browser/resources/chromeos/accessibility/common/run_jsbundler.gni") -import( "//chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings.gni") +import( + "//chrome/browser/resources/chromeos/accessibility/tools/run_jsbundler.gni") import("//chrome/common/features.gni") import("//chrome/test/base/js2gtest.gni") import("//testing/test.gni")
diff --git a/ui/base/models/image_model.cc b/ui/base/models/image_model.cc index 27cc58b..a9f84fd 100644 --- a/ui/base/models/image_model.cc +++ b/ui/base/models/image_model.cc
@@ -164,15 +164,18 @@ return !(*this == other); } -#if !BUILDFLAG(IS_IOS) gfx::ImageSkia ImageModel::Rasterize( const ui::ColorProvider* color_provider) const { if (IsImage()) return GetImage().AsImageSkia(); if (IsVectorIcon()) { +#if BUILDFLAG(IS_IOS) + CHECK(false); +#else DCHECK(color_provider); return ThemedVectorIcon(GetVectorIcon()).GetImageSkia(color_provider); +#endif } if (IsImageGenerator()) @@ -180,7 +183,6 @@ return gfx::ImageSkia(); } -#endif ImageModel::ImageGeneratorAndSize::ImageGeneratorAndSize( ImageGenerator generator,
diff --git a/ui/base/models/image_model.h b/ui/base/models/image_model.h index 926159ff..7f01e00 100644 --- a/ui/base/models/image_model.h +++ b/ui/base/models/image_model.h
@@ -122,10 +122,8 @@ bool operator==(const ImageModel& other) const; bool operator!=(const ImageModel& other) const; -#if !BUILDFLAG(IS_IOS) // Rasterizes if necessary. gfx::ImageSkia Rasterize(const ui::ColorProvider* color_provider) const; -#endif private: struct ImageGeneratorAndSize {
diff --git a/ui/compositor/layer.cc b/ui/compositor/layer.cc index b189324..8b01427 100644 --- a/ui/compositor/layer.cc +++ b/ui/compositor/layer.cc
@@ -289,6 +289,7 @@ clone->SetFillsBoundsOpaquely(fills_bounds_opaquely_); clone->SetFillsBoundsCompletely(fills_bounds_completely_); clone->SetRoundedCornerRadius(rounded_corner_radii()); + clone->SetGradientMask(gradient_mask()); clone->SetIsFastRoundedCorner(is_fast_rounded_corner()); clone->SetName(name_); @@ -717,6 +718,10 @@ GetAnimator()->SetRoundedCorners(corner_radii); } +void Layer::SetGradientMask(const gfx::LinearGradient& gradient_mask) { + GetAnimator()->SetGradientMask(gradient_mask); +} + void Layer::SetIsFastRoundedCorner(bool enable) { cc_layer_->SetIsFastRoundedCorner(enable); ScheduleDraw(); @@ -807,6 +812,7 @@ new_layer->SetRoundedCorner(cc_layer_->corner_radii()); new_layer->SetIsFastRoundedCorner(cc_layer_->is_fast_rounded_corner()); new_layer->SetMasksToBounds(cc_layer_->masks_to_bounds()); + new_layer->SetGradientMask(cc_layer_->gradient_mask()); cc_layer_ = new_layer.get(); if (content_layer_) { @@ -1525,6 +1531,15 @@ mirror->dest()->SetRoundedCornersFromAnimation(rounded_corners, reason); } +void Layer::SetGradientMaskFromAnimation( + const gfx::LinearGradient& gradient_mask, + PropertyChangeReason reason) { + cc_layer_->SetGradientMask(gradient_mask); + + for (const auto& mirror : mirrors_) + mirror->dest()->SetGradientMaskFromAnimation(gradient_mask, reason); +} + void Layer::ScheduleDrawForAnimation() { ScheduleDraw(); } @@ -1570,6 +1585,10 @@ return rounded_corner_radii(); } +gfx::LinearGradient Layer::GetGradientMaskForAnimation() const { + return gradient_mask(); +} + float Layer::GetDeviceScaleFactor() const { return device_scale_factor_; }
diff --git a/ui/compositor/layer.h b/ui/compositor/layer.h index 044eaeb..c0cd707 100644 --- a/ui/compositor/layer.h +++ b/ui/compositor/layer.h
@@ -40,6 +40,7 @@ namespace gfx { class RoundedCornersF; class Transform; +class LinearGradient; } // namespace gfx namespace viz { @@ -325,6 +326,12 @@ return cc_layer_->corner_radii(); } + // Gets/sets a gradient mask that is applied to the clip bounds on the layer + void SetGradientMask(const gfx::LinearGradient& linear_gradient); + const gfx::LinearGradient gradient_mask() const { + return cc_layer_->gradient_mask(); + } + // If set to true, this layer would not trigger a render surface (if possible) // due to having a rounded corner resulting in a better performance at the // cost of maybe having some blending artifacts. @@ -582,6 +589,8 @@ void SetRoundedCornersFromAnimation( const gfx::RoundedCornersF& rounded_corners, PropertyChangeReason reason) override; + void SetGradientMaskFromAnimation(const gfx::LinearGradient& gradient_mask, + PropertyChangeReason reason) override; void ScheduleDrawForAnimation() override; const gfx::Rect& GetBoundsForAnimation() const override; gfx::Transform GetTransformForAnimation() const override; @@ -592,6 +601,7 @@ SkColor GetColorForAnimation() const override; gfx::Rect GetClipRectForAnimation() const override; gfx::RoundedCornersF GetRoundedCornersForAnimation() const override; + gfx::LinearGradient GetGradientMaskForAnimation() const override; float GetDeviceScaleFactor() const override; Layer* GetLayer() override; cc::Layer* GetCcLayer() const override;
diff --git a/ui/compositor/layer_animation_delegate.h b/ui/compositor/layer_animation_delegate.h index f7d4f46..79088f3 100644 --- a/ui/compositor/layer_animation_delegate.h +++ b/ui/compositor/layer_animation_delegate.h
@@ -9,6 +9,7 @@ #include "third_party/skia/include/core/SkColor.h" #include "ui/compositor/compositor_export.h" #include "ui/compositor/property_change_reason.h" +#include "ui/gfx/geometry/linear_gradient.h" #include "ui/gfx/geometry/rect.h" #include "ui/gfx/geometry/rounded_corners_f.h" #include "ui/gfx/geometry/transform.h" @@ -45,6 +46,9 @@ virtual void SetRoundedCornersFromAnimation( const gfx::RoundedCornersF& rounded_corners, PropertyChangeReason reason) = 0; + virtual void SetGradientMaskFromAnimation( + const gfx::LinearGradient& gradient_mask, + PropertyChangeReason reason) = 0; virtual void ScheduleDrawForAnimation() = 0; virtual const gfx::Rect& GetBoundsForAnimation() const = 0; virtual gfx::Transform GetTransformForAnimation() const = 0; @@ -55,6 +59,7 @@ virtual SkColor GetColorForAnimation() const = 0; virtual gfx::Rect GetClipRectForAnimation() const = 0; virtual gfx::RoundedCornersF GetRoundedCornersForAnimation() const = 0; + virtual gfx::LinearGradient GetGradientMaskForAnimation() const = 0; virtual float GetDeviceScaleFactor() const = 0; virtual ui::Layer* GetLayer() = 0; virtual cc::Layer* GetCcLayer() const = 0;
diff --git a/ui/compositor/layer_animation_element.cc b/ui/compositor/layer_animation_element.cc index 45e79cf..1b070f92 100644 --- a/ui/compositor/layer_animation_element.cc +++ b/ui/compositor/layer_animation_element.cc
@@ -359,6 +359,54 @@ gfx::RoundedCornersF target_; }; +// GradientMaskTransition ---------------------------------------------------- + +class GradientMaskTransition : public LayerAnimationElement { + public: + GradientMaskTransition(const gfx::LinearGradient& target, + base::TimeDelta duration) + : LayerAnimationElement(GRADIENT_MASK, duration), target_(target) {} + + GradientMaskTransition(const GradientMaskTransition&) = delete; + GradientMaskTransition& operator=(const GradientMaskTransition&) = delete; + + ~GradientMaskTransition() override = default; + + protected: + std::string DebugName() const override { return "GradientMaskTransition"; } + void OnStart(LayerAnimationDelegate* delegate) override { + start_ = delegate->GetGradientMaskForAnimation(); + } + + bool OnProgress(double t, LayerAnimationDelegate* delegate) override { + auto gradient_mask = gfx::LinearGradient( + gfx::Tween::FloatValueBetween(t, start_.angle(), target_.angle())); + + DCHECK_EQ(start_.step_count(), target_.step_count()); + for (auto i = 0; i < static_cast<int>(start_.step_count()); ++i) { + gradient_mask.AddStep( + gfx::Tween::FloatValueBetween(t, start_.steps()[i].percent, + target_.steps()[i].percent), + gfx::Tween::IntValueBetween(t, start_.steps()[i].alpha, + target_.steps()[i].alpha)); + } + + delegate->SetGradientMaskFromAnimation( + gradient_mask, PropertyChangeReason::FROM_ANIMATION); + return true; + } + + void OnGetTarget(TargetValue* target) const override { + target->gradient_mask = target_; + } + + void OnAbort(LayerAnimationDelegate* delegate) override {} + + private: + gfx::LinearGradient start_; + gfx::LinearGradient target_; +}; + // ThreadedLayerAnimationElement ----------------------------------------------- class ThreadedLayerAnimationElement : public LayerAnimationElement { @@ -588,7 +636,9 @@ color(delegate ? delegate->GetColorForAnimation() : SK_ColorTRANSPARENT), clip_rect(delegate ? delegate->GetClipRectForAnimation() : gfx::Rect()), rounded_corners(delegate ? delegate->GetRoundedCornersForAnimation() - : gfx::RoundedCornersF()) {} + : gfx::RoundedCornersF()), + gradient_mask(delegate ? delegate->GetGradientMaskForAnimation() + : gfx::LinearGradient::GetEmpty()) {} // LayerAnimationElement ------------------------------------------------------- @@ -778,6 +828,9 @@ case ROUNDED_CORNERS: str.append("ROUNDED_CORNERS"); break; + case GRADIENT_MASK: + str.append("GRADIENT_MASK"); + break; case SENTINEL: NOTREACHED(); break; @@ -875,4 +928,11 @@ return std::make_unique<RoundedCornersTransition>(rounded_corners, duration); } +std::unique_ptr<LayerAnimationElement> +LayerAnimationElement::CreateGradientMaskElement( + const gfx::LinearGradient& gradient_mask, + base::TimeDelta duration) { + return std::make_unique<GradientMaskTransition>(gradient_mask, duration); +} + } // namespace ui
diff --git a/ui/compositor/layer_animation_element.h b/ui/compositor/layer_animation_element.h index 82903b3..afded4a7 100644 --- a/ui/compositor/layer_animation_element.h +++ b/ui/compositor/layer_animation_element.h
@@ -17,6 +17,7 @@ #include "third_party/skia/include/core/SkColor.h" #include "ui/compositor/compositor_export.h" #include "ui/gfx/animation/tween.h" +#include "ui/gfx/geometry/linear_gradient.h" #include "ui/gfx/geometry/rect.h" #include "ui/gfx/geometry/rounded_corners_f.h" #include "ui/gfx/geometry/transform.h" @@ -42,10 +43,11 @@ COLOR = (1 << 6), CLIP = (1 << 7), ROUNDED_CORNERS = (1 << 8), + GRADIENT_MASK = (1 << 9), // Used when iterating over properties. FIRST_PROPERTY = TRANSFORM, - SENTINEL = (1 << 9) + SENTINEL = (1 << 10) }; static AnimatableProperty ToAnimatableProperty( @@ -65,6 +67,7 @@ SkColor color; gfx::Rect clip_rect; gfx::RoundedCornersF rounded_corners; + gfx::LinearGradient gradient_mask; }; typedef uint32_t AnimatableProperties; @@ -151,6 +154,12 @@ const gfx::RoundedCornersF& rounded_corners, base::TimeDelta duration); + // Creates an element that transitions the gradient mask to the + // given one. The caller owns the return value. + static std::unique_ptr<LayerAnimationElement> CreateGradientMaskElement( + const gfx::LinearGradient& gradient_mask, + base::TimeDelta duration); + // Sets the start time for the animation. This must be called before the first // call to {Start, IsFinished}. Once the animation is finished, this must // be called again in order to restart the animation.
diff --git a/ui/compositor/layer_animation_element_unittest.cc b/ui/compositor/layer_animation_element_unittest.cc index 44fd5677..c412c9e 100644 --- a/ui/compositor/layer_animation_element_unittest.cc +++ b/ui/compositor/layer_animation_element_unittest.cc
@@ -468,6 +468,53 @@ CheckApproximatelyEqual(target, target_value.rounded_corners); } +// Check that the GradientMask element progresses the delegate as expected and +// that the element can be reused after it completes. +TEST(LayerAnimationElementTest, GradientMaskElement) { + TestLayerAnimationDelegate delegate; + gfx::LinearGradient start(45); + start.AddStep(0, 0); + gfx::LinearGradient target(135); + target.AddStep(50, 255); + gfx::LinearGradient middle(90); + middle.AddStep(25, 127); + + base::TimeTicks start_time; + base::TimeDelta delta = base::Seconds(1); + + std::unique_ptr<LayerAnimationElement> element = + LayerAnimationElement::CreateGradientMaskElement(target, delta); + + for (int i = 0; i < 2; ++i) { + start_time += delta; + element->set_requested_start_time(start_time); + delegate.SetGradientMaskFromAnimation( + start, PropertyChangeReason::NOT_FROM_ANIMATION); + element->Start(&delegate, 1); + element->Progress(start_time, &delegate); + EXPECT_EQ(start, delegate.GetGradientMaskForAnimation()); + delegate.ExpectLastPropertyChangeReason( + PropertyChangeReason::FROM_ANIMATION); + element->Progress(start_time + delta / 2, &delegate); + EXPECT_EQ(middle, delegate.GetGradientMaskForAnimation()); + delegate.ExpectLastPropertyChangeReason( + PropertyChangeReason::FROM_ANIMATION); + + base::TimeDelta element_duration; + EXPECT_TRUE(element->IsFinished(start_time + delta, &element_duration)); + EXPECT_EQ(delta, element_duration); + + element->Progress(start_time + delta, &delegate); + EXPECT_EQ(target, delegate.GetGradientMaskForAnimation()); + delegate.ExpectLastPropertyChangeReason( + PropertyChangeReason::FROM_ANIMATION); + } + + LayerAnimationElement::TargetValue target_value(&delegate); + element->GetTargetValue(&target_value); + EXPECT_EQ(target, target_value.gradient_mask); +} + // Check that a threaded opacity element updates the delegate as expected when // aborted. TEST(LayerAnimationElementTest, AbortOpacityElement) {
diff --git a/ui/compositor/layer_animator.cc b/ui/compositor/layer_animator.cc index 0f6fcbb1..8fcc022 100644 --- a/ui/compositor/layer_animator.cc +++ b/ui/compositor/layer_animator.cc
@@ -122,6 +122,11 @@ RoundedCorners, gfx::RoundedCornersF, rounded_corners) +ANIMATED_PROPERTY(const gfx::LinearGradient&, + GRADIENT_MASK, + GradientMask, + gfx::LinearGradient, + gradient_mask) #undef ANIMATED_PROPERTY
diff --git a/ui/compositor/layer_animator.h b/ui/compositor/layer_animator.h index 57655689..bc93f79 100644 --- a/ui/compositor/layer_animator.h +++ b/ui/compositor/layer_animator.h
@@ -22,6 +22,7 @@ #include "ui/compositor/layer_animation_element.h" #include "ui/compositor/layer_threaded_animation_delegate.h" #include "ui/gfx/animation/tween.h" +#include "ui/gfx/geometry/linear_gradient.h" namespace cc { class Animation; @@ -116,6 +117,11 @@ virtual void SetRoundedCorners(const gfx::RoundedCornersF& rounded_corners); gfx::RoundedCornersF GetTargetRoundedCorners() const; + // Sets the linear gradient mask on the delegate. Requires that the bounds are + // set by SetRoundedCorners. May cause an implicit animation. + virtual void SetGradientMask(const gfx::LinearGradient& linear_gradient); + gfx::LinearGradient GetTargetGradientMask() const; + // Returns the default length of animations, including adjustment for slow // animation mode if set. base::TimeDelta GetTransitionDuration() const;
diff --git a/ui/compositor/layer_unittest.cc b/ui/compositor/layer_unittest.cc index e56abc6..6497d7d1 100644 --- a/ui/compositor/layer_unittest.cc +++ b/ui/compositor/layer_unittest.cc
@@ -772,6 +772,9 @@ gfx::Rect clip_rect(1, 1, 2, 2); + gfx::LinearGradient gradient_mask(45); + gradient_mask.AddStep(50, 50); + layer->SetTransform(transform); layer->SetColor(SK_ColorRED); layer->SetLayerInverted(true); @@ -779,6 +782,7 @@ layer->AddTrilinearFilteringRequest(); layer->SetClipRect(clip_rect); layer->SetRoundedCornerRadius({1, 2, 4, 5}); + layer->SetGradientMask(gradient_mask); layer->SetIsFastRoundedCorner(true); layer->SetSubtreeCaptureId(viz::SubtreeCaptureId(1)); @@ -797,6 +801,7 @@ clone->cc_layer_for_testing()->trilinear_filtering()); EXPECT_EQ(clip_rect, clone->clip_rect()); EXPECT_EQ(layer->rounded_corner_radii(), clone->rounded_corner_radii()); + EXPECT_EQ(layer->gradient_mask(), clone->gradient_mask()); EXPECT_EQ(layer->is_fast_rounded_corner(), clone->is_fast_rounded_corner()); // However, the SubtreeCaptureId is not cloned. @@ -810,6 +815,10 @@ layer->SetIsFastRoundedCorner(false); layer->SetRoundedCornerRadius({3, 6, 9, 12}); + gradient_mask.set_angle(90); + gradient_mask.AddStep(90, 30); + layer->SetGradientMask(gradient_mask); + // The clone is an independent copy, so state changes do not propagate. EXPECT_EQ(transform, clone->GetTargetTransform()); EXPECT_EQ(SK_ColorRED, clone->background_color()); @@ -819,6 +828,7 @@ EXPECT_FALSE(layer->is_fast_rounded_corner()); EXPECT_TRUE(clone->is_fast_rounded_corner()); EXPECT_NE(layer->rounded_corner_radii(), clone->rounded_corner_radii()); + EXPECT_NE(layer->gradient_mask(), clone->gradient_mask()); constexpr SkColor kTransparent = SK_ColorTRANSPARENT; layer->SetColor(kTransparent); @@ -1053,6 +1063,9 @@ l1->SetIsFastRoundedCorner(true); constexpr viz::SubtreeCaptureId kSubtreeCaptureId(22); l1->SetSubtreeCaptureId(kSubtreeCaptureId); + gfx::LinearGradient gradient_mask(45); + gradient_mask.AddStep(50, 50); + l1->SetGradientMask(gradient_mask); EXPECT_EQ(gfx::Point3F(), l1->cc_layer_for_testing()->transform_origin()); EXPECT_TRUE(l1->cc_layer_for_testing()->draws_content()); @@ -1065,6 +1078,8 @@ EXPECT_EQ(kSubtreeCaptureId, l1->cc_layer_for_testing()->subtree_capture_id()); EXPECT_EQ(kSubtreeCaptureId, l1->GetSubtreeCaptureId()); + EXPECT_TRUE(l1->cc_layer_for_testing()->HasGradientMask()); + EXPECT_EQ(l1->cc_layer_for_testing()->gradient_mask(), gradient_mask); cc::Layer* before_layer = l1->cc_layer_for_testing(); @@ -1090,6 +1105,8 @@ EXPECT_EQ(kSubtreeCaptureId, l1->cc_layer_for_testing()->subtree_capture_id()); EXPECT_EQ(kSubtreeCaptureId, l1->GetSubtreeCaptureId()); + EXPECT_TRUE(l1->cc_layer_for_testing()->HasGradientMask()); + EXPECT_EQ(gradient_mask, l1->cc_layer_for_testing()->gradient_mask()); EXPECT_FALSE(callback1_run); bool callback2_run = false; @@ -1112,6 +1129,7 @@ EXPECT_TRUE(l1->cc_layer_for_testing()->HasRoundedCorner()); EXPECT_EQ(l1->cc_layer_for_testing()->corner_radii(), kCornerRadii); EXPECT_TRUE(l1->cc_layer_for_testing()->is_fast_rounded_corner()); + EXPECT_EQ(l1->cc_layer_for_testing()->gradient_mask(), gradient_mask); EXPECT_TRUE(callback2_run); before_layer = l1->cc_layer_for_testing(); @@ -1135,6 +1153,7 @@ EXPECT_TRUE(l1->cc_layer_for_testing()->HasRoundedCorner()); EXPECT_EQ(l1->cc_layer_for_testing()->corner_radii(), kCornerRadii); EXPECT_TRUE(l1->cc_layer_for_testing()->is_fast_rounded_corner()); + EXPECT_EQ(l1->cc_layer_for_testing()->gradient_mask(), gradient_mask); EXPECT_FALSE(callback3_run); // Release the on |l1| mailbox to clean up the test. @@ -1326,6 +1345,29 @@ EXPECT_EQ(kRadii, layer->rounded_corner_radii()); } +TEST_F(LayerWithDelegateTest, GradientMask) { + gfx::Rect layer_bounds(10, 20, 100, 100); + gfx::LinearGradient gradient_mask; + gradient_mask.AddStep(50, 50); + + auto layer = std::make_unique<Layer>(LAYER_TEXTURED); + + NullLayerDelegate delegate; + layer->set_delegate(&delegate); + layer->SetVisible(true); + layer->SetBounds(layer_bounds); + + compositor()->SetRootLayer(layer.get()); + Draw(); + + EXPECT_TRUE(layer->rounded_corner_radii().IsEmpty()); + + // Setting a rounded corner radius should set an rrect with bounds same as the + // layer. + layer->SetGradientMask(gradient_mask); + EXPECT_EQ(gradient_mask, layer->gradient_mask()); +} + // Checks that stacking-related methods behave as advertised. TEST_F(LayerWithNullDelegateTest, Stacking) { auto root = std::make_unique<Layer>(LAYER_NOT_DRAWN);
diff --git a/ui/compositor/test/test_layer_animation_delegate.cc b/ui/compositor/test/test_layer_animation_delegate.cc index 64c3d85..b077818 100644 --- a/ui/compositor/test/test_layer_animation_delegate.cc +++ b/ui/compositor/test/test_layer_animation_delegate.cc
@@ -127,6 +127,14 @@ last_property_change_reason_is_set_ = true; } +void TestLayerAnimationDelegate::SetGradientMaskFromAnimation( + const gfx::LinearGradient& gradient_mask, + PropertyChangeReason reason) { + gradient_mask_ = gradient_mask; + last_property_change_reason_ = reason; + last_property_change_reason_is_set_ = true; +} + void TestLayerAnimationDelegate::ScheduleDrawForAnimation() { } @@ -167,6 +175,11 @@ return rounded_corners_; } +gfx::LinearGradient TestLayerAnimationDelegate::GetGradientMaskForAnimation() + const { + return gradient_mask_; +} + float TestLayerAnimationDelegate::GetDeviceScaleFactor() const { return 1.0f; }
diff --git a/ui/compositor/test/test_layer_animation_delegate.h b/ui/compositor/test/test_layer_animation_delegate.h index 294a2f5..642335e4d 100644 --- a/ui/compositor/test/test_layer_animation_delegate.h +++ b/ui/compositor/test/test_layer_animation_delegate.h
@@ -8,6 +8,7 @@ #include "cc/layers/layer.h" #include "ui/compositor/layer_animation_delegate.h" #include "ui/compositor/layer_threaded_animation_delegate.h" +#include "ui/gfx/geometry/linear_gradient.h" #include "ui/gfx/geometry/rect.h" #include "ui/gfx/geometry/transform.h" @@ -66,6 +67,8 @@ void SetRoundedCornersFromAnimation( const gfx::RoundedCornersF& rounded_corners, PropertyChangeReason reason) override; + void SetGradientMaskFromAnimation(const gfx::LinearGradient& gradient_mask, + PropertyChangeReason reason) override; void ScheduleDrawForAnimation() override; const gfx::Rect& GetBoundsForAnimation() const override; gfx::Transform GetTransformForAnimation() const override; @@ -76,6 +79,7 @@ SkColor GetColorForAnimation() const override; gfx::Rect GetClipRectForAnimation() const override; gfx::RoundedCornersF GetRoundedCornersForAnimation() const override; + gfx::LinearGradient GetGradientMaskForAnimation() const override; float GetDeviceScaleFactor() const override; LayerAnimatorCollection* GetLayerAnimatorCollection() override; ui::Layer* GetLayer() override; @@ -102,6 +106,7 @@ SkColor color_; gfx::Rect clip_rect_; gfx::RoundedCornersF rounded_corners_; + gfx::LinearGradient gradient_mask_; scoped_refptr<cc::Layer> cc_layer_; absl::optional<int> frame_number_;
diff --git a/ui/gfx/BUILD.gn b/ui/gfx/BUILD.gn index c7a570a..b4ac8ce 100644 --- a/ui/gfx/BUILD.gn +++ b/ui/gfx/BUILD.gn
@@ -695,6 +695,7 @@ "font_names_testing.cc", "font_names_testing.h", "font_unittest.cc", + "geometry/linear_gradient_unittest.cc", "geometry/rrect_f_unittest.cc", "geometry/transform_operations_unittest.cc", "geometry/transform_unittest.cc",
diff --git a/ui/gfx/color_utils.cc b/ui/gfx/color_utils.cc index e0d4875..07c8bf9 100644 --- a/ui/gfx/color_utils.cc +++ b/ui/gfx/color_utils.cc
@@ -215,6 +215,9 @@ const float color_angle = hsl.h * 360; // Hues in comments below are of the corresponding kGoogleXXX500 color. + // Every cutoff is a halfway point between the two neighboring hue values to + // provide as fair of a representation as possible for what color should be + // used. // RED: 4 if (color_angle < 15) return pick_color(kRed); @@ -228,7 +231,10 @@ if (color_angle < 163) return pick_color(kGreen); // CYAN: 189 - if (color_angle < 203) + // In dark mode, the Mac system blue hue is right on the border between a + // kGoogleCyan and kGoogleBlue color, so the cutoff point is tweaked to make + // it map to a kGoogleBlue color. + if (color_angle < 202) return pick_color(kCyan); // BLUE: 217 if (color_angle < 245)
diff --git a/ui/gfx/geometry/BUILD.gn b/ui/gfx/geometry/BUILD.gn index 2b43e99..480c567b 100644 --- a/ui/gfx/geometry/BUILD.gn +++ b/ui/gfx/geometry/BUILD.gn
@@ -80,6 +80,8 @@ component("geometry_skia") { sources = [ "geometry_skia_export.h", + "linear_gradient.cc", + "linear_gradient.h", "mask_filter_info.cc", "mask_filter_info.h", "matrix44.cc",
diff --git a/ui/gfx/geometry/linear_gradient.cc b/ui/gfx/geometry/linear_gradient.cc new file mode 100644 index 0000000..ea769b3 --- /dev/null +++ b/ui/gfx/geometry/linear_gradient.cc
@@ -0,0 +1,77 @@ +// Copyright 2022 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "ui/gfx/geometry/linear_gradient.h" + +#include <sstream> + +#include "base/check_op.h" +#include "base/containers/adapters.h" +#include "base/strings/string_number_conversions.h" +#include "base/strings/stringprintf.h" +#include "ui/gfx/geometry/angle_conversions.h" +#include "ui/gfx/geometry/point_f.h" +#include "ui/gfx/geometry/transform.h" + +namespace gfx { + +// static +LinearGradient& LinearGradient::GetEmpty() { + static LinearGradient kEmpty; + return kEmpty; +} + +LinearGradient::LinearGradient() = default; + +LinearGradient::LinearGradient(int16_t angle) : angle_(angle) {} + +LinearGradient::LinearGradient(const LinearGradient& copy) = default; + +void LinearGradient::AddStep(float percent, uint8_t alpha) { + DCHECK_LT(step_count_, kMaxStepSize); + DCHECK_GE(percent, 0); + DCHECK_LE(percent, 100); + // make sure the step's percent is monotonically increasing. + DCHECK(step_count_ ? steps_[step_count_ - 1].percent < percent : true) + << base::StringPrintf("prev[%zu]=%f, next[%zu]=%f", step_count_ - 1, + steps_[step_count_ - 1].percent, step_count_, + steps_[step_count_].percent); + steps_[step_count_].percent = percent; + steps_[step_count_++].alpha = alpha; +} + +void LinearGradient::ReverseSteps() { + std::reverse(steps_.begin(), steps_.end()); + std::rotate(steps_.begin(), steps_.end() - step_count_, steps_.end()); + for (size_t i = 0; i < step_count_; i++) + steps_[i].percent = 100.f - steps_[i].percent; +} + +void LinearGradient::Transform(const gfx::Transform& transform) { + gfx::PointF origin, end; + float radian = gfx::DegToRad(static_cast<float>(angle_)); + float y = -sin(radian); + float x = cos(radian); + end.Offset(x, y); + transform.TransformPoint(&origin); + transform.TransformPoint(&end); + gfx::Vector2dF diff = end - origin; + int16_t new_angle = + -static_cast<int16_t>(gfx::RadToDeg(atan2(diff.y(), diff.x()))); + angle_ = new_angle; +} + +std::string LinearGradient::ToString() const { + std::string result = base::StringPrintf( + "LinearGradient{angle=%u, step_count=%zu [", angle_, step_count_); + for (size_t i = 0; i < step_count_; i++) { + if (i) + result += " - "; + result += base::NumberToString(steps_[i].percent) + ":" + + base::NumberToString(static_cast<int>(steps_[i].alpha)); + } + return result + "]}"; +} + +} // namespace gfx
diff --git a/ui/gfx/geometry/linear_gradient.h b/ui/gfx/geometry/linear_gradient.h new file mode 100644 index 0000000..1ad025f --- /dev/null +++ b/ui/gfx/geometry/linear_gradient.h
@@ -0,0 +1,90 @@ +// Copyright 2022 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef UI_GFX_LINEAR_GRADIENT_H_ +#define UI_GFX_LINEAR_GRADIENT_H_ + +#include <array> +#include <string> + +#include "ui/gfx/geometry/geometry_skia_export.h" + +namespace gfx { + +class Transform; + +// A class that defines a linear gradient mask. +// Up to 6 steps are supported. +// +// ex. Horizontal linear gradient that starts in the middle. +// LinearGradient gradient(0); +// gradient.AddStep(20, 0); +// gradient.AddStep(30, 255); +// gradient.AddStep(70, 255); +// gradient.AddStep(80, 0); +class GEOMETRY_SKIA_EXPORT LinearGradient { + public: + struct Step { + constexpr Step() = default; + // Percent that defines a position in diagonal, from 0 to 100. + float percent = 0; + // Alpha, from 0 to 255. + uint8_t alpha = 0; + }; + static LinearGradient& GetEmpty(); + + static constexpr size_t kMaxStepSize = 6; + using StepArray = std::array<Step, kMaxStepSize>; + + LinearGradient(); + explicit LinearGradient(int16_t angle); + LinearGradient(const LinearGradient& copy); + LinearGradient& operator=(const LinearGradient& gradient_mask) = default; + + bool IsEmpty() const { return !step_count_; } + + // Add a new step. Adding more than 6 results in DCHECK or ignored. + void AddStep(float percent, uint8_t alpha); + + // Get step information. + const StepArray& steps() const { return steps_; } + StepArray& steps() { return steps_; } + size_t step_count() const { return step_count_; } + + // Gets/Sets an angle (in degrees). + int16_t angle() const { return angle_; } + void set_angle(int16_t degree) { angle_ = degree % 360; } + + // Reverse the step 180 degree. + void ReverseSteps(); + + // Transform the angle. + void Transform(const gfx::Transform& transform); + + std::string ToString() const; + + private: + // angle in degrees. + int16_t angle_ = 0; + size_t step_count_ = 0; + StepArray steps_; +}; + +inline bool operator==(const LinearGradient::Step& lhs, + const LinearGradient::Step& rhs) { + return lhs.percent == rhs.percent && lhs.alpha == rhs.alpha; +} + +inline bool operator==(const LinearGradient& lhs, const LinearGradient& rhs) { + return lhs.angle() == rhs.angle() && lhs.step_count() == rhs.step_count() && + lhs.steps() == rhs.steps(); +} + +inline bool operator!=(const LinearGradient& lhs, const LinearGradient& rhs) { + return !(lhs == rhs); +} + +} // namespace gfx + +#endif // UI_GFX_LINEAR_GRADIENT_H_
diff --git a/ui/gfx/geometry/linear_gradient_unittest.cc b/ui/gfx/geometry/linear_gradient_unittest.cc new file mode 100644 index 0000000..79c6ffb6 --- /dev/null +++ b/ui/gfx/geometry/linear_gradient_unittest.cc
@@ -0,0 +1,93 @@ +// Copyright 2022 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "ui/gfx/geometry/linear_gradient.h" + +#include "build/build_config.h" +#include "testing/gtest/include/gtest/gtest.h" +#include "ui/gfx/geometry/point_f.h" +#include "ui/gfx/geometry/transform.h" + +namespace gfx { + +TEST(LinearGradientTest, Basic) { + LinearGradient gradient(45); + EXPECT_TRUE(gradient.IsEmpty()); + + gradient.AddStep(10, 0); + gradient.AddStep(50, 50); + gradient.AddStep(80, 1); + + EXPECT_FALSE(gradient.IsEmpty()); + EXPECT_EQ(45, gradient.angle()); + EXPECT_EQ(3u, gradient.step_count()); + EXPECT_EQ(gradient.steps()[0].percent, 10); + EXPECT_EQ(gradient.steps()[0].alpha, 0); + EXPECT_EQ(gradient.steps()[1].percent, 50); + EXPECT_EQ(gradient.steps()[1].alpha, 50); + EXPECT_EQ(gradient.steps()[2].percent, 80); + EXPECT_EQ(gradient.steps()[2].alpha, 1); + + LinearGradient gradient2(90); + gradient2.AddStep(10, 0); + gradient2.AddStep(50, 50); + gradient2.AddStep(80, 1); + + EXPECT_NE(gradient, gradient2); + + gradient2.set_angle(45); + EXPECT_EQ(gradient, gradient2); + + gradient2.AddStep(90, 0); + EXPECT_NE(gradient, gradient2); +} + +TEST(LinearGradientTest, Reverse) { + LinearGradient gradient(45); + // Make sure reversing an empty LinearGradient doesn't cause an issue. + gradient.ReverseSteps(); + + gradient.AddStep(10, 0); + gradient.AddStep(50, 50); + gradient.AddStep(80, 1); + + gradient.ReverseSteps(); + + EXPECT_EQ(45, gradient.angle()); + EXPECT_EQ(3u, gradient.step_count()); + + EXPECT_EQ(gradient.steps()[0].percent, 20); + EXPECT_EQ(gradient.steps()[0].alpha, 1); + EXPECT_EQ(gradient.steps()[1].percent, 50); + EXPECT_EQ(gradient.steps()[1].alpha, 50); + EXPECT_EQ(gradient.steps()[2].percent, 90); + EXPECT_EQ(gradient.steps()[2].alpha, 0); +} + +TEST(LinearGradientTest, Rotate) { + { + LinearGradient gradient(45); + gfx::Transform transform; + transform.Translate(10, 50); + gradient.Transform(transform); + EXPECT_EQ(45, gradient.angle()); + } + // Scale can change the angle. + { + LinearGradient gradient(45); + gfx::Transform transform; + transform.Scale(1, 10); + gradient.Transform(transform); + EXPECT_EQ(84, gradient.angle()); + } + { + LinearGradient gradient(45); + gfx::Transform transform; + transform.Rotate(45); + gradient.Transform(transform); + EXPECT_EQ(0, gradient.angle()); + } +} + +} // namespace gfx
diff --git a/ui/gfx/geometry/mask_filter_info.cc b/ui/gfx/geometry/mask_filter_info.cc index 9757acd..c033155 100644 --- a/ui/gfx/geometry/mask_filter_info.cc +++ b/ui/gfx/geometry/mask_filter_info.cc
@@ -11,13 +11,19 @@ namespace gfx { bool MaskFilterInfo::Transform(const gfx::Transform& transform) { - return rounded_corner_bounds_.IsEmpty() - ? false - : transform.TransformRRectF(&rounded_corner_bounds_); + if (rounded_corner_bounds_.IsEmpty()) + return false; + + if (!transform.TransformRRectF(&rounded_corner_bounds_)) + return false; + + gradient_mask_.Transform(transform); + return true; } std::string MaskFilterInfo::ToString() const { - return "MaskFilterInfo{" + rounded_corner_bounds_.ToString() + "}"; + return "MaskFilterInfo{" + rounded_corner_bounds_.ToString() + + ", gradient_mask=" + gradient_mask_.ToString() + "}"; } } // namespace gfx
diff --git a/ui/gfx/geometry/mask_filter_info.h b/ui/gfx/geometry/mask_filter_info.h index c796b494..c96bd18 100644 --- a/ui/gfx/geometry/mask_filter_info.h +++ b/ui/gfx/geometry/mask_filter_info.h
@@ -6,6 +6,7 @@ #define UI_GFX_GEOMETRY_MASK_FILTER_INFO_H_ #include "ui/gfx/geometry/geometry_skia_export.h" +#include "ui/gfx/geometry/linear_gradient.h" #include "ui/gfx/geometry/rect_f.h" #include "ui/gfx/geometry/rrect_f.h" @@ -19,8 +20,12 @@ MaskFilterInfo() = default; explicit MaskFilterInfo(const RRectF& rrect) : rounded_corner_bounds_(rrect) {} - MaskFilterInfo(const RectF& bounds, const RoundedCornersF& radii) - : rounded_corner_bounds_(bounds, radii) {} + MaskFilterInfo(const RRectF& rrect, const gfx::LinearGradient& gradient_mask) + : rounded_corner_bounds_(rrect), gradient_mask_(gradient_mask) {} + MaskFilterInfo(const RectF& bounds, + const RoundedCornersF& radii, + const gfx::LinearGradient& gradient_mask) + : rounded_corner_bounds_(bounds, radii), gradient_mask_(gradient_mask) {} MaskFilterInfo(const MaskFilterInfo& copy) = default; ~MaskFilterInfo() = default; @@ -36,6 +41,13 @@ rounded_corner_bounds_.GetType() != RRectF::Type::kRect; } + const gfx::LinearGradient& gradient_mask() const { return gradient_mask_; } + + // True if this contains an effective gradient mask (requires filter bounds). + bool HasGradientMask() const { + return !rounded_corner_bounds_.IsEmpty() && !gradient_mask_.IsEmpty(); + } + // True if this contains no effective mask information. bool IsEmpty() const { return rounded_corner_bounds_.IsEmpty(); } @@ -49,6 +61,9 @@ // The rounded corner bounds. This also defines the bounds that the mask // filter will be applied to. RRectF rounded_corner_bounds_; + + // Shader based linear gradient mask to be applied to a layer. + gfx::LinearGradient gradient_mask_; }; inline bool operator==(const MaskFilterInfo& lhs, const MaskFilterInfo& rhs) {
diff --git a/ui/gfx/mojom/BUILD.gn b/ui/gfx/mojom/BUILD.gn index 757d7934..0a2c5c2 100644 --- a/ui/gfx/mojom/BUILD.gn +++ b/ui/gfx/mojom/BUILD.gn
@@ -21,6 +21,7 @@ "gpu_fence_handle.mojom", "hdr_metadata.mojom", "hdr_static_metadata.mojom", + "linear_gradient.mojom", "mask_filter_info.mojom", "overlay_priority_hint.mojom", "overlay_transform.mojom", @@ -324,6 +325,17 @@ traits_headers = [ "mask_filter_info_mojom_traits.h" ] traits_public_deps = [ "//ui/gfx" ] }, + { + types = [ + { + mojom = "gfx.mojom.LinearGradient" + cpp = "::gfx::LinearGradient" + }, + ] + traits_sources = [ "linear_gradient_mojom_traits.cc" ] + traits_headers = [ "linear_gradient_mojom_traits.h" ] + traits_public_deps = [ "//ui/gfx" ] + }, ] cpp_typemaps += shared_cpp_typemaps
diff --git a/ui/gfx/mojom/linear_gradient.mojom b/ui/gfx/mojom/linear_gradient.mojom new file mode 100644 index 0000000..c95519c --- /dev/null +++ b/ui/gfx/mojom/linear_gradient.mojom
@@ -0,0 +1,17 @@ +// Copyright 2022 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +module gfx.mojom; + +// See ui/gfx/geometry/linear_gradient.h. +struct Step { + float percent; + uint8 alpha; +}; + +struct LinearGradient { + int16 angle = 0; + uint8 step_count = 0; + array<Step, 6> steps; +};
diff --git a/ui/gfx/mojom/linear_gradient_mojom_traits.cc b/ui/gfx/mojom/linear_gradient_mojom_traits.cc new file mode 100644 index 0000000..07d741f --- /dev/null +++ b/ui/gfx/mojom/linear_gradient_mojom_traits.cc
@@ -0,0 +1,28 @@ +// Copyright 2022 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "ui/gfx/mojom/linear_gradient_mojom_traits.h" + +namespace mojo { + +// static +bool StructTraits<gfx::mojom::LinearGradientDataView, gfx::LinearGradient>:: + Read(gfx::mojom::LinearGradientDataView data, gfx::LinearGradient* out) { + std::array<gfx::LinearGradient::Step, gfx::LinearGradient::kMaxStepSize> + steps_data; + if (!data.ReadSteps(&steps_data)) + return false; + + if (data.step_count() > steps_data.size()) + return false; + + for (int i = 0; i < data.step_count(); ++i) { + out->AddStep(steps_data[i].percent, steps_data[i].alpha); + } + out->set_angle(data.angle()); + + return true; +} + +} // namespace mojo
diff --git a/ui/gfx/mojom/linear_gradient_mojom_traits.h b/ui/gfx/mojom/linear_gradient_mojom_traits.h new file mode 100644 index 0000000..09412c3 --- /dev/null +++ b/ui/gfx/mojom/linear_gradient_mojom_traits.h
@@ -0,0 +1,52 @@ +// Copyright 2022 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef UI_GFX_MOJOM_LINEAR_GRADIENT_MOJOM_TRAITS_H_ +#define UI_GFX_MOJOM_LINEAR_GRADIENT_MOJOM_TRAITS_H_ + +#include "ui/gfx/geometry/linear_gradient.h" +#include "ui/gfx/mojom/linear_gradient.mojom-shared.h" + +namespace mojo { + +template <> +struct StructTraits<gfx::mojom::StepDataView, gfx::LinearGradient::Step> { + static float percent(const gfx::LinearGradient::Step& input) { + return input.percent; + } + + static uint8_t alpha(const gfx::LinearGradient::Step& input) { + return input.alpha; + } + + static bool Read(gfx::mojom::StepDataView data, + gfx::LinearGradient::Step* out) { + out->percent = data.percent(); + out->alpha = data.alpha(); + return true; + } +}; + +template <> +struct StructTraits<gfx::mojom::LinearGradientDataView, gfx::LinearGradient> { + static int16_t angle(const gfx::LinearGradient& input) { + return input.angle(); + } + + static uint8_t step_count(const gfx::LinearGradient& input) { + return input.step_count(); + } + + static const gfx::LinearGradient::StepArray& steps( + const gfx::LinearGradient& input) { + return input.steps(); + } + + static bool Read(gfx::mojom::LinearGradientDataView data, + gfx::LinearGradient* out); +}; + +} // namespace mojo + +#endif // UI_GFX_MOJOM_LINEAR_GRADIENT_MOJOM_TRAITS_H_
diff --git a/ui/gfx/mojom/mask_filter_info.mojom b/ui/gfx/mojom/mask_filter_info.mojom index 7e3b9ea..9d42d6e0 100644 --- a/ui/gfx/mojom/mask_filter_info.mojom +++ b/ui/gfx/mojom/mask_filter_info.mojom
@@ -5,8 +5,10 @@ module gfx.mojom; import "ui/gfx/mojom/rrect_f.mojom"; +import "ui/gfx/mojom/linear_gradient.mojom"; -// See ui/gfx/mask_filter_info.h. +// See ui/gfx/geometry/mask_filter_info.h. struct MaskFilterInfo { gfx.mojom.RRectF rounded_corner_bounds; + gfx.mojom.LinearGradient? gradient_mask; };
diff --git a/ui/gfx/mojom/mask_filter_info_mojom_traits.cc b/ui/gfx/mojom/mask_filter_info_mojom_traits.cc index 683762ae..ec275d04 100644 --- a/ui/gfx/mojom/mask_filter_info_mojom_traits.cc +++ b/ui/gfx/mojom/mask_filter_info_mojom_traits.cc
@@ -12,7 +12,15 @@ gfx::RRectF bounds; if (!data.ReadRoundedCornerBounds(&bounds)) return false; - *out = gfx::MaskFilterInfo(bounds); + + absl::optional<gfx::LinearGradient> gradient_mask; + if (!data.ReadGradientMask(&gradient_mask)) + return false; + + if (gradient_mask.has_value() && !gradient_mask->IsEmpty()) + *out = gfx::MaskFilterInfo(bounds, gradient_mask.value()); + else + *out = gfx::MaskFilterInfo(bounds); return true; }
diff --git a/ui/gfx/mojom/mask_filter_info_mojom_traits.h b/ui/gfx/mojom/mask_filter_info_mojom_traits.h index 849742a..7f0da80d 100644 --- a/ui/gfx/mojom/mask_filter_info_mojom_traits.h +++ b/ui/gfx/mojom/mask_filter_info_mojom_traits.h
@@ -5,7 +5,9 @@ #ifndef UI_GFX_MOJOM_MASK_FILTER_INFO_MOJOM_TRAITS_H_ #define UI_GFX_MOJOM_MASK_FILTER_INFO_MOJOM_TRAITS_H_ +#include "ui/gfx/geometry/linear_gradient.h" #include "ui/gfx/geometry/mask_filter_info.h" +#include "ui/gfx/mojom/linear_gradient_mojom_traits.h" #include "ui/gfx/mojom/mask_filter_info.mojom-shared.h" #include "ui/gfx/mojom/rrect_f_mojom_traits.h" @@ -17,6 +19,11 @@ return info.rounded_corner_bounds(); } + static const gfx::LinearGradient& gradient_mask( + const gfx::MaskFilterInfo& info) { + return info.gradient_mask(); + } + static bool Read(gfx::mojom::MaskFilterInfoDataView data, gfx::MaskFilterInfo* out); };
diff --git a/ui/views/border.cc b/ui/views/border.cc index a5f01ff..fa0542ae 100644 --- a/ui/views/border.cc +++ b/ui/views/border.cc
@@ -10,6 +10,7 @@ #include "base/check.h" #include "base/memory/ptr_util.h" #include "cc/paint/paint_flags.h" +#include "ui/color/color_provider.h" #include "ui/compositor/layer.h" #include "ui/gfx/canvas.h" #include "ui/gfx/geometry/dip_util.h" @@ -75,6 +76,26 @@ return gfx::Size(insets_.width(), insets_.height()); } +class ThemedSolidSidedBorder : public SolidSidedBorder { + public: + ThemedSolidSidedBorder(const gfx::Insets& insets, ui::ColorId color); + + // SolidSidedBorder: + void Paint(const View& view, gfx::Canvas* canvas) override; + + private: + ui::ColorId color_; +}; + +ThemedSolidSidedBorder::ThemedSolidSidedBorder(const gfx::Insets& insets, + ui::ColorId color) + : SolidSidedBorder(insets, gfx::kPlaceholderColor), color_(color) {} + +void ThemedSolidSidedBorder::Paint(const View& view, gfx::Canvas* canvas) { + set_color(view.GetColorProvider()->GetColor(color_)); + SolidSidedBorder::Paint(view, canvas); +} + // A border with a rounded rectangle and single color. class RoundedRectBorder : public Border { public: @@ -244,6 +265,12 @@ return std::make_unique<SolidSidedBorder>(gfx::Insets(thickness), color); } +std::unique_ptr<Border> CreateThemedSolidBorder(int thickness, + ui::ColorId color) { + return std::make_unique<ThemedSolidSidedBorder>(gfx::Insets(thickness), + color); +} + std::unique_ptr<Border> CreateEmptyBorder(const gfx::Insets& insets) { return std::make_unique<EmptyBorder>(insets); }
diff --git a/ui/views/border.h b/ui/views/border.h index c62feca..8352712 100644 --- a/ui/views/border.h +++ b/ui/views/border.h
@@ -8,6 +8,7 @@ #include <memory> #include "third_party/skia/include/core/SkColor.h" +#include "ui/color/color_id.h" #include "ui/gfx/color_palette.h" #include "ui/gfx/geometry/insets.h" #include "ui/views/views_export.h" @@ -81,6 +82,11 @@ VIEWS_EXPORT std::unique_ptr<Border> CreateSolidBorder(int thickness, SkColor color); +// Creates a border that is a simple line of the specified thickness and color, +// which updates on theme changes. +VIEWS_EXPORT std::unique_ptr<Border> CreateThemedSolidBorder(int thickness, + ui::ColorId color); + // Creates a border that is a rounded rectangle of the specified thickness and // color. // NOTE: `corner_radius` is an OUTER EDGE RADIUS, not a stroke radius!
diff --git a/ui/views/examples/examples_with_content_main.cc b/ui/views/examples/examples_with_content_main.cc index 97f3764..1052d5bf 100644 --- a/ui/views/examples/examples_with_content_main.cc +++ b/ui/views/examples/examples_with_content_main.cc
@@ -58,6 +58,7 @@ #if BUILDFLAG(IS_WIN) int APIENTRY wWinMain(HINSTANCE instance, HINSTANCE, wchar_t*, int) { + base::CommandLine::Init(0, nullptr); sandbox::SandboxInterfaceInfo sandbox_info = {nullptr}; content::InitializeSandboxInfo(&sandbox_info); ui::ViewsContentClient views_content_client(instance, &sandbox_info);